public abstract class HaltingVisitor extends NodeVisitor
bypass(Node n)
to
have the visitor skip n and its children when recursing through the AST.Modifier and Type | Field and Description |
---|---|
protected java.util.Collection<Node> |
bypass |
protected Node |
bypassParent |
Modifier | Constructor and Description |
---|---|
protected |
HaltingVisitor(Lang lang) |
Modifier and Type | Method and Description |
---|---|
HaltingVisitor |
bypass(java.util.Collection<? extends Node> c)
Return a new visitor that will bypass all nodes in collection c.
|
HaltingVisitor |
bypass(Node n)
Return a new visitor that bypasses node n during visit children.
|
HaltingVisitor |
bypassChildren(Node n)
Return a new visitor that will bypass all children of node n.
|
Node |
override(Node parent,
Node n)
Given a tree rooted at
n , the visitor has the option of
overriding all traversal of the children of n . |
HaltingVisitor |
visitChildren()
Return a new visitor that will visit all children.
|
protected Node bypassParent
protected java.util.Collection<Node> bypass
protected HaltingVisitor(Lang lang)
public HaltingVisitor bypassChildren(Node n)
public HaltingVisitor visitChildren()
public HaltingVisitor bypass(Node n)
public HaltingVisitor bypass(java.util.Collection<? extends Node> c)
public Node override(Node parent, Node n)
NodeVisitor
n
, the visitor has the option of
overriding all traversal of the children of n
. If no
changes were made to n
and the visitor wishes to prevent
further traversal of the tree, then it should return n
. If
changes were made to the subtree, then the visitor should return a
copy of n
with appropriate changes. Finally, if the
visitor does not wish to override traversal of the subtree rooted at
n
, then it should return null
.
The default implementation of this method is to call
override(n)
, as most subclasses do not need to know
the parent of the node n
.
override
in class NodeVisitor
parent
- The parent of n
,
null
if n
has no parent.n
- The root of the subtree to be traversed.null
if it
is to continue.