|
509 | 509 | \textnormal{each non-whitespace character that cannot be one of the above}
|
510 | 510 | \end{bnf}
|
511 | 511 |
|
512 |
| -\pnum |
513 |
| -Each preprocessing token that is converted to a token\iref{lex.token} |
514 |
| -shall have the lexical form of a keyword, an identifier, a literal, |
515 |
| -or an operator or punctuator. |
516 |
| - |
517 | 512 | \pnum
|
518 | 513 | A preprocessing token is the minimal lexical element of the language in translation
|
519 | 514 | phases 3 through 6.
|
|
548 | 543 | between the quotation characters in a character literal or
|
549 | 544 | string literal.
|
550 | 545 |
|
| 546 | +\pnum |
| 547 | +Each preprocessing token that is converted to a token\iref{lex.token} |
| 548 | +shall have the lexical form of a keyword, an identifier, a literal, |
| 549 | +or an operator or punctuator. |
| 550 | + |
| 551 | +\pnum |
| 552 | +The \grammarterm{import-keyword} is produced |
| 553 | +by processing an \keyword{import} directive\iref{cpp.import}, |
| 554 | +the \grammarterm{module-keyword} is produced |
| 555 | +by preprocessing a \keyword{module} directive\iref{cpp.module}, and |
| 556 | +the \grammarterm{export-keyword} is produced |
| 557 | +by preprocessing either of the previous two directives. |
| 558 | +\begin{note} |
| 559 | +None has any observable spelling. |
| 560 | +\end{note} |
| 561 | + |
551 | 562 | \pnum
|
552 | 563 | If the input stream has been parsed into preprocessing tokens up to a
|
553 | 564 | given character:
|
|
587 | 598 | \end{itemize}
|
588 | 599 | \end{itemize}
|
589 | 600 |
|
| 601 | +\pnum |
590 | 602 | \begin{example}
|
591 | 603 | \begin{codeblock}
|
592 | 604 | #define R "x"
|
593 | 605 | const char* s = R"y"; // ill-formed raw string, not \tcode{"x" "y"}
|
594 | 606 | \end{codeblock}
|
595 | 607 | \end{example}
|
596 | 608 |
|
597 |
| -\pnum |
598 |
| -The \grammarterm{import-keyword} is produced |
599 |
| -by preprocessing an \keyword{import} directive\iref{cpp.import}, |
600 |
| -the \grammarterm{module-keyword} is produced |
601 |
| -by preprocessing a \keyword{module} directive\iref{cpp.module}, and |
602 |
| -the \grammarterm{export-keyword} is produced |
603 |
| -by preprocessing either of the previous two directives. |
604 |
| -\begin{note} |
605 |
| -None has any observable spelling. |
606 |
| -\end{note} |
607 |
| - |
608 | 609 | \pnum
|
609 | 610 | \begin{example}
|
610 | 611 | The program fragment \tcode{0xe+foo} is parsed as a
|
|
0 commit comments