[cfe-dev] Running AST matchers on part of the AST
David Come via cfe-dev
cfe-dev at lists.llvm.org
Mon Aug 29 09:29:00 PDT 2016
That's what I tried but it didn't work. If S is function's body, it will
not run the matcher on child nodes.
I assumed it would run the matcher on the node only and doesn't do the
traversal to match S'child nodes.
On 29/08/2016 17:20, Aleksei Sidorin via cfe-dev wrote:
> Hello David,
>
> You can use MatchFinder::match<...>() method.
> Example:
>
> void matchStmt(const Stmt *S, ASTContext &Ctx) {
> MatchFinder Finder;
> Finder.addMatcher(someMatcher, &Callback);
> Finder.match<Stmt>(*S, Ctx);
> }
>
>>
>> Hi,
>>
>> I would like to run some dynamic matchers on a single function body or I
>> can either run it the full AST (MatchFinder::matchAST) or on a single
>> node (MatchFinder::match).
>>
>>
>> What is the best way to achieve what I want ? Do you think it is worth I
>> change clang's code and submit a patch ?
>>
>>
>> Thanks,
>>
>> David.
>>
>>
>
>
More information about the cfe-dev
mailing list