equal
deleted
inserted
replaced
24 val print_indexname: indexname -> string |
24 val print_indexname: indexname -> string |
25 val print_class: class -> string |
25 val print_class: class -> string |
26 val print_sort: sort -> string |
26 val print_sort: sort -> string |
27 val print_typ: typ -> string |
27 val print_typ: typ -> string |
28 val print_term: term -> string |
28 val print_term: term -> string |
29 val pretty_string: string -> Pretty.T |
29 val pretty_string: int -> string -> Pretty.T |
30 end; |
30 end; |
31 |
31 |
32 structure ML_Syntax: ML_SYNTAX = |
32 structure ML_Syntax: ML_SYNTAX = |
33 struct |
33 struct |
34 |
34 |
97 | print_term (t1 $ t2) = atomic (print_term t1) ^ " $ " ^ atomic (print_term t2); |
97 | print_term (t1 $ t2) = atomic (print_term t1) ^ " $ " ^ atomic (print_term t2); |
98 |
98 |
99 |
99 |
100 (* toplevel pretty printing *) |
100 (* toplevel pretty printing *) |
101 |
101 |
102 fun pretty_string raw_str = |
102 fun pretty_string max_len str = |
103 let |
103 let |
104 val str = |
104 val body = |
105 implode (map (fn XML.Elem _ => "<markup>" | XML.Text s => s) (YXML.parse_body raw_str)) |
105 maps (fn XML.Elem _ => ["<markup>"] | XML.Text s => Symbol.explode s) (YXML.parse_body str) |
106 handle Fail _ => raw_str; |
106 handle Fail _ => Symbol.explode str; |
107 val syms = Symbol.explode str; |
107 val body' = |
108 in Pretty.str (quote (implode (map print_char syms))) end; |
108 if length body <= max_len then body |
|
109 else take max_len body @ ["..."]; |
|
110 in Pretty.str (quote (implode (map print_char body'))) end; |
109 |
111 |
110 end; |
112 end; |