(to_string_visitor::visitor(const atomic_prop*)): Use is_bare_word
to better check which atomic proposition need to be quoted.
* src/ltlparse/ltlscan.ll: Do not allow identifiers starting with F_
or G_.
* src/ltltest/equals.test, src/ltltest/tostring.test: More tests.
(subformula): Recognize `ATOMIC_PROP OP_POST_POS' and
`ATOMIC_PROP OP_POST_NEG'.
* src/ltlparse/ltlscan.ll: Introduce the not_prop start condition,
to restrict the set of atomic propositions allowed in places
where they are not expected. Make `true' and `false' case insensitive.
* src/ltltest/parse.test, src/ltltest/tostring.test: More cases.
* src/ltlvisit/tostring.cc (to_string_visitor): Quote atomic
propositions equal to "true" or "false".
(to_string_visitor::visit(const atomic_prop*)): Quote propositions
that start with F, G, or X.
* src/ltltest/tostring.test: Test quoted propositions.
* src/tgbaalgos/save.cc (save_bfs::process_state): Escape " and + characters in formulae.
* src/tgbatest/readsave.test: Test for this.
description of the test ...
* src/ltltest/tostring.cc: ... here, where it is actually coded.
* src/ltltest/lunabbrev.test, src/ltltest/tunabbrev.test,
src/ltltest/nenoform.test, src/ltltest/tunenoform.test:
Simplify with set -e.
* src/ltltest/tostring.cc: New files.
* src/ltlvisit/tostring.hh: From ast to string New files.
* src/ltlvisit/tostring.cc: From ast to string New files.