T - the type of MergeableState handled by this PostOrderNodeIteratorpublic abstract class PostOrderNodeIterator<T extends MergeableState<T>> extends Object
For this iterator the CFG is defined by the classical CFG nodes (ControlSplitNode,
AbstractMergeNode...) and the next pointers of
FixedWithNextNode.
While iterating it maintains a user-defined state by calling the methods available in
MergeableState.
| Constructor and Description |
|---|
PostOrderNodeIterator(FixedNode start,
T initialState) |
| Modifier and Type | Method and Description |
|---|---|
void |
apply() |
protected Set<Node> |
controlSplit(ControlSplitNode controlSplit) |
protected void |
end(EndNode endNode) |
protected void |
finished() |
protected void |
invokeWithException(InvokeWithExceptionNode invoke) |
protected void |
loopBegin(LoopBeginNode loopBegin) |
protected void |
loopEnd(LoopEndNode loopEnd) |
protected void |
merge(AbstractMergeNode merge) |
protected abstract void |
node(FixedNode node) |
protected T extends MergeableState<T> state
public void apply()
protected abstract void node(FixedNode node)
protected void end(EndNode endNode)
protected void merge(AbstractMergeNode merge)
protected void loopBegin(LoopBeginNode loopBegin)
protected void loopEnd(LoopEndNode loopEnd)
protected Set<Node> controlSplit(ControlSplitNode controlSplit)
null is returned, then all of the node's successors will be visited.protected void invokeWithException(InvokeWithExceptionNode invoke)
protected void finished()