equal
deleted
inserted
replaced
18 |
18 |
19 The stored length of a block is used in breakdist (to treat each inner block as |
19 The stored length of a block is used in breakdist (to treat each inner block as |
20 a unit for breaking). |
20 a unit for breaking). |
21 *) |
21 *) |
22 |
22 |
23 type pprint_args = (string -> unit) * (int -> unit) * (int -> unit) * |
23 type pprint_args = (output -> unit) * (int -> unit) * (int -> unit) * |
24 (unit -> unit) * (unit -> unit); |
24 (unit -> unit) * (unit -> unit); |
25 |
25 |
26 signature PRETTY = |
26 signature PRETTY = |
27 sig |
27 sig |
28 val default_indent: string -> int -> string |
28 val default_indent: string -> int -> output |
29 val default_markup: Markup.T -> string * string |
29 val default_markup: Markup.T -> output * output |
30 val mode_markup: Markup.T -> string * string |
30 val mode_markup: Markup.T -> output * output |
31 val add_mode: string -> (string -> int -> string) -> (Markup.T -> string * string) -> unit |
31 val add_mode: string -> (string -> int -> output) -> (Markup.T -> output * output) -> unit |
32 type T |
32 type T |
33 val raw_str: string * int -> T |
33 val raw_str: output * int -> T |
34 val str: string -> T |
34 val str: string -> T |
35 val brk: int -> T |
35 val brk: int -> T |
36 val fbrk: T |
36 val fbrk: T |
37 val breaks: T list -> T list |
37 val breaks: T list -> T list |
38 val fbreaks: T list -> T list |
38 val fbreaks: T list -> T list |
61 val setmp_margin: int -> ('a -> 'b) -> 'a -> 'b |
61 val setmp_margin: int -> ('a -> 'b) -> 'a -> 'b |
62 val setdepth: int -> unit |
62 val setdepth: int -> unit |
63 val pprint: T -> pprint_args -> unit |
63 val pprint: T -> pprint_args -> unit |
64 val symbolicN: string |
64 val symbolicN: string |
65 val output_buffer: T -> Buffer.T |
65 val output_buffer: T -> Buffer.T |
66 val output: T -> string |
66 val output: T -> output |
67 val string_of: T -> string |
67 val string_of: T -> string |
68 val str_of: T -> string |
68 val str_of: T -> string |
69 val writeln: T -> unit |
69 val writeln: T -> unit |
70 type pp |
70 type pp |
71 val pp: (term -> T) * (typ -> T) * (sort -> T) * (class list -> T) * (arity -> T) -> pp |
71 val pp: (term -> T) * (typ -> T) * (sort -> T) * (class list -> T) * (arity -> T) -> pp |
116 |
116 |
117 (** printing items: compound phrases, strings, and breaks **) |
117 (** printing items: compound phrases, strings, and breaks **) |
118 |
118 |
119 datatype T = |
119 datatype T = |
120 Block of Markup.T * T list * int * int | (*markup, body, indentation, length*) |
120 Block of Markup.T * T list * int * int | (*markup, body, indentation, length*) |
121 String of string * int | (*text, length*) |
121 String of output * int | (*text, length*) |
122 Break of bool * int; (*mandatory flag, width if not taken*) |
122 Break of bool * int; (*mandatory flag, width if not taken*) |
123 |
123 |
124 fun length (Block (_, _, _, len)) = len |
124 fun length (Block (_, _, _, len)) = len |
125 | length (String (_, len)) = len |
125 | length (String (_, len)) = len |
126 | length (Break (_, wd)) = wd; |
126 | length (Break (_, wd)) = wd; |