Add support the bounded star operator [*i..j].
* src/ltlast/bunop.hh, src/ltlast/bunop.cc: New files for bounded unary operators. * src/ltlast/Makefile.am, src/ltlast/allnodes.hh: Add them. * src/ltlast/predecl.hh (bunop): Declare. * src/ltlast/unop.hh, src/ltlast/unop.cc (Star): Remove declaration of Star and associated code. * src/ltlast/visitor.hh: Add visit(bunop* node) methods. * src/ltlparse/ltlparse.yy, src/ltlparse/ltlscan.ll: Add parse rules for LTL. This required passing the parse_error list to the lexer, so it can report scanning errors when it reads a number that does not fit in an unsigned int. * src/ltlparse/parsedecl.hh (YY_DECL): Take error_list as third argument. * src/ltltest/consterm.test, src/ltltest/tostring.test, src/ltltest/equals.test, src/tgbatest/ltl2tgba.test: More tests. * src/ltlvisit/basicreduce.cc, src/ltlvisit/clone.cc, src/ltlvisit/clone.hh, src/ltlvisit/consterm.cc, src/ltlvisit/dotty.cc, src/ltlvisit/mark.cc, src/ltlvisit/nenoform.cc, src/ltlvisit/postfix.cc, src/ltlvisit/postfix.hh, src/ltlvisit/reduce.cc, src/ltlvisit/syntimpl.cc, src/ltlvisit/tostring.cc, src/ltlvisit/tunabbrev.cc, src/tgba/formula2bdd.cc, src/tgbaalgos/eltl2tgba_lacim.cc, src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_lacim.cc: Adjust syntax to use "bunop::Star" instead of "unop::Star". * src/tgbaalgos/ltl2tgba_fm.cc: Likewise, but also adjust the code to handle the bounds of the operator.
This commit is contained in:
parent
47b2bea865
commit
126b724a98
33 changed files with 678 additions and 115 deletions
|
|
@ -32,6 +32,14 @@ run 0 ../consterm '0'
|
|||
run 1 ../consterm '[*0]'
|
||||
run 1 ../consterm 'a*'
|
||||
run 1 ../consterm '0*'
|
||||
run 1 ../consterm 'a[*0]'
|
||||
run 1 ../consterm 'a[*0..]'
|
||||
run 1 ../consterm 'a[*0..3]'
|
||||
run 0 ../consterm 'a[*1..3]'
|
||||
run 0 ../consterm 'a[*3]'
|
||||
run 1 ../consterm 'a[*..4][*3]'
|
||||
run 0 ../consterm 'a[*1..4][*3]'
|
||||
run 1 ../consterm 'a[*1..4][*0..3]'
|
||||
run 0 ../consterm '((a ; b) + c)'
|
||||
run 1 ../consterm '((a ; b) + [*0])'
|
||||
run 0 ../consterm '((a ; b) + [*0]) & e'
|
||||
|
|
|
|||
|
|
@ -122,3 +122,15 @@ run 0 ../equals '{x;x}[]->GX(1)' '1'
|
|||
run 0 ../equals '{x;x}[]->FF(0)' '{x;x}[]->0'
|
||||
run 0 ../equals '{x;x}[]->y' '{x;x}|->y'
|
||||
run 0 ../equals '{x;x}[]->y' '{x;x}(y)'
|
||||
|
||||
run 0 ../equals '{a[*0]}' '{[*0]}'
|
||||
run 0 ../equals '{a[*..]}' '{a[*]}'
|
||||
run 0 ../equals '{a[*2..3][*4..5]}' '{a[*8..15]}'
|
||||
run 0 ../equals '{a[*4..5][*2..3]}' '{a[*4..5][*2..3]}'
|
||||
run 0 ../equals '{a[*2..3][*]}' '{a[*2..3][*]}'
|
||||
run 0 ../equals '{a[*1..3][*]}' '{a[*]}'
|
||||
run 0 ../equals '{a[*][*2..3]}' '{a[*]}'
|
||||
run 0 ../equals '{a[*..3][*2]}' '{a[*..6]}'
|
||||
run 0 ../equals '{a[*..3][*..2]}' '{a[*..6]}'
|
||||
run 0 ../equals '{a[*..3][*2..]}' '{a[*]}'
|
||||
run 0 ../equals '{a[*..3][*2..]}' '{a[*]}'
|
||||
|
|
|
|||
|
|
@ -61,3 +61,9 @@ run 0 ../tostring '{a;b;{c && d*};**}|=>G{a*:b*}'
|
|||
run 0 ../tostring 'GF!{{a || c} && b}'
|
||||
run 0 ../tostring 'GF!{{a || c*} && b}<>->{{!a}*}'
|
||||
run 0 ../tostring 'GF{{a || c*} & b[*]}[]->{d}'
|
||||
run 0 ../tostring '{a[*2..3]}'
|
||||
run 0 ../tostring '{a[*0..1]}'
|
||||
run 0 ../tostring '{a[*0..]}'
|
||||
run 0 ../tostring '{a[*..]}'
|
||||
run 0 ../tostring '{a[*1..]}'
|
||||
run 0 ../tostring '{a[*2..3][*4..5]}'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue