// ** Batch Generated with DemeterF // ** This file was generated with DemFGen (vers:05/23/2010) package edu.neu.ccs.demeterf.demfgen.traversals; 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; import edu.neu.ccs.demeterf.demfgen.classes.Package; import edu.neu.ccs.demeterf.demfgen.DemFGenMain; import edu.neu.ccs.demeterf.demfgen.classes.*; public class TypeArityTrav { private ClassGen.ToTDList func; public TypeArityTrav(ClassGen.ToTDList f){ func = f; } public List<ClassGen.ArityPair> traverse(final TypeDefList _h){ return traverseTypeDefList(_h); } public List<ClassGen.ArityPair> traverseTypeDefList(final TypeDefList _h){ if(_h instanceof TypeDefCons) return traverseTypeDefCons((TypeDefCons)_h); if(_h instanceof TypeDefEmpty) return traverseTypeDefEmpty((TypeDefEmpty)_h); else throw new RuntimeException("Unknown TypeDefList Variant"); } public List<ClassGen.ArityPair> traverseTypeDefEmpty(final TypeDefEmpty _h){ return func.combine((EmptyList)_h); } public List<ClassGen.ArityPair> traverseTypeDefCons(final TypeDefCons _h){ ClassGen.ArityPair _first = func.combine(_h.getFirst()); List<ClassGen.ArityPair> _rest = traverseTypeDefList(_h.getRest()); return func.combine((ConsList)_h,(ClassGen.ArityPair)_first, (List<ClassGen.ArityPair>)_rest); } }