gov.llnl.babel.visitor

Class SymbolTableDecorator


public class SymbolTableDecorator
extends Visitor

Iterates over a AST a second time to decorate a primed SymbolTable with all the details about classes, interfaces, and structs Type resolution is largely performed in this stage.
See Also:
SymbolTablePrimer

Field Summary

protected ArrayList
d_imports
protected MsgList
d_msgs
protected HashMap
d_requires

Constructor Summary

SymbolTableDecorator(MsgList msgs, HierarchySorter hs, Context context)

Method Summary

Object
visitArgument(Argument node, Object data)
Object
visitArrayType(ArrayType node, Object data)
Object
visitAssertion(Assertion node, Object data)
Object
visitClassType(ClassType node, Object data)
Object
visitEnsures(Ensures node, Object data)
Object
visitFixedType(FixedType node, Object data)
Object
visitImportClause(ImportClause node, Object data)
Object
visitInterfaceType(InterfaceType node, Object data)
Object
visitMethod(Method node, Object data)
Object
visitRArrayType(RArrayType node, Object data)
Object
visitRequireClause(RequireClause node, Object data)
Object
visitRequires(Requires node, Object data)
Object
visitSIDLFile(SIDLFile node, Object data)
Object
visitScopedID(ScopedID node, Object data)
Object
visitSplicerBlock(SplicerBlock sb, Object data)
Object
visitSplicerImpl(SplicerImpl impl, Object data)
Object
visitSplicerImplList(SplicerImplList sil, Object data)
Object
visitSplicerList(SplicerList sl, Object data)
Object
visitStructItem(StructItem node, Object data)
Object
visitStructType(StructType node, Object data)
Object
visitThrowsList(ThrowsList node, Object data)

Methods inherited from class gov.llnl.babel.visitor.Visitor

visitArgument, visitArgumentList, visitArrayType, visitAssertion, visitAttribute, visitAttributeList, visitBinaryExpr, visitBooleanLiteral, visitCharacterLiteral, visitClassType, visitDComplexLiteral, visitDocComment, visitDoubleLiteral, visitEnsures, visitEnumItem, visitEnumeration, visitExtents, visitFComplexLiteral, visitFixedType, visitFloatLiteral, visitFromClause, visitFuncExpr, visitImportClause, visitIntLiteral, visitInterfaceType, visitInvariants, visitMethod, visitMethodList, visitName, visitNode, visitPackage, visitRArrayType, visitRequireClause, visitRequires, visitSIDLFile, visitScopedID, visitScopedIDList, visitSplicerBlock, visitSplicerImpl, visitSplicerImplList, visitSplicerList, visitStringLiteral, visitStructItem, visitStructType, visitThrowsList, visitUnaryExpr

Field Details

d_imports

protected ArrayList d_imports

d_msgs

protected MsgList d_msgs

d_requires

protected HashMap d_requires

Constructor Details

SymbolTableDecorator

public SymbolTableDecorator(MsgList msgs,
                            HierarchySorter hs,
                            Context context)

Method Details

visitArgument

public Object visitArgument(Argument node,
                            Object data)
Overrides:
visitArgument in interface Visitor

visitArrayType

public Object visitArrayType(ArrayType node,
                             Object data)
Overrides:
visitArrayType in interface Visitor

visitAssertion

public Object visitAssertion(Assertion node,
                             Object data)
Overrides:
visitAssertion in interface Visitor

visitClassType

public Object visitClassType(ClassType node,
                             Object data)
Overrides:
visitClassType in interface Visitor

visitEnsures

public Object visitEnsures(Ensures node,
                           Object data)
Overrides:
visitEnsures in interface Visitor

visitFixedType

public Object visitFixedType(FixedType node,
                             Object data)
Overrides:
visitFixedType in interface Visitor

visitImportClause

public Object visitImportClause(ImportClause node,
                                Object data)
Overrides:
visitImportClause in interface Visitor

visitInterfaceType

public Object visitInterfaceType(InterfaceType node,
                                 Object data)
Overrides:
visitInterfaceType in interface Visitor

visitMethod

public Object visitMethod(Method node,
                          Object data)
Overrides:
visitMethod in interface Visitor

visitRArrayType

public Object visitRArrayType(RArrayType node,
                              Object data)
Overrides:
visitRArrayType in interface Visitor

visitRequireClause

public Object visitRequireClause(RequireClause node,
                                 Object data)
Overrides:
visitRequireClause in interface Visitor

visitRequires

public Object visitRequires(Requires node,
                            Object data)
Overrides:
visitRequires in interface Visitor

visitSIDLFile

public Object visitSIDLFile(SIDLFile node,
                            Object data)
Overrides:
visitSIDLFile in interface Visitor

visitScopedID

public Object visitScopedID(ScopedID node,
                            Object data)
Overrides:
visitScopedID in interface Visitor

visitSplicerBlock

public Object visitSplicerBlock(SplicerBlock sb,
                                Object data)
Overrides:
visitSplicerBlock in interface Visitor

visitSplicerImpl

public Object visitSplicerImpl(SplicerImpl impl,
                               Object data)
Overrides:
visitSplicerImpl in interface Visitor

visitSplicerImplList

public Object visitSplicerImplList(SplicerImplList sil,
                                   Object data)
Overrides:
visitSplicerImplList in interface Visitor

visitSplicerList

public Object visitSplicerList(SplicerList sl,
                               Object data)
Overrides:
visitSplicerList in interface Visitor

visitStructItem

public Object visitStructItem(StructItem node,
                              Object data)
Overrides:
visitStructItem in interface Visitor

visitStructType

public Object visitStructType(StructType node,
                              Object data)
Overrides:
visitStructType in interface Visitor

visitThrowsList

public Object visitThrowsList(ThrowsList node,
                              Object data)
Overrides:
visitThrowsList in interface Visitor