Pok-6-wyk-Slajd38
Przykładowa gramatyka - analizator składniowy(1)
Jeżeli w rozwiązaniu wykorzystamy rozszerzenia generatora LLgen zapis gramatyki można zdecydowanie uprościć.
Podobnie jak w poprzednim rozwiązaniu włączamy plik stdio.h , ponieważ będziemy korzystać z funkcji printf do wypisywania komunikatów. Również definiujemy zmienną nerrors , w której będziemy przechowywać informację o liczbie błędów rozpoznanych w trakcie analizy danych wejściowych. Całość kodu w języku C ujmujemy w nawiasy klamrowe.
Następnie deklarujemy token num za pomocą deklaracji
%token num;
oraz za pomocą deklaracji:
%start parse, S;
wskazujemy, że aksjomatem gramatyki jest nieterminal S, a jego implementacja ma znaleźć się w procedurze parse .
Całe wejście (S) składać się będzie z lewego nawiasu, liczby, następnie 0 lub więcej powtórzeń ciągu ‘,’ i num i zakończone będzie prawym nawiasem okrągłym. Po zakończeniu analizy wejścia sprawdzamy liczbę błędów i drukujemy stosowny komunikat.