c – clang libTooling:如何找到AST项目的标题?
发布时间:2020-12-16 07:09:47 所属栏目:百科 来源:网络整理
导读:在网上找到的用于clang工具的示例总是在玩具示例上运行,这些示例通常都是非常简单的C程序. 我正在构建一个对C代码执行源到源转换的工具,这显然是一项非常非常具有挑战性的任务,但是clang完成了这项任务. 我现在面临的问题是clang为任何使用STL的C代码生成的A
在网上找到的用于clang工具的示例总是在玩具示例上运行,这些示例通常都是非常简单的C程序.
我正在构建一个对C代码执行源到源转换的工具,这显然是一项非常非常具有挑战性的任务,但是clang完成了这项任务. 我现在面临的问题是clang为任何使用STL的C代码生成的AST是巨大的.例如,我有一些C代码,其中clang -ast-dump … | wc -l是67,018行可怕的AST gobbledygook! 其中99%是标准库的东西,我的目标是在我的源到源元编程任务中忽略它.所以,要实现这一点,我想简单地过滤掉文件.假设我只想查看我正在分析的项目标题中的类定义(并忽略所有标准库标题的东西),我需要弄清楚每个CXXRecordDecl来自哪个标题! 可以这样做吗? 编辑:希望this是一种可行的方式.现在尝试一下……重要的是它必须告诉我decls出来的标题,而不是与翻译单元对应的cpp文件. 解决方法
根据我的经验,到目前为止,使用Locations可以最好地检索某个给定AST节点的“源”.例如,每个节点至少都有一个起始位置,当你打印出来时,它将包含头文件路径.
然后,可以使用此路径来确定它是您仍然有兴趣检查的系统库还是应用程序代码的一部分. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读