Get rid of bunop::Equal and bunop::Goto.
* src/ltlast/bunop.hh, src/ltlast/bunop.cc, src/ltlvisit/randomltl.cc, src/ltlvisit/simplify.cc, src/ltlvisit/tostring.cc, src/tgbaalgos/ltl2tgba_fm.cc: Remove all traces of these two operators since they are not handled like sugar. * doc/tl/tl.tex: Adjust documentation to reflect the fact that these two operators are sugar.
This commit is contained in:
parent
210723e30c
commit
abaf102746
7 changed files with 38 additions and 272 deletions
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (C) 2008, 2009, 2010, 2011 Laboratoire de Recherche et
|
||||
// Développement de l'Epita (LRDE).
|
||||
// Copyright (C) 2008, 2009, 2010, 2011, 2012 Laboratoire de Recherche
|
||||
// et Développement de l'Epita (LRDE).
|
||||
// Copyright (C) 2005 Laboratoire d'Informatique de Paris 6
|
||||
// (LIP6), département Systèmes Répartis Coopératifs (SRC), Université
|
||||
// Pierre et Marie Curie.
|
||||
|
|
@ -8,7 +8,7 @@
|
|||
//
|
||||
// Spot is free software; you can redistribute it and/or modify it
|
||||
// under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation; either version 2 of the License, or
|
||||
// the Free Software Foundation; either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Spot is distributed in the hope that it will be useful, but WITHOUT
|
||||
|
|
@ -276,7 +276,7 @@ namespace spot
|
|||
|
||||
// SEREs
|
||||
random_sere::random_sere(const atomic_prop_set* ap)
|
||||
: random_formula(11, ap), rb(ap)
|
||||
: random_formula(9, ap), rb(ap)
|
||||
{
|
||||
proba_[0].setup("eword", 1, eword_builder);
|
||||
proba_2_ = proba_ + 1;
|
||||
|
|
@ -284,13 +284,11 @@ namespace spot
|
|||
proba_[1].setup("boolform", 1, boolform_builder);
|
||||
proba_[2].setup("star", 2, bunop_unbounded_builder<bunop::Star>);
|
||||
proba_[3].setup("star_b", 2, bunop_bounded_builder<bunop::Star>);
|
||||
proba_[4].setup("equal_b", 2, bunop_bool_bounded_builder<bunop::Equal>);
|
||||
proba_[5].setup("goto_b", 2, bunop_bool_bounded_builder<bunop::Goto>);
|
||||
proba_[6].setup("and", 3, multop_builder<multop::And>);
|
||||
proba_[7].setup("andNLM", 3, multop_builder<multop::AndNLM>);
|
||||
proba_[8].setup("or", 3, multop_builder<multop::Or>);
|
||||
proba_[9].setup("concat", 3, multop_builder<multop::Concat>);
|
||||
proba_[10].setup("fusion", 3, multop_builder<multop::Fusion>);
|
||||
proba_[4].setup("and", 3, multop_builder<multop::And>);
|
||||
proba_[5].setup("andNLM", 3, multop_builder<multop::AndNLM>);
|
||||
proba_[6].setup("or", 3, multop_builder<multop::Or>);
|
||||
proba_[7].setup("concat", 3, multop_builder<multop::Concat>);
|
||||
proba_[8].setup("fusion", 3, multop_builder<multop::Fusion>);
|
||||
|
||||
update_sums();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
//
|
||||
// Spot is free software; you can redistribute it and/or modify it
|
||||
// under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation; either version 2 of the License, or
|
||||
// the Free Software Foundation; either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Spot is distributed in the hope that it will be useful, but WITHOUT
|
||||
|
|
@ -2266,13 +2266,16 @@ namespace spot
|
|||
bunop* r = down_cast<bunop*>(*i);
|
||||
// b && r[*i..j] = b & r if i<=1<=j
|
||||
// = 0 otherwise
|
||||
// likewise for b && r[=i..j]
|
||||
// and b && r[->i..j]
|
||||
if (r->min() > 1 || r->max() < 1)
|
||||
goto returnfalse;
|
||||
ares->push_back(r->child()->clone());
|
||||
r->destroy();
|
||||
*i = 0;
|
||||
switch (r->op())
|
||||
{
|
||||
case bunop::Star:
|
||||
if (r->min() > 1 || r->max() < 1)
|
||||
goto returnfalse;
|
||||
ares->push_back(r->child()->clone());
|
||||
r->destroy();
|
||||
*i = 0;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case formula::MultOp:
|
||||
|
|
@ -2540,7 +2543,7 @@ namespace spot
|
|||
fset_t xfset; // XF(...)
|
||||
fset_t xset; // X(...)
|
||||
fmap_t rmset; // (X...)R(...) or (X...)M(...) or
|
||||
// b & X(b W ...) or b & X(b U ...)
|
||||
// b & X(b W ...) or b & X(b U ...)
|
||||
|
||||
unsigned s = res->size();
|
||||
std::vector<bool> tokill(s);
|
||||
|
|
|
|||
|
|
@ -385,12 +385,6 @@ namespace spot
|
|||
}
|
||||
}
|
||||
break;
|
||||
case bunop::Goto:
|
||||
sugar = Goto;
|
||||
break;
|
||||
case bunop::Equal:
|
||||
sugar = Equal;
|
||||
break;
|
||||
}
|
||||
|
||||
emit_bunop_child(c);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue