Related articles |
---|
Writing a C/C++ compiler in C++ dezakin@usa.net (2004-01-22) |
Re: Writing a C/C++ compiler in C++ david.boyle@ed.tadpole.com (2004-01-31) |
Re: Writing a C/C++ compiler in C++ haberg@matematik.su.se (2004-02-01) |
Re: Writing a C/C++ compiler in C++ jo@spiffy.ox.compsoc.net (Joel Dillon) (2004-02-01) |
Re: Writing a C/C++ compiler in C++ vbdis@aol.com (2004-02-01) |
Re: Writing a C/C++ compiler in C++ dezakin@usa.net (2004-02-01) |
Re: Writing a C/C++ compiler in C++ vbdis@aol.com (2004-02-04) |
Re: Writing a C/C++ compiler in C++ hkaiser@users.sourceforge.net (2004-02-12) |
Re: Writing a C/C++ compiler in C++ jakacki@hotmail.com (2004-02-12) |
Re: Writing a C/C++ compiler in C++ jo@spiffy.ox.compsoc.net (Joel Dillon) (2004-02-13) |
Re: Writing a C/C++ compiler in C++ vbdis@aol.com (2004-02-26) |
Re: Writing a C/C++ compiler in C++ walter@digitalmars.com (Walter) (2004-02-26) |
From: | vbdis@aol.com (VBDis) |
Newsgroups: | comp.compilers |
Date: | 4 Feb 2004 21:51:31 -0500 |
Organization: | AOL Bertelsmann Online GmbH & Co. KG http://www.germany.aol.com |
References: | 04-02-019 |
Keywords: | C++, practice |
Posted-Date: | 04 Feb 2004 21:51:31 EST |
vbdis@aol.com (VBDis) schreibt:
>[The lexer is affected by the grammar to the extent that it has to
>know what tokens are type names and which ones are variable names.
>-John]
A C/C++ lexer must not know anything about type names. Only in the
very last stage, after all preprocessing has been done, the
preprocessor tokens are converted into language/parser tokens.
In my current implementation I tried to use a single symbol table, for
both the preprocessor and the parser. But this seems to be impossible,
since the preprocessor can have only one set of macro names, whereas
the application code can use the same (local) name for various
purposes. Sometimes also the same names are defined differently for
the preprocessor and the parser, e.g.:
#define some_type some_type
Finally the same names can reside in multiple namespaces. A lexer
cannot know easily which namespace applies to a symbol, at least I'd
leave that decision to the parser and its tables, and leave the lexer
and preprocessor in its own namespace.
DoDi
Return to the
comp.compilers page.
Search the
comp.compilers archives again.