Module Ppx_sexp_conv_lib.SexpSource
include module type of struct include Sexplib0.Sexp end
Not_found_s is used by functions that historically raised Not_found, to allow them to raise an exception that contains an informative error message (as a sexp), while still having an exception that can be distinguished from other exceptions.
Of_sexp_error (exn, sexp) the exception raised when an S-expression could not be successfully converted to an OCaml-value.
Helpers
Helper to build nice s-expressions for error messages. It imitates the behavior of
[[%message ...]] from the ppx_sexp_message rewriter.
[message name key_values] produces a s-expression list starting with atom [name] and
followed by list of size 2 of the form [(key value)]. When the key is the empty
string, [value] is used directly instead as for [[%message]].
For instance the following code:
{[
Sexp.message "error"
[ "x", sexp_of_int 42
; "" , sexp_of_exn Exit
]
]}
produces the s-expression:
{[
(error (x 42) Exit)
]}Defaults
default_indent reference to default indentation level for human-readable conversions.
Initialisation value: 1.
Pretty printing of S-expressions
include Pretty_printing with type output := string
Printing to formatters
pp_hum ppf sexp outputs S-expression sexp to formatter ppf in human readable form.
pp_hum_indent n ppf sexp outputs S-expression sexp to formatter ppf in human readable form and indentation level n.
pp_mach ppf sexp outputs S-expression sexp to formatter ppf in machine readable (i.e. most compact) form.
Same as pp_mach.
Conversion to strings
to_string_hum ?indent ?max_width sexp converts S-expression sexp to a string in human readable form with indentation level indent and target maximum width max_width. Note long atoms may overflow max_width.
to_string_mach sexp converts S-expression sexp to a string in machine readable (i.e. most compact) form.
Conversion to buffers
to_buffer_hum ~buf ?indent ?max_width sexp outputs the S-expression sexp converted to a string in human readable form to buffer buf with indentation level indent and target maximum width max_width. Note long atoms may overflow max_width.
to_buffer_mach ~buf sexp outputs the S-expression sexp converted to a string in machine readable (i.e. most compact) form to buffer buf.
to_buffer ~buf sexp same as to_buffer_mach.
val to_buffer_gen :
buf:'buffer ->
add_char:('buffer -> char -> unit) ->
add_string:('buffer -> string -> unit) ->
t ->
unit @@ portableto_buffer_gen ~buf ~add_char ~add_string sexp outputs the S-expression sexp converted to a string to buffer buf using the output functions add_char and add_string.
See Pretty_printing.to_string_hum, to_string_mach, and to_string, respectively.
val to_string_hum__stack :
?indent:int ->
?max_width:int ->
t @ local ->
string @ local @@ portableWARNING to_string_hum__stack globalizes t if it is allocated on the stack.