projects
/
tatoo.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Refactor the tracing code, store the whole tree structure in a javascript array and...
[tatoo.git]
/
src
/
pretty.ml
diff --git
a/src/pretty.ml
b/src/pretty.ml
index
66a0225
..
b39375a
100644
(file)
--- a/
src/pretty.ml
+++ b/
src/pretty.ml
@@
-135,14
+135,29
@@
let pp_print_list ?(sep=dummy_printer) printer fmt l =
fprintf fmt "%a" printer x) es
fprintf fmt "%a" printer x) es
+let pp_print_range ?(sep=dummy_printer) printer fmt (first, last) =
+ for i = first to last - 1 do
+ printer fmt i;
+ sep fmt ();
+ done;
+ if first <= last then printer fmt last
+
let pp_print_array ?(sep=dummy_printer) printer fmt a =
let pp_print_array ?(sep=dummy_printer) printer fmt a =
- pp_print_list ~sep:sep printer fmt (Array.to_list a)
+ pp_print_range ~sep:sep (fun fmt i -> printer fmt a.(i)) fmt
+ (0, (Array.length a - 1))
-let
print_list ?(sep=" ") printer fmt l
=
+let
with_printer (f : ?sep:('a) -> 'b) strsep pr fmt
=
let sep_printer fmt () =
let sep_printer fmt () =
- pp_print_string fmt sep
+ pp_print_string fmt s
trs
ep
in
in
- pp_print_list ~sep:sep_printer printer fmt l
+ fun x -> f ~sep:sep_printer pr fmt x
+
+
+let print_list ?(sep=" ") printer fmt l =
+ with_printer pp_print_list sep printer fmt l
let print_array ?(sep=" ") printer fmt a =
let print_array ?(sep=" ") printer fmt a =
- print_list ~sep:sep printer fmt (Array.to_list a)
+ with_printer pp_print_array sep printer fmt a
+
+let print_range ?(sep=" ") printer fmt r =
+ with_printer pp_print_range sep printer fmt r