00001 #ifndef wali_nwa_query_RETURNS_HPP 00002 #define wali_nwa_query_RETURNS_HPP 00003 00004 #include "opennwa/NwaFwd.hpp" 00005 00006 namespace opennwa 00007 { 00008 namespace query 00009 { 00010 //Return Transitions 00011 00012 /** 00013 * 00014 * @brief returns the exit states associated with the given symbol 00015 * 00016 * This method provides access to the exit states associated with 00017 * the given symbol. 00018 * 00019 * @param - symbol: the symbol whose exit states to obtain 00020 * @return the set of exit states associated with the given symbol 00021 * 00022 */ 00023 extern const StateSet getExits_Sym(Nwa const & nwa, Symbol symbol ); 00024 00025 /** 00026 * 00027 * @brief returns the exit states associated with the given call site, 00028 * symbol, and return site 00029 * 00030 * This method provides access to the exit states associated with the 00031 * given call site, symbol, and return site. 00032 * 00033 * @param - callSite: the call site state whose exit states to obtain 00034 * @param - symbol: the symbol whose exit states to obtain 00035 * @param - returnSite: the return site state whose exit states to obtain 00036 * @return the set of exit states associated with the given call site, 00037 * symbol, and return site 00038 * 00039 */ 00040 extern const StateSet getExits(Nwa const & nwa, State callSite, Symbol symbol, State returnSite ); 00041 00042 /** 00043 * 00044 * @brief returns the exit point/symbol pairs associated with the given 00045 * call site and return site 00046 * 00047 * This method provides access to the exit point/symbol pairs associated 00048 * with the given call site and return site. 00049 * 00050 * @param - callSite: the call site state whose exit point/symbol pairs to obtain 00051 * @param - returnSite: the return site state whose exit point/symbol pairs to obtain 00052 * @return the set of exit point/symbol pairs associated with the given call site 00053 * and return site 00054 * 00055 */ 00056 extern const std::set<std::pair<State,Symbol> > getExits(Nwa const & nwa, State callSite, State returnSite ); 00057 00058 /** 00059 * 00060 * @brief returns the exit points of all return transitions in the NWA 00061 * 00062 * This method provides access to the exit points of all return transitions 00063 * in the NWA. 00064 * 00065 * @return the set of exit points of all return transitions in the NWA 00066 * 00067 */ 00068 extern const StateSet getExits(Nwa const & nwa ); 00069 00070 /** 00071 * 00072 * @brief returns the exit states associated with the given call site 00073 * and symbol 00074 * 00075 * This method provides access to the exit states associated with the 00076 * given call site and symbol. 00077 * 00078 * @param - callSite: the call site state whose exit states to obtain 00079 * @param - symbol: the symbol whose exit states to obtain 00080 * @return the set of exit states associated with the given call state 00081 * and symbol 00082 * 00083 */ 00084 extern const StateSet getExits_Call(Nwa const & nwa, State callSite, Symbol symbol ); 00085 00086 /** 00087 * 00088 * @brief returns the exit point/symbol pairs associated with the 00089 * given call site 00090 * 00091 * This method provides access to the exit point/symbol pairs associated 00092 * with the given call site. 00093 * 00094 * @param - callSite: the call site state whose exit point/symbol pairs 00095 * to obtain 00096 * @return the set of exit point/symbol pairs associated with the given 00097 * call site 00098 * 00099 */ 00100 extern const std::set<std::pair<State,Symbol> > getExits_Call(Nwa const & nwa, State callSite ); 00101 00102 /** 00103 * 00104 * @brief returns the exit states associated with the given symbol and 00105 * return site 00106 * 00107 * This method provides access to the exit states associated with the 00108 * given symbol and return site. 00109 * 00110 * @param - symbol: the symbol whose exit states to obtain 00111 * @param - returnSite: the return site state whose exit states to obtain 00112 * @return the set of exit states associated with the given symbol and 00113 * return site 00114 * 00115 */ 00116 extern const StateSet getExits_Ret(Nwa const & nwa, Symbol symbol, State returnSite ); 00117 00118 /** 00119 * 00120 * @brief returns the exit point/symbol pairs associated with the 00121 * given return site 00122 * 00123 * This method provides access to the exit point/symbol pairs associated 00124 * with the given return site. 00125 * 00126 * @param - returnSite: the return site state whose exit point/symbol 00127 * pairs to obtain 00128 * @return the set of exit point/symbol pairs associated with the given 00129 * return site 00130 * 00131 */ 00132 extern const std::set<std::pair<State,Symbol> > getExits_Ret(Nwa const & nwa, State returnSite ); 00133 00134 /** 00135 * 00136 * @brief returns the call site states associated with the given symbol 00137 * 00138 * This method provides access to the call site states associated with 00139 * the given symbol. 00140 * 00141 * @param - symbol: the symbol whose call site states to obtain 00142 * @return the set of call site states associated with the given symbol 00143 * 00144 */ 00145 extern const StateSet getCalls_Sym(Nwa const & nwa, Symbol symbol ); 00146 00147 /** 00148 * 00149 * @brief returns the call site states associated with the given exit 00150 * point, symbol, and return site 00151 * 00152 * This method provides access to the call site states associated with 00153 * the given exit point, symbol, and return site. 00154 * 00155 * @param - exitPoint: the exit point whose call site states to obtain 00156 * @param - symbol: the symbol whose call site states to obtain 00157 * @param - returnSite: the return site whose call site states to obtain 00158 * @return the set of call site states assocaited with the given exit 00159 * point, symbol, and return site 00160 * 00161 */ 00162 extern const StateSet getCalls(Nwa const & nwa, State exitPoint, Symbol symbol, State returnSite ); 00163 00164 /** 00165 * 00166 * @brief returns the call site/symbol pairs associated with the given exit 00167 * point and return site states 00168 * 00169 * This method provides access to the call site/symbol pairs associated with 00170 * the given exit point and return site states. 00171 * 00172 * @param - exitPoint: the exit point whose call site/symbol pairs to obtain 00173 * @param - returnSite: the return site whose call site/symbol pairs to obtain 00174 * @return the set of call site/symbol pairs associated with the given exit 00175 * point and return site states 00176 * 00177 */ 00178 extern const std::set<std::pair<State,Symbol> > getCalls(Nwa const & nwa, State exitPoint, State returnSite ); 00179 00180 /** 00181 * 00182 * @brief returns the call sites of all return transitions in the NWA 00183 * 00184 * This method provides access to the call sites of all return transitions 00185 * in the NWA. 00186 * 00187 * @return the set of call sites of all return transitions in the NWA 00188 * 00189 */ 00190 extern const StateSet getCalls(Nwa const & nwa ); 00191 00192 /** 00193 * 00194 * @brief returns the call site states associated with the given exit point 00195 * and symbol 00196 * 00197 * This method provides access to the call site states associated with the 00198 * given exit point and symbol. 00199 * 00200 * @param - exitPoint: the exit point whose call site states to obtain 00201 * @param - symbol: the symbol whose call site states to obtain 00202 * @return the set of all call sites associated with the given exit point 00203 * and symbol 00204 * 00205 */ 00206 extern const StateSet getCalls_Exit(Nwa const & nwa, State exitPoint, Symbol symbol ); 00207 00208 /** 00209 * 00210 * @brief returns the call site/symbol pairs associated with the given 00211 * exit point 00212 * 00213 * This method provides access to the call site/symbol pairs associated 00214 * with the given exit point. 00215 * 00216 * @param - exitPoint: the exit point whose call site/symbol pairs to obtain 00217 * @return the set of call site/symbol pairs associated with the given 00218 * exit point 00219 * 00220 */ 00221 extern const std::set<std::pair<State,Symbol> > getCalls_Exit(Nwa const & nwa, State exitPoint ); 00222 00223 /** 00224 * 00225 * @brief returns the call site states associated with the given symbol 00226 * and return site 00227 * 00228 * This method provides access to the call site states associated with 00229 * the given symbol and return site. 00230 * 00231 * @param - symbol: the symbol whose call site states to obtain 00232 * @param - returnSite: the return site whose call site states to obtain 00233 * @return the set of call site states associated with the given symbol 00234 * and return site 00235 * 00236 */ 00237 extern const StateSet getCalls_Ret(Nwa const & nwa, Symbol symbol, State returnSite ); 00238 00239 /** 00240 * 00241 * @brief returns the call site/symbol pairs associated with the given 00242 * return site 00243 * 00244 * This method provides access to the call site/symbol pairs associated 00245 * with the given return site. 00246 * 00247 * @param - returnSite: the return site whose call site/symbol pairs to 00248 * obtain 00249 * @return the set of all call site/symbol pairs associated with the 00250 * given return site 00251 * 00252 */ 00253 extern const std::set<std::pair<State,Symbol> > getCalls_Ret(Nwa const & nwa, State returnSite ); 00254 00255 /** 00256 * 00257 * @brief returns the symbols that label return transitions in the NWA 00258 * 00259 * This method provides access to the symbols that label return transitions 00260 * in the NWA. 00261 * 00262 * @return the set of symbols that label return transitions in the NWA 00263 * 00264 */ 00265 extern const SymbolSet getReturnSym(Nwa const & nwa ); 00266 00267 /** 00268 * 00269 * @brief returns the symbols that label return transitions from 'exitPoint' 00270 * to 'returnSite' with call-predecessor 'callSite' in the NWA 00271 * 00272 * This method provides access to the symbols that label return transitions 00273 * from 'exitPoint' to 'returnSite' with call-predecessor 'callSite' in the NWA. 00274 * 00275 * @param - exitPoint: the exit point of the desired transition 00276 * @param - callSite: the call site of the desired transition 00277 * @param - returnSite: the return site of the desired transition 00278 * @return the set of symbols that label return transitions from 'exitPoint' 00279 * to 'returnSite' with call-predecessor 'callSite' in the NWA 00280 * 00281 */ 00282 extern const SymbolSet getReturnSym(Nwa const & nwa, State exitPoint, State callSite, State returnSite ); 00283 00284 /** 00285 * 00286 * @brief returns the symbols that label return transitions from 'exitPoint' 00287 * n the NWA 00288 * 00289 * This method provides access to the symbols that label return transitions 00290 * from 'exitPoint' in the NWA. 00291 * 00292 * @param - exitPoint: the exit point of the desired transition 00293 * @return the set of symbols that label return transitions from 'exitPoint' 00294 * in the NWA 00295 * 00296 */ 00297 extern const SymbolSet getReturnSym_Exit(Nwa const & nwa, State exitPoint ); 00298 00299 /** 00300 * 00301 * @brief returns the symbols that label return transitions 00302 * with call-predecessor 'callSite' in the NWA 00303 * 00304 * This method provides access to the symbols that label return transitions 00305 * with call-predecessor 'callSite' in the NWA. 00306 * 00307 * @param - callSite: the call site of the desired transition 00308 * @return the set of symbols that label return transitions 00309 * with call-predecessor 'callSite' in the NWA 00310 * 00311 */ 00312 extern const SymbolSet getReturnSym_Call(Nwa const & nwa, State callSite ); 00313 00314 /** 00315 * 00316 * @brief returns the symbols that label return transitions 00317 * to 'returnSite' in the NWA 00318 * 00319 * This method provides access to the symbols that label return transitions 00320 * to 'returnSite' in the NWA. 00321 * 00322 * @param - returnSite: the return site of the desired transition 00323 * @return the set of symbols that label return transitions 00324 * to 'returnSite' in the NWA 00325 * 00326 */ 00327 extern const SymbolSet getReturnSym_Ret(Nwa const & nwa, State returnSite ); 00328 00329 /** 00330 * 00331 * @brief returns the symbols that label return transitions from 'exitPoint' 00332 * with call-predecessor 'callSite' in the NWA 00333 * 00334 * This method provides access to the symbols that label return transitions 00335 * from 'exitPoint' with call-predecessor 'callSite' in the NWA. 00336 * 00337 * @param - exitPoint: the exit point of the desired transition 00338 * @param - callSite: the call site of the desired transition 00339 * @return the set of symbols that label return transitions from 'exitPoint' 00340 * with call-predecessor 'callSite' in the NWA 00341 * 00342 */ 00343 extern const SymbolSet getReturnSym_ExitCall(Nwa const & nwa, State exitPoint, State callSite ); 00344 00345 /** 00346 * 00347 * @brief returns the symbols that label return transitions from 'exitPoint' 00348 * to 'returnSite' in the NWA 00349 * 00350 * This method provides access to the symbols that label return transitions 00351 * from 'exitPoint' to 'returnSite' in the NWA. 00352 * 00353 * @param - exitPoint: the exit point of the desired transition 00354 * @param - returnSite: the return site of the desired transition 00355 * @return the set of symbols that label return transitions from 'exitPoint' 00356 * to 'returnSite' in the NWA 00357 * 00358 */ 00359 extern const SymbolSet getReturnSym_ExitRet(Nwa const & nwa, State exitPoint, State returnSite ); 00360 00361 /** 00362 * 00363 * @brief returns the symbols that label return transitions 00364 * to 'returnSite' with call-predecessor 'callSite' in the NWA 00365 * 00366 * This method provides access to the symbols that label return transitions 00367 * to 'returnSite' with call-predecessor 'callSite' in the NWA. 00368 * 00369 * @param - callSite: the call site of the desired transition 00370 * @param - returnSite: the return site of the desired transition 00371 * @return the set of symbols that label return transitions 00372 * to 'returnSite' with call-predecessor 'callSite' in the NWA 00373 * 00374 */ 00375 extern const SymbolSet getReturnSym_CallRet(Nwa const & nwa, State callSite, State returnSite ); 00376 00377 00378 /** 00379 * 00380 * @brief returns the return site states associated with the given symbol 00381 * 00382 * This method provides access to the return site states associated with 00383 * the given symbol. 00384 * 00385 * @param - symbol: the symbol whose reutrn site states to obtain 00386 * @return the set of return site states associated with the given symbol 00387 * 00388 */ 00389 extern const StateSet getReturns_Sym(Nwa const & nwa, Symbol symbol ); 00390 00391 /** 00392 * 00393 * @brief returns the return site states associated with the given exit 00394 * point, call site, and symbol 00395 * 00396 * This method provides access to the return site states associated with 00397 * the given exit point, call site, and symbol. 00398 * 00399 * @param - exitPoint: the exit point whose return site states to obtain 00400 * @param - callSite: the call site whose return site states to obtain 00401 * @param - symbol: the symbol whose return site states to obtain 00402 * @return the set of return site states associated with the given exit 00403 * point, call site, and symbol 00404 * 00405 */ 00406 extern const StateSet getReturns(Nwa const & nwa, State exitPoint, State callSite, Symbol symbol ); 00407 00408 /** 00409 * 00410 * @brief returns the symbol/return site pairs associated with the given exit 00411 * point and call site 00412 * 00413 * This method provides access to the symbol/return site pairs associated with 00414 * the given exit point and call site. 00415 * 00416 * @param - exit: the exit point whose symbol/return site pairs to obtain 00417 * @param - callSite: the call site whose symbol/return site pairs to obtain 00418 * @return the set of symbol/return site pairs associated with the given exit 00419 * point and call site 00420 * 00421 */ 00422 extern const std::set<std::pair<Symbol,State> > getReturns(Nwa const & nwa, State exitPoint, State callSite ); 00423 00424 /** 00425 * 00426 * @brief returns the return sites of all return transitions in the NWA 00427 * 00428 * This method provides access to the return sites of all return transitions 00429 * in the NWA. 00430 * 00431 * @return the set of return sites of all return transitions in the NWA 00432 * 00433 */ 00434 extern const StateSet getReturns(Nwa const & nwa ); 00435 00436 /** 00437 * 00438 * @brief returns the return site states associated with the given exit 00439 * point and symbol 00440 * 00441 * This method provides access to the return site states associated with 00442 * the given exit point and symbol. 00443 * 00444 * @param - exitPoint: the exit point whose return site states to obtain 00445 * @param - symbol: the symbol whose return site states to obtain 00446 * @return the set of return site states associated with the given exit 00447 * point and symbol 00448 * 00449 */ 00450 extern const StateSet getReturns_Exit(Nwa const & nwa, State exitPoint, Symbol symbol ); 00451 00452 /** 00453 * 00454 * @brief returns the symbol/return site pairs associated with the given 00455 * exit point 00456 * 00457 * This method provides access to the symbol/return site pairs associated 00458 * with the given exit point. 00459 * 00460 * @param - exitPoint: the exit point whose symbol/return site pairs to obtain 00461 * @return the set of symbol/return site pairs associated with the given 00462 * exit point 00463 * 00464 */ 00465 extern const std::set<std::pair<Symbol,State> > getReturns_Exit(Nwa const & nwa, State exitPoint ); 00466 00467 /** 00468 * 00469 * @brief returns the return site states associated with the given call 00470 * site and symbol 00471 * 00472 * This method provides access to the return site states associated with 00473 * the given call site and symbol. 00474 * 00475 * @param - callSite: the call site whose return site states to obtain 00476 * @param - symbol: the symbol whose return site states to obtain 00477 * @return the set of return site states associated with the given call 00478 * site and symbol 00479 * 00480 */ 00481 extern const StateSet getReturns_Call(Nwa const & nwa, State callSite, Symbol symbol ); 00482 00483 /** 00484 * 00485 * @brief returns the symbol/return site pairs associated with the given 00486 * call site 00487 * 00488 * This method provides access to the symbol/return site pairs associated 00489 * with the given call site. 00490 * 00491 * @param - callSite: the call site whose symbol/return site pairs to obtain 00492 * @return the set of symbol/return site pairs associated with the given 00493 * call site 00494 * 00495 */ 00496 extern const std::set<std::pair<Symbol,State> > getReturns_Call(Nwa const & nwa, State callSite ); 00497 00498 /** 00499 * 00500 * @brief returns the return sites associated with the given call site 00501 * 00502 * This method provides access to the return sites associated with the given 00503 * call site. 00504 * 00505 * @param - callSite: the call site whose return sites to obtain 00506 * @return the set of return sites associated with the given call site 00507 * 00508 */ 00509 extern const StateSet getReturnSites(Nwa const & nwa, State callSite ); 00510 00511 } 00512 } 00513 00514 00515 // Yo, Emacs! 00516 // Local Variables: 00517 // c-file-style: "ellemtel" 00518 // c-basic-offset: 2 00519 // End: 00520 00521 #endif 00522