C++ 文件解析器和函数提取器

C++ file parser and function extractor

我需要开发一个 Qt/C++ 软件,它可以读取 C++ 源文件,找到依赖项,并只将依赖文件中使用的代码复制到同名文件中。

举个例子。 main.cpp 调用 foo()。 foo() 在 foofuncs.h 中声明并在 foofuncs.cpp 中定义。 foofuncs 有许多不同于 foo() 的函数。我需要将 foo() 声明从 foofuncs.h 复制到一个新文件(例如 foofuncs.h.copy),该文件只有 foo() 声明(和相关包含)。同样,我会对 foofuncs.cpp.copy 做同样的事情,它只包含 foo() 定义(以及 #include "foo.h" 等)。这可能需要某种递归过程来遍历所有包含等。

所以我的问题是我该怎么做?我可以使用 QRegularExpressions 来查找代码块吗?如果是这样,我需要帮助。另外,是否有任何相关的开源工具可以集成到我的 Qt 应用程序中来帮助我解决这个问题?谢谢

您不能使用正则表达式解析 C++ 代码。

一些方向:

甚至不要尝试自己解析 C++ 代码,这是一个永无止境的故事。