EE+T | T TT*F | F F (E) | id
并用SLR(1)方法分析id*id+id∈L(G[E]) ?
G的拓广文法G[E]:
(0) E E
(4) TF
(1) EE+T
(5) F (E)
(2) ET
(6) F id
(3) TT*F
I0:E.E E.E+T E.T T.T*F T.F F.(E) F.id
Q = G的LR(0)项目集规范族, q0 = closure( {S.S} ), F = 所有含归约项目的有效项目集组成的集合, = go(I,X) )。
若将所有状态均视为终态,则识别活前缀的自动 机DFA M= ( = VTVN,
Q = G的LR(0)项目集规范族, q0 = closure({S.S}), F = Q, = go (I,X) )。
I8: (I4,A) AcA.
I9: (I5,B) BcB.
I10: (I4,d) Ad.
I11: (I3,d) Bd.
识别文法 活前缀的DFA
c
a
S.S
start S.aA
S
S.bB
I0
b
c
Ac.A A.cA A.d
I4 c
Sa.A A.cA A.d
I2
Sb.B B.cB B.d
J ={A X . | A . X I }
称函数go(I, X)为转移函数。
项目A X . 称为项目A . X后继。
二、识别句柄和活前缀的自动机
若文法G = ( VT, VN, S, P),则识别G的句柄的自动 机为DFA M = ( = VTVN,
B 是产生式,则项目 B . 对活前缀 = 1 也是 有效的。