#include "pp.h" void Cd_graph::collect_classes( Vertex_selector* vs ) { DEM_TRACE("Cd_graph","void Cd_graph::collect_classes(Vertex_selector* vs)"); // prefix class wrappers vs->collect_classes(this); // suffix class wrappers } void Vertex_selector::collect_classes( Cd_graph* schema ) { DEM_TRACE("Vertex_selector","void Vertex_selector::collect_classes(Cd_graph* schema)"); // prefix class wrappers // suffix class wrappers } void Vertex_set_sim::collect_classes( Cd_graph* schema ) { DEM_TRACE("Vertex_set_sim","void Vertex_set_sim::collect_classes(Cd_graph* schema)"); // prefix class wrappers schema->collect_classes(this->get_terms()); // suffix class wrappers } void Cd_graph::collect_classes( Fixed_term_Commalist* terms ) { DEM_TRACE("Cd_graph","void Cd_graph::collect_classes(Fixed_term_Commalist* terms)"); // prefix class wrappers adjacencies->collect_classes(matrix,terms); // suffix class wrappers } void Adjacency_Nlist::collect_classes( SCC_component_List* matrix,Fixed_term_Commalist* terms ) { DEM_TRACE("Adjacency_Nlist","void Adjacency_Nlist::collect_classes(SCC_component_List* matrix,Fixed_term_Commalist* terms)"); // prefix class wrappers Adjacency_list_iterator next(*this); Adjacency* each; while (each = next()) each->collect_classes(matrix,terms); // suffix class wrappers } void Adjacency::collect_classes( SCC_component_List* matrix,Fixed_term_Commalist* terms ) { DEM_TRACE("Adjacency","void Adjacency::collect_classes(SCC_component_List* matrix,Fixed_term_Commalist* terms)"); // prefix class wrappers int resultscc; static DemString* mark = new DemString("propagate"); if (terms->list_length()) { Fixed_term_list_iterator fnext(*terms); Fixed_term* feach; while (feach = fnext()) if (feach->get_vertex()->get_vertex()->get_vertex_name()-> g_equal(source->get_vertex_name())) break; if (feach) return; } resultscc = 0; matrix->scc_marked(scc->get_val(), resultscc); if (resultscc != 0) { Normal * n = new Normal(); n->set_vertex(new Vertex()); n->get_vertex()-> set_vertex_name( (DemIdent*)source->get_vertex_name()->g_copy()); n->set_moduleRef(new LocalRef()); Fixed_term* f = new Fixed_term(); f->set_vertex(n); terms->append(f); } // suffix class wrappers }