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