1
Identifiers are used as names.
2/2
identifier::=
identifier_start {identifier_start | identifier_extend}
3/2
identifier_start::=
letter_uppercase
| letter_lowercase
| letter_titlecase
| letter_modifier
| letter_other
| number_letter
3.1/2
identifier_extend::=
mark_non_spacing
| mark_spacing_combining
| number_decimal
| punctuation_connector
| other_format
4/2
After eliminating the characters in category other_format, an identifier shall not contain two consecutive characters in category punctuation_connector, or end with a character in that category.
5/2
Two identifiers are considered the same if they consist of the same sequence of characters after applying the following transformations (in this order):
5.1/2
5.2/2
5.3/2
After applying these transformations, an identifier shall not be identical to a reserved word (in upper case).
6
In a nonstandard mode, an implementation may support other upper/lower case equivalence rules for identifiers, to accommodate local conventions.
NOTES
6.1/2
3 Identifiers differing only in the use of corresponding upper and lower case letters are considered the same.
7
Examples of identifiers:
8/2
Count X Get_Symbol Ethelyn Marion
Snobol_4 X1 Page_Count Store_Next_Item
[Unicode 928]
[Unicode 955]
[Unicode 940]
[Unicode 964]
[Unicode 969]
[Unicode 957]
−− Plato
[Unicode 1063]
[Unicode 1072]
[Unicode 1081]
[Unicode 1082]
[Unicode 1086]
[Unicode 1074]
[Unicode 1089]
[Unicode 1082]
[Unicode 1080]
[Unicode 1081]
−− Tchaikovsky
[Unicode 952]
[Unicode 966]
−− Angles