Related articles |
---|
Parsing C++ manowar@sauropod.engin.umich.edu (1996-11-15) |
Re: Parsing C++ graham.hughes@resnet.ucsb.edu (Graham Hughes) (1996-11-18) |
Re: Parsing C++ nagle@netcom.com (1996-11-18) |
Re: Parsing C++ jsgray@acm.org (Jan Gray) (1996-11-19) |
Re: Parsing C++ jlilley@empathy.com (1996-12-03) |
Re: Parsing C++ dlmoore@ix.netcom.com (David L Moore) (1996-12-07) |
Re: Parsing C++ jlilley@empathy.com (1996-12-09) |
Re: Parsing C++ jlilley@empathy.com (1996-12-09) |
Re: Parsing C++ fjh@mundook.cs.mu.OZ.AU (1996-12-10) |
[1 later articles] |
From: | nagle@netcom.com (John Nagle) |
Newsgroups: | comp.lang.c++.moderated,comp.compilers |
Date: | 18 Nov 1996 00:36:02 -0500 |
Organization: | NETCOM On-line Communication Services (408 261-4700 guest) |
References: | 96-11-102 <56mgd9$qp0@netlab.cs.rpi.edu> |
Keywords: | C++, parse |
manowar@sauropod.engin.umich.edu (Krisztian Flautner) wrote:
>I have been reading "The Design and Evolution of C++" book, in which
>Stroustrup mentions that there is considerable difficulty parsing
>C++ with a LALR(1) grammar.
C and C++ are context-dependent, unlike Pascal and Ada. You can't
parse C++ without knowing which names are type names. This has several
implications, all bad:
- C++ source files can't be parsed in isolation; you have to parse
the include files too, and process all the declarations.
This makes writing simple tools that operate on C++ source
much more difficult, which is why there are so few of them.
- Forward references have to be declared, unlike Java and FORTRAN.
- Undefined type names cause compiler parsers to get lost, yielding
large numbers of erronious diagnostics.
John Nagle
[ Send an empty e-mail to c++-help@netlab.cs.rpi.edu for info ]
[ about comp.lang.c++.moderated. First time posters: do this! ]
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.