:: Enseignements :: ESIPE :: E4INFO :: 2007-2008 :: Compilation ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) | Introduction à l'analyse lexicale |
Le but de ce TD est d'implanter un analyseur lexical en utilisant le
générateur de compilateurs
Tatoo pour récupérer des lexèmes reçus
sur un flot.
Exercice 1 - Préliminaires
Télécharger à l'URL suivant,
http://tatoo.univ-mlv.fr/files/, l'archive
tatoo-dep.zip
qui contient tous les fichiers Jar nécessaires à l'utilisation de
Tatoo et décompressez l'archive dans votre répertoire d'installation de Tatoo.
Vérifiez que votre installation est correcte et que la version de
Tatoo que vous avez téléchargée est bien la version courante en tapant :
java -jar tatoo.jar --check
Exercice 2 - Analyse lexicale simpliste
Écrire, en utilisant le générateur de compilateurs
Tatoo, un
programme qui extrait les chaînes
a et
ab* d'un fichier
dont le nom est précisé sur la ligne de commande.
Pour cela, vous suivrez les étapes suivantes, décrites précisément
dans le tutoriel
http://tatoo.univ-mlv.fr/doc/tutorial/fr/lexer/index.xhtml :
- écrire le fichier de règles .xlex ;
- générer l'implantion des automates en utilisant un fichier
ant ;
- écrire l'analyseur lexical qui utilise les classes générées.
Exercice 3 - Analyse lexicale des commentaires
En suivant les mêmes étapes que pour l'exercice précédent, écrire, en
utilisant le générateur de compilateurs Tatoo, un programme
qui extrait les commentaires Java d'un fichier dont le nom est reçu en
argument sur la ligne de commande.
Vous utiliserez pour cela les
expressions rationnelles définies lors du TD précédents.
Exercice 4 - Analyse lexicale des commentaires avec activateur
Écrire un programme équivalent qui utilise un état qui indique si
l'analyseur est en dehors d'un commentaire, dans un commentaire sur
une ligne ou dans un commentaire sur plusieurs lignes et qui utilise
cet état dans un objet
Activator (voir
tutoriel)
pour déterminer l'ensemble des règles actives.
Commencer par traiter le cas des commentaires sur une ligne, puis
ajouter les commentaires sur plusieurs lignes. Attention, il est
nécessaire de décomposer le contenu du commentaire en plusieurs
tokens.
© Université de Marne-la-Vallée