module OCaml: PPrintOCaml
The string representations produced by these functions are supposed to be
accepted by the OCaml parser as valid values.
The signature of this module is compatible with that expected by
the camlp4
generator Camlp4RepresentationGenerator
.
These functions do not distinguish between mutable and immutable
values. They do not recognize sharing, and do not incorporate a
protection against cyclic values.
type
constructor = string
type
type_name = string
type
record_field = string
type
tag = int
type
representation = PPrintEngine.document
A representation of a value is a PPrint
document.
val variant : type_name ->
constructor ->
tag ->
representation list -> representation
variant _ dc _ args
is a description of a constructed value whose data
constructor is dc
and whose arguments are args
. The other two
parameters are presently unused.
val record : type_name ->
(record_field * representation) list ->
representation
record _ fields
is a description of a record value whose fields are
fields
. The other parameter is presently unused.
val tuple : representation list -> representation
tuple args
is a description of a tuple value whose components are args
.
val string : string -> representation
string s
is a representation of the string s
.
val int : int -> representation
int i
is a representation of the integer i
.
val int32 : int32 -> representation
int32 i
is a representation of the 32-bit integer i
.
val int64 : int64 -> representation
int64 i
is a representation of the 64-bit integer i
.
val nativeint : nativeint -> representation
nativeint i
is a representation of the native integer i
.
val float : float -> representation
float f
is a representation of the floating-point number f
.
val char : char -> representation
char c
is a representation of the character c
.
val bool : bool -> representation
bool b
is a representation of the Boolenan value b
.
val option : ('a -> representation) -> 'a option -> representation
option f o
is a representation of the option o
, where the
representation of the element, if present, is computed by the function
f
.
val list : ('a -> representation) -> 'a list -> representation
list f xs
is a representation of the list xs
, where the representation
of each element is computed by the function f
.
val array : ('a -> representation) -> 'a array -> representation
array f xs
is a representation of the array xs
, where the
representation of each element is computed by the function f
.
val ref : ('a -> representation) ->
'a Pervasives.ref -> representation
ref r
is a representation of the reference r
, where the
representation of the content is computed by the function f
.
val unknown : type_name -> 'a -> representation
unknown t _
is a representation of an unknown value of type t
.