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