2

我正在使用 c++ 完成 Stroustrups 编程原理和实践。他在本书的前几章中使用了这种语法来构建计算器。练习之一是在计算器中添加一个阶乘运算符。他给了一个提示

首先修改语法以考虑更高级别的运算符

什么是高级运算符?(不幸的是他没有解释到书中的那一章,我不知道它是否在其他章节中解释过)

他要求修改的语法是这样的:

Expression:
    Term
    Expression "+" Term
    Expression "-" Term
Term:
    Primary
    Term "*" Primary
    Term "/" Primary
    Term "%" Primary
Primary:
    Number
    "(" Expression ")"
Number:
    floating-point-literal

我已经为此苦苦挣扎了一整天,但我一无所获。会很高兴得到一些解释。

4

1 回答 1

0

更高级别的运算符是比其他运算符具有更高优先级的运算符。

这可以添加到您的语法中,就像乘法、除法和模数不同于加法和减法一样。

换句话说,您的解析器应该首先尝试解析阶乘语法,然后是乘法,然后是加法

于 2013-03-05T23:40:43.057 回答