blob: 3449d6c32b45c86cb04a6333265a97e3c96df21d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
(**************************************************************************)
(* *)
(* PPrint *)
(* *)
(* François Pottier, Inria Paris *)
(* Nicolas Pouillard *)
(* *)
(* Copyright 2007-2017 Inria. All rights reserved. This file is *)
(* distributed under the terms of the GNU Library General Public *)
(* License, with an exception, as described in the file LICENSE. *)
(* *)
(**************************************************************************)
(** A common signature for the multiple document renderers proposed by {!PPrintEngine}. *)
module type RENDERER = sig
(** Output channels. *)
type channel
(** Documents. *)
type document
(** [pretty rfrac width channel document] pretty-prints the document
[document] into the output channel [channel]. The parameter [width] is
the maximum number of characters per line. The parameter [rfrac] is the
ribbon width, a fraction relative to [width]. The ribbon width is the
maximum number of non-indentation characters per line. *)
val pretty: float -> int -> channel -> document -> unit
(** [compact channel document] prints the document [document] to the output
channel [channel]. No indentation is used. All newline instructions are
respected, that is, no groups are flattened. *)
val compact: channel -> document -> unit
end
|