define kinda stuff
see at NTA-VAX.ARPA
see at NTA-VAX.ARPA
Mon Apr 14 18:02:33 AEST 1986
David Eppstein (eppstein at cs.columbia.edu, seismo!columbia!cs!eppstein)
writes (11 Apr 86 21:12:26 GMT)
> Obviously the right way to do this is the following:
>
> #define cat(a,b) a/**/b
> #define (-: cat(/,*)
> #define :-) cat(*,/)
The problem is to define '(-:' as '/*' (start of comment), and :-) '*/'.
Please correct me, but I feel this will not work. Either the cat-definition
will look like 'ab' when it is expanded - obviously wrong -, or it will
look like 'a/**/b', which is wrong also. If you get '//**/*' as the
expansion, this surely isn't a start of a comment.
The whole thing boils down to whether the preprocessor does recursive
deletion of comments, which it never has as far as I know. For example:
/* if (variable != 21) { /* Test for ... */
has always been a comment-line, where the first '/*' is an easy
way to discard the whole line. If you put another '*/' at the end of
the line, the 'syntax error' is very near...
More information about the Comp.lang.c
mailing list