status update (CxxParserRewrite branch)
Stefan Seefeld <[email protected]>
| Newsgroups | gmane.comp.documentation.synopsis |
|---|---|
| Message-ID | <[email protected]> |
I'v just checked in some bits that allow me to generate parse tree, symbol table, and AST, for the example code that is part of synopsis' tutorial. This includes standard C++ headers such as <vector>, as well as type_traits.h (now in TR1). I believe that this is a major milestone ! This is using the new parser, as well as the symbol table (which, while it has been generated for quite a while, hadn't been *used* for parsing before). Also, the AST translator is much simpler than the old one, making it easier to develop and maintain. The new parser takes quite a bit more time to parse, which is mainly due to the fact that it does a lot of symbol lookup to disambiguate the syntax, where the old one used heuristics. I'm sure there are various ways to optimize the process, but it won't be as fast as the old. The new code needs quite a bit of refinement before it is ready for prime-time, but the present state is noteworthy nonetheless. I invite everybody to try it out ! What is next (beside the continued refinement of the above) ? * Hartmut Kaiser indicated some work he is doing on porting synopsis to VC7.1 (it is already working with g++ (cygwin and mingw). * I'll start looking into an extension to the Lexer, Parser, and parse tree to support concepts, as asked for by David Abrahams and Douglas Gregor. * I'll soon replace the python C++ API I once wrote (and presently use in the various AST translators) by boost.python. * I'll restructure the python modules to make place for a PTree python binding (using boost.python), as well as symbol table and other new representations. As always, I'd very much appreciate some help, or even contributions in new directions. Regards, Stefan