因此,我为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语法扩展吗?