php-parser/lib/PhpParser/NodeTraverserInterface.php

49 lines
1.2 KiB
PHP
Raw Normal View History

<?php
namespace PhpParser;
interface NodeTraverserInterface
{
/**
* If NodeVisitor::enterNode() returns DONT_TRAVERSE_CHILDREN, child nodes
* of the current node will not be traversed for any visitors.
*
* For subsequent visitors enterNode() will still be called on the current
* node and leaveNode() will also be invoked for the current node.
*/
const DONT_TRAVERSE_CHILDREN = 1;
/**
* If NodeVisitor::leaveNode() returns REMOVE_NODE for a node that occurs
* in an array, it will be removed from the array.
*
* For subsequent visitors leaveNode() will still be invoked for the
* removed node.
*/
const REMOVE_NODE = false;
/**
* Adds a visitor.
*
* @param NodeVisitor $visitor Visitor to add
*/
function addVisitor(NodeVisitor $visitor);
/**
* Removes an added visitor.
*
* @param NodeVisitor $visitor
*/
function removeVisitor(NodeVisitor $visitor);
/**
* Traverses an array of nodes using the registered visitors.
*
* @param Node[] $nodes Array of nodes
*
* @return Node[] Traversed array of nodes
*/
function traverse(array $nodes);
}