[cfe-dev] RFC: Easier AST Matching by Default
Stephen Kelly via cfe-dev
cfe-dev at lists.llvm.org
Sun May 24 16:24:57 PDT 2020
On 20/12/2019 21:01, Stephen Kelly via cfe-dev wrote:
>
> Hi,
>
> (Apologies if you receive this twice. GMail classified the first one as
> spam)
>
> Aaron Ballman and I met by chance in Belfast and we discussed a way
> forward towards making AST Matchers easier to use, particularly for C++
> developers who are not familiar with the details of the Clang AST.
>
> For those unaware, I expanded on this in the EuroLLVM conference this
> year, and then expanded on it at ACCU:
>
> https://steveire.wordpress.com/2019/04/30/the-future-of-ast-matching
>
> One step in the process of getting there is changing the default
> behavior of AST Matchers to ignore invisible nodes while matching using
> the C++ API, and while matching and dumping AST nodes in clang-query.
>
> I think this is the most important change in the entire proposal as it
> sets out the intention of making the AST Matchers easier to use for C++
> developers who are not already familiar with Clang APIs.
>
> To that end, I've written an AST to motivate the change:
>
>
> https://docs.google.com/document/d/17Z6gAwwc3HoRXvsy0OdwU0X5MFQEuiGeSu3i6ICOB90
>
>
> We're looking for feedback before pressing forward with the change. I
> already have some patches written to port clang-tidy and unit tests to
> account for the change of default.
This change is now in master.
clang-query has also been updated to allow setting the traversal mode. eg:
set traversal AsIs
Since the original RFC I also added clang-query support to godbolt.org,
so you can experiment with it there instead of my personal instance of
compiler-explorer:
https://gcc.godbolt.org/z/uwTgZS
If anyone watched my talk from EuroLLVM linked in my blog above, I am
interested in feedback to know which feature I presented there you would
most like to see upstreamed.
Thanks,
Stephen.
More information about the cfe-dev
mailing list