From 7e563847718807cf309d72fcad926e2212047b42 Mon Sep 17 00:00:00 2001
From: Daniel de Rauglaudre <daniel.de_rauglaudre@inria.fr>
Date: Tue, 23 Oct 2001 12:44:48 +0000
Subject: -

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@3908 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
---
 camlp4/ocaml_src/meta/pa_r.ml | 43 ++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 42 insertions(+), 1 deletion(-)

(limited to 'camlp4/ocaml_src/meta/pa_r.ml')

diff --git a/camlp4/ocaml_src/meta/pa_r.ml b/camlp4/ocaml_src/meta/pa_r.ml
index b84c351fd..df5204f0a 100644
--- a/camlp4/ocaml_src/meta/pa_r.ml
+++ b/camlp4/ocaml_src/meta/pa_r.ml
@@ -2357,7 +2357,48 @@ Grammar.extend
     Grammar.Entry.obj (patt : 'patt Grammar.Entry.e),
     Some (Gramext.Level "simple"),
     [None, None,
-     [[Gramext.Stoken ("", "#");
+     [[Gramext.Stoken ("QUESTIONIDENT", "")],
+      Gramext.action
+        (fun (i : string) (loc : int * int) ->
+           (MLast.PaOlb (loc, i, MLast.PaLid (loc, i), None) : 'patt));
+      [Gramext.Stoken ("QUESTIONIDENTCOLON", ""); Gramext.Stoken ("", "(");
+       Gramext.Sself; Gramext.Stoken ("", ":");
+       Gramext.Snterm (Grammar.Entry.obj (ctyp : 'ctyp Grammar.Entry.e));
+       Gramext.Stoken ("", "=");
+       Gramext.Snterm (Grammar.Entry.obj (expr : 'expr Grammar.Entry.e));
+       Gramext.Stoken ("", ")")],
+      Gramext.action
+        (fun _ (e : 'expr) _ (t : 'ctyp) _ (p : 'patt) _ (i : string)
+           (loc : int * int) ->
+           (MLast.PaOlb (loc, i, MLast.PaTyc (loc, p, t), Some e) : 'patt));
+      [Gramext.Stoken ("QUESTIONIDENTCOLON", ""); Gramext.Stoken ("", "(");
+       Gramext.Sself; Gramext.Stoken ("", ":");
+       Gramext.Snterm (Grammar.Entry.obj (ctyp : 'ctyp Grammar.Entry.e));
+       Gramext.Stoken ("", ")")],
+      Gramext.action
+        (fun _ (t : 'ctyp) _ (p : 'patt) _ (i : string) (loc : int * int) ->
+           (MLast.PaOlb (loc, i, MLast.PaTyc (loc, p, t), None) : 'patt));
+      [Gramext.Stoken ("QUESTIONIDENTCOLON", ""); Gramext.Stoken ("", "(");
+       Gramext.Sself; Gramext.Stoken ("", "=");
+       Gramext.Snterm (Grammar.Entry.obj (expr : 'expr Grammar.Entry.e));
+       Gramext.Stoken ("", ")")],
+      Gramext.action
+        (fun _ (e : 'expr) _ (p : 'patt) _ (i : string) (loc : int * int) ->
+           (MLast.PaOlb (loc, i, p, Some e) : 'patt));
+      [Gramext.Stoken ("QUESTIONIDENTCOLON", ""); Gramext.Stoken ("", "(");
+       Gramext.Sself; Gramext.Stoken ("", ")")],
+      Gramext.action
+        (fun _ (p : 'patt) _ (i : string) (loc : int * int) ->
+           (MLast.PaOlb (loc, i, p, None) : 'patt));
+      [Gramext.Stoken ("TILDEIDENT", "")],
+      Gramext.action
+        (fun (i : string) (loc : int * int) ->
+           (MLast.PaLab (loc, i, MLast.PaLid (loc, i)) : 'patt));
+      [Gramext.Stoken ("TILDEIDENTCOLON", ""); Gramext.Sself],
+      Gramext.action
+        (fun (p : 'patt) (i : string) (loc : int * int) ->
+           (MLast.PaLab (loc, i, p) : 'patt));
+      [Gramext.Stoken ("", "#");
        Gramext.Snterm
          (Grammar.Entry.obj (mod_ident : 'mod_ident Grammar.Entry.e))],
       Gramext.action
-- 
cgit v1.2.3-70-g09d2