将ANTLR4与maven,Java8结合使用时,我无法编译生成的源。
我尝试了几种ANTLR版本(以4.7.1开头,但同样的问题降到4.3):
/C:/Users/me/GenX-2/src/common/target/generated-sources/antlr4/com/xxx/common/input/mqsc/MQSCParser.java:[1142,35]
reset() in com.xxx.common.input.mqsc.MQSCParser cannot override reset() in org.antlr.v4.runtime.Parser
return type com.xxx.common.input.mqsc.MQSCParser.ResetContext is not compatible with void
从Java类中可以看到错误本身是正确的。任何想法如何更改生成的源?
问题点生成的代码的签名是:
public final ResetContext reset() throws RecognitionException {
最佳答案
reset()
是ANTLR的 Parser
类中的方法,因此它不能是解析器规则。您将需要在语法中将其重命名为reset_stat
或reset_
或其他名称。
关于maven - ANTLR4生成的代码未编译: “cannot override reset()” ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48701533/