Module Base__.Sexp
type t
= Sexplib0.Sexp.t
=
|
Atom of string
|
List of t list
Type of S-expressions
val hash_fold_t : Base.Hash.state -> t -> Base.Hash.state
val hash : t -> Base.Hash.hash_value
include module type of Sexplib0.Sexp with type Sexp.t := Sexplib0.Sexp.t
type t
=
|
Atom of string
|
List of t list
val t_of_sexp : t -> t
val sexp_of_t : t -> t
val t_sexp_grammar : Sexplib0__.Raw_grammar.t
val equal : t -> t -> bool
val compare : t -> t -> int
exception
Not_found_s of t
Not_found_s
is used by functions that historically raisedNot_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 * t
Of_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 * t) list -> t
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 atomname
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
Pretty printing of S-expressions
val pp_hum : Stdlib.Format.formatter -> t -> unit
pp_hum ppf sexp
outputs S-expressionsexp
to formatterppf
in human readable form.
val pp_hum_indent : int -> Stdlib.Format.formatter -> t -> unit
pp_hum_indent n ppf sexp
outputs S-expressionsexp
to formatterppf
in human readable form and indentation leveln
.
val pp_mach : Stdlib.Format.formatter -> t -> unit
pp_mach ppf sexp
outputs S-expressionsexp
to formatterppf
in machine readable (i.e. most compact) form.
val pp : Stdlib.Format.formatter -> t -> unit
Same as
pp_mach
.
Conversion to strings
val to_string_hum : ?indent:int -> t -> string
to_string_hum ?indent sexp
converts S-expressionsexp
to a string in human readable form with indentation levelindent
.- parameter indent
default =
!default_indent
val to_string_mach : t -> string
to_string_mach sexp
converts S-expressionsexp
to a string in machine readable (i.e. most compact) form.
val to_string : t -> string
Same as
to_string_mach
.
Styles
val of_float_style : [ `Underscores | `No_underscores ] Stdlib.ref
val of_int_style : [ `Underscores | `No_underscores ] Stdlib.ref
module Private = Sexplib0.Sexp.Private
val invariant : t -> unit
val of_string : unit
Base has never had an
of_string
function. We expose a deprecatedof_string
here so that people can find it (e.g. with merlin), and learn what we recommend. Thisof_string
has typeunit
because we don't want it to be accidentally used.