【问题标题】:Convert an Elixir AST to an Erlang AST? Is it possible?将 Elixir AST 转换为 Erlang AST?可能吗?
【发布时间】:2013-11-27 18:35:56
【问题描述】:

是否可以像这样采用带引号的 Elixir 表达式(AST 树):

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

然后将其转换为 Erlang AST?

我查看了代码模块以及一些内核模块,寻找执行此操作的函数,但我没有找到任何东西。我什至不确定这是否可能......我不知道在 Erlang AST 中如何表示 Elixir 宏之类的东西。

提前致谢!

【问题讨论】:

    标签: erlang abstract-syntax-tree quote elixir beam


    【解决方案1】:

    目前没有公开的 API 可以执行此操作。您可以查看 the elixir module 以了解它是如何完成的,但它是私有 API,可以随时更改,不保证兼容性,甚至删除。

    【讨论】:

      【解决方案2】:

      例如,我写了 'gist' 如何做到这一点 - https://gist.github.com/habibutsu/bc6791d3d81b6ea54e1a

      用到了两个函数:

      fun elixir:'string_to_quoted!'/4
      fun elixir:quoted_to_erl/3
      

      【讨论】:

        猜你喜欢
        • 2020-07-23
        • 2011-02-11
        • 1970-01-01
        • 2021-11-28
        • 2017-07-13
        • 1970-01-01
        • 1970-01-01
        • 2014-08-30
        • 2018-12-28
        相关资源
        最近更新 更多