From Jason Turner

[cpp.module]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpqt489nh5/{from.md → to.md} +30 -2
tmp/tmpqt489nh5/{from.md → to.md} RENAMED
@@ -4,12 +4,40 @@
4
  pp-module:
5
  exportₒₚₜ module pp-tokensₒₚₜ ';' new-line
6
  ```
7
 
8
  A *pp-module* shall not appear in a context where `module` or (if it is
9
- the first token of the *pp-module*) `export` is an identifier defined as
10
- an object-like macro.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
 
12
  Any preprocessing tokens after the `module` preprocessing token in the
13
  `module` directive are processed just as in normal text.
14
 
15
  [*Note 1*: Each identifier currently defined as a macro name is
 
4
  pp-module:
5
  exportₒₚₜ module pp-tokensₒₚₜ ';' new-line
6
  ```
7
 
8
  A *pp-module* shall not appear in a context where `module` or (if it is
9
+ the first preprocessing token of the *pp-module*) `export` is an
10
+ identifier defined as an object-like macro.
11
+
12
+ The *pp-tokens*, if any, of a *pp-module* shall be of the form:
13
+
14
+ ``` bnf
15
+ pp-module-name pp-module-partitionₒₚₜ pp-tokensₒₚₜ
16
+ ```
17
+
18
+ where the *pp-tokens* (if any) shall not begin with a `(` preprocessing
19
+ token and the grammar non-terminals are defined as:
20
+
21
+ ``` bnf
22
+ pp-module-name:
23
+ pp-module-name-qualifierₒₚₜ identifier
24
+ ```
25
+
26
+ ``` bnf
27
+ pp-module-partition:
28
+ ':' pp-module-name-qualifierₒₚₜ identifier
29
+ ```
30
+
31
+ ``` bnf
32
+ pp-module-name-qualifier:
33
+ identifier '.'
34
+ pp-module-name-qualifier identifier '.'
35
+ ```
36
+
37
+ No *identifier* in the *pp-module-name* or *pp-module-partition* shall
38
+ currently be defined as an object-like macro.
39
 
40
  Any preprocessing tokens after the `module` preprocessing token in the
41
  `module` directive are processed just as in normal text.
42
 
43
  [*Note 1*: Each identifier currently defined as a macro name is