如何使用ast匹配器获得“ #include <...>”语句?

时间:2019-06-26 08:06:05

标签: clang

我想删除C源文件中的语句,例如“ #include”。因此,如何使用clang AST匹配器或clang提供的C ++ API匹配此类语句?

1 个答案:

答案 0 :(得分:0)

很遗憾,这是不可能的,因为#includepreprocessor directives而不是语句。它们不是AST的组成部分,这就是AST匹配器无用的原因。

您可能想使用clang的Preprocessor回调机制。首先,您需要定义回调,该回调应为PPCallbacks的实例,覆盖方法InclusionDirective,然后使用addPPCallbacks注册回调。

我希望这些信息对您解决问题有帮助。使用Clang进行快乐的黑客入侵!