gov.llnl.babel.visitor
Class CollisionChecker
java.lang.Object
gov.llnl.babel.visitor.Visitor
gov.llnl.babel.visitor.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.
Method Summary |
protected AttributeList |
checkAttributes(AttributeList attrs)
|
protected void |
checkName(java.lang.String scope_name,
Name name,
java.util.HashMap scope)
|
protected void |
checkNameInPackageScope(Name name,
java.util.HashMap scope)
|
java.lang.Object |
visitArgument(Argument node,
java.lang.Object data)
|
java.lang.Object |
visitArgumentList(ArgumentList node,
java.lang.Object data)
|
java.lang.Object |
visitBinaryExpr(BinaryExpr be,
java.lang.Object data)
|
java.lang.Object |
visitBooleanLiteral(BooleanLiteral il,
java.lang.Object data)
|
java.lang.Object |
visitCharacterLiteral(CharacterLiteral il,
java.lang.Object data)
|
java.lang.Object |
visitClassType(ClassType node,
java.lang.Object data)
|
java.lang.Object |
visitDComplexLiteral(DComplexLiteral il,
java.lang.Object data)
|
java.lang.Object |
visitDoubleLiteral(DoubleLiteral il,
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 |
visitExtents(Extents e,
java.lang.Object data)
|
java.lang.Object |
visitFComplexLiteral(FComplexLiteral il,
java.lang.Object data)
|
java.lang.Object |
visitFloatLiteral(FloatLiteral l,
java.lang.Object data)
|
java.lang.Object |
visitFromClause(FromClause node,
java.lang.Object data)
|
java.lang.Object |
visitImportClause(ImportClause node,
java.lang.Object data)
|
java.lang.Object |
visitInterfaceType(InterfaceType node,
java.lang.Object data)
|
java.lang.Object |
visitIntLiteral(IntLiteral il,
java.lang.Object data)
|
java.lang.Object |
visitMethod(Method node,
java.lang.Object data)
|
java.lang.Object |
visitMethodList(MethodList node,
java.lang.Object data)
|
java.lang.Object |
visitName(Name n,
java.lang.Object data)
|
java.lang.Object |
visitPackage(Package node,
java.lang.Object data)
|
java.lang.Object |
visitRArrayType(RArrayType node,
java.lang.Object data)
|
java.lang.Object |
visitRequireClause(RequireClause node,
java.lang.Object data)
|
java.lang.Object |
visitSIDLFile(SIDLFile node,
java.lang.Object data)
|
java.lang.Object |
visitStringLiteral(StringLiteral il,
java.lang.Object data)
|
java.lang.Object |
visitStructItem(StructItem node,
java.lang.Object data)
|
java.lang.Object |
visitStructType(StructType node,
java.lang.Object data)
|
java.lang.Object |
visitThrowsList(ThrowsList node,
java.lang.Object data)
|
java.lang.Object |
visitUnaryExpr(UnaryExpr ue,
java.lang.Object data)
|
Methods inherited from class gov.llnl.babel.visitor.Visitor |
visitArrayType, visitAssertion, visitAttribute, visitAttributeList, visitDocComment, visitEnsures, visitFixedType, visitFuncExpr, visitInvariants, visitNode, visitRequires, visitScopedID, visitScopedIDList, visitSplicerBlock, visitSplicerImpl, visitSplicerImplList, visitSplicerList |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
d_msgs
protected MsgList d_msgs
d_currentScope
protected java.util.Map d_currentScope
CollisionChecker
public CollisionChecker(MsgList msgs,
java.util.Map collisions)
checkAttributes
protected AttributeList checkAttributes(AttributeList attrs)
checkName
protected void checkName(java.lang.String scope_name,
Name name,
java.util.HashMap scope)
checkNameInPackageScope
protected void checkNameInPackageScope(Name name,
java.util.HashMap scope)
visitSIDLFile
public java.lang.Object visitSIDLFile(SIDLFile node,
java.lang.Object data)
- Overrides:
visitSIDLFile
in class Visitor
visitImportClause
public java.lang.Object visitImportClause(ImportClause node,
java.lang.Object data)
- Overrides:
visitImportClause
in class Visitor
visitRequireClause
public java.lang.Object visitRequireClause(RequireClause node,
java.lang.Object data)
- Overrides:
visitRequireClause
in class Visitor
visitPackage
public java.lang.Object visitPackage(Package node,
java.lang.Object data)
- Overrides:
visitPackage
in class Visitor
visitName
public java.lang.Object visitName(Name n,
java.lang.Object data)
- Overrides:
visitName
in class Visitor
visitIntLiteral
public java.lang.Object visitIntLiteral(IntLiteral il,
java.lang.Object data)
- Overrides:
visitIntLiteral
in class Visitor
visitDoubleLiteral
public java.lang.Object visitDoubleLiteral(DoubleLiteral il,
java.lang.Object data)
- Overrides:
visitDoubleLiteral
in class Visitor
visitFloatLiteral
public java.lang.Object visitFloatLiteral(FloatLiteral l,
java.lang.Object data)
- Overrides:
visitFloatLiteral
in class Visitor
visitCharacterLiteral
public java.lang.Object visitCharacterLiteral(CharacterLiteral il,
java.lang.Object data)
- Overrides:
visitCharacterLiteral
in class Visitor
visitBooleanLiteral
public java.lang.Object visitBooleanLiteral(BooleanLiteral il,
java.lang.Object data)
- Overrides:
visitBooleanLiteral
in class Visitor
visitStringLiteral
public java.lang.Object visitStringLiteral(StringLiteral il,
java.lang.Object data)
- Overrides:
visitStringLiteral
in class Visitor
visitFComplexLiteral
public java.lang.Object visitFComplexLiteral(FComplexLiteral il,
java.lang.Object data)
- Overrides:
visitFComplexLiteral
in class Visitor
visitDComplexLiteral
public java.lang.Object visitDComplexLiteral(DComplexLiteral il,
java.lang.Object data)
- Overrides:
visitDComplexLiteral
in class Visitor
visitBinaryExpr
public java.lang.Object visitBinaryExpr(BinaryExpr be,
java.lang.Object data)
- Overrides:
visitBinaryExpr
in class Visitor
visitUnaryExpr
public java.lang.Object visitUnaryExpr(UnaryExpr ue,
java.lang.Object data)
- Overrides:
visitUnaryExpr
in class Visitor
visitExtents
public java.lang.Object visitExtents(Extents e,
java.lang.Object data)
- Overrides:
visitExtents
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
visitStructType
public java.lang.Object visitStructType(StructType node,
java.lang.Object data)
- Overrides:
visitStructType
in class Visitor
visitStructItem
public java.lang.Object visitStructItem(StructItem node,
java.lang.Object data)
- Overrides:
visitStructItem
in class Visitor
visitClassType
public java.lang.Object visitClassType(ClassType node,
java.lang.Object data)
- Overrides:
visitClassType
in class Visitor
visitInterfaceType
public java.lang.Object visitInterfaceType(InterfaceType node,
java.lang.Object data)
- Overrides:
visitInterfaceType
in class Visitor
visitMethodList
public java.lang.Object visitMethodList(MethodList node,
java.lang.Object data)
- Overrides:
visitMethodList
in class Visitor
visitMethod
public java.lang.Object visitMethod(Method node,
java.lang.Object data)
- Overrides:
visitMethod
in class Visitor
visitArgumentList
public java.lang.Object visitArgumentList(ArgumentList node,
java.lang.Object data)
- Overrides:
visitArgumentList
in class Visitor
visitArgument
public java.lang.Object visitArgument(Argument node,
java.lang.Object data)
- Overrides:
visitArgument
in class Visitor
visitRArrayType
public java.lang.Object visitRArrayType(RArrayType node,
java.lang.Object data)
- Overrides:
visitRArrayType
in class Visitor
visitThrowsList
public java.lang.Object visitThrowsList(ThrowsList node,
java.lang.Object data)
- Overrides:
visitThrowsList
in class Visitor
visitFromClause
public java.lang.Object visitFromClause(FromClause node,
java.lang.Object data)
- Overrides:
visitFromClause
in class Visitor