org.oclparser.internal.core.typecheck
Class TypeCheckVisitor

java.lang.Object
  extended bytudresden.ocl.parser.analysis.AnalysisAdapter
      extended bytudresden.ocl.parser.analysis.DepthFirstAdapter
          extended bytudresden.ocl.check.TypeChecker
              extended byorg.oclparser.internal.core.typecheck.TypeCheckVisitor
All Implemented Interfaces:
tudresden.ocl.parser.analysis.Analysis, tudresden.ocl.check.NameBoundQueryable, tudresden.ocl.parser.node.Switch, tudresden.ocl.check.TypeQueryable

public class TypeCheckVisitor
extends tudresden.ocl.check.TypeChecker

TypeCheckVisitor extends TypeChecker only by storing the line and column if an error occurs.


Field Summary
 
Fields inherited from class tudresden.ocl.check.TypeChecker
setOfIteratingMethodNames
 
Constructor Summary
TypeCheckVisitor(tudresden.ocl.OclTree tree, tudresden.ocl.check.types.TypeFactory tf)
           
 
Method Summary
 void caseAAdditiveExpression(tudresden.ocl.parser.node.AAdditiveExpression ae)
          case-method overwritten since type of first operand required for analysis ( '-' is also defined for Sets)
 void caseAExpression(tudresden.ocl.parser.node.AExpression e)
           
 void caseAFeaturePrimaryExpression(tudresden.ocl.parser.node.AFeaturePrimaryExpression fpe)
           
 void caseAPostfixExpression(tudresden.ocl.parser.node.APostfixExpression poex)
           
 void defaultCase(tudresden.ocl.parser.node.Node node)
           
 int getCol()
           
 int getLine()
           
 void inACollectionTypeName(tudresden.ocl.parser.node.ACollectionTypeName ctn)
           
 void inAConstraint(tudresden.ocl.parser.node.AConstraint c)
           
 void inAFeatureCall(tudresden.ocl.parser.node.AFeatureCall fc)
          This method is implemented to update the default context for the FeatureCall's FeatureCallParameter node if the feature call is a call to an iterating method.
 void inANonCollectionTypeName(tudresden.ocl.parser.node.ANonCollectionTypeName nctn)
           
 void inStart(tudresden.ocl.parser.node.Start s)
           
 void outABooleanLiteral(tudresden.ocl.parser.node.ABooleanLiteral bl)
           
 void outAConstraintBody(tudresden.ocl.parser.node.AConstraintBody cb)
           
 void outAEnumLiteral(tudresden.ocl.parser.node.AEnumLiteral el)
           
 void outAExpressionListOrRange(tudresden.ocl.parser.node.AExpressionListOrRange elor)
           
 void outAIfExpression(tudresden.ocl.parser.node.AIfExpression ie)
           
 void outAIfPrimaryExpression(tudresden.ocl.parser.node.AIfPrimaryExpression ipe)
           
 void outAIntegerLiteral(tudresden.ocl.parser.node.AIntegerLiteral il)
           
 void outALitColPrimaryExpression(tudresden.ocl.parser.node.ALitColPrimaryExpression lce)
           
 void outALiteralCollection(tudresden.ocl.parser.node.ALiteralCollection lc)
           
 void outALiteralPrimaryExpression(tudresden.ocl.parser.node.ALiteralPrimaryExpression lpe)
           
 void outALogicalExpression(tudresden.ocl.parser.node.ALogicalExpression le)
           
 void outAMultiplicativeExpression(tudresden.ocl.parser.node.AMultiplicativeExpression me)
           
 void outAParenthesesPrimaryExpression(tudresden.ocl.parser.node.AParenthesesPrimaryExpression ppe)
           
 void outAPathSimpleTypeSpecifier(tudresden.ocl.parser.node.APathSimpleTypeSpecifier psts)
           
 void outAPathTypeName(tudresden.ocl.parser.node.APathTypeName ptn)
           
 void outAPostfixUnaryExpression(tudresden.ocl.parser.node.APostfixUnaryExpression ue)
           
 void outARealLiteral(tudresden.ocl.parser.node.ARealLiteral rl)
           
 void outARelationalExpression(tudresden.ocl.parser.node.ARelationalExpression re)
           
 void outAStringLiteral(tudresden.ocl.parser.node.AStringLiteral sl)
           
 void outATypeNamePathNameBegin(tudresden.ocl.parser.node.ATypeNamePathNameBegin tnpnb)
           
 void outAUnaryUnaryExpression(tudresden.ocl.parser.node.AUnaryUnaryExpression ue)
           
 
Methods inherited from class tudresden.ocl.check.TypeChecker
changeNotify, getBoundNames, getDefaultContext, getNodeType, getTypeFor, isNameBound
 
