diff options
author | herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2009-08-06 19:20:38 +0000 |
---|---|---|
committer | herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2009-08-06 19:20:38 +0000 |
commit | fa87b9196df910caa4cb085f9dee69ca58df0c34 (patch) | |
tree | 6708cb73f9e8622e6e3ba71ddcf400e91e084f51 /library | |
parent | ffa57bae1e18fd52d63e8512a352ac63db15a7a9 (diff) |
Cleaning of Nametab continued + fixed a compilation bug in previous commit.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12266 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'library')
-rw-r--r-- | library/libnames.ml | 6 | ||||
-rw-r--r-- | library/nametab.ml | 2 | ||||
-rwxr-xr-x | library/nametab.mli | 24 |
3 files changed, 22 insertions, 10 deletions
diff --git a/library/libnames.ml b/library/libnames.ml index 650b5c33f..21be8f7d1 100644 --- a/library/libnames.ml +++ b/library/libnames.ml @@ -188,7 +188,7 @@ let encode_kn dir id = make_kn (MPfile dir) empty_dirpath (label_of_id id) let encode_con dir id = make_con (MPfile dir) empty_dirpath (label_of_id id) let decode_kn kn = - let rec dir_of_mp = function + let rec dirpath_of_module = function | MPfile dir -> repr_dirpath dir | MPbound mbid -> let _,_,dp = repr_mbid mbid in @@ -198,11 +198,11 @@ let decode_kn kn = let _,_,dp = repr_msid msid in let id = id_of_msid msid in id::(repr_dirpath dp) - | MPdot(mp,l) -> (id_of_label l)::(dir_of_mp mp) + | MPdot(mp,l) -> (id_of_label l)::(dirpath_of_module mp) in let mp,sec_dir,l = repr_kn kn in if (repr_dirpath sec_dir) = [] then - (make_dirpath (dir_of_mp mp)),id_of_label l + (make_dirpath (dirpath_of_module mp)),id_of_label l else anomaly "Section part should be empty!" diff --git a/library/nametab.ml b/library/nametab.ml index 7f148f0d3..a511a4e60 100644 --- a/library/nametab.ml +++ b/library/nametab.ml @@ -460,7 +460,7 @@ let basename_of_global ref = let path_of_syndef kn = Globrevtab.find (SynDef kn) !the_globrevtab -let dir_of_mp mp = +let dirpath_of_module mp = MPmap.find mp !the_modrevtab diff --git a/library/nametab.mli b/library/nametab.mli index c529120dd..634e4d034 100755 --- a/library/nametab.mli +++ b/library/nametab.mli @@ -16,7 +16,21 @@ open Libnames (*i*) (*s This module contains the tables for globalization, which - associates internal object references to qualified names (qualid). *) + associates internal object references to qualified names (qualid). + + There are three classes of names: + + 1a- internal kernel names: [kernel_name], [constant], [inductive], + [module_path] + + 1b- other internal names: [global_reference], [syndef_name], + [extended_global_reference], [global_dir_reference], ... + + 2- full, non ambiguous user names: [full_path] and [dir_path] + + 3- non necessarily full, possibly ambiguous user names: [reference] + and [qualid] +*) (* Most functions in this module fall into one of the following categories: \begin{itemize} @@ -130,14 +144,12 @@ val full_name_module : qualid -> dir_path (*s Reverse lookup -- finding user names corresponding to the given internal name *) -(* Returns the dirpath associated to a module path *) - -val dir_of_mp : module_path -> dir_path - -(* Returns full path bound to a global reference or syntactic definition *) +(* Returns the full path bound to a global reference or syntactic + definition, and the (full) dirpath associated to a module path *) val path_of_syndef : syndef_name -> full_path val path_of_global : global_reference -> full_path +val dirpath_of_module : module_path -> dir_path (* Returns in particular the dirpath or the basename of the full path associated to global reference *) |