Evaluation d'expressions arithmétiques entières

Vous devez mettre en oeuvre la fonction

int evalue(string const&)
qui évalue une expression arithmétique dont toutes les valeurs sont des entiers positifs.

Les expressions valides sont de type

( lhs op rhs )
où lhs et rhs sont soit des nombres entiers, soit des expressions valides, et op peut être l'un des 5 opérateurs suivants:
+, -, *, /, %
.

Il y a plusieurs approches possibles.

Si l'expression n'est pas valide, votre fonction doit lever une exception de type bad_expression.

Pour simplifier les choses, dans cet exercice les symboles + et - sont toujours considérés comme des opérateurs binaires et jamais comme des opérateurs unaires indiquant le signe de l'entier qui le suit.