subtype

Explicación

Una declaración de subtipo declara un subtipo de un tipo declarado previamente. Un subtipo define un subconjunto restringido de valores de un tipo base con atributos específicos. Se declara utilizando la palabra subtype en vez de type; en la definición del subtipo hay que indicar cuál es el tipo base del mismo.

Sintaxis

subtype_declaration ::= 
subtype defining_identifier is subtype_indication;
subtype_indication ::= [null_exclusion] subtype_mark [constraint]
subtype_mark ::= subtype_name
constraint ::= scalar_constraint | composite_constraint
scalar_constraint ::=
range_constraint | digits_constraint | delta_constraint
composite_constraint ::=
index_constraint | discriminant_constraint
index_constraint ::= (discrete_range {, discrete_range})
discrete_range ::= discrete_subtype_indication | rango

Ejemplo

type Semana is (Lun, Mar, Mie, Jue, Vie, Sab, Dom);
---------------------------------------------------
subtype Laborables is Semana range Lun .. Vie;
subtype Entero is Integer;
subtype Natural is Integer range 0 .. Integer'Last;
subtype Vector_Rest is Vector_Libre (1 .. 10);