Module Ppx_sexp_conv_lib.SexpSource
include module type of struct include Sexplib0.Sexp end
module type Pretty_print_to_formatter = Sexplib0.Sexp.Pretty_print_to_formattermodule type Pretty_printing_helpers_private =
Sexplib0.Sexp.Pretty_printing_helpers_privatemodule type Pretty_printing_helpers = Sexplib0.Sexp.Pretty_printing_helpersmodule type Pretty_printing = Sexplib0.Sexp.Pretty_printingval t_of_sexp :
Ppx_sexp_conv_lib.Sexp.t ->
Ppx_sexp_conv_lib.Sexp.t @@ portableval sexp_of_t :
Ppx_sexp_conv_lib.Sexp.t ->
Ppx_sexp_conv_lib.Sexp.t @@ portableval sexp_of_t__stack :
Ppx_sexp_conv_lib.Sexp.t @ local ->
Ppx_sexp_conv_lib.Sexp.t @ local @@ portableval equal :
Ppx_sexp_conv_lib.Sexp.t ->
Ppx_sexp_conv_lib.Sexp.t ->
bool @@ portableval compare :
Ppx_sexp_conv_lib.Sexp.t ->
Ppx_sexp_conv_lib.Sexp.t ->
int @@ portableval globalize :
Ppx_sexp_conv_lib.Sexp.t @ local ->
Ppx_sexp_conv_lib.Sexp.t @@ portableexception Not_found_s of Ppx_sexp_conv_lib.Sexp.tNot_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.
exception Of_sexp_error of exn * Ppx_sexp_conv_lib.Sexp.tOf_sexp_error (exn, sexp) the exception raised when an S-expression could not be successfully converted to an OCaml-value.
Helpers
val message :
string ->
(string * Ppx_sexp_conv_lib.Sexp.t) list ->
Ppx_sexp_conv_lib.Sexp.t @@ portableHelper 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
val default_indent : int Basement.Dynamic.t @@ portabledefault_indent reference to default indentation level for human-readable conversions.
Initialisation value: 1.
Pretty printing of S-expressions
module Make_pretty_printing = Sexplib0.Sexp.Make_pretty_printinginclude Ppx_sexp_conv_lib.Sexp.Pretty_printing with type output := string
Printing to formatters
include Ppx_sexp_conv_lib.Sexp.Pretty_print_to_formatter
val pp_hum :
Stdlib.Format.formatter ->
Ppx_sexp_conv_lib.Sexp.t ->
unit @@ portablepp_hum ppf sexp outputs S-expression sexp to formatter ppf in human readable form.
val pp_hum_indent :
int ->
Stdlib.Format.formatter ->
Ppx_sexp_conv_lib.Sexp.t ->
unit @@ portablepp_hum_indent n ppf sexp outputs S-expression sexp to formatter ppf in human readable form and indentation level n.
val pp_mach :
Stdlib.Format.formatter ->
Ppx_sexp_conv_lib.Sexp.t ->
unit @@ portablepp_mach ppf sexp outputs S-expression sexp to formatter ppf in machine readable (i.e. most compact) form.
val pp :
Stdlib.Format.formatter ->
Ppx_sexp_conv_lib.Sexp.t ->
unit @@ portableSame as pp_mach.
Conversion to strings
val to_string_hum :
?indent:int ->
?max_width:int ->
Ppx_sexp_conv_lib.Sexp.t ->
string @@ portableto_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.
val to_string_mach : Ppx_sexp_conv_lib.Sexp.t -> string @@ portableto_string_mach sexp converts S-expression sexp to a string in machine readable (i.e. most compact) form.
val to_string : Ppx_sexp_conv_lib.Sexp.t -> string @@ portableSame as to_string_mach.
Conversion to buffers
val to_buffer_hum :
buf:Stdlib.Buffer.t ->
?indent:int ->
?max_width:int ->
Ppx_sexp_conv_lib.Sexp.t ->
unit @@ portableto_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.
val to_buffer_mach :
buf:Stdlib.Buffer.t ->
Ppx_sexp_conv_lib.Sexp.t ->
unit @@ portableto_buffer_mach ~buf sexp outputs the S-expression sexp converted to a string in machine readable (i.e. most compact) form to buffer buf.
val to_buffer :
buf:Stdlib.Buffer.t ->
Ppx_sexp_conv_lib.Sexp.t ->
unit @@ portableto_buffer ~buf sexp same as to_buffer_mach.
val to_buffer_gen :
buf:'buffer ->
add_char:('buffer -> char -> unit) ->
add_string:('buffer -> string -> unit) ->
Ppx_sexp_conv_lib.Sexp.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.
module Pretty_printing_helpers_private =
Sexplib0.Sexp.Pretty_printing_helpers_privateSee Pretty_printing.to_string_hum, to_string_mach, and to_string, respectively.
val to_string_hum__stack :
?indent:int ->
?max_width:int ->
Ppx_sexp_conv_lib.Sexp.t @ local ->
string @ local @@ portableWARNING to_string_hum__stack globalizes t if it is allocated on the stack.
val to_string_mach__stack :
Ppx_sexp_conv_lib.Sexp.t @ local ->
string @ local @@ portableval to_string__stack :
Ppx_sexp_conv_lib.Sexp.t @ local ->
string @ local @@ portableStyles
val of_float_style :
[ `Underscores | `No_underscores ] Basement.Dynamic.t @@ portableval of_int_style :
[ `Underscores | `No_underscores ] Basement.Dynamic.t @@ portablemodule Private = Sexplib0.Sexp.Private