Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!decvax!mcnc!ecsvax!bet From: bet@ecsvax.UUCP Newsgroups: net.lang.c Subject: Re: Preprocessor Trickery Message-ID: <2825@ecsvax.UUCP> Date: Mon, 2-Jul-84 10:52:24 EDT Article-I.D.: ecsvax.2825 Posted: Mon Jul 2 10:52:24 1984 Date-Received: Tue, 3-Jul-84 04:49:01 EDT Lines: 18 Someone made a comment earlier that seems to have been ignored by many, that efforts like X/**/Y and the QUOTE macro *aren't* guaranteed to be portable, and further that *no* mechanism is guaranteed to be portable, since in theory the cpp functionality is defined in terms of *tokens*. That is to say, the standard, *required* behavior of cpp could be produced by code between the lexical analyzer and the parser. Composite token creation can only really be expected to show up when cpp is a distinct pass of the compiler, producing "clear", preprocessed C as an intermediate step, which then undergoes another lexical analysis. In fact this is not the only way that compilers are created -- small, fast single pass compilers for micros, to keep the amount of overlaying required down, sometimes build the functionality of cpp *into* the compiler. A second lexical analysis is legitimately considered an unnecessary waste of time and space. Let us keep in mind that one of the strongest aspects of C is how good a language it is for small systems. Bennett Todd ...{decvax,ihnp4,akgua}!mcnc!ecsvax!bet