[cfe-dev] Auto-generation of ASTMatchers predicates from source code, proof-of-concept

Manuel Klimek klimek at google.com
Sun Jun 17 11:44:47 PDT 2012

On Sun, Jun 17, 2012 at 7:59 PM, Evgeny Panasyuk
<evgeny.panasyuk at gmail.com>wrote:

>  17.06.2012 19:53, Manuel Klimek wrote:
>  I love the idea! In general, I think it's a really hard problem (which
> is the main reason we haven't tackled this yet ourselves). I guess it's a
> little more researchy, but I'd be super interested in seeing more work
> going into making C++ tooling easier and more powerful ...
> I am not sure how hard it could be in general - I saw only small part of
> Clang's ASTTree/ASTMatchers.
> But in any case, it is possible to restrict tool to only small subset of
> expressions, but still making tool useful.
> I see different approaches to implement such kind of tool:
> 1. Naive and straightforward way: just as external tool to ASTMatchers,
> same method that I used in example above. Such approach would result in
> some "knowledge" duplication, i.e. for each predicate it would be
> additional some code in predicate-generation tool.
> 2. More complex way, but with some "knowledge" reuse from ASTMatchers.
> That approach would require re-describing predicates with some
> higher/another abstraction, what would allow us to generate both predicates
> and predicates-generation stuff from one source of "knowledge". I am not
> sure if such approach could be done in general, requires some research.

My hunch is that for (2) the matchers would be sufficiently different from
what they are now, that it would end up like (1) anyway - insert the
obvious disclaimer that I might be wrong etc etc here :)
At least for a first step I think (1) is the way to go - once we have more
experience with how the stuff is used, we can then try to figure out how to
generalize it...

  I don't know whether you're aware, but in the tooling branch there's also
> a proof-of-concept implementation for dynamic matcher generation, and it
> might make sense to base your stuff on that.
> Are you talking about dynamic parseMatcher (as in ast-query example)?

Yep, that one...

> Or maybe about some interactive (maybe gui) tool for building predicates?
> I remember that Chandler mentioned about something similar at
> http://www.youtube.com/watch?v=yuIOGfcOH0k&t=27m56s

Now we're talking the next step :) Yea, having a GUI would be *great* (and
just so we're clear: with GUI I mean a web page :P)


> Best Regards,
> Evgeny
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20120617/7e7a2ca8/attachment.html>

More information about the cfe-dev mailing list