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