/*wordcount 2, on compte les mots avec lex ...*/ %{ int nbchars = 0; int nblines = 0; int nbwords = 1; #define BOOL int #define TRUE 1 #define FALSE 0 BOOL dejacompte = FALSE; %} %% \n {if (!dejacompte) { nbwords++; }; dejacompte = TRUE ; nbchars++;nblines++;dejacompte = TRUE;} [ \t] {if (!dejacompte) {nbwords++;}; nbchars++; dejacompte = TRUE;} . {dejacompte = FALSE;nbchars++;} %% int main ( int argc, char** argv ) { if ( argc > 1 ) { yyin = fopen ( argv [ 1 ], "r" ); } printf("debut analyse\n"); yylex(); printf("%d lines, %d chars,%d words \n",nblines,nbchars,nbwords); } /*flex -o wordcount2.c wordcount2.l*/ /*gcc -o wordcount wordcount2.c -lfl*/ /*wordcount fichier*/ /* ou wordcount