Przykład ze strony projektu Flex. Program liczy ilość znaków i linii w pliku, jest przy tym niezwykle prosty.
W Linux Debian instalujemy interpreter
1 | apt-get install flex |
a następnie tworzymy plik w języku C poleceniem:
1 | flex przyklad1.l |
pliki flexa zapisujemy z rozszerzeniem *.l. Polecenie wygeneruje nam plik lex.yy.c, który kompilujemy w GNU C:
1 | gcc lex.yy.c |
Wygenerowany program a.out używamy następująco:
1 | a.out < plik_wejsciowy.txt > plik_wynikowy.txt |
Można nie podawać pliku wyjściowego (wówczas wynik będzie na ekranie), a nawet wejściowego (wówczas podajemy wejście z klawiatury kończąc kombinacją Ctrl+D oznaczającą koniec pliku w konsoli Linux).
przyklad1.l
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | %option noyywrap %{ int num_lines = 0, num_chars = 0; %} %% \n ++num_lines; ++num_chars; . ++num_chars; %% int main() { yylex(); printf( "ilosc linii = %d, ilosc znakow: %d\n", num_lines, num_chars ); return 0; } |