Package

ObSec

Ast

Permalink

package Ast

Visibility
  1. Public
  2. All

Type Members

  1. case class BooleanExpr(v: Boolean) extends SurfaceValExpr with Product with Serializable

    Permalink
  2. sealed trait Declaration extends AnyRef

    Permalink
  3. case class IfExpr(cond: ObSecExpr, thenPart: ObSecExpr, elsePart: ObSecExpr) extends ObSecExpr with Product with Serializable

    Permalink
  4. case class IntExpr(v: Int) extends SurfaceValExpr with Product with Serializable

    Permalink
  5. sealed trait LabelType extends Type

    Permalink
  6. case class LetStarExpr(declarations: List[Declaration], body: ObSecExpr) extends ObSecExpr with Product with Serializable

    Permalink
  7. case class ListConstructorExpr(elems: List[ObSecExpr]) extends ObSecExpr with Product with Serializable

    Permalink
  8. case class LocalDeclaration(variable: String, rExpr: ObSecExpr) extends Declaration with Product with Serializable

    Permalink
  9. case class MType(domain: List[SType], codomain: SType) extends Product with Serializable

    Permalink

    Represents a method type S1 -> S2

    Represents a method type S1 -> S2

    domain

    The domain type

    codomain

    The codomain type

  10. case class MethodDeclaration(name: String, mtype: MType) extends Product with Serializable

    Permalink

    Represent a method signature

    Represent a method signature

    name

    The method label

    mtype

    The method type

  11. case class MethodDef(name: String, args: List[String], mBody: ObSecExpr) extends Product with Serializable

    Permalink

    Represent a method definition

    Represent a method definition

    name

    The name of the method

    args

    The list of formal arguments

    mBody

    The body expression

  12. case class MethodInv(e1: ObSecExpr, args: List[ObSecExpr], method: String) extends ObSecExpr with Product with Serializable

    Permalink

    Represent an a method invocation expression

    Represent an a method invocation expression

    e1

    The receiver

    args

    The actual arguments

    method

    The method to invoke

  13. sealed trait ObSecExpr extends AnyRef

    Permalink

    Top Algebraic Data Type for expression in ObSec

  14. case class Obj(selfName: String, selfAscription: SType, methods: List[MethodDef]) extends ObSecExpr with Product with Serializable

    Permalink

    Represents an object in ObSec

    Represents an object in ObSec

    selfName

    The name of the "self" variable

    selfAscription

    The ascribed type of the object

    methods

    The list of method definitions

  15. case class ObjType(typeVar: TypeVar, methods: List[MethodDeclaration]) extends Type with Product with Serializable

    Permalink

    Represents an object recursive type

    Represents an object recursive type

    typeVar

    The type variable

    methods

    The list of method signatures of the object type

  16. trait PrimType extends AnyRef

    Permalink
  17. case class SType(privateType: Type, publicType: Type) extends Product with Serializable

    Permalink

    Represents a security type

    Represents a security type

    privateType

    The private facet

    publicType

    The public facet

  18. case class StringExpr(v: String) extends SurfaceValExpr with Product with Serializable

    Permalink
  19. sealed trait SurfaceExpr extends ObSecExpr

    Permalink

    Surface expressions start here

  20. sealed trait SurfaceValExpr extends ObSecExpr

    Permalink
  21. trait Type extends AnyRef

    Permalink

    Represents an abstract type in ObSec T ::= Obj(X)[mtype ...] | X

  22. case class TypeAlias(aliasName: String, objType: ObjType) extends Declaration with Product with Serializable

    Permalink
  23. case class TypeDefinition(name: String, methods: List[MethodDeclaration]) extends Declaration with Product with Serializable

    Permalink
  24. case class TypeVar(name: String) extends Type with Product with Serializable

    Permalink

    Represents a type variable

    Represents a type variable

    name

    The variable name

  25. case class Var(name: String) extends ObSecExpr with Product with Serializable

    Permalink

    Represents a variable expression.

Value Members

  1. object BooleanType extends Type with PrimType with Product with Serializable

    Permalink
  2. object HighLabel extends LabelType with Product with Serializable

    Permalink
  3. object IntType extends Type with PrimType with Product with Serializable

    Permalink
  4. object LowLabel extends LabelType with Product with Serializable

    Permalink
  5. object ObjType extends Serializable

    Permalink
  6. object StringListType extends Type with PrimType with Product with Serializable

    Permalink
  7. object StringType extends Type with PrimType with Product with Serializable

    Permalink

Ungrouped