tech-toolchain archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: traditional cpp
>    #define FOO foo /*
>    #undef FOO
>    #define FOO bar */
>    FOO
> would yield
>    bar */
> which definitely isn't right either.
Depends on where you stand on preprocessor lines containing a
begin-comment sequence without a matching end-comment sequence.
In this case, you seem to think this thing begins a comment (on the
first line, ended on the third line).  But in your example
    #define STOP */
    #define START /*
    /* hello there STOP fnord START ho hum */
this would lead to considering the second line to begin a comment which
includes all of the third line.
> But if you drop comments on directive lines *before* expansion to
> make this problem go away, the /**/ comments used for token pasting
> disappear and nothing works.
There's a difference between comments on directive lines and comments
partially on directive lines.
> I'm now really curious what a genuine legacy cpp really does.
I played a hunch which was telling me I had a CD or two from PUPS
kicking around.  I managed to find it; among other things, it has what
appears to be real 4.3BSD on it, including a "new version" of cpp which
"was written by John F. Reiser".
It fireworks rather badly when I try to build it; I'll be trying to
coax it into building.  If I succeed I'll thrown these tests at it.
/~\ The ASCII                             Mouse
\ / Ribbon Campaign
 X  Against HTML                mouse%rodents-montreal.org@localhost
/ \ Email!           7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B
Home |
Main Index |
Thread Index |
Old Index