* src/ltlparse/ltlparse.yy (OP_POST_NEG, OP_POST_POS): New tokens.

(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".
This commit is contained in:
Alexandre Duret-Lutz 2004-05-13 09:49:06 +00:00
parent 4f96a9fc14
commit 60a3b4ed72
6 changed files with 125 additions and 34 deletions

View file

@ -1,5 +1,5 @@
#! /bin/sh
# Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
# Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
# département Systèmes Répartis Coopératifs (SRC), Université Pierre
# et Marie Curie.
#
@ -70,7 +70,11 @@ for f in \
'a U b U c U d U e U f U g U h U i U j U k U l U m' \
'(ab * !Xad + ad U ab) & FG p12 /\ GF p13' \
'((([]<>()p12)) )' \
'a R ome V anille'
'a R ome V anille' \
'p=0Uq=1' \
'((p=1Rq=1)+p=0)UXq=0' \
'((X(p2=0))U(X(p2=0)))+((Xp1=0)UFALSE)'
do
if ./ltl2text "$f"; then
:

View file

@ -45,3 +45,9 @@ run 0 ./tostring 'b & a & a & (c | e |(g U g)| e | c) & b'
run 0 ./tostring 'F"F1"&G"G"&X"X"'
run 0 ./tostring 'GFfalse'
run 0 ./tostring 'GFtrue'
run 0 ./tostring 'p=0Uq=1Ut=1'
run 0 ./tostring 'F"FALSE"'
run 0 ./tostring 'G"TruE"'
run 0 ./tostring 'FFALSE'
run 0 ./tostring 'GTruE'
run 0 ./tostring 'p=0UFXp=1'