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:
parent
bbbc1acc14
commit
b06c9cd563
10 changed files with 188 additions and 66 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
%
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue