public class ConstantPropagationTransfer extends AbstractNodeVisitor<TransferResult<Constant,ConstantPropagationStore>,TransferInput<Constant,ConstantPropagationStore>> implements ForwardTransferFunction<Constant,ConstantPropagationStore>
Constructor and Description |
---|
ConstantPropagationTransfer() |
visitArrayAccess, visitArrayCreation, visitArrayType, visitAssertionError, visitBitwiseAnd, visitBitwiseComplement, visitBitwiseOr, visitBitwiseXor, visitBooleanLiteral, visitCase, visitCharacterLiteral, visitClassDeclaration, visitClassName, visitConditionalAnd, visitConditionalNot, visitConditionalOr, visitDoubleLiteral, visitExplicitThisLiteral, visitFieldAccess, visitFloatingDivision, visitFloatingRemainder, visitFloatLiteral, visitGreaterThan, visitGreaterThanOrEqual, visitImplicitThisLiteral, visitInstanceOf, visitIntegerDivision, visitIntegerRemainder, visitLambdaResultExpression, visitLeftShift, visitLessThan, visitLessThanOrEqual, visitLongLiteral, visitMarker, visitMemberReference, visitMethodAccess, visitMethodInvocation, visitNarrowingConversion, visitNotEqual, visitNullChk, visitNullLiteral, visitNumericalAddition, visitNumericalMinus, visitNumericalMultiplication, visitNumericalPlus, visitNumericalSubtraction, visitObjectCreation, visitPackageName, visitParameterizedType, visitPrimitiveType, visitReturn, visitShortLiteral, visitSignedRightShift, visitStringConcatenate, visitStringConcatenateAssignment, visitStringConversion, visitStringLiteral, visitSuper, visitSynchronized, visitTernaryExpression, visitThisLiteral, visitThrow, visitTypeCast, visitUnsignedRightShift, visitValueLiteral, visitVariableDeclaration, visitWideningConversion
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
visitArrayAccess, visitArrayCreation, visitArrayType, visitAssertionError, visitBitwiseAnd, visitBitwiseComplement, visitBitwiseOr, visitBitwiseXor, visitBooleanLiteral, visitCase, visitCharacterLiteral, visitClassDeclaration, visitClassName, visitConditionalAnd, visitConditionalNot, visitConditionalOr, visitDoubleLiteral, visitExplicitThisLiteral, visitFieldAccess, visitFloatingDivision, visitFloatingRemainder, visitFloatLiteral, visitGreaterThan, visitGreaterThanOrEqual, visitImplicitThisLiteral, visitInstanceOf, visitIntegerDivision, visitIntegerRemainder, visitLambdaResultExpression, visitLeftShift, visitLessThan, visitLessThanOrEqual, visitLongLiteral, visitMarker, visitMemberReference, visitMethodAccess, visitMethodInvocation, visitNarrowingConversion, visitNotEqual, visitNullChk, visitNullLiteral, visitNumericalAddition, visitNumericalMinus, visitNumericalMultiplication, visitNumericalPlus, visitNumericalSubtraction, visitObjectCreation, visitPackageName, visitParameterizedType, visitPrimitiveType, visitReturn, visitShortLiteral, visitSignedRightShift, visitStringConcatenate, visitStringConcatenateAssignment, visitStringConversion, visitStringLiteral, visitSuper, visitSynchronized, visitTernaryExpression, visitThrow, visitTypeCast, visitUnsignedRightShift, visitVariableDeclaration, visitWideningConversion
public ConstantPropagationStore initialStore(UnderlyingAST underlyingAST, @Nullable List<LocalVariableNode> parameters)
ForwardTransferFunction
parameters
is non-null if the underlying AST is a method.initialStore
in interface ForwardTransferFunction<Constant,ConstantPropagationStore>
underlyingAST
- an abstract syntax treeparameters
- a list of local variable nodespublic TransferResult<Constant,ConstantPropagationStore> visitLocalVariable(LocalVariableNode node, TransferInput<Constant,ConstantPropagationStore> before)
visitLocalVariable
in interface NodeVisitor<TransferResult<Constant,ConstantPropagationStore>,TransferInput<Constant,ConstantPropagationStore>>
visitLocalVariable
in class AbstractNodeVisitor<TransferResult<Constant,ConstantPropagationStore>,TransferInput<Constant,ConstantPropagationStore>>
public TransferResult<Constant,ConstantPropagationStore> visitNode(Node n, TransferInput<Constant,ConstantPropagationStore> p)
visitNode
in class AbstractNodeVisitor<TransferResult<Constant,ConstantPropagationStore>,TransferInput<Constant,ConstantPropagationStore>>
public TransferResult<Constant,ConstantPropagationStore> visitAssignment(AssignmentNode n, TransferInput<Constant,ConstantPropagationStore> pi)
visitAssignment
in interface NodeVisitor<TransferResult<Constant,ConstantPropagationStore>,TransferInput<Constant,ConstantPropagationStore>>
visitAssignment
in class AbstractNodeVisitor<TransferResult<Constant,ConstantPropagationStore>,TransferInput<Constant,ConstantPropagationStore>>
public TransferResult<Constant,ConstantPropagationStore> visitIntegerLiteral(IntegerLiteralNode n, TransferInput<Constant,ConstantPropagationStore> pi)
visitIntegerLiteral
in interface NodeVisitor<TransferResult<Constant,ConstantPropagationStore>,TransferInput<Constant,ConstantPropagationStore>>
visitIntegerLiteral
in class AbstractNodeVisitor<TransferResult<Constant,ConstantPropagationStore>,TransferInput<Constant,ConstantPropagationStore>>
public TransferResult<Constant,ConstantPropagationStore> visitEqualTo(EqualToNode n, TransferInput<Constant,ConstantPropagationStore> pi)
visitEqualTo
in interface NodeVisitor<TransferResult<Constant,ConstantPropagationStore>,TransferInput<Constant,ConstantPropagationStore>>
visitEqualTo
in class AbstractNodeVisitor<TransferResult<Constant,ConstantPropagationStore>,TransferInput<Constant,ConstantPropagationStore>>
protected void process(ConstantPropagationStore p, Node a, Node b)