* 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,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),
|
||||
// Université Pierre et Marie Curie.
|
||||
//
|
||||
|
|
@ -53,6 +53,8 @@ syntax(char* prog)
|
|||
#ifdef SSP
|
||||
<< " -1 do not use a double hash (for inclusion check)"
|
||||
<< std::endl
|
||||
<< " -L use LIFO ordering for inclusion check"
|
||||
<< std::endl
|
||||
#endif
|
||||
<< " -c compute an example" << std::endl
|
||||
<< " (instead of just checking for emptiness)" << std::endl
|
||||
|
|
@ -108,6 +110,7 @@ main(int argc, char **argv)
|
|||
#ifdef SSP
|
||||
bool doublehash = true;
|
||||
bool stack_inclusion = true;
|
||||
bool pushfront = false;
|
||||
#endif
|
||||
std::string dead = "true";
|
||||
|
||||
|
|
@ -120,6 +123,10 @@ main(int argc, char **argv)
|
|||
{
|
||||
doublehash = false;
|
||||
}
|
||||
else if (!strcmp(argv[formula_index], "-L"))
|
||||
{
|
||||
pushfront = true;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
if (!strcmp(argv[formula_index], "-c"))
|
||||
|
|
@ -209,7 +216,8 @@ main(int argc, char **argv)
|
|||
|
||||
#if SSP
|
||||
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_explicit* control = spot::tgba_parse(argv[formula_index + 2],
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ namespace spot
|
|||
}
|
||||
|
||||
static bool doublehash;
|
||||
static bool pushfront;
|
||||
}
|
||||
|
||||
// state_gspn_ssp
|
||||
|
|
@ -539,10 +540,12 @@ namespace spot
|
|||
const
|
||||
ltl::declarative_environment& env,
|
||||
bool inclusion,
|
||||
bool doublehash_)
|
||||
bool doublehash_,
|
||||
bool pushfront_)
|
||||
: dict_(dict), env_(env)
|
||||
{
|
||||
doublehash = doublehash_;
|
||||
pushfront = pushfront_;
|
||||
if (inclusion)
|
||||
inclusion_version();
|
||||
|
||||
|
|
@ -863,7 +866,10 @@ namespace spot
|
|||
if (sg)
|
||||
{
|
||||
const void* cont = container_(sg);
|
||||
contained[cont][s_->right()].push_front(s);
|
||||
if (pushfront)
|
||||
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),
|
||||
// Université Pierre et Marie Curie.
|
||||
//
|
||||
|
|
@ -41,7 +41,8 @@ namespace spot
|
|||
gspn_ssp_interface(int argc, char **argv,
|
||||
bdd_dict* dict, const ltl::declarative_environment& env,
|
||||
bool inclusion = false,
|
||||
bool doublehash = true);
|
||||
bool doublehash = true,
|
||||
bool pushfront = false);
|
||||
~gspn_ssp_interface();
|
||||
tgba* automaton(const tgba* operand) const;
|
||||
private:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue