如何获得 Erlang 预处理器的输出?
我正在调试一个奇怪的宏,但我似乎无法弄清楚如何获取预处理器的输出。我正在寻找 GCC 的 -save-temps
的等效项。我尝试将 dpp
传递给 compile:file/2
,但它似乎生成了一个解析树,而不是预处理的 Erlang。
Anton 提到的 compile:file("t.erl", 'E').
很棒,但对导致语法错误的宏没有帮助。由于缺乏调试复杂宏的方法,我倾向于通过编写生成代码的程序来进行元编程。
I've got a weird macro that I'm debugging and I can't seem to figure out how to get the output of the preprocessor. I'm looking for the equivalent of GCC's -save-temps
. I've tried passing dpp
to compile:file/2
, but it seems to generate a parse tree, not preprocessed Erlang.
compile:file("t.erl", 'E').
as mentioned by Anton is great, but doesn't help with macros that cause syntax errors. Lacking a way to debug complicated macros, I'm leaning toward doing my metaprogramming by writing programs that generate code.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试以下其中一项:
Try one of these: