Re: Info sought on C++ parsing

"Quinn Tyler Jackson" <>
29 Oct 1999 02:28:00 -0400

          From comp.compilers

Related articles
Info sought on C++ parsing (Linda Sherman) (1999-10-27)
Re: Info sought on C++ parsing (Jeremy Jancsary) (1999-10-28)
Re: Info sought on C++ parsing (Andrew Tucker) (1999-10-28)
Re: Info sought on C++ parsing (Quinn Tyler Jackson) (1999-10-29)
| List of all articles for this month |

From: "Quinn Tyler Jackson" <>
Newsgroups: comp.compilers,comp.lang.c++
Date: 29 Oct 1999 02:28:00 -0400
Organization: @Home Network Canada
References: 99-10-133
Keywords: C++, parse

> I'm looking for references (books, papers, web sites, etc.) about
> performing lexical, syntactical, and semantical analysis
> *_specifically_* of C++ source or, lacking that, C source.

It still may be a bit too experimental, but:

"PAISLEI: Towards Grammar-Only Parsing of C++"


We have developed an experimental grammar generation environment
(PAISLEI2) and the LPM3 pattern matching language that have allowed us
to write a grammar-only parser for an awkward to parse subset of C++.
Since C++ evolved from the C language, its grammar contains constructs
and peculiarities that complicate parsing. C++ compilers have
traditionally often dealt with grammatical oddities in code rather
than in grammar rules. As illustration of our generator, we present a
simple, 17 production grammar that does a semi-shallow, error
detecting parse a C++ source file containing: both styles of C++
comments; class declarations that contain public, protected, or
private sections, member function declarations or inline member
functions; and member function definitions. Since the utility of our
tool is not restricted to C++4, we outline areas of future work and
development at the end of this paper.

I'll be extending this grammar now that I've got some semantic error
checking of PAISLEI grammars up and running, and the extended grammar
will most likely be part of the 2.0 release.
Quinn Tyler Jackson

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.