ANTLR4生成的代码没有编译:“无法覆盖reset()”

时间:2018-02-09 08:24:49

标签: maven compiler-errors java-8 antlr4

使用带有maven,Java8的ANTLR4,我无法编译生成的源代码。 我尝试了几个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 {

1 个答案:

答案 0 :(得分:2)

reset()是ANTLR的Parser类中的一种方法,因此它不能是解析器规则。您需要将语法重命名为reset_statreset_或其他名称。