Professional Documents
Culture Documents
S A
A BA| ε
B aB|b
将文法进行拓广,结果如下:
(0) S’ S
(1) S A
(2) A BA
(3) A ε
(4) B aB
(5) B b
求解 FIRST(A)
FIRST(A)={ a , b , ε }
构造该文法的 LR(1)项目集规范族:
状态 项目集
I1 {[S’S・,$]}
I2 {[SA・,$]}
I5 {[Bb・,a/b/$]}
I6 {[ABA・,$]}
I7 {[BaB・,a/b/$]}
构造 DFA 如下所示:
SA・,$
B
I2 AB・A,$
A
A・,$
A・BA,$
A ABA・,$
B B・aB,a/b/$
B・b,a/b/$
S’・S,$
I3 I6
S・A,$
A・,$ S S’S・,$
A・BA,$
B・aB,a/b/$
B・b,a/b/$
I1
b
I0
b
Bb・,a/b/$
a
a
a I5
b
Ba・B,a/b/$
B・aB,a/b/$ B BaB・,a/b/$
B・b,a/b/$
I4 I7
构造 LR(1)分析表如下:
a b $ S A B
0 s4 s5 r3 1 2 3
1 acc
2 r1
3 s4 s5 r3 6 3
4 s4 s5 7
5 r5 r5 r5
6 r2
7 r4 r4 r4
由上面构造而成的 LR(1)分析表可以看出,表中丌存在多重定义的入口,所以该文法为
LR(1)文法。
s[4,B]=7
s[0,B]=s3
s[4,B]=7
s[3,B]=s3
s[3,A]=6
s[3,A]=6
s[0,A]=2
s[0,S]=1
12 $S 01 $ a1,$]=acc accept
S Aa|bAc|dc| bda
A d
I1 {[S’S・,$]}
I2 {[SA・a,$]}
I4 {[Sd・c,$] , [Ad・,a/$]}
I5 {[SAa・,$]}
I6 {[SbA・c,$]}
I7 {[Ad・,c/$] , [Sbd・a,$]}
I8 {[Sdc・,$]}
I9 {[SbAc・,$]}
I10 {[Sbda・,$]}
通过对上述规范集进行观察,丌难发现其中并没有具有同心的集合,所以该规范集将仍
然用来构造 LALR(1)文法的分析表。通过对分析表的观察丌难发现该文法丌仅是 LR(1)文法,
亦为 LALR(1)文法。