aboutsummaryrefslogtreecommitdiff
path: root/parsing
diff options
context:
space:
mode:
authorherbelin2000-10-18 14:06:06 +0000
committerherbelin2000-10-18 14:06:06 +0000
commite7c09fdda1dce69bc115090f296df8dbd6970584 (patch)
treede809c988bcb459bb89f5870714ce189d45acf11 /parsing
parent3a0a4c5dd50e113df5d04b4b76b6bcc5bd40deea (diff)
Parsing des motifs de Syntax avec la grammaire associée à l'univers de la déclaration (constr, tactic ou vernac) au lieu de ast (comme cela a été fait pour Grammar)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@721 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'parsing')
-rw-r--r--parsing/g_basevernac.ml48
-rw-r--r--parsing/g_prim.ml43
2 files changed, 6 insertions, 5 deletions
diff --git a/parsing/g_basevernac.ml4 b/parsing/g_basevernac.ml4
index 1dfc5790f5..9fa0323986 100644
--- a/parsing/g_basevernac.ml4
+++ b/parsing/g_basevernac.ml4
@@ -192,19 +192,19 @@ END;
GEXTEND Gram
GLOBAL: syntax Prim.syntax_entry Prim.grammar_entry;
- grammar_univ:
+ univ:
[ [ univ = IDENT ->
let _ = set_default_action_parser_by_name univ in univ ] ]
;
syntax:
[ [ "Token"; s = STRING; "." -> <:ast< (TOKEN ($STR $s)) >>
- | "Grammar"; univ = grammar_univ;
+ | "Grammar"; univ = univ;
tl = LIST1 Prim.grammar_entry SEP "with"; "." ->
<:ast< (GRAMMAR ($VAR univ) (ASTLIST ($LIST tl))) >>
- | "Syntax"; whatfor=IDENT; el=LIST1 Prim.syntax_entry SEP ";"; "." ->
- <:ast< (SYNTAX ($VAR whatfor) (ASTLIST ($LIST el))) >>
+ | "Syntax"; univ = univ; el=LIST1 Prim.syntax_entry SEP ";"; "." ->
+ <:ast< (SYNTAX ($VAR univ) (ASTLIST ($LIST el))) >>
| IDENT "Infix"; as_ = entry_prec; n = numarg; op = Prim.string;
p = identarg; "." -> <:ast< (INFIX (AST $as_) $n $op $p) >>
| IDENT "Distfix"; as_ = entry_prec; n = numarg; s = Prim.string;
diff --git a/parsing/g_prim.ml4 b/parsing/g_prim.ml4
index 239277828f..35d329177c 100644
--- a/parsing/g_prim.ml4
+++ b/parsing/g_prim.ml4
@@ -46,7 +46,8 @@ GEXTEND Gram
(* meta-syntax entries *)
astpat:
- [ [ a = ast -> Node loc "ASTPAT" [a] ] ]
+ [ [ "<<" ; a = ast; ">>" -> Node loc "ASTPAT" [a]
+ | a = default_action_parser -> Node loc "ASTPAT" [a] ] ]
;
astact:
[ [ a = action -> Node loc "ASTACT" [a] ] ]