Код OCaml, преобразованный через мое расширение синтаксиса PPX, не может найти другие пакеты
Итак, я написал простой PPX для OCaml, который превращает глупый DSL в некоторые библиотечные вызовы
[%jsx div]
Становится чем-то вроде
ReactJS.create_element "div"
Однако всякий раз, когда я пытаюсь его скомпилировать, я получаю 'Unbound value ReactJS.create_element'. Странно, однако, если я получу его для вывода преобразованного кода, а затем скопирую этот код прямо в файл, он прекрасно скомпилируется.
Нужно ли связывать расширения синтаксиса PPX с какими-либо библиотеками, на которые они ссылаются? Я что-то упускаю действительно глупо?
Я строю свой проект с помощью следующей простой команды ocamlbuild:
ocamlbuild -use-ocamlfind \
-package react,js_of_ocaml,js_of_ocaml.ppx \
-package reactjs,reactjs_ppx \
tutorial.byte tutorial.ml
И PPX генерируется / устанавливается через оазис.
У кого-нибудь есть подсказки?
1 ответ
Вы, вероятно, создали лонгедина неправильно. Вы должны использовать Longident.parse
, Если это не так, пожалуйста, ссылку на ваш код.
Знаете ли вы о Tyxml и, в частности, расширение синтаксиса ppx?