Author: niels
Date: Mon May 26 13:40:14 2014
New Revision: 9454

URL: http://svn.gna.org/viewcvs/service-tech?rev=9454&view=rev
Log:
* re-introduced shortcut operators IMPOSSIBLE, INVARIANT, and REACHABLE (for 
the MCC 2014)


Modified:
    trunk/lola2/src/Frontend/Parser/LexicFormula.ll
    trunk/lola2/src/Frontend/Parser/ParserFormula.yy
    trunk/lola2/tests/testsuite.at

Modified: trunk/lola2/src/Frontend/Parser/LexicFormula.ll
URL: 
http://svn.gna.org/viewcvs/service-tech/trunk/lola2/src/Frontend/Parser/LexicFormula.ll?rev=9454&r1=9453&r2=9454&view=diff
==============================================================================
--- trunk/lola2/src/Frontend/Parser/LexicFormula.ll     (original)
+++ trunk/lola2/src/Frontend/Parser/LexicFormula.ll     Mon May 26 13:40:14 2014
@@ -75,6 +75,10 @@
 NEXTSTATE              { return _NEXTSTATE_; }
 RELEASE                { return _RELEASE_; }
 
+REACHABLE              { return _REACHABLE_; }
+INVARIANT              { return _INVARIANT_; }
+IMPOSSIBLE             { return _IMPOSSIBLE_; }
+
 [AGEFXUR]+             { ptformula_lval.yt_casestring = 
kc::mkcasestring(ptformula_text); return _CTLOPERATOR_; }
 
 \;                     { return _semicolon_; }

Modified: trunk/lola2/src/Frontend/Parser/ParserFormula.yy
URL: 
http://svn.gna.org/viewcvs/service-tech/trunk/lola2/src/Frontend/Parser/ParserFormula.yy?rev=9454&r1=9453&r2=9454&view=diff
==============================================================================
--- trunk/lola2/src/Frontend/Parser/ParserFormula.yy    (original)
+++ trunk/lola2/src/Frontend/Parser/ParserFormula.yy    Mon May 26 13:40:14 2014
@@ -63,6 +63,9 @@
 %token _EVENTUALLY_        "temporal operator EVENTUALLY"
 %token _EXPATH_            "path quantifier EXPATH"
 %token _UNTIL_             "temporal operator UNTIL"
+%token _REACHABLE_         "keyword REACHABLE"
+%token _INVARIANT_         "keyword INVARIANT"
+%token _IMPOSSIBLE_        "keyword IMPOSSIBLE"
 %token _notequal_          "not-equals sign"
 %token _implies_           "Boolean implication"
 %token _equals_            "equals sign"
@@ -183,6 +186,12 @@
     }
 | _NEXTSTATE_ statepredicate
     { $$ = NextState($2); }
+| _REACHABLE_ statepredicate
+    { $$ = ExPath(Eventually($2)); }
+| _INVARIANT_ statepredicate
+    { $$ = AllPath(Always($2)); }
+| _IMPOSSIBLE_ statepredicate
+    { $$ = AllPath(Always(Negation($2))); }
 ;
 
 atomic_proposition:

Modified: trunk/lola2/tests/testsuite.at
URL: 
http://svn.gna.org/viewcvs/service-tech/trunk/lola2/tests/testsuite.at?rev=9454&r1=9453&r2=9454&view=diff
==============================================================================
--- trunk/lola2/tests/testsuite.at      (original)
+++ trunk/lola2/tests/testsuite.at      Mon May 26 13:40:14 2014
@@ -1208,6 +1208,27 @@
 AT_SETUP([Temporal operators: EXPATH EVENTUALLY])
 AT_CHECK([cp TESTFILES/garavel.lola .])
 AT_CHECK([LOLA garavel.lola --check=none --formula='"FORMULA EXPATH EVENTUALLY 
p.1 <= 1;"'],0,stdout,stderr)
+AT_CHECK([GREP -q "lola: processed formula with 1 atomic propositions" stderr])
+AT_KEYWORDS(formula)
+AT_CLEANUP
+
+AT_SETUP([Temporal operators: REACHABLE])
+AT_CHECK([cp TESTFILES/garavel.lola .])
+AT_CHECK([LOLA garavel.lola --check=none --formula='"FORMULA REACHABLE p.1 <= 
1;"'],0,stdout,stderr)
+AT_CHECK([GREP -q "lola: processed formula with 1 atomic propositions" stderr])
+AT_KEYWORDS(formula)
+AT_CLEANUP
+
+AT_SETUP([Temporal operators: INVARIANT])
+AT_CHECK([cp TESTFILES/garavel.lola .])
+AT_CHECK([LOLA garavel.lola --check=none --formula='"FORMULA INVARIANT p.1 <= 
1;"'],0,stdout,stderr)
+AT_CHECK([GREP -q "lola: processed formula with 1 atomic propositions" stderr])
+AT_KEYWORDS(formula)
+AT_CLEANUP
+
+AT_SETUP([Temporal operators: IMPOSSIBLE])
+AT_CHECK([cp TESTFILES/garavel.lola .])
+AT_CHECK([LOLA garavel.lola --check=none --formula='"FORMULA IMPOSSIBLE p.1 <= 
1;"'],0,stdout,stderr)
 AT_CHECK([GREP -q "lola: processed formula with 1 atomic propositions" stderr])
 AT_KEYWORDS(formula)
 AT_CLEANUP


-- 
You received this e-mail, because you subscribed the mailing list 
"service-tech-commits" which will forward you any e-mail addressed to 
[email protected]. If you want to unsubscribe or make any changes to 
your subscription, please go to
https://mail.gna.org/listinfo/service-tech-commits.

Reply via email to