1 1.1.1.3 christos -- Copyright 2020-2024 Free Software Foundation, Inc. 2 1.1 christos -- 3 1.1 christos -- This program is free software; you can redistribute it and/or modify 4 1.1 christos -- it under the terms of the GNU General Public License as published by 5 1.1 christos -- the Free Software Foundation; either version 3 of the License, or 6 1.1 christos -- (at your option) any later version. 7 1.1 christos -- 8 1.1 christos -- This program is distributed in the hope that it will be useful, 9 1.1 christos -- but WITHOUT ANY WARRANTY; without even the implied warranty of 10 1.1 christos -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 1.1 christos -- GNU General Public License for more details. 12 1.1 christos -- 13 1.1 christos -- You should have received a copy of the GNU General Public License 14 1.1 christos -- along with this program. If not, see <http://www.gnu.org/licenses/>. 15 1.1 christos 16 1.1 christos package Pck is 17 1.1 christos 18 1.1 christos type Rec_Type (C : Character := 'd') is record 19 1.1 christos case C is 20 1.1 christos when Character'First => X_First : Integer; 21 1.1 christos when Character'Val (127) => X_127 : Integer; 22 1.1 christos when Character'Val (128) => X_128 : Integer; 23 1.1 christos when Character'Last => X_Last : Integer; 24 1.1 christos when others => null; 25 1.1 christos end case; 26 1.1 christos end record; 27 1.1 christos 28 1.1 christos type Second_Type (I : Integer) is record 29 1.1 christos One: Integer; 30 1.1 christos case I is 31 1.1 christos when -5 .. 5 => 32 1.1 christos X : Integer; 33 1.1 christos when others => 34 1.1 christos Y : Integer; 35 1.1 christos end case; 36 1.1 christos end record; 37 1.1 christos 38 1.1 christos type Nested_And_Variable (One, Two: Integer) is record 39 1.1 christos Str : String (1 .. One); 40 1.1 christos case One is 41 1.1 christos when 0 => 42 1.1 christos null; 43 1.1 christos when others => 44 1.1 christos OneValue : Integer; 45 1.1 christos Str2 : String (1 .. Two); 46 1.1 christos case Two is 47 1.1 christos when 0 => 48 1.1 christos null; 49 1.1 christos when others => 50 1.1 christos TwoValue : Integer; 51 1.1 christos end case; 52 1.1 christos end case; 53 1.1 christos end record; 54 1.1 christos end Pck; 55