0% ont trouvé ce document utile (0 vote)
22 vues2 pages

TP 2

Le document décrit la création d'un analyseur syntaxique et lexical utilisant Flex et Bison pour reconnaître des mots-clés comme if, else, while et des identifiants. Il détaille les étapes de définition de l'analyseur lexical, de l'analyseur syntaxique, ainsi que les commandes nécessaires pour compiler et exécuter le projet. La grammaire inclut des structures simples comme des déclarations conditionnelles et des identifiants simples.

Transféré par

Happy life
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
22 vues2 pages

TP 2

Le document décrit la création d'un analyseur syntaxique et lexical utilisant Flex et Bison pour reconnaître des mots-clés comme if, else, while et des identifiants. Il détaille les étapes de définition de l'analyseur lexical, de l'analyseur syntaxique, ainsi que les commandes nécessaires pour compiler et exécuter le projet. La grammaire inclut des structures simples comme des déclarations conditionnelles et des identifiants simples.

Transféré par

Happy life
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Avril 2025

Institut Supérieur d’Informatique de Mahdia

Matiére : Technique de Compilation

TP2: Analyse syntaxique

Objectif :

Nous allons créer un analyseur qui reconnaît :

• Des mots-clés comme if, else, while.

• Des identifiants (noms de variables).

L'exemple comprendra les étapes de création du fichier Flex pour l'analyse lexicale et du fichier Bison
pour l'analyse syntaxique.

Étape 1 : Définir l'analyseur lexical avec Flex

Nous allons définir un analyseur lexical qui reconnaît les mots-clés (if, else, while) et les identifiants.

Fichier lexer.l (analyseur lexical)

Étape 2 : Définir l'analyseur syntaxique avec Bison

L'analyseur syntaxique Bison va utiliser les tokens définis par Flex pour reconnaître des structures
simples.

Fichier parser.y (analyseur syntaxique)

Tokens : Les tokens IF, ELSE, WHILE, et IDENTIFIER sont utilisés pour construire des expressions
syntaxiques.

Grammaire : Une déclaration peut être :

• IF IDENTIFIER ELSE IDENTIFIER : Un if suivi de deux identifiants (ex. if x else y).


Avril 2025

• WHILE IDENTIFIER : Un while suivi d'un identifiant (ex. while x).

• Un simple IDENTIFIER : Une déclaration d'identifiant (ex. x).

Actions : Chaque règle dans la grammaire exécute une action, comme afficher des messages avec les
identifiants rencontrés.

Étape 3 : Compilation et exécution

Générer le fichier lex.yy.c avec Flex

Exécute la commande pour générer le fichier lex.yy.c à partir de lexer.l

Générer le fichier parser.tab.c avec Bison

Ensuite, génère les fichiers parser.tab.c et parser.tab.h avec la commande :

bison -d parser.y

Compiler le projet avec GCC

Après avoir généré les fichiers, compile-les en un exécutable avec la commande suivante :

gcc lex.yy.c parser.tab.c

Vous aimerez peut-être aussi