Syntax (GNAT Reference Manual)

#### 18.2.2.1 Syntax ¶

    delta_aggregate ::= record_delta_aggregate | array_delta_aggregate

    record_delta_aggregate ::=
      ( base_expression with delta record_subcomponent_association_list )

    record_subcomponent_association_list ::=
      record_subcomponent_association {, record_subcomponent_association}

    record_subcomponent_association ::=
      record_subcomponent_choice_list => expression

    record_subcomponent_choice_list ::=
      record_subcomponent_choice {'|' record_subcomponent_choice}

    record_subcomponent_choice ::=
        component_selector_name
      | record_subcomponent_choice (expression)
      | record_subcomponent_choice . component_selector_name

    array_delta_aggregate ::=
        ( base_expression with delta array_component_association_list )
      | '[' base_expression with delta array_component_association_list ']'
      | ( base_expression with delta array_subcomponent_association_list )
      | '[' base_expression with delta array_subcomponent_association_list ']'

    array_subcomponent_association_list ::=
      array_subcomponent_association {, array_subcomponent_association}

    array_subcomponent_association ::=
      array_subcomponent_choice_list => expression

    array_subcomponent_choice_list ::=
      array_subcomponent_choice {'|' array_subcomponent_choice}

    array_subcomponent_choice ::=
        ( expression )
      | array_subcomponent_choice (expression)
      | array_subcomponent_choice . component_selector_name