括号在 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'"。
在您的示例中,括号根本不执行任何操作,可以将其删除。
假设我有:
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'"。
在您的示例中,括号根本不执行任何操作,可以将其删除。