Pok-3-wyk-Slajd33

Z Studia Informatyczne
Wersja z dnia 19:02, 1 wrz 2006 autorstwa BBogacki (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Retrakcja(1)

Retrakcja(1)


Intuicyjnie rozpoczynamy przetwarzanie od dopasowania cyfry 1 do wzorca pierwszej reguły. Następnie widzimy, że reguła 3 ma we wzorcu „.E” następujące po cyfrze, co może nas prowadzić do utworzenia dłuższego dopasowania. Pozostawiamy więc „na boku” pierwszą regułę i przechodzimy do trzeciej. Dopasowujemy znak „.” a następnie dużą literę „E”. Niestety tu okazuje się, że dalsze dane wejściowe nie dopasują się do tego wzorca. Musimy więc się wycofać i powrócić do pierwszej reguły.

W analogiczny sposób działa mechanizm retrakcji w analizatorach wygenerowanych przez program LEX. Analizator przetwarza wiele wzorców równolegle starając się znaleźć ten najbardziej odpowiedni (czyli najdłuższy). Z czasem wzorce, które są mniej obiecujące są porzucane i wraca się do nich jedynie w przypadku nieudanego dopasowania do wzorca, który mógłby dać dłuższe dopasowanie.

Korzystając z retrakcji analizator dokona dopasowania wejścia do reguły pierwszej i drugiej.


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