package ppxlib
- Overview
- No Docs
You can search for identifiers within the package.
in-package search v0.2.0
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=d21676654e57faa12d7895caffe8703b64521d66efcf152491871a55b2ae41d8
sha512=63f2d327cfc5382476f812670d304aade91b3ea8f10420d6fc9e7078112368d99dbf43dfda9c2c2cf91341b71c37c45c1fe1d54fecde2348560f9d3c48571603
doc/ppxlib.stdppx/Stdppx/index.html
Module StdppxSource
include module type of struct include Sexplib0.Sexp_conv end
Conversion of OCaml-values to S-expressions
default_string_of_float reference to the default function used to convert floats to strings.
Initially set to fun n -> sprintf "%.20G" n.
write_old_option_format reference for the default option format used to write option values. If set to true, the old-style option format will be used, the new-style one otherwise.
Initially set to true.
read_old_option_format reference for the default option format used to read option values. Of_sexp_error will be raised with old-style option values if this reference is set to false. Reading new-style option values is always supported. Using a global reference instead of changing the converter calling conventions is the only way to avoid breaking old code with the standard macros.
Initially set to true.
We re-export a tail recursive map function, because some modules override the standard library functions (e.g. StdLabels) which wrecks havoc with the camlp4 extension.
sexp_of_unit () converts a value of type unit to an S-expression.
sexp_of_bool b converts the value x of type bool to an S-expression.
sexp_of_string str converts the value str of type string to an S-expression.
sexp_of_bytes str converts the value str of type bytes to an S-expression.
sexp_of_char c converts the value c of type char to an S-expression.
sexp_of_int n converts the value n of type int to an S-expression.
sexp_of_float n converts the value n of type float to an S-expression.
sexp_of_int32 n converts the value n of type int32 to an S-expression.
sexp_of_int64 n converts the value n of type int64 to an S-expression.
sexp_of_nativeint n converts the value n of type nativeint to an S-expression.
sexp_of_ref conv r converts the value r of type 'a ref to an S-expression. Uses conv to convert values of type 'a to an S-expression.
sexp_of_lazy_t conv l converts the value l of type 'a lazy_t to an S-expression. Uses conv to convert values of type 'a to an S-expression.
sexp_of_option conv opt converts the value opt of type 'a option to an S-expression. Uses conv to convert values of type 'a to an S-expression.
val sexp_of_pair :
('a -> Sexplib0.Sexp.t) ->
('b -> Sexplib0.Sexp.t) ->
('a * 'b) ->
Sexplib0.Sexp.tsexp_of_pair conv1 conv2 pair converts a pair to an S-expression. It uses its first argument to convert the first element of the pair, and its second argument to convert the second element of the pair.
val sexp_of_triple :
('a -> Sexplib0.Sexp.t) ->
('b -> Sexplib0.Sexp.t) ->
('c -> Sexplib0.Sexp.t) ->
('a * 'b * 'c) ->
Sexplib0.Sexp.tsexp_of_triple conv1 conv2 conv3 triple converts a triple to an S-expression using conv1, conv2, and conv3 to convert its elements.
sexp_of_list conv lst converts the value lst of type 'a list to an S-expression. Uses conv to convert values of type 'a to an S-expression.
sexp_of_array conv ar converts the value ar of type 'a array to an S-expression. Uses conv to convert values of type 'a to an S-expression.
val sexp_of_hashtbl :
('a -> Sexplib0.Sexp.t) ->
('b -> Sexplib0.Sexp.t) ->
('a, 'b) Hashtbl.t ->
Sexplib0.Sexp.tsexp_of_hashtbl conv_key conv_value htbl converts the value htbl of type ('a, 'b) Hashtbl.t to an S-expression. Uses conv_key to convert the hashtable keys of type 'a, and conv_value to convert hashtable values of type 'b to S-expressions.
sexp_of_opaque x converts the value x of opaque type to an S-expression. This means the user need not provide converters, but the result cannot be interpreted.
sexp_of_fun f converts the value f of function type to a dummy S-expression. Functions cannot be serialized as S-expressions, but at least a placeholder can be generated for pretty-printing.
Conversion of S-expressions to OCaml-values
Of_sexp_error (exn, sexp) the exception raised when an S-expression could not be successfully converted to an OCaml-value.
record_check_extra_fields checks for extra (= unknown) fields in record S-expressions.
of_sexp_error reason sexp
of_sexp_error exc sexp
unit_of_sexp sexp converts S-expression sexp to a value of type unit.
bool_of_sexp sexp converts S-expression sexp to a value of type bool.
string_of_sexp sexp converts S-expression sexp to a value of type string.
bytes_of_sexp sexp converts S-expression sexp to a value of type bytes.
char_of_sexp sexp converts S-expression sexp to a value of type char.
int_of_sexp sexp converts S-expression sexp to a value of type int.
float_of_sexp sexp converts S-expression sexp to a value of type float.
int32_of_sexp sexp converts S-expression sexp to a value of type int32.
int64_of_sexp sexp converts S-expression sexp to a value of type int64.
nativeint_of_sexp sexp converts S-expression sexp to a value of type nativeint.
ref_of_sexp conv sexp converts S-expression sexp to a value of type 'a ref using conversion function conv, which converts an S-expression to a value of type 'a.
lazy_t_of_sexp conv sexp converts S-expression sexp to a value of type 'a lazy_t using conversion function conv, which converts an S-expression to a value of type 'a.
option_of_sexp conv sexp converts S-expression sexp to a value of type 'a option using conversion function conv, which converts an S-expression to a value of type 'a.
val pair_of_sexp :
(Sexplib0.Sexp.t -> 'a) ->
(Sexplib0.Sexp.t -> 'b) ->
Sexplib0.Sexp.t ->
'a * 'bpair_of_sexp conv1 conv2 sexp converts S-expression sexp to a pair of type 'a * 'b using conversion functions conv1 and conv2, which convert S-expressions to values of type 'a and 'b respectively.
val triple_of_sexp :
(Sexplib0.Sexp.t -> 'a) ->
(Sexplib0.Sexp.t -> 'b) ->
(Sexplib0.Sexp.t -> 'c) ->
Sexplib0.Sexp.t ->
'a * 'b * 'ctriple_of_sexp conv1 conv2 conv3 sexp converts S-expression sexp to a triple of type 'a * 'b * 'c using conversion functions conv1, conv2, and conv3, which convert S-expressions to values of type 'a, 'b, and 'c respectively.
list_of_sexp conv sexp converts S-expression sexp to a value of type 'a list using conversion function conv, which converts an S-expression to a value of type 'a.
array_of_sexp conv sexp converts S-expression sexp to a value of type 'a array using conversion function conv, which converts an S-expression to a value of type 'a.
val hashtbl_of_sexp :
(Sexplib0.Sexp.t -> 'a) ->
(Sexplib0.Sexp.t -> 'b) ->
Sexplib0.Sexp.t ->
('a, 'b) Hashtbl.thashtbl_of_sexp conv_key conv_value sexp converts S-expression sexp to a value of type ('a, 'b) Hashtbl.t using conversion function conv_key, which converts an S-expression to hashtable key of type 'a, and function conv_value, which converts an S-expression to hashtable value of type 'b.
opaque_of_sexp sexp
fun_of_sexp sexp
Sexp Grammars
val sexp_grammar_with_tags :
Sexplib0.Sexp_grammar.grammar ->
tags:(string * Sexplib0.Sexp.t) list ->
Sexplib0.Sexp_grammar.grammarval sexp_grammar_with_tag_list :
'a Sexplib0.Sexp_grammar.with_tag_list ->
tags:(string * Sexplib0.Sexp.t) list ->
'a Sexplib0.Sexp_grammar.with_tag_listSexp grammar definitions.
Exception converters
sexp_of_exn exc converts exception exc to an S-expression. If no suitable converter is found, the standard converter in Printexc will be used to generate an atomic S-expression.
Converts an exception to a string via sexp, falling back to Printexc.to_string if no sexp conversion is registered for this exception.
This is different from Printexc.to_string in that it additionally uses the sexp converters registered with ~printexc:false. Another difference is that the behavior of Printexc can be overridden with Printexc.register, but here we always try sexp conversion first.
sexp_of_exn_opt exc converts exception exc to Some sexp. If no suitable converter is found, None is returned instead.