Methods inherited from class tudresden.ocl.parser.analysis.DepthFirstAdapter
caseAActualParameterList, caseAActualParameterListTail, caseAAdditiveExpressionTail, caseAAndLogicalOperator, caseAArrowPostfixExpressionTailBegin, caseABagCollectionKind, caseABagCollectionType, caseABarFcpHelper, caseABooleanLiteral, caseAClassifierContext, caseAClassifierContextBody, caseAClassifierHead, caseACollectionCollectionKind, caseACollectionCollectionType, caseACollectionTypeName, caseAColonFcpHelper, caseACommaFcpHelper, caseAConcreteFeatureCallParameters, caseAConstraint, caseAConstraintBody, caseAContextDeclaration, caseADeclaratorTail, caseADeclaratorTypeDeclaration, caseADivMultiplyOperator, caseADotPostfixExpressionTailBegin, caseAEmptyFeatureCallParameters, caseAEnumerationType, caseAEnumerationTypeTail, caseAEnumLiteral, caseAEnumSimpleTypeSpecifier, caseAEqualRelationalOperator, caseAExpressionListOrRange, caseAExpressionListTail, caseAFeatureCall, caseAFeatureCallParameters, caseAFileStart, caseAFormalParameter, caseAFormalParameterList, caseAFormalParameterListTail, caseAGteqRelationalOperator, caseAGtRelationalOperator, caseAIfExpression, caseAIfPrimaryExpression, caseAImpliesLogicalOperator, caseAIntegerLiteral, caseAInvStereotype, caseAIterateDeclarator, caseAIterateFcpHelper, caseALetExpression, caseALetExpressionTypeDeclaration, caseAListExpressionListOrRangeTail, caseALitColPrimaryExpression, caseALiteralCollection, caseALiteralPrimaryExpression, caseALogicalExpression, caseALogicalExpressionTail, caseALteqRelationalOperator, caseALtRelationalOperator, caseAMinusAddOperator, caseAMinusUnaryOperator, caseAMultiplicativeExpression, caseAMultiplicativeExpressionTail, caseAMultMultiplyOperator, caseANamePathNameBegin, caseANamePathNameEnd, caseANEqualRelationalOperator, caseANonCollectionTypeName, caseANotUnaryOperator, caseAOperationContext, caseAOperationContextBody, caseAOrLogicalOperator, caseAPackageStart, caseAParenthesesPrimaryExpression, caseAPathName, caseAPathNameTail, caseAPathSimpleTypeSpecifier, caseAPathTypeName, caseAPathTypeNameTail, caseAPlusAddOperator, caseAPostfixExpressionTail, caseAPostfixUnaryExpression, caseAPostStereotype, caseAPreStereotype, caseAQualifiers, caseARangeExpressionListOrRangeTail, caseARealLiteral, caseARelationalExpression, caseARelationalExpressionTail, caseAReturnTypeDeclaration, caseASequenceCollectionKind, caseASequenceCollectionType, caseASetCollectionKind, caseASetCollectionType, caseAStandardDeclarator, caseAStringLiteral, caseATimeExpression, caseATypeNamePathNameBegin, caseATypeNamePathNameEnd, caseAUnaryUnaryExpression, caseAXorLogicalOperator, caseStart, defaultIn, defaultOut, inAActualParameterList, inAActualParameterListTail, inAAdditiveExpression, inAAdditiveExpressionTail, inAAndLogicalOperator, inAArrowPostfixExpressionTailBegin, inABagCollectionKind, inABagCollectionType, inABarFcpHelper, inABooleanLiteral, inAClassifierContext, inAClassifierContextBody, inAClassifierHead, inACollectionCollectionKind, inACollectionCollectionType, inAColonFcpHelper, inACommaFcpHelper, inAConcreteFeatureCallParameters, inAConstraintBody, inAContextDeclaration, inADeclaratorTail, inADeclaratorTypeDeclaration, inADivMultiplyOperator, inADotPostfixExpressionTailBegin, inAEmptyFeatureCallParameters, inAEnumerationType, inAEnumerationTypeTail, inAEnumLiteral, inAEnumSimpleTypeSpecifier, inAEqualRelationalOperator, inAExpression, inAExpressionListOrRange, inAExpressionListTail, inAFeatureCallParameters, inAFeaturePrimaryExpression, inAFileStart, inAFormalParameter, inAFormalParameterList, inAFormalParameterListTail, inAGteqRelationalOperator, inAGtRelationalOperator, inAIfExpression, inAIfPrimaryExpression, inAImpliesLogicalOperator, inAIntegerLiteral, inAInvStereotype, inAIterateDeclarator, inAIterateFcpHelper, inALetExpression, inALetExpressionTypeDeclaration, inAListExpressionListOrRangeTail, inALitColPrimaryExpression, inALiteralCollection, inALiteralPrimaryExpression, inALogicalExpression, inALogicalExpressionTail, inALteqRelationalOperator, inALtRelationalOperator, inAMinusAddOperator, inAMinusUnaryOperator, inAMultiplicativeExpression, inAMultiplicativeExpressionTail, inAMultMultiplyOperator, inANamePathNameBegin, inANamePathNameEnd, inANEqualRelationalOperator, inANotUnaryOperator, inAOperationContext, inAOperationContextBody, inAOrLogicalOperator, inAPackageStart, inAParenthesesPrimaryExpression, inAPathName, inAPathNameTail, inAPathSimpleTypeSpecifier, inAPathTypeName, inAPathTypeNameTail, inAPlusAddOperator, inAPostfixExpression, inAPostfixExpressionTail, inAPostfixUnaryExpression, inAPostStereotype, inAPreStereotype, inAQualifiers, inARangeExpressionListOrRangeTail, inARealLiteral, inARelationalExpression, inARelationalExpressionTail, inAReturnTypeDeclaration, inASequenceCollectionKind, inASequenceCollectionType, inASetCollectionKind, inASetCollectionType, inAStandardDeclarator, inAStringLiteral, inATimeExpression, inATypeNamePathNameBegin, inATypeNamePathNameEnd, inAUnaryUnaryExpression, inAXorLogicalOperator, outAActualParameterList, outAActualParameterListTail, outAAdditiveExpression, outAAdditiveExpressionTail, outAAndLogicalOperator, outAArrowPostfixExpressionTailBegin, outABagCollectionKind, outABagCollectionType, outABarFcpHelper, outAClassifierContext, outAClassifierContextBody, outAClassifierHead, outACollectionCollectionKind, outACollectionCollectionType, outACollectionTypeName, outAColonFcpHelper, outACommaFcpHelper, outAConcreteFeatureCallParameters, outAConstraint, outAContextDeclaration, outADeclaratorTail, outADeclaratorTypeDeclaration, outADivMultiplyOperator, outADotPostfixExpressionTailBegin, outAEmptyFeatureCallParameters, outAEnumerationType, outAEnumerationTypeTail, outAEnumSimpleTypeSpecifier, outAEqualRelationalOperator, outAExpression, outAExpressionListTail, outAFeatureCall, outAFeatureCallParameters, outAFeaturePrimaryExpression, outAFileStart, outAFormalParameter, outAFormalParameterList, outAFormalParameterListTail, outAGteqRelationalOperator, outAGtRelationalOperator, outAImpliesLogicalOperator, outAInvStereotype, outAIterateDeclarator, outAIterateFcpHelper, outALetExpression, outALetExpressionTypeDeclaration, outAListExpressionListOrRangeTail, outALogicalExpressionTail, outALteqRelationalOperator, outALtRelationalOperator, outAMinusAddOperator, outAMinusUnaryOperator, outAMultiplicativeExpressionTail, outAMultMultiplyOperator, outANamePathNameBegin, outANamePathNameEnd, outANEqualRelationalOperator, outANonCollectionTypeName, outANotUnaryOperator, outAOperationContext, outAOperationContextBody, outAOrLogicalOperator, outAPackageStart, outAPathName, outAPathNameTail, outAPathTypeNameTail, outAPlusAddOperator, outAPostfixExpression, outAPostfixExpressionTail, outAPostStereotype, outAPreStereotype, outAQualifiers, outARangeExpressionListOrRangeTail, outARelationalExpressionTail, outAReturnTypeDeclaration, outASequenceCollectionKind, outASequenceCollectionType, outASetCollectionKind, outASetCollectionType, outAStandardDeclarator, outATimeExpression, outATypeNamePathNameEnd, outAXorLogicalOperator, outStart
 
