Partes discriminantes

Explicación

Un tipo compuesto que no sea un array o una interfaz pude tener discriminantes que parametrizan el tipo.

Sintaxis

discriminant_part ::= unknown_discriminant_part | known_discriminant_part

unknown_discriminant_part ::= (<>)

known_discriminant_part ::= 
   (discriminant_specification {; discriminant_specification})

discriminant_specification ::= 
    defining_identifier_list : [null_exclusion] subtype_mark [:= expression]
  | defining_identifier_list : access_definition [:= expression]

Ejemplo

type Matriz_Base is array (Integer range <>, Integer range <>) of Float;
--  Record con dos discriminantes (Filas y Columnas)
type Matriz (Filas, Columnas: Positive) is record
   Valores : Matriz_Base (1 .. Filas, 1 .. Columnas);
end Matriz;