gov.llnl.babel.visitor
Class SymbolTablePrimer

java.lang.Object
  extended by gov.llnl.babel.visitor.Visitor
      extended by gov.llnl.babel.visitor.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
 java.lang.Object visitClassType(ClassType node, java.lang.Object data)
           
 java.lang.Object visitEnumeration(Enumeration node, java.lang.Object data)
           
 java.lang.Object visitEnumItem(EnumItem node, java.lang.Object data)
           
 java.lang.Object visitInterfaceType(InterfaceType node, java.lang.Object data)
           
 java.lang.Object visitPackage(Package node, java.lang.Object data)
           
 java.lang.Object visitStructType(StructType node, java.lang.Object data)
           
 
Methods inherited from class gov.llnl.babel.visitor.Visitor
visitArgument, visitArgumentList, visitArrayType, visitAssertion, visitAttribute, visitAttributeList, visitBinaryExpr, visitBooleanLiteral, visitCharacterLiteral, visitDComplexLiteral, visitDocComment, visitDoubleLiteral, visitEnsures, visitExtents, visitFComplexLiteral, visitFixedType, visitFloatLiteral, visitFromClause, visitFuncExpr, visitImportClause, visitIntLiteral, visitInvariants, visitMethod, visitMethodList, visitName, visitNode, visitRArrayType, visitRequireClause, visitRequires, visitScopedID, visitScopedIDList, visitSIDLFile, visitSplicerBlock, visitSplicerImpl, visitSplicerImplList, visitSplicerList, visitStringLiteral, visitStructItem, visitThrowsList, visitUnaryExpr
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

d_msgs

protected MsgList d_msgs
Constructor Detail

SymbolTablePrimer

public SymbolTablePrimer(MsgList msgs,
                         Context context)
Method Detail

visitPackage

public java.lang.Object visitPackage(Package node,
                                     java.lang.Object data)
Overrides:
visitPackage in class Visitor

visitInterfaceType

public java.lang.Object visitInterfaceType(InterfaceType node,
                                           java.lang.Object data)
Overrides:
visitInterfaceType in class Visitor

visitClassType

public java.lang.Object visitClassType(ClassType node,
                                       java.lang.Object data)
Overrides:
visitClassType in class Visitor

visitStructType

public java.lang.Object visitStructType(StructType node,
                                        java.lang.Object data)
Overrides:
visitStructType in class Visitor

visitEnumeration

public java.lang.Object visitEnumeration(Enumeration node,
                                         java.lang.Object data)
Overrides:
visitEnumeration in class Visitor

visitEnumItem

public java.lang.Object visitEnumItem(EnumItem node,
                                      java.lang.Object data)
Overrides:
visitEnumItem in class Visitor