|
334 | 334 | \ucode{000c} & \uname{form feed} & \\
|
335 | 335 | \ucode{0020} & \uname{space} & \\
|
336 | 336 | \ucode{000a} & \uname{line feed} & new-line \\
|
337 |
| -\ucode{0021} & \uname{exclamation mark} & \tcode{!} \\ |
338 |
| -\ucode{0022} & \uname{quotation mark} & \tcode{"} \\ |
339 |
| -\ucode{0023} & \uname{number sign} & \tcode{\#} \\ |
340 |
| -\ucode{0024} & \uname{dollar sign} & \tcode{\$} \\ |
341 |
| -\ucode{0025} & \uname{percent sign} & \tcode{\%} \\ |
342 |
| -\ucode{0026} & \uname{ampersand} & \tcode{\&} \\ |
343 |
| -\ucode{0027} & \uname{apostrophe} & \tcode{'} \\ |
344 |
| -\ucode{0028} & \uname{left parenthesis} & \tcode{(} \\ |
345 |
| -\ucode{0029} & \uname{right parenthesis} & \tcode{)} \\ |
346 |
| -\ucode{002a} & \uname{asterisk} & \tcode{*} \\ |
347 |
| -\ucode{002b} & \uname{plus sign} & \tcode{+} \\ |
348 |
| -\ucode{002c} & \uname{comma} & \tcode{,} \\ |
349 |
| -\ucode{002d} & \uname{hyphen-minus} & \tcode{-} \\ |
350 |
| -\ucode{002e} & \uname{full stop} & \tcode{.} \\ |
351 |
| -\ucode{002f} & \uname{solidus} & \tcode{/} \\ |
352 |
| -\ucode{0030} .. \ucode{0039} & \uname{digit zero .. nine} & \tcode{0 1 2 3 4 5 6 7 8 9} \\ |
353 |
| -\ucode{003a} & \uname{colon} & \tcode{:} \\ |
354 |
| -\ucode{003b} & \uname{semicolon} & \tcode{;} \\ |
355 |
| -\ucode{003c} & \uname{less-than sign} & \tcode{<} \\ |
356 |
| -\ucode{003d} & \uname{equals sign} & \tcode{=} \\ |
357 |
| -\ucode{003e} & \uname{greater-than sign} & \tcode{>} \\ |
358 |
| -\ucode{003f} & \uname{question mark} & \tcode{?} \\ |
359 |
| -\ucode{0040} & \uname{commercial at} & \tcode{@} \\ |
360 |
| -\ucode{0041} .. \ucode{005a} & \uname{latin capital letter a .. z} & \tcode{A B C D E F G H I J K L M} \\ |
361 |
| - & & \tcode{N O P Q R S T U V W X Y Z} \\ |
362 |
| -\ucode{005b} & \uname{left square bracket} & \tcode{[} \\ |
363 |
| -\ucode{005c} & \uname{reverse solidus} & \tcode{\textbackslash} \\ |
364 |
| -\ucode{005d} & \uname{right square bracket} & \tcode{]} \\ |
365 |
| -\ucode{005e} & \uname{circumflex accent} & \tcode{\caret} \\ |
366 |
| -\ucode{005f} & \uname{low line} & \tcode{_} \\ |
367 |
| -\ucode{0060} & \uname{grave accent} & \tcode{\`} \\ |
368 |
| -\ucode{0061} .. \ucode{007a} & \uname{latin small letter a .. z} & \tcode{a b c d e f g h i j k l m} \\ |
369 |
| - & & \tcode{n o p q r s t u v w x y z} \\ |
370 |
| -\ucode{007b} & \uname{left curly bracket} & \tcode{\{} \\ |
371 |
| -\ucode{007c} & \uname{vertical line} & \tcode{|} \\ |
372 |
| -\ucode{007d} & \uname{right curly bracket} & \tcode{\}} \\ |
373 |
| -\ucode{007e} & \uname{tilde} & \tcode{\textasciitilde} \\ |
| 337 | +\ucode{0021} & \uname{exclamation mark} & \noncxxtcode{!} \\ |
| 338 | +\ucode{0022} & \uname{quotation mark} & \noncxxtcode{"} \\ |
| 339 | +\ucode{0023} & \uname{number sign} & \noncxxtcode{\#} \\ |
| 340 | +\ucode{0024} & \uname{dollar sign} & \noncxxtcode{\$} \\ |
| 341 | +\ucode{0025} & \uname{percent sign} & \noncxxtcode{\%} \\ |
| 342 | +\ucode{0026} & \uname{ampersand} & \noncxxtcode{\&} \\ |
| 343 | +\ucode{0027} & \uname{apostrophe} & \noncxxtcode{'} \\ |
| 344 | +\ucode{0028} & \uname{left parenthesis} & \noncxxtcode{(} \\ |
| 345 | +\ucode{0029} & \uname{right parenthesis} & \noncxxtcode{)} \\ |
| 346 | +\ucode{002a} & \uname{asterisk} & \noncxxtcode{*} \\ |
| 347 | +\ucode{002b} & \uname{plus sign} & \noncxxtcode{+} \\ |
| 348 | +\ucode{002c} & \uname{comma} & \noncxxtcode{,} \\ |
| 349 | +\ucode{002d} & \uname{hyphen-minus} & \noncxxtcode{-} \\ |
| 350 | +\ucode{002e} & \uname{full stop} & \noncxxtcode{.} \\ |
| 351 | +\ucode{002f} & \uname{solidus} & \noncxxtcode{/} \\ |
| 352 | +\ucode{0030} .. \ucode{0039} & \uname{digit zero .. nine} & \noncxxtcode{0 1 2 3 4 5 6 7 8 9} \\ |
| 353 | +\ucode{003a} & \uname{colon} & \noncxxtcode{:} \\ |
| 354 | +\ucode{003b} & \uname{semicolon} & \noncxxtcode{;} \\ |
| 355 | +\ucode{003c} & \uname{less-than sign} & \noncxxtcode{<} \\ |
| 356 | +\ucode{003d} & \uname{equals sign} & \noncxxtcode{=} \\ |
| 357 | +\ucode{003e} & \uname{greater-than sign} & \noncxxtcode{>} \\ |
| 358 | +\ucode{003f} & \uname{question mark} & \noncxxtcode{?} \\ |
| 359 | +\ucode{0040} & \uname{commercial at} & \noncxxtcode{@} \\ |
| 360 | +\ucode{0041} .. \ucode{005a} & \uname{latin capital letter a .. z} & \noncxxtcode{A B C D E F G H I J K L M} \\ |
| 361 | + & & \noncxxtcode{N O P Q R S T U V W X Y Z} \\ |
| 362 | +\ucode{005b} & \uname{left square bracket} & \noncxxtcode{[} \\ |
| 363 | +\ucode{005c} & \uname{reverse solidus} & \noncxxtcode{\textbackslash} \\ |
| 364 | +\ucode{005d} & \uname{right square bracket} & \noncxxtcode{]} \\ |
| 365 | +\ucode{005e} & \uname{circumflex accent} & \noncxxtcode{\caret} \\ |
| 366 | +\ucode{005f} & \uname{low line} & \noncxxtcode{_} \\ |
| 367 | +\ucode{0060} & \uname{grave accent} & \noncxxtcode{\`} \\ |
| 368 | +\ucode{0061} .. \ucode{007a} & \uname{latin small letter a .. z} & \noncxxtcode{a b c d e f g h i j k l m} \\ |
| 369 | + & & \noncxxtcode{n o p q r s t u v w x y z} \\ |
| 370 | +\ucode{007b} & \uname{left curly bracket} & \noncxxtcode{\{} \\ |
| 371 | +\ucode{007c} & \uname{vertical line} & \noncxxtcode{|} \\ |
| 372 | +\ucode{007d} & \uname{right curly bracket} & \noncxxtcode{\}} \\ |
| 373 | +\ucode{007e} & \uname{tilde} & \noncxxtcode{\textasciitilde} \\ |
374 | 374 | \end{floattable}
|
375 | 375 |
|
376 | 376 | \pnum
|
|
607 | 607 | \item
|
608 | 608 | \indextext{literal!string!raw}%
|
609 | 609 | If the next character begins a sequence of characters that could be the prefix
|
610 |
| -and initial double quote of a raw string literal, such as \tcode{R"}, the next preprocessing |
| 610 | +and initial double quote of a raw string literal, such as \literaltcode{R"}, the next preprocessing |
611 | 611 | token shall be a raw string literal. Between the initial and final
|
612 | 612 | double quote characters of the raw string, any transformations performed in phase
|
613 | 613 | 2 (line splicing) are reverted; this reversion
|
614 | 614 | shall apply before any \grammarterm{d-char}, \grammarterm{r-char}, or delimiting
|
615 | 615 | parenthesis is identified. The raw string literal is defined as the shortest sequence
|
616 | 616 | of characters that matches the raw-string pattern
|
617 | 617 | \begin{ncbnf}
|
618 |
| -\opt{encoding-prefix} \terminal{R} raw-string |
| 618 | +\opt{encoding-prefix} \literalterminal{R} raw-string |
619 | 619 | \end{ncbnf}
|
620 | 620 |
|
621 | 621 | \item Otherwise, if the next three characters are \tcode{<::} and the subsequent character
|
|
750 | 750 | \begin{bnf}
|
751 | 751 | \nontermdef{pp-number}\br
|
752 | 752 | digit\br
|
753 |
| - \terminal{.} digit\br |
| 753 | + \literalterminal{.} digit\br |
754 | 754 | pp-number identifier-continue\br
|
755 |
| - pp-number \terminal{'} digit\br |
756 |
| - pp-number \terminal{'} nondigit\br |
757 |
| - pp-number \terminal{e} sign\br |
758 |
| - pp-number \terminal{E} sign\br |
759 |
| - pp-number \terminal{p} sign\br |
760 |
| - pp-number \terminal{P} sign\br |
761 |
| - pp-number \terminal{.} |
| 755 | + pp-number \literalterminal{'} digit\br |
| 756 | + pp-number \literalterminal{'} nondigit\br |
| 757 | + pp-number \literalterminal{e} sign\br |
| 758 | + pp-number \literalterminal{E} sign\br |
| 759 | + pp-number \literalterminal{p} sign\br |
| 760 | + pp-number \literalterminal{P} sign\br |
| 761 | + pp-number \literalterminal{.} |
762 | 762 | \end{bnf}
|
763 | 763 |
|
764 | 764 | \pnum
|
|
1185 | 1185 | \nontermdef{binary-literal}\br
|
1186 | 1186 | \terminal{0b} binary-digit\br
|
1187 | 1187 | \terminal{0B} binary-digit\br
|
1188 |
| - binary-literal \opt{\terminal{'}} binary-digit |
| 1188 | + binary-literal \opt{\literalterminal{'}} binary-digit |
1189 | 1189 | \end{bnf}
|
1190 | 1190 |
|
1191 | 1191 | \begin{bnf}
|
1192 | 1192 | \nontermdef{octal-literal}\br
|
1193 | 1193 | \terminal{0}\br
|
1194 |
| - octal-literal \opt{\terminal{'}} octal-digit |
| 1194 | + octal-literal \opt{\literalterminal{'}} octal-digit |
1195 | 1195 | \end{bnf}
|
1196 | 1196 |
|
1197 | 1197 | \begin{bnf}
|
1198 | 1198 | \nontermdef{decimal-literal}\br
|
1199 | 1199 | nonzero-digit\br
|
1200 |
| - decimal-literal \opt{\terminal{'}} digit |
| 1200 | + decimal-literal \opt{\literalterminal{'}} digit |
1201 | 1201 | \end{bnf}
|
1202 | 1202 |
|
1203 | 1203 | \begin{bnf}
|
|
1228 | 1228 | \begin{bnf}
|
1229 | 1229 | \nontermdef{hexadecimal-digit-sequence}\br
|
1230 | 1230 | hexadecimal-digit\br
|
1231 |
| - hexadecimal-digit-sequence \opt{\terminal{'}} hexadecimal-digit |
| 1231 | + hexadecimal-digit-sequence \opt{\literalterminal{'}} hexadecimal-digit |
1232 | 1232 | \end{bnf}
|
1233 | 1233 |
|
1234 | 1234 | \begin{bnf}
|
1235 | 1235 | \nontermdef{hexadecimal-digit} \textnormal{one of}\br
|
1236 |
| - \terminal{0 1 2 3 4 5 6 7 8 9}\br |
1237 |
| - \terminal{a b c d e f}\br |
1238 |
| - \terminal{A B C D E F} |
| 1236 | + \literalterminal{0 1 2 3 4 5 6 7 8 9}\br |
| 1237 | + \literalterminal{a b c d e f}\br |
| 1238 | + \literalterminal{A B C D E F} |
1239 | 1239 | \end{bnf}
|
1240 | 1240 |
|
1241 | 1241 | \begin{bnf}
|
|
1250 | 1250 |
|
1251 | 1251 | \begin{bnf}
|
1252 | 1252 | \nontermdef{unsigned-suffix} \textnormal{one of}\br
|
1253 |
| - \terminal{u U} |
| 1253 | + \literalterminal{u U} |
1254 | 1254 | \end{bnf}
|
1255 | 1255 |
|
1256 | 1256 | \begin{bnf}
|
1257 | 1257 | \nontermdef{long-suffix} \textnormal{one of}\br
|
1258 |
| - \terminal{l L} |
| 1258 | + \literalterminal{l L} |
1259 | 1259 | \end{bnf}
|
1260 | 1260 |
|
1261 | 1261 | \begin{bnf}
|
1262 | 1262 | \nontermdef{long-long-suffix} \textnormal{one of}\br
|
1263 |
| - \terminal{ll LL} |
| 1263 | + \literalterminal{ll LL} |
1264 | 1264 | \end{bnf}
|
1265 | 1265 |
|
1266 | 1266 | \begin{bnf}
|
|
1299 | 1299 |
|
1300 | 1300 | \pnum
|
1301 | 1301 | The \grammarterm{hexadecimal-digit}s
|
1302 |
| -\tcode{a} through \tcode{f} and \tcode{A} through \tcode{F} |
| 1302 | +\literaltcode{a} through \literaltcode{f} and \literaltcode{A} through \literaltcode{F} |
1303 | 1303 | have decimal values ten through fifteen.
|
1304 | 1304 | \begin{example}
|
1305 | 1305 | The number twelve can be written \tcode{12}, \tcode{014},
|
|
1343 | 1343 | &
|
1344 | 1344 | &
|
1345 | 1345 | \tcode{unsigned long long int}\\\hline
|
1346 |
| -\tcode{u} or \tcode{U} & |
| 1346 | +\literaltcode{u} or \literaltcode{U} & |
1347 | 1347 | \tcode{unsigned int} &
|
1348 | 1348 | \tcode{unsigned int}\\
|
1349 | 1349 | &
|
|
1352 | 1352 | &
|
1353 | 1353 | \tcode{unsigned long long int} &
|
1354 | 1354 | \tcode{unsigned long long int}\\\hline
|
1355 |
| -\tcode{l} or \tcode{L} & |
| 1355 | +\literaltcode{l} or \literaltcode{L} & |
1356 | 1356 | \tcode{long int} &
|
1357 | 1357 | \tcode{long int}\\
|
1358 | 1358 | &
|
|
1364 | 1364 | &
|
1365 | 1365 | &
|
1366 | 1366 | \tcode{unsigned long long int}\\\hline
|
1367 |
| -Both \tcode{u} or \tcode{U} & |
| 1367 | +Both \literaltcode{u} or \literaltcode{U} & |
1368 | 1368 | \tcode{unsigned long int} &
|
1369 | 1369 | \tcode{unsigned long int}\\
|
1370 |
| -and \tcode{l} or \tcode{L} & |
| 1370 | +and \literaltcode{l} or \literaltcode{L} & |
1371 | 1371 | \tcode{unsigned long long int} &
|
1372 | 1372 | \tcode{unsigned long long int}\\\hline
|
1373 |
| -\tcode{ll} or \tcode{LL} & |
| 1373 | +\literaltcode{ll} or \literaltcode{LL} & |
1374 | 1374 | \tcode{long long int} &
|
1375 | 1375 | \tcode{long long int}\\
|
1376 | 1376 | &
|
1377 | 1377 | &
|
1378 | 1378 | \tcode{unsigned long long int}\\\hline
|
1379 |
| -Both \tcode{u} or \tcode{U} & |
| 1379 | +Both \literaltcode{u} or \literaltcode{U} & |
1380 | 1380 | \tcode{unsigned long long int} &
|
1381 | 1381 | \tcode{unsigned long long int}\\
|
1382 |
| -and \tcode{ll} or \tcode{LL} & |
| 1382 | +and \literaltcode{ll} or \literaltcode{LL} & |
1383 | 1383 | &
|
1384 | 1384 | \\\hline
|
1385 | 1385 | \tcode{z} or \tcode{Z} &
|
|
1427 | 1427 | \indextext{literal!character}%
|
1428 | 1428 | \begin{bnf}
|
1429 | 1429 | \nontermdef{character-literal}\br
|
1430 |
| - \opt{encoding-prefix} \terminal{'} c-char-sequence \terminal{'} |
| 1430 | + \opt{encoding-prefix} \literalterminal{'} c-char-sequence \literalterminal{'} |
1431 | 1431 | \end{bnf}
|
1432 | 1432 |
|
1433 | 1433 | \begin{bnf}
|
1434 | 1434 | \nontermdef{encoding-prefix} \textnormal{one of}\br
|
1435 |
| - \terminal{u8}\quad\terminal{u}\quad\terminal{U}\quad\terminal{L} |
| 1435 | + \literalterminal{u8}\quad\literalterminal{u}\quad\literalterminal{U}\quad\literalterminal{L} |
1436 | 1436 | \end{bnf}
|
1437 | 1437 |
|
1438 | 1438 | \begin{bnf}
|
|
1483 | 1483 |
|
1484 | 1484 | \begin{bnf}
|
1485 | 1485 | \nontermdef{octal-escape-sequence}\br
|
1486 |
| - \terminal{\textbackslash} octal-digit\br |
1487 |
| - \terminal{\textbackslash} octal-digit octal-digit\br |
1488 |
| - \terminal{\textbackslash} octal-digit octal-digit octal-digit\br |
1489 |
| - \terminal{\textbackslash o\{} simple-octal-digit-sequence \terminal{\}} |
| 1486 | + \literalterminal{\textbackslash} octal-digit\br |
| 1487 | + \literalterminal{\textbackslash} octal-digit octal-digit\br |
| 1488 | + \literalterminal{\textbackslash} octal-digit octal-digit octal-digit\br |
| 1489 | + \literalterminal{\textbackslash o\{} simple-octal-digit-sequence \literalterminal{\}} |
1490 | 1490 | \end{bnf}
|
1491 | 1491 |
|
1492 | 1492 | \begin{bnf}
|
1493 | 1493 | \nontermdef{hexadecimal-escape-sequence}\br
|
1494 |
| - \terminal{\textbackslash x} simple-hexadecimal-digit-sequence\br |
1495 |
| - \terminal{\textbackslash x\{} simple-hexadecimal-digit-sequence \terminal{\}} |
| 1494 | + \literalterminal{\textbackslash x} simple-hexadecimal-digit-sequence\br |
| 1495 | + \literalterminal{\textbackslash x\{} simple-hexadecimal-digit-sequence \literalterminal{\}} |
1496 | 1496 | \end{bnf}
|
1497 | 1497 |
|
1498 | 1498 | \begin{bnf}
|
|
1680 | 1680 |
|
1681 | 1681 | \begin{bnf}
|
1682 | 1682 | \nontermdef{fractional-constant}\br
|
1683 |
| - \opt{digit-sequence} \terminal{.} digit-sequence\br |
1684 |
| - digit-sequence \terminal{.} |
| 1683 | + \opt{digit-sequence} \literalterminal{.} digit-sequence\br |
| 1684 | + digit-sequence \literalterminal{.} |
1685 | 1685 | \end{bnf}
|
1686 | 1686 |
|
1687 | 1687 | \begin{bnf}
|
1688 | 1688 | \nontermdef{hexadecimal-fractional-constant}\br
|
1689 |
| - \opt{hexadecimal-digit-sequence} \terminal{.} hexadecimal-digit-sequence\br |
1690 |
| - hexadecimal-digit-sequence \terminal{.} |
| 1689 | + \opt{hexadecimal-digit-sequence} \literalterminal{.} hexadecimal-digit-sequence\br |
| 1690 | + hexadecimal-digit-sequence \literalterminal{.} |
1691 | 1691 | \end{bnf}
|
1692 | 1692 |
|
1693 | 1693 | \begin{bnf}
|
1694 | 1694 | \nontermdef{exponent-part}\br
|
1695 |
| - \terminal{e} \opt{sign} digit-sequence\br |
1696 |
| - \terminal{E} \opt{sign} digit-sequence |
| 1695 | + \literalterminal{e} \opt{sign} digit-sequence\br |
| 1696 | + \literalterminal{E} \opt{sign} digit-sequence |
1697 | 1697 | \end{bnf}
|
1698 | 1698 |
|
1699 | 1699 | \begin{bnf}
|
1700 | 1700 | \nontermdef{binary-exponent-part}\br
|
1701 |
| - \terminal{p} \opt{sign} digit-sequence\br |
1702 |
| - \terminal{P} \opt{sign} digit-sequence |
| 1701 | + \literalterminal{p} \opt{sign} digit-sequence\br |
| 1702 | + \literalterminal{P} \opt{sign} digit-sequence |
1703 | 1703 | \end{bnf}
|
1704 | 1704 |
|
1705 | 1705 | \begin{bnf}
|
1706 | 1706 | \nontermdef{sign} \textnormal{one of}\br
|
1707 |
| - \terminal{+ -} |
| 1707 | + \literalterminal{+ -} |
1708 | 1708 | \end{bnf}
|
1709 | 1709 |
|
1710 | 1710 | \begin{bnf}
|
1711 | 1711 | \nontermdef{digit-sequence}\br
|
1712 | 1712 | digit\br
|
1713 |
| - digit-sequence \opt{\terminal{'}} digit |
| 1713 | + digit-sequence \opt{\literalterminal{'}} digit |
1714 | 1714 | \end{bnf}
|
1715 | 1715 |
|
1716 | 1716 | \begin{bnf}
|
1717 | 1717 | \nontermdef{floating-point-suffix} \textnormal{one of}\br
|
1718 |
| - \terminal{f l f16 f32 f64 f128 bf16 F L F16 F32 F64 F128 BF16} |
| 1718 | + \literalterminal{f l f16 f32 f64 f128 bf16 F L F16 F32 F64 F128 BF16} |
1719 | 1719 | \end{bnf}
|
1720 | 1720 |
|
1721 | 1721 | \pnum
|
|
1800 | 1800 | \indextext{literal!string}%
|
1801 | 1801 | \begin{bnf}
|
1802 | 1802 | \nontermdef{string-literal}\br
|
1803 |
| - \opt{encoding-prefix} \terminal{"} \opt{s-char-sequence} \terminal{"}\br |
1804 |
| - \opt{encoding-prefix} \terminal{R} raw-string |
| 1803 | + \opt{encoding-prefix} \literalterminal{"} \opt{s-char-sequence} \literalterminal{"}\br |
| 1804 | + \opt{encoding-prefix} \literalterminal{R} raw-string |
1805 | 1805 | \end{bnf}
|
1806 | 1806 |
|
1807 | 1807 | \begin{bnf}
|
|
1824 | 1824 |
|
1825 | 1825 | \begin{bnf}
|
1826 | 1826 | \nontermdef{raw-string}\br
|
1827 |
| - \terminal{"} \opt{d-char-sequence} \terminal{(} \opt{r-char-sequence} \terminal{)} \opt{d-char-sequence} \terminal{"} |
| 1827 | + \literalterminal{"} \opt{d-char-sequence} \literalterminal{(} \opt{r-char-sequence} \literalterminal{)} \opt{d-char-sequence} \literalterminal{"} |
1828 | 1828 | \end{bnf}
|
1829 | 1829 |
|
1830 | 1830 | \begin{bnf}
|
|
1911 | 1911 |
|
1912 | 1912 | \pnum
|
1913 | 1913 | \indextext{literal!string!raw}%
|
1914 |
| -A \grammarterm{string-literal} that has an \tcode{R} |
| 1914 | +A \grammarterm{string-literal} that has an \literaltcode{R} |
1915 | 1915 | \indextext{prefix!\idxcode{R}}%
|
1916 | 1916 | in the prefix is a \defn{raw string literal}. The
|
1917 | 1917 | \grammarterm{d-char-sequence} serves as a delimiter. The terminating
|
|
0 commit comments