|Reusing free parsers for modern C++ firstname.lastname@example.org (Brian Smith) (2000-05-08)|
|Re: Reusing free parsers for modern C++ email@example.com (Bruce Stephens) (2000-05-10)|
|Re: Reusing free parsers for modern C++ firstname.lastname@example.org (Mark Brown) (2000-05-12)|
|Re: Reusing free parsers for modern C++ email@example.com (2000-05-15)|
|Re: Reusing free parsers for modern C++ firstname.lastname@example.org (Robert Sherry) (2000-05-22)|
|Re: Reusing free parsers for modern C++ email@example.com (Ira D. Baxter) (2000-05-24)|
|From:||Bruce Stephens <firstname.lastname@example.org>|
|Date:||10 May 2000 02:50:11 -0400|
"Brian Smith" <email@example.com> writes:
> I don't mind using a separate tool to analyze macros. I read some
> Usenet articles from last year about efforts to separate the GCC's
> C++ parser into a reusable front-end but I haven't heard of any
> success/failure to do so. Any recent parser should work for me as
> long as it understands templates and is freely available. Pointers
> to papers and Usenet articles are much appreciated as well.
The TenDRA front ends can do this (the web page seems to be dead, but
you can get the source code and documentation from any Debian mirror,
and probably other places). The catch is that it's non-trivial to get
a C++ library to work with it, so the programs for which it would be
immediately useful are limited. The symbol table dump it can produce
also includes information about macros, which is convenient.
In the gcc CVS tree, there's some documentation on the tree that the
C++ front end creates, and I believe the processing has been cleaned
up in ways which would assist generation of the kind of information
you're looking for.
SDS (a project in sourceforge, presumably
<URL:http://sds.sourceforge.net>, but I forget) has a C++ front end
built from OpenC++. I don't know exactly what it's capable of, but
it's worth looking at.
RedHat/Cygnus (according to one FAQ, anyway) is intending to release
Source Navigator under the GNU GPL. I don't know exactly what the C++
parser for that is like---it may be an approximate one (like LXR,
say). However, it wouldn't hurt to give it a try (when the code
Return to the
Search the comp.compilers archives again.