我需要开发一个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应用程序中是否集成了任何相关的开源工具来帮助我?谢谢
答案 0 :(得分:2)
您不能使用正则表达式解析C ++代码。
一些方向:
compiler-compiler
。 甚至都不要尝试自己解析C ++代码,这是一个永无止境的故事。