将核心Erlang表单转换为Erlang源代码字符串

将核心Erlang表单转换为Erlang源代码字符串,erlang,otp,decompiler,coreerlang,Erlang,Otp,Decompiler,Coreerlang,我有带有cerl模块的核心Erlang表单构造。我希望将其“反编译”为Erlang源代码字符串 我想我可以这样做: Forms = erl_syntax:form_list(CoreForms), erl_prettypr:format(Forms). 但是erl\u syntax:form\u list/1返回一个空列表。核心Erlang AST无法使用syntax\u工具中的实用程序处理-这些工具仅用于普通Erlang AST。对于Core Erlang,有两个用于预打印的模块(未记录):

我有带有
cerl
模块的核心Erlang表单构造。我希望将其“反编译”为Erlang源代码字符串

我想我可以这样做:

Forms = erl_syntax:form_list(CoreForms),
erl_prettypr:format(Forms).

但是
erl\u syntax:form\u list/1
返回一个空列表。

核心Erlang AST无法使用syntax\u工具中的实用程序处理-这些工具仅用于普通Erlang AST。对于Core Erlang,有两个用于预打印的模块(未记录):编译器应用程序中的
Core\u pp
,类似于stdlib中的
erl\u pp
,以及hipe应用程序中的
cerl\u prettypr
(在lib/hipe/cerl/下)在语法工具中类似于
erl\u prettypr

什么是
CoreForms
?什么是c\u erl模块?您使用的是哪种功能?使用哪些参数?模块名为cerl,而不是c_erl。它是编译器应用程序的一部分。@pdexter
CoreForms
是一个
cerl:cerl()
,作为Core Erlang AST的模块。
Core\u pp:format/1
将Core Erlang转换为Core Erlang源字符串,但我对构建常规Erlang源字符串感兴趣。@lpil啊,那么您想从Core打印Erlang吗?这是不可能的。正如我所担心的,您不能“简单地”从核心重构Erlang源代码。感谢您的确认:)