1
1
正如您所看到的,一旦遇到错误,ANTLR4就会尝试将输入流重新同步到规则结构。这通常是通过尝试检测单个丢失的令牌或单个附加令牌来实现的。其他一切通常都会导致错误节点一直到输入的末尾。 当然,如果无法成功解析输入,则解析树将不完整,至少从错误的角度来看,这可能比实际错误所在的位置要早得多。这是因为变量lookahead导致的,它可能会消耗大量的输入来在解析过程的早期找到预测(因此可能会提前失败)。 事实上,我建议遵循路径1)。一旦出现语法错误,解析树中就没有什么可以使用的了。这完全取决于语法结构,哪一部分将被成功解析(不要假设它将始终处于错误位置,正如我刚才解释的那样)。 |
Sonny · ANTLR4解析器生成:条件表达式的简单语法问题 6 年前 |
KCK · ANTLR v4的mysql语法文件中存在语法错误 6 年前 |
garyM · antlr4如何修复lexer模式隐式令牌错误? 6 年前 |
Ruudjah · 给定antlr4语法,我可以建立表达式树吗? 6 年前 |
paranoider · /ANTLR解析器规则中的s/s 6 年前 |
Damien F · ANTLR4 g4语法用于读取不同块中的键/值对 6 年前 |
Jason · Antlr4语法意外错误(C++目标) 6 年前 |