equal
deleted
inserted
replaced
28 val prefix_of: binding -> (string * bool) list |
28 val prefix_of: binding -> (string * bool) list |
29 val map_prefix: ((string * bool) list -> (string * bool) list) -> binding -> binding |
29 val map_prefix: ((string * bool) list -> (string * bool) list) -> binding -> binding |
30 val prefix: bool -> string -> binding -> binding |
30 val prefix: bool -> string -> binding -> binding |
31 val conceal: binding -> binding |
31 val conceal: binding -> binding |
32 val str_of: binding -> string |
32 val str_of: binding -> string |
|
33 val bad: binding -> string |
|
34 val check: binding -> unit |
33 end; |
35 end; |
34 |
36 |
35 structure Binding: BINDING = |
37 structure Binding: BINDING = |
36 struct |
38 struct |
37 |
39 |
125 |
127 |
126 fun str_of binding = |
128 fun str_of binding = |
127 qualified_name_of binding |
129 qualified_name_of binding |
128 |> Markup.markup (Position.markup (pos_of binding) (Markup.binding (name_of binding))); |
130 |> Markup.markup (Position.markup (pos_of binding) (Markup.binding (name_of binding))); |
129 |
131 |
|
132 |
|
133 (* check *) |
|
134 |
|
135 fun bad binding = |
|
136 "Bad name binding: " ^ quote (str_of binding) ^ Position.str_of (pos_of binding); |
|
137 |
|
138 fun check binding = |
|
139 if Symbol.is_ident (Symbol.explode (name_of binding)) then () |
|
140 else legacy_feature (bad binding); |
|
141 |
130 end; |
142 end; |
131 end; |
143 end; |
132 |
144 |
133 type binding = Binding.binding; |
145 type binding = Binding.binding; |
134 |
146 |