tmp/tmp65h0qq4b/{from.md → to.md}
RENAMED
|
@@ -9,11 +9,10 @@ identifier:
|
|
| 9 |
|
| 10 |
``` bnf
|
| 11 |
identifier-nondigit:
|
| 12 |
nondigit
|
| 13 |
universal-character-name
|
| 14 |
-
other implementation-defined characters
|
| 15 |
```
|
| 16 |
|
| 17 |
``` bnf
|
| 18 |
nondigit: one of
|
| 19 |
'a b c d e f g h i j k l m'
|
|
@@ -26,16 +25,40 @@ nondigit: one of
|
|
| 26 |
digit: one of
|
| 27 |
'0 1 2 3 4 5 6 7 8 9'
|
| 28 |
```
|
| 29 |
|
| 30 |
An identifier is an arbitrarily long sequence of letters and digits.
|
| 31 |
-
Each universal-character-name in an identifier shall designate a
|
| 32 |
character whose encoding in ISO 10646 falls into one of the ranges
|
| 33 |
-
specified in [[charname.allowed]]. The initial element shall
|
| 34 |
-
universal-character-name designating a character whose
|
| 35 |
-
into one of the ranges specified in
|
| 36 |
-
lower-case letters are
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 37 |
|
| 38 |
The identifiers in Table [[tab:identifiers.special]] have a special
|
| 39 |
meaning when appearing in a certain context. When referred to in the
|
| 40 |
grammar, these identifiers are used explicitly rather than using the
|
| 41 |
*identifier* grammar production. Unless otherwise specified, any
|
|
@@ -48,8 +71,14 @@ resolved to interpret the token as a regular *identifier*.
|
|
| 48 |
| ---------- | ------- |
|
| 49 |
| `override` | `final` |
|
| 50 |
|
| 51 |
|
| 52 |
In addition, some identifiers are reserved for use by C++
|
| 53 |
-
implementations and
|
| 54 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 55 |
|
|
|
|
| 9 |
|
| 10 |
``` bnf
|
| 11 |
identifier-nondigit:
|
| 12 |
nondigit
|
| 13 |
universal-character-name
|
|
|
|
| 14 |
```
|
| 15 |
|
| 16 |
``` bnf
|
| 17 |
nondigit: one of
|
| 18 |
'a b c d e f g h i j k l m'
|
|
|
|
| 25 |
digit: one of
|
| 26 |
'0 1 2 3 4 5 6 7 8 9'
|
| 27 |
```
|
| 28 |
|
| 29 |
An identifier is an arbitrarily long sequence of letters and digits.
|
| 30 |
+
Each *universal-character-name* in an identifier shall designate a
|
| 31 |
character whose encoding in ISO 10646 falls into one of the ranges
|
| 32 |
+
specified in Table [[tab:charname.allowed]]. The initial element shall
|
| 33 |
+
not be a *universal-character-name* designating a character whose
|
| 34 |
+
encoding falls into one of the ranges specified in Table
|
| 35 |
+
[[tab:charname.disallowed]]. Upper- and lower-case letters are
|
| 36 |
+
different. All characters are significant.[^10]
|
| 37 |
+
|
| 38 |
+
**Table: Ranges of characters allowed** <a id="tab:charname.allowed">[tab:charname.allowed]</a>
|
| 39 |
+
|
| 40 |
+
| | | | | |
|
| 41 |
+
| ------------- | ------------- | ------------- | ------------- | ------------- |
|
| 42 |
+
| `00A8` | `00AA` | `00AD` | `00AF` | `00B2-00B5` |
|
| 43 |
+
| `00B7-00BA` | `00BC-00BE` | `00C0-00D6` | `00D8-00F6` | `00F8-00FF` |
|
| 44 |
+
| `0100-167F` | `1681-180D` | `180F-1FFF` | | |
|
| 45 |
+
| `200B-200D` | `202A-202E` | `203F-2040` | `2054` | `2060-206F` |
|
| 46 |
+
| `2070-218F` | `2460-24FF` | `2776-2793` | `2C00-2DFF` | `2E80-2FFF` |
|
| 47 |
+
| `3004-3007` | `3021-302F` | `3031-D7FF` | | |
|
| 48 |
+
| `F900-FD3D` | `FD40-FDCF` | `FDF0-FE44` | `FE47-FFFD` | |
|
| 49 |
+
| `10000-1FFFD` | `20000-2FFFD` | `30000-3FFFD` | `40000-4FFFD` | `50000-5FFFD` |
|
| 50 |
+
| `60000-6FFFD` | `70000-7FFFD` | `80000-8FFFD` | `90000-9FFFD` | `A0000-AFFFD` |
|
| 51 |
+
| `B0000-BFFFD` | `C0000-CFFFD` | `D0000-DFFFD` | `E0000-EFFFD` | |
|
| 52 |
+
|
| 53 |
+
|
| 54 |
+
**Table: Ranges of characters disallowed initially (combining characters)** <a id="tab:charname.disallowed">[tab:charname.disallowed]</a>
|
| 55 |
+
|
| 56 |
+
| | | | |
|
| 57 |
+
| ----------- | ---------------------------------------------- | ----------- | ----------- |
|
| 58 |
+
| `0300-036F` | % FIXME: Unicode v7 adds 1AB0-1AFF `1DC0-1DFF` | `20D0-20FF` | `FE20-FE2F` |
|
| 59 |
+
|
| 60 |
|
| 61 |
The identifiers in Table [[tab:identifiers.special]] have a special
|
| 62 |
meaning when appearing in a certain context. When referred to in the
|
| 63 |
grammar, these identifiers are used explicitly rather than using the
|
| 64 |
*identifier* grammar production. Unless otherwise specified, any
|
|
|
|
| 71 |
| ---------- | ------- |
|
| 72 |
| `override` | `final` |
|
| 73 |
|
| 74 |
|
| 75 |
In addition, some identifiers are reserved for use by C++
|
| 76 |
+
implementations and shall not be used otherwise; no diagnostic is
|
| 77 |
+
required.
|
| 78 |
+
|
| 79 |
+
- Each identifier that contains a double underscore `__` or begins with
|
| 80 |
+
an underscore followed by an uppercase letter is reserved to the
|
| 81 |
+
implementation for any use.
|
| 82 |
+
- Each identifier that begins with an underscore is reserved to the
|
| 83 |
+
implementation for use as a name in the global namespace.
|
| 84 |
|