3 -- Grant of Unlimited Rights
5 -- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
6 -- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
7 -- unlimited rights in the software and documentation contained herein.
8 -- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
9 -- this public release, the Government intends to confer upon all
10 -- recipients unlimited rights equal to those held by the Government.
11 -- These rights include rights to use, duplicate, release or disclose the
12 -- released technical data and computer software in whole or in part, in
13 -- any manner and for any purpose whatsoever, and to have or permit others
18 -- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
19 -- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
20 -- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
21 -- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
22 -- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
23 -- PARTICULAR PURPOSE OF SAID MATERIAL.
26 -- AFTER THE FULL DECLARATION OF A DEFERRED CONSTANT, THE VALUE OF
27 -- THE CONSTANT MAY BE USED IN ANY EXPRESSION, PARTICULARLY
28 -- EXPRESSIONS IN WHICH THE USE WOULD BE ILLEGAL BEFORE THE FULL
32 -- BCB 03/14/88 CREATED ORIGINAL TEST.
34 WITH REPORT
; USE REPORT
;
39 TYPE GENERAL_PURPOSE
IS LIMITED PRIVATE;
40 Y
: IN OUT GENERAL_PURPOSE
;
41 FUNCTION IDENT
(X
: GENERAL_PURPOSE
) RETURN GENERAL_PURPOSE
;
43 FUNCTION IDENT
(X
: GENERAL_PURPOSE
) RETURN GENERAL_PURPOSE
IS
55 TYPE T
IS RANGE 1 .. 100;
57 TYPE A
IS ARRAY(1..2) OF T
;
59 TYPE B
IS ARRAY(INTEGER RANGE <>) OF T
;
61 TYPE D
(DISC
: T
) IS RECORD
69 FUNCTION IDENT_T
IS NEW IDENT
(T
, PARAM
);
71 FUNCTION F
(X
: T
:= C
) RETURN T
;
73 SUBTYPE RAN
IS T
RANGE 1 .. C
;
75 SUBTYPE IND
IS B
(1..INTEGER(C
));
77 SUBTYPE DIS
IS D
(DISC
=> C
);
81 CON
: CONSTANT T
:= C
;
85 PAR
: T
:= IDENT_T
(C
);
87 RANOBJ
: T
RANGE 1 .. C
:= C
;
89 INDOBJ
: B
(1..INTEGER(C
));
111 TYPE A1
IS ARRAY(1..2) OF T
;
113 TYPE B1
IS ARRAY(INTEGER RANGE <>) OF T
;
115 TYPE D1
(DISC1
: T
) IS RECORD
119 SUBTYPE RAN1
IS T
RANGE 1 .. C
;
121 SUBTYPE IND1
IS B1
(1..INTEGER(C
));
123 SUBTYPE DIS1
IS D1
(DISC1
=> C
);
129 CON1
: CONSTANT T
:= C
;
133 PAR1
: T
:= IDENT_T
(C
);
135 RANOBJ1
: T
RANGE 1 .. C
:= C
;
137 INDOBJ1
: B1
(1..INTEGER(C
));
143 FUNCTION F
(X
: T
:= C
) RETURN T
IS
148 PACKAGE BODY GENPACK
IS
153 PACKAGE BODY NEWPACK
IS
158 PACKAGE PACK
IS NEW GENPACK
(FOR_PAR
=> C
);
160 PACKAGE NPACK
IS NEW NEWPACK
(IN_PAR
=> C
);
162 TEST
("C74306A", "AFTER THE FULL DECLARATION OF A DEFERRED " &
163 "CONSTANT, THE VALUE OF THE CONSTANT MAY " &
164 "BE USED IN ANY EXPRESSION, PARTICULARLY " &
165 "EXPRESSIONS IN WHICH THE USE WOULD BE " &
166 "ILLEGAL BEFORE THE FULL DECLARATION");
168 IF OBJ
/= IDENT_T
(50) THEN
169 FAILED
("IMPROPER VALUE FOR OBJ");
172 IF CON
/= IDENT_T
(50) THEN
173 FAILED
("IMPROPER VALUE FOR CON");
176 IF ARR
/= (IDENT_T
(5), IDENT_T
(50)) THEN
177 FAILED
("IMPROPER VALUES FOR ARR");
180 IF PAR
/= IDENT_T
(50) THEN
181 FAILED
("IMPROPER VALUE FOR PAR");
184 IF OBJ1
/= IDENT_T
(50) THEN
185 FAILED
("IMPROPER VALUE FOR OBJ1");
188 IF CON1
/= IDENT_T
(50) THEN
189 FAILED
("IMPROPER VALUE FOR CON1");
192 IF ARR1
/= (IDENT_T
(5), IDENT_T
(50)) THEN
193 FAILED
("IMPROPER VALUES FOR ARR1");
196 IF PAR1
/= IDENT_T
(50) THEN
197 FAILED
("IMPROPER VALUE FOR PAR1");
200 IF PACK
.VAL
/= IDENT_T
(50) THEN
201 FAILED
("IMPROPER VALUE FOR PACK.VAL");
204 IF NPACK
.IN_VAL
/= IDENT_T
(50) THEN
205 FAILED
("IMPROPER VALUE FOR NPACK.IN_VAL");
208 IF RAN
'LAST /= IDENT_T
(50) THEN
209 FAILED
("IMPROPER VALUE FOR RAN'LAST");
212 IF RANOBJ
/= IDENT_T
(50) THEN
213 FAILED
("IMPROPER VALUE FOR RANOBJ");
216 IF IND
'LAST /= IDENT_INT
(50) THEN
217 FAILED
("IMPROPER VALUE FOR IND'LAST");
220 IF INDOBJ
'LAST /= IDENT_INT
(50) THEN
221 FAILED
("IMPROPER VALUE FOR INDOBJ'LAST");
224 IF DIS_VAL
.DISC
/= IDENT_T
(50) THEN
225 FAILED
("IMPROPER VALUE FOR DIS_VAL.DISC");
228 IF REN
/= IDENT_T
(50) THEN
229 FAILED
("IMPROPER VALUE FOR REN");
232 IF RAN1
'LAST /= IDENT_T
(50) THEN
233 FAILED
("IMPROPER VALUE FOR RAN1'LAST");
236 IF RANOBJ1
/= IDENT_T
(50) THEN
237 FAILED
("IMPROPER VALUE FOR RANOBJ1");
240 IF IND1
'LAST /= IDENT_INT
(50) THEN
241 FAILED
("IMPROPER VALUE FOR IND1'LAST");
244 IF INDOBJ1
'LAST /= IDENT_INT
(50) THEN
245 FAILED
("IMPROPER VALUE FOR INDOBJ1'LAST");
248 IF DIS_VAL1
.DISC1
/= IDENT_T
(50) THEN
249 FAILED
("IMPROPER VALUE FOR DIS_VAL1.DISC1");
252 IF REN1
/= IDENT_T
(50) THEN
253 FAILED
("IMPROPER VALUE FOR REN1");
258 IF FUNCVAR
/= IDENT_T
(50) THEN
259 FAILED
("IMPROPER VALUE FOR FUNCVAR");
267 TYPE ARR
IS ARRAY(1..2) OF T
;
271 VAL2
: ARR
:= (C
, C
);