20 #ifndef SPOT_TA_TAEXPLICIT_HH
21 # define SPOT_TA_TAEXPLICIT_HH
23 #include "misc/hash.hh"
25 #include "tgba/tgba.hh"
29 #include "misc/bddlt.hh"
35 class state_ta_explicit;
36 class ta_explicit_succ_iterator;
46 bool own_tgba =
false);
55 add_to_initial_states_set(
state* s, bdd condition = bddfalse);
60 bool add_at_beginning =
false);
63 delete_stuttering_transitions();
67 virtual const states_set_t
68 get_initial_states_set()
const;
74 succ_iter(
const spot::state* s, bdd condition)
const;
86 is_livelock_accepting_state(
const spot::state* s)
const;
106 artificial_initial_state_ = s;
111 delete_stuttering_and_hole_successors(
spot::state* s);
130 return all_acceptance_conditions_;
140 bdd all_acceptance_conditions_;
142 ta::states_set_t states_set_;
143 ta::states_set_t initial_states_set_;
158 bdd acceptance_conditions;
162 typedef std::list<transition*> transitions;
165 bool is_initial_state =
false,
bool is_accepting_state =
false,
166 bool is_livelock_accepting_state =
false, transitions* trans = 0) :
167 tgba_state_(tgba_state), tgba_condition_(tgba_condition),
168 is_initial_state_(is_initial_state), is_accepting_state_(
169 is_accepting_state), is_livelock_accepting_state_(
170 is_livelock_accepting_state), transitions_(trans)
192 get_transitions()
const;
196 get_transitions(bdd condition)
const;
199 add_transition(transition* t,
bool add_at_beginning =
false);
202 get_tgba_state()
const;
204 get_tgba_condition()
const;
206 is_accepting_state()
const;
208 set_accepting_state(
bool is_accepting_state);
210 is_livelock_accepting_state()
const;
212 set_livelock_accepting_state(
bool is_livelock_accepting_state);
215 is_initial_state()
const;
217 set_initial_state(
bool is_initial_state);
221 is_hole_state()
const;
226 delete_stuttering_and_hole_successors();
231 state_ta_explicit* stuttering_reachable_livelock;
233 const state* tgba_state_;
234 const bdd tgba_condition_;
235 bool is_initial_state_;
236 bool is_accepting_state_;
237 bool is_livelock_accepting_state_;
238 transitions* transitions_;
239 Sgi::hash_map<int, transitions*, Sgi::hash<int> > transitions_by_condition;
259 current_state()
const;
261 current_condition()
const;
264 current_acceptance_conditions()
const;
267 state_ta_explicit::transitions* transitions_;
268 state_ta_explicit::transitions::const_iterator i_;
273 #endif // SPOT_TA_TAEXPLICIT_HH