1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
open Ppxlib
let enabled = ref false
let () =
Ast_pattern.(
alt_option
(single_expr_payload @@ pexp_apply (estring __) (no_label __ ^:: nil))
(single_expr_payload __))
let () =
Ppxlib.Driver.add_arg "--enable" (Arg.Set enabled) ~doc:"compile-in logging";
let expand ~ctxt =
if !enabled then Mapper.expand_log ~ctxt else Mapper.expand_null ~ctxt
in
let extension =
Extension.V3.declare "toggle_log" Extension.Context.expression
(extractor ()) expand
in
let rule = Ppxlib.Context_free.Rule.extension extension in
Ppxlib.Driver.register_transformation "togglelog" ~rules:[ rule ]