Commit 91e51c4c authored by Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz
Browse files

Read guard of the form !(x) in neverclaims.

So far all neverclaims encountered would use (!(x)), but the
files from the Büchi store do not.

* src/neverparse/neverclaimscan.ll: Accept ! in front of guard,
so that we can read Promela files from Goal's Büchi store.
* src/tgbatest/neverclaimread.test: Test it.
parent 3278844c
2011-02-03 Alexandre Duret-Lutz <adl@lrde.epita.fr>
Read guard of the form !(x) in neverclaims.
So far all neverclaims encountered would use (!(x)), but the
files from the Büchi store do not.
* src/neverparse/neverclaimscan.ll: Accept ! in front of guard,
so that we can read Promela files from Goal's Büchi store.
* src/tgbatest/neverclaimread.test: Test it.
2011-02-03 Alexandre Duret-Lutz <adl@lrde.epita.fr> 2011-02-03 Alexandre Duret-Lutz <adl@lrde.epita.fr>
Recognize Goal's syntax for Boolean operators. Recognize Goal's syntax for Boolean operators.
......
/* Copyright (C) 2010 Laboratoire de Recherche et Dveloppement de /* Copyright (C) 2010, 2011 Laboratoire de Recherche et Dveloppement de
** l'Epita (LRDE). ** l'Epita (LRDE).
** **
** This file is part of Spot, a model checking library. ** This file is part of Spot, a model checking library.
...@@ -56,7 +56,7 @@ eol \n|\r|\n\r|\r\n ...@@ -56,7 +56,7 @@ eol \n|\r|\n\r|\r\n
"goto" return token::GOTO; "goto" return token::GOTO;
"false"|"0" return token::FALSE; "false"|"0" return token::FALSE;
"(".*")"|"true"|"1" { "!"?"(".*")"|"true"|"1" {
yylval->str = new std::string(yytext, yyleng); yylval->str = new std::string(yytext, yyleng);
return token::FORMULA; return token::FORMULA;
} }
......
...@@ -35,6 +35,7 @@ T1: ...@@ -35,6 +35,7 @@ T1:
if if
:: (p1 && (! p0)) -> goto accept_all :: (p1 && (! p0)) -> goto accept_all
:: (p1) -> goto T1 :: (p1) -> goto T1
:: !(p1) -> goto T2_init
fi; fi;
accept_all: accept_all:
skip skip
...@@ -53,6 +54,7 @@ digraph G { ...@@ -53,6 +54,7 @@ digraph G {
2 [label="T1"] 2 [label="T1"]
2 -> 3 [label="p1 & !p0\n"] 2 -> 3 [label="p1 & !p0\n"]
2 -> 2 [label="p1\n"] 2 -> 2 [label="p1\n"]
2 -> 1 [label="!p1\n"]
3 [label="accept_all"] 3 [label="accept_all"]
3 -> 3 [label="1\n{Acc[1]}"] 3 -> 3 [label="1\n{Acc[1]}"]
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment