From 6ba411d7f5bdcddffaf8519f4660cc50e38e3fa5 Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Thu, 21 Mar 2013 17:51:44 +0100 Subject: [PATCH] lower level pp function --- gen.ml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/gen.ml b/gen.ml index f567b9cf..e642b6d2 100644 --- a/gen.ml +++ b/gen.ml @@ -781,22 +781,27 @@ let int_range i j = let pp ?(start="") ?(stop="") ?(sep=",") ?(horizontal=false) pp_elem formatter enum = (if horizontal - then Format.fprintf formatter "@[%s" start - else Format.fprintf formatter "@[%s" start); + then Format.pp_open_hbox formatter () + else Format.pp_open_hvbox formatter 0); + Format.pp_print_string formatter start; let gen = enum () in let rec next is_first = let continue_ = try let x = gen () in (if not is_first - then Format.fprintf formatter "%s@,%a" sep pp_elem x - else pp_elem formatter x); + then begin + Format.pp_print_string formatter sep; + Format.pp_print_space formatter (); + pp_elem formatter x + end else pp_elem formatter x); true with EOG -> false in if continue_ then next false in next true; - Format.fprintf formatter "%s@]" stop + Format.pp_print_string formatter stop; + Format.pp_close_box formatter () module Infix = struct let (@@) = append