Module Ast_convenience

Convenience functions to help build and deconstruct AST fragments.

Compatibility modules

module Label : sig ... end
module Constant : sig ... end

Misc

val lid : ?⁠loc:Ast_helper.loc -> string -> Ast_helper.lid

Expressions

val evar : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> string -> Parsetree.expression
val let_in : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> ?⁠recursive:bool -> Parsetree.value_binding list -> Parsetree.expression -> Parsetree.expression
val constr : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> string -> Parsetree.expression list -> Parsetree.expression
val record : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> ?⁠over:Parsetree.expression -> (string * Parsetree.expression) list -> Parsetree.expression
val tuple : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> Parsetree.expression list -> Parsetree.expression
val nil : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> unit -> Parsetree.expression
val cons : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> Parsetree.expression -> Parsetree.expression -> Parsetree.expression
val list : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> Parsetree.expression list -> Parsetree.expression
val unit : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> unit -> Parsetree.expression
val func : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> (Parsetree.pattern * Parsetree.expression) list -> Parsetree.expression
val lam : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> ?⁠label:Label.t -> ?⁠default:Parsetree.expression -> Parsetree.pattern -> Parsetree.expression -> Parsetree.expression
val app : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> Parsetree.expression -> Parsetree.expression list -> Parsetree.expression
val str : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> string -> Parsetree.expression
val int : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> int -> Parsetree.expression
val int32 : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> int32 -> Parsetree.expression
val int64 : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> int64 -> Parsetree.expression
val char : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> char -> Parsetree.expression
val float : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> float -> Parsetree.expression
val sequence : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> Parsetree.expression list -> Parsetree.expression

Return () if the list is empty. Tail rec.

Patterns

val pvar : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> string -> Parsetree.pattern
val pconstr : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> string -> Parsetree.pattern list -> Parsetree.pattern
val precord : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> ?⁠closed:Asttypes.closed_flag -> (string * Parsetree.pattern) list -> Parsetree.pattern
val ptuple : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> Parsetree.pattern list -> Parsetree.pattern
val pnil : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> unit -> Parsetree.pattern
val pcons : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> Parsetree.pattern -> Parsetree.pattern -> Parsetree.pattern
val plist : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> Parsetree.pattern list -> Parsetree.pattern
val pstr : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> string -> Parsetree.pattern
val pint : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> int -> Parsetree.pattern
val pchar : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> char -> Parsetree.pattern
val pfloat : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> float -> Parsetree.pattern
val punit : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> unit -> Parsetree.pattern

Types

val tconstr : ?⁠loc:Ast_helper.loc -> ?⁠attrs:Ast_helper.attrs -> string -> Parsetree.core_type list -> Parsetree.core_type

AST deconstruction

val get_str : Parsetree.expression -> string option
val get_str_with_quotation_delimiter : Parsetree.expression -> (string * string option) option
val get_lid : Parsetree.expression -> string option
val has_attr : string -> Parsetree.attributes -> bool
val find_attr : string -> Parsetree.attributes -> Parsetree.payload option
val find_attr_expr : string -> Parsetree.attributes -> Parsetree.expression option