See section 2.1 Character Set character ::= graphic_character | format_effector | other_control_function See section 2.1 Character Set graphic_character ::= identifier_letter | digit | space_character | special_character See section 2.3 Identifiers identifier ::= identifier_letter {[underline] letter_or_digit} See section 2.3 Identifiers letter_or_digit ::= identifier_letter | digit See section 2.4 Numeric Literals numeric_literal ::= decimal_literal | based_literal See section 2.4.1 Decimal Literals decimal_literal ::= numeral [.numeral] [exponent] See section 2.4.1 Decimal Literals numeral ::= digit {[underline] digit} See section 2.4.1 Decimal Literals exponent ::= E [+] numeral | E - numeral See section 2.4.2 Based Literals based_literal ::= base # based_numeral [.based_numeral] # [exponent] See section 2.4.2 Based Literals base ::= numeral See section 2.4.2 Based Literals based_numeral ::= extended_digit {[underline] extended_digit} See section 2.4.2 Based Literals extended_digit ::= digit | A | B | C | D | E | F See section 2.5 Character Literals character_literal ::= 'graphic_character' See section 2.6 String Literals string_literal ::= "{string_element}" See section 2.6 String Literals string_element ::= "" | non_quotation_mark_graphic_character A string_element is either a pair of quotation marks (""), or a single graphic_character other than a quotation mark. See section 2.7 Comments comment ::= --{non_end_of_line_character} See section 2.8 Pragmas pragma ::= pragma identifier [(pragma_argument_association {, pragma_argument_association})]; See section 2.8 Pragmas pragma_argument_association ::= [pragma_argument_identifier =>] name | [pragma_argument_identifier =>] expression See section 3.1 Declarations basic_declaration ::= type_declaration | subtype_declaration | object_declaration | number_declaration | subprogram_declaration | abstract_subprogram_declaration | package_declaration | renaming_declaration | exception_declaration | generic_declaration | generic_instantiation See section 3.1 Declarations defining_identifier ::= identifier See section 3.2.1 Type Declarations type_declaration ::= full_type_declaration | incomplete_type_declaration | private_type_declaration | private_extension_declaration See section 3.2.1 Type Declarations full_type_declaration ::= type defining_identifier [known_discriminant_part] is type_definition; | task_type_declaration | protected_type_declaration See section 3.2.1 Type Declarations type_definition ::= enumeration_type_definition | integer_type_definition | real_type_definition | array_type_definition | record_type_definition | access_type_definition | derived_type_definition See section 3.2.2 Subtype Declarations subtype_declaration ::= subtype defining_identifier is subtype_indication; See section 3.2.2 Subtype Declarations subtype_indication ::= subtype_mark [constraint] See section 3.2.2 Subtype Declarations subtype_mark ::= subtype_name See section 3.2.2 Subtype Declarations constraint ::= scalar_constraint | composite_constraint See section 3.2.2 Subtype Declarations scalar_constraint ::= range_constraint | digits_constraint | delta_constraint See section 3.2.2 Subtype Declarations composite_constraint ::= index_constraint | discriminant_constraint See section 3.3.1 Object Declarations object_declaration ::= defining_identifier_list : [aliased] [constant] subtype_indication [:= expression]; | defining_identifier_list : [aliased] [constant] array_type_definition [:= expression]; | single_task_declaration | single_protected_declaration See section 3.3.1 Object Declarations defining_identifier_list ::= defining_identifier {, defining_identifier} See section 3.3.2 Number Declarations number_declaration ::= defining_identifier_list : constant := static_expression; See section 3.4 Derived Types and Classes derived_type_definition ::= [abstract] new parent_subtype_indication [record_extension_part] See section 3.5 Scalar Types range_constraint ::= range range See section 3.5 Scalar Types range ::= range_attribute_reference | simple_expression .. simple_expression See section 3.5.1 Enumeration Types enumeration_type_definition ::= (enumeration_literal_specification {, enumeration_literal_specification}) See section 3.5.1 Enumeration Types enumeration_literal_specification ::= defining_identifier | defining_character_literal See section 3.5.1 Enumeration Types defining_character_literal ::= character_literal See section 3.5.4 Integer Types integer_type_definition ::= signed_integer_type_definition | modular_type_definition See section 3.5.4 Integer Types signed_integer_type_definition ::= range static_simple_expression .. static_simple_expression See section 3.5.4 Integer Types modular_type_definition ::= mod static_expression See section 3.5.6 Real Types real_type_definition ::= floating_point_definition | fixed_point_definition See section 3.5.7 Floating Point Types floating_point_definition ::= digits static_expression [real_range_specification] See section 3.5.7 Floating Point Types real_range_specification ::= range static_simple_expression .. static_simple_expression See section 3.5.9 Fixed Point Types fixed_point_definition ::= ordinary_fixed_point_definition | decimal_fixed_point_definition See section 3.5.9 Fixed Point Types ordinary_fixed_point_definition ::= delta static_expression real_range_specification See section 3.5.9 Fixed Point Types decimal_fixed_point_definition ::= delta static_expression digits static_expression [real_range_specification] See section 3.5.9 Fixed Point Types digits_constraint ::= digits static_expression [range_constraint] See section 3.6 Array Types array_type_definition ::= unconstrained_array_definition | constrained_array_definition See section 3.6 Array Types unconstrained_array_definition ::= array(index_subtype_definition {, index_subtype_definition}) of component_definition See section 3.6 Array Types index_subtype_definition ::= subtype_mark range <> See section 3.6 Array Types constrained_array_definition ::= array (discrete_subtype_definition {, discrete_subtype_definition}) of component_definition See section 3.6 Array Types discrete_subtype_definition ::= discrete_subtype_indication | range See section 3.6 Array Types component_definition ::= [aliased] subtype_indication See section 3.6.1 Index Constraints and Discrete Ranges index_constraint ::= (discrete_range {, discrete_range}) See section 3.6.1 Index Constraints and Discrete Ranges discrete_range ::= discrete_subtype_indication | range See section 3.7 Discriminants discriminant_part ::= unknown_discriminant_part | known_discriminant_part See section 3.7 Discriminants unknown_discriminant_part ::= (<>) See section 3.7 Discriminants known_discriminant_part ::= (discriminant_specification {; discriminant_specification}) See section 3.7 Discriminants discriminant_specification ::= defining_identifier_list : subtype_mark [:= default_expression] | defining_identifier_list : access_definition [:= default_expression] See section 3.7 Discriminants default_expression ::= expression See section 3.7.1 Discriminant Constraints discriminant_constraint ::= (discriminant_association {, discriminant_association}) See section 3.7.1 Discriminant Constraints discriminant_association ::= [discriminant_selector_name {| discriminant_selector_name} =>] expression See section 3.8 Record Types record_type_definition ::= [[abstract] tagged] [limited] record_definition See section 3.8 Record Types record_definition ::= record component_list end record | null record See section 3.8 Record Types component_list ::= component_item {component_item} | {component_item} variant_part | null; See section 3.8 Record Types component_item ::= component_declaration | representation_clause See section 3.8 Record Types component_declaration ::= defining_identifier_list : component_definition [:= default_expression]; See section 3.8.1 Variant Parts and Discrete Choices variant_part ::= case discriminant_direct_name is variant {variant} end case; See section 3.8.1 Variant Parts and Discrete Choices variant ::= when discrete_choice_list => component_list See section 3.8.1 Variant Parts and Discrete Choices discrete_choice_list ::= discrete_choice {| discrete_choice} See section 3.8.1 Variant Parts and Discrete Choices discrete_choice ::= expression | discrete_range | others See section 3.9.1 Type Extensions record_extension_part ::= with record_definition See section 3.10 Access Types access_type_definition ::= access_to_object_definition | access_to_subprogram_definition See section 3.10 Access Types access_to_object_definition ::= access [general_access_modifier] subtype_indication See section 3.10 Access Types general_access_modifier ::= all | constant See section 3.10 Access Types access_to_subprogram_definition ::= access [protected] procedure parameter_profile | access [protected] function parameter_and_result_profile See section 3.10 Access Types access_definition ::= access subtype_mark See section 3.10.1 Incomplete Type Declarations incomplete_type_declaration ::= type defining_identifier [discriminant_part]; See section 3.11 Declarative Parts declarative_part ::= {declarative_item} See section 3.11 Declarative Parts declarative_item ::= basic_declarative_item | body See section 3.11 Declarative Parts basic_declarative_item ::= basic_declaration | representation_clause | use_clause See section 3.11 Declarative Parts body ::= proper_body | body_stub See section 3.11 Declarative Parts proper_body ::= subprogram_body | package_body | task_body | protected_body See section 4.1 Names name ::= direct_name | explicit_dereference | indexed_component | slice | selected_component | attribute_reference | type_conversion | function_call | character_literal See section 4.1 Names direct_name ::= identifier | operator_symbol See section 4.1 Names prefix ::= name | implicit_dereference See section 4.1 Names explicit_dereference ::= name.all See section 4.1 Names implicit_dereference ::= name See section 4.1.1 Indexed Components indexed_component ::= prefix(expression {, expression}) See section 4.1.2 Slices slice ::= prefix(discrete_range) See section 4.1.3 Selected Components selected_component ::= prefix . selector_name See section 4.1.3 Selected Components selector_name ::= identifier | character_literal | operator_symbol See section 4.1.4 Attributes attribute_reference ::= prefix'attribute_designator See section 4.1.4 Attributes attribute_designator ::= identifier[(static_expression)] | Access | Delta | Digits See section 4.1.4 Attributes range_attribute_reference ::= prefix'range_attribute_designator See section 4.1.4 Attributes range_attribute_designator ::= Range[(static_expression)] See section 4.3 Aggregates aggregate ::= record_aggregate | extension_aggregate | array_aggregate See section 4.3.1 Record Aggregates record_aggregate ::= (record_component_association_list) See section 4.3.1 Record Aggregates record_component_association_list ::= record_component_association {, record_component_association} | null record See section 4.3.1 Record Aggregates record_component_association ::= [ component_choice_list => ] expression See section 4.3.1 Record Aggregates component_choice_list ::= component_selector_name {| component_selector_name} | others See section 4.3.2 Extension Aggregates extension_aggregate ::= (ancestor_part with record_component_association_list) See section 4.3.2 Extension Aggregates ancestor_part ::= expression | subtype_mark See section 4.3.3 Array Aggregates array_aggregate ::= positional_array_aggregate | named_array_aggregate See section 4.3.3 Array Aggregates positional_array_aggregate ::= (expression, expression {, expression}) | (expression {, expression}, others => expression) See section 4.3.3 Array Aggregates named_array_aggregate ::= (array_component_association {, array_component_association}) See section 4.3.3 Array Aggregates array_component_association ::= discrete_choice_list => expression See section 4.4 Expressions expression ::= relation {and relation} | relation {and then relation} | relation {or relation} | relation {or else relation} | relation {xor relation} See section 4.4 Expressions relation ::= simple_expression [relational_operator simple_expression] | simple_expression [not] in range | simple_expression [not] in subtype_mark See section 4.4 Expressions simple_expression ::= [unary_adding_operator] term {binary_adding_operator term} See section 4.4 Expressions term ::= factor {multiplying_operator factor} See section 4.4 Expressions factor ::= primary [** primary] | abs primary | not primary See section 4.4 Expressions primary ::= numeric_literal | null | string_literal | aggregate | name | qualified_expression | allocator | (expression) See section 4.5 Operators and Expression Evaluation logical_operator ::= and | or | xor See section 4.5 Operators and Expression Evaluation relational_operator ::= = | /= | < | <= | > | >= See section 4.5 Operators and Expression Evaluation binary_adding_operator ::= + | - | & See section 4.5 Operators and Expression Evaluation unary_adding_operator ::= + | - See section 4.5 Operators and Expression Evaluation multiplying_operator ::= * | / | mod | rem See section 4.5 Operators and Expression Evaluation highest_precedence_operator ::= ** | abs | not See section 4.6 Type Conversions type_conversion ::= subtype_mark(expression) | subtype_mark(name) See section 4.7 Qualified Expressions qualified_expression ::= subtype_mark'(expression) | subtype_mark'aggregate See section 4.8 Allocators allocator ::= new subtype_indication | new qualified_expression See section 5.1 Simple and Compound Statements - Sequences of Statements sequence_of_statements ::= statement {statement} See section 5.1 Simple and Compound Statements - Sequences of Statements statement ::= {label} simple_statement | {label} compound_statement See section 5.1 Simple and Compound Statements - Sequences of Statements 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 See section 5.1 Simple and Compound Statements - Sequences of Statements compound_statement ::= if_statement | case_statement | loop_statement | block_statement | accept_statement | select_statement See section 5.1 Simple and Compound Statements - Sequences of Statements null_statement ::= null; See section 5.1 Simple and Compound Statements - Sequences of Statements label ::= <<label_statement_identifier>> See section 5.1 Simple and Compound Statements - Sequences of Statements statement_identifier ::= direct_name See section 5.2 Assignment Statements assignment_statement ::= variable_name := expression; See section 5.3 If Statements if_statement ::= if condition then sequence_of_statements {elsif condition then sequence_of_statements} [else sequence_of_statements] end if; See section 5.3 If Statements condition ::= boolean_expression See section 5.4 Case Statements case_statement ::= case expression is case_statement_alternative {case_statement_alternative} end case; See section 5.4 Case Statements case_statement_alternative ::= when discrete_choice_list => sequence_of_statements See section 5.5 Loop Statements loop_statement ::= [loop_statement_identifier:] [iteration_scheme] loop sequence_of_statements end loop [loop_identifier]; See section 5.5 Loop Statements iteration_scheme ::= while condition | for loop_parameter_specification See section 5.5 Loop Statements loop_parameter_specification ::= defining_identifier in [reverse] discrete_subtype_definition See section 5.6 Block Statements block_statement ::= [block_statement_identifier:] [declare declarative_part] begin handled_sequence_of_statements end [block_identifier]; See section 5.7 Exit Statements exit_statement ::= exit [loop_name] [when condition]; See section 5.8 Goto Statements goto_statement ::= goto label_name; See section 6.1 Subprogram Declarations subprogram_declaration ::= subprogram_specification; See section 6.1 Subprogram Declarations abstract_subprogram_declaration ::= subprogram_specification is abstract; See section 6.1 Subprogram Declarations subprogram_specification ::= procedure defining_program_unit_name parameter_profile | function defining_designator parameter_and_result_profile See section 6.1 Subprogram Declarations designator ::= [parent_unit_name . ]identifier | operator_symbol See section 6.1 Subprogram Declarations defining_designator ::= defining_program_unit_name | defining_operator_symbol See section 6.1 Subprogram Declarations defining_program_unit_name ::= [parent_unit_name . ]defining_identifier See section 6.1 Subprogram Declarations operator_symbol ::= string_literal See section 6.1 Subprogram Declarations defining_operator_symbol ::= operator_symbol See section 6.1 Subprogram Declarations parameter_profile ::= [formal_part] See section 6.1 Subprogram Declarations parameter_and_result_profile ::= [formal_part] return subtype_mark See section 6.1 Subprogram Declarations formal_part ::= (parameter_specification {; parameter_specification}) See section 6.1 Subprogram Declarations parameter_specification ::= defining_identifier_list : mode subtype_mark [:= default_expression] | defining_identifier_list : access_definition [:= default_expression] See section 6.1 Subprogram Declarations mode ::= [in] | in out | out See section 6.3 Subprogram Bodies subprogram_body ::= subprogram_specification is declarative_part begin handled_sequence_of_statements end [designator]; See section 6.4 Subprogram Calls procedure_call_statement ::= procedure_name; | procedure_prefix actual_parameter_part; See section 6.4 Subprogram Calls function_call ::= function_name | function_prefix actual_parameter_part See section 6.4 Subprogram Calls actual_parameter_part ::= (parameter_association {, parameter_association}) See section 6.4 Subprogram Calls parameter_association ::= [formal_parameter_selector_name =>] explicit_actual_parameter See section 6.4 Subprogram Calls explicit_actual_parameter ::= expression | variable_name See section 6.5 Return Statements return_statement ::= return [expression]; See section 7.1 Package Specifications and Declarations package_declaration ::= package_specification; See section 7.1 Package Specifications and Declarations package_specification ::= package defining_program_unit_name is {basic_declarative_item} [private {basic_declarative_item}] end [[parent_unit_name.]identifier] See section 7.2 Package Bodies package_body ::= package body defining_program_unit_name is declarative_part [begin handled_sequence_of_statements] end [[parent_unit_name.]identifier]; See section 7.3 Private Types and Private Extensions private_type_declaration ::= type defining_identifier [discriminant_part] is [[abstract] tagged] [limited] private; See section 7.3 Private Types and Private Extensions private_extension_declaration ::= type defining_identifier [discriminant_part] is [abstract] new ancestor_subtype_indication with private; See section 8.4 Use Clauses use_clause ::= use_package_clause | use_type_clause See section 8.4 Use Clauses use_package_clause ::= use package_name {, package_name}; See section 8.4 Use Clauses use_type_clause ::= use type subtype_mark {, subtype_mark}; See section 8.5 Renaming Declarations renaming_declaration ::= object_renaming_declaration | exception_renaming_declaration | package_renaming_declaration | subprogram_renaming_declaration | generic_renaming_declaration See section 8.5.1 Object Renaming Declarations object_renaming_declaration ::= defining_identifier : subtype_mark renames object_name; See section 8.5.2 Exception Renaming Declarations exception_renaming_declaration ::= defining_identifier : exception renames exception_name; See section 8.5.3 Package Renaming Declarations package_renaming_declaration ::= package defining_program_unit_name renames package_name; See section 8.5.4 Subprogram Renaming Declarations subprogram_renaming_declaration ::= subprogram_specification renames callable_entity_name; See section 8.5.5 Generic Renaming Declarations 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; See section 9.1 Task Units and Task Objects task_type_declaration ::= task type defining_identifier [known_discriminant_part] [is task_definition]; See section 9.1 Task Units and Task Objects single_task_declaration ::= task defining_identifier [is task_definition]; See section 9.1 Task Units and Task Objects task_definition ::= {task_item} [ private {task_item}] end [task_identifier] See section 9.1 Task Units and Task Objects task_item ::= entry_declaration | representation_clause See section 9.1 Task Units and Task Objects task_body ::= task body defining_identifier is declarative_part begin handled_sequence_of_statements end [task_identifier]; See section 9.4 Protected Units and Protected Objects protected_type_declaration ::= protected type defining_identifier [known_discriminant_part] is protected_definition; See section 9.4 Protected Units and Protected Objects single_protected_declaration ::= protected defining_identifier is protected_definition; See section 9.4 Protected Units and Protected Objects protected_definition ::= { protected_operation_declaration } [ private { protected_element_declaration } ] end [protected_identifier] See section 9.4 Protected Units and Protected Objects protected_operation_declaration ::= subprogram_declaration | entry_declaration | representation_clause See section 9.4 Protected Units and Protected Objects protected_element_declaration ::= protected_operation_declaration | component_declaration See section 9.4 Protected Units and Protected Objects protected_body ::= protected body defining_identifier is { protected_operation_item } end [protected_identifier]; See section 9.4 Protected Units and Protected Objects protected_operation_item ::= subprogram_declaration | subprogram_body | entry_body | representation_clause See section 9.5.2 Entries and Accept Statements entry_declaration ::= entry defining_identifier [(discrete_subtype_definition)] parameter_profile; See section 9.5.2 Entries and Accept Statements accept_statement ::= accept entry_direct_name [(entry_index)] parameter_profile [do handled_sequence_of_statements end [entry_identifier]]; See section 9.5.2 Entries and Accept Statements entry_index ::= expression See section 9.5.2 Entries and Accept Statements entry_body ::= entry defining_identifier entry_body_formal_part entry_barrier is declarative_part begin handled_sequence_of_statements end [entry_identifier]; See section 9.5.2 Entries and Accept Statements entry_body_formal_part ::= [(entry_index_specification)] parameter_profile See section 9.5.2 Entries and Accept Statements entry_barrier ::= when condition See section 9.5.2 Entries and Accept Statements entry_index_specification ::= for defining_identifier in discrete_subtype_definition See section 9.5.3 Entry Calls entry_call_statement ::= entry_name [actual_parameter_part]; See section 9.5.4 Requeue Statements requeue_statement ::= requeue entry_name [with abort]; See section 9.6 Delay Statements, Duration, and Time delay_statement ::= delay_until_statement | delay_relative_statement See section 9.6 Delay Statements, Duration, and Time delay_until_statement ::= delay until delay_expression; See section 9.6 Delay Statements, Duration, and Time delay_relative_statement ::= delay delay_expression; See section 9.7 Select Statements select_statement ::= selective_accept | timed_entry_call | conditional_entry_call | asynchronous_select See section 9.7.1 Selective Accept selective_accept ::= select [guard] select_alternative { or [guard] select_alternative } [ else sequence_of_statements ] end select; See section 9.7.1 Selective Accept guard ::= when condition => See section 9.7.1 Selective Accept select_alternative ::= accept_alternative | delay_alternative | terminate_alternative See section 9.7.1 Selective Accept accept_alternative ::= accept_statement [sequence_of_statements] See section 9.7.1 Selective Accept delay_alternative ::= delay_statement [sequence_of_statements] See section 9.7.1 Selective Accept terminate_alternative ::= terminate; See section 9.7.2 Timed Entry Calls timed_entry_call ::= select entry_call_alternative or delay_alternative end select; See section 9.7.2 Timed Entry Calls entry_call_alternative ::= entry_call_statement [sequence_of_statements] See section 9.7.3 Conditional Entry Calls conditional_entry_call ::= select entry_call_alternative else sequence_of_statements end select; See section 9.7.4 Asynchronous Transfer of Control asynchronous_select ::= select triggering_alternative then abort abortable_part end select; See section 9.7.4 Asynchronous Transfer of Control triggering_alternative ::= triggering_statement [sequence_of_statements] See section 9.7.4 Asynchronous Transfer of Control triggering_statement ::= entry_call_statement | delay_statement See section 9.7.4 Asynchronous Transfer of Control abortable_part ::= sequence_of_statements See section 9.8 Abort of a Task - Abort of a Sequence of Statements abort_statement ::= abort task_name {, task_name}; See section 10.1.1 Compilation Units - Library Units compilation ::= {compilation_unit} See section 10.1.1 Compilation Units - Library Units compilation_unit ::= context_clause library_item | context_clause subunit See section 10.1.1 Compilation Units - Library Units library_item ::= [private] library_unit_declaration | library_unit_body | [private] library_unit_renaming_declaration See section 10.1.1 Compilation Units - Library Units library_unit_declaration ::= subprogram_declaration | package_declaration | generic_declaration | generic_instantiation See section 10.1.1 Compilation Units - Library Units library_unit_renaming_declaration ::= package_renaming_declaration | generic_renaming_declaration | subprogram_renaming_declaration See section 10.1.1 Compilation Units - Library Units library_unit_body ::= subprogram_body | package_body See section 10.1.1 Compilation Units - Library Units parent_unit_name ::= name See section 10.1.2 Context Clauses - With Clauses context_clause ::= {context_item} See section 10.1.2 Context Clauses - With Clauses context_item ::= with_clause | use_clause See section 10.1.2 Context Clauses - With Clauses with_clause ::= with library_unit_name {, library_unit_name}; See section 10.1.3 Subunits of Compilation Units body_stub ::= subprogram_body_stub | package_body_stub | task_body_stub | protected_body_stub See section 10.1.3 Subunits of Compilation Units subprogram_body_stub ::= subprogram_specification is separate; See section 10.1.3 Subunits of Compilation Units package_body_stub ::= package body defining_identifier is separate; See section 10.1.3 Subunits of Compilation Units task_body_stub ::= task body defining_identifier is separate; See section 10.1.3 Subunits of Compilation Units protected_body_stub ::= protected body defining_identifier is separate; See section 10.1.3 Subunits of Compilation Units subunit ::= separate (parent_unit_name) proper_body See section 11.1 Exception Declarations exception_declaration ::= defining_identifier_list : exception; See section 11.2 Exception Handlers handled_sequence_of_statements ::= sequence_of_statements [exception exception_handler {exception_handler}] See section 11.2 Exception Handlers exception_handler ::= when [choice_parameter_specification:] exception_choice {| exception_choice} => sequence_of_statements See section 11.2 Exception Handlers choice_parameter_specification ::= defining_identifier See section 11.2 Exception Handlers exception_choice ::= exception_name | others See section 11.3 Raise Statements raise_statement ::= raise [exception_name]; See section 12.1 Generic Declarations generic_declaration ::= generic_subprogram_declaration | generic_package_declaration See section 12.1 Generic Declarations generic_subprogram_declaration ::= generic_formal_part subprogram_specification; See section 12.1 Generic Declarations generic_package_declaration ::= generic_formal_part package_specification; See section 12.1 Generic Declarations generic_formal_part ::= generic {generic_formal_parameter_declaration | use_clause} See section 12.1 Generic Declarations generic_formal_parameter_declaration ::= formal_object_declaration | formal_type_declaration | formal_subprogram_declaration | formal_package_declaration See section 12.3 Generic Instantiation generic_instantiation ::= package defining_program_unit_name is new generic_package_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]; See section 12.3 Generic Instantiation generic_actual_part ::= (generic_association {, generic_association}) See section 12.3 Generic Instantiation generic_association ::= [generic_formal_parameter_selector_name =>] explicit_generic_actual_parameter See section 12.3 Generic Instantiation explicit_generic_actual_parameter ::= expression | variable_name | subprogram_name | entry_name | subtype_mark | package_instance_name See section 12.4 Formal Objects formal_object_declaration ::= defining_identifier_list : mode subtype_mark [:= default_expression]; See section 12.5 Formal Types formal_type_declaration ::= type defining_identifier[discriminant_part] is formal_type_definition; See section 12.5 Formal Types 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 See section 12.5.1 Formal Private and Derived Types formal_private_type_definition ::= [[abstract] tagged] [limited] private See section 12.5.1 Formal Private and Derived Types formal_derived_type_definition ::= [abstract] new subtype_mark [with private] See section 12.5.2 Formal Scalar Types formal_discrete_type_definition ::= (<>) See section 12.5.2 Formal Scalar Types formal_signed_integer_type_definition ::= range <> See section 12.5.2 Formal Scalar Types formal_modular_type_definition ::= mod <> See section 12.5.2 Formal Scalar Types formal_floating_point_definition ::= digits <> See section 12.5.2 Formal Scalar Types formal_ordinary_fixed_point_definition ::= delta <> See section 12.5.2 Formal Scalar Types formal_decimal_fixed_point_definition ::= delta <> digits <> See section 12.5.3 Formal Array Types formal_array_type_definition ::= array_type_definition See section 12.5.4 Formal Access Types formal_access_type_definition ::= access_type_definition See section 12.6 Formal Subprograms formal_subprogram_declaration ::= with subprogram_specification [is subprogram_default]; See section 12.6 Formal Subprograms subprogram_default ::= default_name | <> See section 12.6 Formal Subprograms default_name ::= name See section 12.7 Formal Packages formal_package_declaration ::= with package defining_identifier is new generic_package_name formal_package_actual_part; See section 12.7 Formal Packages formal_package_actual_part ::= (<>) | [generic_actual_part] See section 13.1 Representation Items representation_clause ::= attribute_definition_clause | enumeration_representation_clause | record_representation_clause | at_clause See section 13.1 Representation Items local_name ::= direct_name | direct_name'attribute_designator | library_unit_name See section 13.3 Representation Attributes attribute_definition_clause ::= for local_name'attribute_designator use expression; | for local_name'attribute_designator use name; See section 13.4 Enumeration Representation Clauses enumeration_representation_clause ::= for first_subtype_local_name use enumeration_aggregate; See section 13.4 Enumeration Representation Clauses enumeration_aggregate ::= array_aggregate See section 13.5.1 Record Representation Clauses record_representation_clause ::= for first_subtype_local_name use record [mod_clause] {component_clause} end record; See section 13.5.1 Record Representation Clauses component_clause ::= component_local_name at position range first_bit .. last_bit; See section 13.5.1 Record Representation Clauses position ::= static_expression See section 13.5.1 Record Representation Clauses first_bit ::= static_simple_expression See section 13.5.1 Record Representation Clauses last_bit ::= static_simple_expression See section 13.8 Machine Code Insertions code_statement ::= qualified_expression; See section 13.12 Pragma Restrictions restriction ::= restriction_identifier | restriction_parameter_identifier => expression See section J.3 Reduced Accuracy Subtypes delta_constraint ::= delta static_expression [range_constraint] See section J.7 At Clauses at_clause ::= for direct_name use at expression; See section J.8 Mod Clauses mod_clause ::= at mod static_expression;
abort_statement simple_statement See section 5.1 Simple and Compound Statements - Sequences of Statements abortable_part asynchronous_select See section 9.7.4 Asynchronous Transfer of Control abstract_subprogram_declaration basic_declaration See section 3.1 Declarations accept_alternative select_alternative See section 9.7.1 Selective Accept accept_statement accept_alternative See section 9.7.1 Selective Accept compound_statement See section 5.1 Simple and Compound Statements - Sequences of Statements access_definition discriminant_specification See section 3.7 Discriminants parameter_specification See section 6.1 Subprogram Declarations access_type_definition formal_access_type_definition See section 12.5.4 Formal Access Types type_definition See section 3.2.1 Type Declarations access_to_object_definition access_type_definition See section 3.10 Access Types access_to_subprogram_definition access_type_definition See section 3.10 Access Types actual_parameter_part entry_call_statement See section 9.5.3 Entry Calls function_call See section 6.4 Subprogram Calls procedure_call_statement See section 6.4 Subprogram Calls aggregate primary See section 4.4 Expressions qualified_expression See section 4.7 Qualified Expressions allocator primary See section 4.4 Expressions ancestor_part extension_aggregate See section 4.3.2 Extension Aggregates array_aggregate aggregate See section 4.3 Aggregates enumeration_aggregate See section 13.4 Enumeration Representation Clauses array_component_association named_array_aggregate See section 4.3.3 Array Aggregates array_type_definition formal_array_type_definition See section 12.5.3 Formal Array Types object_declaration See section 3.3.1 Object Declarations type_definition See section 3.2.1 Type Declarations assignment_statement simple_statement See section 5.1 Simple and Compound Statements - Sequences of Statements asynchronous_select select_statement See section 9.7 Select Statements at_clause representation_clause See section 13.1 Representation Items attribute_definition_clause representation_clause See section 13.1 Representation Items attribute_designator attribute_definition_clause See section 13.3 Representation Attributes attribute_reference See section 4.1.4 Attributes local_name See section 13.1 Representation Items attribute_reference name See section 4.1 Names base based_literal See section 2.4.2 Based Literals based_literal numeric_literal See section 2.4 Numeric Literals based_numeral based_literal See section 2.4.2 Based Literals basic_declaration basic_declarative_item See section 3.11 Declarative Parts basic_declarative_item declarative_item See section 3.11 Declarative Parts package_specification See section 7.1 Package Specifications and Declarations binary_adding_operator simple_expression See section 4.4 Expressions block_statement compound_statement See section 5.1 Simple and Compound Statements - Sequences of Statements body declarative_item See section 3.11 Declarative Parts body_stub body See section 3.11 Declarative Parts case_statement compound_statement See section 5.1 Simple and Compound Statements - Sequences of Statements case_statement_alternative case_statement See section 5.4 Case Statements character comment See section 2.7 Comments character_literal defining_character_literal See section 3.5.1 Enumeration Types name See section 4.1 Names selector_name See section 4.1.3 Selected Components choice_parameter_specification exception_handler See section 11.2 Exception Handlers code_statement simple_statement See section 5.1 Simple and Compound Statements - Sequences of Statements compilation_unit compilation See section 10.1.1 Compilation Units - Library Units component_choice_list record_component_association See section 4.3.1 Record Aggregates component_clause record_representation_clause See section 13.5.1 Record Representation Clauses component_declaration component_item See section 3.8 Record Types protected_element_declaration See section 9.4 Protected Units and Protected Objects component_definition component_declaration See section 3.8 Record Types constrained_array_definition See section 3.6 Array Types unconstrained_array_definition See section 3.6 Array Types component_item component_list See section 3.8 Record Types component_list record_definition See section 3.8 Record Types variant See section 3.8.1 Variant Parts and Discrete Choices composite_constraint constraint See section 3.2.2 Subtype Declarations compound_statement statement See section 5.1 Simple and Compound Statements - Sequences of Statements condition entry_barrier See section 9.5.2 Entries and Accept Statements exit_statement See section 5.7 Exit Statements guard See section 9.7.1 Selective Accept if_statement See section 5.3 If Statements iteration_scheme See section 5.5 Loop Statements conditional_entry_call select_statement See section 9.7 Select Statements constrained_array_definition array_type_definition See section 3.6 Array Types constraint subtype_indication See section 3.2.2 Subtype Declarations context_clause compilation_unit See section 10.1.1 Compilation Units - Library Units context_item context_clause See section 10.1.2 Context Clauses - With Clauses decimal_fixed_point_definition fixed_point_definition See section 3.5.9 Fixed Point Types decimal_literal numeric_literal See section 2.4 Numeric Literals declarative_item declarative_part See section 3.11 Declarative Parts declarative_part block_statement See section 5.6 Block Statements entry_body See section 9.5.2 Entries and Accept Statements package_body See section 7.2 Package Bodies subprogram_body See section 6.3 Subprogram Bodies task_body See section 9.1 Task Units and Task Objects default_expression component_declaration See section 3.8 Record Types discriminant_specification See section 3.7 Discriminants formal_object_declaration See section 12.4 Formal Objects parameter_specification See section 6.1 Subprogram Declarations default_name subprogram_default See section 12.6 Formal Subprograms defining_character_literal enumeration_literal_specification See section 3.5.1 Enumeration Types defining_designator generic_instantiation See section 12.3 Generic Instantiation subprogram_specification See section 6.1 Subprogram Declarations defining_identifier choice_parameter_specification See section 11.2 Exception Handlers defining_identifier_list See section 3.3.1 Object Declarations defining_program_unit_name See section 6.1 Subprogram Declarations entry_body See section 9.5.2 Entries and Accept Statements entry_declaration See section 9.5.2 Entries and Accept Statements entry_index_specification See section 9.5.2 Entries and Accept Statements enumeration_literal_specification See section 3.5.1 Enumeration Types exception_renaming_declaration See section 8.5.2 Exception Renaming Declarations formal_package_declaration See section 12.7 Formal Packages formal_type_declaration See section 12.5 Formal Types full_type_declaration See section 3.2.1 Type Declarations incomplete_type_declaration See section 3.10.1 Incomplete Type Declarations loop_parameter_specification See section 5.5 Loop Statements object_renaming_declaration See section 8.5.1 Object Renaming Declarations package_body_stub See section 10.1.3 Subunits of Compilation Units private_extension_declaration See section 7.3 Private Types and Private Extensions private_type_declaration See section 7.3 Private Types and Private Extensions protected_body See section 9.4 Protected Units and Protected Objects protected_body_stub See section 10.1.3 Subunits of Compilation Units protected_type_declaration See section 9.4 Protected Units and Protected Objects single_protected_declaration See section 9.4 Protected Units and Protected Objects single_task_declaration See section 9.1 Task Units and Task Objects subtype_declaration See section 3.2.2 Subtype Declarations task_body See section 9.1 Task Units and Task Objects task_body_stub See section 10.1.3 Subunits of Compilation Units task_type_declaration See section 9.1 Task Units and Task Objects defining_identifier_list component_declaration See section 3.8 Record Types discriminant_specification See section 3.7 Discriminants exception_declaration See section 11.1 Exception Declarations formal_object_declaration See section 12.4 Formal Objects number_declaration See section 3.3.2 Number Declarations object_declaration See section 3.3.1 Object Declarations parameter_specification See section 6.1 Subprogram Declarations defining_operator_symbol defining_designator See section 6.1 Subprogram Declarations defining_program_unit_name defining_designator See section 6.1 Subprogram Declarations generic_instantiation See section 12.3 Generic Instantiation generic_renaming_declaration See section 8.5.5 Generic Renaming Declarations package_body See section 7.2 Package Bodies package_renaming_declaration See section 8.5.3 Package Renaming Declarations package_specification See section 7.1 Package Specifications and Declarations subprogram_specification See section 6.1 Subprogram Declarations delay_alternative select_alternative See section 9.7.1 Selective Accept timed_entry_call See section 9.7.2 Timed Entry Calls delay_relative_statement delay_statement See section 9.6 Delay Statements, Duration, and Time delay_statement delay_alternative See section 9.7.1 Selective Accept simple_statement See section 5.1 Simple and Compound Statements - Sequences of Statements triggering_statement See section 9.7.4 Asynchronous Transfer of Control delay_until_statement delay_statement See section 9.6 Delay Statements, Duration, and Time delta_constraint scalar_constraint See section 3.2.2 Subtype Declarations derived_type_definition type_definition See section 3.2.1 Type Declarations designator subprogram_body See section 6.3 Subprogram Bodies digit extended_digit See section 2.4.2 Based Literals graphic_character See section 2.1 Character Set letter_or_digit See section 2.3 Identifiers numeral See section 2.4.1 Decimal Literals digits_constraint scalar_constraint See section 3.2.2 Subtype Declarations direct_name accept_statement See section 9.5.2 Entries and Accept Statements at_clause See section J.7 At Clauses local_name See section 13.1 Representation Items name See section 4.1 Names statement_identifier See section 5.1 Simple and Compound Statements - Sequences of Statements variant_part See section 3.8.1 Variant Parts and Discrete Choices discrete_choice discrete_choice_list See section 3.8.1 Variant Parts and Discrete Choices discrete_choice_list array_component_association See section 4.3.3 Array Aggregates case_statement_alternative See section 5.4 Case Statements variant See section 3.8.1 Variant Parts and Discrete Choices discrete_range discrete_choice See section 3.8.1 Variant Parts and Discrete Choices index_constraint See section 3.6.1 Index Constraints and Discrete Ranges slice See section 4.1.2 Slices discrete_subtype_definition constrained_array_definition See section 3.6 Array Types entry_declaration See section 9.5.2 Entries and Accept Statements entry_index_specification See section 9.5.2 Entries and Accept Statements loop_parameter_specification See section 5.5 Loop Statements discriminant_association discriminant_constraint See section 3.7.1 Discriminant Constraints discriminant_constraint composite_constraint See section 3.2.2 Subtype Declarations discriminant_part formal_type_declaration See section 12.5 Formal Types incomplete_type_declaration See section 3.10.1 Incomplete Type Declarations private_extension_declaration See section 7.3 Private Types and Private Extensions private_type_declaration See section 7.3 Private Types and Private Extensions discriminant_specification known_discriminant_part See section 3.7 Discriminants entry_barrier entry_body See section 9.5.2 Entries and Accept Statements entry_body protected_operation_item See section 9.4 Protected Units and Protected Objects entry_body_formal_part entry_body See section 9.5.2 Entries and Accept Statements entry_call_alternative conditional_entry_call See section 9.7.3 Conditional Entry Calls timed_entry_call See section 9.7.2 Timed Entry Calls entry_call_statement entry_call_alternative See section 9.7.2 Timed Entry Calls simple_statement See section 5.1 Simple and Compound Statements - Sequences of Statements triggering_statement See section 9.7.4 Asynchronous Transfer of Control entry_declaration protected_operation_declaration See section 9.4 Protected Units and Protected Objects task_item See section 9.1 Task Units and Task Objects entry_index accept_statement See section 9.5.2 Entries and Accept Statements entry_index_specification entry_body_formal_part See section 9.5.2 Entries and Accept Statements enumeration_aggregate enumeration_representation_clause See section 13.4 Enumeration Representation Clauses enumeration_literal_specification enumeration_type_definition See section 3.5.1 Enumeration Types enumeration_representation_clause representation_clause See section 13.1 Representation Items enumeration_type_definition type_definition See section 3.2.1 Type Declarations exception_choice exception_handler See section 11.2 Exception Handlers exception_declaration basic_declaration See section 3.1 Declarations exception_handler handled_sequence_of_statements See section 11.2 Exception Handlers exception_renaming_declaration renaming_declaration See section 8.5 Renaming Declarations exit_statement simple_statement See section 5.1 Simple and Compound Statements - Sequences of Statements explicit_actual_parameter parameter_association See section 6.4 Subprogram Calls explicit_dereference name See section 4.1 Names explicit_generic_actual_parameter generic_association See section 12.3 Generic Instantiation exponent based_literal See section 2.4.2 Based Literals decimal_literal See section 2.4.1 Decimal Literals expression ancestor_part See section 4.3.2 Extension Aggregates array_component_association See section 4.3.3 Array Aggregates assignment_statement See section 5.2 Assignment Statements at_clause See section J.7 At Clauses attribute_definition_clause See section 13.3 Representation Attributes attribute_designator See section 4.1.4 Attributes case_statement See section 5.4 Case Statements condition See section 5.3 If Statements decimal_fixed_point_definition See section 3.5.9 Fixed Point Types default_expression See section 3.7 Discriminants delay_relative_statement See section 9.6 Delay Statements, Duration, and Time delay_until_statement See section 9.6 Delay Statements, Duration, and Time delta_constraint See section J.3 Reduced Accuracy Subtypes digits_constraint See section 3.5.9 Fixed Point Types discrete_choice See section 3.8.1 Variant Parts and Discrete Choices discriminant_association See section 3.7.1 Discriminant Constraints entry_index See section 9.5.2 Entries and Accept Statements explicit_actual_parameter See section 6.4 Subprogram Calls explicit_generic_actual_parameter See section 12.3 Generic Instantiation floating_point_definition See section 3.5.7 Floating Point Types indexed_component See section 4.1.1 Indexed Components mod_clause See section J.8 Mod Clauses modular_type_definition See section 3.5.4 Integer Types number_declaration See section 3.3.2 Number Declarations object_declaration See section 3.3.1 Object Declarations ordinary_fixed_point_definition See section 3.5.9 Fixed Point Types position See section 13.5.1 Record Representation Clauses positional_array_aggregate See section 4.3.3 Array Aggregates pragma_argument_association See section 2.8 Pragmas primary See section 4.4 Expressions qualified_expression See section 4.7 Qualified Expressions range_attribute_designator See section 4.1.4 Attributes record_component_association See section 4.3.1 Record Aggregates restriction See section 13.12 Pragma Restrictions return_statement See section 6.5 Return Statements type_conversion See section 4.6 Type Conversions extended_digit based_numeral See section 2.4.2 Based Literals extension_aggregate aggregate See section 4.3 Aggregates factor term See section 4.4 Expressions first_bit component_clause See section 13.5.1 Record Representation Clauses fixed_point_definition real_type_definition See section 3.5.6 Real Types floating_point_definition real_type_definition See section 3.5.6 Real Types formal_access_type_definition formal_type_definition See section 12.5 Formal Types formal_array_type_definition formal_type_definition See section 12.5 Formal Types formal_decimal_fixed_point_definition formal_type_definition See section 12.5 Formal Types formal_derived_type_definition formal_type_definition See section 12.5 Formal Types formal_discrete_type_definition formal_type_definition See section 12.5 Formal Types formal_floating_point_definition formal_type_definition See section 12.5 Formal Types formal_modular_type_definition formal_type_definition See section 12.5 Formal Types formal_object_declaration generic_formal_parameter_declaration See section 12.1 Generic Declarations formal_ordinary_fixed_point_definition formal_type_definition See section 12.5 Formal Types formal_package_actual_part formal_package_declaration See section 12.7 Formal Packages formal_package_declaration generic_formal_parameter_declaration See section 12.1 Generic Declarations formal_part parameter_and_result_profile See section 6.1 Subprogram Declarations parameter_profile See section 6.1 Subprogram Declarations formal_private_type_definition formal_type_definition See section 12.5 Formal Types formal_signed_integer_type_definition formal_type_definition See section 12.5 Formal Types formal_subprogram_declaration generic_formal_parameter_declaration See section 12.1 Generic Declarations formal_type_declaration generic_formal_parameter_declaration See section 12.1 Generic Declarations formal_type_definition formal_type_declaration See section 12.5 Formal Types format_effector character See section 2.1 Character Set full_type_declaration type_declaration See section 3.2.1 Type Declarations function_call name See section 4.1 Names general_access_modifier access_to_object_definition See section 3.10 Access Types generic_actual_part formal_package_actual_part See section 12.7 Formal Packages generic_instantiation See section 12.3 Generic Instantiation generic_association generic_actual_part See section 12.3 Generic Instantiation generic_declaration basic_declaration See section 3.1 Declarations library_unit_declaration See section 10.1.1 Compilation Units - Library Units generic_formal_parameter_declaration generic_formal_part See section 12.1 Generic Declarations generic_formal_part generic_package_declaration See section 12.1 Generic Declarations generic_subprogram_declaration See section 12.1 Generic Declarations generic_instantiation basic_declaration See section 3.1 Declarations library_unit_declaration See section 10.1.1 Compilation Units - Library Units generic_package_declaration generic_declaration See section 12.1 Generic Declarations generic_renaming_declaration library_unit_renaming_declaration See section 10.1.1 Compilation Units - Library Units renaming_declaration See section 8.5 Renaming Declarations generic_subprogram_declaration generic_declaration See section 12.1 Generic Declarations goto_statement simple_statement See section 5.1 Simple and Compound Statements - Sequences of Statements graphic_character character See section 2.1 Character Set character_literal See section 2.5 Character Literals string_element See section 2.6 String Literals guard selective_accept See section 9.7.1 Selective Accept handled_sequence_of_statements accept_statement See section 9.5.2 Entries and Accept Statements block_statement See section 5.6 Block Statements entry_body See section 9.5.2 Entries and Accept Statements package_body See section 7.2 Package Bodies subprogram_body See section 6.3 Subprogram Bodies task_body See section 9.1 Task Units and Task Objects identifier accept_statement See section 9.5.2 Entries and Accept Statements attribute_designator See section 4.1.4 Attributes block_statement See section 5.6 Block Statements defining_identifier See section 3.1 Declarations designator See section 6.1 Subprogram Declarations direct_name See section 4.1 Names entry_body See section 9.5.2 Entries and Accept Statements loop_statement See section 5.5 Loop Statements package_body See section 7.2 Package Bodies package_specification See section 7.1 Package Specifications and Declarations pragma See section 2.8 Pragmas pragma_argument_association See section 2.8 Pragmas protected_body See section 9.4 Protected Units and Protected Objects protected_definition See section 9.4 Protected Units and Protected Objects restriction See section 13.12 Pragma Restrictions selector_name See section 4.1.3 Selected Components task_body See section 9.1 Task Units and Task Objects task_definition See section 9.1 Task Units and Task Objects identifier_letter graphic_character See section 2.1 Character Set identifier See section 2.3 Identifiers letter_or_digit See section 2.3 Identifiers if_statement compound_statement See section 5.1 Simple and Compound Statements - Sequences of Statements implicit_dereference prefix See section 4.1 Names incomplete_type_declaration type_declaration See section 3.2.1 Type Declarations index_constraint composite_constraint See section 3.2.2 Subtype Declarations index_subtype_definition unconstrained_array_definition See section 3.6 Array Types indexed_component name See section 4.1 Names integer_type_definition type_definition See section 3.2.1 Type Declarations iteration_scheme loop_statement See section 5.5 Loop Statements known_discriminant_part discriminant_part See section 3.7 Discriminants full_type_declaration See section 3.2.1 Type Declarations protected_type_declaration See section 9.4 Protected Units and Protected Objects task_type_declaration See section 9.1 Task Units and Task Objects label statement See section 5.1 Simple and Compound Statements - Sequences of Statements last_bit component_clause See section 13.5.1 Record Representation Clauses letter_or_digit identifier See section 2.3 Identifiers library_item compilation_unit See section 10.1.1 Compilation Units - Library Units library_unit_body library_item See section 10.1.1 Compilation Units - Library Units library_unit_declaration library_item See section 10.1.1 Compilation Units - Library Units library_unit_renaming_declaration library_item See section 10.1.1 Compilation Units - Library Units local_name attribute_definition_clause See section 13.3 Representation Attributes component_clause See section 13.5.1 Record Representation Clauses enumeration_representation_clause See section 13.4 Enumeration Representation Clauses record_representation_clause See section 13.5.1 Record Representation Clauses loop_parameter_specification iteration_scheme See section 5.5 Loop Statements loop_statement compound_statement See section 5.1 Simple and Compound Statements - Sequences of Statements mod_clause record_representation_clause See section 13.5.1 Record Representation Clauses mode formal_object_declaration See section 12.4 Formal Objects parameter_specification See section 6.1 Subprogram Declarations modular_type_definition integer_type_definition See section 3.5.4 Integer Types multiplying_operator term See section 4.4 Expressions name abort_statement See section 9.8 Abort of a Task - Abort of a Sequence of Statements assignment_statement See section 5.2 Assignment Statements attribute_definition_clause See section 13.3 Representation Attributes default_name See section 12.6 Formal Subprograms entry_call_statement See section 9.5.3 Entry Calls exception_choice See section 11.2 Exception Handlers exception_renaming_declaration See section 8.5.2 Exception Renaming Declarations exit_statement See section 5.7 Exit Statements explicit_actual_parameter See section 6.4 Subprogram Calls explicit_dereference See section 4.1 Names explicit_generic_actual_parameter See section 12.3 Generic Instantiation formal_package_declaration See section 12.7 Formal Packages function_call See section 6.4 Subprogram Calls generic_instantiation See section 12.3 Generic Instantiation generic_renaming_declaration See section 8.5.5 Generic Renaming Declarations goto_statement See section 5.8 Goto Statements implicit_dereference See section 4.1 Names local_name See section 13.1 Representation Items object_renaming_declaration See section 8.5.1 Object Renaming Declarations package_renaming_declaration See section 8.5.3 Package Renaming Declarations parent_unit_name See section 10.1.1 Compilation Units - Library Units pragma_argument_association See section 2.8 Pragmas prefix See section 4.1 Names primary See section 4.4 Expressions procedure_call_statement See section 6.4 Subprogram Calls raise_statement See section 11.3 Raise Statements requeue_statement See section 9.5.4 Requeue Statements subprogram_renaming_declaration See section 8.5.4 Subprogram Renaming Declarations subtype_mark See section 3.2.2 Subtype Declarations type_conversion See section 4.6 Type Conversions use_package_clause See section 8.4 Use Clauses with_clause See section 10.1.2 Context Clauses - With Clauses named_array_aggregate array_aggregate See section 4.3.3 Array Aggregates null_statement simple_statement See section 5.1 Simple and Compound Statements - Sequences of Statements number_declaration basic_declaration See section 3.1 Declarations numeral base See section 2.4.2 Based Literals decimal_literal See section 2.4.1 Decimal Literals exponent See section 2.4.1 Decimal Literals numeric_literal primary See section 4.4 Expressions object_declaration basic_declaration See section 3.1 Declarations object_renaming_declaration renaming_declaration See section 8.5 Renaming Declarations operator_symbol defining_operator_symbol See section 6.1 Subprogram Declarations designator See section 6.1 Subprogram Declarations direct_name See section 4.1 Names selector_name See section 4.1.3 Selected Components ordinary_fixed_point_definition fixed_point_definition See section 3.5.9 Fixed Point Types other_control_function character See section 2.1 Character Set package_body library_unit_body See section 10.1.1 Compilation Units - Library Units proper_body See section 3.11 Declarative Parts package_body_stub body_stub See section 10.1.3 Subunits of Compilation Units package_declaration basic_declaration See section 3.1 Declarations library_unit_declaration See section 10.1.1 Compilation Units - Library Units package_renaming_declaration library_unit_renaming_declaration See section 10.1.1 Compilation Units - Library Units renaming_declaration See section 8.5 Renaming Declarations package_specification generic_package_declaration See section 12.1 Generic Declarations package_declaration See section 7.1 Package Specifications and Declarations parameter_and_result_profile access_to_subprogram_definition See section 3.10 Access Types subprogram_specification See section 6.1 Subprogram Declarations parameter_association actual_parameter_part See section 6.4 Subprogram Calls parameter_profile accept_statement See section 9.5.2 Entries and Accept Statements access_to_subprogram_definition See section 3.10 Access Types entry_body_formal_part See section 9.5.2 Entries and Accept Statements entry_declaration See section 9.5.2 Entries and Accept Statements subprogram_specification See section 6.1 Subprogram Declarations parameter_specification formal_part See section 6.1 Subprogram Declarations parent_unit_name defining_program_unit_name See section 6.1 Subprogram Declarations designator See section 6.1 Subprogram Declarations package_body See section 7.2 Package Bodies package_specification See section 7.1 Package Specifications and Declarations subunit See section 10.1.3 Subunits of Compilation Units position component_clause See section 13.5.1 Record Representation Clauses positional_array_aggregate array_aggregate See section 4.3.3 Array Aggregates pragma_argument_association pragma See section 2.8 Pragmas prefix attribute_reference See section 4.1.4 Attributes function_call See section 6.4 Subprogram Calls indexed_component See section 4.1.1 Indexed Components procedure_call_statement See section 6.4 Subprogram Calls range_attribute_reference See section 4.1.4 Attributes selected_component See section 4.1.3 Selected Components slice See section 4.1.2 Slices primary factor See section 4.4 Expressions private_extension_declaration type_declaration See section 3.2.1 Type Declarations private_type_declaration type_declaration See section 3.2.1 Type Declarations procedure_call_statement simple_statement See section 5.1 Simple and Compound Statements - Sequences of Statements proper_body body See section 3.11 Declarative Parts subunit See section 10.1.3 Subunits of Compilation Units protected_body proper_body See section 3.11 Declarative Parts protected_body_stub body_stub See section 10.1.3 Subunits of Compilation Units protected_definition protected_type_declaration See section 9.4 Protected Units and Protected Objects single_protected_declaration See section 9.4 Protected Units and Protected Objects protected_element_declaration protected_definition See section 9.4 Protected Units and Protected Objects protected_operation_declaration protected_definition See section 9.4 Protected Units and Protected Objects protected_element_declaration See section 9.4 Protected Units and Protected Objects protected_operation_item protected_body See section 9.4 Protected Units and Protected Objects protected_type_declaration full_type_declaration See section 3.2.1 Type Declarations qualified_expression allocator See section 4.8 Allocators code_statement See section 13.8 Machine Code Insertions primary See section 4.4 Expressions raise_statement simple_statement See section 5.1 Simple and Compound Statements - Sequences of Statements range discrete_range See section 3.6.1 Index Constraints and Discrete Ranges discrete_subtype_definition See section 3.6 Array Types range_constraint See section 3.5 Scalar Types relation See section 4.4 Expressions range_attribute_designator range_attribute_reference See section 4.1.4 Attributes range_attribute_reference range See section 3.5 Scalar Types range_constraint delta_constraint See section J.3 Reduced Accuracy Subtypes digits_constraint See section 3.5.9 Fixed Point Types scalar_constraint See section 3.2.2 Subtype Declarations real_range_specification decimal_fixed_point_definition See section 3.5.9 Fixed Point Types floating_point_definition See section 3.5.7 Floating Point Types ordinary_fixed_point_definition See section 3.5.9 Fixed Point Types real_type_definition type_definition See section 3.2.1 Type Declarations record_aggregate aggregate See section 4.3 Aggregates record_component_association record_component_association_list See section 4.3.1 Record Aggregates record_component_association_list extension_aggregate See section 4.3.2 Extension Aggregates record_aggregate See section 4.3.1 Record Aggregates record_definition record_extension_part See section 3.9.1 Type Extensions record_type_definition See section 3.8 Record Types record_extension_part derived_type_definition See section 3.4 Derived Types and Classes record_representation_clause representation_clause See section 13.1 Representation Items record_type_definition type_definition See section 3.2.1 Type Declarations relation expression See section 4.4 Expressions relational_operator relation See section 4.4 Expressions renaming_declaration basic_declaration See section 3.1 Declarations representation_clause basic_declarative_item See section 3.11 Declarative Parts component_item See section 3.8 Record Types protected_operation_declaration See section 9.4 Protected Units and Protected Objects protected_operation_item See section 9.4 Protected Units and Protected Objects task_item See section 9.1 Task Units and Task Objects requeue_statement simple_statement See section 5.1 Simple and Compound Statements - Sequences of Statements return_statement simple_statement See section 5.1 Simple and Compound Statements - Sequences of Statements scalar_constraint constraint See section 3.2.2 Subtype Declarations select_alternative selective_accept See section 9.7.1 Selective Accept select_statement compound_statement See section 5.1 Simple and Compound Statements - Sequences of Statements selected_component name See section 4.1 Names selective_accept select_statement See section 9.7 Select Statements selector_name component_choice_list See section 4.3.1 Record Aggregates discriminant_association See section 3.7.1 Discriminant Constraints generic_association See section 12.3 Generic Instantiation parameter_association See section 6.4 Subprogram Calls selected_component See section 4.1.3 Selected Components sequence_of_statements abortable_part See section 9.7.4 Asynchronous Transfer of Control accept_alternative See section 9.7.1 Selective Accept case_statement_alternative See section 5.4 Case Statements conditional_entry_call See section 9.7.3 Conditional Entry Calls delay_alternative See section 9.7.1 Selective Accept entry_call_alternative See section 9.7.2 Timed Entry Calls exception_handler See section 11.2 Exception Handlers handled_sequence_of_statements See section 11.2 Exception Handlers if_statement See section 5.3 If Statements loop_statement See section 5.5 Loop Statements selective_accept See section 9.7.1 Selective Accept triggering_alternative See section 9.7.4 Asynchronous Transfer of Control signed_integer_type_definition integer_type_definition See section 3.5.4 Integer Types simple_expression first_bit See section 13.5.1 Record Representation Clauses last_bit See section 13.5.1 Record Representation Clauses range See section 3.5 Scalar Types real_range_specification See section 3.5.7 Floating Point Types relation See section 4.4 Expressions signed_integer_type_definition See section 3.5.4 Integer Types simple_statement statement See section 5.1 Simple and Compound Statements - Sequences of Statements single_protected_declaration object_declaration See section 3.3.1 Object Declarations single_task_declaration object_declaration See section 3.3.1 Object Declarations slice name See section 4.1 Names space_character graphic_character See section 2.1 Character Set special_character graphic_character See section 2.1 Character Set statement sequence_of_statements See section 5.1 Simple and Compound Statements - Sequences of Statements statement_identifier block_statement See section 5.6 Block Statements label See section 5.1 Simple and Compound Statements - Sequences of Statements loop_statement See section 5.5 Loop Statements string_element string_literal See section 2.6 String Literals string_literal operator_symbol See section 6.1 Subprogram Declarations primary See section 4.4 Expressions subprogram_body library_unit_body See section 10.1.1 Compilation Units - Library Units proper_body See section 3.11 Declarative Parts protected_operation_item See section 9.4 Protected Units and Protected Objects subprogram_body_stub body_stub See section 10.1.3 Subunits of Compilation Units subprogram_declaration basic_declaration See section 3.1 Declarations library_unit_declaration See section 10.1.1 Compilation Units - Library Units protected_operation_declaration See section 9.4 Protected Units and Protected Objects protected_operation_item See section 9.4 Protected Units and Protected Objects subprogram_default formal_subprogram_declaration See section 12.6 Formal Subprograms subprogram_renaming_declaration library_unit_renaming_declaration See section 10.1.1 Compilation Units - Library Units renaming_declaration See section 8.5 Renaming Declarations subprogram_specification abstract_subprogram_declaration See section 6.1 Subprogram Declarations formal_subprogram_declaration See section 12.6 Formal Subprograms generic_subprogram_declaration See section 12.1 Generic Declarations subprogram_body See section 6.3 Subprogram Bodies subprogram_body_stub See section 10.1.3 Subunits of Compilation Units subprogram_declaration See section 6.1 Subprogram Declarations subprogram_renaming_declaration See section 8.5.4 Subprogram Renaming Declarations subtype_declaration basic_declaration See section 3.1 Declarations subtype_indication access_to_object_definition See section 3.10 Access Types allocator See section 4.8 Allocators component_definition See section 3.6 Array Types derived_type_definition See section 3.4 Derived Types and Classes discrete_range See section 3.6.1 Index Constraints and Discrete Ranges discrete_subtype_definition See section 3.6 Array Types object_declaration See section 3.3.1 Object Declarations private_extension_declaration See section 7.3 Private Types and Private Extensions subtype_declaration See section 3.2.2 Subtype Declarations subtype_mark access_definition See section 3.10 Access Types ancestor_part See section 4.3.2 Extension Aggregates discriminant_specification See section 3.7 Discriminants explicit_generic_actual_parameter See section 12.3 Generic Instantiation formal_derived_type_definition See section 12.5.1 Formal Private and Derived Types formal_object_declaration See section 12.4 Formal Objects index_subtype_definition See section 3.6 Array Types object_renaming_declaration See section 8.5.1 Object Renaming Declarations parameter_and_result_profile See section 6.1 Subprogram Declarations parameter_specification See section 6.1 Subprogram Declarations qualified_expression See section 4.7 Qualified Expressions relation See section 4.4 Expressions subtype_indication See section 3.2.2 Subtype Declarations type_conversion See section 4.6 Type Conversions use_type_clause See section 8.4 Use Clauses subunit compilation_unit See section 10.1.1 Compilation Units - Library Units task_body proper_body See section 3.11 Declarative Parts task_body_stub body_stub See section 10.1.3 Subunits of Compilation Units task_definition single_task_declaration See section 9.1 Task Units and Task Objects task_type_declaration See section 9.1 Task Units and Task Objects task_item task_definition See section 9.1 Task Units and Task Objects task_type_declaration full_type_declaration See section 3.2.1 Type Declarations term simple_expression See section 4.4 Expressions terminate_alternative select_alternative See section 9.7.1 Selective Accept timed_entry_call select_statement See section 9.7 Select Statements triggering_alternative asynchronous_select See section 9.7.4 Asynchronous Transfer of Control triggering_statement triggering_alternative See section 9.7.4 Asynchronous Transfer of Control type_conversion name See section 4.1 Names type_declaration basic_declaration See section 3.1 Declarations type_definition full_type_declaration See section 3.2.1 Type Declarations unary_adding_operator simple_expression See section 4.4 Expressions unconstrained_array_definition array_type_definition See section 3.6 Array Types underline based_numeral See section 2.4.2 Based Literals identifier See section 2.3 Identifiers numeral See section 2.4.1 Decimal Literals unknown_discriminant_part discriminant_part See section 3.7 Discriminants use_clause basic_declarative_item See section 3.11 Declarative Parts context_item See section 10.1.2 Context Clauses - With Clauses generic_formal_part See section 12.1 Generic Declarations use_package_clause use_clause See section 8.4 Use Clauses use_type_clause use_clause See section 8.4 Use Clauses variant variant_part See section 3.8.1 Variant Parts and Discrete Choices variant_part component_list See section 3.8 Record Types with_clause context_item See section 10.1.2 Context Clauses - With Clauses
Go to the first, previous, next, last section, table of contents.