private function unfold(): bool
    {
        while (0 < \count($this->todo)) {
            $rule = \array_pop($this->todo);

            if ($rule instanceof Escape) {
                $this->addTrace($rule);
            } else {
                $out = $this->reduce($this->grammar->fetch($rule->getRule()), $rule->getData());

                if ($out === false && $this->backtrack() === false) {
                    return false;
                }
            }
        }

        return true;
    }
private function unfold(): bool
    {
        while (0 < \count($this->todo)) {
            $rule = \array_pop($this->todo);

            if ($rule instanceof Escape) {
                $this->addTrace($rule);
            } else {
                $out = $this->reduce($this->grammar->fetch($rule->getRule()), $rule->getData());

                if ($out === false && $this->backtrack() === false) {
                    return false;
                }
            }
        }

        return true;
    }
private function unfold ( ) : bool { while ( 0 < \ count ( $ this -> todo ) ) { $ rule = \ array_pop ( $ this -> todo ) ; if ( $ rule instanceof Escape ) { $ this -> addTrace ( $ rule ) ; } else { $ out = $ this -> reduce ( $ this -> grammar -> fetch ( $ rule -> getRule ( ) ) , $ rule -> getData ( ) ) ; if ( $ out === false && $ this -> backtrack ( ) === false ) { return false ; } } } return true ; }
Unfold trace.

@return bool
Unfold trace .