From Jason Turner

[uaxid.def]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp9urn6bee/{from.md → to.md} +2 -12
tmp/tmp9urn6bee/{from.md → to.md} RENAMED
@@ -3,41 +3,31 @@
3
  ### General <a id="uaxid.def.general">[[uaxid.def.general]]</a>
4
 
5
  UAX \#31 specifies a default syntax for identifiers based on properties
6
  from the Unicode Character Database, UAX \#44. The general syntax is
7
 
8
- ``` cpp
9
  <Identifier> := <Start> <Continue>* (<Medial> <Continue>+)*
10
  ```
11
 
12
  where `<Start>` has the XID_Start property, `<Continue>` has the
13
  XID_Continue property, and `<Medial>` is a list of characters permitted
14
  between continue characters. For C++ we add the character
15
  U+005f (low line), or `_`, to the set of permitted `<Start>` characters,
16
  the `<Medial>` set is empty, and the `<Continue>` characters are
17
  unmodified. In the grammar used in UAX \#31, this is
18
 
19
- ``` cpp
20
  <Identifier> := <Start> <Continue>*
21
  <Start> := XID_Start + U+005f
22
  <Continue> := <Start> + XID_Continue
23
  ```
24
 
25
  This is described in the C++ grammar in [[lex.name]], where *identifier*
26
  is formed from *identifier-start* or *identifier* followed by
27
  *identifier-continue*.
28
 
29
- ### R1a Restricted format characters <a id="uaxid.def.rfmt">[[uaxid.def.rfmt]]</a>
30
-
31
- If an implementation of UAX \#31 wishes to allow format characters such
32
- as U+200d (zero width joiner) or U+200c (zero width non-joiner) it must
33
- define a profile allowing them, or describe precisely which combinations
34
- are permitted.
35
-
36
- C++ does not allow format characters in identifiers, so this does not
37
- apply.
38
-
39
  ### R1b Stable identifiers <a id="uaxid.def.stable">[[uaxid.def.stable]]</a>
40
 
41
  An implementation of UAX \#31 may choose to guarantee that identifiers
42
  are stable across versions of the Unicode Standard. Once a string
43
  qualifies as an identifier it does so in all future versions.
 
3
  ### General <a id="uaxid.def.general">[[uaxid.def.general]]</a>
4
 
5
  UAX \#31 specifies a default syntax for identifiers based on properties
6
  from the Unicode Character Database, UAX \#44. The general syntax is
7
 
8
+ ``` text
9
  <Identifier> := <Start> <Continue>* (<Medial> <Continue>+)*
10
  ```
11
 
12
  where `<Start>` has the XID_Start property, `<Continue>` has the
13
  XID_Continue property, and `<Medial>` is a list of characters permitted
14
  between continue characters. For C++ we add the character
15
  U+005f (low line), or `_`, to the set of permitted `<Start>` characters,
16
  the `<Medial>` set is empty, and the `<Continue>` characters are
17
  unmodified. In the grammar used in UAX \#31, this is
18
 
19
+ ``` text
20
  <Identifier> := <Start> <Continue>*
21
  <Start> := XID_Start + U+005f
22
  <Continue> := <Start> + XID_Continue
23
  ```
24
 
25
  This is described in the C++ grammar in [[lex.name]], where *identifier*
26
  is formed from *identifier-start* or *identifier* followed by
27
  *identifier-continue*.
28
 
 
 
 
 
 
 
 
 
 
 
29
  ### R1b Stable identifiers <a id="uaxid.def.stable">[[uaxid.def.stable]]</a>
30
 
31
  An implementation of UAX \#31 may choose to guarantee that identifiers
32
  are stable across versions of the Unicode Standard. Once a string
33
  qualifies as an identifier it does so in all future versions.