public class ConditionalJump extends ExtendedNode
ExtendedNode.ExtendedNodeType.CONDITIONAL_JUMP
.
Important: In the list of extended nodes, there should not be any labels that point
to a conditional jump. Furthermore, the node directly ahead of any conditional jump has to be a
NodeWithExceptionsHolder
or NodeHolder
, and the node held by that extended node
is required to be of boolean type.
ExtendedNode.ExtendedNodeType
Modifier and Type | Field and Description |
---|---|
protected Store.FlowRule |
falseFlowRule
The false branch flow rule.
|
protected Label |
falseSucc
The false successor label.
|
protected Store.FlowRule |
trueFlowRule
The true branch flow rule.
|
protected Label |
trueSucc
The true successor label.
|
block, terminatesExecution, type
Constructor and Description |
---|
ConditionalJump(Label trueSucc,
Label falseSucc)
Construct a ConditionalJump.
|
Modifier and Type | Method and Description |
---|---|
Label |
getElseLabel() |
Store.FlowRule |
getFalseFlowRule()
Returns the false branch flow rule.
|
Label |
getThenLabel() |
Store.FlowRule |
getTrueFlowRule()
Returns the true branch flow rule.
|
void |
setFalseFlowRule(Store.FlowRule rule)
Sets the false branch flow rule.
|
void |
setTrueFlowRule(Store.FlowRule rule)
Sets the true branch flow rule.
|
String |
toString()
Produce a string representation.
|
String |
toStringDebug()
Returns a verbose string representation of this, useful for debugging.
|
getBlock, getLabel, getNode, getTerminatesExecution, getType, setBlock, setTerminatesExecution
protected final Label trueSucc
protected final Label falseSucc
protected Store.FlowRule trueFlowRule
protected Store.FlowRule falseFlowRule
public Label getThenLabel()
public Label getElseLabel()
public Store.FlowRule getTrueFlowRule()
public Store.FlowRule getFalseFlowRule()
public void setTrueFlowRule(Store.FlowRule rule)
rule
- the new true branch flow rulepublic void setFalseFlowRule(Store.FlowRule rule)
rule
- the new false branch flow rulepublic String toString()
toString
in class ExtendedNode
PhaseOneResult.nodeToString(org.checkerframework.dataflow.cfg.builder.ExtendedNode)
public String toStringDebug()
ExtendedNode
toStringDebug
in class ExtendedNode