Ada Reference Manual (Ada 2022)
2.3 Identifiers
Identifiers are used as names.
Syntax
identifier_start ::=
letter_uppercase
| letter_lowercase
| letter_titlecase
| letter_modifier
| letter_other
| number_letter
letter_uppercase
| letter_lowercase
| letter_titlecase
| letter_modifier
| letter_other
| number_letter
identifier_extend ::=
mark_non_spacing
| mark_spacing_combining
| number_decimal
| punctuation_connector
mark_non_spacing
| mark_spacing_combining
| number_decimal
| punctuation_connector
An identifier shall not contain two consecutive characters in category punctuation_connector, or end with a character in that category.
Legality Rules
An identifier shall only contain characters that may be present in Normalization Form KC as defined by Clause 22 of ISO/IEC 10646:2020.
Static Semantics
Two identifiers are considered the same if they consist of the same sequence of characters after applying locale-independent simple case folding, as defined by documents referenced in Clause 2 of ISO/IEC 10646:2020.
After applying simple case folding, an identifier shall not be identical to a reserved word.
Implementation Permissions
In a nonstandard mode, an implementation may support other upper/lower case equivalence rules for identifiers, to accommodate local conventions.
NOTE Identifiers differing only in the use of corresponding upper and lower case letters are considered the same.
Examples
Examples of identifiers:
Count X Get_Symbol Ethelyn Marion
Snobol_4 X1 Page_Count Store_Next_Item
Πλάτων -- Plato
Чайковский -- Tchaikovsky
θ φ -- Angles
Snobol_4 X1 Page_Count Store_Next_Item
Πλάτων -- Plato
Чайковский -- Tchaikovsky
θ φ -- Angles