Iterate over the successors of a saba_state.This class provides the basic functionalities required to iterate over the successors of a state of a saba. Since transitions of an alternating automaton are defined as a boolean function with conjunctions (universal) and disjunctions (non-deterministic),.
More...
#include <saba/sabasucciter.hh>
Public Member Functions |
virtual | ~saba_succ_iterator () |
|
virtual void | first ()=0 |
| Position the iterator on the first conjunction of successors (if any).
|
virtual void | next ()=0 |
| Jump to the next conjunction of successors (if any).
|
virtual bool | done () const =0 |
| Check whether the iteration is finished.
|
|
virtual saba_state_conjunction * | current_conjunction () const =0 |
| Get current conjunction of successor states.
|
virtual bdd | current_condition () const =0 |
| Get the condition on the transition leading to this successor.
|
Detailed Description
Iterate over the successors of a saba_state.
This class provides the basic functionalities required to iterate over the successors of a state of a saba. Since transitions of an alternating automaton are defined as a boolean function with conjunctions (universal) and disjunctions (non-deterministic),.
Constructor & Destructor Documentation
virtual spot::saba_succ_iterator::~saba_succ_iterator |
( |
| ) |
|
|
inlinevirtual |
Member Function Documentation
virtual bdd spot::saba_succ_iterator::current_condition |
( |
| ) |
const |
|
pure virtual |
Get the condition on the transition leading to this successor.
This is a boolean function of atomic propositions.
Get current conjunction of successor states.
virtual bool spot::saba_succ_iterator::done |
( |
| ) |
const |
|
pure virtual |
Check whether the iteration is finished.
This function should be called after any call to \c first()
or \c next() and before any enquiry about the current state.
The usual way to do this is with a \c for loop.
@code
for (s->first(); !s->done(); s->next()) ...
virtual void spot::saba_succ_iterator::first |
( |
| ) |
|
|
pure virtual |
Position the iterator on the first conjunction of successors (if any).
This method can be called several times to make multiple passes over successors.
- Warning
- One should always call
done()
to ensure there is a successor, even after first()
. A common trap is to assume that there is at least one successor: this is wrong.
virtual void spot::saba_succ_iterator::next |
( |
| ) |
|
|
pure virtual |
Jump to the next conjunction of successors (if any).
- Warning
- Again, one should always call
done()
to ensure there is a successor.
The documentation for this class was generated from the following file: