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

package gen;

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




/** Representation of Op */
public abstract class Op{

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


  static OpList mt = new OpEmpty();
  abstract ExecStack eval(ExecStack s);
  ExecStack eval(ExecStack s, OpList cc){ return cc.eval(eval(s)); }
  public OpList append(Op o){ return mt.append(this).append(o); }
  public OpList append(OpList o){ return mt.append(this).append(o); }

    /** DGP method from Class Print */
    public String print(){ return gen.Print.PrintM(this); }

}