Change the logging infrastructure:
[SXSI/xpathcomp.git] / src / pretty.ml
index 402433e..1a52d59 100644 (file)
@@ -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)