Pok-1-wyk-Slajd8

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Analiza leksykalna - przykład(1)

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ę


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