Lex (informatyka)

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, szukaj

Lex to standardowy program w systemach uniksowych służący do tworzenia tzw. lekserów czyli programów przekształcających wejściowy strumień znaków na symbole (jednostki leksykalne). Program lex wyodrębnia symbole dopasowując ciąg wejściowy do wzorców określonych przez wyrażenia regularne. Z każdym ze wzorców można powiązać odpowiedni fragment programu napisany w języku C odpowiedzialny za wykonanie konkretnej akcji w przypadku odnalezienia symbolu.

Obok oryginalnego programu lex napisanego przez Erica Schmidta i Mike'a Leska ogromną popularnością cieszy się wersja GNU o nazwie flex.

Spis treści

[edytuj] Struktura pliku lex

Program analizujący generowany jest na podstawie pliku zawierającego wzorce (wyrażenia regularne zgodne ze standardem IEEE Std 1003.1-2001) oraz fragmenty kodu w języku C. Zazwyczaj plik ten ma rozszerzenie .l (małe L) i składa się z trzech części oddzielonych od siebie znakami %%:

sekcja definicji
%%
sekcja reguł
%%
sekcja z kodem w języku C

[edytuj] Wynik działania programu

Wynikiem działania programu lex jeżeli nie użyto opcji -t jest plik tekstowy o nazwie lex.yy.c zawierający kod źródłowy (w języku C) wygenerowanego leksera. Po skompilowaniu tego pliku i połączeniu z biblioteką lex powstaje właściwy program analizujący.

[edytuj] Lex i Yacc

Bardzo często wynik działania programu lex jest przekazywany do analizatorów składniowych (parser) czyli programów sprawdzających zgodność strumienia wejściowego z określonymi regułami gramatycznymi. Najpopularniejszy taki tandem to programy lex i yacc szeroko stosowane w systemach uniksowych.

[edytuj] Zobacz też

[edytuj] Linki zewnętrzne

Osobiste
Przestrzenie nazw

Warianty
Działania
Nawigacja
Dla czytelników
Dla wikipedystów
Narzędzia
Drukuj lub eksportuj
W innych językach