我想删除C源文件中的语句,例如“ #include”。因此,如何使用clang AST匹配器或clang提供的C ++ API匹配此类语句?
答案 0 :(得分:0)
很遗憾,这是不可能的,因为#include
是preprocessor directives而不是语句。它们不是AST的组成部分,这就是AST匹配器无用的原因。
您可能想使用clang的Preprocessor
回调机制。首先,您需要定义回调,该回调应为PPCallbacks的实例,覆盖方法InclusionDirective,然后使用addPPCallbacks注册回调。
我希望这些信息对您解决问题有帮助。使用Clang进行快乐的黑客入侵!