src/Pure/General/pretty.ML
changeset 17400 6ede71a506f5
parent 16714 d9e3ef66b38c
child 17526 8d7c587c6b34
     1.1 --- a/src/Pure/General/pretty.ML	Wed Sep 14 23:55:49 2005 +0200
     1.2 +++ b/src/Pure/General/pretty.ML	Thu Sep 15 07:35:38 2005 +0200
     1.3 @@ -40,6 +40,7 @@
     1.4    val strs: string list -> T
     1.5    val enclose: string -> string -> T list -> T
     1.6    val list: string -> string -> T list -> T
     1.7 +  val gen_list: string -> string -> string -> T list -> T
     1.8    val str_list: string -> string -> string list -> T
     1.9    val big_list: string -> T list -> T
    1.10    val chunks: T list -> T
    1.11 @@ -204,8 +205,13 @@
    1.12  fun quote prt =
    1.13    blk (1, [str "\"", prt, str "\""]);
    1.14  
    1.15 -fun commas prts =
    1.16 -  List.concat (separate [str ",", brk 1] (map (fn x => [x]) prts));
    1.17 +fun separate_pretty delim prts =
    1.18 +  prts
    1.19 +  |> map single
    1.20 +  |> separate [str delim, brk 1]
    1.21 +  |> List.concat;
    1.22 +
    1.23 +val commas = separate_pretty ",";
    1.24  
    1.25  fun breaks prts = separate (brk 1) prts;
    1.26  fun fbreaks prts = separate fbrk prts;
    1.27 @@ -217,7 +223,8 @@
    1.28  fun enclose lpar rpar prts =
    1.29    block (str lpar :: (prts @ [str rpar]));
    1.30  
    1.31 -fun list lpar rpar prts = enclose lpar rpar (commas prts);
    1.32 +fun gen_list delim lpar rpar prts = enclose lpar rpar (separate_pretty delim prts);
    1.33 +val list = gen_list ",";
    1.34  fun str_list lpar rpar strs = list lpar rpar (map str strs);
    1.35  fun big_list name prts = block (fbreaks (str name :: prts));
    1.36  fun chunks prts = blk (0, fbreaks prts);