module Sexplib = Sexplib0module Conv = Sexplib.Sexp_convinclude Type
type t = Sexplib0.Sexp.t =| Atom of string| List of t listType of S-expressions
type bigstring = (char, Bigarray.int8_unsigned_elt, Bigarray.c_layout) Bigarray.Array1.t
include module type of sig ... end with type Pre_sexp.t := t
include module type of Sexplib.Sexp with type t := t
val t_of_sexp : t -> tval sexp_of_t : t -> tval t_sexp_grammar : Sexplib0__Raw_grammar.tval equal : t -> t -> boolval compare : t -> t -> int
exception Not_found_s of tNot_found_sis 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 * 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 * t) list -> tHelper to build nice s-expressions for error messages. It imitates the behavior of
[%message ...]from the ppx_sexp_message rewriter.message name key_valuesproduces a s-expression list starting with atomnameand followed by list of size 2 of the form(key value). When the key is the empty string,valueis 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 Stdlib.refdefault_indentreference to default indentation level for human-readable conversions.Initialisation value: 2.
Pretty printing of S-expressions
val pp_hum : Stdlib.Format.formatter -> t -> unitpp_hum ppf sexpoutputs S-expressionsexpto formatterppfin human readable form.
val pp_hum_indent : int -> Stdlib.Format.formatter -> t -> unitpp_hum_indent n ppf sexpoutputs S-expressionsexpto formatterppfin human readable form and indentation leveln.
val pp_mach : Stdlib.Format.formatter -> t -> unitpp_mach ppf sexpoutputs S-expressionsexpto formatterppfin machine readable (i.e. most compact) form.
val pp : Stdlib.Format.formatter -> t -> unitSame as
pp_mach.
Conversion to strings
val to_string_hum : ?indent:int -> t -> stringto_string_hum ?indent sexpconverts S-expressionsexpto a string in human readable form with indentation levelindent.- parameter indent
default =
!default_indent
val to_string_mach : t -> stringto_string_mach sexpconverts S-expressionsexpto a string in machine readable (i.e. most compact) form.
val to_string : t -> stringSame as
to_string_mach.
Styles
val of_float_style : [ `Underscores | `No_underscores ] Stdlib.refval of_int_style : [ `Underscores | `No_underscores ] Stdlib.ref
module Private : sig ... endinclude Private
module Raw_grammar : sig ... endval size : Sexplib0__Sexp.t -> int * intval buffer : unit -> Stdlib.Buffer.tval to_buffer : buf:Stdlib.Buffer.t -> Sexplib0__Sexp.t -> unitval to_buffer_hum : buf:Stdlib.Buffer.t -> ?indent:int -> Sexplib0__Sexp.t -> unitval to_buffer_mach : buf:Stdlib.Buffer.t -> Sexplib0__Sexp.t -> unitval to_buffer_gen : buf:'buffer -> add_char:('buffer -> char -> unit) -> add_string:('buffer -> string -> unit) -> Sexplib0__Sexp.t -> unitval mach_maybe_esc_str : string -> stringval must_escape : string -> boolval esc_str : string -> string
val with_new_buffer : Stdlib.out_channel -> (Stdlib.Buffer.t -> 'a) -> unitval output_hum : Stdlib.out_channel -> Sexplib0__Sexp.t -> unitval output_hum_indent : int -> Stdlib.out_channel -> Sexplib0__Sexp.t -> unitval output_mach : Stdlib.out_channel -> Sexplib0__Sexp.t -> unitval output : Stdlib.out_channel -> Sexplib0__Sexp.t -> unit
module Tmp_file : sig ... endval save_of_output : ?perm:int -> (Stdlib.out_channel -> 'a -> 'b) -> string -> 'a -> unitval output_sexp_nl : (Stdlib.out_channel -> 'a -> 'b) -> Stdlib.out_channel -> 'a -> unitval save_hum : ?perm:int -> string -> Sexplib0__Sexp.t -> unitval save_mach : ?perm:int -> string -> Sexplib0__Sexp.t -> unitval save : ?perm:int -> string -> Sexplib0__Sexp.t -> unitval output_sexps_nl : (Stdlib.out_channel -> 'a -> 'b) -> Stdlib.out_channel -> 'a list -> unitval save_sexps_hum : ?perm:int -> string -> Sexplib0__Sexp.t list -> unitval save_sexps_mach : ?perm:int -> string -> Sexplib0__Sexp.t list -> unitval save_sexps : ?perm:int -> string -> Sexplib0__Sexp.t list -> unitval scan_sexp : ?buf:Stdlib.Buffer.t -> Stdlib.Lexing.lexbuf -> Type.tval scan_sexp_opt : ?buf:Stdlib.Buffer.t -> Stdlib.Lexing.lexbuf -> Type.t optionval scan_sexps : ?buf:Stdlib.Buffer.t -> Stdlib.Lexing.lexbuf -> Type.t listval scan_rev_sexps : ?buf:Stdlib.Buffer.t -> Stdlib.Lexing.lexbuf -> Type.t listval get_main_buf : Stdlib.Buffer.t option -> Stdlib.Lexing.lexbuf -> Parser.tokenval scan_fold_sexps : ?buf:Stdlib.Buffer.t -> f:('a -> Type.t -> 'a) -> init:'a -> Stdlib.Lexing.lexbuf -> 'aval scan_iter_sexps : ?buf:Stdlib.Buffer.t -> f:(Type.t -> unit) -> Stdlib.Lexing.lexbuf -> unitval scan_sexps_conv : ?buf:Stdlib.Buffer.t -> f:(Type.t -> 'a) -> Stdlib.Lexing.lexbuf -> 'a listval sexp_conversion_error_message : ?containing_sexp:t -> ?location:string -> ?invalid_sexp:t -> unit -> exn:exn -> t
module Annot : sig ... endmodule Parse_pos : sig ... endmodule Cont_state = Parsexp.Old_parser_cont_statetype ('a, 't) parse_result =| Done of 't * Parse_pos.t| Cont of Cont_state.t * ('a, 't) parse_funand ('a, 't) parse_fun = pos:int -> len:int -> 'a -> ('a, 't) parse_resulttype 't parse_state = {parse_pos : Parse_pos.t;}type parse_error = {err_msg : string;parse_state : [ `Sexp of t list list parse_state | `Annot of Annot.stack parse_state ];}
exception Parse_error of parse_error
module Parser_output : sig ... endmodule Make_parser : functor (T : sig ... end) -> sig ... endmodule String_single_sexp : sig ... endval parse_str : ?parse_pos:Parse_pos.t -> ?len:int -> string -> (string, Type.t) parse_resultval parse : ?parse_pos:Parse_pos.t -> ?len:int -> string -> (string, Type.t) parse_result
module String_single_annot : sig ... endval parse_str_annot : ?parse_pos:Parse_pos.t -> ?len:int -> string -> (string, Annot.t) parse_result
module Bigstring_single_sexp : sig ... endval parse_bigstring : ?parse_pos:Parse_pos.t -> ?len:int -> bigstring -> (bigstring, Type.t) parse_result
module Bigstring_single_annot : sig ... endval parse_bigstring_annot : ?parse_pos:Parse_pos.t -> ?len:int -> bigstring -> (bigstring, Annot.t) parse_resultval mk_this_parse : ?parse_pos:Parse_pos.t -> (?parse_pos:Parse_pos.t -> ?len:'a -> 'b -> 'c) -> pos:int -> len:'a -> 'b -> 'cval feed_end_of_input : this_parse:(pos:int -> len:int -> 'a -> ('b, 'c) parse_result) -> ws_buf:'a -> ('c, Cont_state.t) Stdlib.resultval gen_input_sexp : (?parse_pos:Parse_pos.t -> ?len:int -> string -> (string, 'a) parse_result) -> ?parse_pos:Parse_pos.t -> Stdlib.in_channel -> 'aval input_sexp : ?parse_pos:Parse_pos.t -> Stdlib.in_channel -> Type.tval gen_input_rev_sexps : (?parse_pos:Parse_pos.t -> ?len:int -> string -> (string, 'a) parse_result) -> ws_buf:string -> ?parse_pos:Parse_pos.t -> ?buf:bytes -> Stdlib.in_channel -> 'a listval input_rev_sexps : ?parse_pos:Parse_pos.t -> ?buf:bytes -> Stdlib.in_channel -> Type.t listval input_sexps : ?parse_pos:Parse_pos.t -> ?buf:bytes -> Stdlib.in_channel -> Type.t listval of_string_bigstring : string -> (?parse_pos:Parse_pos.t -> ?len:'a -> 'b -> ('c, 'd) parse_result) -> 'c -> ('b -> 'e) -> ('b -> int -> 'e -> string) -> 'b -> 'dval of_string : string -> Type.tval get_bstr_sub_str : (char, 'a, 'b) Bigarray.Array1.t -> int -> int -> stringval bstr_ws_buf : (char, Bigarray.int8_unsigned_elt, Bigarray.c_layout) Bigarray.Array1.tval of_bigstring : bigstring -> Type.tval gen_load_rev_sexps : (?parse_pos:'a -> ?buf:'b -> Stdlib.in_channel -> 'c) -> ?buf:'b -> string -> 'cval load_rev_sexps : ?buf:bytes -> string -> Type.t listval load_sexps : ?buf:bytes -> string -> Type.t listval gen_load_sexp_loc : stringval gen_load_sexp : (?parse_pos:Parse_pos.t -> ?len:int -> string -> (string, 'a) parse_result) -> ?strict:bool -> ?buf:bytes -> string -> 'aval load_sexp : ?strict:bool -> ?buf:bytes -> string -> Type.t
module Annotated : sig ... endval load_sexp_conv : ?strict:bool -> ?buf:bytes -> string -> (Type.t -> 'a) -> [> `Error of exn * Annotated.t | `Result of 'a ]val raise_conv_exn : file:string -> [< `Error of exn * Annotated.t | `Result of 'a ] -> 'aval load_sexp_conv_exn : ?strict:bool -> ?buf:bytes -> string -> (Type.t -> 'a) -> 'aval load_sexps_conv : ?buf:bytes -> string -> (Type.t -> 'a) -> [> `Error of exn * Annotated.t | `Result of 'a ] listval load_sexps_conv_exn : ?buf:bytes -> string -> (Type.t -> 'a) -> 'a listval gen_of_string_conv : ('a -> Type.t) -> ('a -> Annotated.t) -> 'a -> (Type.t -> 'b) -> [> `Error of exn * Annotated.t | `Result of 'b ]val of_string_conv : string -> (Type.t -> 'a) -> [> `Error of exn * Annotated.t | `Result of 'a ]val of_bigstring_conv : bigstring -> (Type.t -> 'a) -> [> `Error of exn * Annotated.t | `Result of 'a ]
module Of_string_conv_exn : sig ... end