protected function traverseForVisitor(Twig_NodeVisitorInterface $visitor, Twig_NodeInterface $node = null) {
if (null === $node) {
return null;
}
$node = $visitor
->enterNode($node, $this->env);
foreach ($node as $k => $n) {
if (false !== ($n = $this
->traverseForVisitor($visitor, $n))) {
$node
->setNode($k, $n);
}
else {
$node
->removeNode($k);
}
}
return $visitor
->leaveNode($node, $this->env);
}