summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--camlp4/etc/pa_o.ml20
1 files changed, 8 insertions, 12 deletions
diff --git a/camlp4/etc/pa_o.ml b/camlp4/etc/pa_o.ml
index 60c26c51e..d5efa6611 100644
--- a/camlp4/etc/pa_o.ml
+++ b/camlp4/etc/pa_o.ml
@@ -557,7 +557,7 @@ EXTEND
<:expr< let module $m$ = $mb$ in $e$ >>
| "function"; OPT "|"; l = LIST1 match_case SEP "|" ->
<:expr< fun [ $list:l$ ] >>
- | "fun"; p = simple_patt; e = fun_def ->
+ | "fun"; p = patt LEVEL "simple"; e = fun_def ->
<:expr< fun [$p$ -> $e$] >>
| "match"; e = SELF; "with"; OPT "|"; l = LIST1 match_case SEP "|" ->
<:expr< match $e$ with [ $list:l$ ] >>
@@ -718,7 +718,7 @@ EXTEND
;
fun_binding:
[ RIGHTA
- [ p = simple_patt; e = SELF -> <:expr< fun $p$ -> $e$ >>
+ [ p = patt LEVEL "simple"; e = SELF -> <:expr< fun $p$ -> $e$ >>
| "="; e = expr -> <:expr< $e$ >>
| ":"; t = ctyp; "="; e = expr -> <:expr< ($e$ : $t$) >> ] ]
;
@@ -741,7 +741,7 @@ EXTEND
;
fun_def:
[ RIGHTA
- [ p = simple_patt; e = SELF -> <:expr< fun $p$ -> $e$ >>
+ [ p = patt LEVEL "simple"; e = SELF -> <:expr< fun $p$ -> $e$ >>
| "->"; e = expr -> <:expr< $e$ >> ] ]
;
expr_ident:
@@ -792,11 +792,7 @@ EXTEND
| LEFTA
[ p1 = SELF; "."; p2 = SELF -> <:patt< $p1$ . $p2$ >> ]
| "simple"
- [ p = simple_patt -> p ] ]
- ;
-
- simple_patt:
- [ [ s = LIDENT -> <:patt< $lid:s$ >>
+ [ s = LIDENT -> <:patt< $lid:s$ >>
| s = UIDENT -> <:patt< $uid:s$ >>
| s = INT -> <:patt< $int:s$ >>
| s = INT32 -> MLast.PaInt32 _loc s
@@ -991,7 +987,7 @@ EXTEND
[ [ "="; ce = class_expr -> ce
| ":"; ct = class_type; "="; ce = class_expr ->
<:class_expr< ($ce$ : $ct$) >>
- | p = simple_patt; cfb = SELF ->
+ | p = patt LEVEL "simple"; cfb = SELF ->
<:class_expr< fun $p$ -> $cfb$ >> ] ]
;
class_type_parameters:
@@ -999,11 +995,11 @@ EXTEND
| "["; tpl = LIST1 type_parameter SEP ","; "]" -> (_loc, tpl) ] ]
;
class_fun_def:
- [ [ p = simple_patt; "->"; ce = class_expr ->
+ [ [ p = patt LEVEL "simple"; "->"; ce = class_expr ->
<:class_expr< fun $p$ -> $ce$ >>
| p = labeled_patt; "->"; ce = class_expr ->
<:class_expr< fun $p$ -> $ce$ >>
- | p = simple_patt; cfd = SELF ->
+ | p = patt LEVEL "simple"; cfd = SELF ->
<:class_expr< fun $p$ -> $cfd$ >>
| p = labeled_patt; cfd = SELF ->
<:class_expr< fun $p$ -> $cfd$ >> ] ]
@@ -1226,7 +1222,7 @@ EXTEND
[ [ p = labeled_patt; e = SELF -> <:expr< fun $p$ -> $e$ >> ] ]
;
labeled_patt:
- [ [ i = LABEL; p = simple_patt ->
+ [ [ i = LABEL; p = patt LEVEL "simple" ->
<:patt< ~ $i$ : $p$ >>
| i = TILDEIDENT ->
<:patt< ~ $i$ >>