public class Var extends Leaf {
  
    String name;  // nom de la variable 

    public Var (String name) {
	      this.name = name;
    }
    public Double eval(Assignation ass) {
	      return ass.get(name);
    }     
    public Node derive(String var) {
	      if (name.equals(var)) return  new Const(1);
        return new Const(0);
    }
    @Override 
    public Object clone() throws CloneNotSupportedException{
        Var v = (Var) super.clone();
        v.name = new String(name);
	      return v;
    }
    public Node substitute(String var, double d) {
	       if (name.equals(var)) return new Const(d);
        return this;
    }
}
