算术表达式的语法没有替代?

时间:2013-01-20 20:54:45

标签: parsing compiler-construction grammar context-free-grammar

如何为算术表达式编写明确的语法,例如一个+(B + C)* d E.g。

E -> E + T | T
T -> T * F | F
F -> ( E ) | i

没有替代方案 - 在我的情况下没有| T和| F和| i

这可以通过在语法中添加更多句子来实现,但我很难弄清楚如何... 注意:这是针对大学...所以可能不是一个好的现实世界语法:)

1 个答案:

答案 0 :(得分:0)

你所要求的是不可能的。如果你的语法中没有替代作品,那么就不可能决定使用哪些作品。因此,您的语法将不生成任何字符串,或将生成单个字符串。具有这些属性的语法称为LL(0) grammars,并且根本不可行。

希望这有帮助!