如何为算术表达式编写明确的语法,例如一个+(B + C)* d E.g。
E -> E + T | T
T -> T * F | F
F -> ( E ) | i
没有替代方案 - 在我的情况下没有| T和| F和| i
这可以通过在语法中添加更多句子来实现,但我很难弄清楚如何... 注意:这是针对大学...所以可能不是一个好的现实世界语法:)
答案 0 :(得分:0)
你所要求的是不可能的。如果你的语法中没有替代作品,那么就不可能决定使用哪些作品。因此,您的语法将不生成任何字符串,或将生成单个字符串。具有这些属性的语法称为LL(0) grammars,并且根本不可行。
希望这有帮助!