0

这是为 Exponentiation PowExp 实现右关联性的正确方法吗?所以 2^3^4 实际上是 (2^(3^4))

<Exp> ::= <Exp> + <MulExp>
| <Exp> - <MulExp>
| <MulExp>
<MulExp> ::= <MulExp> * <PowExp>
| <MulExp> / <PowExp>
| <PowExp>
<PowExp> ::= <NegExp> ^ <PowExp>
|<NegExp>
<NegExp> ::= - <RootExp>
| <RootExp>
<RootExp> ::= ( <Exp> )
| 1 | 2 | 3 | 4
4

1 回答 1

0

你写的方式是正确的。

顺便说一句,您可能想重新考虑您的层次结构;在常规数学中,-3 4是 -(3 4 ),而不是 (-3) 4。因此,您可能想要- 3 ^ 4表示- (3 ^ 4),在这种情况下NegExp将包括PowExp而不是相反。(但我想如果 mean 可能会令人困惑-3 ^ 4-(3 ^ 4)所以这里可能没有直观的操作顺序?另一种可能性是需要括号来读取,因为PowExp两者NegExp都直接依赖于RootExp。)

于 2015-02-11T03:13:18.617 回答