Preprocessing handles macro substitution,
conditional compilation, and file inclusion.
Lines beginning with
#
indicate a preprocessing control line.
Spaces and tabs may appear before and after the
#.
Lines that end with a backslash character \ and new-line
are joined with the next line by deleting the backslash
and the new-line characters.
This occurs (in translation phase 2) before input is divided into tokens.
Each preprocessing control line must
appear on a line by itself.