Article View: comp.std.c
Article #5164Re: 0x47e+barney not considered C
From: Henry Spencer
Date: Fri, 08 Jul 1988 03:58
Date: Fri, 08 Jul 1988 03:58
17 lines
1384 bytes
1384 bytes
> Without deep consideration I can't see why preprocessing numbers can't just > be assigned the same syntax as ordinary numbers... Well, speaking as someone who has implemented a C lexical analyzer, I was very happy when preprocessing numbers arrived. Without them, you have to implement lexical analysis of C numbers -- which are a baroque mess -- *twice*. Why? Because a lot of validity checks that are needed for real, live numbers cannot be applied to preprocessing numbers, since abominations like the # and ## operators may alter the tokens before the preprocessor is finished with them. Short of storing numbers in some complex broken- down form -- and remember that those same two operators require that the original text be recoverable! -- there is just no way to avoid repeating the whole ugly lexical analysis when you've got the final tokens on hand. Personally, my favorite solution to this involves eliminating the # and ## operators, by saturation thermonuclear bombing if nothing less will kill them, but not everyone likes this idea.
Technical Details
Message-ID:
<1988Jul8.035825.17546@utzoo.uucp>Path:
arc1-ca.pugleaf.net!utzoo!henryReferences:
<120200001@hcx2> <10413@ulysses.homer.nj.att.com>Show Full Headers
Complete Article Headers
Newsgroups: comp.std.c Path: arc1-ca.pugleaf.net!utzoo!henry From: henry@utzoo.uucp (Henry Spencer) Subject: Re: 0x47e+barney not considered C Message-ID: <1988Jul8.035825.17546@utzoo.uucp> Organization: U of Toronto Zoology References: <120200001@hcx2> <10413@ulysses.homer.nj.att.com> Date: Fri, 8 Jul 88 03:58:25 GMT