Extend the ELTL parser to support more complex aliases of

automaton operators such as Strong=G(F($0))->G(F($1)) and
G=R(false, $0).

* src/eltlparse/eltlparse.yy, src/eltlparse/eltlscan.ll: Add
support for more complex aliases.
* src/eltltest/acc.cc, src/eltltest/acc.test: Adjust.
* src/ltlast/nfa.cc, src/ltlast/nfa.hh (arity): Now returns an
unsigned value.
* src/tgbatest/eltl2tgba.test: Adjust.
* src/tgbalagos/eltl2tgba_lacim.cc: Fix sanity.
This commit is contained in:
Damien Lefortier 2009-04-18 16:24:18 +02:00
parent bbbc1acc14
commit b06c9cd563
10 changed files with 188 additions and 66 deletions

View file

@ -228,13 +228,14 @@ namespace spot
fact_.constrain_relation(bdd_apply(bdd_ithvar(v1), tmp1, bddop_biimp));
if (is_loop)
{
fact_.constrain_relation(bdd_apply(bdd_ithvar(v2), tmp2, bddop_invimp));
acc &= bdd_ithvar(v2) | !tmpacc;
fact_.constrain_relation(
bdd_apply(bdd_ithvar(v2), tmp2, bddop_invimp));
}
else
{
fact_.constrain_relation(bdd_apply(bdd_ithvar(v2), tmp2, bddop_imp));
acc &= bdd_nithvar(v2) | tmpacc;
fact_.constrain_relation(bdd_apply(bdd_ithvar(v2), tmp2, bddop_imp));
}
return m[s];