让我说:
void ProdRule() : {}
{
(NonTerminal() OtherNonTerminal())
}
括号内的内容是什么
(NonTerminal() OtherNonTerminal())
是平均值?
答案 0 :(得分:2)
与数学表达式或常规编程语言一样,括号可用于将子表达式分组在一起,而不是使用常规运算符优先级将子表达式分组。
例如,如果您有以下内容:
A() B() | C()
这意味着“ A后面跟B或C”,而这是
A() (B() | C())
相反,它的意思是“ A后跟'B或C'”。
还要求括号使用后缀运算符,例如*
,+
或?
,并确定这些运算符适用于语法的哪些部分。例如:
A() (B())*
表示“一个A,后跟零个或多个Bs”,而这表示:
(A() B())*
表示“零个或多个'A后跟B'”。
在您的示例中,括号根本不做任何事情,可以删除。