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