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



因此,我为OCaml编写了一个简单的PPX,它将一个愚蠢的DSL转换为一些称为的库

[%jsx div]

变成类似的东西

ReactJS.create_element "div"

然而,每当我试图编译它时,我都会得到"Unbound value 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是通过oasis生成/安装的。

有人知道线索吗?

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

您知道Tyxml,尤其是ppx语法扩展吗?

最新更新