Ada 2005 Reference Manual
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
| other_format
mark_non_spacing
| mark_spacing_combining
| number_decimal
| punctuation_connector
| other_format
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.
Static Semantics
Two identifiers are considered the same if they consist of the same sequence of characters after applying the following transformations (in this order):
- The characters in category other_format are eliminated.
- The remaining sequence of characters is converted to upper case.
After applying these transformations, an identifier shall not be identical to a reserved word (in upper case).
Implementation Permissions
In a nonstandard mode, an implementation may support other upper/lower case equivalence rules for identifiers, to accommodate local conventions.
NOTES
3 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