package dune-rpc
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=767999da81e528484139ecfe927288ffe521ac2467462a40d6a760ed789ba086
sha512=18f6a293cb5d4423a3bf69ce9559b40e7075e49b13c79166f2aacfa55cbc2609e20938bad889b43df0d5a3396ea034e405631d3757da6164c51be375e5751632
doc/dune-rpc.private/Dune_rpc_private/Conv/index.html
Module Dune_rpc_private.Conv
Source
Bidirectional parsing of canonical s-expressions
iso t to_ from
creates a parser for a type 'b
out of a parser for a type 'a
, where 'a
and 'b
are isomorphic to one another. The functions to_
and from
convert between the two types 'a
and 'b
. A typical approach for parsing record types is to convert them to/from tuples (via the three
, four
, etc. combinators) which can be parsed with record
, and then use iso
to convert the parser for a tuple type into a parser for the original record type.
parsing records
parsing sums
type error =
| Parse_error of {
message : string;
payload : (string * Stdune.Sexp.t) list;
}
| Version_error of {
since : int * int;
until : (int * int) option;
message : string;
payload : (string * Stdune.Sexp.t) list;
}
conversion from/to
fixpoint f
is a helper for creating parsers of recursive data structures such as ASTs. f
is a function which returns a parser for a single node in the hierarchy, and f
is passed a parser which it can use for parsing children of the current node. fixpoint f
then returns a parser for the recursive data structure.