00001 #ifndef wali_nwa_query_INTERNALS_HPP 00002 #define wali_nwa_query_INTERNALS_HPP 00003 00004 #include "opennwa/NwaFwd.hpp" 00005 00006 00007 namespace opennwa 00008 { 00009 namespace query 00010 { 00011 00012 //Internal Transitions 00013 00014 /** 00015 * 00016 * @brief returns the source states associated with the given symbol 00017 * 00018 * This method provides access to the source states associated with the 00019 * given symbol. 00020 * 00021 * @param - symbol: the symbol whose source states to obtain 00022 * @return the set of source states associated with the given symbol 00023 * 00024 */ 00025 extern const StateSet getSources_Sym(Nwa const & nwa, Symbol symbol ); 00026 00027 /** 00028 * 00029 * @brief returns the source states associated with the given symbol 00030 * and target state 00031 * 00032 * This method provides access to the source states associated with 00033 * the given symbol and target state. 00034 * 00035 * @param - symbol: the symbol whose source states to obtain 00036 * @param - target: the target state whose source states to obtain 00037 * @return the set of source states assoicated with the given 00038 * symbol and target state 00039 * 00040 */ 00041 extern const StateSet getSources(Nwa const & nwa, Symbol symbol, State target ); 00042 00043 /** 00044 * 00045 * @brief returns the source/symbol pairs associated with the 00046 * given target state 00047 * 00048 * This method provides access to the source/symbol pairs associated 00049 * with the given target state. 00050 * 00051 * @param - target: the target state whose source/symbol pairs to 00052 * obtain 00053 * @return the set of source/symbol pairs associated with the given 00054 * target state 00055 * 00056 */ 00057 extern const std::set<std::pair<State,Symbol> > getSources(Nwa const & nwa, State target ); 00058 00059 /** 00060 * 00061 * @brief returns the sources of all internal transitions in the NWA 00062 * 00063 * This method provides access to the sources of all internal transitions 00064 * in the NWA. 00065 * 00066 * @return the set of sources of all internal transitions in the NWA 00067 * 00068 */ 00069 extern const StateSet getSources(Nwa const & nwa ); 00070 00071 /** 00072 * 00073 * @brief returns the symbols that label internal transitions in the NWA 00074 * 00075 * This method provides access to the symbols that label internal transitions 00076 * in the NWA. 00077 * 00078 * @return the set of symbols that label internal transitions in the NWA 00079 * 00080 */ 00081 extern const SymbolSet getInternalSym(Nwa const & nwa ); 00082 00083 /** 00084 * 00085 * @brief returns the symbols that label internal transitions from 'source' 00086 * to 'target' in the NWA 00087 * 00088 * This method provides access to the symbols that label internal transitions 00089 * from 'source' to 'target' in the NWA. 00090 * 00091 * @param - source: the source of the desired transitions 00092 * @param - target: the target of the desired transitions 00093 * @return the set of symbols that label internal transitions from 'source' 00094 * to 'target' in the NWA 00095 * 00096 */ 00097 extern const SymbolSet getInternalSym(Nwa const & nwa, State source, State target ); 00098 00099 /** 00100 * 00101 * @brief returns the symbols that label internal transitions from 'source' 00102 * in the NWA 00103 * 00104 * This method provides access to the symbols that label internal transitions 00105 * from 'source' in the NWA. 00106 * 00107 * @param - source: the source of the desired transitions 00108 * @return the set of symbols that label internal transitions from 'source' 00109 * in the NWA 00110 * 00111 */ 00112 extern const SymbolSet getInternalSym_Source(Nwa const & nwa, State source ); 00113 00114 /** 00115 * 00116 * @brief returns the symbols that label internal transitions 00117 * to 'target' in the NWA 00118 * 00119 * This method provides access to the symbols that label internal 00120 * transitions to 'target' in the NWA. 00121 * 00122 * @param - target: the target of the desired transitions 00123 * @return the set of symbols that label internal transitions 00124 * to 'target' in the NWA 00125 * 00126 */ 00127 extern const SymbolSet getInternalSym_Target(Nwa const & nwa, State target ); 00128 00129 /** 00130 * 00131 * @brief returns the target states associated with the given symbol 00132 * 00133 * This method provides access to the target states associated with 00134 * the given symbol. 00135 * 00136 * @param - symbol: the symbol whose target states to obtain 00137 * @return the set of target states associated with the given symbol 00138 * 00139 */ 00140 extern const StateSet getTargets_Sym(Nwa const & nwa, Symbol symbol ); 00141 00142 /** 00143 * 00144 * @brief returns the target states associated with the given source 00145 * state and symbol 00146 * 00147 * This method provides access to the target states associated with 00148 * the given source state and symbol. 00149 * 00150 * @param - source: the source state whose target states to obtain 00151 * @param - symbol: the symbol whose target states to obtain 00152 * @return the set of target states associated with the given source 00153 * state and symbol 00154 * 00155 */ 00156 extern const StateSet getTargets(Nwa const & nwa, State source, Symbol symbol ); 00157 00158 /** 00159 * 00160 * @brief returns the symbol/target pairs associated with the given source 00161 * 00162 * This method provides access to the symbol/target pairs associated with the given 00163 * source. 00164 * 00165 * @param - source: the source whose symbol/target pairs to obtain 00166 * @return the set of symbol/target pairs associated with the given source 00167 * 00168 */ 00169 extern const std::set<std::pair<Symbol,State> > getTargets(Nwa const & nwa, State source ); 00170 00171 /** 00172 * 00173 * @brief returns the targets of all internal transitions in the NWA 00174 * 00175 * This method provides access to the targets of all internal transitions 00176 * in the NWA. 00177 * 00178 * @return the set of targets of all internal transitions in the NWA 00179 * 00180 */ 00181 extern const StateSet getTargets(Nwa const & nwa); 00182 00183 } 00184 } 00185 00186 00187 // Yo, Emacs! 00188 // Local Variables: 00189 // c-file-style: "ellemtel" 00190 // c-basic-offset: 2 00191 // End: 00192 00193 #endif 00194