如何为erlang中的模块生成AST?

Posted

技术标签:

【中文标题】如何为erlang中的模块生成AST?【英文标题】:How to generate AST for a module in erlang? 【发布时间】:2021-12-16 17:25:48 【问题描述】:

如何在运行时为整个模块生成 AST?

【问题讨论】:

【参考方案1】:

有多种方法可以实现这一目标。

例如,您可以像我们在the rebar3 formatter 上一样使用ktn_dodger

但是,只有 OTP……

1> epp_dodger:quick_parse_file("src/pt_example.erl").
ok,[attribute,1,module,pt_example,
     attribute,3,export,[a,0],
     function,5,a,0,
               [clause,5,[],[],
                        [call,6,
                               remote,6,atom,6,io,atom,6,format,
                               [string,6,"Hello!"]]]]

【讨论】:

以上是关于如何为erlang中的模块生成AST?的主要内容,如果未能解决你的问题,请参考以下文章

Erlang Cowboy如何为静态文件添加响应头

使用-compile在Erlang模块中请求debug_info

Erlang模块与Erlang程序的运行方法

加载路径中的所有 erlang 模块

在 Elixir 或 Erlang 中,如何在运行时动态创建和加载模块?

基本的 Erlang 模块问题