analyser nombre de mots appartenant à une unité lexical dans un fichier.text avec flex et C
Bonjour ,
je suis entrain de réaliser un petit analyseur lexical qui compte le nombre de mots appartenant a une unité lexical donnée(AFD) dans un fichier.text
Pour cela j'utilise une table de transition de l'AFD
Voici ce que j'ai pu faire pour le moment :
fichier .c
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
int transition[2][2];
int final[2]; // 2etats
void inisialiser() {
final[0]=0; final[1]=1;
transition[0]['a']='1';
transition[0]['b']='0';
transition[1]['a']='1';
transition[1]['b']='0';
}
int main() {
FILE *F inisialiser();
F=fopen("fichier.txt","r");
while(( c=fgetc(f)!=EOF))
{
int etat=0;
while(!final[etat]) {
etat=transition[etat][c];
c=getcgar(f);
}
// instruction d incrementer le nbre de mot reconnus
}
} |
source pour le lex :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
%{ #define IDENTIF 1
#define CHIFFRE 2
char lexe[10]; float fval;
%}
%%
[a-z][a-zA-Z0-9]* {
lexeme=yytext;
return IDENTIF;
(0-9)(0-9)* { fval=atof(yytext);
return chiffre ;}
}
int main() {
int unite ; unite=yylex();
do {
inserer(tab,lexeme,unite);
}
while(unite=yylex);
} |
quesque vous en penser ?