File: tyxml_ppx_register.ml

package info (click to toggle)
tyxml 4.6.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 944 kB
  • sloc: ml: 9,712; makefile: 91; javascript: 3
file content (25 lines) | stat: -rw-r--r-- 671 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
open Ppxlib

let str_item_expansion name lang =
  Extension.declare_with_path_arg
    name
    Extension.Context.structure_item
    Ast_pattern.(pstr ((pstr_value __ __) ^:: nil))
    (Tyxml_ppx.expand_str_item ~lang)

let expr_expansion name lang =
  Extension.declare_with_path_arg
    name
    Extension.Context.expression
    Ast_pattern.(pstr ((pstr_eval __ __) ^:: nil))
    (Tyxml_ppx.expand_expr ~lang)

let () =
  let extensions = [
    expr_expansion "tyxml.html" Html;
    expr_expansion "tyxml.svg" Svg;
    str_item_expansion "tyxml.html" Html;
    str_item_expansion "tyxml.svg" Svg;
  ]
  in    
  Ppxlib.Driver.register_transformation ~extensions "tyxml"