src/Pure/Syntax/pretty.ML
changeset 261 3441647c8c90
parent 236 d33cd0011e48
child 512 55755ed9fab9
equal deleted inserted replaced
260:967813b8a7bf 261:3441647c8c90
    34   val quote: T -> T
    34   val quote: T -> T
    35   val commas: T list -> T list
    35   val commas: T list -> T list
    36   val breaks: T list -> T list
    36   val breaks: T list -> T list
    37   val fbreaks: T list -> T list
    37   val fbreaks: T list -> T list
    38   val block: T list -> T
    38   val block: T list -> T
       
    39   val strs: string list -> T
    39   val parents: string -> string -> T list -> T
    40   val parents: string -> string -> T list -> T
    40   val list: string -> string -> T list -> T
    41   val list: string -> string -> T list -> T
    41   val str_list: string -> string -> string list -> T
    42   val str_list: string -> string -> string list -> T
       
    43   val big_list: string -> T list -> T
    42   val string_of: T -> string
    44   val string_of: T -> string
       
    45   val writeln: T -> unit
    43   val str_of: T -> string
    46   val str_of: T -> string
    44   val pprint: T -> pprint_args -> unit
    47   val pprint: T -> pprint_args -> unit
    45   val setdepth: int -> unit
    48   val setdepth: int -> unit
    46   val setmargin: int -> unit
    49   val setmargin: int -> unit
    47 end;
    50 end;
   163 
   166 
   164 fun fbreaks prts = separate fbrk prts;
   167 fun fbreaks prts = separate fbrk prts;
   165 
   168 
   166 fun block prts = blk (2, prts);
   169 fun block prts = blk (2, prts);
   167 
   170 
       
   171 val strs = block o breaks o (map str);
       
   172 
   168 fun parents lpar rpar prts =
   173 fun parents lpar rpar prts =
   169   block (str lpar :: (prts @ [str rpar]));
   174   block (str lpar :: (prts @ [str rpar]));
   170 
   175 
   171 fun list lpar rpar prts =
   176 fun list lpar rpar prts =
   172   parents lpar rpar (commas prts);
   177   parents lpar rpar (commas prts);
   173 
   178 
   174 fun str_list lpar rpar strs =
   179 fun str_list lpar rpar strs =
   175   list lpar rpar (map str strs);
   180   list lpar rpar (map str strs);
       
   181 
       
   182 fun big_list name prts =
       
   183   block (fbreaks (str name :: prts));
   176 
   184 
   177 
   185 
   178 
   186 
   179 (*** Pretty printing with depth limitation ***)
   187 (*** Pretty printing with depth limitation ***)
   180 
   188 
   190 
   198 
   191 fun prune dp e = if dp>0 then pruning dp e else e;
   199 fun prune dp e = if dp>0 then pruning dp e else e;
   192 
   200 
   193 
   201 
   194 fun string_of e = #tx (format ([prune (!depth) e], 0, 0) emptytext);
   202 fun string_of e = #tx (format ([prune (!depth) e], 0, 0) emptytext);
       
   203 
       
   204 val writeln = writeln o string_of;
   195 
   205 
   196 
   206 
   197 (*Create a single flat string: no line breaking*)
   207 (*Create a single flat string: no line breaking*)
   198 fun str_of prt =
   208 fun str_of prt =
   199   let
   209   let