Lassen Sie uns zunächst Ihren Produktionen eine Nummer geben.
1
2 S → B b B a
3 A → ε
4 B → εS→AaAb
S→BbBa
A→ε
B→ε
Berechnen wir zuerst die ersten und folgen wir den Mengen. Für kleine Beispiele wie diese reicht es aus, die Intuition für diese Mengen zu verwenden.
FIRST(S)={a,b}FIRST(A)={}FIRST(B)={}FOLLOW(A)={a,b}FOLLOW(B)={a,b}
Berechnen wir nun die -Tabelle. Wenn wir keine Konflikte bekommen, lautet die Grammatik per Definition L L ( 1 ) .L L ( 1 )L L ( 1 )
a | b |
-----------
S | 1 | 2 |
A | 3 | 3 |
B | 4 | 4 |
Da es keine Konflikte gibt, lautet die Grammatik .L L ( 1 )
Nun zur Tabelle . Zuerst der L R ( 0 ) Automat.S.L R ( 1 )L R ( 0 )
Zustand 0S.→ ∙ A a A bS.→ ∙ B b B aA → ∙B → ∙EIN⟹1B.⟹5
Zustand 1S.→ A ∙ a A bein⟹2
Zustand 2S.→ A a ∙ A bA → ∙EIN⟹3
Zustand 3S.→ A a A ∙ bb⟹4
Zustand 4S.→ A a A b ∙ b
Zustand 5S.→ B ∙ b B ab⟹6
Zustand 6S.→ B b ∙ B aB → ∙B.⟹7
Zustand 7S.→ B b B ∙ aein⟹8
Zustand 8S.→ B b B a ∙
Und dann die Tabelle (ich nehme an, auf S kann alles folgen).S.L R ( 1 )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 | | |
Es gibt Konflikte im Zustand 0, daher ist die Grammatik nicht . Beachten Sie, dass bei Verwendung von L A L R ( 1 ) beide Konflikte korrekt gelöst würden: Im Zustand 0 auf Lookahead würde ein L A L R ( 1 ) R3 und auf Lookahead b R4 annehmen.S.L R ( 1 )L A L R ( 1 )ein L A L R ( 1 )b
Dies wirft die interessante Frage auf, ob es eine Grammatik gibt, die aber nicht L A L R ( 1 ) ist , was der Fall ist, aber nicht leicht zu finden ist.L L ( 1 )L A L R ( 1 )