我下载了最新版本的 ANTLR - 4.2.2 (antlr-4.2.2-complete.jar) 当我使用它为语法文件 Java.g4 生成解析器时,它会向我打印一些警告,例如: “Java.g4:525:16:规则‘expression’在无法识别的位置包含‘assoc’终端选项”
文件已生成但未编译
以前的版本工作正常。
怎么了?
最佳答案
<assoc>
现在应该移到“表达式”的左侧。
它必须始终放在周围的右边 |
:
看这里:https://theantlrguy.atlassian.net/wiki/display/ANTLR4/Left-recursive+rules
...
| expression '&&' expression
| expression '||' expression
| expression '?' expression ':' expression
|<assoc=right> expression
( '='
| '+='
| '-='
| '*='
| '/='
| '&='
| '|='
| '^='
| '>>='
| '>>>='
| '<<='
| '%='
)
expression
关于java - antlr 4.2.2 输出到控制台警告 (157),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23359363/