mirror of
https://github.com/retailcrm/graphql-php.git
synced 2024-11-25 06:16:05 +03:00
Lexer: unify unexpected character errors
This commit is contained in:
parent
0f3ebaa20b
commit
25cfebbd37
@ -130,15 +130,6 @@ class Lexer
|
|||||||
// Read next char and advance string cursor:
|
// Read next char and advance string cursor:
|
||||||
[, $code, $bytes] = $this->readChar(true);
|
[, $code, $bytes] = $this->readChar(true);
|
||||||
|
|
||||||
// SourceCharacter
|
|
||||||
if ($code < 0x0020 && $code !== 0x0009 && $code !== 0x000A && $code !== 0x000D) {
|
|
||||||
throw new SyntaxError(
|
|
||||||
$this->source,
|
|
||||||
$position,
|
|
||||||
'Cannot contain the invalid character ' . Utils::printCharCode($code)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
switch ($code) {
|
switch ($code) {
|
||||||
case 33: // !
|
case 33: // !
|
||||||
return new Token(Token::BANG, $position, $position + 1, $line, $col, $prev);
|
return new Token(Token::BANG, $position, $position + 1, $line, $col, $prev);
|
||||||
@ -265,17 +256,28 @@ class Lexer
|
|||||||
->readString($line, $col, $prev);
|
->readString($line, $col, $prev);
|
||||||
}
|
}
|
||||||
|
|
||||||
$errMessage = $code === 39
|
|
||||||
? "Unexpected single quote character ('), did you mean to use " . 'a double quote (")?'
|
|
||||||
: 'Cannot parse the unexpected character ' . Utils::printCharCode($code) . '.';
|
|
||||||
|
|
||||||
throw new SyntaxError(
|
throw new SyntaxError(
|
||||||
$this->source,
|
$this->source,
|
||||||
$position,
|
$position,
|
||||||
$errMessage
|
$this->unexpectedCharacterMessage($code)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function unexpectedCharacterMessage($code)
|
||||||
|
{
|
||||||
|
// SourceCharacter
|
||||||
|
if ($code < 0x0020 && $code !== 0x0009 && $code !== 0x000A && $code !== 0x000D) {
|
||||||
|
return 'Cannot contain the invalid character ' . Utils::printCharCode($code);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($code === 39) {
|
||||||
|
return "Unexpected single quote character ('), did you mean to use " .
|
||||||
|
'a double quote (")?';
|
||||||
|
}
|
||||||
|
|
||||||
|
return 'Cannot parse the unexpected character ' . Utils::printCharCode($code) . '.';
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reads an alphanumeric + underscore name from the source.
|
* Reads an alphanumeric + underscore name from the source.
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user