do not rewrite <-> and -> for Spin LTL output

Fixes #39, reported by Joachim Klein.

* src/ltlvisit/lunabbrev.hh, src/ltlvisit/lunabbrev.cc: Take an option
to specify which of xor/equiv/implies should be rewritten.
* src/ltlvisit/print.cc (print_spin): Rewrite only xor.
* src/tests/ltlfilt.test: Add a test case.
* NEWS: Mention this.
This commit is contained in:
Alexandre Duret-Lutz 2015-08-14 17:28:01 +02:00
parent ac6b042e2c
commit 59202bd5de
5 changed files with 119 additions and 23 deletions

View file

@ -121,8 +121,8 @@ namespace spot
"true", // 1 doesn't work from the command line
"[*0]", // not supported
" xor ", // rewritten
" -> ", // rewritten, although supported
" <-> ", // rewritten, although supported
" -> ",
" <-> ",
" U ",
" V ",
" W ", // rewritten
@ -985,8 +985,8 @@ namespace spot
std::ostream&
print_spin_ltl(std::ostream& os, const formula* f, bool full_parent)
{
// Remove xor, ->, and <-> first.
const formula* fu = unabbreviate_logic(f);
// Rewrite xor.
const formula* fu = unabbreviate_logic(f, "^");
// Also remove W and M.
f = unabbreviate_wm(fu);
fu->destroy();