Ada Reference ManualLegal Information
Contents   Index   References   Search   Previous   Next 

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 ::= 
   identifier_start {identifier_start | identifier_extend}
2.3:
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
2.4:
numeric_literal ::= decimal_literal | based_literal
2.4.1:
decimal_literal ::= numeral [.numeral] [exponent]
2.4.1:
numeral ::= digit {[underlinedigit}
2.4.1:
exponent ::= E [+] numeral | E – numeral
2.4.1:
digit ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
2.4.2:
based_literal ::= 
   base # based_numeral [.based_numeral] # [exponent]
2.4.2:
base ::= numeral
2.4.2:
based_numeral ::= 
   extended_digit {[underlineextended_digit}
2.4.2:
extended_digit ::= digit | A | B | C | D | E | F
2.5:
character_literal ::= 'graphic_character'
2.6:
string_literal ::= "{string_element}"
2.6:
string_element ::= "" | non_quotation_mark_graphic_character
2.7:
comment ::= --{non_end_of_line_character}
2.8:
pragma ::= 
   pragma identifier [(pragma_argument_association {, pragma_argument_association})];
2.8:
pragma_argument_association ::= 
     [pragma_argument_identifier =>] name
   | [pragma_argument_identifier =>] expression
   | pragma_argument_aspect_mark =>  name
   | pragma_argument_aspect_mark =>  expression
3.1:
basic_declaration ::= 
     type_declaration | subtype_declaration
   | object_declaration | number_declaration
   | subprogram_declaration | abstract_subprogram_declaration
   | null_procedure_declaration | expression_function_declaration
   | package_declaration | renaming_declaration
   | exception_declaration | generic_declaration
   | generic_instantiation
3.1:
defining_identifier ::= identifier
3.2.1:
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_partis type_definition
        [aspect_specification];
   | 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
3.2.2:
subtype_declaration ::= 
   subtype defining_identifier is subtype_indication
        [aspect_specification];
3.2.2:
subtype_indication ::=  [null_exclusionsubtype_mark [constraint]
3.2.2:
subtype_mark ::= subtype_name
3.2.2:
constraint ::= scalar_constraint | composite_constraint
3.2.2:
scalar_constraint ::= 
     range_constraint | digits_constraint | delta_constraint
3.2.2:
composite_constraint ::= 
     index_constraint | discriminant_constraint
3.3.1:
object_declaration ::= 
    defining_identifier_list : [aliased] [constantsubtype_indication [:= expression]
        [aspect_specification];
  | defining_identifier_list : [aliased] [constantaccess_definition [:= expression]
        [aspect_specification];
  | defining_identifier_list : [aliased] [constantarray_type_definition [:= expression]
        [aspect_specification];
  | single_task_declaration
  | single_protected_declaration
3.3.1:
defining_identifier_list ::= 
  defining_identifier {, defining_identifier}
3.3.2:
number_declaration ::= 
     defining_identifier_list : constant := static_expression;
3.4:
derived_type_definition ::= 
    [abstract] [limitednew parent_subtype_indication [[and interface_listrecord_extension_part]
3.5:
range_constraint ::=  range range
3.5:
range ::=  range_attribute_reference
   | simple_expression .. simple_expression
3.5.1:
enumeration_type_definition ::= 
   (enumeration_literal_specification {, enumeration_literal_specification})
3.5.1:
enumeration_literal_specification ::=  defining_identifier | defining_character_literal
3.5.1:
defining_character_literal ::= character_literal
3.5.4:
integer_type_definition ::= signed_integer_type_definition | modular_type_definition
3.5.4:
signed_integer_type_definition ::= range static_simple_expression .. static_simple_expression
3.5.4:
modular_type_definition ::= mod static_expression
3.5.6:
real_type_definition ::= 
   floating_point_definition | fixed_point_definition
3.5.7:
floating_point_definition ::= 
  digits static_expression [real_range_specification]
3.5.7:
real_range_specification ::= 
  range static_simple_expression .. static_simple_expression
3.5.9:
fixed_point_definition ::= ordinary_fixed_point_definition | decimal_fixed_point_definition
3.5.9:
ordinary_fixed_point_definition ::= 
   delta static_expression  real_range_specification
3.5.9:
decimal_fixed_point_definition ::= 
   delta static_expression digits static_expression [real_range_specification]
3.5.9:
digits_constraint ::= 
   digits static_simple_expression [range_constraint]
3.6:
array_type_definition ::= 
   unconstrained_array_definition | constrained_array_definition
3.6:
unconstrained_array_definition ::= 
   array(index_subtype_definition {, index_subtype_definition}) of component_definition
3.6:
index_subtype_definition ::= subtype_mark range <>
3.6:
constrained_array_definition ::= 
   array (discrete_subtype_definition {, discrete_subtype_definition}) of component_definition
3.6:
discrete_subtype_definition ::= discrete_subtype_indication | range
3.6:
component_definition ::= 
   [aliasedsubtype_indication
 | [aliasedaccess_definition
3.6.1:
index_constraint ::=  (discrete_range {, discrete_range})
3.6.1:
discrete_range ::= discrete_subtype_indication | range
3.7:
discriminant_part ::= unknown_discriminant_part | known_discriminant_part
3.7:
unknown_discriminant_part ::= (<>)
3.7:
known_discriminant_part ::= 
   (discriminant_specification {; discriminant_specification})
3.7:
discriminant_specification ::= 
   defining_identifier_list : [null_exclusionsubtype_mark [:= default_expression]
 | defining_identifier_list : access_definition [:= default_expression]
3.7:
default_expression ::= expression
3.7.1:
discriminant_constraint ::= 
   (discriminant_association {, discriminant_association})
3.7.1:
discriminant_association ::= 
   [discriminant_selector_name {| discriminant_selector_name} =>] expression
3.8:
record_type_definition ::= [[abstracttagged] [limitedrecord_definition
3.8:
record_definition ::= 
    record
       component_list
    end record
  | null record
3.8:
component_list ::= 
      component_item {component_item}
   | {component_itemvariant_part
   |  null;
3.8:
component_item ::= component_declaration | aspect_clause
3.8:
component_declaration ::= 
   defining_identifier_list : component_definition [:= default_expression]
        [aspect_specification];
3.8.1:
variant_part ::= 
   case discriminant_direct_name is
       variant
      {variant}
   end case;
3.8.1:
variant ::= 
   when discrete_choice_list =>
      component_list
3.8.1:
discrete_choice_list ::= discrete_choice {| discrete_choice}
3.8.1:
discrete_choice ::= choice_expression | discrete_subtype_indication | range | others
3.9.1:
record_extension_part ::= with record_definition
3.9.3:
abstract_subprogram_declaration ::= 
    [overriding_indicator]
    subprogram_specification is abstract
        [aspect_specification];
3.9.4:
interface_type_definition ::= 
    [limited | task | protected | synchronizedinterface [and interface_list]
3.9.4:
interface_list ::= interface_subtype_mark {and interface_subtype_mark}
3.10:
access_type_definition ::= 
    [null_exclusionaccess_to_object_definition
  | [null_exclusionaccess_to_subprogram_definition
3.10:
access_to_object_definition ::= 
    access [general_access_modifiersubtype_indication
3.10:
general_access_modifier ::= all | constant
3.10:
access_to_subprogram_definition ::= 
    access [protectedprocedure parameter_profile
  | access [protectedfunction  parameter_and_result_profile
3.10:
null_exclusion ::= not null
3.10:
access_definition ::= 
    [null_exclusionaccess [constantsubtype_mark
  | [null_exclusionaccess [protectedprocedure parameter_profile
  | [null_exclusionaccess [protectedfunction parameter_and_result_profile
3.10.1:
incomplete_type_declaration ::= type defining_identifier [discriminant_part] [is tagged];
3.11:
declarative_part ::= {declarative_item}
3.11:
declarative_item ::= 
    basic_declarative_item | body
3.11:
basic_declarative_item ::= 
    basic_declaration | aspect_clause | use_clause
3.11:
body ::= proper_body | body_stub
3.11:
proper_body ::= 
    subprogram_body | package_body | task_body | protected_body
4.1:
name ::= 
     direct_name | explicit_dereference
   | indexed_component | slice
   | selected_component | attribute_reference
   | type_conversion | function_call
   | character_literal | qualified_expression
   | generalized_reference | generalized_indexing
4.1:
direct_name ::= identifier | operator_symbol
4.1:
prefix ::= name | implicit_dereference
4.1:
explicit_dereference ::= name.all
4.1:
implicit_dereference ::= name
4.1.1:
indexed_component ::= prefix(expression {, expression})
4.1.2:
slice ::= prefix(discrete_range)
4.1.3:
selected_component ::= prefix . selector_name
4.1.3:
selector_name ::= identifier | character_literal | operator_symbol
4.1.4:
attribute_reference ::= prefix'attribute_designator
4.1.4:
attribute_designator ::= 
    identifier[(static_expression)]
  | Access | Delta | Digits | Mod
4.1.4:
range_attribute_reference ::= prefix'range_attribute_designator
4.1.4:
range_attribute_designator ::= Range[(static_expression)]
4.1.5:
generalized_reference ::= reference_object_name
4.1.6:
generalized_indexing ::= indexable_container_object_prefix actual_parameter_part
4.3:
aggregate ::= record_aggregate | extension_aggregate | array_aggregate
4.3.1:
record_aggregate ::= (record_component_association_list)
4.3.1:
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 => <>
4.3.1:
component_choice_list ::= 
     component_selector_name {| component_selector_name}
   | others
4.3.2:
extension_aggregate ::= 
    (ancestor_part with record_component_association_list)
4.3.2:
ancestor_part ::= expression | subtype_mark
4.3.3:
array_aggregate ::= 
  positional_array_aggregate | named_array_aggregate
4.3.3:
positional_array_aggregate ::= 
    (expressionexpression {, expression})
  | (expression {, expression}, others => expression)
  | (expression {, expression}, others => <>)
4.3.3:
named_array_aggregate ::= 
    (array_component_association {, array_component_association})
4.3.3:
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}
4.4:
choice_expression ::= 
     choice_relation {and choice_relation}
   | choice_relation {or choice_relation}
   | choice_relation {xor choice_relation}
   | choice_relation {and then choice_relation}
   | choice_relation {or else choice_relation}
4.4:
choice_relation ::= 
     simple_expression [relational_operator simple_expression]
4.4:
relation ::= 
     simple_expression [relational_operator simple_expression]
   | tested_simple_expression [notin membership_choice_list
   | raise_expression
4.4:
membership_choice_list ::= membership_choice {| membership_choice}
4.4:
membership_choice ::= choice_simple_expression | range | subtype_mark
4.4:
simple_expression ::= [unary_adding_operatorterm {binary_adding_operator term}
4.4:
term ::= factor {multiplying_operator factor}
4.4:
factor ::= primary [** primary] | abs primary | not primary
4.4:
primary ::= 
   numeric_literal | null | string_literal | aggregate
 | name | allocator | (expression)
 | (conditional_expression) | (quantified_expression)
4.5:
logical_operator ::=   and | or  | xor
4.5:
relational_operator ::=   =   | /=  | <   | <= | > | >=
4.5:
binary_adding_operator ::=   +   | –   | &
4.5:
unary_adding_operator ::=   +   | –
4.5:
multiplying_operator ::=   *   | /   | mod | rem
4.5:
highest_precedence_operator ::=   **  | abs | not
4.5.7:
conditional_expression ::= if_expression | case_expression
4.5.7:
if_expression ::= 
   if condition then dependent_expression
   {elsif condition then dependent_expression}
   [else dependent_expression]
4.5.7:
condition ::= boolean_expression
4.5.7:
case_expression ::= 
    case selecting_expression is
    case_expression_alternative {,
    case_expression_alternative}
4.5.7:
case_expression_alternative ::= 
    when discrete_choice_list =>
        dependent_expression
4.5.8:
quantified_expression ::= for quantifier loop_parameter_specification => predicate
  | for quantifier iterator_specification => predicate
4.5.8:
quantifier ::= all | some
4.5.8:
predicate ::= boolean_expression
4.6:
type_conversion ::= 
    subtype_mark(expression)
  | subtype_mark(name)
4.7:
qualified_expression ::= 
   subtype_mark'(expression) | subtype_mark'aggregate
4.8:
allocator ::= 
   new [subpool_specificationsubtype_indication
 | new [subpool_specificationqualified_expression
4.8:
subpool_specification ::= (subpool_handle_name)
5.1:
sequence_of_statements ::= statement {statement} {label}
5.1:
statement ::= 
   {labelsimple_statement | {labelcompound_statement
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
5.1:
compound_statement ::= 
     if_statement | case_statement
   | loop_statement | block_statement
   | extended_return_statement
   | accept_statement | select_statement
5.1:
null_statement ::= null;
5.1:
label ::= <<label_statement_identifier>>
5.1:
statement_identifier ::= direct_name
5.2:
assignment_statement ::= 
   variable_name := expression;
5.3:
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 selecting_expression is
       case_statement_alternative
      {case_statement_alternative}
   end case;
5.4:
case_statement_alternative ::= 
   when discrete_choice_list =>
      sequence_of_statements
5.5:
loop_statement ::= 
   [loop_statement_identifier:]
      [iteration_schemeloop
         sequence_of_statements
       end loop [loop_identifier];
5.5:
iteration_scheme ::= while condition
   | for loop_parameter_specification
   | for iterator_specification
5.5:
loop_parameter_specification ::= 
   defining_identifier in [reversediscrete_subtype_definition
5.5.2:
iterator_specification ::= 
    defining_identifier in [reverseiterator_name
  | defining_identifier [: subtype_indicationof [reverseiterable_name
5.6:
block_statement ::= 
   [block_statement_identifier:]
       [declare
            declarative_part]
        begin
            handled_sequence_of_statements
        end [block_identifier];
5.7:
exit_statement ::= 
   exit [loop_name] [when condition];
5.8:
goto_statement ::= goto label_name;
6.1:
subprogram_declaration ::= 
    [overriding_indicator]
    subprogram_specification
        [aspect_specification];
6.1:
subprogram_specification ::= 
    procedure_specification
  | function_specification
6.1:
procedure_specification ::= procedure defining_program_unit_name parameter_profile
6.1:
function_specification ::= function defining_designator parameter_and_result_profile
6.1:
designator ::= [parent_unit_name . ]identifier | operator_symbol
6.1:
defining_designator ::= defining_program_unit_name | defining_operator_symbol
6.1:
defining_program_unit_name ::= [parent_unit_name . ]defining_identifier
6.1:
operator_symbol ::= string_literal
6.1:
defining_operator_symbol ::= operator_symbol
6.1:
parameter_profile ::= [formal_part]
6.1:
parameter_and_result_profile ::= 
    [formal_partreturn [null_exclusionsubtype_mark
  | [formal_partreturn access_definition
6.1:
formal_part ::= 
   (parameter_specification {; parameter_specification})
6.1:
parameter_specification ::= 
    defining_identifier_list : [aliasedmode [null_exclusionsubtype_mark [:= default_expression]
  | defining_identifier_list : access_definition [:= default_expression]
6.1:
mode ::= [in] | in out | out
6.3:
subprogram_body ::= 
    [overriding_indicator]
    subprogram_specification
       [aspect_specificationis
       declarative_part
    begin
        handled_sequence_of_statements
    end [designator];
6.4:
procedure_call_statement ::= 
    procedure_name;
  | procedure_prefix actual_parameter_part;
6.4:
function_call ::= 
    function_name
  | function_prefix actual_parameter_part
6.4:
actual_parameter_part ::= 
    (parameter_association {, parameter_association})
6.4:
parameter_association ::= 
   [formal_parameter_selector_name =>] explicit_actual_parameter
6.4:
explicit_actual_parameter ::= expression | variable_name
6.5:
simple_return_statement ::= return [expression];
6.5:
extended_return_object_declaration ::= 
    defining_identifier : [aliased][constantreturn_subtype_indication [:= expression]
6.5:
extended_return_statement ::= 
    return extended_return_object_declaration [do
        handled_sequence_of_statements
    end return];
6.5:
return_subtype_indication ::= subtype_indication | access_definition
6.7:
null_procedure_declaration ::= 
   [overriding_indicator]
   procedure_specification is null
       [aspect_specification];
6.8:
expression_function_declaration ::= 
   [overriding_indicator]
   function_specification is
       (expression)
       [aspect_specification];
 | [overriding_indicator]
   function_specification is
       aggregate
       [aspect_specification];
7.1:
package_declaration ::= package_specification;
7.1:
package_specification ::= 
    package defining_program_unit_name
        [aspect_specificationis
      {basic_declarative_item}
   [private
      {basic_declarative_item}]
    end [[parent_unit_name.]identifier]
7.2:
package_body ::= 
    package body defining_program_unit_name
        [aspect_specificationis
       declarative_part
   [begin
        handled_sequence_of_statements]
    end [[parent_unit_name.]identifier];
7.3:
private_type_declaration ::= 
   type defining_identifier [discriminant_partis [[abstracttagged] [limitedprivate
      [aspect_specification];
7.3:
private_extension_declaration ::= 
   type defining_identifier [discriminant_partis
     [abstract] [limited | synchronizednew ancestor_subtype_indication
     [and interface_listwith private
       [aspect_specification];
8.3.1:
overriding_indicator ::= [notoverriding
8.4:
use_clause ::= use_package_clause | use_type_clause
8.4:
use_package_clause ::= use package_name {, package_name};
8.4:
use_type_clause ::= use [alltype subtype_mark {, subtype_mark};
8.5:
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_exclusionsubtype_mark renames object_name
        [aspect_specification];
  | defining_identifier : access_definition renames object_name
        [aspect_specification];
8.5.2:
exception_renaming_declaration ::= defining_identifier : exception renames exception_name
   [aspect_specification];
8.5.3:
package_renaming_declaration ::= package defining_program_unit_name renames package_name
   [aspect_specification];
8.5.4:
subprogram_renaming_declaration ::= 
    [overriding_indicator]
    subprogram_specification renames callable_entity_name
        [aspect_specification];
8.5.5:
generic_renaming_declaration ::= 
    generic package defining_program_unit_name renames generic_package_name
        [aspect_specification];
  | generic procedure defining_program_unit_name renames generic_procedure_name
        [aspect_specification];
  | generic function defining_program_unit_name renames generic_function_name
        [aspect_specification];
9.1:
task_type_declaration ::= 
   task type defining_identifier [known_discriminant_part]
        [aspect_specification] [is
     [new interface_list with]
     task_definition];
9.1:
single_task_declaration ::= 
   task defining_identifier 
        [aspect_specification][is
     [new interface_list with]
     task_definition];
9.1:
task_definition ::= 
     {task_item}
  [ private
     {task_item}]
  end [task_identifier]
9.1:
task_item ::= entry_declaration | aspect_clause
9.1:
task_body ::= 
   task body defining_identifier
        [aspect_specificationis
     declarative_part
   begin
     handled_sequence_of_statements
   end [task_identifier];
9.4:
protected_type_declaration ::= 
  protected type defining_identifier [known_discriminant_part]
        [aspect_specificationis
     [new interface_list with]
     protected_definition;
9.4:
single_protected_declaration ::= 
  protected defining_identifier
        [aspect_specificationis
     [new interface_list with]
     protected_definition;
9.4:
protected_definition ::= 
    { protected_operation_declaration }
private
    { protected_element_declaration } ]
  end [protected_identifier]
9.4:
protected_operation_declaration ::= subprogram_declaration
     | entry_declaration
     | aspect_clause
9.4:
protected_element_declaration ::= protected_operation_declaration
     | component_declaration
9.4:
protected_body ::= 
  protected body defining_identifier
        [aspect_specificationis
   { protected_operation_item }
  end [protected_identifier];
9.4:
protected_operation_item ::= subprogram_declaration
     | subprogram_body
     | null_procedure_declaration
     | expression_function_declaration
     | entry_body
     | aspect_clause
9.5:
synchronization_kind ::= By_Entry | By_Protected_Procedure | Optional
9.5.2:
entry_declaration ::= 
   [overriding_indicator]
   entry defining_identifier [(discrete_subtype_definition)] parameter_profile
      [aspect_specification];
9.5.2:
accept_statement ::= 
   accept entry_direct_name [(entry_index)] parameter_profile [do
     handled_sequence_of_statements
   end [entry_identifier]];
9.5.2:
entry_index ::= expression
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];
9.5.2:
entry_body_formal_part ::= [(entry_index_specification)] parameter_profile
9.5.2:
entry_barrier ::= when condition
9.5.2:
entry_index_specification ::= for defining_identifier in discrete_subtype_definition
9.5.3:
entry_call_statement ::= entry_name [actual_parameter_part];
9.5.4:
requeue_statement ::= requeue procedure_or_entry_name [with abort];
9.6:
delay_statement ::= delay_until_statement | delay_relative_statement
9.6:
delay_until_statement ::= delay until delay_expression;
9.6:
delay_relative_statement ::= delay delay_expression;
9.7:
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;
9.7.1:
guard ::= when condition =>
9.7.1:
select_alternative ::= 
   accept_alternative
  | delay_alternative
  | terminate_alternative
9.7.1:
accept_alternative ::= 
  accept_statement [sequence_of_statements]
9.7.1:
delay_alternative ::= 
  delay_statement [sequence_of_statements]
9.7.1:
terminate_alternative ::= terminate;
9.7.2:
timed_entry_call ::= 
  select
   entry_call_alternative
  or
   delay_alternative
  end select;
9.7.2:
entry_call_alternative ::= 
  procedure_or_entry_call [sequence_of_statements]
9.7.2:
procedure_or_entry_call ::= 
  procedure_call_statement | entry_call_statement
9.7.3:
conditional_entry_call ::= 
  select
   entry_call_alternative
  else
   sequence_of_statements
  end select;
9.7.4:
asynchronous_select ::= 
  select
   triggering_alternative
  then abort
   abortable_part
  end select;
9.7.4:
triggering_alternative ::= triggering_statement [sequence_of_statements]
9.7.4:
triggering_statement ::= procedure_or_entry_call | delay_statement
9.7.4:
abortable_part ::= sequence_of_statements
9.8:
abort_statement ::= abort task_name {, task_name};
10.1.1:
compilation ::= {compilation_unit}
10.1.1:
compilation_unit ::= 
    context_clause library_item
  | context_clause subunit
10.1.1:
library_item ::= [privatelibrary_unit_declaration
  | library_unit_body
  | [privatelibrary_unit_renaming_declaration
10.1.1:
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
10.1.1:
library_unit_body ::= subprogram_body | package_body
10.1.1:
parent_unit_name ::= name
10.1.2:
context_clause ::= {context_item}
10.1.2:
context_item ::= with_clause | use_clause
10.1.2:
with_clause ::= limited_with_clause | nonlimited_with_clause
10.1.2:
limited_with_clause ::= limited [privatewith library_unit_name {, library_unit_name};
10.1.2:
nonlimited_with_clause ::= [privatewith library_unit_name {, library_unit_name};
10.1.3:
body_stub ::= subprogram_body_stub | package_body_stub | task_body_stub | protected_body_stub
10.1.3:
subprogram_body_stub ::= 
   [overriding_indicator]
   subprogram_specification is separate
      [aspect_specification];
10.1.3:
package_body_stub ::= 
   package body defining_identifier is separate
      [aspect_specification];
10.1.3:
task_body_stub ::= 
   task body defining_identifier is separate
      [aspect_specification];
10.1.3:
protected_body_stub ::= 
   protected body defining_identifier is separate
      [aspect_specification];
10.1.3:
subunit ::= separate (parent_unit_nameproper_body
11.1:
exception_declaration ::= defining_identifier_list : exception
   [aspect_specification];
11.2:
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
11.2:
choice_parameter_specification ::= defining_identifier
11.2:
exception_choice ::= exception_name | others
11.3:
raise_statement ::= raise;
      | raise exception_name [with string_expression];
11.3:
raise_expression ::= raise exception_name [with string_simple_expression]
12.1:
generic_declaration ::= generic_subprogram_declaration | generic_package_declaration
12.1:
generic_subprogram_declaration ::= 
     generic_formal_part  subprogram_specification
        [aspect_specification];
12.1:
generic_package_declaration ::= 
     generic_formal_part  package_specification;
12.1:
generic_formal_part ::= generic {generic_formal_parameter_declaration | use_clause}
12.1:
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]
            [aspect_specification];
   | [overriding_indicator]
     procedure defining_program_unit_name is
         new generic_procedure_name [generic_actual_part]
            [aspect_specification];
   | [overriding_indicator]
     function defining_designator is
         new generic_function_name [generic_actual_part]
            [aspect_specification];
12.3:
generic_actual_part ::= 
   (generic_association {, generic_association})
12.3:
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
12.4:
formal_object_declaration ::= 
    defining_identifier_list : mode [null_exclusionsubtype_mark [:= default_expression]
        [aspect_specification];
  |  defining_identifier_list : mode access_definition [:= default_expression]
        [aspect_specification];
12.5:
formal_type_declaration ::= 
      formal_complete_type_declaration
    | formal_incomplete_type_declaration
12.5:
formal_complete_type_declaration ::= 
    type defining_identifier[discriminant_partis formal_type_definition
        [aspect_specification];
12.5:
formal_incomplete_type_declaration ::= 
    type defining_identifier[discriminant_part] [is tagged];
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
12.5.1:
formal_private_type_definition ::= [[abstracttagged] [limitedprivate
12.5.1:
formal_derived_type_definition ::= 
     [abstract] [limited | synchronizednew subtype_mark [[and interface_list]with private]
12.5.2:
formal_discrete_type_definition ::= (<>)
12.5.2:
formal_signed_integer_type_definition ::= range <>
12.5.2:
formal_modular_type_definition ::= mod <>
12.5.2:
formal_floating_point_definition ::= digits <>
12.5.2:
formal_ordinary_fixed_point_definition ::= delta <>
12.5.2:
formal_decimal_fixed_point_definition ::= delta <> digits <>
12.5.3:
formal_array_type_definition ::= array_type_definition
12.5.4:
formal_access_type_definition ::= access_type_definition
12.5.5:
formal_interface_type_definition ::= interface_type_definition
12.6:
formal_subprogram_declaration ::= formal_concrete_subprogram_declaration
    | formal_abstract_subprogram_declaration
12.6:
formal_concrete_subprogram_declaration ::= 
     with subprogram_specification [is subprogram_default]
        [aspect_specification];
12.6:
formal_abstract_subprogram_declaration ::= 
     with subprogram_specification is abstract [subprogram_default]
        [aspect_specification];
12.6:
subprogram_default ::= default_name | <> | null
12.6:
default_name ::= name
12.7:
formal_package_declaration ::= 
    with package defining_identifier is new generic_package_name  formal_package_actual_part
        [aspect_specification];
12.7:
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 => <>
13.1:
aspect_clause ::= attribute_definition_clause
      | enumeration_representation_clause
      | record_representation_clause
      | at_clause
13.1:
local_name ::= direct_name
      | direct_name'attribute_designator
      | library_unit_name
13.1.1:
aspect_specification ::= 
   with aspect_mark [=> aspect_definition] {,
           aspect_mark [=> aspect_definition] }
13.1.1:
aspect_mark ::= aspect_identifier['Class]
13.1.1:
aspect_definition ::= name | expression | identifier
13.3:
attribute_definition_clause ::= 
      for local_name'attribute_designator use expression;
    | for local_name'attribute_designator use name;
13.4:
enumeration_representation_clause ::= 
    for first_subtype_local_name use enumeration_aggregate;
13.4:
enumeration_aggregate ::= array_aggregate
13.5.1:
record_representation_clause ::= 
    for first_subtype_local_name use
      record [mod_clause]
        {component_clause}
      end record;
13.5.1:
component_clause ::= 
    component_local_name at position range first_bit .. last_bit;
13.5.1:
position ::= static_expression
13.5.1:
first_bit ::= static_simple_expression
13.5.1:
last_bit ::= static_simple_expression
13.8:
code_statement ::= qualified_expression;
13.11.3:
storage_pool_indicator ::= storage_pool_name | null | Standard
13.12:
restriction ::= restriction_identifier
    | restriction_parameter_identifier => restriction_parameter_argument
13.12:
restriction_parameter_argument ::= name | expression
J.3:
delta_constraint ::= delta static_simple_expression [range_constraint]
J.7:
at_clause ::= for direct_name use at expression;
J.8:
mod_clause ::= at mod static_expression;
Syntax Cross Reference
1/3
In the following syntax cross reference, each syntactic category is followed by the subclause 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.
abort_statement 9.8
     simple_statement 5.1
abortable_part 9.7.4
     asynchronous_select 9.7.4
abstract_subprogram_declaration 3.9.3
     basic_declaration 3.1
accept_alternative 9.7.1
     select_alternative 9.7.1
accept_statement 9.5.2
     accept_alternative 9.7.1
     compound_statement 5.1
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
access_to_object_definition 3.10
     access_type_definition 3.10
access_to_subprogram_definition 3.10
     access_type_definition 3.10
access_type_definition 3.10
     formal_access_type_definition 12.5.4
     type_definition 3.2.1
actual_parameter_part 6.4
     entry_call_statement 9.5.3
     function_call 6.4
     generalized_indexing 4.1.6
     procedure_call_statement 6.4
aggregate 4.3
     expression_function_declaration 6.8
     primary 4.4
     qualified_expression 4.7
allocator 4.8
     primary 4.4
ancestor_part 4.3.2
     extension_aggregate 4.3.2
array_aggregate 4.3.3
     aggregate 4.3
     enumeration_aggregate 13.4
array_component_association 4.3.3
     named_array_aggregate 4.3.3
array_type_definition 3.6
     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
aspect_definition 13.1.1
     aspect_specification 13.1.1
aspect_mark 13.1.1
     aspect_specification 13.1.1
     pragma_argument_association 2.8
aspect_specification 13.1.1
     abstract_subprogram_declaration 3.9.3
     component_declaration 3.8
     entry_declaration 9.5.2
     exception_declaration 11.1
     exception_renaming_declaration 8.5.2
     expression_function_declaration 6.8
     formal_abstract_subprogram_declaration 12.6
     formal_complete_type_declaration 12.5
     formal_concrete_subprogram_declaration 12.6
     formal_object_declaration 12.4
     formal_package_declaration 12.7
     full_type_declaration 3.2.1
     generic_instantiation 12.3
     generic_renaming_declaration 8.5.5
     generic_subprogram_declaration 12.1
     null_procedure_declaration 6.7
     object_declaration 3.3.1
     object_renaming_declaration 8.5.1
     package_body 7.2
     package_body_stub 10.1.3
     package_renaming_declaration 8.5.3
     package_specification 7.1
     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
     subprogram_body 6.3
     subprogram_body_stub 10.1.3
     subprogram_declaration 6.1
     subprogram_renaming_declaration 8.5.4
     subtype_declaration 3.2.2
     task_body 9.1
     task_body_stub 10.1.3
     task_type_declaration 9.1
assignment_statement 5.2
     simple_statement 5.1
asynchronous_select 9.7.4
     select_statement 9.7
at_clause J.7
     aspect_clause 13.1
attribute_definition_clause 13.3
     aspect_clause 13.1
attribute_designator 4.1.4
     attribute_definition_clause 13.3
     attribute_reference 4.1.4
     local_name 13.1
attribute_reference 4.1.4
     name 4.1
base 2.4.2
     based_literal 2.4.2
based_literal 2.4.2
     numeric_literal 2.4
based_numeral 2.4.2
     based_literal 2.4.2
basic_declaration 3.1
     basic_declarative_item 3.11
basic_declarative_item 3.11
     declarative_item 3.11
     package_specification 7.1
binary_adding_operator 4.5
     simple_expression 4.4
block_statement 5.6
     compound_statement 5.1
body 3.11
     declarative_item 3.11
body_stub 10.1.3
     body 3.11
case_expression 4.5.7
     conditional_expression 4.5.7
case_expression_alternative 4.5.7
     case_expression 4.5.7
case_statement 5.4
     compound_statement 5.1
case_statement_alternative 5.4
     case_statement 5.4
character 2.1
     comment 2.7
character_literal 2.5
     defining_character_literal 3.5.1
     name 4.1
     selector_name 4.1.3
choice_expression 4.4
     discrete_choice 3.8.1
choice_parameter_specification 11.2
     exception_handler 11.2
choice_relation 4.4
     choice_expression 4.4
code_statement 13.8
     simple_statement 5.1
compilation_unit 10.1.1
     compilation 10.1.1
component_choice_list 4.3.1
     record_component_association 4.3.1
component_clause 13.5.1
     record_representation_clause 13.5.1
component_declaration 3.8
     component_item 3.8
     protected_element_declaration 9.4
component_definition 3.6
     component_declaration 3.8
     constrained_array_definition 3.6
     unconstrained_array_definition 3.6
component_item 3.8
     component_list 3.8
component_list 3.8
     record_definition 3.8
     variant 3.8.1
composite_constraint 3.2.2
     constraint 3.2.2
compound_statement 5.1
     statement 5.1
condition 4.5.7
     entry_barrier 9.5.2
     exit_statement 5.7
     guard 9.7.1
     if_expression 4.5.7
     if_statement 5.3
     iteration_scheme 5.5
conditional_entry_call 9.7.3
     select_statement 9.7
conditional_expression 4.5.7
     primary 4.4
constrained_array_definition 3.6
     array_type_definition 3.6
constraint 3.2.2
     subtype_indication 3.2.2
context_clause 10.1.2
     compilation_unit 10.1.1
context_item 10.1.2
     context_clause 10.1.2
decimal_fixed_point_definition 3.5.9
     fixed_point_definition 3.5.9
decimal_literal 2.4.1
     numeric_literal 2.4
declarative_item 3.11
     declarative_part 3.11
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
default_expression 3.7
     component_declaration 3.8
     discriminant_specification 3.7
     formal_object_declaration 12.4
     parameter_specification 6.1
default_name 12.6
     subprogram_default 12.6
defining_character_literal 3.5.1
     enumeration_literal_specification 3.5.1
defining_designator 6.1
     function_specification 6.1
     generic_instantiation 12.3
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_object_declaration 6.5
     formal_complete_type_declaration 12.5
     formal_incomplete_type_declaration 12.5
     formal_package_declaration 12.7
     full_type_declaration 3.2.1
     incomplete_type_declaration 3.10.1
     iterator_specification 5.5.2
     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
defining_operator_symbol 6.1
     defining_designator 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
delay_alternative 9.7.1
     select_alternative 9.7.1
     timed_entry_call 9.7.2
delay_relative_statement 9.6
     delay_statement 9.6
delay_statement 9.6
     delay_alternative 9.7.1
     simple_statement 5.1
     triggering_statement 9.7.4
delay_until_statement 9.6
     delay_statement 9.6
delta_constraint J.3
     scalar_constraint 3.2.2
derived_type_definition 3.4
     type_definition 3.2.1
designator 6.1
     subprogram_body 6.3
digit 2.4.1
     extended_digit 2.4.2
     numeral 2.4.1
digits_constraint 3.5.9
     scalar_constraint 3.2.2
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
discrete_choice 3.8.1
     discrete_choice_list 3.8.1
discrete_choice_list 3.8.1
     array_component_association 4.3.3
     case_expression_alternative 4.5.7
     case_statement_alternative 5.4
     variant 3.8.1
discrete_range 3.6.1
     index_constraint 3.6.1
     slice 4.1.2
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
discriminant_association 3.7.1
     discriminant_constraint 3.7.1
discriminant_constraint 3.7.1
     composite_constraint 3.2.2
discriminant_part 3.7
     formal_complete_type_declaration 12.5
     formal_incomplete_type_declaration 12.5
     incomplete_type_declaration 3.10.1
     private_extension_declaration 7.3
     private_type_declaration 7.3
discriminant_specification 3.7
     known_discriminant_part 3.7
entry_barrier 9.5.2
     entry_body 9.5.2
entry_body 9.5.2
     protected_operation_item 9.4
entry_body_formal_part 9.5.2
     entry_body 9.5.2
entry_call_alternative 9.7.2
     conditional_entry_call 9.7.3
     timed_entry_call 9.7.2
entry_call_statement 9.5.3
     procedure_or_entry_call 9.7.2
     simple_statement 5.1
entry_declaration 9.5.2
     protected_operation_declaration 9.4
     task_item 9.1
entry_index 9.5.2
     accept_statement 9.5.2
entry_index_specification 9.5.2
     entry_body_formal_part 9.5.2
enumeration_aggregate 13.4
     enumeration_representation_clause 13.4
enumeration_literal_specification 3.5.1
     enumeration_type_definition 3.5.1
enumeration_representation_clause 13.4
     aspect_clause 13.1
enumeration_type_definition 3.5.1
     type_definition 3.2.1
exception_choice 11.2
     exception_handler 11.2
exception_declaration 11.1
     basic_declaration 3.1
exception_handler 11.2
     handled_sequence_of_statements 11.2
exception_renaming_declaration 8.5.2
     renaming_declaration 8.5
exit_statement 5.7
     simple_statement 5.1
explicit_actual_parameter 6.4
     parameter_association 6.4
explicit_dereference 4.1
     name 4.1
explicit_generic_actual_parameter 12.3
     generic_association 12.3
exponent 2.4.1
     based_literal 2.4.2
     decimal_literal 2.4.1
expression 4.4
     ancestor_part 4.3.2
     array_component_association 4.3.3
     aspect_definition 13.1.1
     assignment_statement 5.2
     at_clause J.7
     attribute_definition_clause 13.3
     attribute_designator 4.1.4
     case_expression 4.5.7
     case_expression_alternative 4.5.7
     case_statement 5.4
     condition 4.5.7
     decimal_fixed_point_definition 3.5.9
     default_expression 3.7
     delay_relative_statement 9.6
     delay_until_statement 9.6
     discriminant_association 3.7.1
     entry_index 9.5.2
     explicit_actual_parameter 6.4
     explicit_generic_actual_parameter 12.3
     expression_function_declaration 6.8
     extended_return_object_declaration 6.5
     floating_point_definition 3.5.7
     if_expression 4.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
     predicate 4.5.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
expression_function_declaration 6.8
     basic_declaration 3.1
     protected_operation_item 9.4
extended_digit 2.4.2
     based_numeral 2.4.2
extended_return_object_declaration 6.5
     extended_return_statement 6.5
extended_return_statement 6.5
     compound_statement 5.1
extension_aggregate 4.3.2
     aggregate 4.3
factor 4.4
     term 4.4
first_bit 13.5.1
     component_clause 13.5.1
fixed_point_definition 3.5.9
     real_type_definition 3.5.6
floating_point_definition 3.5.7
     real_type_definition 3.5.6
formal_abstract_subprogram_declaration 12.6
     formal_subprogram_declaration 12.6
formal_access_type_definition 12.5.4
     formal_type_definition 12.5
formal_array_type_definition 12.5.3
     formal_type_definition 12.5
formal_complete_type_declaration 12.5
     formal_type_declaration 12.5
formal_concrete_subprogram_declaration 12.6
     formal_subprogram_declaration 12.6
formal_decimal_fixed_point_definition 12.5.2
     formal_type_definition 12.5
formal_derived_type_definition 12.5.1
     formal_type_definition 12.5
formal_discrete_type_definition 12.5.2
     formal_type_definition 12.5
formal_floating_point_definition 12.5.2
     formal_type_definition 12.5
formal_incomplete_type_declaration 12.5
     formal_type_declaration 12.5
formal_interface_type_definition 12.5.5
     formal_type_definition 12.5
formal_modular_type_definition 12.5.2
     formal_type_definition 12.5
formal_object_declaration 12.4
     generic_formal_parameter_declaration 12.1
formal_ordinary_fixed_point_definition 12.5.2
     formal_type_definition 12.5
formal_package_actual_part 12.7
     formal_package_declaration 12.7
formal_package_association 12.7
     formal_package_actual_part 12.7
formal_package_declaration 12.7
     generic_formal_parameter_declaration 12.1
formal_part 6.1
     parameter_and_result_profile 6.1
     parameter_profile 6.1
formal_private_type_definition 12.5.1
     formal_type_definition 12.5
formal_signed_integer_type_definition 12.5.2
     formal_type_definition 12.5
formal_subprogram_declaration 12.6
     generic_formal_parameter_declaration 12.1
formal_type_declaration 12.5
     generic_formal_parameter_declaration 12.1
formal_type_definition 12.5
     formal_complete_type_declaration 12.5
full_type_declaration 3.2.1
     type_declaration 3.2.1
function_call 6.4
     name 4.1
function_specification 6.1
     expression_function_declaration 6.8
     subprogram_specification 6.1
general_access_modifier 3.10
     access_to_object_definition 3.10
generalized_indexing 4.1.6
     name 4.1
generalized_reference 4.1.5
     name 4.1
generic_actual_part 12.3
     formal_package_actual_part 12.7
     generic_instantiation 12.3
generic_association 12.3
     formal_package_association 12.7
     generic_actual_part 12.3
generic_declaration 12.1
     basic_declaration 3.1
     library_unit_declaration 10.1.1
generic_formal_parameter_declaration 12.1
     generic_formal_part 12.1
generic_formal_part 12.1
     generic_package_declaration 12.1
     generic_subprogram_declaration 12.1
generic_instantiation 12.3
     basic_declaration 3.1
     library_unit_declaration 10.1.1
generic_package_declaration 12.1
     generic_declaration 12.1
generic_renaming_declaration 8.5.5
     library_unit_renaming_declaration 10.1.1
     renaming_declaration 8.5
generic_subprogram_declaration 12.1
     generic_declaration 12.1
goto_statement 5.8
     simple_statement 5.1
graphic_character 2.1
     character_literal 2.5
     string_element 2.6
guard 9.7.1
     selective_accept 9.7.1
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
identifier 2.3
     accept_statement 9.5.2
     aspect_definition 13.1.1
     aspect_mark 13.1.1
     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
identifier_extend 2.3
     identifier 2.3
identifier_start 2.3
     identifier 2.3
if_expression 4.5.7
     conditional_expression 4.5.7
if_statement 5.3
     compound_statement 5.1
implicit_dereference 4.1
     prefix 4.1
incomplete_type_declaration 3.10.1
     type_declaration 3.2.1
index_constraint 3.6.1
     composite_constraint 3.2.2
index_subtype_definition 3.6
     unconstrained_array_definition 3.6
indexed_component 4.1.1
     name 4.1
integer_type_definition 3.5.4
     type_definition 3.2.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
interface_type_definition 3.9.4
     formal_interface_type_definition 12.5.5
     type_definition 3.2.1
iteration_scheme 5.5
     loop_statement 5.5
iterator_specification 5.5.2
     iteration_scheme 5.5
     quantified_expression 4.5.8
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
label 5.1
     sequence_of_statements 5.1
     statement 5.1
last_bit 13.5.1
     component_clause 13.5.1
letter_lowercase ...
     identifier_start 2.3
letter_modifier ...
     identifier_start 2.3
letter_other ...
     identifier_start 2.3
letter_titlecase ...
     identifier_start 2.3
letter_uppercase ...
     identifier_start 2.3
library_item 10.1.1
     compilation_unit 10.1.1
library_unit_body 10.1.1
     library_item 10.1.1
library_unit_declaration 10.1.1
     library_item 10.1.1
library_unit_renaming_declaration 10.1.1
     library_item 10.1.1
limited_with_clause 10.1.2
     with_clause 10.1.2
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
loop_parameter_specification 5.5
     iteration_scheme 5.5
     quantified_expression 4.5.8
loop_statement 5.5
     compound_statement 5.1
mark_non_spacing ...
     identifier_extend 2.3
mark_spacing_combining ...
     identifier_extend 2.3
membership_choice 4.4
     membership_choice_list 4.4
membership_choice_list 4.4
     relation 4.4
mod_clause J.8
     record_representation_clause 13.5.1
mode 6.1
     formal_object_declaration 12.4
     parameter_specification 6.1
modular_type_definition 3.5.4
     integer_type_definition 3.5.4
multiplying_operator 4.5
     term 4.4
name 4.1
     abort_statement 9.8
     aspect_definition 13.1.1
     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
     generalized_reference 4.1.5
     generic_instantiation 12.3
     generic_renaming_declaration 8.5.5
     goto_statement 5.8
     implicit_dereference 4.1
     iterator_specification 5.5.2
     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_expression 11.3
     raise_statement 11.3
     requeue_statement 9.5.4
     restriction_parameter_argument 13.12
     storage_pool_indicator 13.11.3
     subpool_specification 4.8
     subprogram_renaming_declaration 8.5.4
     subtype_mark 3.2.2
     type_conversion 4.6
     use_package_clause 8.4
named_array_aggregate 4.3.3
     array_aggregate 4.3.3
nonlimited_with_clause 10.1.2
     with_clause 10.1.2
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
null_procedure_declaration 6.7
     basic_declaration 3.1
     protected_operation_item 9.4
null_statement 5.1
     simple_statement 5.1
number_decimal ...
     identifier_extend 2.3
number_declaration 3.3.2
     basic_declaration 3.1
number_letter ...
     identifier_start 2.3
numeral 2.4.1
     base 2.4.2
     decimal_literal 2.4.1
     exponent 2.4.1
numeric_literal 2.4
     primary 4.4
object_declaration 3.3.1
     basic_declaration 3.1
object_renaming_declaration 8.5.1
     renaming_declaration 8.5
operator_symbol 6.1
     defining_operator_symbol 6.1
     designator 6.1
     direct_name 4.1
     selector_name 4.1.3
ordinary_fixed_point_definition 3.5.9
     fixed_point_definition 3.5.9
overriding_indicator 8.3.1
     abstract_subprogram_declaration 3.9.3
     entry_declaration 9.5.2
     expression_function_declaration 6.8
     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_body 7.2
     library_unit_body 10.1.1
     proper_body 3.11
package_body_stub 10.1.3
     body_stub 10.1.3
package_declaration 7.1
     basic_declaration 3.1
     library_unit_declaration 10.1.1
package_renaming_declaration 8.5.3
     library_unit_renaming_declaration 10.1.1
     renaming_declaration 8.5
package_specification 7.1
     generic_package_declaration 12.1
     package_declaration 7.1
parameter_and_result_profile 6.1
     access_definition 3.10
     access_to_subprogram_definition 3.10
     function_specification 6.1
parameter_association 6.4
     actual_parameter_part 6.4
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
parameter_specification 6.1
     formal_part 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
position 13.5.1
     component_clause 13.5.1
positional_array_aggregate 4.3.3
     array_aggregate 4.3.3
pragma_argument_association 2.8
     pragma 2.8
predicate 4.5.8
     quantified_expression 4.5.8
prefix 4.1
     attribute_reference 4.1.4
     function_call 6.4
     generalized_indexing 4.1.6
     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
primary 4.4
     factor 4.4
private_extension_declaration 7.3
     type_declaration 3.2.1
private_type_declaration 7.3
     type_declaration 3.2.1
procedure_call_statement 6.4
     procedure_or_entry_call 9.7.2
     simple_statement 5.1
procedure_or_entry_call 9.7.2
     entry_call_alternative 9.7.2
     triggering_statement 9.7.4
procedure_specification 6.1
     null_procedure_declaration 6.7
     subprogram_specification 6.1
proper_body 3.11
     body 3.11
     subunit 10.1.3
protected_body 9.4
     proper_body 3.11
protected_body_stub 10.1.3
     body_stub 10.1.3
protected_definition 9.4
     protected_type_declaration 9.4
     single_protected_declaration 9.4
protected_element_declaration 9.4
     protected_definition 9.4
protected_operation_declaration 9.4
     protected_definition 9.4
     protected_element_declaration 9.4
protected_operation_item 9.4
     protected_body 9.4
protected_type_declaration 9.4
     full_type_declaration 3.2.1
punctuation_connector ...
     identifier_extend 2.3
qualified_expression 4.7
     allocator 4.8
     code_statement 13.8
     name 4.1
quantified_expression 4.5.8
     primary 4.4
quantifier 4.5.8
     quantified_expression 4.5.8
raise_expression 11.3
     relation 4.4
raise_statement 11.3
     simple_statement 5.1
range 3.5
     discrete_choice 3.8.1
     discrete_range 3.6.1
     discrete_subtype_definition 3.6
     membership_choice 4.4
     range_constraint 3.5
range_attribute_designator 4.1.4
     range_attribute_reference 4.1.4
range_attribute_reference 4.1.4
     range 3.5
range_constraint 3.5
     delta_constraint J.3
     digits_constraint 3.5.9
     scalar_constraint 3.2.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
real_type_definition 3.5.6
     type_definition 3.2.1
record_aggregate 4.3.1
     aggregate 4.3
record_component_association 4.3.1
     record_component_association_list 4.3.1
record_component_association_list 4.3.1
     extension_aggregate 4.3.2
     record_aggregate 4.3.1
record_definition 3.8
     record_extension_part 3.9.1
     record_type_definition 3.8
record_extension_part 3.9.1
     derived_type_definition 3.4
record_representation_clause 13.5.1
     aspect_clause 13.1
record_type_definition 3.8
     type_definition 3.2.1
relation 4.4
     expression 4.4
relational_operator 4.5
     choice_relation 4.4
     relation 4.4
renaming_declaration 8.5
     basic_declaration 3.1
requeue_statement 9.5.4
     simple_statement 5.1
restriction_parameter_argument 13.12
     restriction 13.12
return_subtype_indication 6.5
     extended_return_object_declaration 6.5
scalar_constraint 3.2.2
     constraint 3.2.2
select_alternative 9.7.1
     selective_accept 9.7.1
select_statement 9.7
     compound_statement 5.1
selected_component 4.1.3
     name 4.1
selective_accept 9.7.1
     select_statement 9.7
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
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
signed_integer_type_definition 3.5.4
     integer_type_definition 3.5.4
simple_expression 4.4
     choice_relation 4.4
     delta_constraint J.3
     digits_constraint 3.5.9
     first_bit 13.5.1
     last_bit 13.5.1
     membership_choice 4.4
     raise_expression 11.3
     range 3.5
     real_range_specification 3.5.7
     relation 4.4
     signed_integer_type_definition 3.5.4
simple_return_statement 6.5
     simple_statement 5.1
simple_statement 5.1
     statement 5.1
single_protected_declaration 9.4
     object_declaration 3.3.1
single_task_declaration 9.1
     object_declaration 3.3.1
slice 4.1.2
     name 4.1
statement 5.1
     sequence_of_statements 5.1
statement_identifier 5.1
     block_statement 5.6
     label 5.1
     loop_statement 5.5
string_element 2.6
     string_literal 2.6
string_literal 2.6
     operator_symbol 6.1
     primary 4.4
subpool_specification 4.8
     allocator 4.8
subprogram_body 6.3
     library_unit_body 10.1.1
     proper_body 3.11
     protected_operation_item 9.4
subprogram_body_stub 10.1.3
     body_stub 10.1.3
subprogram_declaration 6.1
     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
subprogram_renaming_declaration 8.5.4
     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
subtype_declaration 3.2.2
     basic_declaration 3.1
subtype_indication 3.2.2
     access_to_object_definition 3.10
     allocator 4.8
     component_definition 3.6
     derived_type_definition 3.4
     discrete_choice 3.8.1
     discrete_range 3.6.1
     discrete_subtype_definition 3.6
     iterator_specification 5.5.2
     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
     membership_choice 4.4
     object_renaming_declaration 8.5.1
     parameter_and_result_profile 6.1
     parameter_specification 6.1
     qualified_expression 4.7
     subtype_indication 3.2.2
     type_conversion 4.6
     use_type_clause 8.4
subunit 10.1.3
     compilation_unit 10.1.1
task_body 9.1
     proper_body 3.11
task_body_stub 10.1.3
     body_stub 10.1.3
task_definition 9.1
     single_task_declaration 9.1
     task_type_declaration 9.1
task_item 9.1
     task_definition 9.1
task_type_declaration 9.1
     full_type_declaration 3.2.1
term 4.4
     simple_expression 4.4
terminate_alternative 9.7.1
     select_alternative 9.7.1
timed_entry_call 9.7.2
     select_statement 9.7
triggering_alternative 9.7.4
     asynchronous_select 9.7.4
triggering_statement 9.7.4
     triggering_alternative 9.7.4
type_conversion 4.6
     name 4.1
type_declaration 3.2.1
     basic_declaration 3.1
type_definition 3.2.1
     full_type_declaration 3.2.1
unary_adding_operator 4.5
     simple_expression 4.4
unconstrained_array_definition 3.6
     array_type_definition 3.6
underline ...
     based_numeral 2.4.2
     numeral 2.4.1
unknown_discriminant_part 3.7
     discriminant_part 3.7
use_clause 8.4
     basic_declarative_item 3.11
     context_item 10.1.2
     generic_formal_part 12.1
use_package_clause 8.4
     use_clause 8.4
use_type_clause 8.4
     use_clause 8.4
variant 3.8.1
     variant_part 3.8.1
variant_part 3.8.1
     component_list 3.8
with_clause 10.1.2
     context_item 10.1.2

Contents   Index   References   Search   Previous   Next 
Ada-Europe Ada 2005 and 2012 Editions sponsored in part by Ada-Europe