
Stefan Seefeld <seefeld@sympatico.ca> writes:
Hi there,
The Synopsis project is looking for volunteers to enhance its C++ parser and source code introspection facilities.
The Synopsis project (http://synopsis.fresco.org) started some years ago with the goal to provide a more robust and flexible alternative to code documentation tools such as doxygen and javadoc. As it evolved, it became clear that the infrastructure could serve in a much broader context, and so the current goal is to provide a framework for code introspection. Some obvious use cases include semi-automatic language-binding generation (such as done by boost.python's pyste) as well as reverse engineering and refactoring tools.
Synopsis with its current code base is able to parse most of boost (as I posted earlier I have been working with David Abrahams to generate a reference manual for boost.python), though there are some C++ constructs it can not yet fully analyse.
My goal is to provide a fully standard compliant C++ parser with C++ and python APIs to access the processing pipeline as well as the abstract syntax tree for maximum power and flexibility.
Stefan has recently been trying to get compile-time constants from sizeof() into the parser. As he knows, this is going to mean handling such things as template instantiation and overload resolution. This is a great opportunity to learn more about how C++ works and to create a compiler platform that's actually usable by C++ programmers for prototyping new features -- one of the major obstacles in C++ standardization is that the source for the only open-source C++ compiler has a steep learning curve. -- Dave Abrahams Boost Consulting http://www.boost-consulting.com