Methods inherited from class tudresden.ocl.parser.analysis.AnalysisAdapter
caseEOF, caseTAnd, caseTApostroph, caseTArrow, caseTAt, caseTBar, caseTBlank, caseTBool, caseTChannel, caseTColon, caseTComma, caseTComment, caseTContext, caseTDcolon, caseTDdot, caseTDiv, caseTDot, caseTEndif, caseTEndpackagekey, caseTEnum, caseTEqual, caseTGt, caseTGteq, caseTImplies, caseTInt, caseTLBrace, caseTLBracket, caseTLPar, caseTLt, caseTLteq, caseTMinus, caseTMult, caseTName, caseTNEqual, caseTNewLine, caseTNot, caseTOr, caseTPackagekey, caseTPlus, caseTRBrace, caseTRBracket, caseTReal, caseTRPar, caseTSemicolon, caseTSimpleTypeName, caseTStringLit, caseTTab, caseTTBag, caseTTCollection, caseTTElse, caseTTIf, caseTTIn, caseTTInv, caseTTLet, caseTTPost, caseTTPre, caseTTSequence, caseTTSet, caseTTThen, caseTXor, getIn, getOut, setIn, setOut
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TypeCheckVisitor

public TypeCheckVisitor(tudresden.ocl.OclTree tree,
                        tudresden.ocl.check.types.TypeFactory tf)
