projects
/
tatoo.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add a generic deque module.
[tatoo.git]
/
src
/
pretty.ml
diff --git
a/src/pretty.ml
b/src/pretty.ml
index
1927216
..
b39375a
100644
(file)
--- a/
src/pretty.ml
+++ b/
src/pretty.ml
@@
-13,10
+13,6
@@
(* *)
(***********************************************************************)
(* *)
(***********************************************************************)
-(*
- Time-stamp: <Last modified on 2013-03-09 10:41:21 CET by Kim Nguyen>
-*)
-
open Format
exception InvalidUtf8Codepoint of int
open Format
exception InvalidUtf8Codepoint of int
@@
-90,6
+86,7
@@
let up_arrow = "↑"
let right_arrow = "→"
let left_arrow = "←"
let epsilon = "ϵ"
let right_arrow = "→"
let left_arrow = "←"
let epsilon = "ϵ"
+let bullet = "•"
let big_sigma = "∑"
let cap = "∩"
let cup = "∪"
let big_sigma = "∑"
let cap = "∩"
let cup = "∪"
@@
-131,21
+128,36
@@
let pp_print_list ?(sep=dummy_printer) printer fmt l =
match l with
[] -> ()
| [ e ] -> printer fmt e
match l with
[] -> ()
| [ e ] -> printer fmt e
- | e :: es -> printer fmt e; List.iter
+ | e :: es -> printer fmt e;
+ List.iter
(fun x ->
sep fmt ();
fprintf fmt "%a" printer x) es
(fun x ->
sep fmt ();
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_array ?(sep=" ") printer fmt a =
- print_list ~sep:sep printer fmt (Array.to_list a)
+let print_list ?(sep=" ") printer fmt l =
+ with_printer pp_print_list sep printer fmt l
+
+let print_array ?(sep=" ") printer fmt 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