括号在 JavaCC 中是什么意思?

What do parenthesis mean in JavaCC?

假设我有:

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

括号是什么:

(NonTerminal() OtherNonTerminal())

是什么意思?

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

例如,如果你有这个:

A() B() | C()

这意味着 "either 'A followed by B' or C",而这个:

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

将改为 "A followed by 'B or C'"。

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

A() (B())*

表示 "one A, followed by zero or more Bs",而这个:

(A() B())*

表示"zero or more occurrences of 'A followed by B'"。

在您的示例中,括号根本不执行任何操作,可以将其删除。