equal
deleted
inserted
replaced
37 val valid_accesses: T -> string -> xstring list |
37 val valid_accesses: T -> string -> xstring list |
38 val intern: T -> xstring -> string |
38 val intern: T -> xstring -> string |
39 val extern: T -> string -> xstring |
39 val extern: T -> string -> xstring |
40 val hide: bool -> string -> T -> T |
40 val hide: bool -> string -> T -> T |
41 val merge: T * T -> T |
41 val merge: T * T -> T |
42 val dest: T -> (string * xstring list) list |
|
43 type naming |
42 type naming |
44 val path_of: naming -> string |
43 val path_of: naming -> string |
45 val full: naming -> bstring -> string |
44 val full: naming -> bstring -> string |
46 val declare: naming -> string -> T -> T |
45 val declare: naming -> string -> T -> T |
47 val default_naming: naming |
46 val default_naming: naming |
181 fun merge (NameSpace tab1, space2) = Symtab.fold (fn (xname, (names1, names1')) => |
180 fun merge (NameSpace tab1, space2) = Symtab.fold (fn (xname, (names1, names1')) => |
182 xname |> map_space (fn (names2, names2') => |
181 xname |> map_space (fn (names2, names2') => |
183 (merge_lists' names2 names1, merge_lists' names2' names1'))) tab1 space2; |
182 (merge_lists' names2 names1, merge_lists' names2' names1'))) tab1 space2; |
184 |
183 |
185 |
184 |
186 (* dest *) |
|
187 |
|
188 fun dest_entry (xname, ([], _)) = NONE |
|
189 | dest_entry (xname, (name :: _, _)) = SOME (name, xname); |
|
190 |
|
191 fun dest (NameSpace tab) = |
|
192 map (apsnd (sort (int_ord o pairself size))) |
|
193 (Symtab.dest (Symtab.make_multi (List.mapPartial dest_entry (Symtab.dest tab)))); |
|
194 |
|
195 |
|
196 |
185 |
197 (** naming contexts **) |
186 (** naming contexts **) |
198 |
187 |
199 (* datatype naming *) |
188 (* datatype naming *) |
200 |
189 |