From 8831bd3a29f3daf87fa0add6680c947f5744e781 Mon Sep 17 00:00:00 2001 From: Andrei Paskevich Date: Thu, 17 Mar 2016 15:00:18 +0100 Subject: [PATCH] Mlw: "let constant" admits a type cast --- src/parser/parser.mly | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/parser/parser.mly b/src/parser/parser.mly index e201a7fb6..10b3cd0fb 100644 --- a/src/parser/parser.mly +++ b/src/parser/parser.mly @@ -633,7 +633,7 @@ numeral: prog_decl: | VAL ghost kind labels(lident_rich) mk_expr(val_defn) { Dlet ($4, $2, $3, $5) } | LET ghost kind labels(lident_rich) mk_expr(fun_defn) { Dlet ($4, $2, $3, $5) } -| LET ghost kind labels(lident_rich) EQUAL seq_expr { Dlet ($4, $2, $3, $6) } +| LET ghost kind labels(lident_rich) const_defn { Dlet ($4, $2, $3, $5) } | LET REC with_list1(rec_defn) { Drec $3 } | EXCEPTION labels(uident) { Dexn ($2, PTtuple [], Ity.MaskVisible) } | EXCEPTION labels(uident) return { Dexn ($2, fst $3, snd $3) } @@ -663,6 +663,10 @@ val_defn: | params ret_opt spec { Eany ($1, Expr.RKnone, fst $2, snd $2, $3) } +const_defn: +| cast EQUAL seq_expr { { $3 with expr_desc = Ecast ($3, $1) } } +| EQUAL seq_expr { $2 } + (* Program expressions *) mk_expr(X): d = X { mk_expr d $startpos $endpos } -- GitLab