public class ConstantPropagationTransfer extends AbstractNodeVisitor<TransferResult<Constant,ConstantPropagationStore>,TransferInput<Constant,ConstantPropagationStore>> implements TransferFunction<Constant,ConstantPropagationStore>
Constructor and Description |
---|
ConstantPropagationTransfer() |
Modifier and Type | Method and Description |
---|---|
ConstantPropagationStore |
initialStore(UnderlyingAST underlyingAST,
java.util.List<LocalVariableNode> parameters) |
protected void |
process(ConstantPropagationStore p,
Node a,
Node b) |
TransferResult<Constant,ConstantPropagationStore> |
visitAssignment(AssignmentNode n,
TransferInput<Constant,ConstantPropagationStore> pi) |
TransferResult<Constant,ConstantPropagationStore> |
visitEqualTo(EqualToNode n,
TransferInput<Constant,ConstantPropagationStore> pi) |
TransferResult<Constant,ConstantPropagationStore> |
visitIntegerLiteral(IntegerLiteralNode n,
TransferInput<Constant,ConstantPropagationStore> pi) |
TransferResult<Constant,ConstantPropagationStore> |
visitLocalVariable(LocalVariableNode node,
TransferInput<Constant,ConstantPropagationStore> before) |
TransferResult<Constant,ConstantPropagationStore> |
visitNode(Node n,
TransferInput<Constant,ConstantPropagationStore> p) |
visitArrayAccess, visitArrayCreation, visitArrayType, visitAssertionError, visitBitwiseAnd, visitBitwiseComplement, visitBitwiseOr, visitBitwiseXor, visitBooleanLiteral, visitCase, visitCharacterLiteral, 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, 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, java.util.List<LocalVariableNode> parameters)
initialStore
in interface TransferFunction<Constant,ConstantPropagationStore>
parameters
is only set if the underlying AST is a method.public 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)