​Ok got it! I found my error.

However the findAll matcher is not recognized then is it possible to use
it, Is there some restrictions (that are not in AST Matchers ref) ?

For the little story, the correct matcher for getting all results is
something as:

​binaryOperator(hasAncestor(functionDecl(hasName("f"))),hasOperatorName("=")).bind("binop")

With it I got all binary ops, actually what the matcher is looking for :)

Thanks


*-=-=-=-=-*
Rémi COHEN-SCALI* - Direction Technique *Jayacode <http://jayacode.fr/>
+33 665 964 182 <http://tel+33%20665%20964%20182> | Skype: remi.cohen-scali
<https://www.linkedin.com/in/remicohenscali/>
<https://twitter.com/CohenScaliRemi>  <https://beta.doodle.com/rcohenscali>

2017-10-10 22:41 GMT+02:00 Rémi Cohen-Scali <r...@jayacode.fr>:

> Hi
>
> I encounter a weird behavior on AST matchers and I'd like to ear what U
> think of it.
> Let get a test file
>
> void f()
> {
>    int a, b, c, d;
>    a = 1;
>   b = 2;
>   c = 3;
>   d = 4;
> }
>
> Then query the decl matcher:
> functionDecl(hasName("f"),hasBody(hasDescendant(binaryOperator(
> hasOperatorName("=")).bind("binop"))))
>
> I got only the first assignmen
> ​t (was expecting to get all of them).​
> ​
> ​
> ​
> ​
>
> I tried to add the findAll matcher but got an error.
>
> functionDecl(hasName("f"),hasBody(hasDescendant(findAll(binaryOperator(
> hasOperatorName("=")).bind("binop")))))
>
> Here is the clang-query output:
>
> clang-query> match functionDecl(hasName("f"),hasBody(hasDescendant(
> binaryOperator(hasOperatorName("=")).bind("binop"))))
>
> Match #1:
>
> /tmp/test.c:5:3: note: "binop" binds here
>   a = 1;
>   ^~~~~
> /tmp/test.c:1:1: note: "root" binds here
> void f()
> ^~~~~~~~
> 1 match.
> clang-query> match functionDecl(hasName("f"),
> hasBody(hasDescendant(findAll(binaryOperator(hasOperatorName("=")).bind("
> binop")))))
> 1:2: Error parsing argument 2 for matcher functionDecl.
> 1:28: Error parsing argument 1 for matcher hasBody.
> 1:36: Error parsing argument 1 for matcher hasDescendant.
> 1:50: Matcher not found: findAll
> clang-query>
>
> ​Thanks for any help​
>
> ​Rémi
>
_______________________________________________
cfe-users mailing list
cfe-users@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users

Reply via email to