Centre Universitaire de Mila Informatique - Semestre 05
Institut des sciences et de la technologie COMPILATION - TP N° 01
TP 1
Le générateur d'analyseurs lexicaux -Lex
Exercice 1.
a) Ecrire et compiler le fichier de spécifications suivant :
/* just like Unix wc */
%{
int chars = 0;
int words = 0;
int lines = 0;
%}
%%
[a-zA-Z]+ { words++; chars += yyleng; }
\n { chars++; lines++; }
. { chars++; }
%%
main(int argc, char **argv)
{
yyin=fopen("[Link].c","r");
yylex();
printf(“lines=%d\n words=%d\n words=%d", lines, words, chars);
fclose(yyin);
}
Pour compiler un programme Lex on suit les étapes suivantes :
1) Enregistrer le fichier précédent avec l’extension .l (exemple : tp1lex.l)
2) Compiler le fichier tp1lex.l par le compilateur Lex avec la commande :
lex tp1lex.l (le résultat de cette compilation est un fichier de spécification C appelé [Link].c)
3) Compiler le fichier [Link].c par le compilateur gcc avec la commande :
gcc [Link].c -o [Link] -lfl (le résultat de cette compilation est un fichier exécutable
appelé [Link])
4) Exécuter le fichier [Link] avec la commande :
./ [Link]
1/1 2020-2021