|
330 | 330 | \ucode{000c} & \uname{form feed} & \\
|
331 | 331 | \ucode{0020} & \uname{space} & \\
|
332 | 332 | \ucode{000a} & \uname{line feed} & new-line \\
|
333 |
| -\ucode{0021} & \uname{exclamation mark} & \tcode{!} \\ |
334 |
| -\ucode{0022} & \uname{quotation mark} & \tcode{"} \\ |
335 |
| -\ucode{0023} & \uname{number sign} & \tcode{\#} \\ |
336 |
| -\ucode{0024} & \uname{dollar sign} & \tcode{\$} \\ |
337 |
| -\ucode{0025} & \uname{percent sign} & \tcode{\%} \\ |
338 |
| -\ucode{0026} & \uname{ampersand} & \tcode{\&} \\ |
339 |
| -\ucode{0027} & \uname{apostrophe} & \tcode{'} \\ |
340 |
| -\ucode{0028} & \uname{left parenthesis} & \tcode{(} \\ |
341 |
| -\ucode{0029} & \uname{right parenthesis} & \tcode{)} \\ |
342 |
| -\ucode{002a} & \uname{asterisk} & \tcode{*} \\ |
343 |
| -\ucode{002b} & \uname{plus sign} & \tcode{+} \\ |
344 |
| -\ucode{002c} & \uname{comma} & \tcode{,} \\ |
345 |
| -\ucode{002d} & \uname{hyphen-minus} & \tcode{-} \\ |
346 |
| -\ucode{002e} & \uname{full stop} & \tcode{.} \\ |
347 |
| -\ucode{002f} & \uname{solidus} & \tcode{/} \\ |
348 |
| -\ucode{0030} .. \ucode{0039} & \uname{digit zero .. nine} & \tcode{0 1 2 3 4 5 6 7 8 9} \\ |
349 |
| -\ucode{003a} & \uname{colon} & \tcode{:} \\ |
350 |
| -\ucode{003b} & \uname{semicolon} & \tcode{;} \\ |
351 |
| -\ucode{003c} & \uname{less-than sign} & \tcode{<} \\ |
352 |
| -\ucode{003d} & \uname{equals sign} & \tcode{=} \\ |
353 |
| -\ucode{003e} & \uname{greater-than sign} & \tcode{>} \\ |
354 |
| -\ucode{003f} & \uname{question mark} & \tcode{?} \\ |
355 |
| -\ucode{0040} & \uname{commercial at} & \tcode{@} \\ |
356 |
| -\ucode{0041} .. \ucode{005a} & \uname{latin capital letter a .. z} & \tcode{A B C D E F G H I J K L M} \\ |
357 |
| - & & \tcode{N O P Q R S T U V W X Y Z} \\ |
358 |
| -\ucode{005b} & \uname{left square bracket} & \tcode{[} \\ |
359 |
| -\ucode{005c} & \uname{reverse solidus} & \tcode{\textbackslash} \\ |
360 |
| -\ucode{005d} & \uname{right square bracket} & \tcode{]} \\ |
361 |
| -\ucode{005e} & \uname{circumflex accent} & \tcode{\caret} \\ |
362 |
| -\ucode{005f} & \uname{low line} & \tcode{_} \\ |
363 |
| -\ucode{0060} & \uname{grave accent} & \tcode{\`} \\ |
364 |
| -\ucode{0061} .. \ucode{007a} & \uname{latin small letter a .. z} & \tcode{a b c d e f g h i j k l m} \\ |
365 |
| - & & \tcode{n o p q r s t u v w x y z} \\ |
366 |
| -\ucode{007b} & \uname{left curly bracket} & \tcode{\{} \\ |
367 |
| -\ucode{007c} & \uname{vertical line} & \tcode{|} \\ |
368 |
| -\ucode{007d} & \uname{right curly bracket} & \tcode{\}} \\ |
369 |
| -\ucode{007e} & \uname{tilde} & \tcode{\textasciitilde} \\ |
| 333 | +\ucode{0021} & \uname{exclamation mark} & \noncxxtcode{!} \\ |
| 334 | +\ucode{0022} & \uname{quotation mark} & \noncxxtcode{"} \\ |
| 335 | +\ucode{0023} & \uname{number sign} & \noncxxtcode{\#} \\ |
| 336 | +\ucode{0024} & \uname{dollar sign} & \noncxxtcode{\$} \\ |
| 337 | +\ucode{0025} & \uname{percent sign} & \noncxxtcode{\%} \\ |
| 338 | +\ucode{0026} & \uname{ampersand} & \noncxxtcode{\&} \\ |
| 339 | +\ucode{0027} & \uname{apostrophe} & \noncxxtcode{'} \\ |
| 340 | +\ucode{0028} & \uname{left parenthesis} & \noncxxtcode{(} \\ |
| 341 | +\ucode{0029} & \uname{right parenthesis} & \noncxxtcode{)} \\ |
| 342 | +\ucode{002a} & \uname{asterisk} & \noncxxtcode{*} \\ |
| 343 | +\ucode{002b} & \uname{plus sign} & \noncxxtcode{+} \\ |
| 344 | +\ucode{002c} & \uname{comma} & \noncxxtcode{,} \\ |
| 345 | +\ucode{002d} & \uname{hyphen-minus} & \noncxxtcode{-} \\ |
| 346 | +\ucode{002e} & \uname{full stop} & \noncxxtcode{.} \\ |
| 347 | +\ucode{002f} & \uname{solidus} & \noncxxtcode{/} \\ |
| 348 | +\ucode{0030} .. \ucode{0039} & \uname{digit zero .. nine} & \noncxxtcode{0 1 2 3 4 5 6 7 8 9} \\ |
| 349 | +\ucode{003a} & \uname{colon} & \noncxxtcode{:} \\ |
| 350 | +\ucode{003b} & \uname{semicolon} & \noncxxtcode{;} \\ |
| 351 | +\ucode{003c} & \uname{less-than sign} & \noncxxtcode{<} \\ |
| 352 | +\ucode{003d} & \uname{equals sign} & \noncxxtcode{=} \\ |
| 353 | +\ucode{003e} & \uname{greater-than sign} & \noncxxtcode{>} \\ |
| 354 | +\ucode{003f} & \uname{question mark} & \noncxxtcode{?} \\ |
| 355 | +\ucode{0040} & \uname{commercial at} & \noncxxtcode{@} \\ |
| 356 | +\ucode{0041} .. \ucode{005a} & \uname{latin capital letter a .. z} & \noncxxtcode{A B C D E F G H I J K L M} \\ |
| 357 | + & & \noncxxtcode{N O P Q R S T U V W X Y Z} \\ |
| 358 | +\ucode{005b} & \uname{left square bracket} & \noncxxtcode{[} \\ |
| 359 | +\ucode{005c} & \uname{reverse solidus} & \noncxxtcode{\textbackslash} \\ |
| 360 | +\ucode{005d} & \uname{right square bracket} & \noncxxtcode{]} \\ |
| 361 | +\ucode{005e} & \uname{circumflex accent} & \noncxxtcode{\caret} \\ |
| 362 | +\ucode{005f} & \uname{low line} & \noncxxtcode{_} \\ |
| 363 | +\ucode{0060} & \uname{grave accent} & \noncxxtcode{\`} \\ |
| 364 | +\ucode{0061} .. \ucode{007a} & \uname{latin small letter a .. z} & \noncxxtcode{a b c d e f g h i j k l m} \\ |
| 365 | + & & \noncxxtcode{n o p q r s t u v w x y z} \\ |
| 366 | +\ucode{007b} & \uname{left curly bracket} & \noncxxtcode{\{} \\ |
| 367 | +\ucode{007c} & \uname{vertical line} & \noncxxtcode{|} \\ |
| 368 | +\ucode{007d} & \uname{right curly bracket} & \noncxxtcode{\}} \\ |
| 369 | +\ucode{007e} & \uname{tilde} & \noncxxtcode{\textasciitilde} \\ |
370 | 370 | \end{floattable}
|
371 | 371 |
|
372 | 372 | \pnum
|
|
603 | 603 | \item
|
604 | 604 | \indextext{literal!string!raw}%
|
605 | 605 | If the next character begins a sequence of characters that could be the prefix
|
606 |
| -and initial double quote of a raw string literal, such as \tcode{R"}, the next preprocessing |
| 606 | +and initial double quote of a raw string literal, such as \literaltcode{R"}, the next preprocessing |
607 | 607 | token shall be a raw string literal. Between the initial and final
|
608 | 608 | double quote characters of the raw string, any transformations performed in phase
|
609 | 609 | 2 (line splicing) are reverted; this reversion
|
610 | 610 | shall apply before any \grammarterm{d-char}, \grammarterm{r-char}, or delimiting
|
611 | 611 | parenthesis is identified. The raw string literal is defined as the shortest sequence
|
612 | 612 | of characters that matches the raw-string pattern
|
613 | 613 | \begin{ncbnf}
|
614 |
| -\opt{encoding-prefix} \terminal{R} raw-string |
| 614 | +\opt{encoding-prefix} \literalterminal{R} raw-string |
615 | 615 | \end{ncbnf}
|
616 | 616 |
|
617 | 617 | \item Otherwise, if the next three characters are \tcode{<::} and the subsequent character
|
|
746 | 746 | \begin{bnf}
|
747 | 747 | \nontermdef{pp-number}\br
|
748 | 748 | digit\br
|
749 |
| - \terminal{.} digit\br |
| 749 | + \literalterminal{.} digit\br |
750 | 750 | pp-number identifier-continue\br
|
751 |
| - pp-number \terminal{'} digit\br |
752 |
| - pp-number \terminal{'} nondigit\br |
753 |
| - pp-number \terminal{e} sign\br |
754 |
| - pp-number \terminal{E} sign\br |
755 |
| - pp-number \terminal{p} sign\br |
756 |
| - pp-number \terminal{P} sign\br |
757 |
| - pp-number \terminal{.} |
| 751 | + pp-number \literalterminal{'} digit\br |
| 752 | + pp-number \literalterminal{'} nondigit\br |
| 753 | + pp-number \literalterminal{e} sign\br |
| 754 | + pp-number \literalterminal{E} sign\br |
| 755 | + pp-number \literalterminal{p} sign\br |
| 756 | + pp-number \literalterminal{P} sign\br |
| 757 | + pp-number \literalterminal{.} |
758 | 758 | \end{bnf}
|
759 | 759 |
|
760 | 760 | \pnum
|
|
1181 | 1181 | \nontermdef{binary-literal}\br
|
1182 | 1182 | \terminal{0b} binary-digit\br
|
1183 | 1183 | \terminal{0B} binary-digit\br
|
1184 |
| - binary-literal \opt{\terminal{'}} binary-digit |
| 1184 | + binary-literal \opt{\literalterminal{'}} binary-digit |
1185 | 1185 | \end{bnf}
|
1186 | 1186 |
|
1187 | 1187 | \begin{bnf}
|
1188 | 1188 | \nontermdef{octal-literal}\br
|
1189 | 1189 | \terminal{0}\br
|
1190 |
| - octal-literal \opt{\terminal{'}} octal-digit |
| 1190 | + octal-literal \opt{\literalterminal{'}} octal-digit |
1191 | 1191 | \end{bnf}
|
1192 | 1192 |
|
1193 | 1193 | \begin{bnf}
|
1194 | 1194 | \nontermdef{decimal-literal}\br
|
1195 | 1195 | nonzero-digit\br
|
1196 |
| - decimal-literal \opt{\terminal{'}} digit |
| 1196 | + decimal-literal \opt{\literalterminal{'}} digit |
1197 | 1197 | \end{bnf}
|
1198 | 1198 |
|
1199 | 1199 | \begin{bnf}
|
|
1224 | 1224 | \begin{bnf}
|
1225 | 1225 | \nontermdef{hexadecimal-digit-sequence}\br
|
1226 | 1226 | hexadecimal-digit\br
|
1227 |
| - hexadecimal-digit-sequence \opt{\terminal{'}} hexadecimal-digit |
| 1227 | + hexadecimal-digit-sequence \opt{\literalterminal{'}} hexadecimal-digit |
1228 | 1228 | \end{bnf}
|
1229 | 1229 |
|
1230 | 1230 | \begin{bnf}
|
1231 | 1231 | \nontermdef{hexadecimal-digit} \textnormal{one of}\br
|
1232 |
| - \terminal{0 1 2 3 4 5 6 7 8 9}\br |
1233 |
| - \terminal{a b c d e f}\br |
1234 |
| - \terminal{A B C D E F} |
| 1232 | + \literalterminal{0 1 2 3 4 5 6 7 8 9}\br |
| 1233 | + \literalterminal{a b c d e f}\br |
| 1234 | + \literalterminal{A B C D E F} |
1235 | 1235 | \end{bnf}
|
1236 | 1236 |
|
1237 | 1237 | \begin{bnf}
|
|
1246 | 1246 |
|
1247 | 1247 | \begin{bnf}
|
1248 | 1248 | \nontermdef{unsigned-suffix} \textnormal{one of}\br
|
1249 |
| - \terminal{u U} |
| 1249 | + \literalterminal{u U} |
1250 | 1250 | \end{bnf}
|
1251 | 1251 |
|
1252 | 1252 | \begin{bnf}
|
1253 | 1253 | \nontermdef{long-suffix} \textnormal{one of}\br
|
1254 |
| - \terminal{l L} |
| 1254 | + \literalterminal{l L} |
1255 | 1255 | \end{bnf}
|
1256 | 1256 |
|
1257 | 1257 | \begin{bnf}
|
1258 | 1258 | \nontermdef{long-long-suffix} \textnormal{one of}\br
|
1259 |
| - \terminal{ll LL} |
| 1259 | + \literalterminal{ll LL} |
1260 | 1260 | \end{bnf}
|
1261 | 1261 |
|
1262 | 1262 | \begin{bnf}
|
|
1295 | 1295 |
|
1296 | 1296 | \pnum
|
1297 | 1297 | The \grammarterm{hexadecimal-digit}s
|
1298 |
| -\tcode{a} through \tcode{f} and \tcode{A} through \tcode{F} |
| 1298 | +\literaltcode{a} through \literaltcode{f} and \literaltcode{A} through \literaltcode{F} |
1299 | 1299 | have decimal values ten through fifteen.
|
1300 | 1300 | \begin{example}
|
1301 | 1301 | The number twelve can be written \tcode{12}, \tcode{014},
|
|
1339 | 1339 | &
|
1340 | 1340 | &
|
1341 | 1341 | \tcode{unsigned long long int}\\\hline
|
1342 |
| -\tcode{u} or \tcode{U} & |
| 1342 | +\literaltcode{u} or \literaltcode{U} & |
1343 | 1343 | \tcode{unsigned int} &
|
1344 | 1344 | \tcode{unsigned int}\\
|
1345 | 1345 | &
|
|
1348 | 1348 | &
|
1349 | 1349 | \tcode{unsigned long long int} &
|
1350 | 1350 | \tcode{unsigned long long int}\\\hline
|
1351 |
| -\tcode{l} or \tcode{L} & |
| 1351 | +\literaltcode{l} or \literaltcode{L} & |
1352 | 1352 | \tcode{long int} &
|
1353 | 1353 | \tcode{long int}\\
|
1354 | 1354 | &
|
|
1360 | 1360 | &
|
1361 | 1361 | &
|
1362 | 1362 | \tcode{unsigned long long int}\\\hline
|
1363 |
| -Both \tcode{u} or \tcode{U} & |
| 1363 | +Both \literaltcode{u} or \literaltcode{U} & |
1364 | 1364 | \tcode{unsigned long int} &
|
1365 | 1365 | \tcode{unsigned long int}\\
|
1366 |
| -and \tcode{l} or \tcode{L} & |
| 1366 | +and \literaltcode{l} or \literaltcode{L} & |
1367 | 1367 | \tcode{unsigned long long int} &
|
1368 | 1368 | \tcode{unsigned long long int}\\\hline
|
1369 |
| -\tcode{ll} or \tcode{LL} & |
| 1369 | +\literaltcode{ll} or \literaltcode{LL} & |
1370 | 1370 | \tcode{long long int} &
|
1371 | 1371 | \tcode{long long int}\\
|
1372 | 1372 | &
|
1373 | 1373 | &
|
1374 | 1374 | \tcode{unsigned long long int}\\\hline
|
1375 |
| -Both \tcode{u} or \tcode{U} & |
| 1375 | +Both \literaltcode{u} or \literaltcode{U} & |
1376 | 1376 | \tcode{unsigned long long int} &
|
1377 | 1377 | \tcode{unsigned long long int}\\
|
1378 |
| -and \tcode{ll} or \tcode{LL} & |
| 1378 | +and \literaltcode{ll} or \literaltcode{LL} & |
1379 | 1379 | &
|
1380 | 1380 | \\\hline
|
1381 | 1381 | \tcode{z} or \tcode{Z} &
|
|
1423 | 1423 | \indextext{literal!character}%
|
1424 | 1424 | \begin{bnf}
|
1425 | 1425 | \nontermdef{character-literal}\br
|
1426 |
| - \opt{encoding-prefix} \terminal{'} c-char-sequence \terminal{'} |
| 1426 | + \opt{encoding-prefix} \literalterminal{'} c-char-sequence \literalterminal{'} |
1427 | 1427 | \end{bnf}
|
1428 | 1428 |
|
1429 | 1429 | \begin{bnf}
|
1430 | 1430 | \nontermdef{encoding-prefix} \textnormal{one of}\br
|
1431 |
| - \terminal{u8}\quad\terminal{u}\quad\terminal{U}\quad\terminal{L} |
| 1431 | + \literalterminal{u8}\quad\literalterminal{u}\quad\literalterminal{U}\quad\literalterminal{L} |
1432 | 1432 | \end{bnf}
|
1433 | 1433 |
|
1434 | 1434 | \begin{bnf}
|
|
1479 | 1479 |
|
1480 | 1480 | \begin{bnf}
|
1481 | 1481 | \nontermdef{octal-escape-sequence}\br
|
1482 |
| - \terminal{\textbackslash} octal-digit\br |
1483 |
| - \terminal{\textbackslash} octal-digit octal-digit\br |
1484 |
| - \terminal{\textbackslash} octal-digit octal-digit octal-digit\br |
1485 |
| - \terminal{\textbackslash o\{} simple-octal-digit-sequence \terminal{\}} |
| 1482 | + \literalterminal{\textbackslash} octal-digit\br |
| 1483 | + \literalterminal{\textbackslash} octal-digit octal-digit\br |
| 1484 | + \literalterminal{\textbackslash} octal-digit octal-digit octal-digit\br |
| 1485 | + \literalterminal{\textbackslash o\{} simple-octal-digit-sequence \literalterminal{\}} |
1486 | 1486 | \end{bnf}
|
1487 | 1487 |
|
1488 | 1488 | \begin{bnf}
|
1489 | 1489 | \nontermdef{hexadecimal-escape-sequence}\br
|
1490 |
| - \terminal{\textbackslash x} simple-hexadecimal-digit-sequence\br |
1491 |
| - \terminal{\textbackslash x\{} simple-hexadecimal-digit-sequence \terminal{\}} |
| 1490 | + \literalterminal{\textbackslash x} simple-hexadecimal-digit-sequence\br |
| 1491 | + \literalterminal{\textbackslash x\{} simple-hexadecimal-digit-sequence \literalterminal{\}} |
1492 | 1492 | \end{bnf}
|
1493 | 1493 |
|
1494 | 1494 | \begin{bnf}
|
|
1676 | 1676 |
|
1677 | 1677 | \begin{bnf}
|
1678 | 1678 | \nontermdef{fractional-constant}\br
|
1679 |
| - \opt{digit-sequence} \terminal{.} digit-sequence\br |
1680 |
| - digit-sequence \terminal{.} |
| 1679 | + \opt{digit-sequence} \literalterminal{.} digit-sequence\br |
| 1680 | + digit-sequence \literalterminal{.} |
1681 | 1681 | \end{bnf}
|
1682 | 1682 |
|
1683 | 1683 | \begin{bnf}
|
1684 | 1684 | \nontermdef{hexadecimal-fractional-constant}\br
|
1685 |
| - \opt{hexadecimal-digit-sequence} \terminal{.} hexadecimal-digit-sequence\br |
1686 |
| - hexadecimal-digit-sequence \terminal{.} |
| 1685 | + \opt{hexadecimal-digit-sequence} \literalterminal{.} hexadecimal-digit-sequence\br |
| 1686 | + hexadecimal-digit-sequence \literalterminal{.} |
1687 | 1687 | \end{bnf}
|
1688 | 1688 |
|
1689 | 1689 | \begin{bnf}
|
1690 | 1690 | \nontermdef{exponent-part}\br
|
1691 |
| - \terminal{e} \opt{sign} digit-sequence\br |
1692 |
| - \terminal{E} \opt{sign} digit-sequence |
| 1691 | + \literalterminal{e} \opt{sign} digit-sequence\br |
| 1692 | + \literalterminal{E} \opt{sign} digit-sequence |
1693 | 1693 | \end{bnf}
|
1694 | 1694 |
|
1695 | 1695 | \begin{bnf}
|
1696 | 1696 | \nontermdef{binary-exponent-part}\br
|
1697 |
| - \terminal{p} \opt{sign} digit-sequence\br |
1698 |
| - \terminal{P} \opt{sign} digit-sequence |
| 1697 | + \literalterminal{p} \opt{sign} digit-sequence\br |
| 1698 | + \literalterminal{P} \opt{sign} digit-sequence |
1699 | 1699 | \end{bnf}
|
1700 | 1700 |
|
1701 | 1701 | \begin{bnf}
|
1702 | 1702 | \nontermdef{sign} \textnormal{one of}\br
|
1703 |
| - \terminal{+ -} |
| 1703 | + \literalterminal{+ -} |
1704 | 1704 | \end{bnf}
|
1705 | 1705 |
|
1706 | 1706 | \begin{bnf}
|
1707 | 1707 | \nontermdef{digit-sequence}\br
|
1708 | 1708 | digit\br
|
1709 |
| - digit-sequence \opt{\terminal{'}} digit |
| 1709 | + digit-sequence \opt{\literalterminal{'}} digit |
1710 | 1710 | \end{bnf}
|
1711 | 1711 |
|
1712 | 1712 | \begin{bnf}
|
1713 | 1713 | \nontermdef{floating-point-suffix} \textnormal{one of}\br
|
1714 |
| - \terminal{f l f16 f32 f64 f128 bf16 F L F16 F32 F64 F128 BF16} |
| 1714 | + \literalterminal{f l f16 f32 f64 f128 bf16 F L F16 F32 F64 F128 BF16} |
1715 | 1715 | \end{bnf}
|
1716 | 1716 |
|
1717 | 1717 | \pnum
|
|
1796 | 1796 | \indextext{literal!string}%
|
1797 | 1797 | \begin{bnf}
|
1798 | 1798 | \nontermdef{string-literal}\br
|
1799 |
| - \opt{encoding-prefix} \terminal{"} \opt{s-char-sequence} \terminal{"}\br |
1800 |
| - \opt{encoding-prefix} \terminal{R} raw-string |
| 1799 | + \opt{encoding-prefix} \literalterminal{"} \opt{s-char-sequence} \literalterminal{"}\br |
| 1800 | + \opt{encoding-prefix} \literalterminal{R} raw-string |
1801 | 1801 | \end{bnf}
|
1802 | 1802 |
|
1803 | 1803 | \begin{bnf}
|
|
1820 | 1820 |
|
1821 | 1821 | \begin{bnf}
|
1822 | 1822 | \nontermdef{raw-string}\br
|
1823 |
| - \terminal{"} \opt{d-char-sequence} \terminal{(} \opt{r-char-sequence} \terminal{)} \opt{d-char-sequence} \terminal{"} |
| 1823 | + \literalterminal{"} \opt{d-char-sequence} \literalterminal{(} \opt{r-char-sequence} \literalterminal{)} \opt{d-char-sequence} \literalterminal{"} |
1824 | 1824 | \end{bnf}
|
1825 | 1825 |
|
1826 | 1826 | \begin{bnf}
|
|
1907 | 1907 |
|
1908 | 1908 | \pnum
|
1909 | 1909 | \indextext{literal!string!raw}%
|
1910 |
| -A \grammarterm{string-literal} that has an \tcode{R} |
| 1910 | +A \grammarterm{string-literal} that has an \literaltcode{R} |
1911 | 1911 | \indextext{prefix!\idxcode{R}}%
|
1912 | 1912 | in the prefix is a \defn{raw string literal}. The
|
1913 | 1913 | \grammarterm{d-char-sequence} serves as a delimiter. The terminating
|
|
0 commit comments