Lex (informatyka)
![]() | Ten artykuł od 2021-02 zawiera treści, przy których brakuje odnośników do źródeł. Należy dodać przypisy do treści niemających odnośników do źródeł. Dodanie listy źródeł bibliograficznych jest problematyczne, ponieważ nie wiadomo, które treści one uźródławiają. Sprawdź w źródłach: Encyklopedia PWN • Google Books • Google Scholar • Federacja Bibliotek Cyfrowych • BazHum • BazTech • RCIN • Internet Archive (texts / inlibrary) Dokładniejsze informacje o tym, co należy poprawić, być może znajdują się w dyskusji tego artykułu. Po wyeliminowaniu niedoskonałości należy usunąć szablon {{Dopracować}} z tego artykułu. |
Lex – 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 popularnością cieszy się wersja o nazwie flex.
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
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.
Lex i Yacc
Bardzo często wynik działania programu lex jest przekazywany do analizatorów składniowych (Analizator składniowy) 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.
Zobacz też
- yacc
- flex
- Bison (program)
Linki zewnętrzne
- The Lex & Yacc Page (ang.) - przykłady i podręczniki