22 #include <spot/misc/hash.hh>
23 #include <spot/ta/ta.hh>
Abstract class for states.
Definition: twa.hh:51
An implementation of spot::ta_reachable_iterator that browses states breadth first.
Definition: reachiter.hh:115
virtual const state * next_state() override
Called by run() to obtain the next state to process.
virtual void add_state(const state *s) override
Called by run() to obtain the next state to process.
std::deque< const state * > todo
A queue of states yet to explore.
Definition: reachiter.hh:123
An implementation of spot::ta_reachable_iterator that browses states depth first.
Definition: reachiter.hh:99
virtual void add_state(const state *s) override
Called by run() to obtain the next state to process.
std::stack< const state * > todo
A stack of states yet to explore.
Definition: reachiter.hh:107
virtual const state * next_state() override
Called by run() to obtain the next state to process.
Iterate over all reachable states of a spot::ta.
Definition: reachiter.hh:32
void run()
Iterate over all reachable states of a spot::ta.
virtual void add_state(const state *s)=0
Called by run() to obtain the next state to process.
virtual bool want_state(const state *s) const
const_ta_ptr t_automata_
The spot::ta to explore.
Definition: reachiter.hh:89
state_map< int > seen
States already seen.
Definition: reachiter.hh:91
virtual void process_state(const state *s, int n)
virtual const state * next_state()=0
Called by run() to obtain the next state to process.
virtual void process_link(int in, int out, const ta_succ_iterator *si)
virtual void start()
Called by run() before starting its iteration.
virtual void end()
Called by run() once all states have been explored.
Iterate over the successors of a state.
Definition: ta.hh:198
Definition: automata.hh:27
std::unordered_map< const state *, val, state_ptr_hash, state_ptr_equal > state_map
Unordered map of abstract states.
Definition: twa.hh:197