* iface/gspn/gspn.cc (tgba_gspn_private_): Define alive_prop,

and dead_prop from the dead argument passed to the constructor.
(tgba_succ_iterator_gspn): Stutter on dead transitions.
(tgba_gspn::tgba_gspn): Hand dead to tgba_gspn_private_.
(gspn_interface::gspn_interface): Hand dead to tgba_gspn.
* iface/gspn/gspn.hh (gspn_interface::gspn_interface): Take a
dead argument.
* iface/gspn/ltlgspn.cc [!SSP]: Add a option -d to specify the
dead property.
* iface/gspn/udcseltl.test: Try option -d.
This commit is contained in:
Alexandre Duret-Lutz 2004-05-21 13:54:38 +00:00
parent 3e968a3c9d
commit f27b91c7d7
5 changed files with 107 additions and 24 deletions

View file

@ -52,6 +52,12 @@ syntax(char* prog)
<< " -c compute an example" << std::endl
<< " (instead of just checking for emptiness)" << std::endl
<< std::endl
#ifndef SSP
<< " -d DEAD" << std::endl
<< " use DEAD as property for marking dead states"
<< " (by default DEAD=true)" << std::endl
#endif
<< " -e use Couvreur's emptiness-check (default)" << std::endl
<< " -e2 use Couvreur's emptiness-check's shy variant" << std::endl
#ifdef SSP
@ -81,6 +87,7 @@ main(int argc, char **argv)
enum { Lacim, Fm } trans = Lacim;
bool compute_counter_example = false;
bool proj = true;
std::string dead = "true";
spot::gspn_environment env;
@ -90,6 +97,17 @@ main(int argc, char **argv)
{
compute_counter_example = true;
}
#ifndef SSP
else if (!strcmp(argv[formula_index], "-d"))
{
if (formula_index + 1 >= argc)
syntax(argv[0]);
dead = argv[++formula_index];
if (strcasecmp(dead.c_str(), "true")
&& strcasecmp(dead.c_str(), "false"))
env.declare(dead);
}
#endif
else if (!strcmp(argv[formula_index], "-e"))
{
check = Couvreur;
@ -164,7 +182,7 @@ main(int argc, char **argv)
if (spot::format_tgba_parse_errors(std::cerr, pel1))
return 2;
#else
spot::gspn_interface gspn(2, argv, dict, env);
spot::gspn_interface gspn(2, argv, dict, env, dead);
#endif
spot::tgba* a_f = 0;