Exercices 5
Dans cette suite d'exercices, nous allons développer un analyseutr
syntaxique pour le langage d'expressions des exercices 11 - 14 (voir
exercices4.shtml).
Dans Token.java,
Scanner.java,
Parser.java et
ParserTest.java
vous trouvez les cadres de l'exercice.
Ajoutez les fichiers au répertoire de la semaine passée.
Exercice 15
Donnez une grammaire concrète et une grammaire abstraite
pour les expressions.
Grammaire concrète:
- Un nombre est une suite (non-vide) de chiffres ou une suite
de chiffres suivie par un point suivie par une deuxième
suite (non-vide) de chiffres.
- Un nombre est une expression. Une expression entre
parenthèses est une expression. Pour deux expressions e
et f, les phrases e + f,
e - f, e * f et e / f sont
des expressions.
- Les opérateurs * et / ont
précédence sur les opérateurs
+ et -.
- Les opérateurs lient à gauche: 1 + 2 + 3
correspond à (1 + 2) + 3.
Grammaire abstraite:
- Correspondante à la classe d'arbres.
Exercice 16
Réalisez l'analyseur lexical dans
Scanner.java.
Exercice 17
Réalisez les grammaires dans l'analyseur syntaxique dans
Parser.java. Chaque production de
la grammaire est implémentée dans une méthode
(voir aussi parser.shtml).
Exercice 18
Testez votre programme avec une suite de tests appropriés.
Christine Röckl
Last modified: Thu May 23 17:49:19 DST 2002