classSyntaxException
final class SyntaxException
extends RuntimeException
Public API: explicitly declared with
@visibility public.Raised where Lemon would report an error in the grammar file.
The message is worded as Lemon words it and says where the problem is.
$exception = new \LemonParser\SyntaxException('Illegal character on RHS of rule: "?".', new \LemonParser\Ast\Location(3, 12));
$exception->getMessage() // => 'Illegal character on RHS of rule: "?". at 3:12'
(string) $exception->location // => "3:12"Properties§
public Location $locationMethods§
Test cases 56§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 1
Other tests reaching this symbol 55
GrammarContextcallsLemonGrammarCompilerTestcallsLemonGrammarReaderTest::testReadRejectsWhatLemonRejectscallsParserTest::testParseRejectsWhatLemonRejectscallsConditionTest::testEvaluateRejectsAnAndWithoutALeftSidecallsConditionTest::testEvaluateRejectsANegationAfterATermcallsConditionTest::testEvaluateRejectsAnOperatorWithoutALeftSidecallsConditionTest::testEvaluateRejectsASingleAmpersandcallsConditionTest::testEvaluateRejectsASingleBarcallsConditionTest::testEvaluateRejectsTwoTermsInARowcallsConditionTest::testGuardcallsConditionTest::testTermRejectsANameStartingWithADigitcallsConditionTest::testTermRejectsAnUnclosedGroupcallsPreprocessorTest::testPreprocessRejectsABadExpressioncallsPreprocessorTest::testPreprocessRejectsAnUnterminatedRegioncallsCodeReaderTest::testReadRejectsAnUnterminatedBlockcallsScannerTest::testNextRejectsAnUnterminatedStringcallsDeclarationReaderTest::testArgumentRejectsPunctuationcallsDeclarationReaderTest::testReadDestructorRejectsAMissingSymbolcallsDeclarationReaderTest::testReadRejectsAKeywordThatIsNotAWordcallsDeclarationReaderTest::testReadRejectsAnUnknownKeywordcallsDeclarationReaderTest::testReadTokenClassRejectsAKnownNamecallsDeclarationReaderTest::testReadTokenClassRejectsATerminalNamecallsDeclarationReaderTest::testReadTypeRejectsAMissingSymbolcallsDeclarationReaderTest::testReadTypeRejectsASecondTypecallsGrammarReaderTest::testCodeRejectsAMissingRulecallsGrammarReaderTest::testCodeRejectsASecondBlockcallsGrammarReaderTest::testPrecedenceRejectsAMissingClosercallsGrammarReaderTest::testPrecedenceRejectsAMissingRulecallsGrammarReaderTest::testPrecedenceRejectsANonterminalcallsGrammarReaderTest::testPrecedenceRejectsASecondMarkcallsGrammarReaderTest::testReadRejectsAStrayTokencallsRuleReaderTest::testAliasRejectsABadNamecallsRuleReaderTest::testAliasRejectsAMissingClosercallsRuleReaderTest::testCompoundRejectsANonterminalcallsRuleReaderTest::testHeadRejectsABadAliascallsRuleReaderTest::testHeadRejectsAMissingArrowcallsRuleReaderTest::testHeadRejectsAMissingArrowAfterTheAliascallsRuleReaderTest::testHeadRejectsAnUnclosedAliascallsRuleReaderTest::testReadRejectsACompoundAtTheStartcallsRuleReaderTest::testReadRejectsALowerCaseCompoundcallsRuleReaderTest::testReadRejectsAnIllegalCharactercallsRuleReaderTest::testReadRejectsTheEndOfTheFilecallsSymbolListReaderTest::testClassTokensRejectsANonterminalcallsSymbolListReaderTest::testFallbacksRejectsANonterminalcallsSymbolListReaderTest::testFallbacksRejectsASecondFallbackForATokencallsSymbolListReaderTest::testRankedRejectsANonterminalcallsSymbolListReaderTest::testTokensRejectsANonterminalcallsSymbolListReaderTest::testUntilPeriodRejectsTheEndOfTheFilecallsSymbolListReaderTest::testWildcardRejectsANonterminalcallsSymbolListReaderTest::testWildcardRejectsASecondTokencallsSymbolRegistryTest::testFallBackcallsSymbolRegistryTest::testRankcallsSymbolRegistryTest::testTypecallsSymbolRegistryTest::testWildcardcalls
Relations§
Instantiated in 37
- new LemonParser\Preprocessor\Condition::error() packages/lemon-parser/src/Preprocessor/Condition.php:141
- new LemonParser\Preprocessor\Preprocessor::preprocess() packages/lemon-parser/src/Preprocessor/Preprocessor.php:58
- new LemonParser\Scanner\CodeReader::read() packages/lemon-parser/src/Scanner/CodeReader.php:55
- new LemonParser\Scanner\Scanner::next() packages/lemon-parser/src/Scanner/Scanner.php:88
- new LemonParser\Syntax\DeclarationReader::read() packages/lemon-parser/src/Syntax/DeclarationReader.php:54
- new LemonParser\Syntax\DeclarationReader::read() packages/lemon-parser/src/Syntax/DeclarationReader.php:74
- new LemonParser\Syntax\DeclarationReader::argument() packages/lemon-parser/src/Syntax/DeclarationReader.php:98
- new LemonParser\Syntax\DeclarationReader::readDestructor() packages/lemon-parser/src/Syntax/DeclarationReader.php:119
- new LemonParser\Syntax\DeclarationReader::readType() packages/lemon-parser/src/Syntax/DeclarationReader.php:142
- new LemonParser\Syntax\DeclarationReader::readTokenClass() packages/lemon-parser/src/Syntax/DeclarationReader.php:165
- new LemonParser\Syntax\DeclarationReader::readTokenClass() packages/lemon-parser/src/Syntax/DeclarationReader.php:168
- new LemonParser\Syntax\GrammarReader::read() packages/lemon-parser/src/Syntax/GrammarReader.php:68
- new LemonParser\Syntax\GrammarReader::code() packages/lemon-parser/src/Syntax/GrammarReader.php:89
- new LemonParser\Syntax\GrammarReader::code() packages/lemon-parser/src/Syntax/GrammarReader.php:92
- new LemonParser\Syntax\GrammarReader::precedence() packages/lemon-parser/src/Syntax/GrammarReader.php:116
- new LemonParser\Syntax\GrammarReader::precedence() packages/lemon-parser/src/Syntax/GrammarReader.php:119
- new LemonParser\Syntax\GrammarReader::precedence() packages/lemon-parser/src/Syntax/GrammarReader.php:122
- new LemonParser\Syntax\GrammarReader::precedence() packages/lemon-parser/src/Syntax/GrammarReader.php:127
- new LemonParser\Syntax\RuleReader::read() packages/lemon-parser/src/Syntax/RuleReader.php:51
- new LemonParser\Syntax\RuleReader::read() packages/lemon-parser/src/Syntax/RuleReader.php:53
- new LemonParser\Syntax\RuleReader::head() packages/lemon-parser/src/Syntax/RuleReader.php:77
- new LemonParser\Syntax\RuleReader::head() packages/lemon-parser/src/Syntax/RuleReader.php:81
- new LemonParser\Syntax\RuleReader::head() packages/lemon-parser/src/Syntax/RuleReader.php:85
- new LemonParser\Syntax\RuleReader::head() packages/lemon-parser/src/Syntax/RuleReader.php:89
- new LemonParser\Syntax\RuleReader::compound() packages/lemon-parser/src/Syntax/RuleReader.php:108
- new LemonParser\Syntax\RuleReader::alias() packages/lemon-parser/src/Syntax/RuleReader.php:130
- new LemonParser\Syntax\RuleReader::alias() packages/lemon-parser/src/Syntax/RuleReader.php:134
- new LemonParser\Syntax\SymbolListReader::ranked() packages/lemon-parser/src/Syntax/SymbolListReader.php:34
- new LemonParser\Syntax\SymbolListReader::fallbacks() packages/lemon-parser/src/Syntax/SymbolListReader.php:58
- new LemonParser\Syntax\SymbolListReader::tokens() packages/lemon-parser/src/Syntax/SymbolListReader.php:87
- new LemonParser\Syntax\SymbolListReader::wildcard() packages/lemon-parser/src/Syntax/SymbolListReader.php:111
- new LemonParser\Syntax\SymbolListReader::classTokens() packages/lemon-parser/src/Syntax/SymbolListReader.php:136
- new LemonParser\Syntax\SymbolListReader::untilPeriod() packages/lemon-parser/src/Syntax/SymbolListReader.php:163
- new LemonParser\Syntax\SymbolRegistry::rank() packages/lemon-parser/src/Syntax/SymbolRegistry.php:77
- new LemonParser\Syntax\SymbolRegistry::type() packages/lemon-parser/src/Syntax/SymbolRegistry.php:93
- new LemonParser\Syntax\SymbolRegistry::fallBack() packages/lemon-parser/src/Syntax/SymbolRegistry.php:111
- new LemonParser\Syntax\SymbolRegistry::wildcard() packages/lemon-parser/src/Syntax/SymbolRegistry.php:128