Related articles |
---|
Preprocessor suggestions waverly.edwards@genesys.com (2001-09-16) |
Re: Preprocessor suggestions ralph@inputplus.demon.co.uk (2001-09-20) |
Re: Preprocessor suggestions Olivier.Ridoux@irisa.fr (Olivier Ridoux) (2001-09-20) |
From: | ralph@inputplus.demon.co.uk (Ralph Corderoy) |
Newsgroups: | comp.compilers |
Date: | 20 Sep 2001 00:21:40 -0400 |
Organization: | InputPlus Ltd. |
References: | 01-09-066 |
Keywords: | C |
Posted-Date: | 20 Sep 2001 00:21:40 EDT |
Hi,
> > I'd like to start a translator program from C to a much less
> > expressive language. My first step would be to modify the c
> > preprocessor so that it doesnt swallow up the comments.
Does doing this help or are you just trying a simple task first?
> > Anyone see a problem with trying to do this.
>
> Leaving comments in the preprocessed code is easy enough, but keeping
> comments in a parser is surprisingly tricky.
I'm not sure it was clear that comments are required in the compiler's
parser, although it's a reasonable assumption. If not, the
preprocessor could leave them in and the compiler's lexer drop them.
The C preprocessor would still need knowledge of them in macro
processing AFAICS.
int debug_hashtable;
int numbucket;
int hash;
#define DEBUG(flag, i) \
if (debug_ ## flag) { \
printf("%d\n", (i)); \
}
void foo(void)
{
DEBUG(hashtable, numbucket);
DEBUG(/* FIXME: needs its own flag. */ hashtable, hash);
return;
}
You wouldn't want `debug_/*' being tested in the second case.
Ralph.
Return to the
comp.compilers page.
Search the
comp.compilers archives again.