Ada 2005 Reference Manual
Annex P
(informative)
Syntax Summary
This Annex summarizes the complete syntax of the language. See 1.1.4 for a description of the notation used.
2.3:
identifier_start ::=
letter_uppercase
| letter_lowercase
| letter_titlecase
| letter_modifier
| letter_other
| number_letter
identifier_start ::=
letter_uppercase
| letter_lowercase
| letter_titlecase
| letter_modifier
| letter_other
| number_letter
2.3:
identifier_extend ::=
mark_non_spacing
| mark_spacing_combining
| number_decimal
| punctuation_connector
| other_format
identifier_extend ::=
mark_non_spacing
| mark_spacing_combining
| number_decimal
| punctuation_connector
| other_format
2.8:
pragma_argument_association ::=
[pragma_argument_identifier =>] name
| [pragma_argument_identifier =>] expression
pragma_argument_association ::=
[pragma_argument_identifier =>] name
| [pragma_argument_identifier =>] expression
3.1:
basic_declaration ::=
type_declaration | subtype_declaration
| object_declaration | number_declaration
| subprogram_declaration | abstract_subprogram_declaration
| null_procedure_declaration | package_declaration
| renaming_declaration | exception_declaration
| generic_declaration | generic_instantiation
basic_declaration ::=
type_declaration | subtype_declaration
| object_declaration | number_declaration
| subprogram_declaration | abstract_subprogram_declaration
| null_procedure_declaration | package_declaration
| renaming_declaration | exception_declaration
| generic_declaration | generic_instantiation
3.2.1:
type_declaration ::= full_type_declaration
| incomplete_type_declaration
| private_type_declaration
| private_extension_declaration
type_declaration ::= full_type_declaration
| incomplete_type_declaration
| private_type_declaration
| private_extension_declaration
3.2.1:
full_type_declaration ::=
type defining_identifier [known_discriminant_part] is type_definition;
| task_type_declaration
| protected_type_declaration
full_type_declaration ::=
type defining_identifier [known_discriminant_part] is type_definition;
| task_type_declaration
| protected_type_declaration
3.2.1:
type_definition ::=
enumeration_type_definition | integer_type_definition
| real_type_definition | array_type_definition
| record_type_definition | access_type_definition
| derived_type_definition | interface_type_definition
type_definition ::=
enumeration_type_definition | integer_type_definition
| real_type_definition | array_type_definition
| record_type_definition | access_type_definition
| derived_type_definition | interface_type_definition
3.3.1:
object_declaration ::=
defining_identifier_list : [aliased] [constant] subtype_indication [:= expression];
| defining_identifier_list : [aliased] [constant] access_definition [:= expression];
| defining_identifier_list : [aliased] [constant] array_type_definition [:= expression];
| single_task_declaration
| single_protected_declaration
object_declaration ::=
defining_identifier_list : [aliased] [constant] subtype_indication [:= expression];
| defining_identifier_list : [aliased] [constant] access_definition [:= expression];
| defining_identifier_list : [aliased] [constant] array_type_definition [:= expression];
| single_task_declaration
| single_protected_declaration
3.4:
derived_type_definition ::=
[abstract] [limited] new parent_subtype_indication [[and interface_list] record_extension_part]
derived_type_definition ::=
[abstract] [limited] new parent_subtype_indication [[and interface_list] record_extension_part]
3.5.1:
enumeration_type_definition ::=
(enumeration_literal_specification {, enumeration_literal_specification})
enumeration_type_definition ::=
(enumeration_literal_specification {, enumeration_literal_specification})
3.5.4:
signed_integer_type_definition ::= range static_simple_expression .. static_simple_expression
signed_integer_type_definition ::= range static_simple_expression .. static_simple_expression
3.5.9:
decimal_fixed_point_definition ::=
delta static_expression digits static_expression [real_range_specification]
decimal_fixed_point_definition ::=
delta static_expression digits static_expression [real_range_specification]
3.6:
unconstrained_array_definition ::=
array(index_subtype_definition {, index_subtype_definition}) of component_definition
unconstrained_array_definition ::=
array(index_subtype_definition {, index_subtype_definition}) of component_definition
3.6:
constrained_array_definition ::=
array (discrete_subtype_definition {, discrete_subtype_definition}) of component_definition
constrained_array_definition ::=
array (discrete_subtype_definition {, discrete_subtype_definition}) of component_definition
3.7:
discriminant_specification ::=
defining_identifier_list : [null_exclusion] subtype_mark [:= default_expression]
| defining_identifier_list : access_definition [:= default_expression]
discriminant_specification ::=
defining_identifier_list : [null_exclusion] subtype_mark [:= default_expression]
| defining_identifier_list : access_definition [:= default_expression]
3.7.1:
discriminant_association ::=
[discriminant_selector_name {| discriminant_selector_name} =>] expression
discriminant_association ::=
[discriminant_selector_name {| discriminant_selector_name} =>] expression
3.8:
component_declaration ::=
defining_identifier_list : component_definition [:= default_expression];
component_declaration ::=
defining_identifier_list : component_definition [:= default_expression];
3.9.3:
abstract_subprogram_declaration ::=
[overriding_indicator]
subprogram_specification is abstract;
abstract_subprogram_declaration ::=
[overriding_indicator]
subprogram_specification is abstract;
3.9.4:
interface_type_definition ::=
[limited | task | protected | synchronized] interface [and interface_list]
interface_type_definition ::=
[limited | task | protected | synchronized] interface [and interface_list]
3.10:
access_type_definition ::=
[null_exclusion] access_to_object_definition
| [null_exclusion] access_to_subprogram_definition
access_type_definition ::=
[null_exclusion] access_to_object_definition
| [null_exclusion] access_to_subprogram_definition
3.10:
access_to_subprogram_definition ::=
access [protected] procedure parameter_profile
| access [protected] function parameter_and_result_profile
access_to_subprogram_definition ::=
access [protected] procedure parameter_profile
| access [protected] function parameter_and_result_profile
3.10:
access_definition ::=
[null_exclusion] access [constant] subtype_mark
| [null_exclusion] access [protected] procedure parameter_profile
| [null_exclusion] access [protected] function parameter_and_result_profile
access_definition ::=
[null_exclusion] access [constant] subtype_mark
| [null_exclusion] access [protected] procedure parameter_profile
| [null_exclusion] access [protected] function parameter_and_result_profile
4.1:
name ::=
direct_name | explicit_dereference
| indexed_component | slice
| selected_component | attribute_reference
| type_conversion | function_call
| character_literal
name ::=
direct_name | explicit_dereference
| indexed_component | slice
| selected_component | attribute_reference
| type_conversion | function_call
| character_literal
4.3.1:
record_component_association_list ::=
record_component_association {, record_component_association}
| null record
record_component_association_list ::=
record_component_association {, record_component_association}
| null record
4.3.1:
record_component_association ::=
[component_choice_list =>] expression
| component_choice_list => <>
record_component_association ::=
[component_choice_list =>] expression
| component_choice_list => <>
4.3.3:
positional_array_aggregate ::=
(expression, expression {, expression})
| (expression {, expression}, others => expression)
| (expression {, expression}, others => <>)
positional_array_aggregate ::=
(expression, expression {, expression})
| (expression {, expression}, others => expression)
| (expression {, expression}, others => <>)
4.3.3:
array_component_association ::=
discrete_choice_list => expression
| discrete_choice_list => <>
array_component_association ::=
discrete_choice_list => expression
| discrete_choice_list => <>
4.4:
expression ::=
relation {and relation} | relation {and then relation}
| relation {or relation} | relation {or else relation}
| relation {xor relation}
expression ::=
relation {and relation} | relation {and then relation}
| relation {or relation} | relation {or else relation}
| relation {xor relation}
4.4:
relation ::=
simple_expression [relational_operator simple_expression]
| simple_expression [not] in range
| simple_expression [not] in subtype_mark
relation ::=
simple_expression [relational_operator simple_expression]
| simple_expression [not] in range
| simple_expression [not] in subtype_mark
4.4:
primary ::=
numeric_literal | null | string_literal | aggregate
| name | qualified_expression | allocator | (expression)
primary ::=
numeric_literal | null | string_literal | aggregate
| name | qualified_expression | allocator | (expression)
5.1:
simple_statement ::= null_statement
| assignment_statement | exit_statement
| goto_statement | procedure_call_statement
| simple_return_statement | entry_call_statement
| requeue_statement | delay_statement
| abort_statement | raise_statement
| code_statement
simple_statement ::= null_statement
| assignment_statement | exit_statement
| goto_statement | procedure_call_statement
| simple_return_statement | entry_call_statement
| requeue_statement | delay_statement
| abort_statement | raise_statement
| code_statement
5.1:
compound_statement ::=
if_statement | case_statement
| loop_statement | block_statement
| extended_return_statement
| accept_statement | select_statement
compound_statement ::=
if_statement | case_statement
| loop_statement | block_statement
| extended_return_statement
| accept_statement | select_statement
5.3:
if_statement ::=
if condition then
sequence_of_statements
{elsif condition then
sequence_of_statements}
[else
sequence_of_statements]
end if;
if_statement ::=
if condition then
sequence_of_statements
{elsif condition then
sequence_of_statements}
[else
sequence_of_statements]
end if;
5.4:
case_statement ::=
case expression is
case_statement_alternative
{case_statement_alternative}
end case;
case_statement ::=
case expression is
case_statement_alternative
{case_statement_alternative}
end case;
5.5:
loop_statement ::=
[loop_statement_identifier:]
[iteration_scheme] loop
sequence_of_statements
end loop [loop_identifier];
loop_statement ::=
[loop_statement_identifier:]
[iteration_scheme] loop
sequence_of_statements
end loop [loop_identifier];
5.6:
block_statement ::=
[block_statement_identifier:]
[declare
declarative_part]
begin
handled_sequence_of_statements
end [block_identifier];
block_statement ::=
[block_statement_identifier:]
[declare
declarative_part]
begin
handled_sequence_of_statements
end [block_identifier];
6.1:
parameter_and_result_profile ::=
[formal_part] return [null_exclusion] subtype_mark
| [formal_part] return access_definition
parameter_and_result_profile ::=
[formal_part] return [null_exclusion] subtype_mark
| [formal_part] return access_definition
6.1:
parameter_specification ::=
defining_identifier_list : mode [null_exclusion] subtype_mark [:= default_expression]
| defining_identifier_list : access_definition [:= default_expression]
parameter_specification ::=
defining_identifier_list : mode [null_exclusion] subtype_mark [:= default_expression]
| defining_identifier_list : access_definition [:= default_expression]
6.3:
subprogram_body ::=
[overriding_indicator]
subprogram_specification is
declarative_part
begin
handled_sequence_of_statements
end [designator];
subprogram_body ::=
[overriding_indicator]
subprogram_specification is
declarative_part
begin
handled_sequence_of_statements
end [designator];
6.5:
extended_return_statement ::=
return defining_identifier : [aliased] return_subtype_indication [:= expression] [do
handled_sequence_of_statements
end return];
extended_return_statement ::=
return defining_identifier : [aliased] return_subtype_indication [:= expression] [do
handled_sequence_of_statements
end return];
7.1:
package_specification ::=
package defining_program_unit_name is
{basic_declarative_item}
[private
{basic_declarative_item}]
end [[parent_unit_name.]identifier]
package_specification ::=
package defining_program_unit_name is
{basic_declarative_item}
[private
{basic_declarative_item}]
end [[parent_unit_name.]identifier]
7.2:
package_body ::=
package body defining_program_unit_name is
declarative_part
[begin
handled_sequence_of_statements]
end [[parent_unit_name.]identifier];
package_body ::=
package body defining_program_unit_name is
declarative_part
[begin
handled_sequence_of_statements]
end [[parent_unit_name.]identifier];
7.3:
private_type_declaration ::=
type defining_identifier [discriminant_part] is [[abstract] tagged] [limited] private;
private_type_declaration ::=
type defining_identifier [discriminant_part] is [[abstract] tagged] [limited] private;
7.3:
private_extension_declaration ::=
type defining_identifier [discriminant_part] is
[abstract] [limited | synchronized] new ancestor_subtype_indication
[and interface_list] with private;
private_extension_declaration ::=
type defining_identifier [discriminant_part] is
[abstract] [limited | synchronized] new ancestor_subtype_indication
[and interface_list] with private;
8.5:
renaming_declaration ::=
object_renaming_declaration
| exception_renaming_declaration
| package_renaming_declaration
| subprogram_renaming_declaration
| generic_renaming_declaration
renaming_declaration ::=
object_renaming_declaration
| exception_renaming_declaration
| package_renaming_declaration
| subprogram_renaming_declaration
| generic_renaming_declaration
8.5.1:
object_renaming_declaration ::=
defining_identifier : [null_exclusion] subtype_mark renames object_name;
| defining_identifier : access_definition renames object_name;
object_renaming_declaration ::=
defining_identifier : [null_exclusion] subtype_mark renames object_name;
| defining_identifier : access_definition renames object_name;
8.5.4:
subprogram_renaming_declaration ::=
[overriding_indicator]
subprogram_specification renames callable_entity_name;
subprogram_renaming_declaration ::=
[overriding_indicator]
subprogram_specification renames callable_entity_name;
8.5.5:
generic_renaming_declaration ::=
generic package defining_program_unit_name renames generic_package_name;
| generic procedure defining_program_unit_name renames generic_procedure_name;
| generic function defining_program_unit_name renames generic_function_name;
generic_renaming_declaration ::=
generic package defining_program_unit_name renames generic_package_name;
| generic procedure defining_program_unit_name renames generic_procedure_name;
| generic function defining_program_unit_name renames generic_function_name;
9.1:
task_type_declaration ::=
task type defining_identifier [known_discriminant_part] [is
[new interface_list with]
task_definition];
task_type_declaration ::=
task type defining_identifier [known_discriminant_part] [is
[new interface_list with]
task_definition];
9.1:
single_task_declaration ::=
task defining_identifier [is
[new interface_list with]
task_definition];
single_task_declaration ::=
task defining_identifier [is
[new interface_list with]
task_definition];
9.1:
task_body ::=
task body defining_identifier is
declarative_part
begin
handled_sequence_of_statements
end [task_identifier];
task_body ::=
task body defining_identifier is
declarative_part
begin
handled_sequence_of_statements
end [task_identifier];
9.4:
protected_type_declaration ::=
protected type defining_identifier [known_discriminant_part] is
[new interface_list with]
protected_definition;
protected_type_declaration ::=
protected type defining_identifier [known_discriminant_part] is
[new interface_list with]
protected_definition;
9.4:
single_protected_declaration ::=
protected defining_identifier is
[new interface_list with]
protected_definition;
single_protected_declaration ::=
protected defining_identifier is
[new interface_list with]
protected_definition;
9.4:
protected_definition ::=
{ protected_operation_declaration }
[ private
{ protected_element_declaration } ]
end [protected_identifier]
protected_definition ::=
{ protected_operation_declaration }
[ private
{ protected_element_declaration } ]
end [protected_identifier]
9.4:
protected_body ::=
protected body defining_identifier is
{ protected_operation_item }
end [protected_identifier];
protected_body ::=
protected body defining_identifier is
{ protected_operation_item }
end [protected_identifier];
9.4:
protected_operation_item ::= subprogram_declaration
| subprogram_body
| entry_body
| aspect_clause
protected_operation_item ::= subprogram_declaration
| subprogram_body
| entry_body
| aspect_clause
9.5.2:
entry_declaration ::=
[overriding_indicator]
entry defining_identifier [(discrete_subtype_definition)] parameter_profile;
entry_declaration ::=
[overriding_indicator]
entry defining_identifier [(discrete_subtype_definition)] parameter_profile;
9.5.2:
accept_statement ::=
accept entry_direct_name [(entry_index)] parameter_profile [do
handled_sequence_of_statements
end [entry_identifier]];
accept_statement ::=
accept entry_direct_name [(entry_index)] parameter_profile [do
handled_sequence_of_statements
end [entry_identifier]];
9.5.2:
entry_body ::=
entry defining_identifier entry_body_formal_part entry_barrier is
declarative_part
begin
handled_sequence_of_statements
end [entry_identifier];
entry_body ::=
entry defining_identifier entry_body_formal_part entry_barrier is
declarative_part
begin
handled_sequence_of_statements
end [entry_identifier];
9.7:
select_statement ::=
selective_accept
| timed_entry_call
| conditional_entry_call
| asynchronous_select
select_statement ::=
selective_accept
| timed_entry_call
| conditional_entry_call
| asynchronous_select
9.7.1:
selective_accept ::=
select
[guard]
select_alternative
{ or
[guard]
select_alternative }
[ else
sequence_of_statements ]
end select;
selective_accept ::=
select
[guard]
select_alternative
{ or
[guard]
select_alternative }
[ else
sequence_of_statements ]
end select;
9.7.3:
conditional_entry_call ::=
select
entry_call_alternative
else
sequence_of_statements
end select;
conditional_entry_call ::=
select
entry_call_alternative
else
sequence_of_statements
end select;
10.1.1:
library_item ::= [private] library_unit_declaration
| library_unit_body
| [private] library_unit_renaming_declaration
library_item ::= [private] library_unit_declaration
| library_unit_body
| [private] library_unit_renaming_declaration
10.1.1:
library_unit_declaration ::=
subprogram_declaration | package_declaration
| generic_declaration | generic_instantiation
library_unit_declaration ::=
subprogram_declaration | package_declaration
| generic_declaration | generic_instantiation
10.1.1:
library_unit_renaming_declaration ::=
package_renaming_declaration
| generic_renaming_declaration
| subprogram_renaming_declaration
library_unit_renaming_declaration ::=
package_renaming_declaration
| generic_renaming_declaration
| subprogram_renaming_declaration
10.1.3:
body_stub ::= subprogram_body_stub | package_body_stub | task_body_stub | protected_body_stub
body_stub ::= subprogram_body_stub | package_body_stub | task_body_stub | protected_body_stub
11.2:
handled_sequence_of_statements ::=
sequence_of_statements
[exception
exception_handler
{exception_handler}]
handled_sequence_of_statements ::=
sequence_of_statements
[exception
exception_handler
{exception_handler}]
11.2:
exception_handler ::=
when [choice_parameter_specification:] exception_choice {| exception_choice} =>
sequence_of_statements
exception_handler ::=
when [choice_parameter_specification:] exception_choice {| exception_choice} =>
sequence_of_statements
12.1:
generic_formal_parameter_declaration ::=
formal_object_declaration
| formal_type_declaration
| formal_subprogram_declaration
| formal_package_declaration
generic_formal_parameter_declaration ::=
formal_object_declaration
| formal_type_declaration
| formal_subprogram_declaration
| formal_package_declaration
12.3:
generic_instantiation ::=
package defining_program_unit_name is
new generic_package_name [generic_actual_part];
| [overriding_indicator]
procedure defining_program_unit_name is
new generic_procedure_name [generic_actual_part];
| [overriding_indicator]
function defining_designator is
new generic_function_name [generic_actual_part];
generic_instantiation ::=
package defining_program_unit_name is
new generic_package_name [generic_actual_part];
| [overriding_indicator]
procedure defining_program_unit_name is
new generic_procedure_name [generic_actual_part];
| [overriding_indicator]
function defining_designator is
new generic_function_name [generic_actual_part];
12.3:
generic_association ::=
[generic_formal_parameter_selector_name =>] explicit_generic_actual_parameter
generic_association ::=
[generic_formal_parameter_selector_name =>] explicit_generic_actual_parameter
12.3:
explicit_generic_actual_parameter ::= expression | variable_name
| subprogram_name | entry_name | subtype_mark
| package_instance_name
explicit_generic_actual_parameter ::= expression | variable_name
| subprogram_name | entry_name | subtype_mark
| package_instance_name
12.4:
formal_object_declaration ::=
defining_identifier_list : mode [null_exclusion] subtype_mark [:= default_expression];
defining_identifier_list : mode access_definition [:= default_expression];
formal_object_declaration ::=
defining_identifier_list : mode [null_exclusion] subtype_mark [:= default_expression];
defining_identifier_list : mode access_definition [:= default_expression];
12.5:
formal_type_declaration ::=
type defining_identifier[discriminant_part] is formal_type_definition;
formal_type_declaration ::=
type defining_identifier[discriminant_part] is formal_type_definition;
12.5:
formal_type_definition ::=
formal_private_type_definition
| formal_derived_type_definition
| formal_discrete_type_definition
| formal_signed_integer_type_definition
| formal_modular_type_definition
| formal_floating_point_definition
| formal_ordinary_fixed_point_definition
| formal_decimal_fixed_point_definition
| formal_array_type_definition
| formal_access_type_definition
| formal_interface_type_definition
formal_type_definition ::=
formal_private_type_definition
| formal_derived_type_definition
| formal_discrete_type_definition
| formal_signed_integer_type_definition
| formal_modular_type_definition
| formal_floating_point_definition
| formal_ordinary_fixed_point_definition
| formal_decimal_fixed_point_definition
| formal_array_type_definition
| formal_access_type_definition
| formal_interface_type_definition
12.5.1:
formal_derived_type_definition ::=
[abstract] [limited | synchronized] new subtype_mark [[and interface_list]with private]
formal_derived_type_definition ::=
[abstract] [limited | synchronized] new subtype_mark [[and interface_list]with private]
12.6:
formal_subprogram_declaration ::= formal_concrete_subprogram_declaration
| formal_abstract_subprogram_declaration
formal_subprogram_declaration ::= formal_concrete_subprogram_declaration
| formal_abstract_subprogram_declaration
12.6:
formal_concrete_subprogram_declaration ::=
with subprogram_specification [is subprogram_default];
formal_concrete_subprogram_declaration ::=
with subprogram_specification [is subprogram_default];
12.6:
formal_abstract_subprogram_declaration ::=
with subprogram_specification is abstract [subprogram_default];
formal_abstract_subprogram_declaration ::=
with subprogram_specification is abstract [subprogram_default];
12.7:
formal_package_declaration ::=
with package defining_identifier is new generic_package_name formal_package_actual_part;
formal_package_declaration ::=
with package defining_identifier is new generic_package_name formal_package_actual_part;
12.7:
formal_package_actual_part ::=
([others =>] <>)
| [generic_actual_part]
| (formal_package_association {, formal_package_association} [, others => <>])
formal_package_actual_part ::=
([others =>] <>)
| [generic_actual_part]
| (formal_package_association {, formal_package_association} [, others => <>])
12.7:
formal_package_association ::=
generic_association
| generic_formal_parameter_selector_name => <>
formal_package_association ::=
generic_association
| generic_formal_parameter_selector_name => <>
13.1:
aspect_clause ::= attribute_definition_clause
| enumeration_representation_clause
| record_representation_clause
| at_clause
aspect_clause ::= attribute_definition_clause
| enumeration_representation_clause
| record_representation_clause
| at_clause
13.3:
attribute_definition_clause ::=
for local_name'attribute_designator use expression;
| for local_name'attribute_designator use name;
attribute_definition_clause ::=
for local_name'attribute_designator use expression;
| for local_name'attribute_designator use name;
13.5.1:
record_representation_clause ::=
for first_subtype_local_name use
record [mod_clause]
{component_clause}
end record;
record_representation_clause ::=
for first_subtype_local_name use
record [mod_clause]
{component_clause}
end record;
13.12:
restriction ::= restriction_identifier
| restriction_parameter_identifier => restriction_parameter_argument
restriction ::= restriction_identifier
| restriction_parameter_identifier => restriction_parameter_argument
Syntax Cross Reference
In the following syntax cross reference, each syntactic category is followed by the clause number where it is defined. In addition, each syntactic category S is followed by a list of the categories that use S in their definitions. For example, the first listing below shows that abort_statement appears in the definition of simple_statement.
access_definition 3.10
component_definition 3.6
discriminant_specification 3.7
formal_object_declaration 12.4
object_declaration 3.3.1
object_renaming_declaration 8.5.1
parameter_and_result_profile 6.1
parameter_specification 6.1
return_subtype_indication 6.5
component_definition 3.6
discriminant_specification 3.7
formal_object_declaration 12.4
object_declaration 3.3.1
object_renaming_declaration 8.5.1
parameter_and_result_profile 6.1
parameter_specification 6.1
return_subtype_indication 6.5
array_type_definition 3.6
formal_array_type_definition 12.5.3
object_declaration 3.3.1
type_definition 3.2.1
formal_array_type_definition 12.5.3
object_declaration 3.3.1
type_definition 3.2.1
aspect_clause 13.1
basic_declarative_item 3.11
component_item 3.8
protected_operation_declaration 9.4
protected_operation_item 9.4
task_item 9.1
basic_declarative_item 3.11
component_item 3.8
protected_operation_declaration 9.4
protected_operation_item 9.4
task_item 9.1
attribute_designator 4.1.4
attribute_definition_clause 13.3
attribute_reference 4.1.4
local_name 13.1
attribute_definition_clause 13.3
attribute_reference 4.1.4
local_name 13.1
component_definition 3.6
component_declaration 3.8
constrained_array_definition 3.6
unconstrained_array_definition 3.6
component_declaration 3.8
constrained_array_definition 3.6
unconstrained_array_definition 3.6
condition 5.3
entry_barrier 9.5.2
exit_statement 5.7
guard 9.7.1
if_statement 5.3
iteration_scheme 5.5
entry_barrier 9.5.2
exit_statement 5.7
guard 9.7.1
if_statement 5.3
iteration_scheme 5.5
declarative_part 3.11
block_statement 5.6
entry_body 9.5.2
package_body 7.2
subprogram_body 6.3
task_body 9.1
block_statement 5.6
entry_body 9.5.2
package_body 7.2
subprogram_body 6.3
task_body 9.1
default_expression 3.7
component_declaration 3.8
discriminant_specification 3.7
formal_object_declaration 12.4
parameter_specification 6.1
component_declaration 3.8
discriminant_specification 3.7
formal_object_declaration 12.4
parameter_specification 6.1
defining_identifier 3.1
choice_parameter_specification 11.2
defining_identifier_list 3.3.1
defining_program_unit_name 6.1
entry_body 9.5.2
entry_declaration 9.5.2
entry_index_specification 9.5.2
enumeration_literal_specification 3.5.1
exception_renaming_declaration 8.5.2
extended_return_statement 6.5
formal_package_declaration 12.7
formal_type_declaration 12.5
full_type_declaration 3.2.1
incomplete_type_declaration 3.10.1
loop_parameter_specification 5.5
object_renaming_declaration 8.5.1
package_body_stub 10.1.3
private_extension_declaration 7.3
private_type_declaration 7.3
protected_body 9.4
protected_body_stub 10.1.3
protected_type_declaration 9.4
single_protected_declaration 9.4
single_task_declaration 9.1
subtype_declaration 3.2.2
task_body 9.1
task_body_stub 10.1.3
task_type_declaration 9.1
choice_parameter_specification 11.2
defining_identifier_list 3.3.1
defining_program_unit_name 6.1
entry_body 9.5.2
entry_declaration 9.5.2
entry_index_specification 9.5.2
enumeration_literal_specification 3.5.1
exception_renaming_declaration 8.5.2
extended_return_statement 6.5
formal_package_declaration 12.7
formal_type_declaration 12.5
full_type_declaration 3.2.1
incomplete_type_declaration 3.10.1
loop_parameter_specification 5.5
object_renaming_declaration 8.5.1
package_body_stub 10.1.3
private_extension_declaration 7.3
private_type_declaration 7.3
protected_body 9.4
protected_body_stub 10.1.3
protected_type_declaration 9.4
single_protected_declaration 9.4
single_task_declaration 9.1
subtype_declaration 3.2.2
task_body 9.1
task_body_stub 10.1.3
task_type_declaration 9.1
defining_identifier_list 3.3.1
component_declaration 3.8
discriminant_specification 3.7
exception_declaration 11.1
formal_object_declaration 12.4
number_declaration 3.3.2
object_declaration 3.3.1
parameter_specification 6.1
component_declaration 3.8
discriminant_specification 3.7
exception_declaration 11.1
formal_object_declaration 12.4
number_declaration 3.3.2
object_declaration 3.3.1
parameter_specification 6.1
defining_program_unit_name 6.1
defining_designator 6.1
generic_instantiation 12.3
generic_renaming_declaration 8.5.5
package_body 7.2
package_renaming_declaration 8.5.3
package_specification 7.1
procedure_specification 6.1
defining_designator 6.1
generic_instantiation 12.3
generic_renaming_declaration 8.5.5
package_body 7.2
package_renaming_declaration 8.5.3
package_specification 7.1
procedure_specification 6.1
direct_name 4.1
accept_statement 9.5.2
at_clause J.7
local_name 13.1
name 4.1
statement_identifier 5.1
variant_part 3.8.1
accept_statement 9.5.2
at_clause J.7
local_name 13.1
name 4.1
statement_identifier 5.1
variant_part 3.8.1
discrete_choice_list 3.8.1
array_component_association 4.3.3
case_statement_alternative 5.4
variant 3.8.1
array_component_association 4.3.3
case_statement_alternative 5.4
variant 3.8.1
discrete_subtype_definition 3.6
constrained_array_definition 3.6
entry_declaration 9.5.2
entry_index_specification 9.5.2
loop_parameter_specification 5.5
constrained_array_definition 3.6
entry_declaration 9.5.2
entry_index_specification 9.5.2
loop_parameter_specification 5.5
discriminant_part 3.7
formal_type_declaration 12.5
incomplete_type_declaration 3.10.1
private_extension_declaration 7.3
private_type_declaration 7.3
formal_type_declaration 12.5
incomplete_type_declaration 3.10.1
private_extension_declaration 7.3
private_type_declaration 7.3
expression 4.4
ancestor_part 4.3.2
array_component_association 4.3.3
assignment_statement 5.2
at_clause J.7
attribute_definition_clause 13.3
attribute_designator 4.1.4
case_statement 5.4
condition 5.3
decimal_fixed_point_definition 3.5.9
default_expression 3.7
delay_relative_statement 9.6
delay_until_statement 9.6
delta_constraint J.3
digits_constraint 3.5.9
discrete_choice 3.8.1
discriminant_association 3.7.1
entry_index 9.5.2
explicit_actual_parameter 6.4
explicit_generic_actual_parameter 12.3
extended_return_statement 6.5
floating_point_definition 3.5.7
indexed_component 4.1.1
mod_clause J.8
modular_type_definition 3.5.4
number_declaration 3.3.2
object_declaration 3.3.1
ordinary_fixed_point_definition 3.5.9
position 13.5.1
positional_array_aggregate 4.3.3
pragma_argument_association 2.8
primary 4.4
qualified_expression 4.7
raise_statement 11.3
range_attribute_designator 4.1.4
record_component_association 4.3.1
restriction_parameter_argument 13.12
simple_return_statement 6.5
type_conversion 4.6
ancestor_part 4.3.2
array_component_association 4.3.3
assignment_statement 5.2
at_clause J.7
attribute_definition_clause 13.3
attribute_designator 4.1.4
case_statement 5.4
condition 5.3
decimal_fixed_point_definition 3.5.9
default_expression 3.7
delay_relative_statement 9.6
delay_until_statement 9.6
delta_constraint J.3
digits_constraint 3.5.9
discrete_choice 3.8.1
discriminant_association 3.7.1
entry_index 9.5.2
explicit_actual_parameter 6.4
explicit_generic_actual_parameter 12.3
extended_return_statement 6.5
floating_point_definition 3.5.7
indexed_component 4.1.1
mod_clause J.8
modular_type_definition 3.5.4
number_declaration 3.3.2
object_declaration 3.3.1
ordinary_fixed_point_definition 3.5.9
position 13.5.1
positional_array_aggregate 4.3.3
pragma_argument_association 2.8
primary 4.4
qualified_expression 4.7
raise_statement 11.3
range_attribute_designator 4.1.4
record_component_association 4.3.1
restriction_parameter_argument 13.12
simple_return_statement 6.5
type_conversion 4.6
generic_renaming_declaration 8.5.5
library_unit_renaming_declaration 10.1.1
renaming_declaration 8.5
library_unit_renaming_declaration 10.1.1
renaming_declaration 8.5
handled_sequence_of_statements 11.2
accept_statement 9.5.2
block_statement 5.6
entry_body 9.5.2
extended_return_statement 6.5
package_body 7.2
subprogram_body 6.3
task_body 9.1
accept_statement 9.5.2
block_statement 5.6
entry_body 9.5.2
extended_return_statement 6.5
package_body 7.2
subprogram_body 6.3
task_body 9.1
identifier 2.3
accept_statement 9.5.2
attribute_designator 4.1.4
block_statement 5.6
defining_identifier 3.1
designator 6.1
direct_name 4.1
entry_body 9.5.2
loop_statement 5.5
package_body 7.2
package_specification 7.1
pragma 2.8
pragma_argument_association 2.8
protected_body 9.4
protected_definition 9.4
restriction 13.12
selector_name 4.1.3
task_body 9.1
task_definition 9.1
accept_statement 9.5.2
attribute_designator 4.1.4
block_statement 5.6
defining_identifier 3.1
designator 6.1
direct_name 4.1
entry_body 9.5.2
loop_statement 5.5
package_body 7.2
package_specification 7.1
pragma 2.8
pragma_argument_association 2.8
protected_body 9.4
protected_definition 9.4
restriction 13.12
selector_name 4.1.3
task_body 9.1
task_definition 9.1
interface_list 3.9.4
derived_type_definition 3.4
formal_derived_type_definition 12.5.1
interface_type_definition 3.9.4
private_extension_declaration 7.3
protected_type_declaration 9.4
single_protected_declaration 9.4
single_task_declaration 9.1
task_type_declaration 9.1
derived_type_definition 3.4
formal_derived_type_definition 12.5.1
interface_type_definition 3.9.4
private_extension_declaration 7.3
protected_type_declaration 9.4
single_protected_declaration 9.4
single_task_declaration 9.1
task_type_declaration 9.1
known_discriminant_part 3.7
discriminant_part 3.7
full_type_declaration 3.2.1
protected_type_declaration 9.4
task_type_declaration 9.1
discriminant_part 3.7
full_type_declaration 3.2.1
protected_type_declaration 9.4
task_type_declaration 9.1
local_name 13.1
attribute_definition_clause 13.3
component_clause 13.5.1
enumeration_representation_clause 13.4
record_representation_clause 13.5.1
attribute_definition_clause 13.3
component_clause 13.5.1
enumeration_representation_clause 13.4
record_representation_clause 13.5.1
name 4.1
abort_statement 9.8
assignment_statement 5.2
attribute_definition_clause 13.3
default_name 12.6
entry_call_statement 9.5.3
exception_choice 11.2
exception_renaming_declaration 8.5.2
exit_statement 5.7
explicit_actual_parameter 6.4
explicit_dereference 4.1
explicit_generic_actual_parameter 12.3
formal_package_declaration 12.7
function_call 6.4
generic_instantiation 12.3
generic_renaming_declaration 8.5.5
goto_statement 5.8
implicit_dereference 4.1
limited_with_clause 10.1.2
local_name 13.1
nonlimited_with_clause 10.1.2
object_renaming_declaration 8.5.1
package_renaming_declaration 8.5.3
parent_unit_name 10.1.1
pragma_argument_association 2.8
prefix 4.1
primary 4.4
procedure_call_statement 6.4
raise_statement 11.3
requeue_statement 9.5.4
restriction_parameter_argument 13.12
subprogram_renaming_declaration 8.5.4
subtype_mark 3.2.2
type_conversion 4.6
use_package_clause 8.4
abort_statement 9.8
assignment_statement 5.2
attribute_definition_clause 13.3
default_name 12.6
entry_call_statement 9.5.3
exception_choice 11.2
exception_renaming_declaration 8.5.2
exit_statement 5.7
explicit_actual_parameter 6.4
explicit_dereference 4.1
explicit_generic_actual_parameter 12.3
formal_package_declaration 12.7
function_call 6.4
generic_instantiation 12.3
generic_renaming_declaration 8.5.5
goto_statement 5.8
implicit_dereference 4.1
limited_with_clause 10.1.2
local_name 13.1
nonlimited_with_clause 10.1.2
object_renaming_declaration 8.5.1
package_renaming_declaration 8.5.3
parent_unit_name 10.1.1
pragma_argument_association 2.8
prefix 4.1
primary 4.4
procedure_call_statement 6.4
raise_statement 11.3
requeue_statement 9.5.4
restriction_parameter_argument 13.12
subprogram_renaming_declaration 8.5.4
subtype_mark 3.2.2
type_conversion 4.6
use_package_clause 8.4
null_exclusion 3.10
access_definition 3.10
access_type_definition 3.10
discriminant_specification 3.7
formal_object_declaration 12.4
object_renaming_declaration 8.5.1
parameter_and_result_profile 6.1
parameter_specification 6.1
subtype_indication 3.2.2
access_definition 3.10
access_type_definition 3.10
discriminant_specification 3.7
formal_object_declaration 12.4
object_renaming_declaration 8.5.1
parameter_and_result_profile 6.1
parameter_specification 6.1
subtype_indication 3.2.2
overriding_indicator 8.3.1
abstract_subprogram_declaration 3.9.3
entry_declaration 9.5.2
generic_instantiation 12.3
null_procedure_declaration 6.7
subprogram_body 6.3
subprogram_body_stub 10.1.3
subprogram_declaration 6.1
subprogram_renaming_declaration 8.5.4
abstract_subprogram_declaration 3.9.3
entry_declaration 9.5.2
generic_instantiation 12.3
null_procedure_declaration 6.7
subprogram_body 6.3
subprogram_body_stub 10.1.3
subprogram_declaration 6.1
subprogram_renaming_declaration 8.5.4
package_renaming_declaration 8.5.3
library_unit_renaming_declaration 10.1.1
renaming_declaration 8.5
library_unit_renaming_declaration 10.1.1
renaming_declaration 8.5
parameter_and_result_profile 6.1
access_definition 3.10
access_to_subprogram_definition 3.10
function_specification 6.1
access_definition 3.10
access_to_subprogram_definition 3.10
function_specification 6.1
parameter_profile 6.1
accept_statement 9.5.2
access_definition 3.10
access_to_subprogram_definition 3.10
entry_body_formal_part 9.5.2
entry_declaration 9.5.2
procedure_specification 6.1
accept_statement 9.5.2
access_definition 3.10
access_to_subprogram_definition 3.10
entry_body_formal_part 9.5.2
entry_declaration 9.5.2
procedure_specification 6.1
parent_unit_name 10.1.1
defining_program_unit_name 6.1
designator 6.1
package_body 7.2
package_specification 7.1
subunit 10.1.3
defining_program_unit_name 6.1
designator 6.1
package_body 7.2
package_specification 7.1
subunit 10.1.3
prefix 4.1
attribute_reference 4.1.4
function_call 6.4
indexed_component 4.1.1
procedure_call_statement 6.4
range_attribute_reference 4.1.4
selected_component 4.1.3
slice 4.1.2
attribute_reference 4.1.4
function_call 6.4
indexed_component 4.1.1
procedure_call_statement 6.4
range_attribute_reference 4.1.4
selected_component 4.1.3
slice 4.1.2
real_range_specification 3.5.7
decimal_fixed_point_definition 3.5.9
floating_point_definition 3.5.7
ordinary_fixed_point_definition 3.5.9
decimal_fixed_point_definition 3.5.9
floating_point_definition 3.5.7
ordinary_fixed_point_definition 3.5.9
selector_name 4.1.3
component_choice_list 4.3.1
discriminant_association 3.7.1
formal_package_association 12.7
generic_association 12.3
parameter_association 6.4
selected_component 4.1.3
component_choice_list 4.3.1
discriminant_association 3.7.1
formal_package_association 12.7
generic_association 12.3
parameter_association 6.4
selected_component 4.1.3
sequence_of_statements 5.1
abortable_part 9.7.4
accept_alternative 9.7.1
case_statement_alternative 5.4
conditional_entry_call 9.7.3
delay_alternative 9.7.1
entry_call_alternative 9.7.2
exception_handler 11.2
handled_sequence_of_statements 11.2
if_statement 5.3
loop_statement 5.5
selective_accept 9.7.1
triggering_alternative 9.7.4
abortable_part 9.7.4
accept_alternative 9.7.1
case_statement_alternative 5.4
conditional_entry_call 9.7.3
delay_alternative 9.7.1
entry_call_alternative 9.7.2
exception_handler 11.2
handled_sequence_of_statements 11.2
if_statement 5.3
loop_statement 5.5
selective_accept 9.7.1
triggering_alternative 9.7.4
simple_expression 4.4
first_bit 13.5.1
last_bit 13.5.1
range 3.5
real_range_specification 3.5.7
relation 4.4
signed_integer_type_definition 3.5.4
first_bit 13.5.1
last_bit 13.5.1
range 3.5
real_range_specification 3.5.7
relation 4.4
signed_integer_type_definition 3.5.4
subprogram_declaration 6.1
basic_declaration 3.1
library_unit_declaration 10.1.1
protected_operation_declaration 9.4
protected_operation_item 9.4
basic_declaration 3.1
library_unit_declaration 10.1.1
protected_operation_declaration 9.4
protected_operation_item 9.4
subprogram_default 12.6
formal_abstract_subprogram_declaration 12.6
formal_concrete_subprogram_declaration 12.6
formal_abstract_subprogram_declaration 12.6
formal_concrete_subprogram_declaration 12.6
subprogram_renaming_declaration 8.5.4
library_unit_renaming_declaration 10.1.1
renaming_declaration 8.5
library_unit_renaming_declaration 10.1.1
renaming_declaration 8.5
subprogram_specification 6.1
abstract_subprogram_declaration 3.9.3
formal_abstract_subprogram_declaration 12.6
formal_concrete_subprogram_declaration 12.6
generic_subprogram_declaration 12.1
subprogram_body 6.3
subprogram_body_stub 10.1.3
subprogram_declaration 6.1
subprogram_renaming_declaration 8.5.4
abstract_subprogram_declaration 3.9.3
formal_abstract_subprogram_declaration 12.6
formal_concrete_subprogram_declaration 12.6
generic_subprogram_declaration 12.1
subprogram_body 6.3
subprogram_body_stub 10.1.3
subprogram_declaration 6.1
subprogram_renaming_declaration 8.5.4
subtype_indication 3.2.2
access_to_object_definition 3.10
allocator 4.8
component_definition 3.6
derived_type_definition 3.4
discrete_range 3.6.1
discrete_subtype_definition 3.6
object_declaration 3.3.1
private_extension_declaration 7.3
return_subtype_indication 6.5
subtype_declaration 3.2.2
access_to_object_definition 3.10
allocator 4.8
component_definition 3.6
derived_type_definition 3.4
discrete_range 3.6.1
discrete_subtype_definition 3.6
object_declaration 3.3.1
private_extension_declaration 7.3
return_subtype_indication 6.5
subtype_declaration 3.2.2
subtype_mark 3.2.2
access_definition 3.10
ancestor_part 4.3.2
discriminant_specification 3.7
explicit_generic_actual_parameter 12.3
formal_derived_type_definition 12.5.1
formal_object_declaration 12.4
index_subtype_definition 3.6
interface_list 3.9.4
object_renaming_declaration 8.5.1
parameter_and_result_profile 6.1
parameter_specification 6.1
qualified_expression 4.7
relation 4.4
subtype_indication 3.2.2
type_conversion 4.6
use_type_clause 8.4
access_definition 3.10
ancestor_part 4.3.2
discriminant_specification 3.7
explicit_generic_actual_parameter 12.3
formal_derived_type_definition 12.5.1
formal_object_declaration 12.4
index_subtype_definition 3.6
interface_list 3.9.4
object_renaming_declaration 8.5.1
parameter_and_result_profile 6.1
parameter_specification 6.1
qualified_expression 4.7
relation 4.4
subtype_indication 3.2.2
type_conversion 4.6
use_type_clause 8.4