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 ALL OPERATOR SYMBOLS CAN BE USED IN (OVERLOADED)
26 -- FUNCTION SPECIFICATIONS WITH THE REQUIRED NUMBER OF PARAMETERS.
28 -- (A) THROUGH (P): "=", "AND", "OR", "XOR", "<", "<=",
29 -- ">", ">=", "&", "*", "/", "MOD", "REM", "**", "+", "-",
30 -- RESPECTIVELY. ALL OF THESE HAVE TWO PARAMETERS.
31 -- (Q), (R), (S), AND (T): "+", "-", "NOT", "ABS", RESPECTIVELY,
32 -- WITH ONE PARAMETER.
44 TEST
("C67002A", "USE OF OPERATOR SYMBOLS IN " &
45 "(OVERLOADED) FUNCTION SPECIFICATIONS");
47 -------------------------------------------------
51 TYPE LP
IS LIMITED PRIVATE;
52 FUNCTION "=" (LPA
, LPB
: LP
) RETURN BOOLEAN;
54 TYPE LP
IS NEW INTEGER;
61 FUNCTION "=" (LPA
, LPB
: LP
) RETURN BOOLEAN IS
66 LP1
:= LP
(IDENT_INT
(7));
67 LP2
:= LP
(IDENT_INT
(8));
71 IF (LP1
= LP2
) OR NOT (LP2
= LP1
) OR
72 (LP1
= LP1
) OR (LP2
/= LP1
) THEN
73 FAILED
("OVERLOADING OF ""="" OPERATOR DEFECTIVE");
77 -------------------------------------------------
80 FUNCTION "AND" (I1
, I2
: INTEGER) RETURN CHARACTER IS
89 IF (IDENT_INT
(10) AND 1) /= 'G' OR
90 (5 AND 10) /= 'L' THEN
91 FAILED
("OVERLOADING OF ""AND"" OPERATOR DEFECTIVE");
95 -------------------------------------------------
98 FUNCTION "OR" (I1
, I2
: INTEGER) RETURN CHARACTER IS
107 IF (IDENT_INT
(10) OR 1) /= 'G' OR
108 (5 OR 10) /= 'L' THEN
109 FAILED
("OVERLOADING OF ""OR"" OPERATOR DEFECTIVE");
113 -------------------------------------------------
116 FUNCTION "XOR" (I1
, I2
: INTEGER) RETURN CHARACTER IS
125 IF (IDENT_INT
(10) XOR 1) /= 'G' OR
126 (5 XOR 10) /= 'L' THEN
127 FAILED
("OVERLOADING OF ""XOR"" OPERATOR DEFECTIVE");
131 -------------------------------------------------
134 FUNCTION "<" (I1
, I2
: INTEGER) RETURN CHARACTER IS
143 IF (IDENT_INT
(10) < 1) /= 'G' OR
145 FAILED
("OVERLOADING OF ""<"" OPERATOR DEFECTIVE");
149 -------------------------------------------------
152 FUNCTION "<=" (I1
, I2
: INTEGER) RETURN CHARACTER IS
161 IF (IDENT_INT
(10) <= 1) /= 'G' OR
162 (5 <= 10) /= 'L' THEN
163 FAILED
("OVERLOADING OF ""<="" OPERATOR DEFECTIVE");
167 -------------------------------------------------
170 FUNCTION ">" (I1
, I2
: INTEGER) RETURN CHARACTER IS
179 IF (IDENT_INT
(10) > 1) /= 'G' OR
181 FAILED
("OVERLOADING OF "">"" OPERATOR DEFECTIVE");
185 -------------------------------------------------
188 FUNCTION ">=" (I1
, I2
: INTEGER) RETURN CHARACTER IS
197 IF (IDENT_INT
(10) >= 1) /= 'G' OR
198 (5 >= 10) /= 'L' THEN
199 FAILED
("OVERLOADING OF "">="" OPERATOR DEFECTIVE");
203 -------------------------------------------------
206 FUNCTION "&" (I1
, I2
: INTEGER) RETURN CHARACTER IS
215 IF (IDENT_INT
(10) & 1) /= 'G' OR
217 FAILED
("OVERLOADING OF ""&"" OPERATOR DEFECTIVE");
221 -------------------------------------------------
224 FUNCTION "*" (I1
, I2
: INTEGER) RETURN CHARACTER IS
233 IF (IDENT_INT
(10) * 1) /= 'G' OR
235 FAILED
("OVERLOADING OF ""*"" OPERATOR DEFECTIVE");
239 -------------------------------------------------
242 FUNCTION "/" (I1
, I2
: INTEGER) RETURN CHARACTER IS
251 IF (IDENT_INT
(10) / 1) /= 'G' OR
253 FAILED
("OVERLOADING OF ""/"" OPERATOR DEFECTIVE");
257 -------------------------------------------------
260 FUNCTION "MOD" (I1
, I2
: INTEGER) RETURN CHARACTER IS
269 IF (IDENT_INT
(10) MOD 1) /= 'G' OR
270 (5 MOD 10) /= 'L' THEN
271 FAILED
("OVERLOADING OF ""MOD"" OPERATOR DEFECTIVE");
275 -------------------------------------------------
278 FUNCTION "REM" (I1
, I2
: INTEGER) RETURN CHARACTER IS
287 IF (IDENT_INT
(10) REM 1) /= 'G' OR
288 (5 REM 10) /= 'L' THEN
289 FAILED
("OVERLOADING OF ""REM"" OPERATOR DEFECTIVE");
293 -------------------------------------------------
296 FUNCTION "**" (I1
, I2
: INTEGER) RETURN CHARACTER IS
305 IF (IDENT_INT
(10) ** 1) /= 'G' OR
306 (5 ** 10) /= 'L' THEN
307 FAILED
("OVERLOADING OF ""**"" OPERATOR DEFECTIVE");
311 -------------------------------------------------
314 FUNCTION "+" (I1
, I2
: INTEGER) RETURN CHARACTER IS
323 IF (IDENT_INT
(10) + 1) /= 'G' OR
325 FAILED
("OVERLOADING OF ""+"" OPERATOR DEFECTIVE");
329 -------------------------------------------------
332 FUNCTION "-" (I1
, I2
: INTEGER) RETURN CHARACTER IS
341 IF (IDENT_INT
(10) - 1) /= 'G' OR
343 FAILED
("OVERLOADING OF ""-"" OPERATOR DEFECTIVE");
347 -------------------------------------------------
350 FUNCTION "+" (I1
: INTEGER) RETURN CHARACTER IS
352 IF I1
< IDENT_INT
(0) THEN
359 IF (+ IDENT_INT
(25) /= 'P') OR
360 (+ (0-25) /= 'N') THEN
361 FAILED
("OVERLOADING OF ""+"" " &
362 "OPERATOR (ONE OPERAND) DEFECTIVE");
366 -------------------------------------------------
369 FUNCTION "-" (I1
: INTEGER) RETURN CHARACTER IS
371 IF I1
< IDENT_INT
(0) THEN
378 IF (- IDENT_INT
(25) /= 'P') OR
379 (- (0-25) /= 'N') THEN
380 FAILED
("OVERLOADING OF ""-"" " &
381 "OPERATOR (ONE OPERAND) DEFECTIVE");
385 -------------------------------------------------
388 FUNCTION "NOT" (I1
: INTEGER) RETURN CHARACTER IS
390 IF I1
< IDENT_INT
(0) THEN
397 IF (NOT IDENT_INT
(25) /= 'P') OR
398 (NOT (0-25) /= 'N') THEN
399 FAILED
("OVERLOADING OF ""NOT"" " &
400 "OPERATOR (ONE OPERAND) DEFECTIVE");
404 -------------------------------------------------
407 FUNCTION "ABS" (I1
: INTEGER) RETURN CHARACTER IS
409 IF I1
< IDENT_INT
(0) THEN
416 IF (ABS IDENT_INT
(25) /= 'P') OR
417 (ABS (0-25) /= 'N') THEN
418 FAILED
("OVERLOADING OF ""ABS"" " &
419 "OPERATOR (ONE OPERAND) DEFECTIVE");
423 -------------------------------------------------