ANTLR4相互左递归

ANTLR4相互左递归,antlr,grammar,antlr4,left-recursion,Antlr,Grammar,Antlr4,Left Recursion,我刚刚在ANTLR 4.2.2中遇到了一个奇怪的问题: 考虑一个(简化的)java语法。这不会编译: classOrInterfaceType : (classOrInterfaceType) '.' Identifier | Identifier ; ANTLR输出以下错误: error(119): Java.g4::: The following sets of rules are mutually left-recursive [classOrInterf

我刚刚在ANTLR 4.2.2中遇到了一个奇怪的问题:

考虑一个(简化的)java语法。这不会编译:

 classOrInterfaceType
    :  (classOrInterfaceType) '.' Identifier
    |  Identifier 
    ;
ANTLR输出以下错误:

error(119): Java.g4::: The following sets of rules are mutually left-recursive [classOrInterfaceType]
是的,我还看到一个左递归。但我没有看到相互的左递归,只有一个普通的


当我删除
(classOrInterfaceType)
周围的括号时,它就可以编译了。当然,括号是多余的,但是语法是自动生成的,代码生成器在某些情况下总是插入括号。那么这里的问题是什么呢?

已经确认这是一个bug。修复计划在下一个里程碑4.x中进行。
请参见

可能是一个bug,请在以下位置报告:好主意,完成!