// ** This class was generated with DemFGen (vers:11/03/2008)

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.*;



public class Display extends edu.neu.ccs.demeterf.ID{
   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(Some _h_, String just, String _d_){
      return ": Some ("+"\n"+_d_+"<just> "+just+" )";
   }
   String combine(None _h_, String _d_){
      return ": None ("+" )";
   }
   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(Entry _h_, String key, String val, String _d_){
      return ": Entry ("+"\n"+_d_+"<key> "+key+"\n"+_d_+"<val> "+val+" )";
   }
   String combine(Map _h_, String map, String _d_){
      return ": Map ("+"\n"+_d_+"<map> "+map+" )";
   }
   String combine(RED _h_, String _d_){
      return ": RED ("+" )";
   }
   String combine(BLACK _h_, String _d_){
      return ": BLACK ("+" )";
   }
   String combine(RBNode _h_, String color, String data, String left, String right, String _d_){
      return ": RBNode ("+"\n"+_d_+"<color> "+color+"\n"+_d_+"<data> "+data+"\n"+_d_+"<left> "+left+"\n"+_d_+"<right> "+right+" )";
   }
   String combine(RBLeaf _h_, String _d_){
      return ": RBLeaf ("+" )";
   }
   String combine(RawMaterial _h_, String constraints, String pred, String nested, String not, String number, String _d_){
      return ": RawMaterial ("+"\n"+_d_+"<constraints> "+constraints+"\n"+_d_+"<pred> "+pred+"\n"+_d_+"<nested> "+nested+"\n"+_d_+"<not> "+not+"\n"+_d_+"<number> "+number+" )";
   }
   String combine(N _h_, String i, String _d_){
      return ": N ("+"\n"+_d_+"<i> "+i+" )";
   }
   String combine(Constraint _h_, String w, String r, String cs, String _d_){
      return ": Constraint ("+"\n"+_d_+"<w> "+w+"\n"+_d_+"<r> "+r+"\n"+_d_+"<cs> "+cs+" )";
   }
   String combine(Weight _h_, String v, String _d_){
      return ": Weight ("+"\n"+_d_+"<v> "+v+" )";
   }
   String combine(RelationNr _h_, String v, String _d_){
      return ": RelationNr ("+"\n"+_d_+"<v> "+v+" )";
   }
   String combine(Variable _h_, String v, String _d_){
      return ": Variable ("+"\n"+_d_+"<v> "+v+" )";
   }

}