mirror of
https://github.com/phabelio/PHP-Parser.git
synced 2025-01-22 05:11:39 +01:00
Add column info to EOF errors
EOF errors are now located one past the end of the file.
This commit is contained in:
parent
55b2ead967
commit
a35c2a2067
@ -121,7 +121,7 @@ class Error extends \RuntimeException
|
|||||||
}
|
}
|
||||||
|
|
||||||
private function toColumn($code, $pos) {
|
private function toColumn($code, $pos) {
|
||||||
if ($pos >= strlen($code)) {
|
if ($pos > strlen($code)) {
|
||||||
throw new \RuntimeException('Invalid position information');
|
throw new \RuntimeException('Invalid position information');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -123,8 +123,13 @@ class Lexer
|
|||||||
$startAttributes = array();
|
$startAttributes = array();
|
||||||
$endAttributes = array();
|
$endAttributes = array();
|
||||||
|
|
||||||
while (isset($this->tokens[++$this->pos])) {
|
while (1) {
|
||||||
$token = $this->tokens[$this->pos];
|
if (isset($this->tokens[++$this->pos])) {
|
||||||
|
$token = $this->tokens[$this->pos];
|
||||||
|
} else {
|
||||||
|
// EOF token with ID 0
|
||||||
|
$token = "\0";
|
||||||
|
}
|
||||||
|
|
||||||
if (isset($this->usedAttributes['startTokenPos'])) {
|
if (isset($this->usedAttributes['startTokenPos'])) {
|
||||||
$startAttributes['startTokenPos'] = $this->pos;
|
$startAttributes['startTokenPos'] = $this->pos;
|
||||||
@ -192,10 +197,7 @@ class Lexer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$startAttributes['startLine'] = $this->line;
|
throw new \RuntimeException('Reached end of lexer loop');
|
||||||
|
|
||||||
// 0 is the EOF token
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
9
test/code/parser/error_pos.test-fail
Normal file
9
test/code/parser/error_pos.test-fail
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
Error positions
|
||||||
|
-----
|
||||||
|
<?php foo
|
||||||
|
-----
|
||||||
|
Syntax error, unexpected EOF from 1:10 to 1:10
|
||||||
|
-----
|
||||||
|
<?php foo /* bar */
|
||||||
|
-----
|
||||||
|
Syntax error, unexpected EOF from 1:20 to 1:20
|
Loading…
x
Reference in New Issue
Block a user