// ** This file was generated with DemFGen (vers:05/23/2010)

package edu.neu.ccs.demeterf.demfgen.classes;

import edu.neu.ccs.demeterf.Fields;
import edu.neu.ccs.demeterf.lib.ident;
import edu.neu.ccs.demeterf.lib.verbatim;
import edu.neu.ccs.demeterf.lib.*;
import edu.neu.ccs.demeterf.lib.*;
import edu.neu.ccs.demeterf.demfgen.*;
import edu.neu.ccs.demeterf.demfgen.dgp.DGPFunc;
import edu.neu.ccs.demeterf.demfgen.traversals.Travs;
import edu.neu.ccs.demeterf.demfgen.pcdgp.PCDGPFunc;
import edu.neu.ccs.demeterf.dispatch.*;
import edu.neu.ccs.demeterf.*;
import edu.neu.ccs.demeterf.demfgen.ClassHier.InhrtPair;
import edu.neu.ccs.demeterf.demfgen.DemFGenMain;
import java.io.*;
import java.io.FileInputStream;
import edu.neu.ccs.demeterf.util.Util;
import edu.neu.ccs.demeterf.util.CLI;



/** Creates a Static version of the TP class for a specific CD */
public class StaticTP extends edu.neu.ccs.demeterf.FC{
   public byte combine(byte _h_){ return _h_; }
   public short combine(short _h_){ return _h_; }
   public int combine(int _h_){ return _h_; }
   public long combine(long _h_){ return _h_; }
   public float combine(float _h_){ return _h_; }
   public double combine(double _h_){ return _h_; }
   public char combine(char _h_){ return _h_; }
   public boolean combine(boolean _h_){ return _h_; }
   public String combine(String _h_){ return _h_; }
   public ident combine(ident _h_){ return _h_; }
   public verbatim combine(verbatim _h_){ return _h_; }

