Sexplib.Pre_sexpSourceinclude module type of struct include Type endType of S-expressions
include module type of struct include Sexplib.Sexp end with type t := 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.
Of_sexp_error (exn, sexp) the exception raised when an S-expression could not be successfully converted to an OCaml-value.
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)default_indent reference to default indentation level for human-readable conversions.
Initialisation value: 2.
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.
to_string_hum ?indent sexp converts S-expression sexp to a string in human readable form with indentation level indent.
to_string_mach sexp converts S-expression sexp to a string in machine readable (i.e. most compact) form.
include module type of struct include Private endval to_buffer_gen :
buf:'buffer ->
add_char:('buffer -> char -> unit) ->
add_string:('buffer -> string -> unit) ->
Sexplib0.Sexp.t ->
unitval scan_fold_sexps :
?buf:Buffer.t ->
f:('a -> Type.t -> 'a) ->
init:'a ->
Lexing.lexbuf ->
'atype ('a, 't) parse_result = | Done of 't * Parse_pos.t| Cont of Cont_state.t * ('a, 't) parse_funtype parse_error = {err_msg : string;parse_state : [ `Sexp of t list list parse_state
| `Annot of Annot.stack parse_state ];}val parse_str_annot :
?parse_pos:Parse_pos.t ->
?len:int ->
string ->
(string, Annot.t) parse_resultval parse_bigstring :
?parse_pos:Parse_pos.t ->
?len:int ->
bigstring ->
(bigstring, Type.t) parse_resultval 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) resultval gen_input_sexp :
(?parse_pos:Parse_pos.t -> ?len:int -> string -> (string, 'a) parse_result) ->
?parse_pos:Parse_pos.t ->
in_channel ->
'aval 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 ->
in_channel ->
'a 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 gen_load_rev_sexps :
(?parse_pos:'a -> ?buf:'b -> in_channel -> 'c) ->
?buf:'b ->
string ->
'cval gen_load_sexp :
(?parse_pos:Parse_pos.t -> ?len:int -> string -> (string, 'a) parse_result) ->
?strict:bool ->
?buf:bytes ->
string ->
'aval load_sexp_conv :
?strict:bool ->
?buf:bytes ->
string ->
(Type.t -> 'a) ->
[> `Error of exn * Annotated.t | `Result of 'a ]val load_sexps_conv :
?buf:bytes ->
string ->
(Type.t -> 'a) ->
[> `Error of exn * Annotated.t | `Result of '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 ]