如何在预生成事件中解析C++代码?

How can I parse C++ code in a prebuild event?

本文关键字:C++ 代码 事件      更新时间:2023-10-16

我的C++工具链中有一个预构建事件工具(用 Ruby 编写(,它从现有的C++源代码生成额外的C++代码。我想用更快的生成器替换此工具,使用 clang 将是最佳选择。

有没有办法编写一个C++应用程序来解析文件的C++源代码,以便我可以在 Clang 中实现这个预构建工具?我正在寻找如何开始的关键字或页面。任何帮助都非常感谢!

解析C++不是一件简单的事情。编译时技巧和隐式语义使它变得非常困难。因此,我建议与Clang一起去。它的开发人员使使用Clang作为库成为可能。查看本指南以查看Clang具有的不同接口。如果你想要真正的C++体验,你可能想选择LibTooling。

我想警告你,为了让任何 C/C++ 解析器按预期工作,它们绝对需要真正的编译器使用的编译选项。如果没有包含目录或宏定义,代码几乎没有意义。基本上,您的构建系统应该告诉您的自定义工具如何编译每个文件。最简单的方法是使用编译数据库。它是许多基于 Clang 的工具的首选解决方案。但是,看起来您正在使其成为构建系统的一部分,因此,合并工具并直接从构建系统中使用选项对您来说可能不是一个负担。

我希望这些信息对您有所帮助!