define kinda stuff

Stein-Erik Engbr}ten see at NTA-VAX.ARPA
Mon Apr 14 20:29:51 AEST 1986


David Eppstein (eppstein at cs.columbia.edu, seismo!columbia!cs!eppstein)
writes (11 Apr 86 21:12:26 GMT)

The problem is to define '(-:' as '/*' (start of comment), and :-) '*/'.

> Obviously the right way to do this is the following:
> 
> 	#define  cat(a,b)  a/**/b
> 	#define  (-:       cat(/,*)
> 	#define  :-)       cat(*,/)

The preprocessor doesn't allow '(-:' as a definition-name 
(Berkeley 4.2/4.3).
	
However, the program below doesn't do what it is supposed to either. 
When the preprocessor has finished, you just get 'main() {'.
	
-->#define cat(a,b)		a/**/b
-->#define start_comm		cat(/,*)
-->#define end_comm		cat(*,/)
-->
-->main()
-->{
-->	start_comm   This is a comment   end_comm
-->	cat(pri,ntf)("This is a nice one...\n");
-->	printf("Hello...\n");
-->}

When in a comment, no expansion is done! 

How do we then define something which is to end a comment? I would say
it is impossible, but is eager to hear of anybody who thinks otherwise.

Stein-Erik Engbr}ten



More information about the Comp.lang.c mailing list