Pok-7-wyk-Slajd22
Z Studia Informatyczne
Obsługa błędów - zadanie
We wszystkich przedstawionych wcześniej analizatorach zakładaliśmy, że wejście jest poprawne. Zobaczmy teraz na przykładzie akceptora dla kontekstowego języka a^n b^n c^n jak można zorganizować obsługę błędów w analizatorze składniowym.
Analizator leksykalny rozpoznaje dowolne znaki na wejściu i przekazuje je do parsera, na którego spada całe zadanie obsługi błędów. Takie rozwiązanie jest o wiele efektywniejsze, jeśli chodzi o wykrywanie możliwych przyczyn błędu – tylko parser wie, w którym miejscu, który znak jest dozwolony i dzięki temu jest w stanie wydrukować bardziej deskryptywny komunikat o błędzie i podjąć rozsądną próbę kontynuacji.