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);
|
("merge", TO_merge);
|
||||||
("when", WHEN);
|
("when", WHEN);
|
||||||
("reset", RESET);
|
("reset", RESET);
|
||||||
|
("every", EVERY);
|
||||||
("pre", MO_pre);
|
("pre", MO_pre);
|
||||||
("true", CONST_BOOL(true));
|
("true", CONST_BOOL(true));
|
||||||
("false", CONST_BOOL(false));
|
("false", CONST_BOOL(false));
|
||||||
|
@ -144,6 +144,7 @@
|
|||||||
|
|
||||||
%token WHEN
|
%token WHEN
|
||||||
%token RESET
|
%token RESET
|
||||||
|
%token EVERY
|
||||||
|
|
||||||
%token IF
|
%token IF
|
||||||
%token THEN
|
%token THEN
|
||||||
@ -381,9 +382,9 @@ expr:
|
|||||||
then EWhen (t1, e1, e2)
|
then EWhen (t1, e1, e2)
|
||||||
else raise (MyParsingError ("The when does not type-check!",
|
else raise (MyParsingError ("The when does not type-check!",
|
||||||
current_location())) }
|
current_location())) }
|
||||||
| expr RESET expr
|
| RESET expr EVERY expr
|
||||||
{ let e1 = $1 in let t1 = type_exp e1 in
|
{ let e1 = $2 in let t1 = type_exp e1 in
|
||||||
let e2 = $3 in let t2 = type_exp e2 in
|
let e2 = $4 in let t2 = type_exp e2 in
|
||||||
if t2 = [TBool]
|
if t2 = [TBool]
|
||||||
then EReset (t1, e1, e2)
|
then EReset (t1, e1, e2)
|
||||||
else raise (MyParsingError ("The reset does not type-check!",
|
else raise (MyParsingError ("The reset does not type-check!",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user