You are on page 1of 2

ELEKTROTEHNIKI FAKULTET BANJA LUKA TEORETSKE OSNOVE RAUNARSTVA A405 Laboratorijska veba 3

(f)lex (1)
Priprema za laboratoriju 1. Analizirati sledee flex programe: lab311.l
REC [a-zA-Z]+ %{ int nreci; %} %% {REC} printf("(%d) %s: %d ", ++nreci, yytext, yyleng);

%% int main() { yylex(); return 0; }

lab312.l
%{ int nreci; %} %% [a-zA-Z]+ printf("(%d) %s: %d ", ++nreci, yytext, yyleng);

2.

Odrediti ponaanje leksikog analizatora predstavljenog sledeim kodom: lab32.l


%%

3.

Odrediti ponaanje leksikog analizatora koji je definisan sledeim kodom i uporediti ga sa analizatorom iz take 2: lab33.l
%% . \n ECHO; ECHO;

4.

Analizirati sledei kod: lab34.l


%% . \n

Rad u laboratoriji 1. 2. Kreirati direktorijum ~/TeOR/ImePrezime/Lab3. U kreiranom direktorijumu kreirati testni fajl test.txt:
jedan dva tri 123 456 789 cetiri pet sest 012 345 678

3. 4.

Koristei neki od editora, kreirati fajl lab311.l iz pripreme i snimiti fajl u direktorijum ~/TeOR/ImePrezime/Lab3. Koritenjem flex-a, generisati fajl lex.yy.c koji predstavlja leksiki analizator:
flex lab311.l

U sluaju greaka, vratiti se na korak 3. 5. 6. 7. 8. 9. Uveriti se u postojanje fajla lex.yy.c naredbom ls. Kompajlirati leksiki analizator koritenjem GNU C kompajlera:
gcc lex.yy.c -lfl -o lab311

Proveriti rad leksikog analizatora na ulaznom fajlu test.txt naredbom:


./lab311 < test.txt

Ponoviti korak 7, ali kao ulazni fajl iskoristiti lab311.l:


./lab311 < lab311.l

Ponoviti korake 3-8 za sve primere iz pripreme.

You might also like