【发布时间】:2020-03-19 04:06:30
【问题描述】:
我的 C++ 工具链中有一个预构建事件工具(用 Ruby 编写),它可以从现有 C++ 源代码生成额外的 C++ 代码。我想用更快的生成器替换这个工具,使用 clang 是最好的选择。
有没有办法编写一个解析文件的 C++ 源代码的 C++ 应用程序,以便我可以在 Clang 中实现这个预构建工具?我正在寻找如何开始的关键字或页面。非常感谢任何帮助!
【问题讨论】:
-
你在寻找类似“Clang AST”的东西吗?
-
差不多,我正在寻找 AST 但宏尚未解析
-
有没有办法编写一个解析文件的 C++ 源代码的 C++ 应用程序 是的。该工具称为“C++ 编译器”。对不起,我无法抗拒。当然,在 Ruby 中完成的任何事情也可以在 C++ 中完成。请详细描述您要如何解析 C++ 代码。一个简单的模式匹配(带有替换)是一种情况,但一个完整的 C++ 解析是(非常)其他的。
-
关于宏:您可以在仅预处理器模式下运行编译器。 (在 gcc/clang 中,它是命令行选项
-E。)这将为 C++ 代码提供所有宏替换。 (不要对文件大小感到惊讶。所有#includes 也将得到解决。)
标签: c++ clang pre-build-event prebuild