如何获得 Erlang 预处理器的输出?

发布于 2024-12-11 01:22:33 字数 278 浏览 1 评论 0原文

我正在调试一个奇怪的宏,但我似乎无法弄清楚如何获取预处理器的输出。我正在寻找 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

隔岸观火 2024-12-18 01:22:33

尝试以下其中一项:

   compile:file("t.erl", 'P').
   compile:file("t.erl", 'E').

Try one of these:

   compile:file("t.erl", 'P').
   compile:file("t.erl", 'E').
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文