package parsexp

  1. Overview
  2. Docs
val parse_string : string -> ((Sexplib0.Sexp.t * Positions.range) -> 'a) -> ('a list, Conv_error.t) Stdlib.result
val parse_string_exn : string -> ((Sexplib0.Sexp.t * Positions.range) -> 'a) -> 'a list
val conv : ((sexp_list * Positions.t) * Positions.t) -> ((Sexplib0.Sexp.t * Positions.range) -> 'a) -> ('a list, Of_sexp_error.t) Stdlib.result
val conv_exn : ((sexp_list * Positions.t) * Positions.t) -> ((Sexplib0.Sexp.t * Positions.range) -> 'a) -> 'a list
val conv_combine : ((sexp_list * Positions.t) * Positions.t, Parse_error.t) Stdlib.result -> ((Sexplib0.Sexp.t * Positions.range) -> 'a) -> ('a list, Conv_error.t) Stdlib.result

Convenience function for merging parsing and conversion errors.

For instance if you have a load function as follow:

val load : string -> (Sexp.t list * Positions.t, Parse_error.t) result

then you can create a load_conv function as follow:

let load_conv : string -> (Sexp.t -> 'a) -> ('a list, Conv_error.t) result
  = fun filename f -> conv_combine (load filename) f
OCaml

Innovation. Community. Security.