aboutsummaryrefslogtreecommitdiff
path: root/toplevel
diff options
context:
space:
mode:
authorcoq2002-09-27 12:10:04 +0000
committercoq2002-09-27 12:10:04 +0000
commit2069ddbed501da4f24203d3fb92187e012ab582d (patch)
treee29d9b1ec828157064f8b25e2e9167913f9f3298 /toplevel
parent6a9f037bad58c73aff5a972b36a2d5549ab37e71 (diff)
Encore quelques rangements dans Nametab + petits trucs
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@3039 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'toplevel')
-rw-r--r--toplevel/vernacentries.ml58
1 files changed, 34 insertions, 24 deletions
diff --git a/toplevel/vernacentries.ml b/toplevel/vernacentries.ml
index fb6c930c16..d7a4307b22 100644
--- a/toplevel/vernacentries.ml
+++ b/toplevel/vernacentries.ml
@@ -211,30 +211,40 @@ let locate_file f =
str"on loadpath"))
let print_located_qualid (_,qid) =
- try
- let sp = Nametab.sp_of_global None (Nametab.locate qid) in
- msgnl (pr_sp sp)
- with Not_found ->
- try
- let kn = Nametab.locate_syntactic_definition qid in
- let sp = Nametab.sp_of_syntactic_definition kn in
- msgnl (pr_sp sp)
- with Not_found ->
- try
- let dir = match Nametab.locate_dir qid with
- | DirOpenModule (dir,_)
- | DirOpenModtype (dir,_)
- | DirOpenSection (dir,_)
- | DirModule (dir,_)
- | DirClosedSection dir -> dir
- in
- msgnl (pr_dirpath dir)
- with Not_found ->
- try
- let sp = Nametab.full_name_modtype qid in
- msgnl (pr_sp sp)
- with Not_found ->
- msgnl (pr_qualid qid ++ str " is not a defined object")
+ let msg =
+ try
+ let ref = Nametab.locate qid in
+ let ref_str = match ref with
+ ConstRef _ -> "Constant"
+ | IndRef _ -> "Inductive"
+ | ConstructRef _ -> "Constructor"
+ | VarRef _ -> "Variable"
+ in
+ let sp = Nametab.sp_of_global None ref in
+ str ref_str ++ spc () ++ pr_sp sp
+ with Not_found ->
+ try
+ let kn = Nametab.locate_syntactic_definition qid in
+ let sp = Nametab.sp_of_syntactic_definition kn in
+ str "Syntactic Definition" ++ spc () ++ pr_sp sp
+ with Not_found ->
+ try
+ let s,dir = match Nametab.locate_dir qid with
+ | DirOpenModule (dir,_) -> "Open Module", dir
+ | DirOpenModtype (dir,_) -> "Open Module Type", dir
+ | DirOpenSection (dir,_) -> "Open Section", dir
+ | DirModule (dir,_) -> "Module", dir
+ | DirClosedSection dir -> "Closed Section", dir
+ in
+ str s ++ spc () ++ pr_dirpath dir
+ with Not_found ->
+ try
+ let sp = Nametab.full_name_modtype qid in
+ str "Module Type" ++ spc () ++ pr_sp sp
+ with Not_found ->
+ pr_qualid qid ++ str " is not a defined object"
+ in
+ msgnl (hov 0 msg)
(*let print_path_entry (s,l) =
(str s ++ tbrk (0,2) ++ str (string_of_dirpath l))