C++ Parser now has demonstrable progress
I've made further progress with the C++ parser engine. In fact, we even have some pretty pictures to show of it at work:
This shows the code on the right side that's been parsed. We can show all the basic C++ language elements, such as classes, templates, enums, methods, fields/member variables, functions, namespaces, macros, and includes.
The C++ parser is based on the ANTLR parser generator project. The C++ grammar is based on the work done by Terrence Parr, Sumana Srinivasan, and Russell Quong in PCCTS, then modified for ANTLR by Jianguo Zuo and David Wigg. I've made a few minor modifications myself as well. This grammar expects pre-processed C++, so I had to find a C pre-processor library. For that I used the ucpp library by Thomas Pornin. I've made some more modifications to this as well, mainly in the form of adding the ability for callbacks to be invoked at various times during the pre-processing.
All of this work is being made into a generic library I call the CodeStore. This is being done so that there exists a usable (hopefully) C++ parser that exists in library form that people can use to deal with parsing C++ and generating an AST from this. There are other C++ parsers out there but they are not readily usable in the form of a library, and frequently the code is written for unix. In addition there may be license issues (GPL), so this is BSD licensed to make it easy to use.
The icons are not the most amazing, if someone thinks they can do better, feel free to have a go at it! The only limits are each item needs to 16 X 16 pixels, and in PNG format. The background color needs to be green (R:0,G:255,B:0) so they show up transparently.
