Pok-1-wyk-Slajd7
Analiza leksykalna - przykład
Zobaczmy na prostym przykładzie, jakie zadania ma do wykonania analizator leksykalny. Na jego wejście podawany jest program w języku C, a zadaniem skanera jest rozpoznanie i przekazanie analizatorowi składniowemu informacji o tokenach. W przedstawionym przykładzie będą nimi słowa kluczowe, identyfikatory, nawiasy okrągłe i klamrowe, operator mnożenia * i średnik.
Analizator leksykalny na wejściu otrzymuje jednak nie ciąg abstrakcyjnych jednostek leksykalnych ale strumień znaków, w którym znajdują się tzw. leksemy czyli ciągi znaków tworzące określone symbole leksykalne. Każdy token opisany jest określonym wzorcem – np. identyfikator to ciąg znaków podkreślenia, małych i dużych liter oraz cyfr dziesiętnych, który nie może rozpoczynać się od cyfry. Niektóre tokeny mają atrybuty (tzw. wartości leksykalne). W przypadku jednostki leksykalnej liczba interesuje nas zazwyczaj, jaką konkretnie wartość ma dana liczba, bo inaczej nie można obliczyć wartości wyrażenia, w którym występuje. W przypadku np. jednostki leksykalnej lewy nawias okrągły nie są już potrzebne żadne dodatkowe wartości leksykalne.