
On Fri, Sep 3, 2010 at 3:57 PM, Dave Abrahams <dave@boostpro.com> wrote:
On Fri, Sep 3, 2010 at 6:22 PM, Florian Goujeon <florian.goujeon@42ndart.org> 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 syntax coloring. - Doug [*] The C API is here: http://clang.llvm.org/doxygen/group__CINDEX__LEX.html