#include "pp.h" void Cd_graph::colect_cons_edges( Meta_edge_Commalist* edges,int& found,Meta_construction_edge* edge ) { DEM_TRACE("Cd_graph","void Cd_graph::colect_cons_edges(Meta_edge_Commalist* edges,int& found,Meta_construction_edge* edge)"); // prefix class wrappers adjacencies->colect_cons_edges(edges, found, edge); // suffix class wrappers } void Adjacency_Nlist::colect_cons_edges( Meta_edge_Commalist* edges,int& found,Meta_construction_edge* edge ) { DEM_TRACE("Adjacency_Nlist","void Adjacency_Nlist::colect_cons_edges(Meta_edge_Commalist* edges,int& found,Meta_construction_edge* edge)"); // prefix class wrappers Adjacency_list_iterator next(*this); Adjacency* each; while (each = next()) each->colect_cons_edges(edges, found, edge); // suffix class wrappers } void Adjacency::colect_cons_edges( Meta_edge_Commalist* edges,int& found,Meta_construction_edge* edge ) { DEM_TRACE("Adjacency","void Adjacency::colect_cons_edges(Meta_edge_Commalist* edges,int& found,Meta_construction_edge* edge)"); // prefix class wrappers // matching int matched = 0; edge->get_from()->match_vertex(source,matched); if (matched) ns->colect_cons_edges(source, edges, found, edge); // suffix class wrappers } void Neighbors::colect_cons_edges( Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_construction_edge* edge ) { DEM_TRACE("Neighbors","void Neighbors::colect_cons_edges(Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_construction_edge* edge)"); // prefix class wrappers // suffix class wrappers } void Neighbors_wc::colect_cons_edges( Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_construction_edge* edge ) { DEM_TRACE("Neighbors_wc","void Neighbors_wc::colect_cons_edges(Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_construction_edge* edge)"); // prefix class wrappers construct_ns->colect_cons_edges(source, edges, found, edge); // suffix class wrappers } void Any_vertex_List::colect_cons_edges( Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_construction_edge* edge ) { DEM_TRACE("Any_vertex_List","void Any_vertex_List::colect_cons_edges(Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_construction_edge* edge)"); // prefix class wrappers Any_vertex_list_iterator next(*this); Any_vertex* each; while (each = next()) each->colect_cons_edges(source, edges, found, edge); // suffix class wrappers } void Any_vertex::colect_cons_edges( Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_construction_edge* edge ) { DEM_TRACE("Any_vertex","void Any_vertex::colect_cons_edges(Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_construction_edge* edge)"); // prefix class wrappers // suffix class wrappers } void Optional_term::colect_cons_edges( Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_construction_edge* edge ) { DEM_TRACE("Optional_term","void Optional_term::colect_cons_edges(Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_construction_edge* edge)"); // prefix class wrappers opt->colect_cons_edges(source, edges, found, edge); // suffix class wrappers } void Opt_labeled_term_Sandwich::colect_cons_edges( Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_construction_edge* edge ) { DEM_TRACE("Opt_labeled_term_Sandwich","void Opt_labeled_term_Sandwich::colect_cons_edges(Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_construction_edge* edge)"); // prefix class wrappers inner->colect_cons_edges(source, edges, found, edge); // suffix class wrappers } void Opt_labeled_term::colect_cons_edges( Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_construction_edge* edge ) { DEM_TRACE("Opt_labeled_term","void Opt_labeled_term::colect_cons_edges(Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_construction_edge* edge)"); // prefix class wrappers // suffix class wrappers } void Regular::colect_cons_edges( Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_construction_edge* edge ) { DEM_TRACE("Regular","void Regular::colect_cons_edges(Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_construction_edge* edge)"); // prefix class wrappers derror('i',1," unexpected unlabeled part at Regular::colect_cons_edges\n"); abort(); // suffix class wrappers } void Labeled::colect_cons_edges( Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_construction_edge* edge ) { DEM_TRACE("Labeled","void Labeled::colect_cons_edges(Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_construction_edge* edge)"); // prefix class wrappers // matching int matched = 0; edge->get_to()->match_vertex(this->get_vertex(),matched); if (matched ==0) return; matched = 0; edge->get_edge_label()->match_label(this->get_label_name(),matched); if (matched) { found = 1; Meta_construction_edge *medge = new Meta_construction_edge(); Fixed_term* f = new Fixed_term(); Fixed_term* t = new Fixed_term(); Relation_meta_var* l = new Relation_meta_var(); Normal *newterm = new Normal(); newterm->set_vertex((Vertex*)source->g_copy()); newterm->set_moduleRef(new LocalRef()); f->set_vertex(newterm); t->set_vertex((Term*)this->get_vertex()->g_copy()); l->set_name((DemIdent*)this->get_label_name()->g_copy()); medge->set_from(f); medge->set_to(t); medge->set_edge_label(l); edges->append(medge); } // suffix class wrappers } void Cd_graph::colect_alt_edges( Meta_edge_Commalist* edges,int& found,Meta_alternation_edge* edge ) { DEM_TRACE("Cd_graph","void Cd_graph::colect_alt_edges(Meta_edge_Commalist* edges,int& found,Meta_alternation_edge* edge)"); // prefix class wrappers adjacencies->colect_alt_edges(edges, found, edge); // suffix class wrappers } void Adjacency_Nlist::colect_alt_edges( Meta_edge_Commalist* edges,int& found,Meta_alternation_edge* edge ) { DEM_TRACE("Adjacency_Nlist","void Adjacency_Nlist::colect_alt_edges(Meta_edge_Commalist* edges,int& found,Meta_alternation_edge* edge)"); // prefix class wrappers Adjacency_list_iterator next(*this); Adjacency* each; while (each = next()) each->colect_alt_edges(edges, found, edge); // suffix class wrappers } void Adjacency::colect_alt_edges( Meta_edge_Commalist* edges,int& found,Meta_alternation_edge* edge ) { DEM_TRACE("Adjacency","void Adjacency::colect_alt_edges(Meta_edge_Commalist* edges,int& found,Meta_alternation_edge* edge)"); // prefix class wrappers // matching int matched = 0; edge->get_from()->match_vertex(source,matched); if (matched) ns->colect_alt_edges(source, edges, found, edge); // suffix class wrappers } void Neighbors::colect_alt_edges( Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_alternation_edge* edge ) { DEM_TRACE("Neighbors","void Neighbors::colect_alt_edges(Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_alternation_edge* edge)"); // prefix class wrappers // suffix class wrappers } void Neighbors_wc::colect_alt_edges( Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_alternation_edge* edge ) { DEM_TRACE("Neighbors_wc","void Neighbors_wc::colect_alt_edges(Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_alternation_edge* edge)"); // prefix class wrappers // suffix class wrappers } void Alternat_ns::colect_alt_edges( Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_alternation_edge* edge ) { DEM_TRACE("Alternat_ns","void Alternat_ns::colect_alt_edges(Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_alternation_edge* edge)"); // prefix class wrappers if (alternat_ns) alternat_ns->colect_alt_edges(source, edges, found, edge); // suffix class wrappers } void Term_Barlist::colect_alt_edges( Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_alternation_edge* edge ) { DEM_TRACE("Term_Barlist","void Term_Barlist::colect_alt_edges(Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_alternation_edge* edge)"); // prefix class wrappers Term_list_iterator next(*this); Term* each; while (each = next()) { // matching int matched = 0; edge->get_to()->match_vertex(each,matched); if (matched ==0) continue; found = 1; Meta_alternation_edge *medge = new Meta_alternation_edge(); Fixed_term* f = new Fixed_term(); Fixed_term* t = new Fixed_term(); Normal *newterm = new Normal(); newterm->set_vertex((Vertex*)source->g_copy()); newterm->set_moduleRef(new LocalRef()); f->set_vertex(newterm); t->set_vertex((Term*)each->g_copy()); medge->set_from(f); medge->set_to(t); edges->append(medge); } // suffix class wrappers } void Cd_graph::colect_inh_edges( Meta_edge_Commalist* edges,int& found,Meta_inheritance_edge* edge ) { DEM_TRACE("Cd_graph","void Cd_graph::colect_inh_edges(Meta_edge_Commalist* edges,int& found,Meta_inheritance_edge* edge)"); // prefix class wrappers adjacencies->colect_inh_edges(edges, found, edge); // suffix class wrappers } void Adjacency_Nlist::colect_inh_edges( Meta_edge_Commalist* edges,int& found,Meta_inheritance_edge* edge ) { DEM_TRACE("Adjacency_Nlist","void Adjacency_Nlist::colect_inh_edges(Meta_edge_Commalist* edges,int& found,Meta_inheritance_edge* edge)"); // prefix class wrappers Adjacency_list_iterator next(*this); Adjacency* each; while (each = next()) each->colect_inh_edges(edges, found, edge); // suffix class wrappers } void Adjacency::colect_inh_edges( Meta_edge_Commalist* edges,int& found,Meta_inheritance_edge* edge ) { DEM_TRACE("Adjacency","void Adjacency::colect_inh_edges(Meta_edge_Commalist* edges,int& found,Meta_inheritance_edge* edge)"); // prefix class wrappers // matching if (superclasses) { int matched = 0; edge->get_from()->match_vertex(source,matched); if (matched) superclasses->colect_inh_edges(source, edges, found, edge); } // suffix class wrappers } void Vertex_List::colect_inh_edges( Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_inheritance_edge* edge ) { DEM_TRACE("Vertex_List","void Vertex_List::colect_inh_edges(Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_inheritance_edge* edge)"); // prefix class wrappers Vertex_list_iterator next(*this); Vertex* each; while (each = next()) { // matching int matched = 0; edge->get_to()->match_vertex(each,matched); if (matched ==0) continue; found = 1; Meta_inheritance_edge *medge = new Meta_inheritance_edge(); Fixed_term* f = new Fixed_term(); Fixed_term* t = new Fixed_term(); Normal *fnewterm = new Normal(); fnewterm->set_vertex((Vertex*)source->g_copy()); fnewterm->set_moduleRef(new LocalRef()); Normal *tnewterm = new Normal(); tnewterm->set_vertex((Vertex*)each->g_copy()); tnewterm->set_moduleRef(new LocalRef()); f->set_vertex(fnewterm); t->set_vertex(tnewterm); medge->set_from(f); medge->set_to(t); edges->append(medge); } // suffix class wrappers } void Cd_graph::colect_rep_edges( Meta_edge_Commalist* edges,int& found,Meta_repetition_edge* edge ) { DEM_TRACE("Cd_graph","void Cd_graph::colect_rep_edges(Meta_edge_Commalist* edges,int& found,Meta_repetition_edge* edge)"); // prefix class wrappers adjacencies->colect_rep_edges(edges, found, edge); // suffix class wrappers } void Adjacency_Nlist::colect_rep_edges( Meta_edge_Commalist* edges,int& found,Meta_repetition_edge* edge ) { DEM_TRACE("Adjacency_Nlist","void Adjacency_Nlist::colect_rep_edges(Meta_edge_Commalist* edges,int& found,Meta_repetition_edge* edge)"); // prefix class wrappers Adjacency_list_iterator next(*this); Adjacency* each; while (each = next()) each->colect_rep_edges(edges, found, edge); // suffix class wrappers } void Adjacency::colect_rep_edges( Meta_edge_Commalist* edges,int& found,Meta_repetition_edge* edge ) { DEM_TRACE("Adjacency","void Adjacency::colect_rep_edges(Meta_edge_Commalist* edges,int& found,Meta_repetition_edge* edge)"); // prefix class wrappers // matching int matched = 0; edge->get_from()->match_vertex(source,matched); if (matched) ns->colect_rep_edges(source, edges, found, edge); // suffix class wrappers } void Neighbors::colect_rep_edges( Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_repetition_edge* edge ) { DEM_TRACE("Neighbors","void Neighbors::colect_rep_edges(Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_repetition_edge* edge)"); // prefix class wrappers // suffix class wrappers } void Repetit_n::colect_rep_edges( Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_repetition_edge* edge ) { DEM_TRACE("Repetit_n","void Repetit_n::colect_rep_edges(Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_repetition_edge* edge)"); // prefix class wrappers if (sandwiched) sandwiched->colect_rep_edges(source, edges, found, edge); // suffix class wrappers } void Kernel_Sandwich::colect_rep_edges( Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_repetition_edge* edge ) { DEM_TRACE("Kernel_Sandwich","void Kernel_Sandwich::colect_rep_edges(Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_repetition_edge* edge)"); // prefix class wrappers inner->colect_rep_edges(source, edges, found, edge); // suffix class wrappers } void Kernel::colect_rep_edges( Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_repetition_edge* edge ) { DEM_TRACE("Kernel","void Kernel::colect_rep_edges(Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_repetition_edge* edge)"); // prefix class wrappers repeated->colect_rep_edges(source, edges, found, edge); // suffix class wrappers } void Term_Sandwich::colect_rep_edges( Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_repetition_edge* edge ) { DEM_TRACE("Term_Sandwich","void Term_Sandwich::colect_rep_edges(Vertex* source,Meta_edge_Commalist* edges,int& found,Meta_repetition_edge* edge)"); // prefix class wrappers // matching int matched = 0; edge->get_to()->match_vertex(inner,matched); if (matched ==0) return; found = 1; Meta_repetition_edge *medge = new Meta_repetition_edge(); Fixed_term* f = new Fixed_term(); Fixed_term* t = new Fixed_term(); Normal *newterm = new Normal(); newterm->set_vertex((Vertex*)source->g_copy()); newterm->set_moduleRef(new LocalRef()); f->set_vertex(newterm); t->set_vertex((Term*)inner->g_copy()); medge->set_from(f); medge->set_to(t); edges->append(medge); // suffix class wrappers }