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

@ -95,7 +95,6 @@ main(int argc, char** argv)
input += spot::ltl::to_string(f, true);
spot::ltl::destroy(f);
// std::cerr << input << std::endl;
f = spot::eltl::parse_string(input, p, env, false);
formula_index = 2;
}

View file

@ -37,6 +37,7 @@ G=(
0 0 \$0
)
F=U(true, \$0)
Strong=G(F(\$0))->G(F(\$1))
R=!U(!\$0, !\$1)
EOF
@ -114,6 +115,16 @@ check_construct input
check_true 'Fa'
check_false '!Fa'
cat >input <<EOF
include input1
%
Strong(a,b)
EOF
check_construct input
check_true 'G(F(a))->G(F(b))'
check_false '!(G(F(a))->G(F(b)))'
cat >input <<EOF
include input1
%