Package code.symbols

This package abstracts symbols.

See:
          Description

Interface Summary
SymbolVisitor  
 

Class Summary
ConstructorSymbol Abstracts a Constructor.
DataSymbol Abstracts a symbol that can produce data.
OperationSymbol Abstracts an operation/function.
PrintAsTxtLoadable when PrintAsTxtLoadable visits a symbol, it creates a textual representation that can be supplied to the TxtParser and it will load the symbol correctly.
Symbol Abstracts a Symbol in the term rewrite system.
TypeSymbol Abstracts a type symbol.
 

Package code.symbols Description

This package abstracts symbols.

Every Symbol has the following attributes

  1. Name. A SymbolName is unique in a module.
  2. ModuleName.
  3. Visibility. Possible values are Public/Private/DefaultVisibility. The default visibility is different from the other two kinds.

Symbols can either be a DataSymbol or a TypeSymbol.

A TypeSymbol has one additional attribute

  1. type variables.

DataSymbols have the following additional attributes

  1. Arity.
  2. Associativity.
  3. Code.
  4. Kind.
  5. Precedence.
  6. StaticNestingDepth.
  7. Type
There are 2 types of DataSymbols: ConstructorSymbol and OperationSymbol. ConstructorSymbol does not have any code associated with them. Need a comment about OperationSymbols that can be resolved using the dictionary.