130 | sum (e :: es) k = sum es (length e + k); |
130 | sum (e :: es) k = sum es (length e + k); |
131 in Block (m, es, indent, sum es 0) end; |
131 in Block (m, es, indent, sum es 0) end; |
132 |
132 |
133 fun markup_block m arg = block_markup (Markup.output m) arg; |
133 fun markup_block m arg = block_markup (Markup.output m) arg; |
134 |
134 |
135 val blk = markup_block Markup.none; |
135 val blk = markup_block Markup.empty; |
136 fun block prts = blk (2, prts); |
136 fun block prts = blk (2, prts); |
137 val strs = block o breaks o map str; |
137 val strs = block o breaks o map str; |
138 |
138 |
139 fun markup m prts = markup_block m (0, prts); |
139 fun markup m prts = markup_block m (0, prts); |
140 fun mark m prt = markup m [prt]; |
140 fun mark m prt = markup m [prt]; |
141 fun keyword name = mark Markup.keyword (str name); |
141 fun keyword name = mark Markup.keyword (str name); |
142 fun command name = mark Markup.command (str name); |
142 fun command name = mark Markup.command (str name); |
143 |
143 |
144 fun markup_chunks m prts = markup m (fbreaks prts); |
144 fun markup_chunks m prts = markup m (fbreaks prts); |
145 val chunks = markup_chunks Markup.none; |
145 val chunks = markup_chunks Markup.empty; |
146 fun chunks2 prts = blk (0, flat (Library.separate [fbrk, fbrk] (map single prts))); |
146 fun chunks2 prts = blk (0, flat (Library.separate [fbrk, fbrk] (map single prts))); |
147 |
147 |
148 fun block_enclose (prt1, prt2) prts = chunks [block (fbreaks (prt1 :: prts)), prt2]; |
148 fun block_enclose (prt1, prt2) prts = chunks [block (fbreaks (prt1 :: prts)), prt2]; |
149 |
149 |
150 fun quote prt = blk (1, [str "\"", prt, str "\""]); |
150 fun quote prt = blk (1, [str "\"", prt, str "\""]); |