Implement W,M removal for Spin output.

* src/ltlvisit/wmunabbrev.hh, src/ltlvisit/wmunabbrev.cc: New files.
* src/ltlvisit/Makefile.am: Add them.
* src/ltlvisit/tostring.cc (to_spin_string): Use the new rewriting.
* wrap/python/ajax/spot.in: Warn when a "Spin" still contain PSL
operators.
* wrap/python/ajax/ltl2tgba.html: Adjust help text.
* doc/tl/tl.tex, NEWS: Document the new rewriting.
This commit is contained in:
Alexandre Duret-Lutz 2012-04-29 21:21:03 +02:00
parent e64a1bf565
commit a09ad6b4c6
8 changed files with 176 additions and 15 deletions

View file

@ -30,6 +30,7 @@
#include "ltlast/allnodes.hh"
#include "ltlast/visitor.hh"
#include "lunabbrev.hh"
#include "wmunabbrev.hh"
#include "tostring.hh"
@ -108,8 +109,8 @@ namespace spot
" <-> ", // rewritten
" U ",
" V ",
" W ", // not supported
" M ", // not supported
" W ", // rewritten
" M ", // rewritten
"<>-> ", // not supported
"<>=> ", // not supported
"<>+> ", // not supported
@ -754,9 +755,12 @@ namespace spot
{
// Remove xor, ->, and <-> first.
formula* fu = unabbreviate_logic(f);
to_string_visitor v(os, full_parent, false, spin_kw);
fu->accept(v);
// Also remove W and M.
f = unabbreviate_wm(fu);
fu->destroy();
to_string_visitor v(os, full_parent, false, spin_kw);
f->accept(v);
f->destroy();
return os;
}