Module Bidir.Parse

Extracts Lang.Common.parseable parsers from fields defined by Types.bidir programs.

module P = Lang.Common
type pvalue =
  1. | P of P.parseable
  2. | PTup of pvalue list
val show_pvalue : pvalue -> Ppx_deriving_runtime.string
val join_pvalue : pvalue -> pvalue -> pvalue
val show_pstate : pstate -> Ppx_deriving_runtime.string
val parser_of_val : Types.value -> pvalue
val parser_lens_of_expr : Types.expr -> (pstate -> pvalue) option * (pvalue -> pstate -> pstate)
val parser_of_pvalue : pvalue -> P.parseable
val parsers_of_intrinsics : Intrinsics.intrinsic -> dir:Intrinsics.dir -> pvalue -> pvalue

Executes the given bidirectional program in the forwards direction to obtain parsers for each output variable.

val strings_of_bindings : Lang.Common.output list Lang.Common.StringMap.t -> string Lang.Common.StringMap.t
val values_of_strings : fields:Lang.Common.StringMap.key list -> ?value:(string -> Types.value) -> string Lang.Common.StringMap.t -> Types.value Lang.Common.StringMap.t