* iface/gspn/ltlgspn.cc: New option -L.
* iface/gspn/ssp.cc, iface/gspn/ssp.hh (gspn_ssp_interface) support for a new option "pushfront".
This commit is contained in:
parent
fd2033aaba
commit
b8fd421232
4 changed files with 25 additions and 6 deletions
|
|
@ -1,5 +1,9 @@
|
||||||
2007-07-23 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
2007-07-23 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||||||
|
|
||||||
|
* iface/gspn/ltlgspn.cc: New option -L.
|
||||||
|
* iface/gspn/ssp.cc, iface/gspn/ssp.hh (gspn_ssp_interface)
|
||||||
|
support for a new option "pushfront".
|
||||||
|
|
||||||
* NEWS, configure.in: Bump version to 0.4a.
|
* NEWS, configure.in: Bump version to 0.4a.
|
||||||
|
|
||||||
2007-07-17 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
2007-07-17 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2003, 2004, 2006 Laboratoire d'Informatique de Paris 6
|
// Copyright (C) 2003, 2004, 2006, 2007 Laboratoire d'Informatique de Paris 6
|
||||||
// (LIP6), département Systèmes Répartis Coopératifs (SRC),
|
// (LIP6), département Systèmes Répartis Coopératifs (SRC),
|
||||||
// Université Pierre et Marie Curie.
|
// Université Pierre et Marie Curie.
|
||||||
//
|
//
|
||||||
|
|
@ -53,6 +53,8 @@ syntax(char* prog)
|
||||||
#ifdef SSP
|
#ifdef SSP
|
||||||
<< " -1 do not use a double hash (for inclusion check)"
|
<< " -1 do not use a double hash (for inclusion check)"
|
||||||
<< std::endl
|
<< std::endl
|
||||||
|
<< " -L use LIFO ordering for inclusion check"
|
||||||
|
<< std::endl
|
||||||
#endif
|
#endif
|
||||||
<< " -c compute an example" << std::endl
|
<< " -c compute an example" << std::endl
|
||||||
<< " (instead of just checking for emptiness)" << std::endl
|
<< " (instead of just checking for emptiness)" << std::endl
|
||||||
|
|
@ -108,6 +110,7 @@ main(int argc, char **argv)
|
||||||
#ifdef SSP
|
#ifdef SSP
|
||||||
bool doublehash = true;
|
bool doublehash = true;
|
||||||
bool stack_inclusion = true;
|
bool stack_inclusion = true;
|
||||||
|
bool pushfront = false;
|
||||||
#endif
|
#endif
|
||||||
std::string dead = "true";
|
std::string dead = "true";
|
||||||
|
|
||||||
|
|
@ -120,6 +123,10 @@ main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
doublehash = false;
|
doublehash = false;
|
||||||
}
|
}
|
||||||
|
else if (!strcmp(argv[formula_index], "-L"))
|
||||||
|
{
|
||||||
|
pushfront = true;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
if (!strcmp(argv[formula_index], "-c"))
|
if (!strcmp(argv[formula_index], "-c"))
|
||||||
|
|
@ -209,7 +216,8 @@ main(int argc, char **argv)
|
||||||
|
|
||||||
#if SSP
|
#if SSP
|
||||||
bool inclusion = (check != Couvreur && check != Couvreur2);
|
bool inclusion = (check != Couvreur && check != Couvreur2);
|
||||||
spot::gspn_ssp_interface gspn(2, argv, dict, env, inclusion, doublehash);
|
spot::gspn_ssp_interface gspn(2, argv, dict, env, inclusion,
|
||||||
|
doublehash, pushfront);
|
||||||
|
|
||||||
spot::tgba_parse_error_list pel1;
|
spot::tgba_parse_error_list pel1;
|
||||||
spot::tgba_explicit* control = spot::tgba_parse(argv[formula_index + 2],
|
spot::tgba_explicit* control = spot::tgba_parse(argv[formula_index + 2],
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,7 @@ namespace spot
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool doublehash;
|
static bool doublehash;
|
||||||
|
static bool pushfront;
|
||||||
}
|
}
|
||||||
|
|
||||||
// state_gspn_ssp
|
// state_gspn_ssp
|
||||||
|
|
@ -539,10 +540,12 @@ namespace spot
|
||||||
const
|
const
|
||||||
ltl::declarative_environment& env,
|
ltl::declarative_environment& env,
|
||||||
bool inclusion,
|
bool inclusion,
|
||||||
bool doublehash_)
|
bool doublehash_,
|
||||||
|
bool pushfront_)
|
||||||
: dict_(dict), env_(env)
|
: dict_(dict), env_(env)
|
||||||
{
|
{
|
||||||
doublehash = doublehash_;
|
doublehash = doublehash_;
|
||||||
|
pushfront = pushfront_;
|
||||||
if (inclusion)
|
if (inclusion)
|
||||||
inclusion_version();
|
inclusion_version();
|
||||||
|
|
||||||
|
|
@ -863,7 +866,10 @@ namespace spot
|
||||||
if (sg)
|
if (sg)
|
||||||
{
|
{
|
||||||
const void* cont = container_(sg);
|
const void* cont = container_(sg);
|
||||||
|
if (pushfront)
|
||||||
contained[cont][s_->right()].push_front(s);
|
contained[cont][s_->right()].push_front(s);
|
||||||
|
else
|
||||||
|
contained[cont][s_->right()].push_back(s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2003, 2004, 2006 Laboratoire d'Informatique de
|
// Copyright (C) 2003, 2004, 2006, 2007 Laboratoire d'Informatique de
|
||||||
// Paris 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
|
// Paris 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
|
||||||
// Université Pierre et Marie Curie.
|
// Université Pierre et Marie Curie.
|
||||||
//
|
//
|
||||||
|
|
@ -41,7 +41,8 @@ namespace spot
|
||||||
gspn_ssp_interface(int argc, char **argv,
|
gspn_ssp_interface(int argc, char **argv,
|
||||||
bdd_dict* dict, const ltl::declarative_environment& env,
|
bdd_dict* dict, const ltl::declarative_environment& env,
|
||||||
bool inclusion = false,
|
bool inclusion = false,
|
||||||
bool doublehash = true);
|
bool doublehash = true,
|
||||||
|
bool pushfront = false);
|
||||||
~gspn_ssp_interface();
|
~gspn_ssp_interface();
|
||||||
tgba* automaton(const tgba* operand) const;
|
tgba* automaton(const tgba* operand) const;
|
||||||
private:
|
private:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue