/////////////////////////////////////////////////////////////////////////////// // // $Log: genSuperInOut.pp,v $ // Revision 5.5.1.1 1994/08/24 19:32:16 demeter // *** empty log message *** // // Revision 5.5 1994/08/24 19:32:15 demeter // *** empty log message *** // // Revision 5.4.1.3 1994/02/24 20:54:53 demeter // reimplement object transportation -- cun // // Revision 5.4.1.2 1994/02/22 22:16:36 demeter // new file // // Generate variable definitions while checking the scope // // Consider the case when the current class has more arguements // than its superclasses. // The superclasses fall into the two categories: // sources of transportation // the classes in between are sources // /////////////////////////////////////////////////////////////////////////////// *operation* void genSuperCarryPrefixAssign( Cd_graph* schema, Vertex* v, Propagation_schema* ps, ofstream& strm, Param_decl_Commalist* inargs, Param_decl_Commalist* outargs ) *wrapper* Cd_graph *prefix* (@ adjacencies->genSuperCarryPrefixAssign(schema,v,ps,strm,inargs,outargs); @) *wrapper* Adjacency_Nlist *prefix* (@ Adjacency_list_iterator next(*this); Adjacency* each; while (each = next()) if (each->get_source()->equal(v)) break; assert(each); each->genSuperCarryPrefixAssign(schema,v,ps,strm,inargs,outargs); @) *wrapper* Adjacency *prefix* (@ if (this->get_superclasses()) this->get_superclasses()->genSuperCarryPrefixAssign(schema,v,ps,strm,inargs,outargs); @) *wrapper* Vertex_List *prefix* (@ Vertex_list_iterator next(*this); Vertex* each; while (each = next()) { Adjacency_list_iterator nexta(*schema->get_adjacencies()); Adjacency* eacha; while (eacha = nexta()) if (eacha->get_source()->equal(each)) break; assert(eacha); eacha->genSuperCarryPrefixAssign(schema,v,ps,strm,inargs,outargs); ps->get_paths()->genSuperCarryPrefixAssign(eacha,ps,strm,inargs,outargs); } @) *operation* void genSuperCarryPrefixAssign( Adjacency* adj, Propagation_schema* ps, ofstream& strm, Param_decl_Commalist* inargs, Param_decl_Commalist* outargs ) *wrapper* Cd_graph *prefix* (@ adjacencies->genSuperCarryPrefixAssign(adj,ps,strm,inargs,outargs); @) *wrapper* Adjacency_Nlist *prefix* (@ Adjacency_list_iterator next(*this); Adjacency* each; while (each = next()) if (each->get_source()->equal(adj->get_source())) break; if (each) { if (each->get_param_assignments()) each->get_param_assignments()->genCarryPrefixAssign( each->get_source(), strm, inargs, outargs); strm << "\n"; } @) *operation* void genSuperCarrySuffixAssign( Cd_graph* schema, Vertex* v, Propagation_schema* ps, ofstream& strm, Param_decl_Commalist* inargs, Param_decl_Commalist* outargs ) *wrapper* Cd_graph *prefix* (@ adjacencies->genSuperCarrySuffixAssign(schema,v,ps,strm,inargs,outargs); @) *wrapper* Adjacency_Nlist *prefix* (@ Adjacency_list_iterator next(*this); Adjacency* each; while (each = next()) if (each->get_source()->equal(v)) break; assert(each); each->genSuperCarrySuffixAssign(schema,v,ps,strm,inargs,outargs); @) *wrapper* Adjacency *prefix* (@ if (this->get_superclasses()) this->get_superclasses()->genSuperCarrySuffixAssign(schema,v,ps,strm,inargs,outargs); @) *wrapper* Vertex_List *prefix* (@ Vertex_list_iterator next(*this); Vertex* each; while (each = next()) { Adjacency_list_iterator nexta(*schema->get_adjacencies()); Adjacency* eacha; while (eacha = nexta()) if (eacha->get_source()->equal(each)) break; assert(eacha); eacha->genSuperCarrySuffixAssign(schema,v,ps,strm,inargs,outargs); ps->get_paths()->genSuperCarrySuffixAssign(eacha,ps,strm,inargs,outargs); } @) *operation* void genSuperCarrySuffixAssign( Adjacency* adj, Propagation_schema* ps, ofstream& strm, Param_decl_Commalist* inargs, Param_decl_Commalist* outargs ) *wrapper* Cd_graph *prefix* (@ adjacencies->genSuperCarrySuffixAssign(adj,ps,strm,inargs,outargs); @) *wrapper* Adjacency_Nlist *prefix* (@ Adjacency_list_iterator next(*this); Adjacency* each; while (each = next()) if (each->get_source()->equal(adj->get_source())) break; if (each) { if (each->get_param_assignments()) each->get_param_assignments()->genCarrySuffixAssign( each->get_source(), strm, inargs, outargs); strm << "\n"; } @)