所以,我为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是通过绿洲生成/安装的。
有人有任何线索吗?
答案 0 :(得分:2)
你可能创造了长官的错误。您应该使用Longident.parse
。如果不是这样,请链接到您的代码。
您是否了解Tyxml,尤其是ppx syntax extension?