Pok-7-wyk-Slajd34
LLgen – implementacja atrybutów(1)
Generator LLgen nie nakłada własnych, dodatkowych ograniczeń na liczbę i typ atrybutów ponad te, które wynikają z użycia języka C.
Atrybuty i zmienne lokalne deklarowane są w produkcji, w której dany nieterminal znajduje się po lewej stronie (jest tylko jedna taka produkcja dla każdego nieterminala, ponieważ w LLgenie alternatywne prawe strony muszą być zapisywane po znaku ‘|’).
Atrybuty definiujemy zaraz po nazwie symbolu, w nawiasach okrągłych, rozdzielając je średnikami, średnik po ostatnim atrybucie jest opcjonalny. Zmienne lokalne deklarujemy po nazwie symbolu i atrybutach – w nawiasach klamrowych.
Użycie atrybutów w LLgenie zostanie pokazane na tych samych przykładach, które były wykorzystane wcześniej, przy implementacji analizatorów w języku C. Pozwoli to na porównanie o ile wykorzystanie generatora pozwala uprościć implementację translatora.
Nie zostaną omówione zasady obsługi błędów, analiza jaką trzeba przeprowadzić jest dokładnie taka sama, jak w przypadku implementacji w języku C, a implementacja funkcji LLmessage służącej do obsługi błędów została omówiona w wykładzie poświęconym podstawom generatora LLgen.