///////////////////////////////////////////////////////////////////// // ///////////////////////////////////////////////////////////////////// *operation* void clearAndMarkBypassing(Path_constraint_exp* c) *wrapper* Cd_graph *prefix* (@ if (c) c->clearAndMarkBypassing(this); else this->clearAndMarkBypassing((Meta_edge_Commalist*)NULL); @) ///////////////////////////////////////////////////////////////////// // ///////////////////////////////////////////////////////////////////// *operation* void clearAndMarkBypassing(Cd_graph* schema) *wrapper* Path_constraint_exp *prefix* (@ @) *wrapper* Require_through *prefix* (@ if (bypassing) schema->clearAndMarkBypassing(bypassing->get_bypassing()); else schema->clearAndMarkBypassing((Meta_edge_Commalist*)NULL); @) *wrapper* Require_bypassing *prefix* (@ schema->clearAndMarkBypassing(bypassing->get_bypassing()); @) ///////////////////////////////////////////////////////////////////// // ///////////////////////////////////////////////////////////////////// *operation* void clearAndMarkBypassing(Meta_edge_Commalist *edges) *wrapper* Cd_graph *prefix* (@ adjacencies->clearAndMarkBypassing(edges); @) *wrapper* Adjacency_Nlist *prefix* (@ Adjacency_list_iterator next(*this); Adjacency* each; while (each = next()) each->clearAndMarkBypassing(edges); @) *wrapper* Adjacency *prefix* (@ if (superclasses) superclasses->clearAndMarkBypassing(source,edges); ns->clearAndMarkBypassing(source,edges); @) ///////////////////////////////////////////////////////////////////// // ///////////////////////////////////////////////////////////////////// *operation* void clearAndMarkBypassing(Vertex* source,Meta_edge_Commalist *edges) *wrapper* Neighbors *prefix* (@ @) *wrapper* Neighbors_wc *prefix* (@ @) *wrapper* Repetit_n *prefix* (@ if (sandwiched) sandwiched->clearAndMarkBypassing(source,edges); @) *wrapper* Construct_ns *prefix* (@ this->get_construct_ns()->clearAndMarkBypassing(source,edges); @) *wrapper* Alternat_ns *prefix* (@ this->get_construct_ns()->clearAndMarkBypassing(source,edges); if (alternat_ns) alternat_ns->clearAndMarkBypassing(source,edges); @) *wrapper* Term_Barlist *prefix* (@ Term_list_iterator next(*this); Term_ each; while (each = next()) if (edges && edges->isAltEdgeInTheList(source,each)) { if (each->get_bypassing()) each->get_bypassing()->g_delete(); DemString * mark = new DemString("bypassing"); each->set_bypassing(mark); } else { if (each->get_bypassing()) each->get_bypassing()->g_delete(); DemString * unmark = new DemString(""); each->set_bypassing(unmark); } @) *wrapper* Kernel_Sandwich *prefix* (@ inner->clearAndMarkBypassing(source,edges); @) *wrapper* Kernel *prefix* (@ repeated->clearAndMarkBypassing(source,edges); @) *wrapper* Term_Sandwich *prefix* (@ inner->clearAndMarkBypassing(source,edges); @) *wrapper* Term *prefix* (@ if (edges && edges->isRepEdgeInTheList(source,this)) { if (this->get_bypassing()) this->get_bypassing()->g_delete(); DemString * mark = new DemString("bypassing"); this->set_bypassing(mark); } else { if (this->get_bypassing()) this->get_bypassing()->g_delete(); DemString * unmark = new DemString(""); this->set_bypassing(unmark); } @) *wrapper* Vertex_List *prefix* (@ Vertex_list_iterator next(*this); Vertex_ each; while (each = next()) { if (edges && edges->isInhEdgeInTheList(source,each)) { if (each->get_bypassing()) each->get_bypassing()->g_delete(); DemString * mark = new DemString("bypassing"); each->set_bypassing(mark); } else { if (each->get_bypassing()) each->get_bypassing()->g_delete(); DemString * unmark = new DemString(""); each->set_bypassing(unmark); } } @) *wrapper* Any_vertex_List *prefix* (@ Any_vertex_list_iterator next(*this); Any_vertex_ each; while (each = next()) { int result = 0; each->clearAndMarkBypassing(source,edges,result); if (result ==1) { if (each->get_bypassing()) each->get_bypassing()->g_delete(); DemString * mark = new DemString("bypassing"); each->set_bypassing(mark); } else { if (each->get_bypassing()) each->get_bypassing()->g_delete(); DemString * unmark = new DemString(""); each->set_bypassing(unmark); } } @) *operation* void clearAndMarkBypassing(Vertex* source, Meta_edge_Commalist *edges, int &result) *traverse* *from* Any_vertex *to* { Labeled, Regular} *wrapper* Labeled *prefix* (@ if (edges && edges->isConsEdgeInTheList(source,this->get_label_name(),this->get_vertex())) result = 1; @) *wrapper* Regular *prefix* (@ derror('i',1," unexpected visit at Regular::clearAndMarkBypassing\n"); abort(); @)