21#include <spot/misc/hash.hh>
22#include <spot/ta/ta.hh>
30 class SPOT_API ta_reachable_iterator
33 ta_reachable_iterator(
const const_ta_ptr& a);
35 ~ta_reachable_iterator();
96 class SPOT_API ta_reachable_iterator_depth_first
97 :
public ta_reachable_iterator
100 ta_reachable_iterator_depth_first(
const const_ta_ptr& a);
112 class SPOT_API ta_reachable_iterator_breadth_first
113 :
public ta_reachable_iterator
116 ta_reachable_iterator_breadth_first(
const const_ta_ptr& a);
Abstract class for states.
Definition twa.hh:47
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.
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
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:192