通过我的PPX语法扩展转换的OCaml代码无法找到其他包

时间:2016-04-07 13:26:15

标签: ocaml ppx

所以,我为OCaml编写了一个简单的PPX,将一个愚蠢的DSL转换成一些库调用

[%jsx div]

变得类似

ReactJS.create_element "div"

但是,每当我尝试编译它时,我都会得到未绑定的值ReactJS.create_element'。但奇怪的是,如果我得到它来输出转换后的代码,然后将该代码直接复制到文件中,它编译得很好。

PPX语法扩展是否需要链接到它们生成的AST引用的任何库?我错过了一些非常愚蠢的东西吗?

我使用以下简单的ocamlbuild命令构建我的项目:

ocamlbuild -use-ocamlfind \
    -package react,js_of_ocaml,js_of_ocaml.ppx \
    -package reactjs,reactjs_ppx \
    tutorial.byte tutorial.ml

PPX是通过绿洲生成/安装的。

有人有任何线索吗?

1 个答案:

答案 0 :(得分:2)

你可能创造了长官的错误。您应该使用Longident.parse。如果不是这样,请链接到您的代码。

您是否了解Tyxml,尤其是ppx syntax extension