1-- Copyright 2020-2021 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 16package P is 17 18 type Kind_Type is (No_Kind, A_Kind, B_Kind); 19 20 type PID_Type is new Integer; 21 Default_Value : constant PID_Type := 0; 22 23 type Name_Type is array (1 ..3) of Character; 24 Name_Default_Value : constant Name_Type := "AAA"; 25 26 type Variable_Record_Type(Kind : Kind_Type := No_Kind) is record 27 case Kind is 28 when A_Kind => 29 Variable_Record_A : PID_Type := Default_Value; 30 31 when B_Kind => 32 Variable_Record_B : Name_Type := Name_Default_Value; 33 34 when No_Kind => 35 null; 36 37 end case; 38 end record; 39 40 type Complex_Variable_Record_Type (Kind : Kind_Type := No_Kind) is record 41 Complex_Variable_Record_Variable_Record : Variable_Record_Type(Kind); 42 end record; 43 44 type Top_Level_Record_Type is record 45 Top_Level_Record_Complex_Record : Complex_Variable_Record_Type; 46 end record; 47 48end P; 49