   public CDFile combine(CDFile _h_, IncludeList incl, DGPUses dgpuse, PackageDef pkg, LookDef look, ImportList imports, TypeDefList types){
      return new CDFile(incl, dgpuse, pkg, look, imports, types);
   }
   public Include combine(Include _h_, DoGen gen, String file){
      return new Include(gen, file);
   }
   public IncludeCons combine(IncludeCons _h_, Include first, IncludeList rest){
      return new IncludeCons(first, rest);
   }
   public IncludeEmpty combine(IncludeEmpty _h_){
      return new IncludeEmpty();
   }
   public DGPUse combine(DGPUse _h_, NENameList pkg){
      return new DGPUse(pkg);
   }
   public NoDGPUse combine(NoDGPUse _h_){
      return new NoDGPUse();
   }
   public Package combine(Package _h_, NEPkgList pkg){
      return new Package(pkg);
   }
   public NoPackage combine(NoPackage _h_){
      return new NoPackage();
   }
   public LookAhead combine(LookAhead _h_, int n){
      return new LookAhead(n);
   }
   public NoLook combine(NoLook _h_){
      return new NoLook();
   }
   public Import combine(Import _h_, NEPkgList pkg){
      return new Import(pkg);
   }
   public NEPkgList combine(NEPkgList _h_, ident id, PkgList rest){
      return new NEPkgList(id, rest);
   }
   public PkgCons combine(PkgCons _h_, ident id, PkgList rest){
      return new PkgCons(id, rest);
   }
   public PkgStar combine(PkgStar _h_){
      return new PkgStar();
   }
   public PkgEmpty combine(PkgEmpty _h_){
      return new PkgEmpty();
   }
   public ImportCons combine(ImportCons _h_, Import first, ImportList rest){
      return new ImportCons(first, rest);
   }
   public ImportEmpty combine(ImportEmpty _h_){
      return new ImportEmpty();
   }
   public IntfcDef combine(IntfcDef _h_, DoGen gen, ident name, TypeDefParams tparams, PESubtypeList subtypes){
      return new IntfcDef(gen, name, tparams, subtypes);
   }
   public ClassDef combine(ClassDef _h_, DoGen gen, ident name, TypeDefParams tparams, PESubtypeList subtypes, FieldList fields, Impl ext){
      return new ClassDef(gen, name, tparams, subtypes, fields, ext);
   }
   public NoGen combine(NoGen _h_){
      return new NoGen();
   }
   public NoParse combine(NoParse _h_){
      return new NoParse();
   }
   public Extern combine(Extern _h_){
      return new Extern();
   }
   public YesGen combine(YesGen _h_){
      return new YesGen();
   }
   public DefParams combine(DefParams _h_, NENameList types){
      return new DefParams(types);
   }
   public EmptyDefParams combine(EmptyDefParams _h_){
      return new EmptyDefParams();
   }
   public NameDef combine(NameDef _h_, ident id, Bound bnd){
      return new NameDef(id, bnd);
   }
   public ClassBound combine(ClassBound _h_, TypeUse bound){
      return new ClassBound(bound);
   }
   public NoBound combine(NoBound _h_){
      return new NoBound();
   }
   public NoImpl combine(NoImpl _h_){
      return new NoImpl();
   }
   public IntfImpl combine(IntfImpl _h_, NETypeUseList intf){
      return new IntfImpl(intf);
   }
   public NENameList combine(NENameList _h_, NameDef first, NameList rest){
      return new NENameList(first, rest);
   }
   public NameCons combine(NameCons _h_, NameDef first, NameList rest){
      return new NameCons(first, rest);
   }
   public NameEmpty combine(NameEmpty _h_){
      return new NameEmpty();
   }
   public TypeUse combine(TypeUse _h_, ident name, TypeUseParams tparams){
      return new TypeUse(name, tparams);
   }
   public UseParams combine(UseParams _h_, NETypeUseList types){
      return new UseParams(types);
   }
   public EmptyUseParams combine(EmptyUseParams _h_){
      return new EmptyUseParams();
   }
   public NETypeUseList combine(NETypeUseList _h_, TypeUse first, TypeUseList rest){
      return new NETypeUseList(first, rest);
   }
   public TypeUseCons combine(TypeUseCons _h_, TypeUse first, TypeUseList rest){
      return new TypeUseCons(first, rest);
   }
   public TypeUseEmpty combine(TypeUseEmpty _h_){
      return new TypeUseEmpty();
   }
   public Field combine(Field _h_, ident name, TypeUse type){
      return new Field(name, type);
   }
   public AddSpace combine(AddSpace _h_){
      return new AddSpace();
   }
   public AddTab combine(AddTab _h_){
      return new AddTab();
   }
   public AddLine combine(AddLine _h_){
      return new AddLine();
   }
   public AddReturn combine(AddReturn _h_){
      return new AddReturn();
   }
   public Plus combine(Plus _h_){
      return new Plus();
   }
   public Minus combine(Minus _h_){
      return new Minus();
   }
   public AddToken combine(AddToken _h_, String str){
      return new AddToken(str);
   }
   public TheEOF combine(TheEOF _h_){
      return new TheEOF();
   }
   public RealToken combine(RealToken _h_, String str){
      return new RealToken(str);
   }
   public EmptyToken combine(EmptyToken _h_){
      return new EmptyToken();
   }
   public TypeDefCons combine(TypeDefCons _h_, TypeDef first, TypeDefList rest){
      return new TypeDefCons(first, rest);
   }
   public TypeDefEmpty combine(TypeDefEmpty _h_){
      return new TypeDefEmpty();
   }
   public FieldCons combine(FieldCons _h_, FieldOrSyntax first, FieldList rest){
      return new FieldCons(first, rest);
   }
   public FieldEmpty combine(FieldEmpty _h_){
      return new FieldEmpty();
   }
   public NESubtypeList combine(NESubtypeList _h_, TypeUse first, SubtypeList rest){
      return new NESubtypeList(first, rest);
   }
   public SubtypeCons combine(SubtypeCons _h_, TypeUse first, SubtypeList rest){
      return new SubtypeCons(first, rest);
   }
   public SubtypeEmpty combine(SubtypeEmpty _h_){
      return new SubtypeEmpty();
   }
   public BehFile combine(BehFile _h_, IncludeList incl, BehDefList behs){
      return new BehFile(incl, behs);
   }
   public BehDefCons combine(BehDefCons _h_, BehDef first, BehDefList rest){
      return new BehDefCons(first, rest);
   }
   public BehDefEmpty combine(BehDefEmpty _h_){
      return new BehDefEmpty();
   }
   public BehDef combine(BehDef _h_, ident name, verbatim body){
      return new BehDef(name, body);
   }
   public TE combine(TE _h_){
      return new TE();
   }
   public RTParseException combine(RTParseException _h_){
      return new RTParseException();
   }
   public RTFileNotFound combine(RTFileNotFound _h_){
      return new RTFileNotFound();
   }
   public DummyDGP combine(DummyDGP _h_, String behavior){
      return new DummyDGP(behavior);
   }
   public DummyTrav combine(DummyTrav _h_, List<CDFile> dfgl, List<TypeDef> tdl, List<DGPFunc> dgpl, Option<List<TypeDef>> otdl, List<FieldOrSyntax> flds){
      return new DummyTrav(dfgl, tdl, dgpl, otdl, flds);
   }
   public RED combine(RED _h_){
      return new RED();
   }
   public BLACK combine(BLACK _h_){
      return new BLACK();
   }

   public Empty combine(Empty _h_){
      return new Empty();
   }
   public Cons combine(Cons _h_, FieldOrSyntax first, List<FieldOrSyntax> rest){
      return new Cons(first, rest);
   }
   public None combine(None _h_){
      return new None();
   }
   public Some combine(Some _h_, List<TypeDef> just){
      return new Some(just);
   }
   public Cons combine(Cons _h_, DGPFunc first, List<DGPFunc> rest){
      return new Cons(first, rest);
   }
   public Cons combine(Cons _h_, TypeDef first, List<TypeDef> rest){
      return new Cons(first, rest);
   }
   public Cons combine(Cons _h_, CDFile first, List<CDFile> rest){
      return new Cons(first, rest);
   }


}