Accept "{E}|->ltl" and "{E}(ltl)" as synonym for "{E}[]->ltl".

* src/ltlparse/ltlparse.yy (parenthesedsubformula): Extract these
rules from...
(subformula): ... here, and use it to recognize "{SERE}(formula)".
* src/ltlparse/ltlscan.ll: Recognize "|->" as "[]->".
* src/ltltest/equals.test: Test these two new syntaxes.
This commit is contained in:
Alexandre Duret-Lutz 2010-03-09 16:26:27 +01:00
parent 8b8633de8c
commit 1ecc6984d3
3 changed files with 18 additions and 5 deletions

View file

@ -85,7 +85,13 @@ flex_set_buffer(const char* buf, int start_tok)
/* ~ comes from Goal, ! from everybody else */
"!"|"~" BEGIN(0); return token::OP_NOT;
/* PSL operators */
"[*0]" BEGIN(0); return token::CONST_EMPTYWORD;
"[]->"|"|->" BEGIN(0); return token::OP_UCONCAT;
"<>->" BEGIN(0); return token::OP_ECONCAT;
"*"|"[*]" BEGIN(0); return token::OP_STAR;
";" BEGIN(0); return token::OP_CONCAT;
":" BEGIN(0); return token::OP_FUSION;
/* & and | come from Spin. && and || from LTL2BA.
/\, \/, and xor are from LBTT.