是否可以像这样采用引用的Elixir表达式(AST树):
quote do: 1 + 1
=> {:+, [context: Elixir, import: Kernel], [1, 1]}
并将其转换为Erlang AST?
我查看了代码模块以及一些寻找功能的内核模块,但是我找不到任何东西。我甚至不确定这是否可能......我不知道Elix如何在Erlang AST中表示Elixir宏。
提前致谢!
答案 0 :(得分:5)
目前没有公开的API可以这样做。您可以查看the elixir module以了解它是如何完成的,但它是私有API,可以随时更改,无法保证兼容性,甚至可以删除。
答案 1 :(得分:-1)
例如,我写了'gist'如何做到 - https://gist.github.com/habibutsu/bc6791d3d81b6ea54e1a
有两个功能:
fun elixir:'string_to_quoted!'/4
fun elixir:quoted_to_erl/3