classLexicalException
final class LexicalException
extends SourceException
Public API: explicitly declared with
@visibility public.The SQL text holds something no token of the dialect starts with.
$e = \SqlParser\Lexer\LexicalException::unterminated('string', "SELECT 'abc", 7);
$e->getMessage() // => 'Unterminated string at line 1, column 8'
$e->offset // => 7Methods§
public static function unterminated(string $construct, string $source, int $offset): selfDescribes a construct that never closes.
Parameters
$construct | string | What was opened |
$source | string | The SQL text |
$offset | int | Byte offset where it opened |
Returns
self The exceptionTest cases 2
Called from 12
- static-call SqlParser\MySql\Lexer\QuotedScanner::scan() packages/sql-parser/src/MySql/Lexer/QuotedScanner.php:54
- static-call SqlParser\MySql\Lexer\QuotedScanner::string() packages/sql-parser/src/MySql/Lexer/QuotedScanner.php:80
- static-call SqlParser\MySql\Lexer\QuotedScanner::quotedIdentifier() packages/sql-parser/src/MySql/Lexer/QuotedScanner.php:101
- static-call SqlParser\MySql\Lexer\TriviaScanner::blockComment() packages/sql-parser/src/MySql/Lexer/TriviaScanner.php:77
- static-call SqlParser\MySql\Lexer\WordScanner::dollarQuoted() packages/sql-parser/src/MySql/Lexer/WordScanner.php:151
- static-call SqlParser\PostgreSql\Lexer\QuotedScanner::body() packages/sql-parser/src/PostgreSql/Lexer/QuotedScanner.php:125
- static-call SqlParser\PostgreSql\Lexer\QuotedScanner::identifier() packages/sql-parser/src/PostgreSql/Lexer/QuotedScanner.php:144
- static-call SqlParser\PostgreSql\Lexer\QuotedScanner::dollarQuoted() packages/sql-parser/src/PostgreSql/Lexer/QuotedScanner.php:172
- static-call SqlParser\PostgreSql\Lexer\TriviaScanner::blockComment() packages/sql-parser/src/PostgreSql/Lexer/TriviaScanner.php:54
- static-call SqlParser\Sqlite\Lexer\QuotedScanner::scan() packages/sql-parser/src/Sqlite/Lexer/QuotedScanner.php:36
- static-call SqlParser\Sqlite\Lexer\QuotedScanner::scan() packages/sql-parser/src/Sqlite/Lexer/QuotedScanner.php:43
- static-call SqlParser\Sqlite\Lexer\VariableScanner::scan() packages/sql-parser/src/Sqlite/Lexer/VariableScanner.php:51
Calls 2
- static-call SourcePosition::at() line 30
- new
selfline 32
public static function unexpectedCharacter(string $source, int $offset): selfDescribes a character no token starts with.
Parameters
$source | string | The SQL text |
$offset | int | Byte offset of the character |
Returns
self The exceptionTest cases 1
Called from 14
- static-call SqlParser\MySql\Lexer\OperatorScanner::scan() packages/sql-parser/src/MySql/Lexer/OperatorScanner.php:44
- static-call SqlParser\MySql\Lexer\OperatorScanner::scan() packages/sql-parser/src/MySql/Lexer/OperatorScanner.php:61
- static-call SqlParser\MySql\Lexer\VariableScanner::identifierOrKeyword() packages/sql-parser/src/MySql/Lexer/VariableScanner.php:93
- static-call SqlParser\PostgreSql\Lexer\LookaheadFilter::unicode() packages/sql-parser/src/PostgreSql/Lexer/LookaheadFilter.php:83
- static-call SqlParser\PostgreSql\Lexer\NumberScanner::scan() packages/sql-parser/src/PostgreSql/Lexer/NumberScanner.php:47
- static-call SqlParser\PostgreSql\Lexer\NumberScanner::scan() packages/sql-parser/src/PostgreSql/Lexer/NumberScanner.php:53
- static-call SqlParser\PostgreSql\Lexer\NumberScanner::rejectJunk() packages/sql-parser/src/PostgreSql/Lexer/NumberScanner.php:76
- static-call SqlParser\PostgreSql\Lexer\OperatorScanner::scan() packages/sql-parser/src/PostgreSql/Lexer/OperatorScanner.php:71
- static-call SqlParser\PostgreSql\Lexer\OperatorScanner::scan() packages/sql-parser/src/PostgreSql/Lexer/OperatorScanner.php:79
- static-call SqlParser\PostgreSql\Lexer\QuotedScanner::identifier() packages/sql-parser/src/PostgreSql/Lexer/QuotedScanner.php:147
- static-call SqlParser\Sqlite\Lexer\NumberScanner::scan() packages/sql-parser/src/Sqlite/Lexer/NumberScanner.php:47
- static-call SqlParser\Sqlite\Lexer\OperatorScanner::scan() packages/sql-parser/src/Sqlite/Lexer/OperatorScanner.php:48
- static-call SqlParser\Sqlite\Lexer\QuotedScanner::scan() packages/sql-parser/src/Sqlite/Lexer/QuotedScanner.php:50
- static-call SqlParser\Sqlite\Lexer\VariableScanner::scan() packages/sql-parser/src/Sqlite/Lexer/VariableScanner.php:62
Calls 2
- static-call SourcePosition::at() line 45
- new
selfline 49
public static function unknownTerminal(string $name, string $source, int $offset): selfDescribes a token the grammar of the selected release does not know.
Parameters
$name | string | Terminal name the lexer produced |
$source | string | The SQL text |
$offset | int | Byte offset of the token |
Returns
self The exceptionTest cases 1
Called from 1
Calls 2
- static-call SourcePosition::at() line 63
- new
selfline 65
Test cases 39§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 3
Other tests reaching this symbol 36
SourceExceptionTest::testCarriesTheOffsetAndPositioncallsTerminalIndexTest::testTokenRejectsANonterminalNamecallsTerminalIndexTest::testTokenRejectsAnUnknownTerminalcallsMySqlLexerTest::testScanRejectsAnUnreadableCharactercallsOperatorScannerTest::testScanRejectsAForeignCharactercallsOperatorScannerTest::testScanRejectsAParameterMarkerGluedToANamecallsQuotedScannerTest::testQuotedIdentifierRejectsAnUnterminatedIdentifiercallsQuotedScannerTest::testScanRejectsAnOddHexadecimalLiteralcallsQuotedScannerTest::testStringRejectsAnUnterminatedStringcallsTriviaScannerTest::testBlockCommentRejectsAnUnterminatedCommentcallsVariableScannerTest::testIdentifierOrKeywordRejectsAMissingNamecallsWordScannerTest::testDollarQuotedRejectsAnUnterminatedStringcallsMySqlParserTest::testTokenizeRejectsAnUnterminatedStringcallsLookaheadFilterTest::testUnicodeRejectsABadEscapeClausecallsNumberScannerTest::testRejectJunkcallsNumberScannerTest::testScanRejectsAnEmptyHexadecimalLiteralcallsNumberScannerTest::testScanRejectsAnIncompleteExponentcallsNumberScannerTest::testScanRejectsTrailingJunkcallsOperatorScannerTest::testScanRejectsAForeignCharactercallsOperatorScannerTest::testScanRejectsAnOverlongOperatorcallsPostgreSqlLexerTest::testScanRejectsAnUnreadableCharactercallsQuotedScannerTest::testDollarQuotedRejectsAnUnterminatedStringcallsQuotedScannerTest::testIdentifierRejectsAnEmptyIdentifiercallsQuotedScannerTest::testIdentifierRejectsAnUnterminatedIdentifiercallsQuotedScannerTest::testStringRejectsAnUnterminatedStringcallsTriviaScannerTest::testBlockCommentRejectsAnUnterminatedCommentcallsPostgreSqlParserTest::testTokenizeRejectsAnUnterminatedStringcallsNumberScannerTest::testScanRejectsTrailingJunkcallsOperatorScannerTest::testScanRejectsAForeignCharactercallsQuotedScannerTest::testScanRejectsAnOddBlobcallsQuotedScannerTest::testScanRejectsAnUnterminatedBracketcallsQuotedScannerTest::testScanRejectsAnUnterminatedStringcallsSqliteLexerTest::testScanRejectsAnUnreadableCharactercallsVariableScannerTest::testScanRejectsAnUnterminatedSuffixcallsVariableScannerTest::testScanRejectsASigilWithoutANamecallsSqliteParserTest::testTokenizeRejectsAnUnterminatedStringcalls
Relations§
Static calls 27
- static-call SqlParser\Lexer\TerminalIndex::token() packages/sql-parser/src/Lexer/TerminalIndex.php:66
- static-call SqlParser\MySql\Lexer\OperatorScanner::scan() packages/sql-parser/src/MySql/Lexer/OperatorScanner.php:44
- static-call SqlParser\MySql\Lexer\OperatorScanner::scan() packages/sql-parser/src/MySql/Lexer/OperatorScanner.php:61
- static-call SqlParser\MySql\Lexer\QuotedScanner::scan() packages/sql-parser/src/MySql/Lexer/QuotedScanner.php:54
- static-call SqlParser\MySql\Lexer\QuotedScanner::string() packages/sql-parser/src/MySql/Lexer/QuotedScanner.php:80
- static-call SqlParser\MySql\Lexer\QuotedScanner::quotedIdentifier() packages/sql-parser/src/MySql/Lexer/QuotedScanner.php:101
- static-call SqlParser\MySql\Lexer\TriviaScanner::blockComment() packages/sql-parser/src/MySql/Lexer/TriviaScanner.php:77
- static-call SqlParser\MySql\Lexer\VariableScanner::identifierOrKeyword() packages/sql-parser/src/MySql/Lexer/VariableScanner.php:93
- static-call SqlParser\MySql\Lexer\WordScanner::dollarQuoted() packages/sql-parser/src/MySql/Lexer/WordScanner.php:151
- static-call SqlParser\PostgreSql\Lexer\LookaheadFilter::unicode() packages/sql-parser/src/PostgreSql/Lexer/LookaheadFilter.php:83
- static-call SqlParser\PostgreSql\Lexer\NumberScanner::scan() packages/sql-parser/src/PostgreSql/Lexer/NumberScanner.php:47
- static-call SqlParser\PostgreSql\Lexer\NumberScanner::scan() packages/sql-parser/src/PostgreSql/Lexer/NumberScanner.php:53
- static-call SqlParser\PostgreSql\Lexer\NumberScanner::rejectJunk() packages/sql-parser/src/PostgreSql/Lexer/NumberScanner.php:76
- static-call SqlParser\PostgreSql\Lexer\OperatorScanner::scan() packages/sql-parser/src/PostgreSql/Lexer/OperatorScanner.php:71
- static-call SqlParser\PostgreSql\Lexer\OperatorScanner::scan() packages/sql-parser/src/PostgreSql/Lexer/OperatorScanner.php:79
- static-call SqlParser\PostgreSql\Lexer\QuotedScanner::body() packages/sql-parser/src/PostgreSql/Lexer/QuotedScanner.php:125
- static-call SqlParser\PostgreSql\Lexer\QuotedScanner::identifier() packages/sql-parser/src/PostgreSql/Lexer/QuotedScanner.php:144
- static-call SqlParser\PostgreSql\Lexer\QuotedScanner::identifier() packages/sql-parser/src/PostgreSql/Lexer/QuotedScanner.php:147
- static-call SqlParser\PostgreSql\Lexer\QuotedScanner::dollarQuoted() packages/sql-parser/src/PostgreSql/Lexer/QuotedScanner.php:172
- static-call SqlParser\PostgreSql\Lexer\TriviaScanner::blockComment() packages/sql-parser/src/PostgreSql/Lexer/TriviaScanner.php:54
- static-call SqlParser\Sqlite\Lexer\NumberScanner::scan() packages/sql-parser/src/Sqlite/Lexer/NumberScanner.php:47
- static-call SqlParser\Sqlite\Lexer\OperatorScanner::scan() packages/sql-parser/src/Sqlite/Lexer/OperatorScanner.php:48
- static-call SqlParser\Sqlite\Lexer\QuotedScanner::scan() packages/sql-parser/src/Sqlite/Lexer/QuotedScanner.php:36
- static-call SqlParser\Sqlite\Lexer\QuotedScanner::scan() packages/sql-parser/src/Sqlite/Lexer/QuotedScanner.php:43
- static-call SqlParser\Sqlite\Lexer\QuotedScanner::scan() packages/sql-parser/src/Sqlite/Lexer/QuotedScanner.php:50
- static-call SqlParser\Sqlite\Lexer\VariableScanner::scan() packages/sql-parser/src/Sqlite/Lexer/VariableScanner.php:51
- static-call SqlParser\Sqlite\Lexer\VariableScanner::scan() packages/sql-parser/src/Sqlite/Lexer/VariableScanner.php:62