如何利用Clang的AST?

bso*_*dra 23 c clang abstract-syntax-tree

我正在考虑将Clang的AST用于我的C代码并对AST进行一些分析.关于从哪里开始,如何获得Clang的AST,教程或这方面的任何内容的一些指示将是非常有帮助的!

我一直试图找到一些,我得到了这个链接,这是2年前创建的.但由于某种原因,它不适合我.教程中的示例代码给出了太多错误.所以我不确定,如果我正确构建代码或者教程有些问题.但我也很乐意从其他一些页面开始.

che*_*eez 14

从sharth链接的教程开始.然后通过Clang的Doxygen.从SemaConsumer开始.

阅读了很多源代码.Clang是一个移动目标.如果您正在编写基于clang的工具,那么您需要认识到clang每天都在添加和修复功能,因此您应该准备好阅读大量代码!


exc*_*ipy 9

您可能想要libclang库中提供的稳定C API,而不是其他人提到的不稳定的C++内部API.

目前最好的文档是LLVM开发人员会议网站上提供的"libclang:思考超越编译器"的视频/幻灯片.

但请注意,API的稳定性是以全面性为代价的.您将无法使用此API 执行所有操作,但它更易于使用.