是否有人知道在发现错误后Antlr4.4上是否有ErrorStrategy
继续解析,我需要显示程序中发现的所有错误,但Antlr在发现第一个错误后停止解析,我使用DefaultErrorStrategy
。
这是我的输入,我应该在第2行、第3行和第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
^^^^
Antlr 4的解析器错误策略是从输入中删除令牌,直到它可以检测到相同的状态,然后继续解析。查看您的示例,在尝试恢复时,可能它在EOF之前从未达到正常状态。
似乎antlr无法恢复,如果有两个连续的错误在程序中。如果错误不是连续的,它可以正常工作。非常感谢您的帮助。