org.kiama.example.lambda2

Analyser

class Analyser extends AnyRef

Analyses for typed lambda calculus expressions. A simple free variable analysis plus name and type analysis. There are two versions of the latter here: one (tipe) that constructs an explicit environment separate from the AST, and one (tipe2) that represents names by references to the nodes of their binding lambda expressions.

Source
Analyser.scala
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Analyser
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Analyser()

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def checkType(e: Exp, tipe: (Exp) ⇒ Type): Messages

    Check that the type of e is its expected type or unknown.

    Check that the type of e is its expected type or unknown. If not, return an error. tipe is used to obtain the type.

  8. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  9. def decl: (Var) ⇒ Option[Lam]

    The declaration (if any) of an identifier use.

  10. val env: (Exp) ⇒ Seq[(Idn, Type)]

    The environment of an expression is the list of variable names that are visible in that expression and their types.

  11. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  12. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  13. val errors: attribution.Attribution.CachedAttribute[Any, Seq[Message]]

    The semantic error messages for a given tree.

    The semantic error messages for a given tree. This one uses the tipe attribute.

  14. val errors2: attribution.Attribution.CachedAttribute[Any, Seq[Message]]

    The semantic error messages for a given tree.

    The semantic error messages for a given tree. This one uses the tipe2 attribute.

  15. val exptipe: (Exp) ⇒ Type

    The expected type of an expression.

  16. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  17. val fv: (Exp) ⇒ Set[Idn]

    The variables that are free in the given expression.

  18. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  19. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  20. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  21. def lookup(name: Idn): (Exp) ⇒ Option[Lam]

    For a given variable reference, return the lambda node that binds it if there is one, otherwise return None.

  22. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  23. final def notify(): Unit

    Definition Classes
    AnyRef
  24. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  25. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  26. val tipe: (Exp) ⇒ Type

    The type of an expression.

    The type of an expression. Checks constituent names and types. Uses the env attribute to get the bound variables and their types.

  27. val tipe2: (Exp) ⇒ Type

    The type of an expression.

    The type of an expression. Checks constituent names and types. Uses the lookup attribute to get the lambda node that binds a name. For other cases it behaves like tipe.

  28. def toString(): String

    Definition Classes
    AnyRef → Any
  29. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  30. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  31. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped