Up

Module Make (Loc : Loc) : S

Build Ast helpers with the location argument factorized.

Parameters

Loc : Loc

Signature

val loc : Location.t
val case : lhs:Parsetree.pattern -> guard:Parsetree.expression option -> rhs:Parsetree.expression -> Parsetree.case
val pcl_constr : Longident.t Asttypes.loc -> Parsetree.core_type list -> Parsetree.class_expr
val pcl_structure : Parsetree.class_structure -> Parsetree.class_expr
val pcl_fun : Asttypes.label -> Parsetree.expression option -> Parsetree.pattern -> Parsetree.class_expr -> Parsetree.class_expr
val pcl_apply : Parsetree.class_expr -> (Asttypes.label * Parsetree.expression) list -> Parsetree.class_expr
val pcl_let : Asttypes.rec_flag -> Parsetree.value_binding list -> Parsetree.class_expr -> Parsetree.class_expr
val pcl_constraint : Parsetree.class_expr -> Parsetree.class_type -> Parsetree.class_expr
val pcl_extension : Parsetree.extension -> Parsetree.class_expr
val pcf_inherit : Asttypes.override_flag -> Parsetree.class_expr -> string option -> Parsetree.class_field
val pcf_val : string Asttypes.loc * Asttypes.mutable_flag * Parsetree.class_field_kind -> Parsetree.class_field
val pcf_method : string Asttypes.loc * Asttypes.private_flag * Parsetree.class_field_kind -> Parsetree.class_field
val pcf_constraint : Parsetree.core_type * Parsetree.core_type -> Parsetree.class_field
val pcf_initializer : Parsetree.expression -> Parsetree.class_field
val pcf_attribute : Parsetree.attribute -> Parsetree.class_field
val pcf_extension : Parsetree.extension -> Parsetree.class_field
val class_infos : virt:Asttypes.virtual_flag -> params:(Parsetree.core_type * Asttypes.variance) list -> name:string Asttypes.loc -> expr:'a -> 'a Parsetree.class_infos
val class_signature : self:Parsetree.core_type -> fields:Parsetree.class_type_field list -> Parsetree.class_signature
val class_structure : self:Parsetree.pattern -> fields:Parsetree.class_field list -> Parsetree.class_structure
val pcty_constr : Longident.t Asttypes.loc -> Parsetree.core_type list -> Parsetree.class_type
val pcty_signature : Parsetree.class_signature -> Parsetree.class_type
val pcty_arrow : Asttypes.label -> Parsetree.core_type -> Parsetree.class_type -> Parsetree.class_type
val pcty_extension : Parsetree.extension -> Parsetree.class_type
val pctf_inherit : Parsetree.class_type -> Parsetree.class_type_field
val pctf_val : string * Asttypes.mutable_flag * Asttypes.virtual_flag * Parsetree.core_type -> Parsetree.class_type_field
val pctf_method : string * Asttypes.private_flag * Asttypes.virtual_flag * Parsetree.core_type -> Parsetree.class_type_field
val pctf_constraint : Parsetree.core_type * Parsetree.core_type -> Parsetree.class_type_field
val pctf_attribute : Parsetree.attribute -> Parsetree.class_type_field
val pctf_extension : Parsetree.extension -> Parsetree.class_type_field
val constructor_declaration : name:string Asttypes.loc -> args:Parsetree.core_type list -> res:Parsetree.core_type option -> Parsetree.constructor_declaration
val ptyp_any : Parsetree.core_type
val ptyp_var : string -> Parsetree.core_type
val ptyp_arrow : Asttypes.label -> Parsetree.core_type -> Parsetree.core_type -> Parsetree.core_type
val ptyp_tuple : Parsetree.core_type list -> Parsetree.core_type
val ptyp_constr : Longident.t Asttypes.loc -> Parsetree.core_type list -> Parsetree.core_type
val ptyp_object : (string * Parsetree.attributes * Parsetree.core_type) list -> Asttypes.closed_flag -> Parsetree.core_type
val ptyp_class : Longident.t Asttypes.loc -> Parsetree.core_type list -> Parsetree.core_type
val ptyp_alias : Parsetree.core_type -> string -> Parsetree.core_type
val ptyp_variant : Parsetree.row_field list -> Asttypes.closed_flag -> Asttypes.label list option -> Parsetree.core_type
val ptyp_poly : string list -> Parsetree.core_type -> Parsetree.core_type
val ptyp_package : Parsetree.package_type -> Parsetree.core_type
val ptyp_extension : Parsetree.extension -> Parsetree.core_type
val pexp_ident : Longident.t Asttypes.loc -> Parsetree.expression
val pexp_constant : Asttypes.constant -> Parsetree.expression
val pexp_let : Asttypes.rec_flag -> Parsetree.value_binding list -> Parsetree.expression -> Parsetree.expression
val pexp_function : Parsetree.case list -> Parsetree.expression
val pexp_fun : Asttypes.label -> Parsetree.expression option -> Parsetree.pattern -> Parsetree.expression -> Parsetree.expression
val pexp_apply : Parsetree.expression -> (Asttypes.label * Parsetree.expression) list -> Parsetree.expression
val pexp_match : Parsetree.expression -> Parsetree.case list -> Parsetree.expression
val pexp_try : Parsetree.expression -> Parsetree.case list -> Parsetree.expression
val pexp_tuple : Parsetree.expression list -> Parsetree.expression
val pexp_construct : Longident.t Asttypes.loc -> Parsetree.expression option -> Parsetree.expression
val pexp_variant : Asttypes.label -> Parsetree.expression option -> Parsetree.expression
val pexp_record : (Longident.t Asttypes.loc * Parsetree.expression) list -> Parsetree.expression option -> Parsetree.expression
val pexp_field : Parsetree.expression -> Longident.t Asttypes.loc -> Parsetree.expression
val pexp_setfield : Parsetree.expression -> Longident.t Asttypes.loc -> Parsetree.expression -> Parsetree.expression
val pexp_array : Parsetree.expression list -> Parsetree.expression
val pexp_ifthenelse : Parsetree.expression -> Parsetree.expression -> Parsetree.expression option -> Parsetree.expression
val pexp_sequence : Parsetree.expression -> Parsetree.expression -> Parsetree.expression
val pexp_while : Parsetree.expression -> Parsetree.expression -> Parsetree.expression
val pexp_for : Parsetree.pattern -> Parsetree.expression -> Parsetree.expression -> Asttypes.direction_flag -> Parsetree.expression -> Parsetree.expression
val pexp_constraint : Parsetree.expression -> Parsetree.core_type -> Parsetree.expression
val pexp_coerce : Parsetree.expression -> Parsetree.core_type option -> Parsetree.core_type -> Parsetree.expression
val pexp_send : Parsetree.expression -> string -> Parsetree.expression
val pexp_new : Longident.t Asttypes.loc -> Parsetree.expression
val pexp_setinstvar : string Asttypes.loc -> Parsetree.expression -> Parsetree.expression
val pexp_override : (string Asttypes.loc * Parsetree.expression) list -> Parsetree.expression
val pexp_letmodule : string Asttypes.loc -> Parsetree.module_expr -> Parsetree.expression -> Parsetree.expression
val pexp_assert : Parsetree.expression -> Parsetree.expression
val pexp_lazy : Parsetree.expression -> Parsetree.expression
val pexp_poly : Parsetree.expression -> Parsetree.core_type option -> Parsetree.expression
val pexp_object : Parsetree.class_structure -> Parsetree.expression
val pexp_newtype : string -> Parsetree.expression -> Parsetree.expression
val pexp_pack : Parsetree.module_expr -> Parsetree.expression
val pexp_open : Asttypes.override_flag -> Longident.t Asttypes.loc -> Parsetree.expression -> Parsetree.expression
val pexp_extension : Parsetree.extension -> Parsetree.expression
val extension_constructor : name:string Asttypes.loc -> kind:Parsetree.extension_constructor_kind -> Parsetree.extension_constructor
val include_infos : 'a -> 'a Parsetree.include_infos
val label_declaration : name:string Asttypes.loc -> mutable_:Asttypes.mutable_flag -> type_:Parsetree.core_type -> Parsetree.label_declaration
val lexing_position : fname:string -> lnum:int -> bol:int -> cnum:int -> Lexing.position
val location : start:Lexing.position -> end_:Lexing.position -> ghost:bool -> Location.t
val module_binding : name:string Asttypes.loc -> expr:Parsetree.module_expr -> Parsetree.module_binding
val module_declaration : name:string Asttypes.loc -> type_:Parsetree.module_type -> Parsetree.module_declaration
val pmod_ident : Longident.t Asttypes.loc -> Parsetree.module_expr
val pmod_structure : Parsetree.structure -> Parsetree.module_expr
val pmod_functor : string Asttypes.loc -> Parsetree.module_type option -> Parsetree.module_expr -> Parsetree.module_expr
val pmod_apply : Parsetree.module_expr -> Parsetree.module_expr -> Parsetree.module_expr
val pmod_constraint : Parsetree.module_expr -> Parsetree.module_type -> Parsetree.module_expr
val pmod_unpack : Parsetree.expression -> Parsetree.module_expr
val pmod_extension : Parsetree.extension -> Parsetree.module_expr
val pmty_ident : Longident.t Asttypes.loc -> Parsetree.module_type
val pmty_signature : Parsetree.signature -> Parsetree.module_type
val pmty_functor : string Asttypes.loc -> Parsetree.module_type option -> Parsetree.module_type -> Parsetree.module_type
val pmty_with : Parsetree.module_type -> Parsetree.with_constraint list -> Parsetree.module_type
val pmty_typeof : Parsetree.module_expr -> Parsetree.module_type
val pmty_extension : Parsetree.extension -> Parsetree.module_type
val pmty_alias : Longident.t Asttypes.loc -> Parsetree.module_type
val module_type_declaration : name:string Asttypes.loc -> type_:Parsetree.module_type option -> Parsetree.module_type_declaration
val open_description : lid:Longident.t Asttypes.loc -> override:Asttypes.override_flag -> Parsetree.open_description
val ppat_any : Parsetree.pattern
val ppat_var : string Asttypes.loc -> Parsetree.pattern
val ppat_alias : Parsetree.pattern -> string Asttypes.loc -> Parsetree.pattern
val ppat_constant : Asttypes.constant -> Parsetree.pattern
val ppat_interval : Asttypes.constant -> Asttypes.constant -> Parsetree.pattern
val ppat_tuple : Parsetree.pattern list -> Parsetree.pattern
val ppat_construct : Longident.t Asttypes.loc -> Parsetree.pattern option -> Parsetree.pattern
val ppat_variant : Asttypes.label -> Parsetree.pattern option -> Parsetree.pattern
val ppat_record : (Longident.t Asttypes.loc * Parsetree.pattern) list -> Asttypes.closed_flag -> Parsetree.pattern
val ppat_array : Parsetree.pattern list -> Parsetree.pattern
val ppat_or : Parsetree.pattern -> Parsetree.pattern -> Parsetree.pattern
val ppat_constraint : Parsetree.pattern -> Parsetree.core_type -> Parsetree.pattern
val ppat_type : Longident.t Asttypes.loc -> Parsetree.pattern
val ppat_lazy : Parsetree.pattern -> Parsetree.pattern
val ppat_unpack : string Asttypes.loc -> Parsetree.pattern
val ppat_exception : Parsetree.pattern -> Parsetree.pattern
val ppat_extension : Parsetree.extension -> Parsetree.pattern
val psig_value : Parsetree.value_description -> Parsetree.signature_item
val psig_type : Parsetree.type_declaration list -> Parsetree.signature_item
val psig_typext : Parsetree.type_extension -> Parsetree.signature_item
val psig_exception : Parsetree.extension_constructor -> Parsetree.signature_item
val psig_module : Parsetree.module_declaration -> Parsetree.signature_item
val psig_recmodule : Parsetree.module_declaration list -> Parsetree.signature_item
val psig_modtype : Parsetree.module_type_declaration -> Parsetree.signature_item
val psig_open : Parsetree.open_description -> Parsetree.signature_item
val psig_include : Parsetree.include_description -> Parsetree.signature_item
val psig_class : Parsetree.class_description list -> Parsetree.signature_item
val psig_class_type : Parsetree.class_type_declaration list -> Parsetree.signature_item
val psig_attribute : Parsetree.attribute -> Parsetree.signature_item
val psig_extension : Parsetree.extension -> Parsetree.attributes -> Parsetree.signature_item
val pstr_eval : Parsetree.expression -> Parsetree.attributes -> Parsetree.structure_item
val pstr_value : Asttypes.rec_flag -> Parsetree.value_binding list -> Parsetree.structure_item
val pstr_primitive : Parsetree.value_description -> Parsetree.structure_item
val pstr_type : Parsetree.type_declaration list -> Parsetree.structure_item
val pstr_typext : Parsetree.type_extension -> Parsetree.structure_item
val pstr_exception : Parsetree.extension_constructor -> Parsetree.structure_item
val pstr_module : Parsetree.module_binding -> Parsetree.structure_item
val pstr_recmodule : Parsetree.module_binding list -> Parsetree.structure_item
val pstr_modtype : Parsetree.module_type_declaration -> Parsetree.structure_item
val pstr_open : Parsetree.open_description -> Parsetree.structure_item
val pstr_class : Parsetree.class_declaration list -> Parsetree.structure_item
val pstr_class_type : Parsetree.class_type_declaration list -> Parsetree.structure_item
val pstr_include : Parsetree.include_declaration -> Parsetree.structure_item
val pstr_attribute : Parsetree.attribute -> Parsetree.structure_item
val pstr_extension : Parsetree.extension -> Parsetree.attributes -> Parsetree.structure_item
val type_declaration : name:string Asttypes.loc -> params:(Parsetree.core_type * Asttypes.variance) list -> cstrs:(Parsetree.core_type * Parsetree.core_type * Location.t) list -> kind:Parsetree.type_kind -> private_:Asttypes.private_flag -> manifest:Parsetree.core_type option -> Parsetree.type_declaration
val type_extension : path:Longident.t Asttypes.loc -> params:(Parsetree.core_type * Asttypes.variance) list -> constructors:Parsetree.extension_constructor list -> private_:Asttypes.private_flag -> Parsetree.type_extension
val value_binding : pat:Parsetree.pattern -> expr:Parsetree.expression -> Parsetree.value_binding
val value_description : name:string Asttypes.loc -> type_:Parsetree.core_type -> prim:string list -> Parsetree.value_description
include Ast_builder_intf.Additional_helpers with type 'a with_loc := 'a Ast_builder_intf.without_location
type 'a with_loc
val eint : (int -> Parsetree.expression) with_loc
val echar : (char -> Parsetree.expression) with_loc
val estring : (string -> Parsetree.expression) with_loc
val efloat : (string -> Parsetree.expression) with_loc
val eint32 : (int32 -> Parsetree.expression) with_loc
val eint64 : (int64 -> Parsetree.expression) with_loc
val enativeint : (nativeint -> Parsetree.expression) with_loc
val ebool : (bool -> Parsetree.expression) with_loc
val pint : (int -> Parsetree.pattern) with_loc
val pchar : (char -> Parsetree.pattern) with_loc
val pstring : (string -> Parsetree.pattern) with_loc
val pfloat : (string -> Parsetree.pattern) with_loc
val pint32 : (int32 -> Parsetree.pattern) with_loc
val pint64 : (int64 -> Parsetree.pattern) with_loc
val pnativeint : (nativeint -> Parsetree.pattern) with_loc
val pbool : (bool -> Parsetree.pattern) with_loc
val eunit : Parsetree.expression with_loc
val punit : Parsetree.pattern with_loc
val evar : (string -> Parsetree.expression) with_loc

evar id produces a Pexp_ident _ expression, it parses its input so you can pass any dot-separated identifier, for instance: evar ~loc "Foo.bar".

val pvar : (string -> Parsetree.pattern) with_loc
val eapply : (Parsetree.expression -> Parsetree.expression list -> Parsetree.expression) with_loc

Same as pexp_apply but without labels

val eabstract : (Parsetree.pattern list -> Parsetree.expression -> Parsetree.expression) with_loc
val pconstruct : Parsetree.constructor_declaration -> Parsetree.pattern option -> Parsetree.pattern
val econstruct : Parsetree.constructor_declaration -> Parsetree.expression option -> Parsetree.expression
val elist : (Parsetree.expression list -> Parsetree.expression) with_loc
val plist : (Parsetree.pattern list -> Parsetree.pattern) with_loc
val nonrec_type_declaration : (name:string Location.loc -> params:(Parsetree.core_type * Asttypes.variance) list -> cstrs:(Parsetree.core_type * Parsetree.core_type * Location.t) list -> kind:Parsetree.type_kind -> private_:Asttypes.private_flag -> manifest:Parsetree.core_type option -> Parsetree.type_declaration) with_loc