如何为算术表达式编写明确的语法,例如 a+(b+c)*d
E -> E + T | T
T -> T * F | F
F -> ( E ) | i
没有替代品 - 在我的情况下没有 |T 和 |F 和 |i
这应该可以通过在语法中添加更多句子来实现,但我很难弄清楚如何......注意:这是给大学的......所以可能不是一个好的现实世界语法:)
如何为算术表达式编写明确的语法,例如 a+(b+c)*d
E -> E + T | T
T -> T * F | F
F -> ( E ) | i
没有替代品 - 在我的情况下没有 |T 和 |F 和 |i
这应该可以通过在语法中添加更多句子来实现,但我很难弄清楚如何......注意:这是给大学的......所以可能不是一个好的现实世界语法:)
你要求的是不可能的。如果您的语法中没有替代产生式,那么就不可能决定使用哪些产生式。结果,您的语法要么不生成字符串,要么生成单个字符串。具有这些属性的文法称为LL(0) 文法,根本不实用。
希望这可以帮助!