You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
2.0 KiB
72 lines
2.0 KiB
<?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); |
|
}
|
|
|