Add []-> and <>->.

* src/ltlast/binop.hh, src/ltlast/binop.cc (EConcat, UConcat):
Add these new operators.
* src/ltlparse/ltlparse.yy, src/ltlparse/ltlscan.ll: Parse
these new operators.
* src/ltlvisit/simpfg.cc, src/ltlvisit/syntimpl.cc,
src/ltlvisit/tostring.cc, src/ltlvisit/basicreduce.cc,
src/ltlvisit/consterm.cc, src/ltlvisit/lunabbrev.cc,
src/ltlvisit/nenoform.cc, src/ltlvisit/reduce.cc
src/tgba/formula2bdd.cc, src/tgbaalgos/eltl2tgba_lacim.cc,
src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_fm.cc,
src/tgbaalgos/ltl2tgba_lacim.cc: Add these new operators into the
switches.
This commit is contained in:
Alexandre Duret-Lutz 2010-01-29 14:29:17 +01:00
parent 97b7211bb7
commit c6dd811b08
17 changed files with 204 additions and 36 deletions

View file

@ -103,11 +103,23 @@ namespace spot
visit(const binop* bo)
{
bool top_level = top_level_;
top_level_ = false;
if (!top_level)
os_ << "(";
bo->first()->accept(*this);
switch (bo->op())
{
case binop::UConcat:
case binop::EConcat:
os_ << "{ ";
top_level_ = true;
bo->first()->accept(*this);
top_level_ = false;
break;
default:
top_level_ = false;
bo->first()->accept(*this);
break;
}
switch (bo->op())
{
@ -132,6 +144,12 @@ namespace spot
case binop::M:
os_ << " M ";
break;
case binop::UConcat:
os_ << " }[]-> ";
break;
case binop::EConcat:
os_ << " }<>-> ";
break;
}
bo->second()->accept(*this);
@ -311,7 +329,17 @@ namespace spot
break;
case binop::R:
bo->first()->accept(*this);
os_ << " V ";
os_ << " V ";
bo->second()->accept(*this);
break;
case binop::UConcat:
bo->first()->accept(*this);
os_ << " []-> ";
bo->second()->accept(*this);
break;
case binop::EConcat:
bo->first()->accept(*this);
os_ << " <>-> ";
bo->second()->accept(*this);
break;
/* W and M are not supported by Spin */