spot
1.99.4a
|
Iterate over all states of an automaton using a DFS. More...
#include <twaalgos/reachiter.hh>
Classes | |
struct | stack_item |
Public Member Functions | |
tgba_reachable_iterator_depth_first (const const_twa_ptr &a) | |
virtual void | run () |
Iterate over all reachable states of a spot::tgba. More... | |
virtual bool | want_state (const state *s) const |
virtual void | start () |
Called by run() before starting its iteration. More... | |
virtual void | end () |
Called by run() once all states have been explored. More... | |
virtual void | process_state (const state *s, int n, twa_succ_iterator *si) |
virtual bool | will_pop_state (const state *s, int n, twa_succ_iterator *si) |
virtual void | process_link (const state *in_s, int in, const state *out_s, int out, const twa_succ_iterator *si) |
Protected Types | |
typedef std::unordered_map< const state *, int, state_ptr_hash, state_ptr_equal > | seen_map |
Protected Member Functions | |
virtual void | push (const state *s, int sn) |
Push a new state in todo. More... | |
virtual void | pop () |
Pop the DFS stack. More... | |
Protected Attributes | |
const_twa_ptr | aut_ |
The spot::tgba to explore. More... | |
seen_map | seen |
States already seen. More... | |
std::deque< stack_item > | todo |
the DFS stack More... | |
Iterate over all states of an automaton using a DFS.
|
virtual |
Called by run() once all states have been explored.
Reimplemented in spot::stats_dfs.
|
protectedvirtual |
Pop the DFS stack.
Reimplemented in spot::tgba_reachable_iterator_depth_first_stack.
|
virtual |
Called by run() to process a transition.
in_s | The source state |
in | The source state number. |
out_s | The destination state |
out | The destination state number. |
si | The spot::twa_succ_iterator positionned on the current transition. |
The in_s and out_s states are owned by the spot::tgba_reachable_iterator instance and destroyed when the instance is destroyed.
Reimplemented in spot::stats_dfs.
|
virtual |
Called by run() to process a state.
s | The current state. |
n | A unique number assigned to s. |
si | The spot::twa_succ_iterator for s. |
Reimplemented in spot::stats_dfs.
|
protectedvirtual |
Push a new state in todo.
Reimplemented in spot::tgba_reachable_iterator_depth_first_stack.
|
virtual |
Iterate over all reachable states of a spot::tgba.
This is a template method that will call start(), end(), want_state(), process_state(), and process_link(), while it iterates over states.
|
virtual |
Called by run() before starting its iteration.
Reimplemented in spot::stats_dfs.
|
virtual |
Called by add_state or next_states implementations to filter states. Default implementation always return true.
|
virtual |
Called by run() to process a state before it is popped. It this method return true the state will be popped, otherwise the state will not be popped. In this case the iterator must be set to a valid position (other than end()). So if this method return false, the iterator must be change. Typically this happen during model checking with partial order reductions.
s | The current state. |
n | A unique number assigned to s. |
si | The spot::tgba_succ_iterator for s. |
Reimplemented in spot::stats_dfs.
|
protected |
The spot::tgba to explore.
|
protected |
States already seen.
|
protected |
the DFS stack