SymbolTable

forttyp.spad line 250 [edit on github]

Create and manipulate a symbol table for generated FORTRAN code

coerce : % -> OutputForm
from CoercibleTo(OutputForm)
coerce : % -> Table(Symbol, FortranType)

coerce(x) returns a table view of x

declare! : (List(Symbol), FortranType, %) -> FortranType

declare!(l, t, tab) creates new entries in tab, declaring each of l to be of type t

declare! : (Symbol, FortranType, %) -> FortranType

declare!(u, t, tab) creates a new entry in tab, declaring u to be of type t

empty : () -> %

empty() returns a new, empty symbol table

externalList : % -> List(Symbol)

externalList(tab) returns a list of all the external symbols in tab

fortranTypeOf : (Symbol, %) -> FortranType

fortranTypeOf(u, tab) returns the type of u in tab

newTypeLists : % -> SExpression

newTypeLists(x) is undocumented

parametersOf : % -> List(Symbol)

parametersOf(tab) returns a list of all the symbols declared in tab

printTypes : % -> Void

printTypes(tab) produces FORTRAN type declarations from tab, on the current FORTRAN output stream

symbolTable : List(Record(key : Symbol, entry : FortranType)) -> %

symbolTable(l) creates a symbol table from the elements of l.

typeList : (FortranScalarType, %) -> List(Union(:(name, Symbol), :(bounds, List(Union(:(S, Symbol), :(P, Polynomial(Integer)))))))

typeList(t, tab) returns a list of all the objects of type t in tab

typeLists : % -> List(List(Union(:(name, Symbol), :(bounds, List(Union(:(S, Symbol), :(P, Polynomial(Integer))))))))

typeLists(tab) returns a list of lists of types of objects in tab

CoercibleTo(OutputForm)