antlr 4.2.2输出到控制台警告(157) [英] antlr 4.2.2 output to console warning (157)

查看:98
本文介绍了antlr 4.2.2输出到控制台警告(157)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I downloaded latest release of ANTLR - 4.2.2 (antlr-4.2.2-complete.jar) When I use it to generate parsers for grammar file Java.g4 it prints me some warnings like: "Java.g4:525:16: rule 'expression' contains an 'assoc' terminal option in an unrecognized location"

文件已生成但未编译

以前的版本运行正常.

怎么了?

推荐答案

<assoc>现在应移到表达式"的左侧.

The <assoc> should now be moved left of the "expression".

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

It must be placed always right to the surrounding |:

查看此处: https://theantlrguy.atlassian.net/wiki/display/ANTLR4/左递归+规则

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

这篇关于antlr 4.2.2输出到控制台警告(157)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