|
|||||||||
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 |
Constructor Summary | |
---|---|
ConstraintTypeChecker()
|
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public ConstraintTypeChecker()
Method Detail |
---|
public void addTypeMapping(ITypeMapping mapping)
ITypeChecker
addTypeMapping
in interface ITypeChecker
mapping
- the mappingpublic List<NRLError> getErrors()
public List<NRLError> check(IOperators operators)
ITypeChecker
check
in interface ITypeChecker
operators
- the operators to check
public List<NRLError> check(IRuleFile ruleFile)
ITypeChecker
check
in interface ITypeChecker
ruleFile
- the rule file to check
public boolean isNumber(NRLDataType type)
public boolean isImplicitIterationAllowed()
public void setImplicitIterationAllowed(boolean isImplicitIterationAllowed)
isImplicitIterationAllowed
- flagpublic void visitArithmeticExpressionAfter(IArithmeticExpression expr)
visitArithmeticExpressionAfter
in interface INRLConstraintDetailVisitor
public void visitBinaryOperatorStatementAfter(IBinaryOperatorStatement statement)
visitBinaryOperatorStatementAfter
in interface INRLConstraintDetailVisitor
public void visitBinaryPredicateAfter(IBinaryPredicate predicate)
visitBinaryPredicateAfter
in interface INRLConstraintDetailVisitor
public void visitBooleanLiteral(IBooleanLiteral bool)
visitBooleanLiteral
in interface INRLConstraintDetailVisitor
public void visitCardinalityConstraint(ICardinalityConstraint constraint)
visitCardinalityConstraint
in interface INRLConstraintDetailVisitor
public void visitCollectionIndexAfter(ICollectionIndex index)
visitCollectionIndexAfter
in interface INRLConstraintDetailVisitor
public void visitCompoundReportAfter(ICompoundReport report)
visitCompoundReportAfter
in interface INRLConstraintDetailVisitor
public void visitConcatenatedReportAfter(IConcatenatedReport report)
visitConcatenatedReportAfter
in interface INRLConstraintDetailVisitor
public void visitConditionalReportAfter(IConditionalReport report)
visitConditionalReportAfter
in interface INRLConstraintDetailVisitor
public void visitCastExpressionAfter(ICastExpression expr)
visitCastExpressionAfter
in interface INRLConstraintDetailVisitor
public void visitExistsStatementAfter(IExistsStatement exists)
visitExistsStatementAfter
in interface INRLConstraintDetailVisitor
public void visitForallStatementAfter(IForallStatement forall)
visitForallStatementAfter
in interface INRLConstraintDetailVisitor
public boolean visitFunctionalExpressionBefore(IFunctionalExpression expr)
visitFunctionalExpressionBefore
in interface INRLConstraintDetailVisitor
public void visitFunctionalExpressionAfter(IFunctionalExpression expr)
visitFunctionalExpressionAfter
in interface INRLConstraintDetailVisitor
public void visitGlobalExistsStatementAfter(IGlobalExistsStatement exists)
visitGlobalExistsStatementAfter
in interface INRLConstraintDetailVisitor
public void visitIfThenStatementAfter(IIfThenStatement ifThen)
visitIfThenStatementAfter
in interface INRLConstraintDetailVisitor
public void visitIsInPredicateAfter(IIsInPredicate isIn)
visitIsInPredicateAfter
in interface INRLConstraintDetailVisitor
public void visitIsNotInPredicateAfter(IIsNotInPredicate isNotIn)
visitIsNotInPredicateAfter
in interface INRLConstraintDetailVisitor
public void visitIsSubtypePredicateAfter(IIsSubtypePredicate subType)
visitIsSubtypePredicateAfter
in interface INRLConstraintDetailVisitor
public void visitLiteralString(ILiteralString literal)
visitLiteralString
in interface INRLConstraintDetailVisitor
public void visitModelReferenceAfter(IModelReference ref)
visitModelReferenceAfter
in interface INRLConstraintDetailVisitor
public void visitMultipleExistsStatementAfter(IMultipleExistsStatement statement)
visitMultipleExistsStatementAfter
in interface INRLConstraintDetailVisitor
public void visitMultipleNotExistsStatementAfter(IMultipleNotExistsStatement statement)
visitMultipleNotExistsStatementAfter
in interface INRLConstraintDetailVisitor
public void visitNotExistsStatementAfter(INotExistsStatement exists)
visitNotExistsStatementAfter
in interface INRLConstraintDetailVisitor
public void visitDecimalNumber(IDecimalNumber number)
visitDecimalNumber
in interface INRLConstraintDetailVisitor
public void visitIntegerNumber(IIntegerNumber number)
visitIntegerNumber
in interface INRLConstraintDetailVisitor
public void visitOperatorInvocationAfter(IOperatorInvocation op)
visitOperatorInvocationAfter
in interface INRLConstraintDetailVisitor
public void visitSelectionExpressionAfter(ISelectionExpression expr)
visitSelectionExpressionAfter
in interface INRLConstraintDetailVisitor
public void visitValidationFragmentApplicationAfter(IValidationFragmentApplication app)
visitValidationFragmentApplicationAfter
in interface INRLConstraintDetailVisitor
public void visitValidationFragmentDeclarationAfter(IValidationFragmentDeclaration decl)
visitValidationFragmentDeclarationAfter
in interface INRLConstraintDetailVisitor
public void visitConstraintRuleDeclarationAfter(IConstraintRuleDeclaration decl)
visitConstraintRuleDeclarationAfter
in interface INRLConstraintDetailVisitor
public void visitRuleFileAfter(IRuleFile file)
visitRuleFileAfter
in interface INRLConstraintDetailVisitor
public void visitRuleSetDeclarationAfter(IRuleSetDeclaration decl)
visitRuleSetDeclarationAfter
in interface INRLConstraintDetailVisitor
public boolean visitVariableDeclarationBefore(IVariableDeclaration decl)
visitVariableDeclarationBefore
in interface INRLConstraintDetailVisitor
public void visitVariableDeclarationAfter(IVariableDeclaration decl)
visitVariableDeclarationAfter
in interface INRLConstraintDetailVisitor
public boolean visitArithmeticExpressionBefore(IArithmeticExpression expr)
visitArithmeticExpressionBefore
in interface INRLConstraintDetailVisitor
public boolean visitBinaryOperatorStatementBefore(IBinaryOperatorStatement statement)
visitBinaryOperatorStatementBefore
in interface INRLConstraintDetailVisitor
public boolean visitBinaryPredicateBefore(IBinaryPredicate predicate)
visitBinaryPredicateBefore
in interface INRLConstraintDetailVisitor
public boolean visitCastExpressionBefore(ICastExpression expr)
visitCastExpressionBefore
in interface INRLConstraintDetailVisitor
public boolean visitCollectionIndexBefore(ICollectionIndex index)
visitCollectionIndexBefore
in interface INRLConstraintDetailVisitor
public boolean visitCompoundReportBefore(ICompoundReport report)
visitCompoundReportBefore
in interface INRLConstraintDetailVisitor
public boolean visitConcatenatedReportBefore(IConcatenatedReport report)
visitConcatenatedReportBefore
in interface INRLConstraintDetailVisitor
public boolean visitConditionalReportBefore(IConditionalReport report)
visitConditionalReportBefore
in interface INRLConstraintDetailVisitor
public boolean visitExistsStatementBefore(IExistsStatement exists)
visitExistsStatementBefore
in interface INRLConstraintDetailVisitor
public boolean visitForallStatementBefore(IForallStatement forall)
visitForallStatementBefore
in interface INRLConstraintDetailVisitor
public boolean visitGlobalExistsStatementBefore(IGlobalExistsStatement exists)
visitGlobalExistsStatementBefore
in interface INRLConstraintDetailVisitor
public boolean visitIfThenStatementBefore(IIfThenStatement ifThen)
visitIfThenStatementBefore
in interface INRLConstraintDetailVisitor
public boolean visitIsInPredicateBefore(IIsInPredicate isIn)
visitIsInPredicateBefore
in interface INRLConstraintDetailVisitor
public boolean visitIsNotInPredicateBefore(IIsNotInPredicate isNotIn)
visitIsNotInPredicateBefore
in interface INRLConstraintDetailVisitor
public boolean visitIsSubtypePredicateBefore(IIsSubtypePredicate subType)
visitIsSubtypePredicateBefore
in interface INRLConstraintDetailVisitor
public boolean visitModelReferenceBefore(IModelReference ref)
visitModelReferenceBefore
in interface INRLConstraintDetailVisitor
public boolean visitMultipleExistsStatementBefore(IMultipleExistsStatement statement)
visitMultipleExistsStatementBefore
in interface INRLConstraintDetailVisitor
public boolean visitMultipleNotExistsStatementBefore(IMultipleNotExistsStatement statement)
visitMultipleNotExistsStatementBefore
in interface INRLConstraintDetailVisitor
public boolean visitNotExistsStatementBefore(INotExistsStatement exists)
visitNotExistsStatementBefore
in interface INRLConstraintDetailVisitor
public boolean visitOperatorInvocationBefore(IOperatorInvocation op)
visitOperatorInvocationBefore
in interface INRLConstraintDetailVisitor
public boolean visitValidationFragmentApplicationBefore(IValidationFragmentApplication app)
visitValidationFragmentApplicationBefore
in interface INRLConstraintDetailVisitor
public boolean visitValidationFragmentDeclarationBefore(IValidationFragmentDeclaration decl)
visitValidationFragmentDeclarationBefore
in interface INRLConstraintDetailVisitor
public boolean visitConstraintRuleDeclarationBefore(IConstraintRuleDeclaration decl)
visitConstraintRuleDeclarationBefore
in interface INRLConstraintDetailVisitor
public boolean visitRuleFileBefore(IRuleFile file)
visitRuleFileBefore
in interface INRLConstraintDetailVisitor
public boolean visitRuleSetDeclarationBefore(IRuleSetDeclaration decl)
visitRuleSetDeclarationBefore
in interface INRLConstraintDetailVisitor
public boolean visitSelectionExpressionBefore(ISelectionExpression expr)
visitSelectionExpressionBefore
in interface INRLConstraintDetailVisitor
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |