Ministère de l'Enseignement Supérieur et de la Recherche Scientifique
Université Hassiba Benbouali de Chlef
Faculté des Sciences Exactes & Informatique
Département de l'informatique
Rapport de TP Final
Module : Compilation
Thème
REALISATION D’UNE CALCULATRICE A L’AIDE DE L’OUTIL
FLEX/BISON
Présenté par: Groupe : 03
- BOUYAKOUB Said
- BENDENIA Ahmed
Année universitaire
2023/2024
Contenu:
- Introduction
- Description de l’outil FLEX
- Section des définitions
- Section des règles
- Code additionnel
Introduction:
Dans ce petit projet on est entrain de créé un compilateur d’analyse qui
permet de compiler les opération de base (+, -, x, /) d’une simple calculatrice, on
utilisant Flex.
Description de l’outil FLEX :
FLEX est un compilateur pour la génération des Analyseurs Lexicaux. Il est
souvent utilisé avec un analyseur syntaxique. Un Analyseur Lexical est un programme
permettant d’analyser un flux de chaines de caractères et le segmenté en lexèmes
(Tokens). Ces derniers représentent les entités lexicales d’un langage. A titre
d’exemple : les identifiants de variables et de fonctions, les mots clés, les opérateurs,
etc...
Un fichier FLEX est un fichier texte qui contient la description d’un analyseur
lexical en termes d’expressions régulières et d’actions écrites en C. Il comporte trois
parties principales séparées par une ligne contenant le symbole « %% »
Section des définitions
Contient la déclaration des variables et des fonctions globales, des inclusions
de fichiers et des expressions régulières. Les inclusions de fichiers et les déclarations
des variables et des fonctions globales sont mises entre les symboles « %{ » et « %} »
(chacun sur une seule ligne qui ne doit pas être indentée).
Section des règles
Cette section est capitale. Elle comporte l’ensemble des actions associées à
chaque entité lexicale. Une règle de traduction est de la forme suivante :<pattern>
<action>
Un pattern: c’est l’expression régulière décrivant un lexème.
Une action: c’est le code C qui sera exécuté à chaque fois que le lexème
correspondant
Code additionnel
C’est la dernière section d’un document FLEX. Elle contient le post-code C. Ce
dernier
représente le code que nous voulons exécuter. Il y sera recopié tel quel à la
fin du fichier lex.yy.c.
Contient des routines pouvant être appelées par l’analyseur lexical.
Peut aussi contenir une fonction « main ».
Section optionnelle : si elle est absente, le second symbole « %% » peut
être omis.
Finalement on obtient le résultat suivant après l’exécution de compilateur