-- Copyright 2005-2015 Free Software Foundation, Inc. -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 3 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see . procedure P is type Index is (One, Two, Three); type Table is array (Integer range 1 .. 3) of Integer; type ETable is array (Index) of Integer; type RTable is array (Index range Two .. Three) of Integer; type UTable is array (Positive range <>) of Integer; type PTable is array (Index) of Boolean; pragma Pack (PTable); function Get_UTable (I : Integer) return UTable is begin return Utable'(1 => I, 2 => 2, 3 => 3); end Get_UTable; One_Two_Three : Table := (1, 2, 3); E_One_Two_Three : ETable := (1, 2, 3); R_Two_Three : RTable := (2, 3); U_One_Two_Three : UTable := Get_UTable (1); P_One_Two_Three : PTable := (False, True, True); Few_Reps : UTable := (1, 2, 3, 3, 3, 3, 3, 4, 5); Many_Reps : UTable := (1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 5); Empty : array (1 .. 0) of Integer := (others => 0); begin One_Two_Three (1) := 4; -- START E_One_Two_Three (One) := 4; R_Two_Three (Two) := 4; U_One_Two_Three (U_One_Two_Three'First) := 4; P_One_Two_Three (One) := True; Few_Reps (Few_Reps'First) := 2; Many_Reps (Many_Reps'First) := 2; Empty := (others => 1); end P;