polyglot.visit
Class PruningVisitor

java.lang.Object
  extended by polyglot.visit.NodeVisitor
      extended by polyglot.visit.PruningVisitor
All Implemented Interfaces:
java.lang.Cloneable, Copy

public class PruningVisitor
extends NodeVisitor

A PruningVisitor is used to prune the traversal of the AST at a particular node. Returning a PruningVisitor from the NodeVisitor.enter method ensures no children will be visited.


Constructor Summary
PruningVisitor()
           
 
Method Summary
 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.
 
Methods inherited from class polyglot.visit.NodeVisitor
begin, copy, enter, enter, finish, finish, leave, leave, override, toString, visitEdge, visitEdgeNoOverride
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PruningVisitor

public PruningVisitor()
Method Detail

override

public Node override(Node parent,
                     Node n)
Description copied from class: NodeVisitor
Given a tree rooted at 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.

Overrides:
override in class NodeVisitor
Parameters:
parent - The parent of n, null if n has no parent.
n - The root of the subtree to be traversed.
Returns:
A node if normal traversal is to stop, null if it is to continue.