/** * Throws a syntax error * * @param string $message Error message * @param Position $position Error position * * @return void * * @throws Exception */ protected function error($message = "", $position = null) { if (!$message) { $token = $this->scanner->getToken(); if ($token === null) { $message = "Unexpected end of input"; } else { $position = $token->getLocation()->getStart(); $message = "Unexpected: " . $token->getValue(); } } if (!$position) { $position = $this->scanner->getPosition(); } throw new Exception($message, $position); }