通过我的 PPX 语法扩展转换的 OCaml 代码找不到其他包
OCaml code transformed through my PPX syntax extension can't find other packages
所以,我为 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 generated/installed 通过 oasis。
有人有线索吗?
您可能创建了 longident 错误。你应该使用 Longident.parse
。如果不是这种情况,请 link 到您的代码。
你知道 Tyxml and, in particular, the ppx syntax extension 吗?
所以,我为 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 generated/installed 通过 oasis。
有人有线索吗?
您可能创建了 longident 错误。你应该使用 Longident.parse
。如果不是这种情况,请 link 到您的代码。
你知道 Tyxml and, in particular, the ppx syntax extension 吗?