JavaCC中的括号是什么意思?

网聊者

假设我有:

void ProdRule() : {}
{
    (NonTerminal() OtherNonTerminal())
}

括号里是什么:

(NonTerminal() OtherNonTerminal())

吝啬的?

sepp2k

就像在数学表达式或普通编程语言中一样,括号可用于将子表达式组合在一起,这与使用普通运算符优先级所得到的不同。

例如,如果你有这个:

A() B() | C()

这意味着“'A 后跟 B' 或 C”,而这个:

A() (B() | C())

而是意味着“A 后跟'B 或C'”。

括号也需要使用后缀运算符,例如*,+?并确定这些运算符适用于语法的哪些部分。例如:

A() (B())*

将意味着“一个 A,然后是零个或多个 B”,而这:

(A() B())*

将意味着“零次或多次出现 'A 后跟 B'”。

在您的示例中,括号根本不做任何事情,可以删除。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章