我正在尝试通过使用C(也许是C++)执行一些动态代码检测来快速使用Clang,其中我获取源文件并生成检测输出.我想在任何块的开头添加一个函数调用,并且还要更改所有布尔表达式以调用某个函数,这样我也可以跟踪它.例如:
foo = a && (b || c);
Run Code Online (Sandbox Code Playgroud)
会变成这样的:
foo = EXPR_AND(a, EXPR_OR(b, c));
Run Code Online (Sandbox Code Playgroud)
因此我可以跟踪发生的所有条件组合.
我假设使用RecursiveASTVisitor是最好的方法,但是有一种简单的方法可以为我访问的每个节点输出C代码吗?
任何有关如何完成这样的事情的建议都将非常感激!
注意:经过一些进一步的调查,我刚刚发现了libclang,看起来它可能是我最好的朋友.再加上一个改写者,我可能只有我需要的东西.任何指向良好示例的指针(我刚刚发现优秀的Apple开发人员在libclang上开会视频)都会很棒.
| 归档时间: |
|
| 查看次数: |
1797 次 |
| 最近记录: |