*operation* void genReturnMethod(Vertex_selector* vset,const char* tmp_cppfname) *wrapper* Header *prefix* (@ int r = 1; this->isAFunc(r); if (r == 0) return; vset->genReturnMethod(this, tmp_cppfname); @) *operation* void genReturnMethod(Header* hdr, const char* tmp_cppfname) *traverse* *from* Vertex_selector *to* Term *wrapper* Term *prefix* (@ ofstream tmp_cpptarget(tmp_cppfname,ios::app); if (!tmp_cpptarget) { cout << toolname << ": unable to open " << tmp_cppfname << endl; perror(tmp_cppfname); exit(-1); } hdr->printhdr(tmp_cpptarget,this->get_vertex()); tmp_cpptarget << "\n this->"; int r = 1; hdr->isAFunc(r); // generate signature hdr->printRetHdr(tmp_cpptarget); if (r) tmp_cpptarget << " return return_val;\n"; tmp_cpptarget << "}\n"; tmp_cpptarget.close(); @) *operation* void printRetHdr(ofstream &tmp_cpptarget) *wrapper* Header *prefix* (@ this->get_signature()->printRetHdr(tmp_cpptarget); @) *wrapper* Signature *prefix* (@ ///////////////////////// // print signature ///////////////////////// tmp_cpptarget << this->get_name()->get_op_name()->get_val(); if (this->get_parameter_decls()) { tmp_cpptarget << "_( return_val, "; this->get_parameter_decls()->printArgName(tmp_cpptarget); } else tmp_cpptarget << "_( return_val"; tmp_cpptarget << " );\n"; @)