// ** 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 Env */
public abstract class Env{

    /** Construct a(n) Env Instance */
    public Env(){
    }
    /** Parse an instance of Env from the given String */
    public static Env parse(String inpt) throws ParseException{
        return new TheParser(new java.io.StringReader(inpt)).parse_Env();
    }
    /** Parse an instance of Env from the given Stream */
    public static Env parse(java.io.InputStream inpt) throws ParseException{
        return new TheParser(inpt).parse_Env();
    }
    /** Parse an instance of Env from the given Reader */
    public static Env parse(java.io.Reader inpt) throws ParseException{
        return new TheParser(inpt).parse_Env();
    }


   static Env empty = new EmptyEnv();
   int apply(ident id){ throw error.nodef(id); }
   Env extend(ident id, int v){ return new ExtEnv(id,v,this); }
   Env unextend(){ throw new RuntimeException("Can\'t unextend the empty env"); }
 
    /** DGP method from Class Print */
    public String print(){ return gen.Print.PrintM(this); }

}