Commit 88514330 authored by Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz
Browse files

* src/tgba/tgba.hh: Rename as ...

* src/tgba/public.hh: .. this.
* src/tgba/tgba.hh: New file.
* src/tgba/Makefile.am (libtgba_la_SOURCES): Add public.hh.
* src/tgba/tgbabddconcrete.hh (tgba_bdd_concrete): Inherit from tgba.
(tgba_bdd_concrete::init_iter): Delete.
(tgba_bdd_concrete::succ_iter): Take a state_bdd as argument,
not a bdd.
* src/tgba/tgbabddconcrete.cc: Likewise.
parent c0393414
2003-05-26 Alexandre Duret-Lutz <aduret@src.lip6.fr>
* src/tgba/tgba.hh: Rename as ...
* src/tgba/public.hh: .. this.
* src/tgba/tgba.hh: New file.
* src/tgba/Makefile.am (libtgba_la_SOURCES): Add public.hh.
* src/tgba/tgbabddconcrete.hh (tgba_bdd_concrete): Inherit from tgba.
(tgba_bdd_concrete::init_iter): Delete.
(tgba_bdd_concrete::succ_iter): Take a state_bdd as argument,
not a bdd.
* src/tgba/tgbabddconcrete.cc: Likewise.
Initial code for TGBA (Transition Generalized Bchi Automata).
Contains tgba_bdd, a BDD-encoded TGBA, and ltl_to_tgba,
a LTL-to-TGBA translator using Couvreur's algorithm.
......
......@@ -9,6 +9,7 @@ libtgba_la_SOURCES = \
dictunion.hh \
ltl2tgba.cc \
ltl2tgba.hh \
public.hh \
state.hh \
statebdd.cc \
statebdd.hh \
......
#ifndef SPOT_TGBA_PUBLIC_HH
# define SPOT_TGBA_PUBLIC_HH
# include "tgba.hh"
# include "tgbabddconcrete.hh"
# include "tgbabddconcreteproduct.hh"
# include "ltl2tgba.hh"
#endif // SPOT_TGBA_PUBLIC_HH
#ifndef SPOT_TGBA_TGBA_HH
# define SPOT_TGBA_TGBA_HH
# include "tgbabddconcrete.hh"
# include "tgbabddconcreteproduct.hh"
# include "ltl2tgba.hh"
#include "statebdd.hh"
#include "succiter.hh"
#include "tgbabdddict.hh"
namespace spot
{
class tgba
{
public:
virtual
~tgba()
{
}
virtual state_bdd get_init_state() const = 0;
virtual tgba_succ_iterator* succ_iter(state_bdd state) const = 0;
virtual const tgba_bdd_dict& get_dict() const = 0;
};
}
#endif // SPOT_TGBA_TGBA_HH
......@@ -29,20 +29,14 @@ namespace spot
}
tgba_succ_iterator_concrete*
tgba_bdd_concrete::succ_iter(bdd state) const
tgba_bdd_concrete::succ_iter(state_bdd state) const
{
bdd succ_set = bdd_replace(bdd_exist(data_.relation & state,
bdd succ_set = bdd_replace(bdd_exist(data_.relation & state.as_bdd(),
data_.now_set),
data_.next_to_now);
return new tgba_succ_iterator_concrete(data_, succ_set);
}
tgba_succ_iterator_concrete*
tgba_bdd_concrete::init_iter() const
{
return new tgba_succ_iterator_concrete(data_, init_);
}
const tgba_bdd_dict&
tgba_bdd_concrete::get_dict() const
{
......
#ifndef SPOT_TGBA_TGBABDDCONCRETE_HH
# define SPOT_TGBA_TGBABDDCONCRETE_HH
#include "tgba.hh"
#include "statebdd.hh"
#include "tgbabddfactory.hh"
#include "succiterconcrete.hh"
namespace spot
{
class tgba_bdd_concrete
class tgba_bdd_concrete: public tgba
{
public:
tgba_bdd_concrete(const tgba_bdd_factory& fact);
tgba_bdd_concrete(const tgba_bdd_factory& fact, bdd init);
~tgba_bdd_concrete();
void set_init_state(bdd s);
state_bdd get_init_state() const;
tgba_succ_iterator_concrete* succ_iter(bdd state) const;
tgba_succ_iterator_concrete* init_iter() const;
tgba_succ_iterator_concrete* succ_iter(state_bdd state) const;
const tgba_bdd_dict& get_dict() const;
const tgba_bdd_core_data& get_core_data() const;
protected:
tgba_bdd_core_data data_;
tgba_bdd_dict dict_;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment