21#include <spot/misc/hash.hh>
22#include <spot/ta/ta.hh>
Abstract class for states.
Definition: twa.hh:47
An implementation of spot::ta_reachable_iterator that browses states breadth first.
Definition: reachiter.hh:114
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:122
virtual const state * next_state() override
Called by run() to obtain the next state to process.
An implementation of spot::ta_reachable_iterator that browses states depth first.
Definition: reachiter.hh:98
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::stack< const state * > todo
A stack of states yet to explore.
Definition: reachiter.hh:106
Iterate over all reachable states of a spot::ta.
Definition: reachiter.hh:31
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:88
virtual const state * next_state()=0
Called by run() to obtain the next state to process.
state_map< int > seen
States already seen.
Definition: reachiter.hh:90
virtual void process_state(const state *s, int n)
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:197
Definition: automata.hh:26
std::unordered_map< const state *, val, state_ptr_hash, state_ptr_equal > state_map
Unordered map of abstract states.
Definition: twa.hh:193