ก่อนอื่นเราจะให้หมายเลขโปรดักชั่นของคุณ
1 S→ A a A b
2 S→ B b B a
3 A → ε
4 B→ε
ลองคำนวณชุดแรกและติดตามก่อน สำหรับตัวอย่างเล็ก ๆ เช่นสิ่งเหล่านี้การใช้สัญชาตญาณเกี่ยวกับชุดเหล่านี้ก็เพียงพอแล้ว
FIRST(S)={a,b}FIRST(A)={}FIRST(B)={}F OLLOW(A)={a,b}F O L L O W(B)={a,b}
ทีนี้ลองคำนวณ LL(1)โต๊ะ. ตามคำนิยามถ้าเราไม่ได้รับความขัดแย้งไวยากรณ์คือLL(1).
a | b |
-----------
S | 1 | 2 |
A | 3 | 3 |
B | 4 | 4 |
เนื่องจากไม่มีความขัดแย้งไวยากรณ์คือ LL(1).
ตอนนี้สำหรับ SL R (1 )โต๊ะ. ก่อนอื่นL R ( 0 ) หุ่นยนต์
0S→การ∙ ขS→ ∙ B b B aA → ∙B → ∙A⟹1B⟹5
1 รัฐS→ A ∙ a A ba⟹2
รัฐ 2S→ A a ∙ A bA → ∙A⟹3
รัฐ 3S→ A a A ∙ bข⟹4
รัฐ 4S→ A a A b ∙ b
รัฐ 5S→ B ∙ b B aข⟹6
รัฐ 6S→ B b ∙ B aB → ∙B⟹7
รัฐ 7S→ B b B ∙ aa⟹8
8 รัฐS→ B b B a ∙
และจากนั้น SL R ( 1 ) table (I assume S สามารถตามด้วยอะไรก็ได้)
a | b | A | B |
---------------------------
0 | R3/R4 | R3/R4 | 1 | 5 |
1 | S2 | | | |
2 | R3 | R3 | 3 | |
3 | | S4 | | |
4 | R1 | R1 | | |
5 | | S4 | | |
6 | R4 | R4 | | 7 |
7 | S8 | | | |
8 | R2 | R2 | | |
มีข้อขัดแย้งในสถานะ 0 ดังนั้นไวยากรณ์จึงไม่ใช่ SL R ( 1 ). สังเกตว่าถ้าL A L R ( 1 ) ถูกนำมาใช้แทนจากนั้นความขัดแย้งทั้งสองจะได้รับการแก้ไขอย่างถูกต้อง: ในสถานะ 0 บน lookahead a L A L R ( 1 ) จะใช้เวลา R3 และใน lookahead ข มันจะใช้ R4
สิ่งนี้ก่อให้เกิดคำถามที่น่าสนใจว่ามีไวยากรณ์อยู่หรือไม่ L L ( 1 ) แต่ไม่ L A L R ( 1 )ซึ่งเป็นกรณี แต่ไม่ใช่เรื่องง่ายที่จะหาตัวอย่างของ