The categories of preprocessing token are: header names,
placeholder tokens produced by preprocessing
import and
module directives
(
import-keyword,
module-keyword, and
export-keyword),
identifiers, preprocessing numbers, character literals (including user-defined character
literals), string literals (including user-defined string literals), preprocessing
operators and punctuators, and single non-whitespace characters that do not lexically
match the other preprocessing token categories
.