Parameters:
tree -
tf -
Method Detail

inStart

public void inStart(tudresden.ocl.parser.node.Start s)

inAConstraint

public void inAConstraint(tudresden.ocl.parser.node.AConstraint c)

outAConstraintBody

public void outAConstraintBody(tudresden.ocl.parser.node.AConstraintBody cb)

caseAExpression

public void caseAExpression(tudresden.ocl.parser.node.AExpression e)

outAIfExpression

public void outAIfExpression(tudresden.ocl.parser.node.AIfExpression ie)

outALogicalExpression

public void outALogicalExpression(tudresden.ocl.parser.node.ALogicalExpression le)

outARelationalExpression

public void outARelationalExpression(tudresden.ocl.parser.node.ARelationalExpression re)

caseAAdditiveExpression

public void caseAAdditiveExpression(tudresden.ocl.parser.node.AAdditiveExpression ae)
case-method overwritten since type of first operand required for analysis ( '-' is also defined for Sets)


outAMultiplicativeExpression

public void outAMultiplicativeExpression(tudresden.ocl.parser.node.AMultiplicativeExpression me)

outAPostfixUnaryExpression

public void outAPostfixUnaryExpression(tudresden.ocl.parser.node.APostfixUnaryExpression ue)

outAUnaryUnaryExpression

public void outAUnaryUnaryExpression(tudresden.ocl.parser.node.AUnaryUnaryExpression ue)

caseAPostfixExpression

public void caseAPostfixExpression(tudresden.ocl.parser.node.APostfixExpression poex)

inAFeatureCall

public void inAFeatureCall(tudresden.ocl.parser.node.AFeatureCall fc)
This method is implemented to update the default context for the FeatureCall's FeatureCallParameter node if the feature call is a call to an iterating method.


outALitColPrimaryExpression

public void outALitColPrimaryExpression(tudresden.ocl.parser.node.ALitColPrimaryExpression lce)

outALiteralPrimaryExpression

public void outALiteralPrimaryExpression(tudresden.ocl.parser.node.ALiteralPrimaryExpression lpe)

caseAFeaturePrimaryExpression

public void caseAFeaturePrimaryExpression(tudresden.ocl.parser.node.AFeaturePrimaryExpression fpe)

outAParenthesesPrimaryExpression

public void outAParenthesesPrimaryExpression(tudresden.ocl.parser.node.AParenthesesPrimaryExpression ppe)

outAIfPrimaryExpression

public void outAIfPrimaryExpression(tudresden.ocl.parser.node.AIfPrimaryExpression ipe)

outAStringLiteral

public void outAStringLiteral(tudresden.ocl.parser.node.AStringLiteral sl)

outARealLiteral

public void outARealLiteral(tudresden.ocl.parser.node.ARealLiteral rl)

outAIntegerLiteral

public void outAIntegerLiteral(tudresden.ocl.parser.node.AIntegerLiteral il)

outABooleanLiteral

public void outABooleanLiteral(tudresden.ocl.parser.node.ABooleanLiteral bl)

outAEnumLiteral

public void outAEnumLiteral(tudresden.ocl.parser.node.AEnumLiteral el)

outALiteralCollection

public void outALiteralCollection(tudresden.ocl.parser.node.ALiteralCollection lc)

outAExpressionListOrRange

public void outAExpressionListOrRange(tudresden.ocl.parser.node.AExpressionListOrRange elor)

outAPathSimpleTypeSpecifier

public void outAPathSimpleTypeSpecifier(tudresden.ocl.parser.node.APathSimpleTypeSpecifier psts)

outAPathTypeName

public void outAPathTypeName(tudresden.ocl.parser.node.APathTypeName ptn)

inACollectionTypeName

public void inACollectionTypeName(tudresden.ocl.parser.node.ACollectionTypeName ctn)

inANonCollectionTypeName

public void inANonCollectionTypeName(tudresden.ocl.parser.node.ANonCollectionTypeName nctn)

outATypeNamePathNameBegin

public void outATypeNamePathNameBegin(tudresden.ocl.parser.node.ATypeNamePathNameBegin tnpnb)

defaultCase

public void defaultCase(tudresden.ocl.parser.node.Node node)

getCol

public int getCol()
Returns:
column of the last occured error.

getLine

public int getLine()
Returns:
line of the last occured error.