2.9 Reserved Words



2/2 {reserved word} The following are the reserved words. Within a program, some or all of the letters of a reserved word may be in upper case, and one or more characters in category other_format may be inserted within or at the end of the reserved word.

2.a Discussion: Reserved words have special meaning in the syntax. In addition, certain reserved words are used as attribute names.

2.b The syntactic category identifier no longer allows reserved words. We have added the few reserved words that are legal explicitly to the syntax for attribute_reference. Allowing identifier to include reserved words has been a source of confusion for some users, and differs from the way they are treated in the C and Pascal language definitions. 

abort else new return
abs elsif not reverse
abstract end null  
accept entry   select
access exception of separate
aliased exit or subtype
all   others synchronized
and for out  
array function overriding tagged
at     task
  generic package terminate
begin goto pragma then
body   private type
  if procedure  
case in protected until
constant interface   use
  is raise  
declare   range when
delay limited record while
delta loop rem with
digits   renames  
do mod requeue xor


3 [8]  The reserved words appear in lower case boldface in this International Standard, except when used in the designator of an attribute (see §4.1.4). Lower case boldface is also used for a reserved word in a string_literal used as an operator_symbol. This is merely a convention — programs may be written in whatever typeface is desired and available. 

Incompatibilities With Ada 83

3.a {incompatibilities with Ada 83} The following words are not reserved in Ada 83, but are reserved in Ada 95: abstract, aliased, protected, requeue, tagged, until

Wording Changes from Ada 83

3.b The clause entitled “Allowed Replacements of Characters” has been moved to §Annex J, “Obsolescent Features”. 

Incompatibilities With Ada 95

3.c/2 {incompatibilities with Ada 95} The following words are not reserved in Ada 95, but are reserved in Ada 2005: interface, overriding, synchronized. A special allowance is made for pragma Interface (see §J.12). Uses of these words as identifiers will need to be changed, but we do not expect them to be common.

Wording Changes from Ada 95

3.d/2 The definition of upper case equivalence has been modified to allow identifiers using all of the characters of ISO 10646. This change has no effect on the character sequences that are reserved words, but does make some unusual sequences of characters illegal.