X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=src%2Fpretty.ml;h=1a52d59c95bdf3a9f360e23c9d0074f88b5b1a84;hb=7e27afe6fa006ad355237ccc0695c6493ea57929;hp=402433ecd355880ed8a6b8cdc614eb558dbed812;hpb=4b52da1a20a4fe031930bb96d2ca46bec06dc529;p=SXSI%2Fxpathcomp.git diff --git a/src/pretty.ml b/src/pretty.ml index 402433e..1a52d59 100644 --- a/src/pretty.ml +++ b/src/pretty.ml @@ -1,3 +1,5 @@ +open Format + exception InvalidUtf8Codepoint of int let subscripts = "₀₁₂₃₄₅₆₇₈₉" @@ -101,19 +103,34 @@ let line = mk_repeater '_' let ppf f fmt s = - Format.fprintf fmt "%s" (f s) + pp_print_string fmt (f s) let pp_overline = ppf overline let pp_underline = ppf underline let pp_strike = ppf strike let pp_subscript = ppf subscript let pp_superscript = ppf superscript +let dummy_printer fmt () = () -let print_list ?(sep=" ") printer fmt l = +let pp_print_list ?(sep=dummy_printer) printer fmt l = match l with - [] -> () - | [ e ] -> printer fmt e - | e::es -> printer fmt e; List.iter (fun x -> Format.fprintf fmt "%s%a" sep printer x) es + [] -> () + | [ e ] -> printer fmt e + | e :: es -> printer fmt e; List.iter + (fun x -> + sep fmt (); + fprintf fmt "%a" printer x) es + +let pp_print_array ?(sep=dummy_printer) printer fmt a = + pp_print_list ~sep:sep printer fmt (Array.to_list a) + +let print_list ?(sep=" ") printer fmt l = + let sep_printer fmt () = + pp_print_string fmt sep + in + pp_print_list ~sep:sep_printer printer fmt l + +let print_array ?(sep=" ") printer fmt a = + print_list ~sep:sep printer fmt (Array.to_list a) + -let print_array ?(sep=" ") printer fmt l = - print_list ~sep:sep printer fmt (Array.to_list l)