Module Ppx_sexp_conv_expander__.Sexp_grammar_lifter
module Atom : sig ... end
type atom
= Atom.t
type var_name
= Base.Sexp.Private.Raw_grammar.var_name
type type_name
= Base.Sexp.Private.Raw_grammar.type_name
val lift_string : loc:Ppxlib__.Import.location -> string -> Ppxlib__.Import.expression
val lift_var_name : loc:Ppxlib__.Import.location -> string -> Ppxlib__.Import.expression
val lift_type_name : loc:Ppxlib__.Import.location -> string -> Ppxlib__.Import.expression
type 't type_
= 't Base.Sexp.Private.Raw_grammar.type_
=
|
Any
|
Apply of 't type_ * 't type_ Base.list
|
Atom of atom
|
Explicit_bind of var_name Base.list * 't type_
|
Explicit_var of Base.int
|
Grammar of 't
|
Implicit_var of Base.int
|
List of 't sequence_type
|
Option of 't type_
|
Record of 't record_type
|
Recursive of type_name
|
Union of 't type_ Base.list
|
Variant of 't variant_type
and 't sequence_type
= 't component Base.list
and 't component
= 't Base.Sexp.Private.Raw_grammar.component
=
|
One of 't type_
|
Optional of 't type_
|
Many of 't type_
|
Fields of 't record_type
and 't variant_type
= 't Base.Sexp.Private.Raw_grammar.variant_type
=
{
ignore_capitalization : Base.bool;
alts : (Ppxlib.label * 't sequence_type) Base.list;
}
and 't record_type
= 't Base.Sexp.Private.Raw_grammar.record_type
=
{
allow_extra_fields : Base.bool;
fields : (Ppxlib.label * 't field) Base.list;
}
and 't field
= 't Base.Sexp.Private.Raw_grammar.field
=
{
optional : Base.bool;
args : 't sequence_type;
}
and t
= Base.unit
val lifter : loc:Ppxlib.location -> < array : a. ('a, Ppxlib.expression) Ppxlib_traverse_builtins.T.lift -> ('a Base.array, Ppxlib.expression) Ppxlib_traverse_builtins.T.lift; atom : atom -> Ppxlib.expression; bool : (Base.bool, Ppxlib.expression) Ppxlib_traverse_builtins.T.lift; char : (char, Ppxlib.expression) Ppxlib_traverse_builtins.T.lift; component : a. ('a -> Ppxlib.expression) -> 'a component -> Ppxlib.expression; constr : Base.string -> Ppxlib.expression Base.list -> Ppxlib.expression; field : a. ('a -> Ppxlib.expression) -> 'a field -> Ppxlib.expression; float : (float, Ppxlib.expression) Ppxlib_traverse_builtins.T.lift; int : (Base.int, Ppxlib.expression) Ppxlib_traverse_builtins.T.lift; int32 : (int32, Ppxlib.expression) Ppxlib_traverse_builtins.T.lift; int64 : (int64, Ppxlib.expression) Ppxlib_traverse_builtins.T.lift; label : Ppxlib.label -> Ppxlib.expression; list : a. ('a, Ppxlib.expression) Ppxlib_traverse_builtins.T.lift -> ('a Base.list, Ppxlib.expression) Ppxlib_traverse_builtins.T.lift; nativeint : (nativeint, Ppxlib.expression) Ppxlib_traverse_builtins.T.lift; option : a. ('a, Ppxlib.expression) Ppxlib_traverse_builtins.T.lift -> ('a option, Ppxlib.expression) Ppxlib_traverse_builtins.T.lift; other : a. ('a, Ppxlib.expression) Ppxlib_traverse_builtins.T.lift; record : (Base.string * Ppxlib.expression) Base.list -> Ppxlib.expression; record_type : a. ('a -> Ppxlib.expression) -> 'a record_type -> Ppxlib.expression; sequence_type : a. ('a -> Ppxlib.expression) -> 'a sequence_type -> Ppxlib.expression; string : (string, Ppxlib.expression) Ppxlib_traverse_builtins.T.lift; t : t -> Ppxlib.expression; tuple : Ppxlib.expression Base.list -> Ppxlib.expression; type_ : a. ('a -> Ppxlib.expression) -> 'a type_ -> Ppxlib.expression; type_name : type_name -> Ppxlib.expression; unit : (Base.unit, Ppxlib.expression) Ppxlib_traverse_builtins.T.lift; var_name : var_name -> Ppxlib.expression; variant_type : a. ('a -> Ppxlib.expression) -> 'a variant_type -> Ppxlib.expression; >