Pok-5-wyk-Slajd50
Nierozróżnialność produkcji
A oto kolejny problem, który może pojawić się podczas implementacji analizatora składniowego w oparciu o metodę zejść rekurencyjnych. Na slajdzie przedstawiono kolejną gramatykę oraz implementację symbolu nieterminalnego B. Problem, który tu się pojawił, to nierozróżnialność produkcji.
Należy pamiętać, że analizator, który tworzymy należy do rodziny analizatorów przewidujących. Wybiera on odpowiednią ścieżkę (czyli produkcję) podejmując decyzję w oparciu o symbol znajdujący się na wejściu. Nie jest wykonywane nawracanie. Aby móc spełnić te wymagania każda z produkcji danego symbolu nieterminalnego musi rozpoczynać się od innego symbolu terminalnego.
W rozważanej gramatyce tak nie jest, gdyż FIRST(b) = FIRST(b B) = {b}. Powoduje to, że wygenerowany kod nie jest poprawny.