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

Mos*_*osi 1 c++ qt text-parsing

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

举个例子。main.cpp 调用 foo()。foo() 在 foouncs.h 中声明并在 foouncs.cpp 中定义。foouncs 除了 foo() 之外还有许多不同的函数。我需要将 foo() 声明从 fooofuncs.h 复制到一个新文件(例如 fooofuncs.h.copy),该文件只有 foo() 声明(和相关包含)。同样,我会对 fooofuncs.cpp.copy 执行相同的操作,其中仅包含 foo() 定义(以及 #include "foo.h" 等)。这可能需要某种递归过程来遍历所有包含等。

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

elc*_*uco 6

您无法使用正则表达式解析 C++ 代码。

一些方向:

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