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