antlr 4.2.2输出到控制台警告(157)

时间:2014-04-29 08:25:43

标签: java antlr antlr4

我下载了最新版的ANTLR - 4.2.2(antlr-4.2.2-complete.jar) 当我使用它为语法文件Java.g4生成解析器时,它会打印出一些警告,例如: “Java.g4:525:16:规则'表达式'在无法识别的位置包含'assoc'终端选项”

文件已生成但未编译

以前的版本运行正常。

怎么了?

1 个答案:

答案 0 :(得分:11)

<assoc>现在应该移到“表达式”的左侧。

必须始终将其放置在周围|

请看这里:https://theantlrguy.atlassian.net/wiki/display/ANTLR4/Left-recursive+rules

 ...
 |   expression '&&' expression
    |   expression '||' expression
    |   expression '?' expression ':' expression
    |<assoc=right>   expression
        (   '='
        |   '+='
        |   '-='
        |   '*='
        |   '/='
        |   '&='
        |   '|='
        |   '^='
        |   '>>='
        |   '>>>='
        |   '<<='
        |   '%='
        )
        expression