public function traverse(array $nodes)
{
foreach ($this->visitors as $visitor) {
if (null !== ($return = $visitor->beforeTraverse($nodes))) {
$nodes = $return;
}
}
$nodes = $this->traverseArray($nodes);
foreach ($this->visitors as $visitor) {
if (null !== ($return = $visitor->afterTraverse($nodes))) {
$nodes = $return;
}
}
return $nodes;
}