【正文】
expr) bfactor ? .true bfactor ? .false I6: bfactor ? true. I7: bfactor ? false. I8: S ? bexpr or. bterm bterm ? .bterm and bfactor bterm ? .bfactor bfactor? .not bfactor bfactor ? .(bexpr) bfactor ? .true bfactor ? .false I9: bterm ? bterm and. bfactor bfactor? .not bfactor bfactor ? .(bexpr) bfactor ? .true bfactor ? .false I10: bfactor ? not bfactor. I11: bfactor ? ( bexpr.) bexpr ? bexpr. or bterm I12: S ? bexpr or bterm. bterm ? bterm .and bfactor I13: bterm ? bterm and bfactor. I14: bfactor ? ( bexpr ). 試為聯(lián)系 1)s ? bexpr 2)bexpr ? bexpr or bterm 3) bexpr?bterm 4)bterm ?bterm and bfactor 5) bterm? bfactor 6)bfactor ? not bfactor 7)bfactor? (bexpr) 8)bfactor? true 9)bfactor? false 0 181 2345672 91 34567341 06751 1234667bexpro rb f a c t o rn o t(t r u ef a l s eb t e r mt e r ma n db f a c t o r(n o tt r u ef a l s eb f a c t o rn o t(t r u ef a l s eb f a c t o rt r u ef a l s eb e x p rb t e r mb f a c t o rn o t7t r u ef a l s e9a n d1 48)o r(n o t(Follow(bexpr) = { or, ) , $} Follow(bterm) = { and ,or, ,$} Follow(bfactor) = {and, or, ), $} 試為聯(lián)系 1)s ? bexpr 2)bexpr ? bexpr or bterm 3) bexpr?bterm 4)bterm ?bterm and bfactor 5) bterm? bfactor 6)bfactor ? not bfactor 7)bfactor? (bexpr) 8)bfactor? true 9)bfactor? false 狀態(tài) action goto or and not ( ) true false $ bexpr bterm bfactor 0 s4 s5 s6 s7 1 2 3 1 s8 acc 2 r2 s9 r2 r2 3 r3 r3 r3 4 s4 s5 s6 s7 10 5 s4 s5 s6 s7 11 2 3 6 r8 r8 R8 r8 7 r9 r9 R9 r8 8 s4 s5 s6 s7 12 3 9 s4 s5 s6 s7 13 10 r6 r6 R6 r6 11 s8 S14 12 r2 s9 R2 r2 13 r4 r4 r4 14 r7 r7 r7 r7 證明下列文法是 LL(1)文法,但不是 SLR(1)文法 S ? AaAb | BbBa A ? ? B ? ? P191,分析表中沒有多重定義表項的文法叫 LL(1)文法 First(S) = {a,b}, First(A) ={?}, First(B)={?} Follow(S)={$}, Follow(A)={a,b}, Follow(B)={a,b} 構(gòu)造 LL(1)預測分析表 非終結(jié)符 輸入符號 a b $ S S?AaAb S ? BbBa A A?? A?? B A?? A?? 證明下列文法是 LL(1)文法,但不是 SLR(1)文法 S ? AaAb | BbBa A ? ? B ? ? First(S) = {a,b}, First(A) ={?}, First(B)={?} Follow(S)={$}, Follow(A)={a,b}, Follow(B)={a,b} 1) S’ ? S 2) S?AaAb 3)S?BbBa 4) A? ? 5) B? ? I0: S’ ? .S S ?.AaAb S ?.BbBa A ? ? B ? ? I1: S’ ? S. I2: S ? I3: S? I4: A ? ?. //Follow(A) = Follow(B) 發(fā)現(xiàn)規(guī)約 規(guī)約沖突 B ? ?.