// ** 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 Traversal for a specific CD without a Context */ public class StaticTrav extends edu.neu.ccs.demeterf.Traversal{ public <_R> _R traversebyte(byte o){ return (_R)applyBuilder(new Object[]{o}, true); } public <_R> _R traverseshort(short o){ return (_R)applyBuilder(new Object[]{o}, true); } public <_R> _R traverseint(int o){ return (_R)applyBuilder(new Object[]{o}, true); } public <_R> _R traverselong(long o){ return (_R)applyBuilder(new Object[]{o}, true); } public <_R> _R traversefloat(float o){ return (_R)applyBuilder(new Object[]{o}, true); } public <_R> _R traversedouble(double o){ return (_R)applyBuilder(new Object[]{o}, true); } public <_R> _R traversechar(char o){ return (_R)applyBuilder(new Object[]{o}, true); } public <_R> _R traverseboolean(boolean o){ return (_R)applyBuilder(new Object[]{o}, true); } public <_R> _R traverseString(String o){ return (_R)applyBuilder(new Object[]{o}, true); } public <_R> _R traverseident(ident o){ return (_R)applyBuilder(new Object[]{o}, true); } public <_R> _R traverseverbatim(verbatim o){ return (_R)applyBuilder(new Object[]{o}, true); } public <_R> _R traverseByte(Byte o){ return (_R)applyBuilder(new Object[]{o}, true); } public <_R> _R traverseShort(Short o){ return (_R)applyBuilder(new Object[]{o}, true); } public <_R> _R traverseInteger(Integer o){ return (_R)applyBuilder(new Object[]{o}, true); } public <_R> _R traverseLong(Long o){ return (_R)applyBuilder(new Object[]{o}, true); } public <_R> _R traverseFloat(Float o){ return (_R)applyBuilder(new Object[]{o}, true); } public <_R> _R traverseDouble(Double o){ return (_R)applyBuilder(new Object[]{o}, true); } public <_R> _R traverseCharacter(Character o){ return (_R)applyBuilder(new Object[]{o}, true); } public <_R> _R traverseBoolean(Boolean o){ return (_R)applyBuilder(new Object[]{o}, true); } public StaticTrav(edu.neu.ccs.demeterf.FC f){ super(f); } public StaticTrav(edu.neu.ccs.demeterf.FC f, edu.neu.ccs.demeterf.Control c){ super(f,c); } public <_R> _R traverseCDFile(CDFile _h){ if(control.isBuiltIn(CDFile.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object incl = (control.skip(CDFile.class, "incl"))?(_h.getIncl()):this.traverseIncludeList(_h.getIncl()); Object dgpuse = (control.skip(CDFile.class, "dgpuse"))?(_h.getDgpuse()):this.traverseDGPUses(_h.getDgpuse()); Object pkg = (control.skip(CDFile.class, "pkg"))?(_h.getPkg()):this.traversePackageDef(_h.getPkg()); Object look = (control.skip(CDFile.class, "look"))?(_h.getLook()):this.traverseLookDef(_h.getLook()); Object imports = (control.skip(CDFile.class, "imports"))?(_h.getImports()):this.traverseImportList(_h.getImports()); Object types = (control.skip(CDFile.class, "types"))?(_h.getTypes()):this.traverseTypeDefList(_h.getTypes()); return (_R)applyBuilder(new Object[]{_h, incl, dgpuse, pkg, look, imports, types}, false); } public <_R> _R traverseInclude(Include _h){ if(control.isBuiltIn(Include.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object gen = (control.skip(Include.class, "gen"))?(_h.getGen()):this.traverseDoGen(_h.getGen()); Object file = (control.skip(Include.class, "file"))?(_h.getFile()):this.traverseString(_h.getFile()); return (_R)applyBuilder(new Object[]{_h, gen, file}, false); } public <_R> _R traverseIncludeList(IncludeList _h){ if(control.isBuiltIn(IncludeList.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof IncludeCons) return this.<_R>traverseIncludeCons((IncludeCons)_h); if(_h instanceof IncludeEmpty) return this.<_R>traverseIncludeEmpty((IncludeEmpty)_h); else throw new RuntimeException("Unknown IncludeList Variant"); } public <_R> _R traverseIncludeCons(IncludeCons _h){ if(control.isBuiltIn(IncludeCons.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object first = (control.skip(IncludeCons.class, "first"))?(_h.getFirst()):this.traverseInclude(_h.getFirst()); Object rest = (control.skip(IncludeCons.class, "rest"))?(_h.getRest()):this.traverseIncludeList(_h.getRest()); return (_R)applyBuilder(new Object[]{_h, first, rest}, false); } public <_R> _R traverseIncludeEmpty(IncludeEmpty _h){ if(control.isBuiltIn(IncludeEmpty.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseDGPUses(DGPUses _h){ if(control.isBuiltIn(DGPUses.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof DGPUse) return this.<_R>traverseDGPUse((DGPUse)_h); if(_h instanceof NoDGPUse) return this.<_R>traverseNoDGPUse((NoDGPUse)_h); else throw new RuntimeException("Unknown DGPUses Variant"); } public <_R> _R traverseDGPUse(DGPUse _h){ if(control.isBuiltIn(DGPUse.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object pkg = (control.skip(DGPUse.class, "pkg"))?(_h.getPkg()):this.traverseNENameList(_h.getPkg()); return (_R)applyBuilder(new Object[]{_h, pkg}, false); } public <_R> _R traverseNoDGPUse(NoDGPUse _h){ if(control.isBuiltIn(NoDGPUse.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traversePackageDef(PackageDef _h){ if(control.isBuiltIn(PackageDef.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof Package) return this.<_R>traversePackage((Package)_h); if(_h instanceof NoPackage) return this.<_R>traverseNoPackage((NoPackage)_h); else throw new RuntimeException("Unknown PackageDef Variant"); } public <_R> _R traversePackage(Package _h){ if(control.isBuiltIn(Package.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object pkg = (control.skip(Package.class, "pkg"))?(_h.getPkg()):this.traverseNEPkgList(_h.getPkg()); return (_R)applyBuilder(new Object[]{_h, pkg}, false); } public <_R> _R traverseNoPackage(NoPackage _h){ if(control.isBuiltIn(NoPackage.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseLookDef(LookDef _h){ if(control.isBuiltIn(LookDef.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof LookAhead) return this.<_R>traverseLookAhead((LookAhead)_h); if(_h instanceof NoLook) return this.<_R>traverseNoLook((NoLook)_h); else throw new RuntimeException("Unknown LookDef Variant"); } public <_R> _R traverseLookAhead(LookAhead _h){ if(control.isBuiltIn(LookAhead.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object n = (control.skip(LookAhead.class, "n"))?(_h.getN()):this.traverseint(_h.getN()); return (_R)applyBuilder(new Object[]{_h, n}, false); } public <_R> _R traverseNoLook(NoLook _h){ if(control.isBuiltIn(NoLook.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseImport(Import _h){ if(control.isBuiltIn(Import.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object pkg = (control.skip(Import.class, "pkg"))?(_h.getPkg()):this.traverseNEPkgList(_h.getPkg()); return (_R)applyBuilder(new Object[]{_h, pkg}, false); } public <_R> _R traversePkgList(PkgList _h){ if(control.isBuiltIn(PkgList.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof PkgCons) return this.<_R>traversePkgCons((PkgCons)_h); if(_h instanceof PkgStar) return this.<_R>traversePkgStar((PkgStar)_h); if(_h instanceof PkgEmpty) return this.<_R>traversePkgEmpty((PkgEmpty)_h); else throw new RuntimeException("Unknown PkgList Variant"); } public <_R> _R traverseNEPkgList(NEPkgList _h){ if(control.isBuiltIn(NEPkgList.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object id = (control.skip(NEPkgList.class, "id"))?(_h.getId()):this.traverseident(_h.getId()); Object rest = (control.skip(NEPkgList.class, "rest"))?(_h.getRest()):this.traversePkgList(_h.getRest()); return (_R)applyBuilder(new Object[]{_h, id, rest}, false); } public <_R> _R traversePkgCons(PkgCons _h){ if(control.isBuiltIn(PkgCons.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object id = (control.skip(PkgCons.class, "id"))?(_h.getId()):this.traverseident(_h.getId()); Object rest = (control.skip(PkgCons.class, "rest"))?(_h.getRest()):this.traversePkgList(_h.getRest()); return (_R)applyBuilder(new Object[]{_h, id, rest}, false); } public <_R> _R traversePkgStar(PkgStar _h){ if(control.isBuiltIn(PkgStar.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traversePkgEmpty(PkgEmpty _h){ if(control.isBuiltIn(PkgEmpty.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseImportList(ImportList _h){ if(control.isBuiltIn(ImportList.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof ImportCons) return this.<_R>traverseImportCons((ImportCons)_h); if(_h instanceof ImportEmpty) return this.<_R>traverseImportEmpty((ImportEmpty)_h); else throw new RuntimeException("Unknown ImportList Variant"); } public <_R> _R traverseImportCons(ImportCons _h){ if(control.isBuiltIn(ImportCons.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object first = (control.skip(ImportCons.class, "first"))?(_h.getFirst()):this.traverseImport(_h.getFirst()); Object rest = (control.skip(ImportCons.class, "rest"))?(_h.getRest()):this.traverseImportList(_h.getRest()); return (_R)applyBuilder(new Object[]{_h, first, rest}, false); } public <_R> _R traverseImportEmpty(ImportEmpty _h){ if(control.isBuiltIn(ImportEmpty.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseTypeDef(TypeDef _h){ if(control.isBuiltIn(TypeDef.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof IntfcDef) return this.<_R>traverseIntfcDef((IntfcDef)_h); if(_h instanceof ClassDef) return this.<_R>traverseClassDef((ClassDef)_h); else throw new RuntimeException("Unknown TypeDef Variant"); } public <_R> _R traverseIntfcDef(IntfcDef _h){ if(control.isBuiltIn(IntfcDef.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object gen = (control.skip(IntfcDef.class, "gen"))?(_h.getGen()):this.traverseDoGen(_h.getGen()); Object name = (control.skip(IntfcDef.class, "name"))?(_h.getName()):this.traverseident(_h.getName()); Object tparams = (control.skip(IntfcDef.class, "tparams"))?(_h.getTparams()):this.traverseTypeDefParams(_h.getTparams()); Object subtypes = (control.skip(IntfcDef.class, "subtypes"))?(_h.getSubtypes()):this.traversePESubtypeList(_h.getSubtypes()); return (_R)applyBuilder(new Object[]{_h, gen, name, tparams, subtypes}, false); } public <_R> _R traverseClassDef(ClassDef _h){ if(control.isBuiltIn(ClassDef.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object gen = (control.skip(ClassDef.class, "gen"))?(_h.getGen()):this.traverseDoGen(_h.getGen()); Object name = (control.skip(ClassDef.class, "name"))?(_h.getName()):this.traverseident(_h.getName()); Object tparams = (control.skip(ClassDef.class, "tparams"))?(_h.getTparams()):this.traverseTypeDefParams(_h.getTparams()); Object subtypes = (control.skip(ClassDef.class, "subtypes"))?(_h.getSubtypes()):this.traversePESubtypeList(_h.getSubtypes()); Object fields = (control.skip(ClassDef.class, "fields"))?(_h.getFields()):this.traverseFieldList(_h.getFields()); Object ext = (control.skip(ClassDef.class, "ext"))?(_h.getExt()):this.traverseImpl(_h.getExt()); return (_R)applyBuilder(new Object[]{_h, gen, name, tparams, subtypes, fields, ext}, false); } public <_R> _R traverseDoGen(DoGen _h){ if(control.isBuiltIn(DoGen.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof NoParse) return this.<_R>traverseNoParse((NoParse)_h); if(_h instanceof NoGen) return this.<_R>traverseNoGen((NoGen)_h); if(_h instanceof Extern) return this.<_R>traverseExtern((Extern)_h); if(_h instanceof YesGen) return this.<_R>traverseYesGen((YesGen)_h); else throw new RuntimeException("Unknown DoGen Variant"); } public <_R> _R traverseNoGen(NoGen _h){ if(control.isBuiltIn(NoGen.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseNoParse(NoParse _h){ if(control.isBuiltIn(NoParse.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseExtern(Extern _h){ if(control.isBuiltIn(Extern.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseYesGen(YesGen _h){ if(control.isBuiltIn(YesGen.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseTypeDefParams(TypeDefParams _h){ if(control.isBuiltIn(TypeDefParams.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof DefParams) return this.<_R>traverseDefParams((DefParams)_h); if(_h instanceof EmptyDefParams) return this.<_R>traverseEmptyDefParams((EmptyDefParams)_h); else throw new RuntimeException("Unknown TypeDefParams Variant"); } public <_R> _R traverseDefParams(DefParams _h){ if(control.isBuiltIn(DefParams.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object types = (control.skip(DefParams.class, "types"))?(_h.getTypes()):this.traverseNENameList(_h.getTypes()); return (_R)applyBuilder(new Object[]{_h, types}, false); } public <_R> _R traverseEmptyDefParams(EmptyDefParams _h){ if(control.isBuiltIn(EmptyDefParams.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseNameDef(NameDef _h){ if(control.isBuiltIn(NameDef.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object id = (control.skip(NameDef.class, "id"))?(_h.getId()):this.traverseident(_h.getId()); Object bnd = (control.skip(NameDef.class, "bnd"))?(_h.getBnd()):this.traverseBound(_h.getBnd()); return (_R)applyBuilder(new Object[]{_h, id, bnd}, false); } public <_R> _R traverseBound(Bound _h){ if(control.isBuiltIn(Bound.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof ClassBound) return this.<_R>traverseClassBound((ClassBound)_h); if(_h instanceof NoBound) return this.<_R>traverseNoBound((NoBound)_h); else throw new RuntimeException("Unknown Bound Variant"); } public <_R> _R traverseClassBound(ClassBound _h){ if(control.isBuiltIn(ClassBound.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object bound = (control.skip(ClassBound.class, "bound"))?(_h.getBound()):this.traverseTypeUse(_h.getBound()); return (_R)applyBuilder(new Object[]{_h, bound}, false); } public <_R> _R traverseNoBound(NoBound _h){ if(control.isBuiltIn(NoBound.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseImpl(Impl _h){ if(control.isBuiltIn(Impl.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof IntfImpl) return this.<_R>traverseIntfImpl((IntfImpl)_h); if(_h instanceof NoImpl) return this.<_R>traverseNoImpl((NoImpl)_h); else throw new RuntimeException("Unknown Impl Variant"); } public <_R> _R traverseNoImpl(NoImpl _h){ if(control.isBuiltIn(NoImpl.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseIntfImpl(IntfImpl _h){ if(control.isBuiltIn(IntfImpl.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object intf = (control.skip(IntfImpl.class, "intf"))?(_h.getIntf()):this.traverseNETypeUseList(_h.getIntf()); return (_R)applyBuilder(new Object[]{_h, intf}, false); } public <_R> _R traverseNameList(NameList _h){ if(control.isBuiltIn(NameList.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof NameCons) return this.<_R>traverseNameCons((NameCons)_h); if(_h instanceof NameEmpty) return this.<_R>traverseNameEmpty((NameEmpty)_h); else throw new RuntimeException("Unknown NameList Variant"); } public <_R> _R traverseNENameList(NENameList _h){ if(control.isBuiltIn(NENameList.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object first = (control.skip(NENameList.class, "first"))?(_h.getFirst()):this.traverseNameDef(_h.getFirst()); Object rest = (control.skip(NENameList.class, "rest"))?(_h.getRest()):this.traverseNameList(_h.getRest()); return (_R)applyBuilder(new Object[]{_h, first, rest}, false); } public <_R> _R traverseNameCons(NameCons _h){ if(control.isBuiltIn(NameCons.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object first = (control.skip(NameCons.class, "first"))?(_h.getFirst()):this.traverseNameDef(_h.getFirst()); Object rest = (control.skip(NameCons.class, "rest"))?(_h.getRest()):this.traverseNameList(_h.getRest()); return (_R)applyBuilder(new Object[]{_h, first, rest}, false); } public <_R> _R traverseNameEmpty(NameEmpty _h){ if(control.isBuiltIn(NameEmpty.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseTypeUse(TypeUse _h){ if(control.isBuiltIn(TypeUse.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object name = (control.skip(TypeUse.class, "name"))?(_h.getName()):this.traverseident(_h.getName()); Object tparams = (control.skip(TypeUse.class, "tparams"))?(_h.getTparams()):this.traverseTypeUseParams(_h.getTparams()); return (_R)applyBuilder(new Object[]{_h, name, tparams}, false); } public <_R> _R traverseTypeUseParams(TypeUseParams _h){ if(control.isBuiltIn(TypeUseParams.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof UseParams) return this.<_R>traverseUseParams((UseParams)_h); if(_h instanceof EmptyUseParams) return this.<_R>traverseEmptyUseParams((EmptyUseParams)_h); else throw new RuntimeException("Unknown TypeUseParams Variant"); } public <_R> _R traverseUseParams(UseParams _h){ if(control.isBuiltIn(UseParams.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object types = (control.skip(UseParams.class, "types"))?(_h.getTypes()):this.traverseNETypeUseList(_h.getTypes()); return (_R)applyBuilder(new Object[]{_h, types}, false); } public <_R> _R traverseEmptyUseParams(EmptyUseParams _h){ if(control.isBuiltIn(EmptyUseParams.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseTypeUseList(TypeUseList _h){ if(control.isBuiltIn(TypeUseList.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof TypeUseCons) return this.<_R>traverseTypeUseCons((TypeUseCons)_h); if(_h instanceof TypeUseEmpty) return this.<_R>traverseTypeUseEmpty((TypeUseEmpty)_h); else throw new RuntimeException("Unknown TypeUseList Variant"); } public <_R> _R traverseNETypeUseList(NETypeUseList _h){ if(control.isBuiltIn(NETypeUseList.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object first = (control.skip(NETypeUseList.class, "first"))?(_h.getFirst()):this.traverseTypeUse(_h.getFirst()); Object rest = (control.skip(NETypeUseList.class, "rest"))?(_h.getRest()):this.traverseTypeUseList(_h.getRest()); return (_R)applyBuilder(new Object[]{_h, first, rest}, false); } public <_R> _R traverseTypeUseCons(TypeUseCons _h){ if(control.isBuiltIn(TypeUseCons.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object first = (control.skip(TypeUseCons.class, "first"))?(_h.getFirst()):this.traverseTypeUse(_h.getFirst()); Object rest = (control.skip(TypeUseCons.class, "rest"))?(_h.getRest()):this.traverseTypeUseList(_h.getRest()); return (_R)applyBuilder(new Object[]{_h, first, rest}, false); } public <_R> _R traverseTypeUseEmpty(TypeUseEmpty _h){ if(control.isBuiltIn(TypeUseEmpty.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseField(Field _h){ if(control.isBuiltIn(Field.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object name = (control.skip(Field.class, "name"))?(_h.getName()):this.traverseident(_h.getName()); Object type = (control.skip(Field.class, "type"))?(_h.getType()):this.traverseTypeUse(_h.getType()); return (_R)applyBuilder(new Object[]{_h, name, type}, false); } public <_R> _R traverseFieldOrSyntax(FieldOrSyntax _h){ if(control.isBuiltIn(FieldOrSyntax.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof Field) return this.<_R>traverseField((Field)_h); if(_h instanceof Syntax) return this.<_R>traverseSyntax((Syntax)_h); else throw new RuntimeException("Unknown FieldOrSyntax Variant"); } public <_R> _R traverseSyntax(Syntax _h){ if(control.isBuiltIn(Syntax.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof AddSpace) return this.<_R>traverseAddSpace((AddSpace)_h); if(_h instanceof AddTab) return this.<_R>traverseAddTab((AddTab)_h); if(_h instanceof AddLine) return this.<_R>traverseAddLine((AddLine)_h); if(_h instanceof AddReturn) return this.<_R>traverseAddReturn((AddReturn)_h); if(_h instanceof Plus) return this.<_R>traversePlus((Plus)_h); if(_h instanceof Minus) return this.<_R>traverseMinus((Minus)_h); if(_h instanceof AddToken) return this.<_R>traverseAddToken((AddToken)_h); if(_h instanceof TheEOF) return this.<_R>traverseTheEOF((TheEOF)_h); else throw new RuntimeException("Unknown Syntax Variant"); } public <_R> _R traverseAddSpace(AddSpace _h){ if(control.isBuiltIn(AddSpace.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseAddTab(AddTab _h){ if(control.isBuiltIn(AddTab.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseAddLine(AddLine _h){ if(control.isBuiltIn(AddLine.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseAddReturn(AddReturn _h){ if(control.isBuiltIn(AddReturn.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traversePlus(Plus _h){ if(control.isBuiltIn(Plus.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseMinus(Minus _h){ if(control.isBuiltIn(Minus.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseAddToken(AddToken _h){ if(control.isBuiltIn(AddToken.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object str = (control.skip(AddToken.class, "str"))?(_h.getStr()):this.traverseString(_h.getStr()); return (_R)applyBuilder(new Object[]{_h, str}, false); } public <_R> _R traverseTheEOF(TheEOF _h){ if(control.isBuiltIn(TheEOF.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseSumToken(SumToken _h){ if(control.isBuiltIn(SumToken.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof RealToken) return this.<_R>traverseRealToken((RealToken)_h); if(_h instanceof EmptyToken) return this.<_R>traverseEmptyToken((EmptyToken)_h); else throw new RuntimeException("Unknown SumToken Variant"); } public <_R> _R traverseRealToken(RealToken _h){ if(control.isBuiltIn(RealToken.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object str = (control.skip(RealToken.class, "str"))?(_h.getStr()):this.traverseString(_h.getStr()); return (_R)applyBuilder(new Object[]{_h, str}, false); } public <_R> _R traverseEmptyToken(EmptyToken _h){ if(control.isBuiltIn(EmptyToken.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseTypeDefList(TypeDefList _h){ if(control.isBuiltIn(TypeDefList.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof TypeDefCons) return this.<_R>traverseTypeDefCons((TypeDefCons)_h); if(_h instanceof TypeDefEmpty) return this.<_R>traverseTypeDefEmpty((TypeDefEmpty)_h); else throw new RuntimeException("Unknown TypeDefList Variant"); } public <_R> _R traverseTypeDefCons(TypeDefCons _h){ if(control.isBuiltIn(TypeDefCons.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object first = (control.skip(TypeDefCons.class, "first"))?(_h.getFirst()):this.traverseTypeDef(_h.getFirst()); Object rest = (control.skip(TypeDefCons.class, "rest"))?(_h.getRest()):this.traverseTypeDefList(_h.getRest()); return (_R)applyBuilder(new Object[]{_h, first, rest}, false); } public <_R> _R traverseTypeDefEmpty(TypeDefEmpty _h){ if(control.isBuiltIn(TypeDefEmpty.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseFieldList(FieldList _h){ if(control.isBuiltIn(FieldList.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof FieldCons) return this.<_R>traverseFieldCons((FieldCons)_h); if(_h instanceof FieldEmpty) return this.<_R>traverseFieldEmpty((FieldEmpty)_h); else throw new RuntimeException("Unknown FieldList Variant"); } public <_R> _R traverseFieldCons(FieldCons _h){ if(control.isBuiltIn(FieldCons.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object first = (control.skip(FieldCons.class, "first"))?(_h.getFirst()):this.traverseFieldOrSyntax(_h.getFirst()); Object rest = (control.skip(FieldCons.class, "rest"))?(_h.getRest()):this.traverseFieldList(_h.getRest()); return (_R)applyBuilder(new Object[]{_h, first, rest}, false); } public <_R> _R traverseFieldEmpty(FieldEmpty _h){ if(control.isBuiltIn(FieldEmpty.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traversePESubtypeList(PESubtypeList _h){ if(control.isBuiltIn(PESubtypeList.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof NESubtypeList) return this.<_R>traverseNESubtypeList((NESubtypeList)_h); if(_h instanceof SubtypeEmpty) return this.<_R>traverseSubtypeEmpty((SubtypeEmpty)_h); else throw new RuntimeException("Unknown PESubtypeList Variant"); } public <_R> _R traverseNESubtypeList(NESubtypeList _h){ if(control.isBuiltIn(NESubtypeList.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object first = (control.skip(NESubtypeList.class, "first"))?(_h.getFirst()):this.traverseTypeUse(_h.getFirst()); Object rest = (control.skip(NESubtypeList.class, "rest"))?(_h.getRest()):this.traverseSubtypeList(_h.getRest()); return (_R)applyBuilder(new Object[]{_h, first, rest}, false); } public <_R> _R traverseSubtypeList(SubtypeList _h){ if(control.isBuiltIn(SubtypeList.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof SubtypeCons) return this.<_R>traverseSubtypeCons((SubtypeCons)_h); if(_h instanceof SubtypeEmpty) return this.<_R>traverseSubtypeEmpty((SubtypeEmpty)_h); else throw new RuntimeException("Unknown SubtypeList Variant"); } public <_R> _R traverseSubtypeCons(SubtypeCons _h){ if(control.isBuiltIn(SubtypeCons.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object first = (control.skip(SubtypeCons.class, "first"))?(_h.getFirst()):this.traverseTypeUse(_h.getFirst()); Object rest = (control.skip(SubtypeCons.class, "rest"))?(_h.getRest()):this.traverseSubtypeList(_h.getRest()); return (_R)applyBuilder(new Object[]{_h, first, rest}, false); } public <_R> _R traverseSubtypeEmpty(SubtypeEmpty _h){ if(control.isBuiltIn(SubtypeEmpty.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseBehFile(BehFile _h){ if(control.isBuiltIn(BehFile.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object incl = (control.skip(BehFile.class, "incl"))?(_h.getIncl()):this.traverseIncludeList(_h.getIncl()); Object behs = (control.skip(BehFile.class, "behs"))?(_h.getBehs()):this.traverseBehDefList(_h.getBehs()); return (_R)applyBuilder(new Object[]{_h, incl, behs}, false); } public <_R> _R traverseBehDefList(BehDefList _h){ if(control.isBuiltIn(BehDefList.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof BehDefCons) return this.<_R>traverseBehDefCons((BehDefCons)_h); if(_h instanceof BehDefEmpty) return this.<_R>traverseBehDefEmpty((BehDefEmpty)_h); else throw new RuntimeException("Unknown BehDefList Variant"); } public <_R> _R traverseBehDefCons(BehDefCons _h){ if(control.isBuiltIn(BehDefCons.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object first = (control.skip(BehDefCons.class, "first"))?(_h.getFirst()):this.traverseBehDef(_h.getFirst()); Object rest = (control.skip(BehDefCons.class, "rest"))?(_h.getRest()):this.traverseBehDefList(_h.getRest()); return (_R)applyBuilder(new Object[]{_h, first, rest}, false); } public <_R> _R traverseBehDefEmpty(BehDefEmpty _h){ if(control.isBuiltIn(BehDefEmpty.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseBehDef(BehDef _h){ if(control.isBuiltIn(BehDef.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object name = (control.skip(BehDef.class, "name"))?(_h.getName()):this.traverseident(_h.getName()); Object body = (control.skip(BehDef.class, "body"))?(_h.getBody()):this.traverseverbatim(_h.getBody()); return (_R)applyBuilder(new Object[]{_h, name, body}, false); } public <_R> _R traverseEmptyList(EmptyList _h){ if(control.isBuiltIn(EmptyList.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof IncludeEmpty) return this.<_R>traverseIncludeEmpty((IncludeEmpty)_h); if(_h instanceof PkgStar) return this.<_R>traversePkgStar((PkgStar)_h); if(_h instanceof PkgEmpty) return this.<_R>traversePkgEmpty((PkgEmpty)_h); if(_h instanceof ImportEmpty) return this.<_R>traverseImportEmpty((ImportEmpty)_h); if(_h instanceof EmptyDefParams) return this.<_R>traverseEmptyDefParams((EmptyDefParams)_h); if(_h instanceof NameEmpty) return this.<_R>traverseNameEmpty((NameEmpty)_h); if(_h instanceof EmptyUseParams) return this.<_R>traverseEmptyUseParams((EmptyUseParams)_h); if(_h instanceof TypeUseEmpty) return this.<_R>traverseTypeUseEmpty((TypeUseEmpty)_h); if(_h instanceof TypeDefEmpty) return this.<_R>traverseTypeDefEmpty((TypeDefEmpty)_h); if(_h instanceof FieldEmpty) return this.<_R>traverseFieldEmpty((FieldEmpty)_h); if(_h instanceof SubtypeEmpty) return this.<_R>traverseSubtypeEmpty((SubtypeEmpty)_h); else throw new RuntimeException("Unknown EmptyList Variant"); } public <_R> _R traverseConsList(ConsList _h){ if(control.isBuiltIn(ConsList.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof IncludeCons) return this.<_R>traverseIncludeCons((IncludeCons)_h); if(_h instanceof NEPkgList) return this.<_R>traverseNEPkgList((NEPkgList)_h); if(_h instanceof PkgCons) return this.<_R>traversePkgCons((PkgCons)_h); if(_h instanceof ImportCons) return this.<_R>traverseImportCons((ImportCons)_h); if(_h instanceof NENameList) return this.<_R>traverseNENameList((NENameList)_h); if(_h instanceof NameCons) return this.<_R>traverseNameCons((NameCons)_h); if(_h instanceof NETypeUseList) return this.<_R>traverseNETypeUseList((NETypeUseList)_h); if(_h instanceof TypeUseCons) return this.<_R>traverseTypeUseCons((TypeUseCons)_h); if(_h instanceof TypeDefCons) return this.<_R>traverseTypeDefCons((TypeDefCons)_h); if(_h instanceof FieldCons) return this.<_R>traverseFieldCons((FieldCons)_h); if(_h instanceof NESubtypeList) return this.<_R>traverseNESubtypeList((NESubtypeList)_h); if(_h instanceof SubtypeCons) return this.<_R>traverseSubtypeCons((SubtypeCons)_h); else throw new RuntimeException("Unknown ConsList Variant"); } public <_R> _R traverseLitToken(LitToken _h){ if(control.isBuiltIn(LitToken.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof AddToken) return this.<_R>traverseAddToken((AddToken)_h); if(_h instanceof TheEOF) return this.<_R>traverseTheEOF((TheEOF)_h); if(_h instanceof SumToken) return this.<_R>traverseSumToken((SumToken)_h); else throw new RuntimeException("Unknown LitToken Variant"); } public <_R> _R traverseRuntimeException(RuntimeException _h){ if(control.isBuiltIn(RuntimeException.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof TE) return this.<_R>traverseTE((TE)_h); if(_h instanceof RTParseException) return this.<_R>traverseRTParseException((RTParseException)_h); if(_h instanceof RTFileNotFound) return this.<_R>traverseRTFileNotFound((RTFileNotFound)_h); else throw new RuntimeException("Unknown RuntimeException Variant"); } public <_R> _R traverseTE(TE _h){ if(control.isBuiltIn(TE.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseRTParseException(RTParseException _h){ if(control.isBuiltIn(RTParseException.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseRTFileNotFound(RTFileNotFound _h){ if(control.isBuiltIn(RTFileNotFound.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseDGPFunc(DGPFunc _h){ if(control.isBuiltIn(DGPFunc.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof DummyDGP) return this.<_R>traverseDummyDGP((DummyDGP)_h); else throw new RuntimeException("Unknown DGPFunc Variant"); } public <_R> _R traverseDummyDGP(DummyDGP _h){ if(control.isBuiltIn(DummyDGP.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object behavior = (control.skip(DummyDGP.class, "behavior"))?(_h.getBehavior()):this.traverseString(_h.getBehavior()); return (_R)applyBuilder(new Object[]{_h, behavior}, false); } public <_R> _R traverseDummyTrav(DummyTrav _h){ if(control.isBuiltIn(DummyTrav.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object dfgl = (control.skip(DummyTrav.class, "dfgl"))?(_h.getDfgl()):this.traverseList_CDFile_(_h.getDfgl()); Object tdl = (control.skip(DummyTrav.class, "tdl"))?(_h.getTdl()):this.traverseList_TypeDef_(_h.getTdl()); Object dgpl = (control.skip(DummyTrav.class, "dgpl"))?(_h.getDgpl()):this.traverseList_DGPFunc_(_h.getDgpl()); Object otdl = (control.skip(DummyTrav.class, "otdl"))?(_h.getOtdl()):this.traverseOption_List_TypeDef__(_h.getOtdl()); Object flds = (control.skip(DummyTrav.class, "flds"))?(_h.getFlds()):this.traverseList_FieldOrSyntax_(_h.getFlds()); return (_R)applyBuilder(new Object[]{_h, dfgl, tdl, dgpl, otdl, flds}, false); } public <_R> _R traverseRBColor(RBColor _h){ if(control.isBuiltIn(RBColor.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof RED) return this.<_R>traverseRED((RED)_h); if(_h instanceof BLACK) return this.<_R>traverseBLACK((BLACK)_h); else throw new RuntimeException("Unknown RBColor Variant"); } public <_R> _R traverseRED(RED _h){ if(control.isBuiltIn(RED.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseBLACK(BLACK _h){ if(control.isBuiltIn(BLACK.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseList_FieldOrSyntax_(List _h){ if(control.isBuiltIn(List.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof Cons) return this.<_R>traverseCons_FieldOrSyntax_((Cons)_h); if(_h instanceof Empty) return this.<_R>traverseEmpty_FieldOrSyntax_((Empty)_h); else throw new RuntimeException("Unknown List Variant"); } public <_R> _R traverseEmpty_FieldOrSyntax_(Empty _h){ if(control.isBuiltIn(Empty.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseCons_FieldOrSyntax_(Cons _h){ if(control.isBuiltIn(Cons.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object first = (control.skip(Cons.class, "first"))?(_h.getFirst()):this.traverseFieldOrSyntax(_h.getFirst()); Object rest = (control.skip(Cons.class, "rest"))?(_h.getRest()):this.traverseList_FieldOrSyntax_(_h.getRest()); return (_R)applyBuilder(new Object[]{_h, first, rest}, false); } public <_R> _R traverseOption_List_TypeDef__(Option> _h){ if(control.isBuiltIn(Option.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof Some) return this.<_R>traverseSome_List_TypeDef__((Some>)_h); if(_h instanceof None) return this.<_R>traverseNone_List_TypeDef__((None>)_h); else throw new RuntimeException("Unknown Option Variant"); } public <_R> _R traverseNone_List_TypeDef__(None> _h){ if(control.isBuiltIn(None.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseSome_List_TypeDef__(Some> _h){ if(control.isBuiltIn(Some.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object just = (control.skip(Some.class, "just"))?(_h.getJust()):this.traverseList_TypeDef_(_h.getJust()); return (_R)applyBuilder(new Object[]{_h, just}, false); } public <_R> _R traverseList_DGPFunc_(List _h){ if(control.isBuiltIn(List.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof Cons) return this.<_R>traverseCons_DGPFunc_((Cons)_h); if(_h instanceof Empty) return this.<_R>traverseEmpty_DGPFunc_((Empty)_h); else throw new RuntimeException("Unknown List Variant"); } public <_R> _R traverseEmpty_DGPFunc_(Empty _h){ if(control.isBuiltIn(Empty.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseCons_DGPFunc_(Cons _h){ if(control.isBuiltIn(Cons.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object first = (control.skip(Cons.class, "first"))?(_h.getFirst()):this.traverseDGPFunc(_h.getFirst()); Object rest = (control.skip(Cons.class, "rest"))?(_h.getRest()):this.traverseList_DGPFunc_(_h.getRest()); return (_R)applyBuilder(new Object[]{_h, first, rest}, false); } public <_R> _R traverseList_TypeDef_(List _h){ if(control.isBuiltIn(List.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof Cons) return this.<_R>traverseCons_TypeDef_((Cons)_h); if(_h instanceof Empty) return this.<_R>traverseEmpty_TypeDef_((Empty)_h); else throw new RuntimeException("Unknown List Variant"); } public <_R> _R traverseEmpty_TypeDef_(Empty _h){ if(control.isBuiltIn(Empty.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseCons_TypeDef_(Cons _h){ if(control.isBuiltIn(Cons.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object first = (control.skip(Cons.class, "first"))?(_h.getFirst()):this.traverseTypeDef(_h.getFirst()); Object rest = (control.skip(Cons.class, "rest"))?(_h.getRest()):this.traverseList_TypeDef_(_h.getRest()); return (_R)applyBuilder(new Object[]{_h, first, rest}, false); } public <_R> _R traverseList_CDFile_(List _h){ if(control.isBuiltIn(List.class)) return (_R)applyBuilder(new Object[]{_h}, true); if(_h instanceof Cons) return this.<_R>traverseCons_CDFile_((Cons)_h); if(_h instanceof Empty) return this.<_R>traverseEmpty_CDFile_((Empty)_h); else throw new RuntimeException("Unknown List Variant"); } public <_R> _R traverseEmpty_CDFile_(Empty _h){ if(control.isBuiltIn(Empty.class)) return (_R)applyBuilder(new Object[]{_h}, true); return (_R)applyBuilder(new Object[]{_h}, false); } public <_R> _R traverseCons_CDFile_(Cons _h){ if(control.isBuiltIn(Cons.class)) return (_R)applyBuilder(new Object[]{_h}, true); Object first = (control.skip(Cons.class, "first"))?(_h.getFirst()):this.traverseCDFile(_h.getFirst()); Object rest = (control.skip(Cons.class, "rest"))?(_h.getRest()):this.traverseList_CDFile_(_h.getRest()); return (_R)applyBuilder(new Object[]{_h, first, rest}, false); } }