public class Arithmetique {

    public static void main(String[] args) {
        if (args.length == 0) {
            System.out.println("Veuillez fournir une expression en notation polonaise inversée.");
            return;
        }

        // Utilisation de l'implémentation FileTableau pour la file
        File<Integer> queue = new FileTableau<>();

        try {
            for (String token : args) {
                switch (token) {
                    case "+":
                        // Addition
                        queue.ajouter(queue.retirer() + queue.retirer());
                        break;
                    case "-":
                        // Soustraction (attention à l'ordre)
                        int b = queue.retirer();
                        int a = queue.retirer();
                        queue.ajouter(a - b);
                        break;
                    case "x":
                        // Multiplication
                        queue.ajouter(queue.retirer() * queue.retirer());
                        break;
                    case "/":
                        // Division (attention à l'ordre)
                        b = queue.retirer();
                        a = queue.retirer();
                        if (b == 0) {
                            throw new ArithmeticException("Division par zéro");
                        }
                        queue.ajouter(a / b);
                        break;
                    default:
                        // Si ce n'est pas un opérateur, alors c'est un nombre
                        queue.ajouter(Integer.parseInt(token));
                        break;
                }
            }

            // Le résultat final doit être le seul élément restant dans la file
            if (queue.taille() == 1) {
                System.out.println("= " + queue.retirer());
            } else {
                System.out.println("Erreur : Expression incorrecte.");
            }

        } catch (Exception e) {
            System.out.println("Erreur lors de l'évaluation de l'expression : " + e.getMessage());
        }
    }
}