|
50 | 50 | include-directive\br
|
51 | 51 | pp-import\br
|
52 | 52 | embed-directive\br
|
53 |
| - \terminal{\# define } identifier replacement-list new-line\br |
54 |
| - \terminal{\# define } identifier lparen \opt{identifier-list} \terminal{)} replacement-list new-line\br |
55 |
| - \terminal{\# define } identifier lparen \terminal{... )} replacement-list new-line\br |
56 |
| - \terminal{\# define } identifier lparen identifier-list \terminal{, ... )} replacement-list new-line\br |
57 |
| - \terminal{\# undef \ } identifier new-line\br |
| 53 | + define-directive\br |
| 54 | + undef-directive\br |
58 | 55 | \terminal{\# line \ \ } pp-tokens new-line\br
|
59 | 56 | \terminal{\# error \ } \opt{pp-tokens} new-line\br
|
60 | 57 | \terminal{\# warning} \opt{pp-tokens} new-line\br
|
|
106 | 103 | pp-tokens new-line
|
107 | 104 | \end{bnf}
|
108 | 105 |
|
109 |
| -\begin{bnf} |
110 |
| -\nontermdef{lparen}\br |
111 |
| - \descr{a \terminal{(} character not immediately preceded by whitespace} |
112 |
| -\end{bnf} |
113 |
| - |
114 |
| -\begin{bnf} |
115 |
| -\nontermdef{identifier-list}\br |
116 |
| - identifier\br |
117 |
| - identifier-list \terminal{,} identifier |
118 |
| -\end{bnf} |
119 |
| - |
120 |
| -\begin{bnf} |
121 |
| -\nontermdef{replacement-list}\br |
122 |
| - \opt{pp-tokens} |
123 |
| -\end{bnf} |
124 |
| - |
125 | 106 | \begin{bnf}
|
126 | 107 | \nontermdef{pp-tokens}\br
|
127 | 108 | preprocessing-token \opt{pp-tokens}
|
|
1455 | 1436 | \indextext{replacement!macro|see{macro, replacement}}%
|
1456 | 1437 | \indextext{preprocessing directive!macro replacement|see{macro, replacement}}
|
1457 | 1438 |
|
| 1439 | +\begin{bnf} |
| 1440 | +\nontermdef{define-directive}\br |
| 1441 | + \terminal{\# define } identifier replacement-list new-line\br |
| 1442 | + \terminal{\# define } identifier lparen \opt{identifier-list} \terminal{)} replacement-list new-line\br |
| 1443 | + \terminal{\# define } identifier lparen \terminal{... )} replacement-list new-line\br |
| 1444 | + \terminal{\# define } identifier lparen identifier-list \terminal{, ... )} replacement-list new-line\br |
| 1445 | +\end{bnf} |
| 1446 | + |
| 1447 | +\begin{bnf} |
| 1448 | +\nontermdef{undef-directive}\br |
| 1449 | + \terminal{\# undef \ } identifier new-line\br |
| 1450 | +\end{bnf} |
| 1451 | + |
| 1452 | +\begin{bnf} |
| 1453 | +\nontermdef{lparen}\br |
| 1454 | + \descr{a \terminal{(} character not immediately preceded by whitespace} |
| 1455 | +\end{bnf} |
| 1456 | + |
| 1457 | +\begin{bnf} |
| 1458 | +\nontermdef{identifier-list}\br |
| 1459 | + identifier\br |
| 1460 | + identifier-list \terminal{,} identifier |
| 1461 | +\end{bnf} |
| 1462 | + |
| 1463 | +\begin{bnf} |
| 1464 | +\nontermdef{replacement-list}\br |
| 1465 | + \opt{pp-tokens} |
| 1466 | +\end{bnf} |
| 1467 | + |
1458 | 1468 | \pnum
|
1459 | 1469 | \indextext{macro!replacement list}%
|
1460 | 1470 | Two replacement lists are identical if and only if
|
|
0 commit comments