Class AssignmentNode
java.lang.Object
org.checkerframework.dataflow.cfg.node.Node
org.checkerframework.dataflow.cfg.node.AssignmentNode
- All Implemented Interfaces:
- org.plumelib.util.UniqueId
A node for an assignment:
 
variable = expression variable += expression expression . field = expression expression [ index ] = expressionWe allow assignments without corresponding AST
Trees.
 Some desugarings create additional assignments to synthetic local variables. Such assignment nodes are marked as synthetic to allow special handling in transfer functions.
String concatenation compound assignments are desugared to an assignment and a string concatenation.
Numeric compound assignments are desugared to an assignment and a numeric operation.
- 
Field SummaryFields
- 
Constructor SummaryConstructorsConstructorDescriptionAssignmentNode(Tree tree, Node target, Node expression) Create a (non-synthetic) AssignmentNode.AssignmentNode(Tree tree, Node target, Node expression, boolean synthetic) Create an AssignmentNode.
- 
Method SummaryModifier and TypeMethodDescription<R,P> R accept(NodeVisitor<R, P> visitor, P p) Accept method of the visitor pattern.booleanReturns the right-hand-side of the assignment.Returns the left-hand-side of the assignment.getTree()Returns theTreein the abstract syntax tree, ornullif no corresponding tree exists.inthashCode()booleanCheck if the assignment node is synthetic, e.g.toString()Methods inherited from class org.checkerframework.dataflow.cfg.node.NodegetBlock, getInSource, getTransitiveOperands, getType, getUid, isLValue, nodeCollectionToString, setBlock, setInSource, setLValue, toStringDebugMethods inherited from class java.lang.Objectclone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.plumelib.util.UniqueIdgetClassAndUid
- 
Field Details- 
treeThe underlying assignment tree.
- 
lhsThe node for the LHS of the assignment tree.
- 
rhsThe node for the RHS of the assignment tree.
- 
syntheticprotected final boolean syntheticWhether the assignment node is synthetic
 
- 
- 
Constructor Details- 
AssignmentNodeCreate a (non-synthetic) AssignmentNode.- Parameters:
- tree- the- AssignmentTreecorresponding to the- AssignmentNode
- target- the lhs of- tree
- expression- the rhs of- tree
 
- 
AssignmentNodeCreate an AssignmentNode.- Parameters:
- tree- the- AssignmentTreecorresponding to the- AssignmentNode
- target- the lhs of- tree
- expression- the rhs of- tree
- synthetic- whether the assignment node is synthetic
 
 
- 
- 
Method Details- 
getTargetReturns the left-hand-side of the assignment.- Returns:
- the left-hand-side of the assignment
 
- 
getExpressionReturns the right-hand-side of the assignment.- Returns:
- the right-hand-side of the assignment
 
- 
getTreeDescription copied from class:NodeReturns theTreein the abstract syntax tree, ornullif no corresponding tree exists. For instance, this is the case for anImplicitThisNode.
- 
isSyntheticpublic boolean isSynthetic()Check if the assignment node is synthetic, e.g. the synthetic assignment in a ternary expression.- Returns:
- true if the assignment node is synthetic
 
- 
acceptDescription copied from class:NodeAccept method of the visitor pattern.
- 
toString
- 
equals
- 
hashCode
- 
getOperandsDescription copied from class:Node- Specified by:
- getOperandsin class- Node
- Returns:
- a collection containing all of the operand Nodes of thisNode
 
 
-