equal
deleted
inserted
replaced
51 val separate: string -> T list -> T list |
51 val separate: string -> T list -> T list |
52 val commas: T list -> T list |
52 val commas: T list -> T list |
53 val enclose: string -> string -> T list -> T |
53 val enclose: string -> string -> T list -> T |
54 val enum: string -> string -> string -> T list -> T |
54 val enum: string -> string -> string -> T list -> T |
55 val position: Position.T -> T |
55 val position: Position.T -> T |
|
56 val here: Position.T -> T list |
56 val list: string -> string -> T list -> T |
57 val list: string -> string -> T list -> T |
57 val str_list: string -> string -> string list -> T |
58 val str_list: string -> string -> string list -> T |
58 val big_list: string -> T list -> T |
59 val big_list: string -> T list -> T |
59 val indent: int -> T -> T |
60 val indent: int -> T -> T |
60 val unbreakable: T -> T |
61 val unbreakable: T -> T |
188 |
189 |
189 fun enum sep lpar rpar prts = enclose lpar rpar (separate sep prts); |
190 fun enum sep lpar rpar prts = enclose lpar rpar (separate sep prts); |
190 |
191 |
191 val position = |
192 val position = |
192 enum "," "{" "}" o map (fn (x, y) => str (x ^ "=" ^ y)) o Position.properties_of; |
193 enum "," "{" "}" o map (fn (x, y) => str (x ^ "=" ^ y)) o Position.properties_of; |
|
194 |
|
195 fun here pos = |
|
196 let |
|
197 val props = Position.properties_of pos; |
|
198 val (s1, s2) = Position.here_strs pos; |
|
199 in |
|
200 if s2 = "" then [] |
|
201 else [str s1, mark_str (Markup.properties props Markup.position, s2)] |
|
202 end; |
193 |
203 |
194 val list = enum ","; |
204 val list = enum ","; |
195 fun str_list lpar rpar strs = list lpar rpar (map str strs); |
205 fun str_list lpar rpar strs = list lpar rpar (map str strs); |
196 |
206 |
197 fun big_list name prts = block (fbreaks (str name :: prts)); |
207 fun big_list name prts = block (fbreaks (str name :: prts)); |