|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.sourceforge.nrl.parser.type.ConstraintTypeChecker
public class ConstraintTypeChecker
Default type checker implementation. This uses the built-in visitor pattern to type-check every node in the AST.
The type checker uses a depth-first strategy. Types are assigned to children and then to their parents. In addition, the following strategy is used to deal with elements or operators where the NRL type is unknown:
ITypeChecker| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from interface net.sourceforge.nrl.parser.ast.constraints.INRLConstraintDetailVisitor |
|---|
INRLConstraintDetailVisitor.Stub |
| Field Summary | |
|---|---|
protected List<NRLError> |
errors
|
protected List<ITypeMapping> |
typeMappings
|
| Constructor Summary | |
|---|---|
ConstraintTypeChecker()
|
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected List<NRLError> errors
protected List<ITypeMapping> typeMappings
| Constructor Detail |
|---|
public ConstraintTypeChecker()
| Method Detail |
|---|
public void addTypeMapping(ITypeMapping mapping)
ITypeChecker
addTypeMapping in interface ITypeCheckermapping - the mappingpublic List<NRLError> getErrors()
protected NRLDataType getType(IModelElement element)
element - the element
public List<NRLError> check(IOperators operators)
ITypeChecker
check in interface ITypeCheckeroperators - the operators to check
public List<NRLError> check(IRuleFile ruleFile)
ITypeChecker
check in interface ITypeCheckerruleFile - the rule file to check
protected void checkRemainingDeclarations(IRuleFile ruleFile)
ruleFile - the file
protected void error(int status,
INRLAstNode construct,
String message)
construct - the constructmessage - the message
protected boolean isAssignmentCompatible(NRLDataType assignedTo,
NRLDataType assignedFrom)
assignedTo - the type being assigned toassignedFrom - the type being assigned from
public boolean isNumber(NRLDataType type)
public boolean isImplicitIterationAllowed()
public void setImplicitIterationAllowed(boolean isImplicitIterationAllowed)
isImplicitIterationAllowed - flagpublic void visitArithmeticExpressionAfter(IArithmeticExpression expr)
visitArithmeticExpressionAfter in interface INRLConstraintDetailVisitorpublic void visitBinaryOperatorStatementAfter(IBinaryOperatorStatement statement)
visitBinaryOperatorStatementAfter in interface INRLConstraintDetailVisitorpublic void visitBinaryPredicateAfter(IBinaryPredicate predicate)
visitBinaryPredicateAfter in interface INRLConstraintDetailVisitorpublic void visitBooleanLiteral(IBooleanLiteral bool)
visitBooleanLiteral in interface INRLConstraintDetailVisitorpublic void visitCardinalityConstraint(ICardinalityConstraint constraint)
visitCardinalityConstraint in interface INRLConstraintDetailVisitorpublic void visitCollectionIndexAfter(ICollectionIndex index)
visitCollectionIndexAfter in interface INRLConstraintDetailVisitorpublic void visitCompoundReportAfter(ICompoundReport report)
visitCompoundReportAfter in interface INRLConstraintDetailVisitorpublic void visitConcatenatedReportAfter(IConcatenatedReport report)
visitConcatenatedReportAfter in interface INRLConstraintDetailVisitorpublic void visitConditionalReportAfter(IConditionalReport report)
visitConditionalReportAfter in interface INRLConstraintDetailVisitorpublic void visitCastExpressionAfter(ICastExpression expr)
visitCastExpressionAfter in interface INRLConstraintDetailVisitorpublic void visitExistsStatementAfter(IExistsStatement exists)
visitExistsStatementAfter in interface INRLConstraintDetailVisitorpublic void visitForallStatementAfter(IForallStatement forall)
visitForallStatementAfter in interface INRLConstraintDetailVisitorpublic boolean visitFunctionalExpressionBefore(IFunctionalExpression expr)
visitFunctionalExpressionBefore in interface INRLConstraintDetailVisitorpublic void visitFunctionalExpressionAfter(IFunctionalExpression expr)
visitFunctionalExpressionAfter in interface INRLConstraintDetailVisitorpublic void visitGlobalExistsStatementAfter(IGlobalExistsStatement exists)
visitGlobalExistsStatementAfter in interface INRLConstraintDetailVisitorpublic void visitIfThenStatementAfter(IIfThenStatement ifThen)
visitIfThenStatementAfter in interface INRLConstraintDetailVisitor
protected void visitIsInList(List<IIdentifier> list,
IExpression expression,
NRLDataType exprType)
public void visitIsInPredicateAfter(IIsInPredicate isIn)
visitIsInPredicateAfter in interface INRLConstraintDetailVisitorpublic void visitIsNotInPredicateAfter(IIsNotInPredicate isNotIn)
visitIsNotInPredicateAfter in interface INRLConstraintDetailVisitorpublic void visitIsSubtypePredicateAfter(IIsSubtypePredicate subType)
visitIsSubtypePredicateAfter in interface INRLConstraintDetailVisitorpublic void visitLiteralString(ILiteralString literal)
visitLiteralString in interface INRLConstraintDetailVisitorpublic void visitModelReferenceAfter(IModelReference ref)
visitModelReferenceAfter in interface INRLConstraintDetailVisitorpublic void visitMultipleExistsStatementAfter(IMultipleExistsStatement statement)
visitMultipleExistsStatementAfter in interface INRLConstraintDetailVisitorpublic void visitMultipleNotExistsStatementAfter(IMultipleNotExistsStatement statement)
visitMultipleNotExistsStatementAfter in interface INRLConstraintDetailVisitorpublic void visitNotExistsStatementAfter(INotExistsStatement exists)
visitNotExistsStatementAfter in interface INRLConstraintDetailVisitorpublic void visitDecimalNumber(IDecimalNumber number)
visitDecimalNumber in interface INRLConstraintDetailVisitorpublic void visitIntegerNumber(IIntegerNumber number)
visitIntegerNumber in interface INRLConstraintDetailVisitor
protected void visitOperatorParameters(IOperator operator,
INRLAstNode operatorNode,
List<IExpression> parameters)
public void visitOperatorInvocationAfter(IOperatorInvocation op)
visitOperatorInvocationAfter in interface INRLConstraintDetailVisitorpublic void visitSelectionExpressionAfter(ISelectionExpression expr)
visitSelectionExpressionAfter in interface INRLConstraintDetailVisitorpublic void visitValidationFragmentApplicationAfter(IValidationFragmentApplication app)
visitValidationFragmentApplicationAfter in interface INRLConstraintDetailVisitorpublic void visitValidationFragmentDeclarationAfter(IValidationFragmentDeclaration decl)
visitValidationFragmentDeclarationAfter in interface INRLConstraintDetailVisitorpublic void visitConstraintRuleDeclarationAfter(IConstraintRuleDeclaration decl)
visitConstraintRuleDeclarationAfter in interface INRLConstraintDetailVisitorpublic void visitRuleFileAfter(IRuleFile file)
visitRuleFileAfter in interface INRLConstraintDetailVisitorpublic void visitRuleSetDeclarationAfter(IRuleSetDeclaration decl)
visitRuleSetDeclarationAfter in interface INRLConstraintDetailVisitorpublic boolean visitVariableDeclarationBefore(IVariableDeclaration decl)
visitVariableDeclarationBefore in interface INRLConstraintDetailVisitorpublic void visitVariableDeclarationAfter(IVariableDeclaration decl)
visitVariableDeclarationAfter in interface INRLConstraintDetailVisitorpublic boolean visitArithmeticExpressionBefore(IArithmeticExpression expr)
visitArithmeticExpressionBefore in interface INRLConstraintDetailVisitorpublic boolean visitBinaryOperatorStatementBefore(IBinaryOperatorStatement statement)
visitBinaryOperatorStatementBefore in interface INRLConstraintDetailVisitorpublic boolean visitBinaryPredicateBefore(IBinaryPredicate predicate)
visitBinaryPredicateBefore in interface INRLConstraintDetailVisitorpublic boolean visitCastExpressionBefore(ICastExpression expr)
visitCastExpressionBefore in interface INRLConstraintDetailVisitorpublic boolean visitCollectionIndexBefore(ICollectionIndex index)
visitCollectionIndexBefore in interface INRLConstraintDetailVisitorpublic boolean visitCompoundReportBefore(ICompoundReport report)
visitCompoundReportBefore in interface INRLConstraintDetailVisitorpublic boolean visitConcatenatedReportBefore(IConcatenatedReport report)
visitConcatenatedReportBefore in interface INRLConstraintDetailVisitorpublic boolean visitConditionalReportBefore(IConditionalReport report)
visitConditionalReportBefore in interface INRLConstraintDetailVisitorpublic boolean visitExistsStatementBefore(IExistsStatement exists)
visitExistsStatementBefore in interface INRLConstraintDetailVisitorpublic boolean visitForallStatementBefore(IForallStatement forall)
visitForallStatementBefore in interface INRLConstraintDetailVisitorpublic boolean visitGlobalExistsStatementBefore(IGlobalExistsStatement exists)
visitGlobalExistsStatementBefore in interface INRLConstraintDetailVisitorpublic boolean visitIfThenStatementBefore(IIfThenStatement ifThen)
visitIfThenStatementBefore in interface INRLConstraintDetailVisitorpublic boolean visitIsInPredicateBefore(IIsInPredicate isIn)
visitIsInPredicateBefore in interface INRLConstraintDetailVisitorpublic boolean visitIsNotInPredicateBefore(IIsNotInPredicate isNotIn)
visitIsNotInPredicateBefore in interface INRLConstraintDetailVisitorpublic boolean visitIsSubtypePredicateBefore(IIsSubtypePredicate subType)
visitIsSubtypePredicateBefore in interface INRLConstraintDetailVisitorpublic boolean visitModelReferenceBefore(IModelReference ref)
visitModelReferenceBefore in interface INRLConstraintDetailVisitorpublic boolean visitMultipleExistsStatementBefore(IMultipleExistsStatement statement)
visitMultipleExistsStatementBefore in interface INRLConstraintDetailVisitorpublic boolean visitMultipleNotExistsStatementBefore(IMultipleNotExistsStatement statement)
visitMultipleNotExistsStatementBefore in interface INRLConstraintDetailVisitorpublic boolean visitNotExistsStatementBefore(INotExistsStatement exists)
visitNotExistsStatementBefore in interface INRLConstraintDetailVisitorpublic boolean visitOperatorInvocationBefore(IOperatorInvocation op)
visitOperatorInvocationBefore in interface INRLConstraintDetailVisitorpublic boolean visitValidationFragmentApplicationBefore(IValidationFragmentApplication app)
visitValidationFragmentApplicationBefore in interface INRLConstraintDetailVisitorpublic boolean visitValidationFragmentDeclarationBefore(IValidationFragmentDeclaration decl)
visitValidationFragmentDeclarationBefore in interface INRLConstraintDetailVisitorpublic boolean visitConstraintRuleDeclarationBefore(IConstraintRuleDeclaration decl)
visitConstraintRuleDeclarationBefore in interface INRLConstraintDetailVisitorpublic boolean visitRuleFileBefore(IRuleFile file)
visitRuleFileBefore in interface INRLConstraintDetailVisitorpublic boolean visitRuleSetDeclarationBefore(IRuleSetDeclaration decl)
visitRuleSetDeclarationBefore in interface INRLConstraintDetailVisitorpublic boolean visitSelectionExpressionBefore(ISelectionExpression expr)
visitSelectionExpressionBefore in interface INRLConstraintDetailVisitor
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||