6

次のように、引用符で囲まれた Elixir 式 (AST ツリー) を使用することは可能ですか?

quote do: 1 + 1
=> {:+, [context: Elixir, import: Kernel], [1, 1]}

それを Erlang AST に変換しますか?

これを実行する関数を探して、コード モジュールといくつかのカーネル モジュールを調べましたが、何も見つかりませんでした。これが可能かどうかさえわかりません... ElixirマクロのようなものがErlang ASTでどのように表現されるかわかりません。

前もって感謝します!

4

2 に答える 2

8

現在、これを行うための公開 API はありません。elixir モジュールを調べて、それがどのように行われるかを知ることができますが、これはプライベート API であり、互換性を保証することなくいつでも変更したり、削除したりすることができます。

于 2013-11-14T18:59:31.547 に答える
-1

たとえば、「要点」をどのように行うことができるかを書きました - https://gist.github.com/habibuts/bc6791d3d81b6ea54e1a

次の 2 つの関数が使用されます。

fun elixir:'string_to_quoted!'/4
fun elixir:quoted_to_erl/3
于 2016-01-14T12:52:24.173 に答える