================================================================================ Definite ================================================================================ package P is type A is array (1 .. 2) of Boolean; V : constant A := (1 => True, 2 => False); V2 : constant A := (1 => True, others => False); end P; -------------------------------------------------------------------------------- (compilation (compilation_unit (package_specification (identifier) (type_declaration (full_type_declaration (identifier) (type_definition (array_type_definition (constrained_array_definition (discrete_subtype_definition (range_g (simple_expression (term (factor (primary (numeric_literal))))) (simple_expression (term (factor (primary (numeric_literal))))))) (component_definition (subtype_indication (identifier)))))))) (object_declaration (defining_identifier_list (identifier)) (subtype_indication (identifier)) (assign_value (expression (relation (simple_expression (term (factor (primary (aggregate (array_aggregate (named_array_aggregate (array_component_association (discrete_choice_list (discrete_choice (expression (relation (simple_expression (term (factor (primary (numeric_literal))))))))) (expression (relation (simple_expression (term (factor (primary (identifier)))))))) (array_component_association (discrete_choice_list (discrete_choice (expression (relation (simple_expression (term (factor (primary (numeric_literal))))))))) (expression (relation (simple_expression (term (factor (primary (identifier))))))))))))))))))) (object_declaration (defining_identifier_list (identifier)) (subtype_indication (identifier)) (assign_value (expression (relation (simple_expression (term (factor (primary (aggregate (array_aggregate (named_array_aggregate (array_component_association (discrete_choice_list (discrete_choice (expression (relation (simple_expression (term (factor (primary (numeric_literal))))))))) (expression (relation (simple_expression (term (factor (primary (identifier)))))))) (array_component_association (discrete_choice_list (discrete_choice)) (expression (relation (simple_expression (term (factor (primary (identifier))))))))))))))))))) (identifier)))) ================================================================================ Definite-2 ================================================================================ package P is type A is array (1 .. 3) of Boolean; V : constant A := (1, 2, 3); end; -------------------------------------------------------------------------------- (compilation (compilation_unit (package_specification (identifier) (type_declaration (full_type_declaration (identifier) (type_definition (array_type_definition (constrained_array_definition (discrete_subtype_definition (range_g (simple_expression (term (factor (primary (numeric_literal))))) (simple_expression (term (factor (primary (numeric_literal))))))) (component_definition (subtype_indication (identifier)))))))) (object_declaration (defining_identifier_list (identifier)) (subtype_indication (identifier)) (assign_value (expression (relation (simple_expression (term (factor (primary (aggregate (array_aggregate (positional_array_aggregate (expression (relation (simple_expression (term (factor (primary (numeric_literal))))))) (expression (relation (simple_expression (term (factor (primary (numeric_literal))))))) (expression (relation (simple_expression (term (factor (primary (numeric_literal))))))))))))))))))))) ================================================================================ Indefinite ================================================================================ package P is type B is array (Natural range <>) of Boolean; V : constant B := (1 .. 2 => False); end P; -------------------------------------------------------------------------------- (compilation (compilation_unit (package_specification (identifier) (type_declaration (full_type_declaration (identifier) (type_definition (array_type_definition (unconstrained_array_definition (index_subtype_definition (identifier)) (component_definition (subtype_indication (identifier)))))))) (object_declaration (defining_identifier_list (identifier)) (subtype_indication (identifier)) (assign_value (expression (relation (simple_expression (term (factor (primary (aggregate (array_aggregate (named_array_aggregate (array_component_association (discrete_choice_list (discrete_choice (range_g (simple_expression (term (factor (primary (numeric_literal))))) (simple_expression (term (factor (primary (numeric_literal)))))))) (expression (relation (simple_expression (term (factor (primary (identifier))))))))))))))))))) (identifier)))) ================================================================================ 2D ================================================================================ package P is type C is array (Natural range <>, Integer range <>) of Boolean; V : constant C := (1 .. 2 => (1 .. 2 => False)); end P; -------------------------------------------------------------------------------- (compilation (compilation_unit (package_specification (identifier) (type_declaration (full_type_declaration (identifier) (type_definition (array_type_definition (unconstrained_array_definition (index_subtype_definition (identifier)) (index_subtype_definition (identifier)) (component_definition (subtype_indication (identifier)))))))) (object_declaration (defining_identifier_list (identifier)) (subtype_indication (identifier)) (assign_value (expression (relation (simple_expression (term (factor (primary (aggregate (array_aggregate (named_array_aggregate (array_component_association (discrete_choice_list (discrete_choice (range_g (simple_expression (term (factor (primary (numeric_literal))))) (simple_expression (term (factor (primary (numeric_literal)))))))) (expression (relation (simple_expression (term (factor (primary (aggregate (array_aggregate (named_array_aggregate (array_component_association (discrete_choice_list (discrete_choice (range_g (simple_expression (term (factor (primary (numeric_literal))))) (simple_expression (term (factor (primary (numeric_literal)))))))) (expression (relation (simple_expression (term (factor (primary (identifier))))))))))))))))))))))))))))) (identifier)))) ================================================================================ Index in array aggregates ================================================================================ procedure P is begin Arr := (for Index in 1 .. Count => Function_Returning_Limited (Index)); end; -------------------------------------------------------------------------------- (compilation (compilation_unit (proper_body (subprogram_body (subprogram_specification (procedure_specification (identifier))) (handled_sequence_of_statements (sequence_of_statements (statement (simple_statement (assignment_statement (identifier) (assign_value (expression (relation (simple_expression (term (factor (primary (aggregate (array_aggregate (named_array_aggregate (array_component_association (iterated_element_association (loop_parameter_specification (identifier) (discrete_subtype_definition (range_g (simple_expression (term (factor (primary (numeric_literal))))) (simple_expression (term (factor (primary (identifier)))))))) (expression (relation (simple_expression (term (factor (primary (function_call (identifier) (actual_parameter_part (parameter_association (expression (relation (simple_expression (term (factor (primary (identifier)))))))))))))))))))))))))))))))))))))