gov.llnl.babel.visitor
Class AddDefaultsVisitor

java.lang.Object
  extended bygov.llnl.babel.visitor.Visitor
      extended bygov.llnl.babel.visitor.AddDefaultsVisitor

public class AddDefaultsVisitor
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  MsgList d_msgs
           
 
Constructor Summary
AddDefaultsVisitor(MsgList msgs)
           
 
Method Summary
 java.lang.Object visitClassType(ClassType node, java.lang.Object data)
          Add defaults at the Class Level.
 java.lang.Object visitInterfaceType(InterfaceType node, java.lang.Object data)
          Add defaults as the interface level 1.
 java.lang.Object visitMethod(Method node, java.lang.Object data)
          Method level defaults 1.
 
Methods inherited from class gov.llnl.babel.visitor.Visitor
visitArgument, visitArgumentList, visitArrayType, visitAssertion, visitAttribute, visitAttributeList, visitBinaryExpr, visitBooleanLiteral, visitCharacterLiteral, visitDComplexLiteral, visitDocComment, visitDoubleLiteral, visitEnsures, visitEnumeration, visitEnumItem, visitExtents, visitFComplexLiteral, visitFixedType, visitFloatLiteral, visitFromClause, visitFuncExpr, visitImportClause, visitIntLiteral, visitMethodList, visitName, visitNode, visitPackage, visitRArrayType, visitRequireClause, visitRequires, visitScopedID, visitScopedIDList, visitSIDLFile, visitStringLiteral, visitStructItem, visitStructType, 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

AddDefaultsVisitor

public AddDefaultsVisitor(MsgList msgs)
Method Detail

visitClassType

public java.lang.Object visitClassType(ClassType node,
                                       java.lang.Object data)
Add defaults at the Class Level. 1. If the class is SIDL_BASECLASS, implement SIDL_BASEINTERFACE 2. If the class doesn't inherit anything, extend SIDL_BASECLASS

Overrides:
visitClassType in class Visitor

visitInterfaceType

public java.lang.Object visitInterfaceType(InterfaceType node,
                                           java.lang.Object data)
Add defaults as the interface level 1. If it's not SIDL_BASEINTERFACE, and it has no extends, extend SIDL_BASEINTERFACE

Overrides:
visitInterfaceType in class Visitor

visitMethod

public java.lang.Object visitMethod(Method node,
                                    java.lang.Object data)
Method level defaults 1. Add implicit Runtime Exception to every throws list

Overrides:
visitMethod in class Visitor