* src/tgba/succiter.hh (tgba_succ_iterator::current_state):

Return a state*, not a state_bdd.
* src/tgba/succiterconcrete.hh
(tgba_succ_iterator_concrete::current_state): Return a state_bdd*,
not a state_bdd.
* src/tgba/state.hh (state::as_bdd): New abstract method.
* src/tgba/statebdd.hh (state_bdd::as_bdd): Move definitions ...
* src/tgba/statebdd.cc (state_bdd::as_bdd): ... here.
* src/tgba/tgba.hh: Add Doxygen comments.
(tgba::succ_iter, tgba::get_init_state): Use state*, not state_bdd.
* src/tgba/tgbabddconcrete.hh (tgba_bdd_concrete::get_init_state):
Return a state_bdd*, not a state_bdd.
(tgba_bdd_concrete::get_init_bdd): New method.
(tgba_bdd_concrete::succ_uter): Take a state* as argument.
* src/tgba/tgbabddconcrete.cc: Likewise.
* src/tgba/tgbabddtranslatefactory.cc
(tgba_bdd_translate_factory::tgba_bdd_translate_factory): Use
tgba_bdd_concrete::get_init_bdd.
* src/tgbaalgos/dotty.cc (dotty_state, dotty_rec, dotty): Adjust
to use state* instead of state_bdd.
* src/tgba/succlist.hh: Delete.  (Leftover from a previous
draft.)
This commit is contained in:
Alexandre Duret-Lutz 2003-05-27 10:40:16 +00:00
parent d7e49255d3
commit 3f0e95f061
13 changed files with 139 additions and 64 deletions

View file

@ -8,11 +8,11 @@ namespace spot
current_(bddfalse)
{
}
tgba_succ_iterator_concrete::~tgba_succ_iterator_concrete()
{
}
void
tgba_succ_iterator_concrete::first()
{
@ -20,12 +20,12 @@ namespace spot
if (!done())
next();
}
void
tgba_succ_iterator_concrete::next()
{
assert(!done());
// FIXME: Iterating on the successors this way (calling bdd_satone
// and NANDing out the result from the set) requires several descent
// of the BDD. Maybe it would be faster to compute all satisfying
@ -33,27 +33,27 @@ namespace spot
next_succ_set_ &= !current_;
current_ = bdd_satone(next_succ_set_);
}
bool
tgba_succ_iterator_concrete::done()
{
return next_succ_set_ == bddfalse;
}
state_bdd
state_bdd*
tgba_succ_iterator_concrete::current_state()
{
assert(!done());
return bdd_exist(current_, data_.notnow_set);
return new state_bdd(bdd_exist(current_, data_.notnow_set));
}
bdd
tgba_succ_iterator_concrete::current_condition()
{
assert(!done());
return bdd_exist(current_, data_.notvar_set);
}
bdd
tgba_succ_iterator_concrete::current_promise()
{