Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Objectif :
Un langage et un outil pour l’analyse lexicale : (f)lex Pour plus d’informations sur flex, faire man flex.
Lex est un outil permettant de générer un programme d’analyse lexicale à partir de définitions
régulières de modèles (expressions régulières) et d’actions à exécuter lors de la reconnaissance de ces
modèles. Il existe différentes versions de lex (lex, flex, pclex, . . .) sur différentes plateformes et
permettant l’utilisation de différents langages d’actions (C, ada, . . .). Les plus usuelles tournent sous
Unix et utilisent le C. Nous utiliserons “Flex” qui est une version gratuite, rapide, n’ayant pas besoin
de bibliothèque. Ce logiciel peut facilement être téléchargé depuis Internet.
Le format du fichier source traité par la commande Flex comporte trois parties séparées par %%. La
première partie est optionnelle, ainsi que la troisième et les %% qui la précèdent.
2. Fonctionnement de Flex :
II. Installation
1. Ouvrir Codeblocks > Setting > compiler, choisir autodetect puis OK.
1
2. Installer Flex
Etape 1 : Après l'installation passer vers le dossier des fichiers programme > CodeBlocks >
MinGW > bin Copier le chemin de bin, elle devrait ressembler un peu à ceci C: \ Program Files x86
\ CodeBlocks \ MinGW \ bin
Etape 3 : Cliquez sur Path , Cliquez sur Modifier Cliquez sur Nouveau et collez-y le chemin copié: -
C: \ Program Files x86 \ CodeBlocks \ MinGW \ bin
2
1. Ouvrir l’invite de commande
3. flex Ex.l
4. gcc lex.yy.c
5. a.exe
V. Travaux Pratiques
Exercice 1 :
"/*" printf("");
"*/" printf("");
"\\n" printf("");
"("|"["|"{" printf("");
")"|"]"|"}" printf("");
"?"+ printf("",yyleng);
.;
%%
Exercice 2 :
%{
#include
3
%}
%%
"/*" printf("");
"*/" printf("");
"\\n" printf("");
"("|"["|"{" printf("");
")"|"]"|"}" printf("");
"?"+ printf("",yyleng);
.;
%%
int yywrap() {
return 1 ;
void main() {
yylex();