abstract class Opadd extends Expression {
+    protected Terme gauche;
+    protected Expression droite;
 
+    Opadd(Terme g, Expression d) {
+        gauche = g;
+        droite = d;
+    }
 }
 
 
 class Opdiv extends Opmul {
 
+    Opdiv(Facteur g,Terme d) {
+        super(g, d);
+    }
+
     public double evaluer() {
-        return 0.0;
+        return gauche.evaluer() / droite.evaluer();
     }
 }
 
 
 class Opminus extends Opadd {
 
+    Opminus(Terme g, Expression d) {
+        super(g, d);
+    }
+
     public double evaluer() {
-        return 0.0;
+        return gauche.evaluer() - droite.evaluer();
     }
 }
 
 
 abstract class Opmul extends Terme {
+    protected Facteur gauche;
+    protected Terme droite;
+
+    Opmul(Facteur g, Terme d) {
+        gauche = g;
+        droite = d;
+    }
 
 }
 
 
 class Opmulti extends Opmul {
 
+    Opmulti(Facteur g,Terme d) {
+        super(g, d);
+    }
+
     public double evaluer() {
-        return 0.0;
+        return gauche.evaluer() * droite.evaluer();
     }
 }
 
 
 class Opplus extends Opadd {
 
+    Opplus(Terme g, Expression d) {
+        super(g, d);
+    }
+
     public double evaluer() {
-        return 0.0;
+        return gauche.evaluer() + droite.evaluer();
     }
 }