[comp.lang.c] ANSI C Translation Phases

rlb@polari.UUCP (rlb) (05/23/88)

I apologize in advance if this question has already been answered.  In my
copy of the ANSI C draft (January 11, 1988), Section 2.1.1.2 specifies
translation phases and phase 7 contains the sentence:

    "Preprocessing tokens are converted into tokens."

My question is, where does the standard define the precise meaning of this
sentence?  In particular, what text in the standard eliminates the apparent
ambiguity of:

    #define FOO   -a
    -FOO

That is, after "Preprocessing tokens are converted into tokens", does the
second line consist of two tokens ({--}, {a}), or three ({-}, {-}, {a})?
The sentence in section 3.8.3 of the Rationale that says "Preprocessing
is specified in such a way that it can be implemented as a separate
(text-to-text) pre-pass or as a (token-oriented) portion of the compiler
itself" seems to either be false, or to endorse the above ambiguity as
an implementation-dependent part of the language.
-Ron Burk