[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)

Cheers,
/Manuel


>
> 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