Commit graph

6 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
126b724a98 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.
2012-04-28 09:30:35 +02:00
Alexandre Duret-Lutz
8b8633de8c Use [*0] instead of #e, and support [*] in addition to *.
* src/ltlparse/ltlscan.ll: Recognize [*] as *, and use
[*0] instead of #e for the empty word.
* src/ltlast/binop.cc, src/ltlast/constant.cc,
src/ltlast/multop.cc, src/ltlast/multop.hh, src/ltlast/unop.cc,
src/ltlast/unop.hh, src/ltltest/consterm.test,
src/ltltest/equals.test: Adjust all occurrences of #e to [*0].
* src/tgbatest/ltl2tgba.test: Also use [*].
2012-04-28 09:30:35 +02:00
Alexandre Duret-Lutz
4e7233d9fa Support braces in addition to parentheses in rational expressions.
* src/ltlparse/ltlparse.yy (rationalexp): Allow bracedrationalexp.
* src/ltltest/consterm.test, src/tgbatest/ltl2tgba.test: Add more
tests.
2012-04-28 09:30:35 +02:00
Alexandre Duret-Lutz
ad519b8568 Do not assume that concatenation cannot accept the empty word.
For instance "(a+#e);(b+#e);(c*)" does.

* src/ltlvisit/consterm.cc: Fix handling of Concat operator.
* src/ltltest/consterm.test: Add more tests.
2012-04-28 09:30:34 +02:00
Alexandre Duret-Lutz
fc7c2943de more tests for rational operator simplifications.
* src/ltltest/nenoform.test, src/ltltest/equals.test,
src/ltltest/consterm.test: Update tests for rational ops.
* src/ltltest/consterm.cc: Use parse_ratexp().
* src/ltlast/binop.cc: Fix simplification rules for []-> and
<>->.
2012-04-28 09:30:34 +02:00
Alexandre Duret-Lutz
97b7211bb7 Add a constant_term() visitor to decide whether #e is accepted.
* src/ltlvisit/Makefile.am: Add consterm.cc and consterm.hh.
* src/ltlvisit/consterm.hh, src/ltlvisit/consterm.cc: New files.
* src/ltltest/Makefile.am: Add consterm.cc and consterm.test.
* src/ltltest/consterm.cc, src/ltltest/consterm.test: New files.
2012-04-28 09:30:34 +02:00