1package Discr14 is
2
3  type COMPLETION_CODE is (SUCCESS, FAILURE, NONE);
4
5  type T_SW_TYPE is (NONE, COMPLETION_CODE_TYPE);
6
7  type T_COMPLETION_CODE_RANGE (CONSTRAINED: BOOLEAN := FALSE) is
8  record
9     case CONSTRAINED is
10        when TRUE =>
11           FIRST  : COMPLETION_CODE := SUCCESS;
12           LAST   : COMPLETION_CODE := FAILURE;
13        when FALSE =>
14           null;
15     end case;
16  end record;
17
18  type T_SW_DIMENSIONS is range 0 .. 3;
19
20  type T_SW_INDEX_LIST is array (T_SW_DIMENSIONS range <>) of POSITIVE;
21
22  type T_SW_TYPE_DESCRIPTOR (SW_TYPE   :  T_SW_TYPE       := NONE;
23                             DIMENSION :  T_SW_DIMENSIONS := 0)  is
24  record
25     BOUNDS : T_SW_INDEX_LIST (1 .. DIMENSION);
26
27     case SW_TYPE is
28
29        when COMPLETION_CODE_TYPE  =>
30           COMPLETION_CODE_RANGE   : T_COMPLETION_CODE_RANGE;
31
32        when OTHERS  =>
33           null;
34
35     end case;
36  end record;
37
38  type SW_TYPE_INFO is access T_SW_TYPE_DESCRIPTOR;
39
40  procedure ASSIGN(TARGET : in out SW_TYPE_INFO; SOURCE : in SW_TYPE_INFO) ;
41
42end Discr14;
43