core: import edu.neu.ccs.demeter.dj.*; import java.util.*; import edu.neu.ccs.demeter.*; add: class Cd_graph { protected Adjacency_Nlist adjacencies; public Adjacency_Nlist get_adjacencies() {{ return adjacencies; }} public void set_adjacencies(Adjacency_Nlist new_adjacencies) {{ adjacencies = new_adjacencies; }} public constructor Cd_graph() {{ super(); }} public constructor Cd_graph(Adjacency_Nlist adjacencies) {{ super(); set_adjacencies(adjacencies); }} public static Cd_graph parse(java.io.Reader in) throws ParseException {{ return new Parser(in)._Cd_graph(); }} public static Cd_graph parse(java.io.InputStream in) throws ParseException {{ return new Parser(in)._Cd_graph(); }} public static Cd_graph parse(String s) {{ try { return parse(new java.io.StringReader(s)); } catch (ParseException e) { throw new RuntimeException(e.toString()); } }} void display() {{ DisplayVisitor v0 = new DisplayVisitor(); v0.start(); __trav_display(v0); v0.finish(); }} {{ // Returns the Adjacency represented by id. Returns null if no match is // found. public Adjacency search(Ident id) { TraversalGraph tg = new TraversalGraph( "from Cd_graph bypassing ParentList to Adjacency", Main.cg ); return (Adjacency) tg.traverse(this, new FindClassVisitor(id)); } }} {{ // Creates the subclass to superclass edges. public void buildParentEdges() { TraversalGraph tg = new TraversalGraph( "from Cd_graph bypassing ParentList to Adjacency", Main.cg ); tg.traverse(this, new BuildParentEdgesVisitor()); } // Flattens the Cd_graph. public void flatten() { this.buildParentEdges(); TraversalGraph tg = new TraversalGraph( "from Cd_graph to-stop Adjacency", Main.cg ); tg.traverse(this, new PullDownVisitor()); } }} {{ void universal_trv0_bef(UniversalVisitor _v_) { ((UniversalVisitor) _v_).before(this); } }} {{ void universal_trv0_aft(UniversalVisitor _v_) { ((UniversalVisitor) _v_).after(this); } }} {{ void universal_trv0(UniversalVisitor _v_) { universal_trv0_bef(_v_); ((UniversalVisitor) _v_).before_adjacencies(this, adjacencies); adjacencies.universal_trv0(_v_); ((UniversalVisitor) _v_).after_adjacencies(this, adjacencies); universal_trv0_aft(_v_); } }} {{ public void __trav_display(DisplayVisitor __v0) { __trav_display_Cd_graph_trv(__v0); } }} {{ void __trav_display_Cd_graph_trv_bef(DisplayVisitor __v0) { ((DisplayVisitor) __v0).before(this); } }} {{ void __trav_display_Cd_graph_trv_aft(DisplayVisitor __v0) { ((DisplayVisitor) __v0).after(this); } }} {{ void __trav_display_Cd_graph_trv(DisplayVisitor __v0) { __trav_display_Cd_graph_trv_bef(__v0); ((DisplayVisitor) __v0).before_adjacencies(this, adjacencies); adjacencies.__trav_display_Cd_graph_trv(__v0); ((UniversalVisitor) __v0).after_adjacencies(this, adjacencies); __trav_display_Cd_graph_trv_aft(__v0); } }} }