aboutsummaryrefslogtreecommitdiff
path: root/parsing
diff options
context:
space:
mode:
authorletouzey2009-12-07 15:24:13 +0000
committerletouzey2009-12-07 15:24:13 +0000
commit35159e8aa9bf33b4882bc7f17c2e363f769624c7 (patch)
treeb4791a8db7bcc1369025b1d261dc6d2a6301278c /parsing
parent78ad7ad114f3872c3e1c48e8427bee1351c25962 (diff)
No more specific syntax "Include Self" for inclusion of partially-applied functors
For Module F(X:SIG), making now a Include F will try to find the X fields in the current context, just as was doing earlier Include Self F. This specific syntax is removed, freeing the keyword "Self". Anyway, with the use of the syntax "<+" there was already hardly any need for syntax "Include Self". Idem for Include Type. Beware that a typo such as "Include F" instead of "Include F G" will produce a different message now, about a missing field instead of a not-enough-applied functor. By the way, some code clean-up and factorisation of inner recursive functions in declaremods.ml. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12566 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'parsing')
-rw-r--r--parsing/g_vernac.ml48
-rw-r--r--parsing/ppvernac.ml12
2 files changed, 8 insertions, 12 deletions
diff --git a/parsing/g_vernac.ml4 b/parsing/g_vernac.ml4
index 54cf671ccb..89d06d2ddb 100644
--- a/parsing/g_vernac.ml4
+++ b/parsing/g_vernac.ml4
@@ -396,13 +396,9 @@ GEXTEND Gram
| IDENT "Import"; qidl = LIST1 global -> VernacImport (false,qidl)
| IDENT "Export"; qidl = LIST1 global -> VernacImport (true,qidl)
| IDENT "Include"; e = module_expr; l = LIST0 ext_module_expr ->
- VernacInclude(false,CIME(e,l))
+ VernacInclude(CIME(e::l))
| IDENT "Include"; "Type"; e = module_type; l = LIST0 ext_module_type ->
- VernacInclude(false,CIMTE(e,l))
- | IDENT "Include"; "Self"; e = module_expr ->
- VernacInclude(true,CIME(e,[]))
- | IDENT "Include"; "Self"; "Type"; e = module_type ->
- VernacInclude(true,CIMTE(e,[])) ] ]
+ VernacInclude(CIMTE(e::l)) ] ]
;
export_token:
[ [ IDENT "Import" -> Some false
diff --git a/parsing/ppvernac.ml b/parsing/ppvernac.ml
index 4f31607aa2..224b2e2bf9 100644
--- a/parsing/ppvernac.ml
+++ b/parsing/ppvernac.ml
@@ -762,14 +762,14 @@ let rec pr_vernac = function
prlist_strict (fun m -> str " <: " ++ pr_mt m) tyl ++
(if m = [] then mt () else str ":= ") ++
prlist_with_sep (fun () -> str " <+ ") pr_mt m)
- | VernacInclude (b,CIMTE(mty,mtys)) ->
+ | VernacInclude (CIMTE(mtys)) ->
let pr_mty = pr_module_type pr_lconstr in
- hov 2 (str"Include " ++ str (if b then "Self " else "") ++ str "Type " ++
- prlist_with_sep (fun () -> str " <+ ") pr_mty (mty::mtys))
- | VernacInclude (b,CIME(mexpr,mexprs)) ->
+ hov 2 (str"Include Type " ++
+ prlist_with_sep (fun () -> str " <+ ") pr_mty mtys)
+ | VernacInclude (CIME(mexprs)) ->
let pr_me = pr_module_expr in
- hov 2 (str"Include " ++ str (if b then "Self " else "") ++
- prlist_with_sep (fun () -> str " <+ ") pr_me (mexpr::mexprs))
+ hov 2 (str"Include " ++
+ prlist_with_sep (fun () -> str " <+ ") pr_me mexprs)
(* Solving *)
| VernacSolve (i,tac,deftac) ->
(if i = 1 then mt() else int i ++ str ": ") ++