繁体   English   中英

Antlr 奇怪的括号语法

[英]Antlr weird parentheses syntax

在此处输入图像描述

无法理解这个圆括号的含义。 不必写,但有时会产生左递归错误。 我们应该在语法规则的什么地方使用它?

没必要写,

这是正确的,没有必要。 只需删除它们。

但有时它会产生左递归错误。

如果确实如此,您可以在这里打开一个问题: https://github.com/antlr/antlr4/issues

编辑

看到 kaby76 的评论,只是为了确保:无论如何,您不能只将它们从语法文件中删除。 它们可以从您的示例规则中删除。

像这样使用时:

rule
 : ID '=' ( NUMBER | STRING ) // match either `ID '=' NUMBER` 
                              //           or `ID '=' STRING`
 ;

它们不能被移除,因为移除它们会导致:

rule
 : ID '=' NUMBER | STRING // match either `ID '=' NUMBER` 
                          //           or `STRING`
 ;

或重复:

rule
 : ( ID STRING )+ // match: `ID STRING ID STRING ID STRING ...`
 ;

和这个:

rule
 : ID STRING+ // match: `ID STRING STRING STRING ...`
 ;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM