#include "pp.h" // Rename = + // "*rename*" // Each_renaming_Commalist // "*end*" // - // *l. void Rename::do_rename( Propagation_pattern* pp_obj ) { DEM_TRACE("Rename","void Rename::do_rename(Propagation_pattern* pp_obj)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers if (this->get_renaming()->list_length() == 0) return; this->check_legal(); if (pp_obj->get_meta_def() != NULL) pp_obj->get_meta_def()->do_rename(this); pp_obj->get_header()->rename_header(this); pp_obj->get_impl_or_loc()->rename_impl(this); // outgoing calls // suffix class wrappers // assignments for carrying out } // Rename_input = Rename_List . void Rename_input::do_rename( Propagation_pattern* pp_obj ) { DEM_TRACE("Rename_input","void Rename_input::do_rename(Propagation_pattern* pp_obj)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls // construction edge prefix wrappers this->get_rens()->do_rename( pp_obj ); // construction edge suffix wrappers // suffix class wrappers // assignments for carrying out } // Rename_List ~ { Rename }. . void Rename_List::do_rename( Propagation_pattern* pp_obj ) { DEM_TRACE("Rename_List","void Rename_List::do_rename(Propagation_pattern* pp_obj)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls Rename_list_iterator next_Rename(*this); Rename* each_Rename; while ( each_Rename = next_Rename() ) { // repetition edge prefix wrappers each_Rename->do_rename( pp_obj ); // repetition edge suffix wrappers } // suffix class wrappers // assignments for carrying out } // Rename = + // "*rename*" // Each_renaming_Commalist // "*end*" // - // *l. void Rename::do_rename( Meta_def_input* meta_obj ) { DEM_TRACE("Rename","void Rename::do_rename(Meta_def_input* meta_obj)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers if (this->get_renaming()->list_length() == 0) return; this->check_legal(); Meta_def_list_iterator next(*meta_obj->get_metas()); Meta_def * each; while (each = next()) each->do_rename(this); // outgoing calls // suffix class wrappers // assignments for carrying out } // Rename_input = Rename_List . void Rename_input::do_rename( Meta_def_input* meta_obj ) { DEM_TRACE("Rename_input","void Rename_input::do_rename(Meta_def_input* meta_obj)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls // construction edge prefix wrappers this->get_rens()->do_rename( meta_obj ); // construction edge suffix wrappers // suffix class wrappers // assignments for carrying out } // Rename_List ~ { Rename }. . void Rename_List::do_rename( Meta_def_input* meta_obj ) { DEM_TRACE("Rename_List","void Rename_List::do_rename(Meta_def_input* meta_obj)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls Rename_list_iterator next_Rename(*this); Rename* each_Rename; while ( each_Rename = next_Rename() ) { // repetition edge prefix wrappers each_Rename->do_rename( meta_obj ); // repetition edge suffix wrappers } // suffix class wrappers // assignments for carrying out } // Meta_macro_def = [ Term_Commalist ] // [ Meta_edge_Commalist ] // [ Class_set_def_Amplist ] // [ Dir_meta_def_Amplist ] // [ PCP_def_Amplist ] . void Meta_macro_def::do_rename( Rename* ren ) { DEM_TRACE("Meta_macro_def","void Meta_macro_def::do_rename(Rename* ren)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers if (this->get_classes() != NULL) { Term_Commalist * nc = new Term_Commalist(); this->get_classes()->ren_classes(ren,nc); this->rset_classes(nc)->g_delete(); } if (this->get_relations() != NULL) { // Meta_edge_Commalist *nr = new Meta_edge_Commalist(); // this->get_relations()->ren_relations(ren,nr); // this->rset_relations(nr)->g_delete(); this->get_relations()->ren_pde(ren); } if (this->get_class_sets() != NULL) { Class_set_def_Amplist *ns = new Class_set_def_Amplist(); this->get_class_sets()->ren_class_sets(ren,ns); this->rset_class_sets(ns)->g_delete(); } if (this->get_dirs() != NULL) { Dir_meta_def_Amplist *nd = new Dir_meta_def_Amplist(); this->get_dirs()->ren_dirs(ren,nd); this->rset_dirs(nd)->g_delete(); } /* not implemented if (this->get_macros() != NULL) this->get_macros()->ren_dirs(ren); */ // outgoing calls if ( this->get_macros() != NULL ) { // construction edge prefix wrappers this->get_macros()->do_rename( ren ); // construction edge prefix wrappers } // suffix class wrappers // assignments for carrying out } // PCP_def = PCP_def_name // "=" // PCP // ";" . void PCP_def::do_rename( Rename* ren ) { DEM_TRACE("PCP_def","void PCP_def::do_rename(Rename* ren)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls // construction edge prefix wrappers this->get_pcp()->do_rename( ren ); // construction edge suffix wrappers // suffix class wrappers // assignments for carrying out } // PCP : Propagation_directive_exp | // Propagation_pattern // *common* . void PCP::do_rename( Rename* ren ) { DEM_TRACE("PCP","void PCP::do_rename(Rename* ren)"); #ifndef NOTRACE DemTrace demTraceEmptyMethod(__FILE__,__LINE__,"PCP",form(" at %s , *** PREMATURELY TERMINATED *** ", this->get_type())); #endif } // Meta_def = + // "*constraints*" // *l // Meta_macro_def // "*end*" // - // *l. void Meta_def::do_rename( Rename* ren ) { DEM_TRACE("Meta_def","void Meta_def::do_rename(Rename* ren)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls // construction edge prefix wrappers this->get_meta_def()->do_rename( ren ); // construction edge suffix wrappers // suffix class wrappers // assignments for carrying out } // Propagation_pattern =
Header // [ Rename ] // [ Meta_def ] // Impl_or_loc . void Propagation_pattern::do_rename( Rename* ren ) { DEM_TRACE("Propagation_pattern","void Propagation_pattern::do_rename(Rename* ren)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls if ( this->get_meta_def() != NULL ) { // construction edge prefix wrappers this->get_meta_def()->do_rename( ren ); // construction edge prefix wrappers } // suffix class wrappers // assignments for carrying out } // PCP_def_Amplist ~ PCP_def { PCP_def }. . void PCP_def_Amplist::do_rename( Rename* ren ) { DEM_TRACE("PCP_def_Amplist","void PCP_def_Amplist::do_rename(Rename* ren)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls PCP_def_list_iterator next_PCP_def(*this); PCP_def* each_PCP_def; while ( each_PCP_def = next_PCP_def() ) { // repetition edge prefix wrappers each_PCP_def->do_rename( ren ); // repetition edge suffix wrappers } // suffix class wrappers // assignments for carrying out } void Rename::check_legal( ) { DEM_TRACE("Rename","void Rename::check_legal()"); // prefix class wrappers Each_renaming_list_iterator next1(*this->get_renaming()); Each_renaming * each1; while (each1 = next1()) { if (strcmp(each1->get_old_name()->get_type(),each1->get_new_name()->get_type())) { each1->get_old_name()->g_print(cout); cout << " => "; each1->get_new_name()->g_print(cout); cout << endl; derror('e',1," illegal renaming.\n"); exit(-1); } int i = 0; Each_renaming_list_iterator next2(*this->get_renaming()); Each_renaming * each2; while (each2 = next2()) if (each2->get_old_name()->g_equal(each1->get_old_name())) i++; if (i > 1) { cout << "\n"; this->g_print(cout); cout << endl; derror('e',1," error : there are two renamings for the same symbol.\n"); exit(-1); } } // suffix class wrappers } // Name_inst : Dir_name | // Class_set_name | // CRFV_name // *common* . void Name_inst::get_relation_name( DemIdent* & n ) { DEM_TRACE("Name_inst","void Name_inst::get_relation_name(DemIdent* & n)"); #ifndef NOTRACE DemTrace demTraceEmptyMethod(__FILE__,__LINE__,"Name_inst",form(" at %s , *** PREMATURELY TERMINATED *** ", this->get_type())); #endif } // CRFV_name = Term . void CRFV_name::get_relation_name( DemIdent* & n ) { DEM_TRACE("CRFV_name","void CRFV_name::get_relation_name(DemIdent* & n)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls // construction edge prefix wrappers this->get_name()->get_relation_name( n ); // construction edge suffix wrappers // suffix class wrappers // assignments for carrying out } // Vertex = DemIdent // [ Param_decl_Commalist ] // [ DemString ] // [ DemString ] . void Vertex::get_relation_name( DemIdent* & n ) { DEM_TRACE("Vertex","void Vertex::get_relation_name(DemIdent* & n)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls if ( this->get_callVals() != NULL ) { // construction edge prefix wrappers this->get_callVals()->get_relation_name( n ); // construction edge prefix wrappers } // suffix class wrappers // assignments for carrying out } // Term : Normal | // CppTerm // *common* Vertex // TermRef // [ Term_Commalist ] // [ Param_decl_Commalist ] // [ DemString ] // [ DemString ] . void Term::get_relation_name( DemIdent* & n ) { DEM_TRACE("Term","void Term::get_relation_name(DemIdent* & n)"); #ifndef NOTRACE DemTrace demTraceEmptyMethod(__FILE__,__LINE__,"Term",form(" at %s , *** PREMATURELY TERMINATED *** ", this->get_type())); #endif } // CppTerm = "$" . void CppTerm::get_relation_name( DemIdent* & n ) { DEM_TRACE("CppTerm","void CppTerm::get_relation_name(DemIdent* & n)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers derror('e',1," there should be no C++ type (with $) in the renaming. '"); this->pp(cout); cout << "' on line " << this->get_vertex()->get_vertex_name()->get_line_number() << endl; exit(-1); // outgoing calls // inheritance edge prefix wrappers // construction edge prefix wrappers this->get_vertex()->get_relation_name( n ); // construction edge suffix wrappers if ( this->get_actual_parameters() != NULL ) { // construction edge prefix wrappers this->get_actual_parameters()->get_relation_name( n ); // construction edge prefix wrappers } if ( this->get_callVals() != NULL ) { // construction edge prefix wrappers this->get_callVals()->get_relation_name( n ); // construction edge prefix wrappers } // inheritance edge prefix wrappers // suffix class wrappers // assignments for carrying out } // Normal = . void Normal::get_relation_name( DemIdent* & n ) { DEM_TRACE("Normal","void Normal::get_relation_name(DemIdent* & n)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers static LocalRef * chck = new LocalRef(); if (this->get_moduleRef()->g_equal(chck)) n = this->get_vertex()->get_vertex_name(); else n = NULL; // outgoing calls // inheritance edge prefix wrappers // construction edge prefix wrappers this->get_vertex()->get_relation_name( n ); // construction edge suffix wrappers if ( this->get_actual_parameters() != NULL ) { // construction edge prefix wrappers this->get_actual_parameters()->get_relation_name( n ); // construction edge prefix wrappers } if ( this->get_callVals() != NULL ) { // construction edge prefix wrappers this->get_callVals()->get_relation_name( n ); // construction edge prefix wrappers } // inheritance edge prefix wrappers // suffix class wrappers // assignments for carrying out } // Nonvoid_type_spec : Type_with_attribute | // Type_without_attribute // *common* . void Nonvoid_type_spec::get_relation_name( DemIdent* & n ) { DEM_TRACE("Nonvoid_type_spec","void Nonvoid_type_spec::get_relation_name(DemIdent* & n)"); #ifndef NOTRACE DemTrace demTraceEmptyMethod(__FILE__,__LINE__,"Nonvoid_type_spec",form(" at %s , *** PREMATURELY TERMINATED *** ", this->get_type())); #endif } // Type_without_attribute = Type . void Type_without_attribute::get_relation_name( DemIdent* & n ) { DEM_TRACE("Type_without_attribute","void Type_without_attribute::get_relation_name(DemIdent* & n)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls // construction edge prefix wrappers this->get_param_type()->get_relation_name( n ); // construction edge suffix wrappers // suffix class wrappers // assignments for carrying out } // Type_with_attribute = Param_attribute // Type . void Type_with_attribute::get_relation_name( DemIdent* & n ) { DEM_TRACE("Type_with_attribute","void Type_with_attribute::get_relation_name(DemIdent* & n)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls // construction edge prefix wrappers this->get_param_type()->get_relation_name( n ); // construction edge suffix wrappers // suffix class wrappers // assignments for carrying out } // Param_decl = Nonvoid_type_spec // Param_name // [ CppCode ] . void Param_decl::get_relation_name( DemIdent* & n ) { DEM_TRACE("Param_decl","void Param_decl::get_relation_name(DemIdent* & n)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls // construction edge prefix wrappers this->get_param_type_spec()->get_relation_name( n ); // construction edge suffix wrappers // suffix class wrappers // assignments for carrying out } // Type = [ Type_qualifier ] // Term // Ref_Ptr_List . void Type::get_relation_name( DemIdent* & n ) { DEM_TRACE("Type","void Type::get_relation_name(DemIdent* & n)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls // construction edge prefix wrappers this->get_type_name()->get_relation_name( n ); // construction edge suffix wrappers // suffix class wrappers // assignments for carrying out } // Term_Commalist ~ Term { Term }. . void Term_Commalist::get_relation_name( DemIdent* & n ) { DEM_TRACE("Term_Commalist","void Term_Commalist::get_relation_name(DemIdent* & n)"); // 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->get_relation_name( n ); // repetition edge suffix wrappers } // suffix class wrappers // assignments for carrying out } // Param_decl_Commalist ~ Param_decl { Param_decl }. . void Param_decl_Commalist::get_relation_name( DemIdent* & n ) { DEM_TRACE("Param_decl_Commalist","void Param_decl_Commalist::get_relation_name(DemIdent* & n)"); // variables for carrying in and out // assignments for carrying in // prefix class wrappers // outgoing calls Param_decl_list_iterator next_Param_decl(*this); Param_decl* each_Param_decl; while ( each_Param_decl = next_Param_decl() ) { // repetition edge prefix wrappers each_Param_decl->get_relation_name( n ); // repetition edge suffix wrappers } // suffix class wrappers // assignments for carrying out }