diff options
| author | letouzey | 2009-12-07 15:24:13 +0000 |
|---|---|---|
| committer | letouzey | 2009-12-07 15:24:13 +0000 |
| commit | 35159e8aa9bf33b4882bc7f17c2e363f769624c7 (patch) | |
| tree | b4791a8db7bcc1369025b1d261dc6d2a6301278c /parsing | |
| parent | 78ad7ad114f3872c3e1c48e8427bee1351c25962 (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.ml4 | 8 | ||||
| -rw-r--r-- | parsing/ppvernac.ml | 12 |
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 ": ") ++ |
