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

标签 java antlr antlr4

我下载了最新版本的 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/

相关文章:

java - 从词法分析器/解析器语法生成产生式

c - ANTLR C语法不识别点符号

java - 如何从 Javascript 使用 java.util.Observable?

java - 当我使用 sleep 时,JPanel 未正确更新 CardLayout

antlr - OR 词法分析器表达式的 AST 重写规则

java - ANTLR 通配符运算符不消耗预期输入

java - ANTLR4 - 是否可以在匹配规则中存储特定数据类型的变量?

java - 从 Java 源代码生成 AST 报告而不实际运行它

java - 如何在 Hibernate 中正确映射一对多关系?

java - 插入到 HashMap 中会导致排序困惑