Subject: Re: [boost] Scalpel: a Spirit&Wave-powered C++ source code analysis library
From: Doug Gregor (doug.gregor_at_[hidden])
Date: 2010-09-05 12:35:56
On Fri, Sep 3, 2010 at 3:57 PM, Dave Abrahams <dave_at_[hidden]> wrote:
> On Fri, Sep 3, 2010 at 6:22 PM, Florian Goujeon
> <florian.goujeon_at_[hidden]> wrote:
>> All competition is stimulating. It's beneficial for everyone. All
>> competitors are different from each other and aim to bring a surplus
>> value. As I said, Scalpel brings high homogeneity with Boost. It has
>> its own unique design and I also plan to endow it with round-trip
>> engineering capabilities.
> One area that scalpel could conceivably find a niche, depending on how
> you do it, would be in analyzing source code without seeing the full
> translation unit (as you might for syntax-coloring purposes). Since
> CLANG is really built to be a compiler, I don't think it can do that.
Clang does syntax coloring [*], although it does so with knowledge of
the full translation unit.
> Of course I realize you can't always get a correct analysis if you
> don't see the whole TU, but especially if you're willing to do
> nondeterministic parsing/backtracking, you could very easily do a
> really good job.
Perhaps, although I completely disagree with the "very easily" bit.
C++ is a ridiculously ambiguous language.
Note that a compiler could implement these same techniques along its
recovery path to both improve diagnostics and improve support for
[*] The C API is here: http://clang.llvm.org/doxygen/group__CINDEX__LEX.html
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk