Differences

This shows you the differences between two versions of the page.

Link to this comparison view

alf:laboratoare:03_fr_java [2023/03/26 19:59]
alexandra.negoita02 [Exercices]
alf:laboratoare:03_fr_java [2023/04/03 17:37] (current)
alexandra.negoita02 [Lexer en ANTLR4]
Line 138: Line 138:
  
 <note important>​ <note important>​
-Après chaque modification apportée à la grammaire (fichier ''​alf.g4''​),​ vous devez generer de nouveau les fichiers de ANTLR, avec clic-droit sur le fichier de grammaire > '​Generate ANTLR Recognizer'​+Après chaque modification apportée à la grammaire (fichier ''​alf.g4''​),​ vous devez generer de nouveau les fichiers de ANTLR, avec clic-droit sur le fichier de grammaire > ''​Generate ANTLR Recognizer''
 </​note>​ </​note>​
  
 ===== Exercices ===== ===== Exercices =====
-   - **(Sans ANTLR)** Traitez le tableau ci-dessous a l'aide des **expressions régulières** de sorte que chaque livre devienne un objet de type Book, avec les suivantes propriétés:​ //titre// (string), //ISBN// (number), et //date de publication//​ (string). **(1p)** <​code ​javascript> String books_array = +   - **(Sans ANTLR)** Traitez le tableau ci-dessous a l'aide des **expressions régulières** de sorte que chaque livre devienne un objet de type Book, avec les suivantes propriétés:​ //titre// (string), //ISBN// (number), et //date de publication//​ (string). **(1p)** <​code ​java> String[] books_array = {"Engineering a Compiler,​9780120884780,​7th February 2011"
-    'Engineering a Compiler,​9780120884780,​7th February 2011'+                "​Modern Operating Systems 4,​9780133591620,​21st March 2014"
-    '​Modern Operating Systems 4,​9780133591620,​21st March 2014'+                "​Computer Networks,​9332518742,​9th January 2010"};</​code>​
-    '​Computer Networks,​9332518742,​9th January 2010+
-];</​code>​+
    - Installez ANTLR4 globalement,​ en suivant les étapes du laboratoire. **(1p)**    - Installez ANTLR4 globalement,​ en suivant les étapes du laboratoire. **(1p)**
    - Créez le programme complet présenté dans le tutoriel de ce TP (fichiers de configuration,​ fichier Alf.g4, fichier Main.java) et assurez-vous que son exécution est réalisée sans d'​erreurs. Faites input string "Hello <votre nom>​!"​**(1p)**    - Créez le programme complet présenté dans le tutoriel de ce TP (fichiers de configuration,​ fichier Alf.g4, fichier Main.java) et assurez-vous que son exécution est réalisée sans d'​erreurs. Faites input string "Hello <votre nom>​!"​**(1p)**
    - Affichez la liste des tokens: **(1p)**    - Affichez la liste des tokens: **(1p)**
-     - A l'aide des fonctions pour les strings, traitez le fichier ''​Alf.tokens''​ créé automatiquement par ANTLR et générez un HashMap qui ait comme clés l'​indice de vos tokens et comme valeurs leur nom. **(0.5p)** ​ <code bash>[ '1': '​NEWLINE', ​'2''INT' ]</​code>​+     - A l'aide des fonctions pour les strings, traitez le fichier ''​Alf.tokens''​ créé automatiquement par ANTLR et générez un HashMap qui ait comme clés l'​indice de vos tokens et comme valeurs leur nom. **(0.5p)** ​ <code bash>{1='Hello ', 2='!', 3=NAME}</​code>​
      - Parcourez et affichez la liste des tokens (pour chaque token, affichez son nom et sa valeur comme dans l'​exemple. **Indice**: Pour pouvoir afficher la liste des tokens, vous devrez inspecter la classe //​BufferedTokenStream//​ et choisir une méthode qui retourne cette liste. Vous aurez aussi besoin de la fonction **nextToken()** pour parcourir le buffer de données. **(0.5)** <code bash>[{ '​10':​ '​INT',​ '​\n':​ '​NEWLINE',​ '​20':​ '​INT'​ }</​code>​      - Parcourez et affichez la liste des tokens (pour chaque token, affichez son nom et sa valeur comme dans l'​exemple. **Indice**: Pour pouvoir afficher la liste des tokens, vous devrez inspecter la classe //​BufferedTokenStream//​ et choisir une méthode qui retourne cette liste. Vous aurez aussi besoin de la fonction **nextToken()** pour parcourir le buffer de données. **(0.5)** <code bash>[{ '​10':​ '​INT',​ '​\n':​ '​NEWLINE',​ '​20':​ '​INT'​ }</​code>​
    - Ajoutez a votre fichier ''​Alf.g4''​ des expressions régulières pour les jetons suivants: NUMBER - tout texte contenant uniquement des chiffres et PONCTUATION - différents signes de ponctuation. Utilisez le lexer créé dans l'​exercice précédent pour afficher la liste des tokens pour le texte: //Bonjour! Le TP d'ALF est de 8 a 10.// **(1p)**    - Ajoutez a votre fichier ''​Alf.g4''​ des expressions régulières pour les jetons suivants: NUMBER - tout texte contenant uniquement des chiffres et PONCTUATION - différents signes de ponctuation. Utilisez le lexer créé dans l'​exercice précédent pour afficher la liste des tokens pour le texte: //Bonjour! Le TP d'ALF est de 8 a 10.// **(1p)**
alf/laboratoare/03_fr_java.1679849988.txt.gz · Last modified: 2023/03/26 19:59 by alexandra.negoita02
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0