aggregate
record_aggregate
|
extension_aggregate
|
array_aggregate
allocator
new
name
|
new
subtype_indication
|
new
qualified_expression
ancestor_part
expression
|
subtype_mark
asynchronous_select
select
{
pragma
}
select_alternative
then
abort
abortable_part
end
select
;
|
select
triggering_alternative
then
abort
abortable_part
end
select
;
attribute_definition_clause
for
local_name
use
[
at
]
expression
;
|
for
local_name
'
attribute_designator
use
expression
;
|
for
local_name
'
attribute_designator
use
name
;
attribute_designator
identifier
|
identifier
[
(
static_
expression
)
]
|
access
|
delta
|
digits
case_statement
case
expression
is
{
pragma
}
case_statement_alternative
{
case_statement_alternative
}
end
case
;
|
case
expression
is
case_statement_alternative
{
case_statement_alternative
}
end
case
;
compilation_unit
context_clause
library_item
|
context_clause
subunit
|
pragma
|
library_item
|
subunit
component_clause
component_
local_name
at
position
range
first_bit
..
last_bit
;
|
pragma
|
mod_clause
component_list
{
component_item
} [
variant_part_pragma_list
]
|
component_item
{
component_item
}
| {
component_item
}
variant_part
|
null
;
{
pragma
}
|
null
;
compound_name
identifier
{
.
identifier
}
context_clause
{
context_item
}
|
context_item
{
context_item_or_pragma
}
context_item_or_pragma
context_item
|
pragma
defining_operator_symbol
string_literal
|
operator_symbol
defining_program_unit_name
compound_name
| [
parent_unit_name
.
]
defining_identifier
designator
compound_name
| [
parent_unit_name
.
]
identifier
|
operator_symbol
discrete_range
name
range_constraint
|
discrete_
subtype_indication
|
range_attribute_reference
|
simple_expression
..
simple_expression
|
range
discrete_subtype_definition
discrete_
subtype_indication
|
range_attribute_reference
|
simple_expression
..
simple_expression
|
range
entry_call_statement
entry_
name
;
|
entry_
name
[
actual_parameter_part
]
;
exception_renaming_declaration
defining_identifier_list
:
exception
renames
exception_
name
;
|
defining_identifier
:
exception
renames
exception_
name
;
explicit_dereference
prefix
.
all
|
name
.
all
explicit_generic_actual_parameter
expression
|
variable_
name
|
subprogram_
name
|
entry_
name
|
subtype_mark
|
package_instance_
name
expression
relation
|
relation
and
relation
{
and
relation
}
|
relation
and
then
relation
{
and
then
relation
}
|
relation
or
relation
{
or
relation
}
|
relation
or
else
relation
{
or
else
relation
}
|
relation
xor
relation
{
xor
relation
}
formal_package_declaration
with
package
defining_identifier
is
new
generic_package_
compound_name
formal_package_actual_part
;
|
with
package
defining_identifier
is
new
generic_package_
name
formal_package_actual_part
;
full_type_declaration
type
defining_identifier
[
discriminant_part
]
is
type_definition
;
|
type
defining_identifier
[
known_discriminant_part
]
is
type_definition
;
|
task_type_declaration
|
protected_type_declaration
function_call
function_
name
|
function_
prefix
record_aggregate
|
function_
prefix
actual_parameter_part
generic_formal_part_item
generic_formal_parameter_declaration
|
use_clause
|
pragma
generic_instantiation
package
defining_program_unit_name
is
new
generic_package_
compound_name
[
generic_actual_part
]
;
|
package
defining_program_unit_name
is
new
generic_package_
name
[
generic_actual_part
]
;
|
subprogram_specification
is
new
compound_name
[
generic_actual_part
]
;
|
procedure
defining_program_unit_name
is
new
generic_procedure_
name
[
generic_actual_part
]
;
|
function
defining_designator
is
new
generic_function_
name
[
generic_actual_part
]
;
generic_renaming_declaration
generic_formal_part
package
defining_program_unit_name
renames
generic_package_
name
;
|
generic
package
defining_program_unit_name
renames
generic_package_
name
;
|
generic_formal_part
subprogram_specification
renames
name
;
|
generic
procedure
defining_program_unit_name
renames
generic_procedure_
name
;
|
generic
function
defining_program_unit_name
renames
generic_function_
name
;
handled_sequence_of_statements
sequence_of_statements
[
exception
{
pragma
}
exception_handler
{
exception_handler
} ]
local_name
compound_name
|
direct_name
'
attribute_designator
|
local_name
'
attribute_designator
|
library_unit_
name
name
direct_name
|
explicit_dereference
|
indexed_component
|
slice
|
selected_component
|
attribute_reference
|
type_conversion
|
function_call
|
character_literal
object_renaming_declaration
defining_identifier_list
:
subtype_mark
renames
object_
name
;
|
defining_identifier
:
subtype_mark
renames
object_
name
;
package_body
package
body
defining_program_unit_name
is
declarative_part
[
begin
handled_sequence_of_statements
]
end
[
compound_name
]
;
|
package
body
defining_program_unit_name
is
declarative_part
[
begin
handled_sequence_of_statements
]
end
[ [
parent_unit_name
.
]
identifier
]
;
package_body_stub
package
body
defining_program_unit_name
is
separate
;
|
package
body
defining_identifier
is
separate
;
package_specification
package
defining_program_unit_name
is
{
basic_declarative_item
} [
private
{
basic_declarative_item
} ]
end
[
compound_name
]
|
package
defining_program_unit_name
is
{
basic_declarative_item
} [
private
{
basic_declarative_item
} ]
end
[ [
parent_unit_name
.
]
identifier
]
pragma_argument_association
[
pragma_argument_
identifier
=>
]
name
| [
pragma_argument_
identifier
=>
]
expression
prefix
name
|
implicit_dereference
primary
integer_literal
|
real_literal
|
numeric_literal
|
null
|
string_literal
|
aggregate
|
name
|
qualified_expression
|
allocator
|
(
expression
)
qualified_expression
prefix
'
aggregate
|
subtype_mark
'
(
expression
)
|
subtype_mark
'
aggregate
record_component_association
[
discrete_choice_list
=>
]
expression
|
discrete_range
| [
component_choice_list
=>
]
expression
record_representation_clause
for
first_subtype_
local_name
use
record
[
mod_clause
] {
component_clause
}
end
record
;
|
for
first_subtype_
local_name
use
record
{
component_clause
}
end
record
;
relation
simple_expression
[
relational_operator
simple_expression
]
|
simple_expression
[
not
]
in
range
|
simple_expression
[
not
]
in
subtype_mark
|
simple_expression
[
not
]
in
simple_expression
representation_clause
attribute_definition_clause
|
enumeration_representation_clause
|
record_representation_clause
|
at_clause
|
pragma
select_alternative
accept_alternative
|
delay_alternative
|
terminate_alternative
|
entry_call_alternative
select_statement
selective_accept
|
timed_entry_call
|
conditional_entry_call
|
asynchronous_select
selective_accept
select
[
guard
]
select_alternative
{
or
[
guard
]
select_alternative
} [
else
sequence_of_statements
]
end
select
;
|
select
[
guard
] {
pragma
}
select_alternative
{
or
[
guard
] {
pragma
}
select_alternative
} [
else
sequence_of_statements
]
end
select
;
signed_integer_type_definition
range_constraint
|
range
static_
simple_expression
..
static_
simple_expression
simple_statement
null_statement
|
assignment_statement
|
exit_statement
|
goto_statement
|
procedure_call_statement
|
return_statement
|
entry_call_statement
|
requeue_statement
|
delay_statement
|
abort_statement
|
raise_statement
|
code_statement
|
pragma
statement_identifier
defining_identifier
|
direct_name
subprogram_specification
procedure
defining_program_unit_name
parameter_profile
|
function
defining_designator
parameter_and_result_profile
|
function
defining_designator
subtype_indication
subtype_mark
[
scalar_constraint
]
|
subtype_mark
[
constraint
]
subunit
separate
(
compound_name
)
proper_body
|
separate
(
parent_unit_name
)
proper_body
terminate_alternative
terminate
;
|
terminate
;
{
pragma
}
variant_part
case
discriminant_
direct_name
is
variant
{
variant
}
end
case
;
|
case
discriminant_
direct_name
is
{
pragma
}
variant
{
variant
}
end
case
;
variant_part_pragma_list
variant_part
{
pragma
}