对下列文法,用 LR 分析法对任意输入的符号串进行分析: (1)E->E+T| E—T (2)E->T (3)T->T*F| T/F (4)T->F (5)F->(E) (6)F->i
时间: 2023-12-27 11:02:07 浏览: 156
这道题需要先构造 LR 分析表,然后再进行分析。下面是构造 LR 分析表的步骤:
1. 构造文法的所有 LR(0) 项目集合
2. 构造项目集族的 LR(0) 自动机
3. 对自动机进行规约/移进操作的标记
4. 构造出 LR(0) 分析表
第一步:构造文法的所有 LR(0) 项目集合
文法为:
```
E -> E + T | E - T | T
T -> T * F | T / F | F
F -> ( E ) | i
```
对文法进行拓广,得到起始符号为 S 的文法:
```
S -> E
E -> E + T
E -> E - T
E -> T
T -> T * F
T -> T / F
T -> F
F -> ( E )
F -> i
```
然后构造文法的 LR(0) 项目集合:
I0:
S' -> .S
S -> .E
E -> .E + T
E -> .E - T
E -> .T
T -> .T * F
T -> .T / F
T -> .F
F -> .( E )
F -> .i
I1:
S' -> S.
I2:
E -> E .+ T
E -> E .- T
I3:
E -> T.
I4:
T -> T .* F
T -> T ./ F
I5:
T -> F.
I6:
F -> ( .E )
E -> .E + T
E -> .E - T
E -> .T
T -> .T * F
T -> .T / F
T -> .F
F -> .( E )
F -> .i
I7:
F -> ( E. )
I8:
E -> E + .T
E -> E - .T
T -> .T * F
T -> .T / F
T -> .F
F -> .( E )
F -> .i
I9:
T -> T * .F
T -> T / .F
I10:
F -> ( E .)
I11:
E -> E + T.
E -> E - T.
I12:
T -> T * F.
T -> T / F.
I13:
F -> ( E ).
阅读全文