Pok-7-wyk-Slajd19

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Atrybuty tokenów – skaner

Atrybuty tokenów – skaner


Analizator leksykalny zaimplementujemy w LEXie. Musi on rozpoznawać i zwracać lewe i prawe nawiasy oraz przecinek. Ewentualne spacje na wejściu pomijamy.

Do przekazywania wartości atrybutu symbolu leksykalnego musimy wykorzystać globalną zmienną – w tym przypadku wystarczy użyć zmiennej typu całkowitego. Jeżeli będziemy przekazywać atrybuty różnych typów można skorzystać z unii języka C.

Zmienną możemy zdefiniować w parserze albo w skanerze. W przykładzie zmienna LLlval została zdefiniowana w parserze, a więc w skanerze musimy zadeklarować ją jako zewnętrzną. Po natrafieniu na liczbę, jej wartość wpisujemy do zmiennej LLlval i zwracamy informację o rozpoznaniu tokenu num .

Tokenowi num przypisaliśmy nazwę, więc musimy pamiętać o przypisaniu jej odpowiedniej (większej niż 256) stałej. Gdyby w gramatyce było więcej nazwanych tokenów najlepiej utworzyć zewnętrzny plik nagłówkowy i włączać go i do analizatora leksykalnego i składniowego.


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