Identifiers
Author: JTC1/SC22/WG9/ARG, by Randall Brukardt, ARG Editor

Ada Reference Manual — Legal Information

# 2.3 Identifiers

1
Identifiers are used as names.

#### Syntax

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.

#### Static Semantics

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

- The characters in category other_format are eliminated.

5.2/2

- The remaining sequence of characters is converted to upper case.

5.3/2
After applying these transformations, an identifier shall not be identical to a reserved word (in upper case).

#### Implementation Permissions

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.

#### Examples

7
Examples of identifiers:
8/2
Count X Get_Symbol Ethelyn Marion
Snobol_4 X1 Page_Count Store_Next_Item
Πλάτων -- Plato
Чайковский -- Tchaikovsky
θ φ -- Angles

Sponsored by Ada-Europe