gov.llnl.babel.visitor

Class CollisionChecker


public class CollisionChecker
extends Visitor

Checks for naming collisions two args with same name in same method, two Types with same name in a packgage, and so on for all names in the ast. For enumerations, it also checks for duplicate explicit values and assigns unique values to items otherwise unassigned. For packages, it also blocks attempts to reopen a final package. Naturally, it will detect collisions for packages that are closed and reopened.

Field Summary

protected Map
d_currentScope
protected MsgList
d_msgs

Constructor Summary

CollisionChecker(MsgList msgs, Map collisions)

Method Summary

protected AttributeList
checkAttributes(AttributeList attrs)
protected void
checkName(String scope_name, Name name, HashMap scope)
protected void
checkNameInPackageScope(Name name, HashMap scope)
Object
visitArgument(Argument node, Object data)
Object
visitArgumentList(ArgumentList node, Object data)
Object
visitBinaryExpr(BinaryExpr be, Object data)
Object
visitBooleanLiteral(BooleanLiteral il, Object data)
Object
visitCharacterLiteral(CharacterLiteral il, Object data)
Object
visitClassType(ClassType node, Object data)
Object
visitDComplexLiteral(DComplexLiteral il, Object data)
Object
visitDoubleLiteral(DoubleLiteral il, Object data)
Object
visitEnumItem(EnumItem node, Object data)
Object
visitEnumeration(Enumeration node, Object data)
Object
visitExtents(Extents e, Object data)
Object
visitFComplexLiteral(FComplexLiteral il, Object data)
Object
visitFloatLiteral(FloatLiteral l, Object data)
Object
visitFromClause(FromClause node, Object data)
Object
visitImportClause(ImportClause node, Object data)
Object
visitIntLiteral(IntLiteral il, Object data)
Object
visitInterfaceType(InterfaceType node, Object data)
Object
visitMethod(Method node, Object data)
Object
visitMethodList(MethodList node, Object data)
Object
visitName(Name n, Object data)
Object
visitPackage(Package node, Object data)
Object
visitRArrayType(RArrayType node, Object data)
Object
visitRequireClause(RequireClause node, Object data)
Object
visitSIDLFile(SIDLFile node, Object data)
Object
visitStringLiteral(StringLiteral il, Object data)
Object
visitStructItem(StructItem node, Object data)
Object
visitStructType(StructType node, Object data)
Object
visitThrowsList(ThrowsList node, Object data)
Object
visitUnaryExpr(UnaryExpr ue, 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_currentScope

protected Map d_currentScope

d_msgs

protected MsgList d_msgs

Constructor Details

CollisionChecker

public CollisionChecker(MsgList msgs,
                        Map collisions)

Method Details

checkAttributes

protected AttributeList checkAttributes(AttributeList attrs)

checkName

protected void checkName(String scope_name,
                         Name name,
                         HashMap scope)

checkNameInPackageScope

protected void checkNameInPackageScope(Name name,
                                       HashMap scope)

visitArgument

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

visitArgumentList

public Object visitArgumentList(ArgumentList node,
                                Object data)
Overrides:
visitArgumentList in interface Visitor

visitBinaryExpr

public Object visitBinaryExpr(BinaryExpr be,
                              Object data)
Overrides:
visitBinaryExpr in interface Visitor

visitBooleanLiteral

public Object visitBooleanLiteral(BooleanLiteral il,
                                  Object data)
Overrides:
visitBooleanLiteral in interface Visitor

visitCharacterLiteral

public Object visitCharacterLiteral(CharacterLiteral il,
                                    Object data)
Overrides:
visitCharacterLiteral in interface Visitor

visitClassType

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

visitDComplexLiteral

public Object visitDComplexLiteral(DComplexLiteral il,
                                   Object data)
Overrides:
visitDComplexLiteral in interface Visitor

visitDoubleLiteral

public Object visitDoubleLiteral(DoubleLiteral il,
                                 Object data)
Overrides:
visitDoubleLiteral 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

visitExtents

public Object visitExtents(Extents e,
                           Object data)
Overrides:
visitExtents in interface Visitor

visitFComplexLiteral

public Object visitFComplexLiteral(FComplexLiteral il,
                                   Object data)
Overrides:
visitFComplexLiteral in interface Visitor

visitFloatLiteral

public Object visitFloatLiteral(FloatLiteral l,
                                Object data)
Overrides:
visitFloatLiteral in interface Visitor

visitFromClause

public Object visitFromClause(FromClause node,
                              Object data)
Overrides:
visitFromClause in interface Visitor

visitImportClause

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

visitIntLiteral

public Object visitIntLiteral(IntLiteral il,
                              Object data)
Overrides:
visitIntLiteral 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

visitMethodList

public Object visitMethodList(MethodList node,
                              Object data)
Overrides:
visitMethodList in interface Visitor

visitName

public Object visitName(Name n,
                        Object data)
Overrides:
visitName in interface Visitor

visitPackage

public Object visitPackage(Package node,
                           Object data)
Overrides:
visitPackage 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

visitSIDLFile

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

visitStringLiteral

public Object visitStringLiteral(StringLiteral il,
                                 Object data)
Overrides:
visitStringLiteral 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

visitUnaryExpr

public Object visitUnaryExpr(UnaryExpr ue,
                             Object data)
Overrides:
visitUnaryExpr in interface Visitor