/** * Frees this parser, enabling it to be reused. * * @param bool $deep Whether to clean peek and reset errors. * @param int $position Position to reset. * * @return void */ public function free($deep = false, $position = 0) { // WARNING! Use this method with care. It resets the scanner! $this->lexer->resetPosition($position); // Deep = true cleans peek and also any previously defined errors if ($deep) { $this->lexer->resetPeek(); } $this->lexer->token = null; $this->lexer->lookahead = null; }