Move from the x reset y
syntax to reset x every y
one
As described on https://www.di.ens.fr/~pouzet/cours/mpri/cours7/coiteration.pdf#page=4
This commit is contained in:
parent
01d4a08e8a
commit
e63123d8f6
@ -26,6 +26,7 @@
|
||||
("merge", TO_merge);
|
||||
("when", WHEN);
|
||||
("reset", RESET);
|
||||
("every", EVERY);
|
||||
("pre", MO_pre);
|
||||
("true", CONST_BOOL(true));
|
||||
("false", CONST_BOOL(false));
|
||||
|
@ -144,6 +144,7 @@
|
||||
|
||||
%token WHEN
|
||||
%token RESET
|
||||
%token EVERY
|
||||
|
||||
%token IF
|
||||
%token THEN
|
||||
@ -381,9 +382,9 @@ expr:
|
||||
then EWhen (t1, e1, e2)
|
||||
else raise (MyParsingError ("The when does not type-check!",
|
||||
current_location())) }
|
||||
| expr RESET expr
|
||||
{ let e1 = $1 in let t1 = type_exp e1 in
|
||||
let e2 = $3 in let t2 = type_exp e2 in
|
||||
| RESET expr EVERY expr
|
||||
{ let e1 = $2 in let t1 = type_exp e1 in
|
||||
let e2 = $4 in let t2 = type_exp e2 in
|
||||
if t2 = [TBool]
|
||||
then EReset (t1, e1, e2)
|
||||
else raise (MyParsingError ("The reset does not type-check!",
|
||||
|
Loading…
x
Reference in New Issue
Block a user