After having played
a bit with cpd, I
went searching for more elaborate source code analysis tools. And there are some, even in the FLOSS realm:
- pygccxml, a gcc plugin to generate XMLized
output from the AST (plus a python framework to actually work with this representation). - gccxml, quite similar to pygccxml, focused on extracting declarations
only. - synopsis, a standalone parser plus analysis framework – a bit lacking
for c++, which is inherently hard to parse. - opencxx, same as above (actually a predecessor/inspiration for synopsis)
- rtlcheck, a gcc plugin that extracts code on the RTL (register-transfer level).
Currently, seems to be used only for c, extending that to c++ should be both easy & rewarding (as rtlcheck appears to be the
most elaborate project of all listed). - Also quite interesting, though with different scope (being a runtime-analysis tool) is the
Design Recovery Tool, roughly characterizable as a means to get from UI
actions to the code involved processing them.
I do like the gcc patching/plugin approach the most, knowing how complex it is to get c++ parsing even half-way right. And as OpenOffice.org is such a beast, code-size wise, getting all the help we could from automatic tools appears wise to me.
One Trackback/Pingback
[…] Posted in OpenOffice.org Wow. Hub just pointed me at one of the recent GCC developer summit’s talks (also quite interesting: coding rule checking and incremental compilation, which goes along nicely with gold’s (not-yet-implemented) incremental linking), which presents a static c++ code analysis framework, implemented on top of GCC (I mentioned some previous attempts at that before). […]