- Ce dreq e GNU flex?
In esenta, reprezinta o serie de reguli de forma expresie regulata -> instructiuni de executat la gasirea ei in input.
- Cum il folosesc?
- Bine bine da in ce consta mai exact?
intro
%%
expresii regulate si instructiuni
%%
other code
- Ce altceva mai trebuie sa stiu?
- o lista cu toate expresiile regulate pe care le stie se gaseste aici.
- yyin - pointer catre input. da, poti sa faci un yyin=fopen(argv[1],"r");
- yytext - in asta e memorata linia curenta analizata in fisier;
- yylex() - functia pe care trebuie sa o apelati din main sa intre in analizator
- Exemple
%{
int nr;
/* aici se mai pot declara si alte variabile globale, sau functii pe care le veti folosi in program*/
%}
%%
"urasc poli" {printf("Da, si eu urasc poli!\n"); nr++;}
. {/*nu fa nimic pentru orice alt caracter*/}
%%
int main(int argc, char ** argv){
nr=0;
yyin=fopen(argv[1],"r");
yylex();
printf("nr = %i\n",nr);
return 0;
}
Am murit de râs când cineva a propus să scriu un joc (un program de la EGC de fapt) în flex :)
RăspundețiȘtergerelol indeed. Desi nu vad scopul, practic oricum ar trebui sa pui tot codul intre %{%}, si partea de flex ar fi doar cod suplimentar, k nu cred ca chiar e nevoie sa parsezi ceva cand e vorba de grafica (decat, poate, daca ai o lista cu modelele 3d de desenat intr-un fisier text or smth)
RăspundețiȘtergere