Nous avons lors d'une séance précédente représenté les expressions arithmétiques
par leur arbre syntaxique.
Nous avons pour ça défini des classes dont les instances représentent des
opérateurs ou des constantes, qui implantent toutes une interface
Expr, qui déclare une méthode public double eval().
Utiliser la fonctionnalité import, pas de copier/coller.
Nous allons maintenant créer des analyseurs syntaxiques dont le rôle est
de calculer un tel arbre à partir d'une chaîne de caractères.
Vous documenterez toutes les classes, interfaces et méthodes que vous
écrirez en utilisant javadoc.
Toutes les classes de l'analyseur (et ses dépendances)
devront être créées dans le paquetage fr.umlv.analyzer.
En fait, on souhaite créer deux analyseurs syntaxiques différents,
un analyseur préfixe et un analyseur postfixe.
Nous allons donc dans un premier temps essayer de définir un interface
(un type) permettant de manipuler indifféremment un analyseur préfixe ou
un analyseur postfixe.
On cherche à construire un évaluateur préfixe respectant l'interface. SyntacticAnalyzer.
Java fr.umlv.analyzer.Evaluator "+" "7" "*" "3" "2" =13
Modifier la classe Evaluator pour que si des arguments sur la ligne de commandes sont présents alors l'analyse s'effectue sur la ligne de commande sinon que l'analyse s'effectue sur l'entrée standard.
On cherche maintenant à construire l'évaluateur postfixe respectant lui-aussi l'interface. SyntacticAnalyzer.
java fr.umlv.analyzer.Evaluator (-prefix|-postfix) expression