[cfe-dev] Auto-generation of ASTMatchers predicates from source code, proof-of-concept
Evgeny Panasyuk
evgeny.panasyuk at gmail.com
Sun Jun 17 10:59:01 PDT 2012
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.
> 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)?
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
Best Regards,
Evgeny
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20120617/8dbcee51/attachment.html>
More information about the cfe-dev
mailing list