coins.flow
Interface BBlockNodeIterator

All Known Implementing Classes:
BBlockHirNodeIteratorImpl

public interface BBlockNodeIterator

BBlockNodIterator inteterface Basic block node iterator to traverse node in a basic block. in the order of from top to bottom, from left to right. If the basic block containes a list of subtrees, then the list is traversed from head to tail traversing each subtree.


Method Summary
 HIR getNextExecutableNode()
          getNextExecutableNode Get the node that refer/set data or change control flow directly.
 boolean hasNext()
          hasNext
 IR next()
          next Get the next node in this basic block.
 

Method Detail

next

public IR next()
next Get the next node in this basic block. By repetitively invoking "next", all nodes in the basic block are traversed.


hasNext

public boolean hasNext()
hasNext

Returns:
true if there is next node remaining in the basic block.

getNextExecutableNode

public HIR getNextExecutableNode()
getNextExecutableNode Get the node that refer/set data or change control flow directly. The iterator skips such non-executable nodes as labelNode, blockNode, listNode, stmtNode, ifNode, forNode, whileNode, untilNode, switchNode, progNode, subpDefNode, labelDefNode, infNode, subpNode, typeNode, labeledStmtNode with non-null Stmt body, nullNode and get executable statement body or expression under the skipped node. If a labeled statement has null statement body, it is not skipped.