は、私はその後、%JS構文拡張を変換するためのOCamlを必要と私は(のようなもの)に変換PPXを持ってこのOCaml PPXは他のPPX拡張機能で解析される拡張機能を返すことができますか?
let a = [%jsx div className="hello"]
のように見える構文拡張
let a = ReactJS.create_element "div" ~props:(object%js val className = "hello" end)
を考えますこれはjs_of_ocamlによって提供されます。
しかし、見た目では、PPX拡張機能はソースを1回通過し、再帰的に適用しません。
そうすることは可能ですか?または、js_of_ocaml PPXをインポートして自分自身で実行する必要がありますか?または、単に仲介者を切り抜いて同じコードを自分のコードで作成するのに最適な方法ですか?
編集 - 詳細情報:
だから、適用されているPPXesの順序はここでの問題であることは表示されません。私は、次を得る:
+ ocamlfind ocamlc -c -package reactjs,reactjs_ppx,react,js_of_ocaml,js_of_ocaml.ppx -o tutorial.cmo tutorial.ml File "tutorial.ml", line 3, characters 14-99: Uninterpreted extension 'js'.
私は(再び)しかし、間違ったASTを生産しています感じています。 js%object
を生成するために使用 コードは次のようになります。
Exp.extension ({txt="js"; loc=loc}, PStr [ Str.eval ( Exp.object_ ( Cstr.mk (Pat.any()) fields ) ) ] )
完了 - https:// github。com/ocsigen/js_of_ocaml/issues/460 –
私は必要なものがすでにエクスポートされていることが分かりました。私はプロジェクトに取り込むだけで済みました。 –