// ** This class was generated with DemFGen (vers:09/27/2009)

package gen;

import edu.neu.ccs.demeterf.lib.*;
import edu.neu.ccs.demeterf.*;
import edu.neu.ccs.demeterf.lib.*;




/** Representation of ExtEnv */
public class ExtEnv extends Env{
    protected final ident id;
    protected final int v;
    protected final Env rest;

    /** Construct a(n) ExtEnv Instance */
    public ExtEnv(ident id, int v, Env rest){
        this.id = id;
        this.v = v;
        this.rest = rest;
    }
    /** Is the given object Equal to this ExtEnv? */
    public boolean equals(Object o){
        if(!(o instanceof ExtEnv))return false;
        if(o == this)return true;
        ExtEnv oo = (ExtEnv)o;
        return (((Object)id).equals(oo.id))&&(((Object)v).equals(oo.v))&&(((Object)rest).equals(oo.rest));
    }
    /** Parse an instance of ExtEnv from the given String */
    public static ExtEnv parse(String inpt) throws ParseException{
        return new TheParser(new java.io.StringReader(inpt)).parse_ExtEnv();
    }
    /** Parse an instance of ExtEnv from the given Stream */
    public static ExtEnv parse(java.io.InputStream inpt) throws ParseException{
        return new TheParser(inpt).parse_ExtEnv();
    }
    /** Parse an instance of ExtEnv from the given Reader */
    public static ExtEnv parse(java.io.Reader inpt) throws ParseException{
        return new TheParser(inpt).parse_ExtEnv();
    }

    /** Field Class for ExtEnv.id */
    public static class id extends edu.neu.ccs.demeterf.control.Fields.any{}
    /** Field Class for ExtEnv.v */
    public static class v extends edu.neu.ccs.demeterf.control.Fields.any{}
    /** Field Class for ExtEnv.rest */
    public static class rest extends edu.neu.ccs.demeterf.control.Fields.any{}

    /** DGP method from Class Print */
    public String print(){ return gen.Print.PrintM(this); }
    /** Getter for field ExtEnv.rest */
    public Env getRest(){ return rest; }
    /** Getter for field ExtEnv.v */
    public int getV(){ return v; }
    /** Getter for field ExtEnv.id */
    public ident getId(){ return id; }

}