public class RegularBlockImpl extends SingleSuccessorBlockImpl implements RegularBlock
Block.BlockType
Modifier and Type | Field and Description |
---|---|
protected List<Node> |
contents
Internal representation of the contents.
|
flowRule, successor
id, lastId, predecessors, type
Constructor and Description |
---|
RegularBlockImpl()
Initialize an empty basic block to be filled with contents and linked to other basic blocks
later.
|
Modifier and Type | Method and Description |
---|---|
void |
addNode(Node t)
Add a node to the contents of this basic block.
|
void |
addNodes(List<? extends Node> ts)
Add multiple nodes to the contents of this basic block.
|
List<Node> |
getContents()
Returns the unmodifiable sequence of
Node s. |
@Nullable Node |
getLastNode()
Returns the last node of this block, or null if none.
|
List<Node> |
getNodes()
Returns the nodes contained within this basic block.
|
@Nullable BlockImpl |
getRegularSuccessor()
Returns the regular successor block.
|
boolean |
isEmpty()
Is this block empty (i.e., does it not contain any contents).
|
String |
toString() |
getFlowRule, getSuccessor, getSuccessors, setFlowRule, setSuccessor
addPredecessor, getId, getPredecessors, getType, removePredecessor
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getFlowRule, getSuccessor, setFlowRule
getId, getPredecessors, getSuccessors, getType
public RegularBlockImpl()
public void addNode(Node t)
public void addNodes(List<? extends Node> ts)
public List<Node> getContents()
RegularBlock
Node
s.getContents
in interface RegularBlock
Node
spublic List<Node> getNodes()
The following invariant holds.
forall n in getNodes() :: n.getBlock() == this
This implementation returns an non-empty list.
public @Nullable Node getLastNode()
Block
getLastNode
in interface Block
null
public @Nullable BlockImpl getRegularSuccessor()
RegularBlock
getRegularSuccessor
in interface RegularBlock
public boolean isEmpty()
RegularBlock
isEmpty
in interface RegularBlock