Pok-1-wyk-Slajd8
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Analiza leksykalna - przykład(1)
W przedstawionym przykładowym fragmencie programu w języku C analizator leksykalny rozpoznał:
- słowo kluczowe int (token o nazwie KWD_INT) składające się z leksemu int – warto zauważyć, że język C jest językiem wrażliwym na wielkość liter, a zatem wzorzec i leksem mają identyczną postać, inaczej byłoby np. w językach Pascal i Ada, gdzie programista może użyć dowolnej kombinacji dużych i małych liter; token KWD_INT nie wymaga żadnych dodatkowych atrybutów
- identyfikator sqr (token IDENT), leksem – sqr, skonstruowany według wzorca: znak podkreślenia, mała bądź duża litera, a następnie być może pusty ciąg znaków podkreślenia, małych bądź dużych liter lub cyfr dziesiętnych; w przypadku identyfikatora konieczne jest również przekazanie atrybutu, którym w tym przypadku jest leksem – łańcuch znaków tworzących identyfikator, w językach takich jak Pascal czy Ada zazwyczaj ciąg ten konwertuje się – ze względów technicznych – do jednolitej wielkości (np. wyłącznie dużych) liter
- lewy nawias okrągły (token jest literałem – nie nadajemy mu więc nazwy symbolicznej), leksemem jest pojedynczy znak ‘(‘ i nie są potrzebne dodatkowe atrybuty
- słowo kluczowe int
- identyfikator n
- prawy nawias okrągły
- lewy nawias klamrowy – podobnie jak w przypadku nawiasów okrągłych nie nadajemy tokenowi nazwy symbolicznej ani nie potrzebujemy atrybutów
- słowo kluczowe return (token KWD_RET), leksem return, nie są tu potrzebne atrybuty
- identyfikator n
- operator gwiazdka (token OP_STAR), leksem – znak ‘*’, w tym przypadku widzimy alternatywne rozwiązanie w stosunku do np. nawiasów, token jest literałem ale możemy mu nadać nazwę symboliczną, w języku C gwiazdka jest używana zarówno jako operator mnożenia jak i operator adresowania pośredniego, w obu przypadkach nie są potrzebne atrybuty symbolu
- identyfikator n
- znak średnika zakańczający instrukcję i
- prawy nawias klamrowy zakańczający funkcję