Class AbstractNodeVisitor<R,P>
java.lang.Object
org.checkerframework.dataflow.cfg.node.AbstractNodeVisitor<R,P>
- Type Parameters:
R- return type of the visitorP- parameter type of the visitor
- All Implemented Interfaces:
NodeVisitor<R,P>
- Direct Known Subclasses:
BusyExprTransfer,CFAbstractTransfer,ConstantPropagationTransfer,LiveVarTransfer,ReachingDefinitionTransfer
A default implementation of the node visitor interface. The class introduces several 'summary'
methods, that can be overridden to change the behavior of several related visit methods at once.
The summary methods and the nodes they handle are:
visitNode(org.checkerframework.dataflow.cfg.node.Node, P)- Allvisit*methods eventually call this method by default.visitValueLiteral(org.checkerframework.dataflow.cfg.node.ValueLiteralNode, P)-ValueLiteralNodesvisitUnaryOperation(org.checkerframework.dataflow.cfg.node.UnaryOperationNode, P)-UnaryOperationNodesvisitBinaryOperation(org.checkerframework.dataflow.cfg.node.BinaryOperationNode, P)-BinaryOperationNodes. The specialized visit methods for binary operation nodes delegate to this method by default:visitBinaryNumericalOperation(org.checkerframework.dataflow.cfg.node.BinaryOperationNode, P)- numerical operations (arithmetic, bitwise, shifts)visitBinaryComparisonOperation(org.checkerframework.dataflow.cfg.node.BinaryOperationNode, P)- comparison operations (<,<=>,>=,==,!=)visitBinaryConditionalOperation(org.checkerframework.dataflow.cfg.node.BinaryOperationNode, P)- conditional operations (&&,||)
visitThis(org.checkerframework.dataflow.cfg.node.ThisNode, P)-thisreferences (implicit and explicit)
This is useful to implement a visitor that performs the same operation (e.g., nothing) for
most Nodes and only has special behavior for a few.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvisitAnyPattern(AnyPatternNode n, P p) Visits an any pattern node.visitArrayAccess(ArrayAccessNode n, P p) visitArrayType(ArrayTypeNode n, P p) visitAssignment(AssignmentNode n, P p) Visits a binary comparison operation (<,<=>,>=,==,!=).Visits a binary conditional operation (&&,||).Visits a binary numerical operation node (+,-,*,/,%,<<,>>,>>>,&,|,^).Visits any binary operation.visitBitwiseAnd(BitwiseAndNode n, P p) visitBitwiseOr(BitwiseOrNode n, P p) visitBitwiseXor(BitwiseXorNode n, P p) Visits an anonymous/inner/nested class declaration within a method.visitClassName(ClassNameNode n, P p) Visits a deconstructor pattern node.visitEqualTo(EqualToNode n, P p) Visits an expression that is used as a statement.visitFieldAccess(FieldAccessNode n, P p) visitGreaterThan(GreaterThanNode n, P p) visitInstanceOf(InstanceOfNode n, P p) visitLeftShift(LeftShiftNode n, P p) visitLessThan(LessThanNode n, P p) visitLongLiteral(LongLiteralNode n, P p) visitMarker(MarkerNode n, P p) abstract RVisits a node.visitNotEqual(NotEqualNode n, P p) visitNullChk(NullChkNode n, P p) visitNullLiteral(NullLiteralNode n, P p) visitPackageName(PackageNameNode n, P p) visitReturn(ReturnNode n, P p) visitSuper(SuperNode n, P p) Visits a explicit or implicitthisreference node.visitThrow(ThrowNode n, P p) visitTypeCast(TypeCastNode n, P p) Visits any unary operation.Visits a value literal.
-
Constructor Details
-
AbstractNodeVisitor
public AbstractNodeVisitor()Create a new AbstractNodeVisitor.
-
-
Method Details
-
visitNode
Visits a node. All other visit methods delegate to this method by default.- Parameters:
n- the node to visitp- the input for the visitor- Returns:
- the output produced by the visitor
-
visitValueLiteral
Visits a value literal.- Parameters:
n- the value literal node to visitp- the input for the visitor- Returns:
- the output produced by the visitor
-
visitShortLiteral
- Specified by:
visitShortLiteralin interfaceNodeVisitor<R,P>
-
visitIntegerLiteral
- Specified by:
visitIntegerLiteralin interfaceNodeVisitor<R,P>
-
visitLongLiteral
- Specified by:
visitLongLiteralin interfaceNodeVisitor<R,P>
-
visitFloatLiteral
- Specified by:
visitFloatLiteralin interfaceNodeVisitor<R,P>
-
visitDoubleLiteral
- Specified by:
visitDoubleLiteralin interfaceNodeVisitor<R,P>
-
visitBooleanLiteral
- Specified by:
visitBooleanLiteralin interfaceNodeVisitor<R,P>
-
visitCharacterLiteral
- Specified by:
visitCharacterLiteralin interfaceNodeVisitor<R,P>
-
visitStringLiteral
- Specified by:
visitStringLiteralin interfaceNodeVisitor<R,P>
-
visitNullLiteral
- Specified by:
visitNullLiteralin interfaceNodeVisitor<R,P>
-
visitUnaryOperation
Visits any unary operation.- Parameters:
n- the unary operation node to visitp- the input for the visitor- Returns:
- the output produced by the visitor
-
visitNumericalMinus
- Specified by:
visitNumericalMinusin interfaceNodeVisitor<R,P>
-
visitNumericalPlus
- Specified by:
visitNumericalPlusin interfaceNodeVisitor<R,P>
-
visitBitwiseComplement
- Specified by:
visitBitwiseComplementin interfaceNodeVisitor<R,P>
-
visitNullChk
- Specified by:
visitNullChkin interfaceNodeVisitor<R,P>
-
visitBinaryOperation
Visits any binary operation.- Parameters:
n- the binary operation node to visitp- the input for the visitor- Returns:
- the output produced by the visitor
-
visitStringConcatenate
- Specified by:
visitStringConcatenatein interfaceNodeVisitor<R,P>
-
visitBinaryNumericalOperation
Visits a binary numerical operation node (+,-,*,/,%,<<,>>,>>>,&,|,^).- Parameters:
n- the binary numerical operation node to visitp- the input for the visitor- Returns:
- the output produced by the visitor
-
visitNumericalAddition
- Specified by:
visitNumericalAdditionin interfaceNodeVisitor<R,P>
-
visitNumericalSubtraction
- Specified by:
visitNumericalSubtractionin interfaceNodeVisitor<R,P>
-
visitNumericalMultiplication
- Specified by:
visitNumericalMultiplicationin interfaceNodeVisitor<R,P>
-
visitIntegerDivision
- Specified by:
visitIntegerDivisionin interfaceNodeVisitor<R,P>
-
visitFloatingDivision
- Specified by:
visitFloatingDivisionin interfaceNodeVisitor<R,P>
-
visitIntegerRemainder
- Specified by:
visitIntegerRemainderin interfaceNodeVisitor<R,P>
-
visitFloatingRemainder
- Specified by:
visitFloatingRemainderin interfaceNodeVisitor<R,P>
-
visitLeftShift
- Specified by:
visitLeftShiftin interfaceNodeVisitor<R,P>
-
visitSignedRightShift
- Specified by:
visitSignedRightShiftin interfaceNodeVisitor<R,P>
-
visitUnsignedRightShift
- Specified by:
visitUnsignedRightShiftin interfaceNodeVisitor<R,P>
-
visitBitwiseAnd
- Specified by:
visitBitwiseAndin interfaceNodeVisitor<R,P>
-
visitBitwiseOr
- Specified by:
visitBitwiseOrin interfaceNodeVisitor<R,P>
-
visitBitwiseXor
- Specified by:
visitBitwiseXorin interfaceNodeVisitor<R,P>
-
visitBinaryComparisonOperation
Visits a binary comparison operation (<,<=>,>=,==,!=).- Parameters:
n- the binary comparison operation node to visitp- the input for the visitor- Returns:
- the output produced by the visitor
-
visitLessThan
- Specified by:
visitLessThanin interfaceNodeVisitor<R,P>
-
visitLessThanOrEqual
- Specified by:
visitLessThanOrEqualin interfaceNodeVisitor<R,P>
-
visitGreaterThan
- Specified by:
visitGreaterThanin interfaceNodeVisitor<R,P>
-
visitGreaterThanOrEqual
- Specified by:
visitGreaterThanOrEqualin interfaceNodeVisitor<R,P>
-
visitEqualTo
- Specified by:
visitEqualToin interfaceNodeVisitor<R,P>
-
visitNotEqual
- Specified by:
visitNotEqualin interfaceNodeVisitor<R,P>
-
visitBinaryConditionalOperation
Visits a binary conditional operation (&&,||).- Parameters:
n- the binary conditional operation node to visitp- the input for the visitor- Returns:
- the output produced by the visitor
-
visitConditionalAnd
- Specified by:
visitConditionalAndin interfaceNodeVisitor<R,P>
-
visitConditionalOr
- Specified by:
visitConditionalOrin interfaceNodeVisitor<R,P>
-
visitConditionalNot
- Specified by:
visitConditionalNotin interfaceNodeVisitor<R,P>
-
visitTernaryExpression
- Specified by:
visitTernaryExpressionin interfaceNodeVisitor<R,P>
-
visitSwitchExpressionNode
- Specified by:
visitSwitchExpressionNodein interfaceNodeVisitor<R,P>
-
visitAssignment
- Specified by:
visitAssignmentin interfaceNodeVisitor<R,P>
-
visitLocalVariable
- Specified by:
visitLocalVariablein interfaceNodeVisitor<R,P>
-
visitVariableDeclaration
- Specified by:
visitVariableDeclarationin interfaceNodeVisitor<R,P>
-
visitFieldAccess
- Specified by:
visitFieldAccessin interfaceNodeVisitor<R,P>
-
visitMethodAccess
- Specified by:
visitMethodAccessin interfaceNodeVisitor<R,P>
-
visitArrayAccess
- Specified by:
visitArrayAccessin interfaceNodeVisitor<R,P>
-
visitThis
Visits a explicit or implicitthisreference node.- Parameters:
n- thethisnode to visitp- the input for the visitor- Returns:
- the output produced by the visitor
-
visitImplicitThis
- Specified by:
visitImplicitThisin interfaceNodeVisitor<R,P>
-
visitExplicitThis
- Specified by:
visitExplicitThisin interfaceNodeVisitor<R,P>
-
visitSuper
- Specified by:
visitSuperin interfaceNodeVisitor<R,P>
-
visitReturn
- Specified by:
visitReturnin interfaceNodeVisitor<R,P>
-
visitLambdaResultExpression
- Specified by:
visitLambdaResultExpressionin interfaceNodeVisitor<R,P>
-
visitStringConversion
- Specified by:
visitStringConversionin interfaceNodeVisitor<R,P>
-
visitWideningConversion
- Specified by:
visitWideningConversionin interfaceNodeVisitor<R,P>
-
visitNarrowingConversion
- Specified by:
visitNarrowingConversionin interfaceNodeVisitor<R,P>
-
visitInstanceOf
- Specified by:
visitInstanceOfin interfaceNodeVisitor<R,P>
-
visitTypeCast
- Specified by:
visitTypeCastin interfaceNodeVisitor<R,P>
-
visitAssertionError
- Specified by:
visitAssertionErrorin interfaceNodeVisitor<R,P>
-
visitSynchronized
- Specified by:
visitSynchronizedin interfaceNodeVisitor<R,P>
-
visitThrow
- Specified by:
visitThrowin interfaceNodeVisitor<R,P>
-
visitCase
- Specified by:
visitCasein interfaceNodeVisitor<R,P>
-
visitMethodInvocation
- Specified by:
visitMethodInvocationin interfaceNodeVisitor<R,P>
-
visitObjectCreation
- Specified by:
visitObjectCreationin interfaceNodeVisitor<R,P>
-
visitClassDeclaration
Description copied from interface:NodeVisitorVisits an anonymous/inner/nested class declaration within a method.- Specified by:
visitClassDeclarationin interfaceNodeVisitor<R,P> - Parameters:
n- theClassDeclarationNodeto be visitedp- the argument for the operation implemented by this visitor- Returns:
- the return value of the operation implemented by this visitor
-
visitMemberReference
- Specified by:
visitMemberReferencein interfaceNodeVisitor<R,P>
-
visitArrayCreation
- Specified by:
visitArrayCreationin interfaceNodeVisitor<R,P>
-
visitArrayType
- Specified by:
visitArrayTypein interfaceNodeVisitor<R,P>
-
visitPrimitiveType
- Specified by:
visitPrimitiveTypein interfaceNodeVisitor<R,P>
-
visitClassName
- Specified by:
visitClassNamein interfaceNodeVisitor<R,P>
-
visitPackageName
- Specified by:
visitPackageNamein interfaceNodeVisitor<R,P>
-
visitParameterizedType
- Specified by:
visitParameterizedTypein interfaceNodeVisitor<R,P>
-
visitMarker
- Specified by:
visitMarkerin interfaceNodeVisitor<R,P>
-
visitExpressionStatement
Description copied from interface:NodeVisitorVisits an expression that is used as a statement. This node is a marker after the expression node(s).- Specified by:
visitExpressionStatementin interfaceNodeVisitor<R,P> - Parameters:
n- theExpressionStatementNodeto be visitedp- the argument for the operation implemented by this visitor- Returns:
- the return value of the operation implemented by this visitor
-
visitDeconstructorPattern
Description copied from interface:NodeVisitorVisits a deconstructor pattern node.- Specified by:
visitDeconstructorPatternin interfaceNodeVisitor<R,P> - Parameters:
n- theDeconstructorPatternNodeto be visitedp- the argument for the operation implemented by this visitor- Returns:
- the return value of the operation implemented by this visitor
-
visitAnyPattern
Description copied from interface:NodeVisitorVisits an any pattern node.- Specified by:
visitAnyPatternin interfaceNodeVisitor<R,P> - Parameters:
n- theAnyPatternNodeto be visitedp- the argument for the operation implemented by this visitor- Returns:
- the return value of the operation implemented by this visitor
-