文法G1为: E→E+T|T T→T*F|F F→(E)|i 给出句型 (E+F)*i 的最左推导,画出对应的语法分析树,并求出所有的短语、直接短语和句柄。
时间: 2023-08-23 16:06:53 浏览: 57
最左推导过程如下:
E → T → F → (E) → (E+F) → (E+F)* → (T*F)* → (F*i)* → (i*i)*
对应的语法分析树如下:
```
E
|
E
/ \
E T
| / \
T F *
/| | |
T * F F
| | |
F ( E )
| |
i E
|
F
|
i
```
所有的短语为:(i), (F), (T*F), (E+F), (E+F)*, (T*F)*, (F*i), (i*i)
直接短语为:(i), (F), (T*F), (E+F), (F*i), (i*i)
句柄为:i, F, T*F, E+F, F*i, i*i
相关问题
令文法g1为:e->e+t|t t->t*f|f
f->(e)|id
其中,e表示表达式,t表示项,f表示因子,id表示标识符。其中,*表示乘法运算符,( )表示括号。
该文法表示的是一个基本的算术表达式语言,其中包含加法和乘法运算符,并支持使用括号改变运算优先级。
例如,以下是一些合法的表达式:
1. 2+3
2. (2+3)*4
3. 2*(3+4)*5
4. 1+2*3
5. (1+2)*3
6. (1+2)*(3+4)
7. ((1+2)*(3+4)+5)*6
请注意,该文法中的终结符号包括:+, *, (, ), id,其中id表示标识符。
文法G1为: E→E+T|T T→T*F|F F→(E)|i 给出句型 (E+F)*i 的最左推导,画出对应的语法分析树,并求出所有的短语、直接短语和句柄。
最左推导过程如下:
E → E+T → T+F+T → F+(E)+T → (E)+T+i → (E+F)+i → (E+F)*i
对应的语法分析树如下:
```
E
/ \
E +
/ \ |
T + T
/| | |
T * F | F
| / | \
F ( E ) i
| |
i T
|
F
|
i
```
其中的短语、直接短语和句柄如下:
短语:E+F、(E+F)、T*F、F、i、T、(E)、E+F+T、T+F+T、(E)+T、(E+F)*i、E、T+F、F+(E)+T
直接短语:F、i、T、(E)、E、T+F、F+(E)+T
句柄:F、i、T、(E)、T+F、F+(E)+T