如何让 ANTLR 显示所有语法错误

问题描述 投票:0回答:1

所以我目前正在java中做一个pascal编译器作为一个项目,并且我正在进行错误处理,但是我注意到,如果我正在解析的文件中有两个或更多错误,它只会显示它找到的第一个错误,并且不会显示不显示其他错误的错误消息,我想在第一个错误之后解析器停止,因此它永远不会到达其余错误,但项目要求我显示所有错误而不是在第一个错误处停止,我该如何解决它?

我已经尝试覆盖 DefaultErrorStrategy 但它并没有真正做任何事情

java compiler-errors compiler-construction antlr antlr4
1个回答
0
投票

ANTLR4 尝试从某些语法错误中恢复,主要是当插入丢失的符号时会导致此时语法正确,或者删除一个符号即可完成工作。除此之外,一旦遇到语法错误,就没有办法让 ANTLR 继续解析,至少官方发行版中的错误策略是这样。

© www.soinside.com 2019 - 2024. All rights reserved.