考虑语法:E-> E + E | E-E | E * E | E / E |(E)| ID
我已经尝试了至少5个小时来解决这个问题,但失败了。请告诉我,
解决这个问题的想法是什么?
如何实现?
答案 0 :(得分:3)
语法树是通过解析构建的,这在某种意义上反过来应用语法。所以你看到a,b和c只能来自id,而id又只能来自E.现在你处于E + E * E。您可以先降低E + E,也可以降低E * E,然后降低E * E.生成的E是树的根。两个可能的语法树之一(减少第一个E * E)是
E
/| \
E + E
| /|\
id E * E
| | |
a id id
| |
b c
关于实施,您必须指定实现此目的的地点和目的。