72 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?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);
 | |
| }
 |