Introduce taa_tgba_labelled<label> so that we can build

taa_tgba instances labelled by other objects than strings
in the same way Alexandre did for tgba_explicit.

* src/tgba/taatgba.cc, src/tgba/taatgba.hh: Split taa_tgba in two
levels: taa_tgba with no label and taa_tgba_labelled templated by
the type of the label.  Define taa_tgba_string (with the interface
of the former taa_tgba class) and taa_tgba_formula for future use
in ltl2taa.cc.
* src/tgbaalgos/ltl2taa.cc, src/tgbatest/taatgba.cc: Adjust to use
taa_tgba_string.
This commit is contained in:
Damien Lefortier 2010-01-16 11:48:21 +01:00
parent 88df8c0a1d
commit 7c20d8ae5d
5 changed files with 244 additions and 202 deletions

View file

@ -39,7 +39,7 @@ namespace spot
class ltl2taa_visitor : public const_visitor
{
public:
ltl2taa_visitor(taa_tgba* res, language_containment_checker* lcc,
ltl2taa_visitor(taa_tgba_string* res, language_containment_checker* lcc,
bool refined = false, bool negated = false)
: res_(res), refined_(refined), negated_(negated),
lcc_(lcc), init_(), succ_(), to_free_()
@ -51,7 +51,7 @@ namespace spot
{
}
taa_tgba*
taa_tgba_string*
result()
{
for (unsigned i = 0; i < to_free_.size(); ++i)
@ -305,7 +305,7 @@ namespace spot
}
private:
taa_tgba* res_;
taa_tgba_string* res_;
bool refined_;
bool negated_;
language_containment_checker* lcc_;
@ -381,7 +381,7 @@ namespace spot
const ltl::formula* f2 = ltl::negative_normal_form(f1);
f1->destroy();
spot::taa_tgba* res = new spot::taa_tgba(dict);
spot::taa_tgba_string* res = new spot::taa_tgba_string(dict);
bdd_dict b;
language_containment_checker* lcc =
new language_containment_checker(&b, false, false, false, false);