// ** This class was generated with DemFGen (vers:02/05/2009)

package gen;

import edu.neu.ccs.demeterf.control.Fields;
import edu.neu.ccs.demeterf.demfgen.lib.ident;
import edu.neu.ccs.demeterf.demfgen.lib.verbatim;
import edu.neu.ccs.demeterf.demfgen.lib.*;
import edu.neu.ccs.demeterf.*;



/** Computes a simple String representation */
public class Display extends edu.neu.ccs.demeterf.ID{
   /** Static stub method for calling display */
   public static String DisplayM(Object o){
      return new edu.neu.ccs.demeterf.Traversal(new Display(),edu.neu.ccs.demeterf.Control.builtins()).<String>traverse(o,"   ");
   }

   String combine(byte o){ return ": byte \""+o+"\""; }
   String combine(short o){ return ": short \""+o+"\""; }
   String combine(int o){ return ": int \""+o+"\""; }
   String combine(long o){ return ": long \""+o+"\""; }
   String combine(float o){ return ": float \""+o+"\""; }
   String combine(double o){ return ": double \""+o+"\""; }
   String combine(char o){ return ": char \""+o+"\""; }
   String combine(boolean o){ return ": boolean \""+o+"\""; }
   String combine(String o){ return ": String \""+o+"\""; }
   String combine(ident o){ return ": ident \""+o+"\""; }
   String combine(verbatim o){ return ": verbatim \""+o+"\""; }


   String update(Object o, Fields.any f, String d){ return d+"   "; }
   String _i(int d){ return d==0?"":"   "+_i(d-1); }

   String combine(Cons _h_, String first, String rest, String _d_){
      return ": Cons ("+"\n"+_d_+"<first> "+first+"\n"+_d_+"<rest> "+rest+" )";
   }
   String combine(Empty _h_, String _d_){
      return ": Empty ("+" )";
   }
   String combine(Start _h_, String sample, String _d_){
      return ": Start ("+"\n"+_d_+"<sample> "+sample+" )";
   }
   String combine(B _h_, String v, String _d_){
      return ": B ("+"\n"+_d_+"<v> "+v+" )";
   }
   String combine(Literal _h_, String value, String var, String _d_){
      return ": Literal ("+"\n"+_d_+"<value> "+value+"\n"+_d_+"<var> "+var+" )";
   }
   String combine(Pos _h_, String _d_){
      return ": Pos ("+" )";
   }
   String combine(Neg _h_, String _d_){
      return ": Neg ("+" )";
   }
   String combine(Variable _h_, String v, String _d_){
      return ": Variable ("+"\n"+_d_+"<v> "+v+" )";
   }
   String combine(Main _h_, String _d_){
      return ": Main ("+" )";
   }

}