package ppx_minidebug

  1. Overview
  2. Docs
type log_value =
  1. | Sexp
  2. | Show
  3. | Pp
type toplevel_opt_arg =
  1. | Nested
  2. | Toplevel_no_arg
  3. | Runtime_passing
  4. | Runtime_local
val is_local_debug_runtime : toplevel_opt_arg -> bool
val global_log_count : int ref
type log_level =
  1. | Comptime of int
  2. | Runtime of Ppxlib.expression
type context = {
  1. log_value : log_value;
  2. track_or_explicit : [ `Diagn | `Debug | `Track ];
  3. output_type_info : bool;
  4. interrupts : bool;
  5. log_level : log_level;
  6. entry_log_level : log_level;
  7. hidden : bool;
  8. toplevel_opt_arg : toplevel_opt_arg;
}
val init_context : context ref
val parse_log_level : Ppxlib.expression -> log_level
val last_ident : Ppxlib.longident -> string
val typ2str : Ppxlib.core_type -> string
val pat2descr : default:String.t -> Ppxlib.pattern -> String.t Ppxlib.loc
val lift_track_or_explicit : loc:Ppxlib.location -> [< `Debug | `Diagn | `Track ] -> Ppxlib_ast.Ast.expression
val open_log : ?message:string -> loc:Ppxlib.Location.t -> log_level:log_level -> [< `Debug | `Diagn | `Track ] -> Astlib.Ast_500.Parsetree.expression
val open_log_no_source : message:Ppxlib_ast.Ast.expression -> loc:Ppxlib.location -> log_level:log_level -> [< `Debug | `Diagn | `Track ] -> Ppxlib_ast.Ast.expression
val to_descr : context -> loc:Ppxlib.location -> descr_loc:string Ppxlib.loc option -> Ppxlib.core_type -> Ppxlib_ast.Ast.expression
val check_comptime_log_level : context -> is_explicit:bool -> is_result:'a -> log_level:log_level -> Ppxlib.expression -> (unit -> Ppxlib_ast.Ast.expression) -> Ppxlib_ast.Ast.expression
val log_value_sexp : context -> loc:Ppxlib.location -> typ:Ppxlib.core_type -> ?descr_loc:string Ppxlib.loc -> is_explicit:bool -> is_result:bool -> log_level:log_level -> Ppxlib.expression -> Ppxlib_ast.Ast.expression
val splice_lident : id_prefix:String.t -> Ppxlib.longident -> Ppxlib.longident
val log_value_pp : context -> loc:Ppxlib.Location.t -> typ:Ppxlib.core_type -> ?descr_loc:string Ppxlib.loc -> is_explicit:bool -> is_result:bool -> log_level:log_level -> Ppxlib.expression -> Ppxlib_ast.Ast.expression
val log_value_show : context -> loc:Ppxlib.location -> typ:Ppxlib.core_type -> ?descr_loc:string Ppxlib.loc -> is_explicit:bool -> is_result:bool -> log_level:log_level -> Ppxlib.expression -> Ppxlib_ast.Ast.expression
val log_value : context -> loc:Ppxlib.location -> typ:Ppxlib.core_type -> ?descr_loc:string Ppxlib.loc -> is_explicit:bool -> is_result:bool -> log_level:log_level -> Ppxlib.expression -> Ppxlib_ast.Ast.expression
val log_value_printbox : context -> loc:Ppxlib.location -> log_level:log_level -> Ppxlib.expression -> Ppxlib_ast.Ast.expression
val log_string : loc:Ppxlib.Location.t -> descr_loc:string Ppxlib.loc -> log_level:log_level -> string -> Astlib.Ast_500.Parsetree.expression
val log_string_with_descr : loc:Ppxlib.location -> message:Ppxlib_ast.Ast.expression -> log_level:log_level -> string -> Ppxlib_ast.Ast.expression
val expand_fun : Ppxlib.expression -> fun_arg list -> Ppxlib.expression
val pick : typ:Ppxlib.core_type -> ?alt_typ:Ppxlib.core_type -> unit -> Ppxlib.core_type
val has_unprintable_type : Ppxlib.core_type -> bool
val entry_with_interrupts : context -> loc:Ppxlib.Location.t -> ?descr_loc:string Ppxlib.loc -> ?message:Ppxlib_ast.Ast.expression -> log_count_before:int -> ?header:Ppxlib_ast.Ast.expression -> preamble:Ppxlib_ast.Ast.expression -> entry:Ppxlib_ast.Ast.expression -> result:Ppxlib_ast.Ast.pattern -> log_result:Ppxlib_ast.Ast.expression -> unit -> Ppxlib_ast.Ast.expression
val debug_body : context -> (context -> Ppxlib_ast.Ast.expression -> Ppxlib_ast.Ast.expression) -> loc:Ppxlib.Location.t -> message:string -> descr_loc:string Ppxlib.loc -> log_count_before:int -> arg_logs:Ppxlib_ast.Ast.expression list -> Ppxlib.core_type option -> Ppxlib_ast.Ast.expression -> Ppxlib_ast.Ast.expression
val collect_fun_typs : Ppxlib.core_type list -> Ppxlib.core_type -> Ppxlib.core_type list * Ppxlib.core_type
val pass_runtime : ?always:bool -> toplevel_opt_arg -> Ppxlib.expression -> Ppxlib_ast.Ast.expression
val has_runtime_arg : context -> bool
val loc_to_name : Ppxlib.location -> string
val is_comptime_nothing : context -> bool
val debug_case : ?unpack_context:toplevel_opt_arg -> context -> (context -> Ppxlib_ast.Ast.expression -> Ppxlib_ast.Ast.expression) -> ?ret_descr:string Ppxlib.loc -> ?ret_typ:Ppxlib.core_type -> ?arg_typ:Ppxlib.core_type -> string -> int -> Ppxlib.case -> Ppxlib.case
val debug_function : ?unpack_context:toplevel_opt_arg -> context -> (context -> Ppxlib_ast.Ast.expression -> Ppxlib_ast.Ast.expression) -> loc:Ppxlib.Location.t -> ?ret_descr:string Ppxlib.loc -> ?ret_typ:Ppxlib.core_type -> ?arg_typ:Ppxlib.core_type -> Ppxlib.case list -> Astlib.Ast_500.Parsetree.expression
type rule = {
  1. ext_point : string;
  2. track_or_explicit : [ `Diagn | `Debug | `Track ];
  3. toplevel_opt_arg : toplevel_opt_arg;
  4. expander : [ `Debug | `Str ];
  5. log_value : log_value;
  6. entry_log_level : log_level option;
}
val entry_rules : (string, rule) Hashtbl.t
val with_opt_digit : prefix:string -> suffix:string -> string -> bool
val get_opt_digit : prefix:string -> suffix:string -> string -> log_level option
val debug_expander : context -> Ppxlib.expression -> Ppxlib.expression
val global_output_type_info : Ppxlib.Context_free.Rule.t
val global_interrupts : Ppxlib.Context_free.Rule.t
val global_log_level : Ppxlib.Context_free.Rule.t
val global_log_level_from_env_var : check_consistency:bool -> Ppxlib.Context_free.Rule.t
val noop_for_testing : Ppxlib.Context_free.Rule.t
OCaml

Innovation. Community. Security.