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