tokens = $tokens->toTokenArray(); } elseif ( is_array( $tokens ) ) { Util::assertAllInstanceOf( $tokens, Token::class, '$tokens' ); $this->tokens = $tokens; } else { throw new \InvalidArgumentException( '$tokens must be a TokenList or an array of tokens' ); } if ( $eof && $eof->type() === Token::T_EOF ) { $this->eof = $eof; } else { $data = []; if ( $eof ) { $data['position'] = $eof->getPosition(); } $this->eof = new Token( Token::T_EOF, $data ); } } public function getParseErrors() { return []; } public function clearParseErrors() { } public function consumeToken() { return array_shift( $this->tokens ) ?: $this->eof; } }