Call for Volunteers: the Synopsis project

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. You'll find the project mailing lists at http://synopsis.fresco.org/mailinglists.html Kind regards, Stefan

Hi Stefan,
The Synopsis project is looking for volunteers to enhance its C++ parser and source code introspection facilities. ...... 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.
Count me as interested. Are you going to base that parser on OpenC++, which, IIRC, was used by Synopsis some time ago? Last time a looked at OpenC++, it did not even distinguish between ordinary names and typenames, which makes me wonder if it's a good parser. - Volodya

On 09/30/2004 02:04 AM, Vladimir Prus wrote: [snip]
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.
Count me as interested. Are you going to base that parser on OpenC++, which,
Me too!
IIRC, was used by Synopsis some time ago? Last time a looked at OpenC++, it did not even distinguish between ordinary names and typenames, which makes me wonder if it's a good parser.
I recall mention of pccts or antlr as a successor on the synopsis mailing list. Is that still true, or would you consider maybe spirit 2?

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

David Abrahams wrote:
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.
Yea. I was thinking that a library which can perform overload resolution (for example), and *can explain* everything which happens in the process, would be a great help for learning C++ and for new features. - Volodya
participants (4)
-
David Abrahams
-
Larry Evans
-
Stefan Seefeld
-
Vladimir Prus