Parse the fusion operator (":") and translate it in ltl2tgba_fm().
* src/ltlast/multop.hh (multop::type::Fusion): New operator. * src/ltlast/multop.cc: Handle it. * src/ltlparse/ltlparse.yy: Declare OP_FUSION and add grammar rules. * src/ltlparse/ltlscan.ll: Recognize ":" as OP_FUSION. * src/tgbaalgos/ltl2tgba_fm.cc (ratexp_trad_visitor::visit): Add translation rule for multop::Fusion. * src/tgbatest/ltl2tgba.test: Add more tests. * src/ltlvisit/basicreduce.cc, src/ltlvisit/consterm.cc, src/ltlvisit/contain.cc, src/ltlvisit/mark.cc, src/ltlvisit/nenoform.cc, src/ltlvisit/syntimpl.cc, src/ltlvisit/tostring.cc, src/tgba/formula2bdd.cc, src/tgbaalgos/eltl2tgba_lacim.cc, src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_lacim.cc: Handle multop::Fusion in switches.
This commit is contained in:
parent
ad519b8568
commit
c2b3dac7aa
17 changed files with 146 additions and 25 deletions
|
|
@ -64,6 +64,10 @@ check_psl '{((a*;b;c)*)&((b*;a;c)*)}<>->x'
|
|||
check_psl '{(g;y;r)*}<>->x'
|
||||
check_psl 'G({(g;y;r)*}<>->x)'
|
||||
check_psl 'G({(a;b)*}<>->x)&G({(c;d)*}<>->y)'
|
||||
check_psl 'G({(a;b)*}<>->x)&G({(c;d)*}<>->y)'
|
||||
check_psl '{(#e + a):c*:(#e + b)}<>->d'
|
||||
check_psl '{a;e;f:(g*);h}<>->d'
|
||||
check_psl '{(a:b)* & (c*:d)}<>->e'
|
||||
|
||||
# Make sure 'a U (b U c)' has 3 states and 6 transitions,
|
||||
# before and after degeneralization.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue