public function traverse(Expression $expr)
    {
        // Do one full traversal per visitor. If any of the visitors removes
        // the expression entirely, subsequent visitors are not invoked.
        foreach ($this->visitors as $visitor) {
            $expr = $this->traverseForVisitor($expr, $visitor);

            if (!$expr) {
                return null;
            }
        }

        return $expr;
    }
public function traverse(Expression $expr)
    {
        // Do one full traversal per visitor. If any of the visitors removes
        // the expression entirely, subsequent visitors are not invoked.
        foreach ($this->visitors as $visitor) {
            $expr = $this->traverseForVisitor($expr, $visitor);

            if (!$expr) {
                return null;
            }
        }

        return $expr;
    }
public function traverse ( Expression $ expr ) { // Do one full traversal per visitor. If any of the visitors removes // the expression entirely, subsequent visitors are not invoked. foreach ( $ this -> visitors as $ visitor ) { $ expr = $ this -> traverseForVisitor ( $ expr , $ visitor ) ; if ( ! $ expr ) { return null ; } } return $ expr ; }
Traverses an expression.

@param Expression $expr The expression to traverse.

@return Expression The modified expression. May be `null` if the
expression was removed entirely.
Traverses an expression .