20 val suffix_name: string -> binding -> binding |
20 val suffix_name: string -> binding -> binding |
21 val eq_name: binding * binding -> bool |
21 val eq_name: binding * binding -> bool |
22 val empty: binding |
22 val empty: binding |
23 val is_empty: binding -> bool |
23 val is_empty: binding -> bool |
24 val qualify: bool -> string -> binding -> binding |
24 val qualify: bool -> string -> binding -> binding |
|
25 val qualified: bool -> string -> binding -> binding |
25 val qualified_name: string -> binding |
26 val qualified_name: string -> binding |
26 val qualified_name_of: binding -> string |
27 val qualified_name_of: binding -> string |
27 val prefix_of: binding -> (string * bool) list |
28 val prefix_of: binding -> (string * bool) list |
28 val map_prefix: ((string * bool) list -> (string * bool) list) -> binding -> binding |
29 val map_prefix: ((string * bool) list -> (string * bool) list) -> binding -> binding |
29 val prefix: bool -> string -> binding -> binding |
30 val prefix: bool -> string -> binding -> binding |
85 fun qualify _ "" = I |
86 fun qualify _ "" = I |
86 | qualify mandatory qual = |
87 | qualify mandatory qual = |
87 map_binding (fn (conceal, prefix, qualifier, name, pos) => |
88 map_binding (fn (conceal, prefix, qualifier, name, pos) => |
88 (conceal, prefix, (qual, mandatory) :: qualifier, name, pos)); |
89 (conceal, prefix, (qual, mandatory) :: qualifier, name, pos)); |
89 |
90 |
|
91 fun qualified mandatory name' = map_binding (fn (conceal, prefix, qualifier, name, pos) => |
|
92 let val qualifier' = if name = "" then qualifier else qualifier @ [(name, mandatory)] |
|
93 in (conceal, prefix, qualifier', name', pos) end); |
|
94 |
90 fun qualified_name "" = empty |
95 fun qualified_name "" = empty |
91 | qualified_name s = |
96 | qualified_name s = |
92 let val (qualifier, name) = split_last (Long_Name.explode s) |
97 let val (qualifier, name) = split_last (Long_Name.explode s) |
93 in make_binding (false, [], map (rpair false) qualifier, name, Position.none) end; |
98 in make_binding (false, [], map (rpair false) qualifier, name, Position.none) end; |
94 |
99 |