Pok-6-wyk-Slajd22

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Rozszerzenia składni – grupowanie(1)

Rozszerzenia składni – grupowanie(1)


Jeżeli gramatyka wejściowa nie jest LL(1) i występuje w niej konflikt alternatyw właśnie dzięki operatorowi grupowania można czasami uniknąć przeprowadzania pracochłonnej operacji lewostronnej faktoryzacji.

W przedstawionym przykładzie analizator składniowy widząc na wejściu literę a nie jest w stanie określić, którą alternatywną prawą stronę produkcji dla nieterminala S:

S -> ‘a’ B

czy

S -> ‘a’ C

powinien rozwijać. Produkcję należałoby teraz odpowiednio przepisać wprowadzając dodatkowy nieterminal.

Wykorzystanie rozszerzeń LLgena pozwala uniknąć pracochłonnych modyfikacji gramatyki – dzięki wykorzystaniu operatora grupowania możemy nieterminal S zapisać jako:

S : ‘a’ [ B | C ]

i uniknąć w ten sposób konfliktu.


<< Poprzedni slajd | Spis treści | Następny slajd >>