問題タブ [ppx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
898 参照

ocaml - OCaml ppx_xml_conv モジュールの使用例はありますか

janestreet の ppx_xml_conv モジュールの簡単な例を探しています。私は (比較的) 新しい ppx のことにはあまり詳しくなく、ソース コードから実際に理解することはできません。最終的に、私は古い SOAP サービスのクライアントを作成しようとしており、(wsdl からの) xsd をタイプおよびシリアライザー/デシリアライザーに変換したいと考えています。

0 投票する
1 に答える
253 参照

ocaml - PPX 構文拡張によって変換された OCaml コードが他のパッケージを見つけられない

だから、愚かな DSL をいくつかのライブラリ呼び出しに変換する OCaml 用の簡単な PPX を書きました。

のようなものになります

ただし、コンパイルしようとすると、「Unbound value ReactJS.create_element」が表示されます。奇妙なことに、変換されたコードを出力してから、そのコードをファイルに直接コピーすると、正常にコンパイルされます。

PPX 構文拡張は、生成された AST 参照のライブラリにリンクする必要がありますか? 私は本当にばかげたことを見逃していますか?

次の単純な ocamlbuild コマンドを使用してプロジェクトをビルドしています。

また、PPX はオアシス経由で生成/インストールされます。

誰にも手がかりはありますか?

0 投票する
1 に答える
596 参照

ocaml - OCaml で ppx.metaquot を使用するには?

README.mdに書かれているコマンドが動かない (ocamlfind の使い方が示されている) ppx_metaquot 実行ファイルは一種の書き換えファイルであることがわかっているので、このように準引用符を使用してコードを翻訳できます。

と思いますが、これは想定外の使い方かもしれませんので、正しい使い方を教えてください。

0 投票する
1 に答える
863 参照

ocaml - ocaml、camlp4、ppx、node、js_of_ocaml、ocamlbuild に互換性を持たせる

とをインストールnpmした後node、OCaml ファイルをコンパイルするとjs_of_ocamlエラーが発生したため、次のようにしましたopam switch reinstall system

ocamlfindその後、もう機能しないことに気付きました:

PS:node --version与えるv6.1.0; npm --version与える3.8.6; ocaml -versionを与えThe OCaml toplevel, version 4.03.0ます。 js_of_ocaml --versionでしたが2.7、落札後、opam swtich reinstall systemお譲り致し-bash: /Users/softtimur/.opam/system/bin/js_of_ocaml: No such file or directoryます。

これらすべてのパッケージに互換性を持たせるために何をすべきか知っている人はいますか?


以前:npmとをインストールした後node、実行する前のコンパイル エラーは次のopam switch reinstall systemとおりです。

別の方法でもエラーが発生しました:


最初に: 私の最初の目標は、次のように記述してコンパイルするcubes.mlことです。1) Web で呼び出すことができる JS 関数を作成するために OCaml 関数をラップします。2) OCaml 関数とバイトコードは、Linux のコマンドラインでテストできます。

cubes.ml以下のとおりであります:

次に、を返すocamlfind ocamlc -package js_of_ocaml.ppx -linkpkg cubes.ml -o T必要があるものを生成するT必要があります。また、 の関数が他の JS または HTML ファイルから適切に呼び出されるように生成する必要があります。./Thellojs_of_ocaml T -o cubes.jscubes.jsjsOneArgumentcubes.js

パッケージを台無しにする前に、が./T返されたので、 、などをUnimplemented Javascript primitive caml_pure_js_expr!インストールしました...npmnode

0 投票する
1 に答える
816 参照

ocaml - ppx と拡張ポイントを使用して OCaml で DSL のパーサーを作成する

最近、OCaml の公式 github で発表されCamlp4ましたppx rewriters and extension points( https://github.com/ocaml/camlp4 ):

Camlp4 は、バージョン 4.01.0 まで公式の OCaml ディストリビューションの一部でした。それ以来、保守と学習が容易な単純なシステム (ppx リライターと拡張ポイント) に置き換えられました。

私はCamlp4DSL (OCaml から分離された構文) 用のパーサーを作成するために使用しています。

ppx rewritersでは、ツールで同じことができるかどうかお尋ねしたいと思いますか?

私の質問を読んでくれてありがとう!

0 投票する
2 に答える
628 参照

ocaml - ppx が機能するように ocamlinit をセットアップするにはどうすればよいですか?

これは私の ocamlinit です:

まさにこれで、私はこれをutopで取得します

#ppxの代わりに で始まる行を使用すると#require "ppx_jane"、このエラーが発生します

使用する ocamlinit をどのように設定すればよい[@@deriving show]ですか?

0 投票する
1 に答える
122 参照

ocaml - ppx 使用時の未使用/無効な属性に関する警告を有効にします

いくつかの ppx 拡張機能を使用しようとしていますが、OCaml が未使用/無効な属性に対して警告を発しないことがわかりました。たとえば、次のようなものを書いた場合:

があっても、OCaml は、決して使用されず、タイプミスの可能性が-w +Aあるという事実については何も言いません。@blaa

これは、ppx リライタを使用しようとして特定の属性を (たとえば@blaaの代わりに@bla) 間違って入力し、それを見つける方法がない場合に特にイライラします。または、特定の ppx リライターがまったく有効にされておらず、すべての属性が黙って無視されている場合。

このような状況で警告を有効にする方法はありますか?

注: 4.03.0 と 4.04.0 の両方で試しましたが、どちらの場合も警告は表示されませんでした。