package embedded_ocaml_templates
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
EML is a simple templating language that lets you generate text with plain OCaml
Install
dune-project
Dependency
Authors
Maintainers
Sources
0.8.1.tar.gz
sha256=daa3dd038101d14166205ff35586e66210a155180d7ca7b246c0dd161f028c1c
sha512=5e58a98585721d7054123c538c1422d83970b3f249672e664b7d3d86f6ee43f4cf647984d15e04d15b7e7091f3768de4ee143f19c90296b21d84249c4f3f7374
doc/src/ppx_eml/ppx_eml.ml.html
Source file ppx_eml.ml
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 26 27 28 29 30 31 32module Parser_ = Parser open Ppxlib (* Not present before 4.11 *) let set_position lexbuf position = Lexing.( lexbuf.lex_curr_p <- {position with pos_fname= lexbuf.lex_curr_p.pos_fname} ; lexbuf.lex_abs_pos <- position.pos_cnum ) let name = "eml" let expand ~loc:_ ~path:_ (s : string) loc _delim = let startpos = loc.loc_start in (* let startpos = {loc.loc_start with pos_lnum= loc.loc_start.pos_lnum - 1} in *) match Common.Template_builder.of_string ~startpos s with | Error e -> Common.Lexer.pp_error Format.err_formatter e ; exit 1 | Ok template -> let code = Common.Compile.compile_to_string template in (* print_endline code ; *) let buffer = Lexing.from_string code in set_position buffer loc.loc_start ; Parser_.parse_expression Lexer.token buffer |> Selected_ast.Of_ocaml.copy_expression let ext = Extension.declare name Extension.Context.expression Ast_pattern.(single_expr_payload (pexp_constant (pconst_string __ __ __))) expand let () = Ppxlib.Driver.register_transformation name ~extensions:[ext]
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>