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

通过我的PPX语法扩展转换的OCaml代码可以';我找不到其他包裹,ocaml,ppx,Ocaml,Ppx,因此,我为OCaml编写了一个简单的PPX,它将一个愚蠢的DSL转换为一些库调用 [%jsx div] 变得有点像 ReactJS.create_element "div" 然而,每当我试图编译它时,就会得到“unboundvalue ReactJS.create_element”。奇怪的是,如果我让它输出转换后的代码,然后将代码直接复制到文件中,它就可以编译了 PPX语法扩展是否需要链接到其生成的AST引用的任何库?我是不是错过了一些很愚蠢的事情 我正在使用以下简单的ocamlbuild命

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

[%jsx div]
变得有点像

ReactJS.create_element "div"
然而,每当我试图编译它时,就会得到“unboundvalue 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.parse
。如果不是这样,请链接到您的代码


您是否意识到,尤其是?

您确实是对的-我正在手动构建Lident。我必须看一看Tyxml4.03.0对PPX输出进行了几个不变检查。希望这种“PPX输出无法编译,但我在其文本输出中看不到任何错误”的问题将更容易检测到。