1
0
mirror of https://github.com/danog/PHP-Parser.git synced 2025-01-22 13:51:12 +01:00
PHP-Parser/lib/ParseErrorException.php
nikic d82bbb3bea Throw ParseErrorException on error instead of error callback
As long as the parser isn't reentrant having an error callback doesn't really make sense and only complicates everything.
2011-06-03 17:44:23 +02:00

70 lines
1.6 KiB
PHP

<?php
class ParseErrorException extends RuntimeException
{
protected $rawMessage;
protected $rawLine;
/**
* Creates an Exception signifying a parse error.
*
* @param string $message Error message
* @param int $line Error line in PHP file
*/
public function __construct($message, $line = -1) {
$this->rawMessage = (string) $message;
$this->rawLine = (int) $line;
$this->updateMessage();
}
/**
* Gets the error message
*
* @return string Error message
*/
public function getRawMessage() {
return $this->message;
}
/**
* Sets the line of the PHP file the error occurred in.
*
* @param string $message Error message
*/
public function setRawMessage($message) {
$this->message = (string) $message;
$this->updateMessage();
}
/**
* Gets the error line in the PHP file.
*
* @return int Error line in the PHP file
*/
public function getRawLine() {
return $this->rawLine;
}
/**
* Sets the line of the PHP file the error occurred in.
*
* @param int $line Error line in the PHP file
*/
public function setRawLine($line) {
$this->rawLine = (int) $line;
$this->updateMessage();
}
/**
* Updates the exception message after a change to rawMessage or rawLine.
*/
protected function updateMessage() {
$this->message = $this->rawMessage;
if (-1 === $this->rawLine) {
$this->message .= ' on unknown line';
} else {
$this->message .= ' on line ' . $this->rawLine;
}
}
}