<?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); }