Vous êtes sur la page 1sur 4

TP 1 : Installation de FLEX

Objectif :

- Installation l’outil Flex.

I. Un langage et un outil pour l’analyse lexicale : (f)lex

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.

1. Syntaxe et sémantique des sources Flex

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.

<Définitions> /* ZONE DE DEFINITION (OPTIONNELLE) */


%%
<Règles> /* ZONE DES REGLES après le double pourcent (OBLIGATOIRE)
*/
%%
<Instructions C> /* ZONE DES FONCTIONS C (OPTIONNELLE) */

Les règles sont du type :

<Expression régulière> <instructions C>

Lorsqu’une expression régulière est reconnue, l’instruction C correspondante est exécutée.

2. Fonctionnement de Flex :

II. Installation

1. Ouvrir Codeblocks > Setting > compiler, choisir autodetect puis OK.

1
2. Installer Flex

3. PATH configuration pour CODEBLOCKS

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 2 : Ouvrir le panneau de configuration >..> paramètres système avancés variables


d'environnement

Etape 3 : Cliquez sur Path , Cliquez sur Modifier Cliquez sur Nouveau et collez-y le chemin copié: -
C: \ Program Files x86 \ CodeBlocks \ MinGW \ bin

Etape 4 : Appuyez sur OK, pour enregistrer le travail

III. Création d’un programme Flex

1. Allez au dossier bin sous gnuwin32

2. Créer un fichier avec extension ‘.l’ par exemple, Ex.l

3. Tapez le code en flex et passez pour l’invite de commande

IV. Exécution des programme FLEX

2
1. Ouvrir l’invite de commande

2. Accéder vers le dossier bin de Flex

3. flex Ex.l

4. gcc lex.yy.c

5. a.exe

Exemple de compilation et d’exécution :

V. Travaux Pratiques

Exercice 1 :

Que fait le programme Flex suivant ?

"/*" printf("");

"*/" printf("");

"\\n" printf("");

"("|"["|"{" printf("");

")"|"]"|"}" printf("");

"?"+ printf("",yyleng);

.;

%%

int main() { yylex(); return 0; }

Exercice 2 :

- Que fait le programme Flex suivant ?

%{

#include

3
%}

%%

"/*" printf("");

"*/" printf("");

"\\n" printf("");

"("|"["|"{" printf("");

")"|"]"|"}" printf("");

"?"+ printf("",yyleng);

.;

%%

int yywrap() {

return 1 ;

void main() {

printf("Taper une sequence: \n");

yylex();

Vous aimerez peut-être aussi