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

ana*_*akh 5 java antlr antlr4

我下载了最新版本的ANTLR - 4.2.2(antlr-4.2.2-complete.jar)当我用它来为语法文件Java.g4生成解析器时,它会给我打印一些警告:"Java.g4:525:16: rule'expression'在无法识别的位置包含'assoc'终端选项"

文件已生成但未编译

以前的版本工作正常.

怎么了?

Onu*_*nur 11

<assoc>现在应该向左移动的"表达"的.

它必须始终放在周围|:

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

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