Pok-6-wyk-Slajd22
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
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.