C++ 使用clang工具向源文件添加自动生成的代码

C++ 使用clang工具向源文件添加自动生成的代码,c++,llvm,clang++,C++,Llvm,Clang++,我正在为一个项目开发日志机制,目前每个API函数都需要添加 start_api_call(***) 在函数的开头 其中,***对于函数dou_something(intfoo,intbar)是“foo”,foo,“bar”,bar (日志函数获取参数并形成所需消息) 我想让这一行自动生成,其中的愿景是编译器以某种方式(mabye clang tools?)检查.cpp中的每个函数是否是API函数(稍后将提供更多详细信息),如果是,只需将start\u API\u调用(***)添加到代码中即可。

我正在为一个项目开发日志机制,目前每个API函数都需要添加

start_api_call(***)
在函数的开头 其中,***对于函数
dou_something(intfoo,intbar)
“foo”,foo,“bar”,bar

(日志函数获取参数并形成所需消息)

我想让这一行自动生成,其中的愿景是编译器以某种方式(mabye clang tools?)检查.cpp中的每个函数是否是API函数(稍后将提供更多详细信息),如果是,只需将
start\u API\u调用(***)
添加到代码中即可。

我有两个主要问题,关于我应该往哪个方向走
1) 我从来没有写过这样的代码,即它的“目标”是解析源代码,因此我不知道应该朝哪个方向发展,我已经阅读了一些关于clang工具的文档,但在这里,也许一个python脚本就更好了?

2) 我们的设计如下:

object_foo.h //inside .include/
class foo{
API functions
}

object_foo_impl.h //inside .src/
include "object_foo.h"
class foo_impl :foo{
foo API functions
a lot more functions
}

object_foo_impl.cpp
include "object_foo_impl.h"
{
implementation of all foo_impl functions
}
仅应为api函数插入start_api_调用, 因此,如果此函数来自foo.h或foo_impl.h文件,我需要找到在.cpp文件中查询的方法。

我有一个如何使用python脚本的工作概念,它解析我们所有的源代码,使用regex识别/include/.h文件中的哪个文本是函数,然后查找.cpp文件中实现这些函数的所有函数,
但是(如果可能的话)在编译(/预处理器)时间中添加规则的概念更有吸引力。
任何帮助都将不胜感激