Écrire une classe
ExprParser avec une méthode
Expr parse(Scanner sc) qui construit une expression arithmétique de type
Expr à partir de ce qu'elle lit sur le scanner passé en argument.
On suppose pour cela que l'expression lue par le scanner est en notation préfixe, c'est-à-dire qu'on exprime l'opérateur, puis ses deux opérandes (on se limite au cas classique des opérations binaires +, -, / et *).
Par exemple, l'expression préfixe :
+ - 7 3 / 5 * + 4 5 - 4 2
représente en notation infixe l'expression
(7 - 3) + 5 / ((4 + 5) * (4 - 2))
Pour l'analyse, on pourra supposer que tous les opérateurs débutent par des caractères différents (on peut faire un "switch").
Dans le cas où l'expression analysée serait incorrecte, on lèvera une exception de la classe ExprParseException qu'il faudra définir. Faite en sorte d'obliger le programmeur à récuperer cette exception. L'exception devra représenter le plus fidèlement possible le problème rencontré.
Partager