Pok-10-wyk-Slajd8

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Zmienne globalne(3)

Zmienne globalne(3)


Obydwie wersje analizatora składniowego kompilujemy i testujemy za pomocą przykładowego wejścia "1+2+3=". Jak nietrudno sprawdzić – poprawną odpowiedzią jest 6.

Taką odpowiedź rzeczywiście podaje analizator wykorzystujący lewostronną rekurencję.

Analizator zaimplementowany z wykorzystaniem prawostronnej rekurencji daje jednak odpowiedź – 9.

Jak już było zasugerowane wcześniej – błąd nie leży w gramatyce. Problem polega na ścisłym uwzględnieniu kolejności wykonywania akcji przez analizator LR w sposobie ewaluacji atrybutów przechowywanych w zmiennych globalnych.

Prześledźmy teraz w jaki sposób obydwie wersje analizowały wejście. Zacznijmy od wersji z rekurencję lewostronną.


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