問題タブ [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.
ocaml - OCaml ppx_xml_conv モジュールの使用例はありますか
janestreet の ppx_xml_conv モジュールの簡単な例を探しています。私は (比較的) 新しい ppx のことにはあまり詳しくなく、ソース コードから実際に理解することはできません。最終的に、私は古い SOAP サービスのクライアントを作成しようとしており、(wsdl からの) xsd をタイプおよびシリアライザー/デシリアライザーに変換したいと考えています。
ocaml - PPX 構文拡張によって変換された OCaml コードが他のパッケージを見つけられない
だから、愚かな DSL をいくつかのライブラリ呼び出しに変換する OCaml 用の簡単な PPX を書きました。
のようなものになります
ただし、コンパイルしようとすると、「Unbound value ReactJS.create_element」が表示されます。奇妙なことに、変換されたコードを出力してから、そのコードをファイルに直接コピーすると、正常にコンパイルされます。
PPX 構文拡張は、生成された AST 参照のライブラリにリンクする必要がありますか? 私は本当にばかげたことを見逃していますか?
次の単純な ocamlbuild コマンドを使用してプロジェクトをビルドしています。
また、PPX はオアシス経由で生成/インストールされます。
誰にも手がかりはありますか?
ocaml - OCaml で ppx.metaquot を使用するには?
README.mdに書かれているコマンドが動かない (ocamlfind の使い方が示されている) ppx_metaquot 実行ファイルは一種の書き換えファイルであることがわかっているので、このように準引用符を使用してコードを翻訳できます。
と思いますが、これは想定外の使い方かもしれませんので、正しい使い方を教えてください。
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 ファイルから適切に呼び出されるように生成する必要があります。./T
hello
js_of_ocaml T -o cubes.js
cubes.js
jsOneArgument
cubes.js
パッケージを台無しにする前に、が./T
返されたので、 、などをUnimplemented Javascript primitive caml_pure_js_expr!
インストールしました...npm
node
ocaml - ppx と拡張ポイントを使用して OCaml で DSL のパーサーを作成する
最近、OCaml の公式 github で発表されCamlp4
ましたppx rewriters and extension points
( https://github.com/ocaml/camlp4 ):
Camlp4 は、バージョン 4.01.0 まで公式の OCaml ディストリビューションの一部でした。それ以来、保守と学習が容易な単純なシステム (ppx リライターと拡張ポイント) に置き換えられました。
私はCamlp4
DSL (OCaml から分離された構文) 用のパーサーを作成するために使用しています。
ppx rewriters
では、ツールで同じことができるかどうかお尋ねしたいと思いますか?
私の質問を読んでくれてありがとう!
ocaml - ppx が機能するように ocamlinit をセットアップするにはどうすればよいですか?
これは私の ocamlinit です:
まさにこれで、私はこれをutopで取得します
#ppx
の代わりに で始まる行を使用すると#require "ppx_jane"
、このエラーが発生します
使用する ocamlinit をどのように設定すればよい[@@deriving show]
ですか?
ocaml - ppx 使用時の未使用/無効な属性に関する警告を有効にします
いくつかの ppx 拡張機能を使用しようとしていますが、OCaml が未使用/無効な属性に対して警告を発しないことがわかりました。たとえば、次のようなものを書いた場合:
があっても、OCaml は、決して使用されず、タイプミスの可能性が-w +A
あるという事実については何も言いません。@blaa
これは、ppx リライタを使用しようとして特定の属性を (たとえば@blaa
の代わりに@bla
) 間違って入力し、それを見つける方法がない場合に特にイライラします。または、特定の ppx リライターがまったく有効にされておらず、すべての属性が黙って無視されている場合。
このような状況で警告を有効にする方法はありますか?
注: 4.03.0 と 4.04.0 の両方で試しましたが、どちらの場合も警告は表示されませんでした。