fixed label precedence in programs

parent 8e58285e
...@@ -190,6 +190,7 @@ ...@@ -190,6 +190,7 @@
/* Precedences */ /* Precedences */
%nonassoc prec_label
%nonassoc prec_post %nonassoc prec_post
%nonassoc BAR %nonassoc BAR
...@@ -1073,7 +1074,7 @@ expr: ...@@ -1073,7 +1074,7 @@ expr:
{ mk_expr (Ematch ($2, $5)) } { mk_expr (Ematch ($2, $5)) }
| MATCH expr COMMA list1_expr_sep_comma WITH bar_ program_match_cases END | MATCH expr COMMA list1_expr_sep_comma WITH bar_ program_match_cases END
{ mk_expr (Ematch (mk_expr (Etuple ($2::$4)), $7)) } { mk_expr (Ematch (mk_expr (Etuple ($2::$4)), $7)) }
| LABEL uident COLON expr | LABEL uident COLON expr %prec prec_label
{ mk_expr (Elabel ($2, $4)) } { mk_expr (Elabel ($2, $4)) }
| LOOP loop_annotation expr END | LOOP loop_annotation expr END
{ mk_expr (Eloop ($2, $3)) } { mk_expr (Eloop ($2, $3)) }
......
o automatically add a label pre_f at entrance of each function f
o use of old in loop invariant should be reported as an error (correctly) o use of old in loop invariant should be reported as an error (correctly)
o what about pervasives old, at, label, unit = () o what about pervasives old, at, label, unit = ()
...@@ -7,8 +9,6 @@ o what about pervasives old, at, label, unit = () ...@@ -7,8 +9,6 @@ o what about pervasives old, at, label, unit = ()
o fmla_effect o fmla_effect
o fixed precedence of label (label L: e) wrt sequence (e ; e)
o model types (abstract but not mutable) o model types (abstract but not mutable)
abstract types (no model) abstract types (no model)
......
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