aboutsummaryrefslogtreecommitdiffhomepage
path: root/parsing
diff options
context:
space:
mode:
authorGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2003-09-06 14:17:55 +0000
committerGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2003-09-06 14:17:55 +0000
commitcb8db3f7af710970a4ddba2fc559910ff7feaffb (patch)
treee8f7756f762a7d8abedf4e49e54caa47bf7f985a /parsing
parentd36b4c46cc1cadf73808f4f9e7ef3d1e320c72aa (diff)
Mise en place possibilité de définitions locales dans les paramètres des inductifs
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@4316 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'parsing')
-rw-r--r--parsing/g_vernac.ml49
-rw-r--r--parsing/g_vernacnew.ml42
2 files changed, 10 insertions, 1 deletions
diff --git a/parsing/g_vernac.ml4 b/parsing/g_vernac.ml4
index d038e7d8c..21906628c 100644
--- a/parsing/g_vernac.ml4
+++ b/parsing/g_vernac.ml4
@@ -222,6 +222,9 @@ GEXTEND Gram
oneind:
[ [ id = base_ident; indpar = simple_binders_list; ":"; c = constr;
ntn = OPT decl_notation ; ":="; lc = constructor_list ->
+ let indpar =
+ List.map (fun (id,t) -> LocalRawAssum ([dummy_loc,Name id],t))
+ indpar in
(id,ntn,indpar,c,lc) ] ]
;
simple_binders_list:
@@ -303,6 +306,9 @@ GEXTEND Gram
gallina_ext:
[ [ IDENT "Mutual"; bl = ne_simple_binders_list ; f = finite_token;
indl = block_old_style ->
+ let bl =
+ List.map (fun (id,t) -> LocalRawAssum ([dummy_loc,Name id],t)) bl
+ in
let indl' = List.map (fun (id,ar,c) -> (id,None,bl,ar,c)) indl in
VernacInductive (f,indl')
| b = record_token; oc = opt_coercion; name = base_ident;
@@ -321,6 +327,9 @@ GEXTEND Gram
| IDENT "Scheme"; l = schemes -> VernacScheme l
| f = finite_token; s = csort; id = base_ident;
indpar = simple_binders_list; ":="; lc = constructor_list ->
+ let indpar =
+ List.map (fun (id,t) -> LocalRawAssum ([dummy_loc,Name id],t))
+ indpar in
VernacInductive (f,[id,None,indpar,s,lc]) ] ]
;
csort:
diff --git a/parsing/g_vernacnew.ml4 b/parsing/g_vernacnew.ml4
index 6b11d5c98..31daf4afd 100644
--- a/parsing/g_vernacnew.ml4
+++ b/parsing/g_vernacnew.ml4
@@ -184,7 +184,7 @@ GEXTEND Gram
;
(* Inductives and records *)
inductive_definition:
- [ [ id = base_ident; indpar = LIST0 simple_binder; ":"; c = lconstr;
+ [ [ id = base_ident; indpar = LIST0 binder_let; ":"; c = lconstr;
ntn = decl_notation; ":="; lc = constructor_list ->
(id,ntn,indpar,c,lc) ] ]
;