Lex (informatyka)
Z Wikipedii
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 Mikea 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
- The Lex & Yacc Page (en) - przykłady i podręczniki