maven - ANTLR4生成的代码未编译: “cannot override reset()”

标签 maven compiler-errors java-8 antlr4

将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_statreset_或其他名称。

关于maven - ANTLR4生成的代码未编译: “cannot override reset()” ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48701533/

相关文章:

java - 为什么 Eclipse 不将所有 jar 文件移动到服务器 lib 文件夹?

delphi - 为什么升级 Delphi 后 TRect 得到 "left side cannot be assigned to"?

java - 该方法必须返回 Object 类型的结果

java - map函数的方法引用,key为String类型时编译报错

maven - 构建Apache hadoop 2.6.0抛出Maven错误

maven - 如何判断哪个签名的 jar 导致 maven-shade-plugin 失败?

java - 如何通过 lambda 表达式将 Collection<X> 转换为 Object[][]

java - 有没有什么技巧可以在运行时知道实例泛型的实际具体类?

maven - 如何使用eclipse+m2eclipse防止重复servlet jar

java - 返回 Java 8 流中的第一个匹配项(类似于 _.find)