com.opendatagroup.hadrian.ast

SymbolTable

case class SymbolTable(parent: Option[SymbolTable], symbols: Map[String, AvroType], cells: Map[String, Cell], pools: Map[String, Pool], sealedAbove: Boolean, sealedWithin: Boolean) extends Product with Serializable

Represents the symbols (variables) and their data types in a lexical scope.

parent

enclosing scope; symbol lookup defers to the parent scope if not found here

symbols

internal symbol names and their types

cells

initial cell names and their types

pools

initial pool names and their types

sealedAbove

if true, symbols in the parent scope cannot be modified (but can be accessed); if false, this scope does not restrict access (but a parent might)

Linear Supertypes
Serializable, Serializable, Product, Equals, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. SymbolTable
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. AnyRef
  7. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new SymbolTable(parent: Option[SymbolTable], symbols: Map[String, AvroType], cells: Map[String, Cell], pools: Map[String, Pool], sealedAbove: Boolean, sealedWithin: Boolean)

    parent

    enclosing scope; symbol lookup defers to the parent scope if not found here

    symbols

    internal symbol names and their types

    cells

    initial cell names and their types

    pools

    initial pool names and their types

    sealedAbove

    if true, symbols in the parent scope cannot be modified (but can be accessed); if false, this scope does not restrict access (but a parent might)

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. def allInScope: Map[String, AvroType]

    All symbols (and their types) that are defined in this scope and all parents.

    All symbols (and their types) that are defined in this scope and all parents.

    returns

    symbols and their types

  7. def apply(name: String): AvroType

    Get a symbol's type from this scope or a parent's and raise a java.util.NoSuchElementException if not defined

    Get a symbol's type from this scope or a parent's and raise a java.util.NoSuchElementException if not defined

    name

    name of the symbol

    returns

    the symbol's type if defined, raise a java.util.NoSuchElementException otherwise

  8. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  9. def cell(name: String): Option[Cell]

    Get a cell's type from this scope or a parent's.

    Get a cell's type from this scope or a parent's.

    name

    name of the cell

    returns

    the cell's type if defined, None otherwise

  10. val cells: Map[String, Cell]

    initial cell names and their types

  11. def clone(): AnyRef

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

    Definition Classes
    AnyRef
  13. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  14. def get(name: String): Option[AvroType]

    Get a symbol's type from this scope or a parent's.

    Get a symbol's type from this scope or a parent's.

    name

    name of the symbol

    returns

    the symbol's type if defined, None otherwise

  15. def getAbove(name: String): Option[AvroType]

    Get a symbol's type specifically from a parent's sopce, not this one.

    Get a symbol's type specifically from a parent's sopce, not this one.

    name

    name of the symbol

    returns

    the symbol's type if defined in a parent's scope, None otherwise

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

    Definition Classes
    AnyRef → Any
  17. def getLocal(name: String): Option[AvroType]

    Get a symbol's type specifically from this scope.

    Get a symbol's type specifically from this scope.

    name

    name of the symbol

    returns

    the symbol's type if defined in this scope, None otherwise

  18. def inThisScope: Map[String, AvroType]

    All symbols (and their types) that are defined in this scope (not in any parents).

    All symbols (and their types) that are defined in this scope (not in any parents).

    returns

    symbols and their types

  19. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  20. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  21. def newScope(sealedAbove: Boolean, sealedWithin: Boolean): SymbolTable

    Create a new scope with this as parent.

    Create a new scope with this as parent.

    sealedAbove

    if true, symbols in the parent scope cannot be modified (but can be accessed); if false, this scope does not restrict access (but a parent might)

    sealedWithin

    if true, new symbols cannot be created in this scope

    returns

    a new scope, linked to this one

  22. final def notify(): Unit

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

    Definition Classes
    AnyRef
  24. val parent: Option[SymbolTable]

    enclosing scope; symbol lookup defers to the parent scope if not found here

  25. def pool(name: String): Option[Pool]

    Get a pool's type from this scope or a parent's.

    Get a pool's type from this scope or a parent's.

    name

    name of the cell

    returns

    the pool's type if defined, None otherwise

  26. val pools: Map[String, Pool]

    initial pool names and their types

  27. def put(name: String, avroType: AvroType): Unit

    Creaste or overwrite a symbol's type in the table.

    Creaste or overwrite a symbol's type in the table.

    name

    name of the symbol

    avroType

    the data type to associate with this symbol

  28. val sealedAbove: Boolean

    if true, symbols in the parent scope cannot be modified (but can be accessed); if false, this scope does not restrict access (but a parent might)

  29. val sealedWithin: Boolean

  30. val symbols: Map[String, AvroType]

    internal symbol names and their types

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

    Definition Classes
    AnyRef
  32. final def wait(): Unit

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  35. def writable(name: String): Boolean

    Determine if a symbol can be modified in this scope.

    Determine if a symbol can be modified in this scope.

    name

    name of the symbol

    returns

    true if the symbol can be modified; false otherwise

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped