| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | 
							- <?php declare(strict_types=1);
 
- namespace PhpParser;
 
- interface NodeVisitor
 
- {
 
-     /**
 
-      * Called once before traversal.
 
-      *
 
-      * Return value semantics:
 
-      *  * null:      $nodes stays as-is
 
-      *  * otherwise: $nodes is set to the return value
 
-      *
 
-      * @param Node[] $nodes Array of nodes
 
-      *
 
-      * @return null|Node[] Array of nodes
 
-      */
 
-     public function beforeTraverse(array $nodes);
 
-     /**
 
-      * Called when entering a node.
 
-      *
 
-      * Return value semantics:
 
-      *  * null
 
-      *        => $node stays as-is
 
-      *  * NodeTraverser::DONT_TRAVERSE_CHILDREN
 
-      *        => Children of $node are not traversed. $node stays as-is
 
-      *  * NodeTraverser::STOP_TRAVERSAL
 
-      *        => Traversal is aborted. $node stays as-is
 
-      *  * otherwise
 
-      *        => $node is set to the return value
 
-      *
 
-      * @param Node $node Node
 
-      *
 
-      * @return null|int|Node Replacement node (or special return value)
 
-      */
 
-     public function enterNode(Node $node);
 
-     /**
 
-      * Called when leaving a node.
 
-      *
 
-      * Return value semantics:
 
-      *  * null
 
-      *        => $node stays as-is
 
-      *  * NodeTraverser::REMOVE_NODE
 
-      *        => $node is removed from the parent array
 
-      *  * NodeTraverser::STOP_TRAVERSAL
 
-      *        => Traversal is aborted. $node stays as-is
 
-      *  * array (of Nodes)
 
-      *        => The return value is merged into the parent array (at the position of the $node)
 
-      *  * otherwise
 
-      *        => $node is set to the return value
 
-      *
 
-      * @param Node $node Node
 
-      *
 
-      * @return null|int|Node|Node[] Replacement node (or special return value)
 
-      */
 
-     public function leaveNode(Node $node);
 
-     /**
 
-      * Called once after traversal.
 
-      *
 
-      * Return value semantics:
 
-      *  * null:      $nodes stays as-is
 
-      *  * otherwise: $nodes is set to the return value
 
-      *
 
-      * @param Node[] $nodes Array of nodes
 
-      *
 
-      * @return null|Node[] Array of nodes
 
-      */
 
-     public function afterTraverse(array $nodes);
 
- }
 
 
  |