summaryrefslogtreecommitdiffstats
path: root/parsing/parser.mly
diff options
context:
space:
mode:
Diffstat (limited to 'parsing/parser.mly')
-rw-r--r--parsing/parser.mly25
1 files changed, 3 insertions, 22 deletions
diff --git a/parsing/parser.mly b/parsing/parser.mly
index 87d43bdab..43a485151 100644
--- a/parsing/parser.mly
+++ b/parsing/parser.mly
@@ -319,17 +319,6 @@ let wrap_type_annotation newtypes core_type body =
let polyvars, core_type = varify_constructors newtypes core_type in
(exp, ghtyp(Ptyp_poly(polyvars,core_type)))
-let let_operator op bindings cont =
- let pat, expr =
- match List.rev bindings with
- | [] -> assert false
- | [x] -> x
- | l ->
- let pats, exprs = List.split l in
- ghpat (Ppat_tuple pats), ghexp (Pexp_tuple exprs)
- in
- mkexp(Pexp_apply(op, ["", expr; "", ghexp(Pexp_function("", None, [pat, cont]))]))
-
%}
/* Tokens */
@@ -397,7 +386,6 @@ let let_operator op bindings cont =
%token LESS
%token LESSMINUS
%token LET
-%token <string> LETOP
%token <string> LIDENT
%token LPAREN
%token MATCH
@@ -474,7 +462,6 @@ The precedences must be listed from low to high.
%nonassoc below_SEMI
%nonassoc SEMI /* below EQUAL ({lbl=...; lbl=...}) */
%nonassoc LET /* above SEMI ( ...; let ... in ...) */
-%nonassoc LETOP
%nonassoc below_WITH
%nonassoc FUNCTION WITH /* below BAR (match ... with ...) */
%nonassoc AND /* above WITH (module rec A: SIG with ... and ...) */
@@ -995,8 +982,9 @@ expr:
{ mkexp(Pexp_apply($1, List.rev $2)) }
| LET rec_flag let_bindings IN seq_expr
{ mkexp(Pexp_let($2, List.rev $3, $5)) }
- | let_operator let_bindings IN seq_expr
- { let_operator $1 $2 $4 }
+ | LET DOT simple_expr let_binding IN seq_expr
+ { let (pat, expr) = $4 in
+ mkexp(Pexp_apply($3, ["", expr; "", ghexp(Pexp_function("", None, [pat, $6]))])) }
| LET MODULE UIDENT module_binding IN seq_expr
{ mkexp(Pexp_letmodule($3, $4, $6)) }
| LET OPEN mod_longident IN seq_expr
@@ -1719,7 +1707,6 @@ operator:
| INFIXOP2 { $1 }
| INFIXOP3 { $1 }
| INFIXOP4 { $1 }
- | LETOP { $1 }
| BANG { "!" }
| PLUS { "+" }
| PLUSDOT { "+." }
@@ -1735,12 +1722,6 @@ operator:
| AMPERAMPER { "&&" }
| COLONEQUAL { ":=" }
;
-let_operator:
- LETOP
- { mkexp (Pexp_ident(Lident $1)) }
- | mod_longident DOT LETOP
- { mkexp (Pexp_ident(Ldot ($1, $3))) }
-;
constr_ident:
UIDENT { $1 }
/* | LBRACKET RBRACKET { "[]" } */