是否有人知道Antlr4.4上是否有ErrorStrategy
在发现错误后继续解析,我需要显示程序中发现的所有错误但Antlr在找到第一个错误后停止解析,即时通讯使用DefaultErrorStrategy
。
这是我的输入,我应该在第2行和第6行得到错误,但它只报告第2行的错误。
class Program {
bool
bool test
int prueba ;
int prueba ;
int test;
bool prueba
}
错误是:
line 2:1 mismatched input 'bool' expecting {'boolean', 'int', 'void', '}'}
bool
^^^^
答案 0 :(得分:2)
Antlr 4的解析器错误策略是从输入中删除令牌,直到它可以检测到一个合理的状态,然后继续解析。看看你的例子,在尝试恢复时,它可能永远不会在EOF之前达到理智状态。
答案 1 :(得分:-1)
如果程序中有2个连续错误,似乎antlr无法恢复。如果错误不连续,它可以正常工作。非常感谢你的帮助。