#include "treeprop.h" // Vertex = DemIdent . void Vertex::set_union( Vertex* w, int& in_list ) { DEM_TRACE("Vertex","void Vertex::set_union(Vertex* w,int& in_list)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers if (g_equal(w)) { in_list = 1; } // outgoing calls // suffix class wrappers // assignments for carrying out } // Vertex_comma_list ~ Vertex { Vertex }. . void Vertex_comma_list::set_union( Vertex* w ) { DEM_TRACE("Vertex_comma_list","void Vertex_comma_list::set_union(Vertex* w)"); // variables for carrying in and out int in_list = 0 ; // assignments for carrying in // prefix class wrappers // outgoing calls Vertex_list_iterator next_Vertex(*this); Vertex* each_Vertex; while ( each_Vertex = next_Vertex() ) { // repetition edge prefix wrappers each_Vertex->set_union( w , in_list ); // repetition edge suffix wrappers } // suffix class wrappers if (!in_list) { this->append(w); } // assignments for carrying out } // Vertex_comma_list ~ Vertex { Vertex }. . void Vertex_comma_list::set_union( Vertex_comma_list* l ) { DEM_TRACE("Vertex_comma_list","void Vertex_comma_list::set_union(Vertex_comma_list* l)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers l->set_union_swap(this); // outgoing calls // suffix class wrappers // assignments for carrying out } // Vertex = DemIdent . void Vertex::set_union_swap( Vertex_comma_list* final_list ) { DEM_TRACE("Vertex","void Vertex::set_union_swap(Vertex_comma_list* final_list)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers final_list->set_union(this); // outgoing calls // suffix class wrappers // assignments for carrying out } // Vertex_comma_list ~ Vertex { Vertex }. . void Vertex_comma_list::set_union_swap( Vertex_comma_list* final_list ) { DEM_TRACE("Vertex_comma_list","void Vertex_comma_list::set_union_swap(Vertex_comma_list* final_list)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls Vertex_list_iterator next_Vertex(*this); Vertex* each_Vertex; while ( each_Vertex = next_Vertex() ) { // repetition edge prefix wrappers each_Vertex->set_union_swap( final_list ); // repetition edge suffix wrappers } // suffix class wrappers // assignments for carrying out }