Zadanie 1 (5 pkt.) Mamy gramatykę z następującymi produkcjami:
Należy zbudować dla tej gramatyki parser LL(k) i przeparsować napis wejściowy:
Usunąć lewostronną rekursję
Usunąć lewostronną faktroyzację
Wyznaczyć zbiory FIRST i FOLLOW
| FIRST | FOLLOW | |
|---|---|---|
Zbudować tablicę parsera
| ( | |||||
Przeparsować napis wejściowy
| stos | wejście | przejścia |
|---|---|---|
Zadanie 2 (5 pkt.) Dana jest gramatyka ,
a) proszę przedstawić poszczególne kroki konstrukcji parsera SLR(1)
b) proszę przedstawić działanie parsera (stos, wejście i podejmowane akcje) dla łańcucha:
c) proszę przedstawić wywód tego łańcucha (o ile istnieje) znaleziony w wyniku działania parsera
| FIRST | FOLLOW | |
|---|---|---|
| stos | wejsćie | akcja |
|---|---|---|
| 0 | przesunięcie | |
| 0 ( 2 | przesunięcie | |
| 0 ( 2 n 3 | redukcja zgodnie z | |
| 0 ( 2 E 5 | przesunięcie | |
| 0 ( 2 E 5 # 4 | przesunięcie | |
| 0 ( 2 E 5 # 4 n 6 | redukcja zgodnie z | |
| 0 ( 2 E 5 | przesunięcie | |
| 0 ( 2 E 5 ) 7 | redukcja zgodnie z | |
| 0 E 1 | przesunięcie | |
| 0 E 1 # 4 | przesunięcie | |
| 0 E 1 # 4 n 6 | redukcja zgodnie z | |
| 0 E 1 | akceptacja |