La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Introduction aux langages formels

Présentations similaires


Présentation au sujet: "Introduction aux langages formels"— Transcription de la présentation:

1 Introduction aux langages formels
Francis Bisson Département d’informatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift313 Lab 2 :JFLex

2 Tâches Installer JFlex
Se familiariser avec JFlex en essayant quelques exemples IFT313 © Froduald Kabanza 2 2

3 Installer JFlex Télécharger JFlex à partir du site Décompresser l’archive dans un répertoire à votre choix (exemple: ift313/outils) Suivre les instructions dans doc/manual.html Sous Windows, ne pas oublier d’éditer bin/jflex.bat pour Tout mettre en commentaire sauf les lignes pour set JFLEX_HOME … // Doit pointer le chemin de JLFEX Java –xmx128 … IFT313 © Froduald Kabanza 3 3

4 Télécharger les exemples
Au site du cours (planiart.usherbrooke.ca/kabanza/cours/ift313), suivre le lien pour Lab2 et télécharger Lab2.tar.gz Décompressez le fichier. Vous devriez avoir: jflex.ppt arithmetique/ calc calcStandalone nameExtractor IFT313 © Froduald Kabanza 4 4

5 Exemple 1 Allez dans le répertoire calcStandalone
Générez l’analyseur lexical jflex scanner.flex Ceci va produire le fichier Scanner.java. Compiler Testez l’analyseur en exécutant la classe Scanner et en donnant comme entrée un fichier contenant une expression arithmétique (voir arithmetique/input1.txt). java –cp <classpath> exemple1.Scanner “(3+4)” L’analyseur va reconnaître les différents tokens et les afficher. IFT313 © Froduald Kabanza 5 5

6 Test de JFlex (3) Avec l'expression : ( 3 + 5 * 2 )
Vous devriez obtenir : (TOKEN TEXTE ( TYPE 7 START 0 END 1) (TOKEN TEXTE 3 TYPE 9 START 2 END 3) (TOKEN TEXTE + TYPE 1 START 4 END 5) (TOKEN TEXTE 5 TYPE 9 START 6 END 7) (TOKEN TEXTE * TYPE 3 START 8 END 9) (TOKEN TEXTE 2 TYPE 9 START 10 END 11) (TOKEN TEXTE ) TYPE 8 START 12 END 13) END! IFT313 © Froduald Kabanza 6 6

7 Exemple 2 Dans l’exemple précédent, l’analyseur est doté d’une méthode main par la directive %standalone. Dans l’exemple suivant, l’analyseur n’a pas de méthode main. On invoque sa méthode next_token à partir d’une autre classe. Allez dans le répertoire arithmetique Générez l’analyseur lexical jflex scanner.flex Ceci va produire le fichier Yylex.java. Compiler Testez l’analyseur en exécutant la classe Runscanner et en donnant comme entrée une expression arithmétique (par exemple: (10+30)). java –cp <classpath> exemple2.Runscanner (10+ 30) Runscanner va reconnaître les différents tokens et les afficher. IFT313 © Froduald Kabanza 7 7

8 1. Regarder à l’intérieur des fichiers:
Explorer 1. Regarder à l’intérieur des fichiers: scanner.flex, Runscanner.java, Utility.java, Yytoken.java 2. Essayer de faire des modifications et de voir le résultat 3. Essayer d’autres exemples IFT313 © Froduald Kabanza 8 8

9 Quoi faire après ? 1. Regarder à l’intérieur des fichiers générés Reconnaître l’automate généré Comprendre comment l’analyseur lexical est appelé par Runscanner Exercice: modifier arithmetique/scanner.jflex pour qu’il génère un fichier source .java autonome (sans avoir besoin de Runscanner.java) Indice: copier le code du main() au bon endroit dans le fichier .jflex IFT313 © Froduald Kabanza 9 9

10 Quoi faire après ? 2. Lire la documentation de JFlex
3. Se familiariser avec les exemples inclus dans JFlex 4. Essayer de modifier quelques uns des exemples 5. Implémenter une table de symboles avec un objet Hashtable 6. Spécifier un scanner qui additionne tous les nombres d’un fichiers 7. Commencer le devoir #2 IFT313 © Froduald Kabanza 10 10


Télécharger ppt "Introduction aux langages formels"

Présentations similaires


Annonces Google