Introduce tgba_explicit_labelled<label> so that we can build

tgba_explicit instances labelled by other objects than strings.

* src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh:
Split tgba_explicit in two levels: tgba_explicit with unlabelled
states, and tgba_explicit_labelled templated by the type of
the label.  Define tgba_explicit_string (with the interface
of the former tgba_explicit class) and tgba_explicit_formula
for future use in ltl2tgba.cc.
* src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh,
src/tgbaalgos/cutscc.cc, src/tgbaalgos/dupexp.cc,
src/tgbaalgos/emptiness.cc, src/tgbaalgos/ltl2tgba_fm.cc,
src/tgbaalgos/powerset.cc, src/tgbaalgos/randomgraph.cc,
src/tgbaparse/public.hh, src/tgbaparse/tgbaparse.yy,
src/tgbatest/explicit.cc, src/tgbatest/ltl2tgba.cc: Adjust to
use tgba_explicit_string when appropriate.
This commit is contained in:
Alexandre Duret-Lutz 2009-11-10 12:16:33 +01:00
parent d3dcecc6c3
commit 4e22bb8b09
15 changed files with 284 additions and 191 deletions

View file

@ -1,4 +1,4 @@
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// Copyright (C) 2003, 2004, 2009 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie.
//
@ -33,7 +33,7 @@ main()
spot::ltl::default_environment& e =
spot::ltl::default_environment::instance();
spot::tgba_explicit* a = new spot::tgba_explicit(dict);
spot::tgba_explicit_string* a = new spot::tgba_explicit_string(dict);
typedef spot::tgba_explicit::transition trans;

View file

@ -202,7 +202,7 @@ main(int argc, char** argv)
bool show_fc = false;
spot::ltl::environment& env(spot::ltl::default_environment::instance());
spot::ltl::atomic_prop_set* unobservables = 0;
spot::tgba_explicit* system = 0;
spot::tgba_explicit_string* system = 0;
spot::tgba* product = 0;
spot::tgba* product_to_free = 0;
spot::bdd_dict* dict = new spot::bdd_dict();
@ -574,7 +574,7 @@ main(int argc, char** argv)
if (from_file)
{
spot::tgba_parse_error_list pel;
spot::tgba_explicit* e;
spot::tgba_explicit_string* e;
tm.start("parsing automaton");
to_free = a = e = spot::tgba_parse(input, pel, dict,
env, env, debug_opt);