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.
25 -- CHECK THAT BECAUSE A GENERIC ACTUAL PROGRAM PARAMETER MUST BE A
26 -- SUBPROGRAM, AN ENUMERATION LITERAL, OR AN ENTRY WITH THE SAME
27 -- PARAMETER AND RESULT TYPE PROFILE AS THE FORMAL PARAMETER, AN
28 -- OVERLOADED NAME APPEARING AS AN ACTUAL PARAMETER CAN BE RESOLVED.
32 WITH REPORT
; USE REPORT
;
36 TEST
( "A87B59A", "CHECK THAT BECAUSE A GENERIC ACTUAL PROGRAM " &
37 "PARAMETER MUST BE A SUBPROGRAM, AN " &
38 "ENUMERATION LITERAL, OR AN ENTRY WITH THE " &
39 "SAME PARAMETER AND RESULT TYPE PROFILE AS " &
40 "THE FORMAL PARAMETER, AN OVERLOADED NAME " &
41 "APPEARING AS AN ACTUAL PARAMETER CAN BE " &
45 FUNCTION F1
RETURN INTEGER IS
50 FUNCTION F1
RETURN BOOLEAN IS
52 RETURN IDENT_BOOL
(TRUE);
57 WITH FUNCTION F
RETURN T
;
65 PROCEDURE P1
IS NEW P
(INTEGER, F1
);
66 PROCEDURE P2
IS NEW P
(BOOLEAN, F1
);
74 FUNCTION F1
(X
: INTEGER; B
: BOOLEAN) RETURN INTEGER IS
79 FUNCTION F1
(X
: INTEGER; B
: BOOLEAN) RETURN BOOLEAN IS
81 RETURN IDENT_BOOL
(B
);
84 FUNCTION F1
(B
: BOOLEAN; X
: INTEGER) RETURN BOOLEAN IS
86 RETURN IDENT_BOOL
(B
);
92 WITH FUNCTION F
(A
: T1
; B
: T2
) RETURN T1
;
103 WITH FUNCTION F
(A
: T1
; B
: T2
) RETURN T2
;
111 PROCEDURE PROC1
IS NEW P1
(INTEGER, BOOLEAN, F1
);
112 PROCEDURE PROC2
IS NEW P1
(BOOLEAN, INTEGER, F1
);
113 PROCEDURE PROC3
IS NEW P2
(INTEGER, BOOLEAN, F1
);
121 TYPE COLOR
IS (RED
, YELLOW
, BLUE
);
124 TYPE LIGHT
IS (RED
, YELLOW
, GREEN
);
129 WITH FUNCTION F
RETURN T
;
130 FUNCTION GF
RETURN T
;
132 FUNCTION GF
RETURN T
IS
134 RETURN T
'VAL (IDENT_INT
(T
'POS (F
)));
137 FUNCTION F1
IS NEW GF
(COLOR
, RED
);
138 FUNCTION F2
IS NEW GF
(LIGHT
, YELLOW
);
146 ENTRY E
(X
: INTEGER);
147 ENTRY E
(X
: BOOLEAN);
148 ENTRY E
(X
: INTEGER; Y
: BOOLEAN);
149 ENTRY E
(X
: BOOLEAN; Y
: INTEGER);
156 ACCEPT E
(X
: INTEGER);
158 ACCEPT E
(X
: BOOLEAN);
160 ACCEPT E
(X
: INTEGER; Y
: BOOLEAN);
162 ACCEPT E
(X
: BOOLEAN; Y
: INTEGER);
172 WITH PROCEDURE P1
(X
: T1
);
173 WITH PROCEDURE P2
(X
: T1
; Y
: T2
);
183 P2
(T1
'VAL (0), T2
'VAL (1));
188 PACKAGE PK1
IS NEW PKG
(INTEGER, BOOLEAN, TK
.E
, TK
.E
);
189 PACKAGE PK2
IS NEW PKG
(BOOLEAN, INTEGER, TK
.E
, TK
.E
);
197 FUNCTION "+" (X
, Y
: BOOLEAN) RETURN BOOLEAN IS
199 RETURN IDENT_BOOL
(X
OR Y
);
204 WITH FUNCTION "+" (X
, Y
: T
) RETURN T
;
210 S
:= "+" (T
'VAL (0), T
'VAL (1));
213 PROCEDURE P1
IS NEW P
(BOOLEAN, "+");
214 PROCEDURE P2
IS NEW P
(INTEGER, "+");
222 TYPE ADD_OPS
IS ('+', '-', '&');
227 TYPE T3
IS ARRAY (POSITIVE RANGE <> ) OF T2
;
230 WITH FUNCTION F1
RETURN T1
;
231 WITH FUNCTION F2
(X
: T2
; Y
: T3
) RETURN T3
;
236 S
: T3
(IDENT_INT
(1) .. IDENT_INT
(2));
242 PROCEDURE P1
IS NEW P
(ADD_OPS
, CHARACTER, STRING,