60 lines
1.5 KiB
PHP
60 lines
1.5 KiB
PHP
|
<?php
|
||
|
|
||
|
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
|
||
|
* * otherwise: $node is set to the return value
|
||
|
*
|
||
|
* @param Node $node Node
|
||
|
*
|
||
|
* @return null|Node Node
|
||
|
*/
|
||
|
public function enterNode(Node $node);
|
||
|
|
||
|
/**
|
||
|
* Called when leaving a node.
|
||
|
*
|
||
|
* Return value semantics:
|
||
|
* * null: $node stays as-is
|
||
|
* * false: $node is removed from the parent array
|
||
|
* * array: 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|Node|false|Node[] Node
|
||
|
*/
|
||
|
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);
|
||
|
}
|