Код 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?

Другие вопросы по тегам