gov.llnl.babel.visitor

Class SymbolTablePrimer


public class SymbolTablePrimer
extends Visitor

This AST visitor does the first pass on initializing the older SymbolTable. Empty Classes, Interfaces, (and eventually structs) will be added. Enums are also added, but since they make no reference to other types they are entered in their entirety here. A second pass is needed later to add all the details about inheritance, methods, arguements, etc. The reason for the two separate passes is to make the type resolution more permissive than the original single-pass model of the original parser and the existing SymbolTable.
See Also:
SymbolTableDecorator

Field Summary

protected MsgList
d_msgs

Constructor Summary

SymbolTablePrimer(MsgList msgs, Context context)

Method Summary

Object
visitClassType(ClassType node, Object data)
Object
visitEnumItem(EnumItem node, Object data)
Object
visitEnumeration(Enumeration node, Object data)
Object
visitInterfaceType(InterfaceType node, Object data)
Object
visitPackage(Package node, Object data)
Object
visitStructType(StructType 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_msgs

protected MsgList d_msgs

Constructor Details

SymbolTablePrimer

public SymbolTablePrimer(MsgList msgs,
                         Context context)

Method Details

visitClassType

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

visitEnumItem

public Object visitEnumItem(EnumItem node,
                            Object data)
Overrides:
visitEnumItem in interface Visitor

visitEnumeration

public Object visitEnumeration(Enumeration node,
                               Object data)
Overrides:
visitEnumeration in interface Visitor

visitInterfaceType

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

visitPackage

public Object visitPackage(Package node,
                           Object data)
Overrides:
visitPackage in interface Visitor

visitStructType

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