|
|
1
3
问题是您的输入没有按照您的预期进行标记化。这是因为lexer匹配尽可能多的输入。所以如果你看看
然后您会注意到输入
错误消息如下:
正在讲述:令牌
您可能需要在该类中添加空格、制表符和换行符:
此外,lexer独立于解析器进行操作(解析器对生成的标记没有影响)。lexer只是尝试匹配尽可能多的字符,每当有两个(或更多)规则匹配相同的字符时,第一个定义的规则“获胜”。根据此逻辑,然后根据以下规则:
很明显,规则
下面是如何解析示例输入:
当然,您需要更改它以完全满足您的需要,但这只是一个开始。 |
|
|
Sonny · ANTLR4解析器生成:条件表达式的简单语法问题 8 年前 |
|
|
KCK · ANTLR v4的mysql语法文件中存在语法错误 8 年前 |
|
|
garyM · antlr4如何修复lexer模式隐式令牌错误? 8 年前 |
|
|
Ruudjah · 给定antlr4语法,我可以建立表达式树吗? 8 年前 |
|
|
paranoider · /ANTLR解析器规则中的s/s 8 年前 |
|
|
Damien F · ANTLR4 g4语法用于读取不同块中的键/值对 8 年前 |
|
|
Jason · Antlr4语法意外错误(C++目标) 8 年前 |