Class/Object

mimir.algebra

Typechecker

Related Docs: object Typechecker | package algebra

Permalink

class Typechecker extends LazyLogging

ExpressionChecker wraps around a bit of context that makes recursion through Expression objects easier. Concretely

scope: ... is a lookup function for the types of variables, which the Typechecker has no way to figure out on its own. The easiest way to pull this off is to simply pass a Map[String,TAny] object, as its apply() method will do the trick, but it's handy to leave this open to any lookup function. The scope doesn't need to be present for the typechecker to work, but if it isn't then it'll fail if it hits any Var object.

context : ... is an operator for debugging purposes. If any typechecker error occurs, then we'll annotate the error with this operator.

Linear Supertypes
LazyLogging, Logging, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Typechecker
  2. LazyLogging
  3. Logging
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Typechecker(functions: Option[FunctionRegistry] = None, aggregates: Option[AggregateRegistry] = None, models: Option[ModelManager] = None)

    Permalink

Value Members

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

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

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

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def assert(e: Expression, t: Type, scope: (String) ⇒ Type, context: Option[Operator] = None, msg: String = "Typechecker"): Unit

    Permalink
  6. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  7. final def eq(arg0: AnyRef): Boolean

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

    Permalink
    Definition Classes
    AnyRef → Any
  9. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. final def getClass(): Class[_]

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

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

    Permalink
    Definition Classes
    Any
  13. lazy val logger: Logger

    Permalink
    Attributes
    protected
    Definition Classes
    LazyLogging → Logging
  14. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  15. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  16. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  17. def returnTypeOfFunction(name: String, args: Seq[Type]): Type

    Permalink
  18. def schemaOf(o: Operator): Seq[(String, Type)]

    Permalink
  19. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  20. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  21. def typeOf(e: Expression, scope: (String) ⇒ Type = ..., context: Option[Operator] = None): Type

    Permalink
  22. def typeOf(e: Expression, o: Operator): Type

    Permalink
  23. final def wait(): Unit

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  26. def weakTypeOf(e: Expression): Type

    Permalink

Inherited from LazyLogging

Inherited from Logging

Inherited from AnyRef

Inherited from Any

Ungrouped