/** * @param Node $node * @param NodeVisitor $visitor * * @return bool */ private function visitNode(Node $node, NodeVisitor $visitor) { $visitor->enterNode($node); foreach ($node->getChildren() as $key => $child) { if (!$this->visitNode($child, $visitor)) { $node->removeChild($key); } } return $visitor->leaveNode($node); }