#include "treeprop.h" Ar_Vertex_list* Cd_graph::compute_ar_sets( ) { DEM_TRACE("Cd_graph","Ar_Vertex_list* Cd_graph::compute_ar_sets()"); Ar_Vertex_list* return_val = init_ar_list() ; this->compute_ar_sets_( return_val ); return return_val; } // Cd_graph = Adjacency_nlist // [ Vertex_comma_list ] . void Cd_graph::compute_ar_sets_( Ar_Vertex_list* & return_val ) { DEM_TRACE("Cd_graph","void Cd_graph::compute_ar_sets_(Ar_Vertex_list* & return_val)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers return_val->ar_compute(this); // outgoing calls // suffix class wrappers // assignments for carrying out } // Ar_Vertex = Vertex // Vertex_comma_list // Vertex . void Ar_Vertex::ar_compute( Cd_graph* cd ) { DEM_TRACE("Ar_Vertex","void Ar_Vertex::ar_compute(Cd_graph* cd)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers if (ar == NULL) { ar = cd->ar_compute(v); } // outgoing calls // suffix class wrappers // assignments for carrying out } // Ar_Vertex_list ~ { Ar_Vertex }. . void Ar_Vertex_list::ar_compute( Cd_graph* cd ) { DEM_TRACE("Ar_Vertex_list","void Ar_Vertex_list::ar_compute(Cd_graph* cd)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls Ar_Vertex_list_iterator next_Ar_Vertex(*this); Ar_Vertex* each_Ar_Vertex; while ( each_Ar_Vertex = next_Ar_Vertex() ) { // repetition edge prefix wrappers each_Ar_Vertex->ar_compute( cd ); // repetition edge suffix wrappers } // suffix class wrappers // assignments for carrying out } Ar_Vertex_list* Cd_graph::init_ar_list( ) { DEM_TRACE("Cd_graph","Ar_Vertex_list* Cd_graph::init_ar_list()"); Ar_Vertex_list* return_val = new Ar_Vertex_list ; this->init_ar_list_( return_val ); return return_val; } // Cd_graph = Adjacency_nlist // [ Vertex_comma_list ] . void Cd_graph::init_ar_list_( Ar_Vertex_list* & return_val ) { DEM_TRACE("Cd_graph","void Cd_graph::init_ar_list_(Ar_Vertex_list* & return_val)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls // construction edge prefix wrappers this->get_adjacencies()->init_ar_list_( return_val ); // construction edge suffix wrappers // suffix class wrappers // assignments for carrying out } // Adjacency = Vertex // [ Vertex_comma_list ] // Neighbors // "." . void Adjacency::init_ar_list_( Ar_Vertex_list* & return_val ) { DEM_TRACE("Adjacency","void Adjacency::init_ar_list_(Ar_Vertex_list* & return_val)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls // suffix class wrappers Ar_Vertex* ar_v = new Ar_Vertex(source, NULL, NULL); return_val->append(ar_v); // assignments for carrying out } // Adjacency_nlist ~ Adjacency { Adjacency }. . void Adjacency_nlist::init_ar_list_( Ar_Vertex_list* & return_val ) { DEM_TRACE("Adjacency_nlist","void Adjacency_nlist::init_ar_list_(Ar_Vertex_list* & return_val)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls Adjacency_list_iterator next_Adjacency(*this); Adjacency* each_Adjacency; while ( each_Adjacency = next_Adjacency() ) { // repetition edge prefix wrappers each_Adjacency->init_ar_list_( return_val ); // repetition edge suffix wrappers } // suffix class wrappers // assignments for carrying out } Vertex_comma_list* Cd_graph::ar_compute( Vertex* v ) { DEM_TRACE("Cd_graph","Vertex_comma_list* Cd_graph::ar_compute(Vertex* v)"); Vertex_comma_list* return_val = new Vertex_comma_list ; this->ar_compute_( return_val, v ); return return_val; } // Cd_graph = Adjacency_nlist // [ Vertex_comma_list ] . void Cd_graph::ar_compute_( Vertex_comma_list* & return_val, Vertex* v ) { DEM_TRACE("Cd_graph","void Cd_graph::ar_compute_(Vertex_comma_list* & return_val,Vertex* v)"); // variables for carrying in and out Cd_graph* cd = this ; // assignments for carrying in // prefix class wrappers // outgoing calls // construction edge prefix wrappers this->get_adjacencies()->ar_compute_( return_val, v , cd ); // construction edge suffix wrappers // suffix class wrappers // assignments for carrying out } // Adjacency = Vertex // [ Vertex_comma_list ] // Neighbors // "." . void Adjacency::ar_compute_( Vertex_comma_list* & return_val, Vertex* v, Cd_graph* cd ) { DEM_TRACE("Adjacency","void Adjacency::ar_compute_(Vertex_comma_list* & return_val,Vertex* v,Cd_graph* cd)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls // suffix class wrappers if (v->g_equal(source)) { return_val->concatenate(ar_vertices(cd)); } // assignments for carrying out } // Adjacency_nlist ~ Adjacency { Adjacency }. . void Adjacency_nlist::ar_compute_( Vertex_comma_list* & return_val, Vertex* v, Cd_graph* cd ) { DEM_TRACE("Adjacency_nlist","void Adjacency_nlist::ar_compute_(Vertex_comma_list* & return_val,Vertex* v,Cd_graph* cd)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls Adjacency_list_iterator next_Adjacency(*this); Adjacency* each_Adjacency; while ( each_Adjacency = next_Adjacency() ) { // repetition edge prefix wrappers each_Adjacency->ar_compute_( return_val, v , cd ); // repetition edge suffix wrappers } // suffix class wrappers // assignments for carrying out } Vertex_comma_list* Adjacency::ar_vertices( Cd_graph* cd ) { DEM_TRACE("Adjacency","Vertex_comma_list* Adjacency::ar_vertices(Cd_graph* cd)"); Vertex_comma_list* return_val = new Vertex_comma_list ; this->ar_vertices_( return_val, cd ); return return_val; } // Adjacency = Vertex // [ Vertex_comma_list ] // Neighbors // "." . void Adjacency::ar_vertices_( Vertex_comma_list* & return_val, Cd_graph* cd ) { DEM_TRACE("Adjacency","void Adjacency::ar_vertices_(Vertex_comma_list* & return_val,Cd_graph* cd)"); // variables for carrying in and out Vertex* src = source ; // assignments for carrying in // prefix class wrappers // outgoing calls // construction edge prefix wrappers this->get_ns()->ar_vertices_( return_val, cd , src ); // construction edge suffix wrappers // suffix class wrappers // assignments for carrying out } // Neighbors : Neighbors_wc | // Repetit_n // *common* . void Neighbors::ar_vertices_( Vertex_comma_list* & return_val, Cd_graph* cd, Vertex* src ) { DEM_TRACE("Neighbors","void Neighbors::ar_vertices_(Vertex_comma_list* & return_val,Cd_graph* cd,Vertex* src)"); #ifndef NOTRACE DemTrace demTraceEmptyMethod(__FILE__,__LINE__,"Neighbors",form(" at %s , *** PREMATURELY TERMINATED *** ", this->get_type())); #endif } // Neighbors_wc : Construct_ns | // Alternat_ns // *common* . void Neighbors_wc::ar_vertices_( Vertex_comma_list* & return_val, Cd_graph* cd, Vertex* src ) { DEM_TRACE("Neighbors_wc","void Neighbors_wc::ar_vertices_(Vertex_comma_list* & return_val,Cd_graph* cd,Vertex* src)"); #ifndef NOTRACE DemTrace demTraceEmptyMethod(__FILE__,__LINE__,"Neighbors_wc",form(" at %s , *** PREMATURELY TERMINATED *** ", this->get_type())); #endif } // Construct_ns = "=" // Any_vertex_list . void Construct_ns::ar_vertices_( Vertex_comma_list* & return_val, Cd_graph* cd, Vertex* src ) { DEM_TRACE("Construct_ns","void Construct_ns::ar_vertices_(Vertex_comma_list* & return_val,Cd_graph* cd,Vertex* src)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls // suffix class wrappers return_val->set_union(src); // assignments for carrying out } void Alternat_ns::ar_vertices_( Vertex_comma_list* & return_val, Cd_graph* cd, Vertex* src ) { DEM_TRACE("Alternat_ns","void Alternat_ns::ar_vertices_(Vertex_comma_list* & return_val,Cd_graph* cd,Vertex* src)"); // variable definitions for carrying in and out this->ar_vertices_( return_val, cd ); } // Alternat_ns = ":" // Term_bar_list // [ Common ] // Any_vertex_list . void Alternat_ns::ar_vertices_( Vertex_comma_list* & return_val, Cd_graph* cd ) { DEM_TRACE("Alternat_ns","void Alternat_ns::ar_vertices_(Vertex_comma_list* & return_val,Cd_graph* cd)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls // construction edge prefix wrappers this->get_alternat_ns()->ar_vertices_( return_val, cd ); // construction edge suffix wrappers // suffix class wrappers // assignments for carrying out } // Vertex = DemIdent . void Vertex::ar_vertices_( Vertex_comma_list* & return_val, Cd_graph* cd ) { DEM_TRACE("Vertex","void Vertex::ar_vertices_(Vertex_comma_list* & return_val,Cd_graph* cd)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls // suffix class wrappers return_val->set_union(cd->ar_compute(this)); // assignments for carrying out } // Term : Normal | // CppTerm // *common* . void Term::ar_vertices_( Vertex_comma_list* & return_val, Cd_graph* cd ) { DEM_TRACE("Term","void Term::ar_vertices_(Vertex_comma_list* & return_val,Cd_graph* cd)"); #ifndef NOTRACE DemTrace demTraceEmptyMethod(__FILE__,__LINE__,"Term",form(" at %s , *** PREMATURELY TERMINATED *** ", this->get_type())); #endif } // CppTerm = "$" // Vertex // TermRef // [ Term_comma_list ] . void CppTerm::ar_vertices_( Vertex_comma_list* & return_val, Cd_graph* cd ) { DEM_TRACE("CppTerm","void CppTerm::ar_vertices_(Vertex_comma_list* & return_val,Cd_graph* cd)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls // construction edge prefix wrappers this->get_vertex()->ar_vertices_( return_val, cd ); // construction edge suffix wrappers if ( this->get_actual_parameters() != NULL ) { // construction edge prefix wrappers this->get_actual_parameters()->ar_vertices_( return_val, cd ); // construction edge suffix wrappers } // suffix class wrappers // assignments for carrying out } // Normal = Vertex // TermRef // [ Term_comma_list ] . void Normal::ar_vertices_( Vertex_comma_list* & return_val, Cd_graph* cd ) { DEM_TRACE("Normal","void Normal::ar_vertices_(Vertex_comma_list* & return_val,Cd_graph* cd)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls // construction edge prefix wrappers this->get_vertex()->ar_vertices_( return_val, cd ); // construction edge suffix wrappers if ( this->get_actual_parameters() != NULL ) { // construction edge prefix wrappers this->get_actual_parameters()->ar_vertices_( return_val, cd ); // construction edge suffix wrappers } // suffix class wrappers // assignments for carrying out } // Term_bar_list ~ Term { Term }. . void Term_bar_list::ar_vertices_( Vertex_comma_list* & return_val, Cd_graph* cd ) { DEM_TRACE("Term_bar_list","void Term_bar_list::ar_vertices_(Vertex_comma_list* & return_val,Cd_graph* cd)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls Term_list_iterator next_Term(*this); Term* each_Term; while ( each_Term = next_Term() ) { // repetition edge prefix wrappers each_Term->ar_vertices_( return_val, cd ); // repetition edge suffix wrappers } // suffix class wrappers // assignments for carrying out } // Term_comma_list ~ Term { Term }. . void Term_comma_list::ar_vertices_( Vertex_comma_list* & return_val, Cd_graph* cd ) { DEM_TRACE("Term_comma_list","void Term_comma_list::ar_vertices_(Vertex_comma_list* & return_val,Cd_graph* cd)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls Term_list_iterator next_Term(*this); Term* each_Term; while ( each_Term = next_Term() ) { // repetition edge prefix wrappers each_Term->ar_vertices_( return_val, cd ); // repetition edge suffix wrappers } // suffix class wrappers // assignments for carrying out }