tmp/tmp4p7momel/{from.md → to.md}
RENAMED
|
@@ -4,11 +4,11 @@ A unary operator expression of the form:
|
|
| 4 |
|
| 5 |
``` bnf
|
| 6 |
'_Pragma' '(' string-literal ')'
|
| 7 |
```
|
| 8 |
|
| 9 |
-
is processed as follows: The string
|
| 10 |
deleting the `L` prefix, if present, deleting the leading and trailing
|
| 11 |
double-quotes, replacing each escape sequence `\"` by a double-quote,
|
| 12 |
and replacing each escape sequence `\\` by a single backslash. The
|
| 13 |
resulting sequence of characters is processed through translation phase
|
| 14 |
3 to produce preprocessing tokens that are executed as if they were the
|
|
@@ -42,31 +42,39 @@ LISTING( ..\listing.dir )
|
|
| 42 |
<!-- Link reference definitions -->
|
| 43 |
[basic.stc.dynamic.safety]: basic.md#basic.stc.dynamic.safety
|
| 44 |
[cpp]: #cpp
|
| 45 |
[cpp.concat]: #cpp.concat
|
| 46 |
[cpp.cond]: #cpp.cond
|
|
|
|
| 47 |
[cpp.error]: #cpp.error
|
|
|
|
| 48 |
[cpp.include]: #cpp.include
|
| 49 |
[cpp.line]: #cpp.line
|
|
|
|
| 50 |
[cpp.null]: #cpp.null
|
| 51 |
[cpp.pragma]: #cpp.pragma
|
| 52 |
[cpp.pragma.op]: #cpp.pragma.op
|
|
|
|
| 53 |
[cpp.predefined]: #cpp.predefined
|
|
|
|
| 54 |
[cpp.replace]: #cpp.replace
|
| 55 |
[cpp.rescan]: #cpp.rescan
|
| 56 |
[cpp.scope]: #cpp.scope
|
| 57 |
[cpp.stringize]: #cpp.stringize
|
| 58 |
[cpp.subst]: #cpp.subst
|
| 59 |
-
[cstdint]:
|
| 60 |
[expr.const]: expr.md#expr.const
|
| 61 |
[expr.new]: expr.md#expr.new
|
| 62 |
-
[intro.multithread]:
|
| 63 |
[lex.digraph]: lex.md#lex.digraph
|
|
|
|
| 64 |
[lex.name]: lex.md#lex.name
|
| 65 |
[lex.phases]: lex.md#lex.phases
|
| 66 |
[lex.token]: lex.md#lex.token
|
| 67 |
-
[
|
|
|
|
|
|
|
| 68 |
|
| 69 |
[^1]: Thus, preprocessing directives are commonly called “lines”. These
|
| 70 |
“lines” have no other syntactic significance, as all white space is
|
| 71 |
equivalent except in certain situations during preprocessing (see
|
| 72 |
the `#` character string literal creation operator in
|
|
@@ -79,22 +87,22 @@ LISTING( ..\listing.dir )
|
|
| 79 |
[^3]: As indicated by the syntax, a preprocessing token shall not follow
|
| 80 |
a `#else` or `#endif` directive before the terminating new-line
|
| 81 |
character. However, comments may appear anywhere in a source file,
|
| 82 |
including within a preprocessing directive.
|
| 83 |
|
| 84 |
-
[^4]: Note that adjacent string
|
| 85 |
-
single string
|
| 86 |
-
[[lex.phases]]); thus, an expansion that results in two
|
| 87 |
-
|
| 88 |
|
| 89 |
-
[^5]: Since, by macro-replacement time, all character
|
| 90 |
-
string
|
| 91 |
containing identifier-like subsequences (see [[lex.phases]],
|
| 92 |
translation phases), they are never scanned for macro names or
|
| 93 |
parameters.
|
| 94 |
|
| 95 |
-
[^6]: An alternative token
|
| 96 |
when its spelling consists entirely of letters and underscores.
|
| 97 |
Therefore it is not possible to define a macro whose name is the
|
| 98 |
same as that of an alternative token.
|
| 99 |
|
| 100 |
[^7]: A *conditionally-supported-directive* is a preprocessing directive
|
|
@@ -102,14 +110,9 @@ LISTING( ..\listing.dir )
|
|
| 102 |
|
| 103 |
[^8]: Placemarker preprocessing tokens do not appear in the syntax
|
| 104 |
because they are temporary entities that exist only within
|
| 105 |
translation phase 4.
|
| 106 |
|
| 107 |
-
[^9]:
|
| 108 |
-
will replace the value of this macro with a greater value.
|
| 109 |
-
Non-conforming compilers should use a value with at most five
|
| 110 |
-
decimal digits.
|
| 111 |
-
|
| 112 |
-
[^10]: The presumed source file name can be changed by the `#line`
|
| 113 |
directive.
|
| 114 |
|
| 115 |
-
[^
|
|
|
|
| 4 |
|
| 5 |
``` bnf
|
| 6 |
'_Pragma' '(' string-literal ')'
|
| 7 |
```
|
| 8 |
|
| 9 |
+
is processed as follows: The *string-literal* is *destringized* by
|
| 10 |
deleting the `L` prefix, if present, deleting the leading and trailing
|
| 11 |
double-quotes, replacing each escape sequence `\"` by a double-quote,
|
| 12 |
and replacing each escape sequence `\\` by a single backslash. The
|
| 13 |
resulting sequence of characters is processed through translation phase
|
| 14 |
3 to produce preprocessing tokens that are executed as if they were the
|
|
|
|
| 42 |
<!-- Link reference definitions -->
|
| 43 |
[basic.stc.dynamic.safety]: basic.md#basic.stc.dynamic.safety
|
| 44 |
[cpp]: #cpp
|
| 45 |
[cpp.concat]: #cpp.concat
|
| 46 |
[cpp.cond]: #cpp.cond
|
| 47 |
+
[cpp.cond.ha]: #cpp.cond.ha
|
| 48 |
[cpp.error]: #cpp.error
|
| 49 |
+
[cpp.import]: #cpp.import
|
| 50 |
[cpp.include]: #cpp.include
|
| 51 |
[cpp.line]: #cpp.line
|
| 52 |
+
[cpp.module]: #cpp.module
|
| 53 |
[cpp.null]: #cpp.null
|
| 54 |
[cpp.pragma]: #cpp.pragma
|
| 55 |
[cpp.pragma.op]: #cpp.pragma.op
|
| 56 |
+
[cpp.pre]: #cpp.pre
|
| 57 |
[cpp.predefined]: #cpp.predefined
|
| 58 |
+
[cpp.predefined.ft]: #cpp.predefined.ft
|
| 59 |
[cpp.replace]: #cpp.replace
|
| 60 |
[cpp.rescan]: #cpp.rescan
|
| 61 |
[cpp.scope]: #cpp.scope
|
| 62 |
[cpp.stringize]: #cpp.stringize
|
| 63 |
[cpp.subst]: #cpp.subst
|
| 64 |
+
[cstdint]: support.md#cstdint
|
| 65 |
[expr.const]: expr.md#expr.const
|
| 66 |
[expr.new]: expr.md#expr.new
|
| 67 |
+
[intro.multithread]: basic.md#intro.multithread
|
| 68 |
[lex.digraph]: lex.md#lex.digraph
|
| 69 |
+
[lex.key]: lex.md#lex.key
|
| 70 |
[lex.name]: lex.md#lex.name
|
| 71 |
[lex.phases]: lex.md#lex.phases
|
| 72 |
[lex.token]: lex.md#lex.token
|
| 73 |
+
[module.import]: module.md#module.import
|
| 74 |
+
[stmt.if]: stmt.md#stmt.if
|
| 75 |
+
[support.limits]: support.md#support.limits
|
| 76 |
|
| 77 |
[^1]: Thus, preprocessing directives are commonly called “lines”. These
|
| 78 |
“lines” have no other syntactic significance, as all white space is
|
| 79 |
equivalent except in certain situations during preprocessing (see
|
| 80 |
the `#` character string literal creation operator in
|
|
|
|
| 87 |
[^3]: As indicated by the syntax, a preprocessing token shall not follow
|
| 88 |
a `#else` or `#endif` directive before the terminating new-line
|
| 89 |
character. However, comments may appear anywhere in a source file,
|
| 90 |
including within a preprocessing directive.
|
| 91 |
|
| 92 |
+
[^4]: Note that adjacent *string-literal*s are not concatenated into a
|
| 93 |
+
single *string-literal* (see the translation phases in
|
| 94 |
+
[[lex.phases]]); thus, an expansion that results in two
|
| 95 |
+
*string-literal*s is an invalid directive.
|
| 96 |
|
| 97 |
+
[^5]: Since, by macro-replacement time, all *character-literal*s and
|
| 98 |
+
*string-literal*s are preprocessing tokens, not sequences possibly
|
| 99 |
containing identifier-like subsequences (see [[lex.phases]],
|
| 100 |
translation phases), they are never scanned for macro names or
|
| 101 |
parameters.
|
| 102 |
|
| 103 |
+
[^6]: An alternative token [[lex.digraph]] is not an identifier, even
|
| 104 |
when its spelling consists entirely of letters and underscores.
|
| 105 |
Therefore it is not possible to define a macro whose name is the
|
| 106 |
same as that of an alternative token.
|
| 107 |
|
| 108 |
[^7]: A *conditionally-supported-directive* is a preprocessing directive
|
|
|
|
| 110 |
|
| 111 |
[^8]: Placemarker preprocessing tokens do not appear in the syntax
|
| 112 |
because they are temporary entities that exist only within
|
| 113 |
translation phase 4.
|
| 114 |
|
| 115 |
+
[^9]: The presumed source file name can be changed by the `#line`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 116 |
directive.
|
| 117 |
|
| 118 |
+
[^10]: The presumed line number can be changed by the `#line` directive.
|