public abstract static class ControlFlowGraph.AbstractCfgNodeTraversalCallback extends java.lang.Object implements NodeTraversal.Callback
For example, traversing an IF node as root will visit the two subtrees
pointed by the ControlFlowGraph.Branch.ON_TRUE and
ControlFlowGraph.Branch.ON_FALSE edges.
| Constructor and Description |
|---|
AbstractCfgNodeTraversalCallback() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
shouldTraverse(NodeTraversal nodeTraversal,
Node n,
Node parent)
Visits a node in preorder (before its children) and decides whether its children should be
traversed.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitvisitpublic final boolean shouldTraverse(NodeTraversal nodeTraversal, Node n, Node parent)
NodeTraversal.CallbackNodeTraversal.Callback.shouldTraverse(NodeTraversal, Node, Node) in preorder and by NodeTraversal.Callback.visit(NodeTraversal,
Node, Node) in postorder.
Siblings are always visited left-to-right.
Implementations can have side-effects (e.g. modify the parse tree). Removing the current node is legal, but removing or reordering nodes above the current node may cause nodes to be visited twice or not at all.
shouldTraverse in interface NodeTraversal.CallbacknodeTraversal - The current traversal.n - The current node.parent - The parent of the current node.Copyright © 2009-2020 Google. All Rights Reserved.