1-- C87B32A.ADA 2 3-- Grant of Unlimited Rights 4-- 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 14-- to do so. 15-- 16-- DISCLAIMER 17-- 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. 24--* 25-- CHECK THAT OVERLOADING RESOLUTION USES THE FOLLOWING RULES: 26 27-- FOR ATTRIBUTES OF THE FORM: T'SUCC (X), T'PRED (X), T'POS (X), 28-- AND T'IMAGE (X) , THE OPERAND X MUST BE OF TYPE T. 29-- 30-- FOR THE ATTRIBUTE OF THE FORM T'VAL (X), THE OPERAND X MUST BE 31-- OF AN INTEGER TYPE. 32-- 33-- FOR THE ATTRIBUTE OF THE FORM T'VALUE (X), THE OPERAND X MUST 34-- BE OF THE PREDEFINED TYPE STRING. 35 36-- TRH 13 SEPT 82 37-- JRK 12 JAN 84 38 39WITH REPORT; USE REPORT; 40 41PROCEDURE C87B32A IS 42 43 TYPE COLOR IS (BROWN, RED, WHITE); 44 TYPE SCHOOL IS (HARVARD, BROWN, YALE); 45 TYPE COOK IS (SIMMER, SAUTE, BROWN, BOIL); 46 TYPE SUGAR IS (DEXTROSE, CANE, GLUCOSE, BROWN); 47 TYPE WHOLE IS NEW INTEGER RANGE 0 .. INTEGER'LAST; 48 TYPE LIT_CHAR IS ('+', '-', '0', '1', '2', '3', '4', '5', '6', '7', 49 '8', '9'); 50 TYPE LIT_STRING IS ARRAY (POSITIVE RANGE <>) OF LIT_CHAR; 51 52 FUNCTION "+" (X, Y : WHOLE) RETURN WHOLE 53 RENAMES "*"; 54 55 FUNCTION F1 RETURN STRING IS 56 BEGIN 57 RETURN "+10"; 58 END F1; 59 60 FUNCTION F1 RETURN LIT_STRING IS 61 BEGIN 62 FAILED ("THE VALUE ATTRIBUTE TAKES A PREDEFINED STRING " & 63 "OPERAND"); 64 RETURN "+3"; 65 END F1; 66 67 FUNCTION F1 RETURN CHARACTER IS 68 BEGIN 69 FAILED ("THE VALUE ATTRIBUTE TAKES A STRING OPERAND"); 70 RETURN '2'; 71 END F1; 72 73 FUNCTION F2 (X : INTEGER) RETURN FLOAT IS 74 BEGIN 75 FAILED ("THE VAL ATTRIBUTE TAKES AN INTEGER TYPE OPERAND"); 76 RETURN 0.0; 77 END F2; 78 79 FUNCTION F2 (X : INTEGER := 1) RETURN INTEGER IS 80 BEGIN 81 RETURN X; 82 END F2; 83 84BEGIN 85 TEST ("C87B32A","OVERLOADED OPERANDS FOR THE ATTRIBUTES " & 86 "T'PRED, T'SUCC, T'POS, T'VAL, T'IMAGE AND T'VALUE"); 87 88 IF COLOR'POS (BROWN) /= 0 THEN 89 FAILED ("RESOLUTION INCORRECT FOR OPERANDS OF THE ATTRIBUTES" & 90 " PRED, SUCC, VAL, POS, IMAGE AND VALUE - 1"); 91 END IF; 92 93 IF SCHOOL'POS (BROWN) /= 1 THEN 94 FAILED ("RESOLUTION INCORRECT FOR OPERANDS OF THE ATTRIBUTES" & 95 " PRED, SUCC, VAL, POS, IMAGE AND VALUE - 2"); 96 END IF; 97 98 IF COOK'POS (BROWN) /= 2 THEN 99 FAILED ("RESOLUTION INCORRECT FOR OPERANDS OF THE ATTRIBUTES" & 100 " PRED, SUCC, VAL, POS, IMAGE AND VALUE - 3"); 101 END IF; 102 103 IF SUGAR'POS (BROWN) /= 3 THEN 104 FAILED ("RESOLUTION INCORRECT FOR OPERANDS OF THE ATTRIBUTES" & 105 " PRED, SUCC, VAL, POS, IMAGE AND VALUE - 4"); 106 END IF; 107 108 IF SCHOOL'PRED (BROWN) /= HARVARD THEN 109 FAILED ("RESOLUTION INCORRECT FOR OPERANDS OF THE ATTRIBUTES" & 110 " PRED, SUCC, VAL, POS, IMAGE AND VALUE - 5"); 111 END IF; 112 113 IF COOK'PRED (BROWN) /= SAUTE THEN 114 FAILED ("RESOLUTION INCORRECT FOR OPERANDS OF THE ATTRIBUTES" & 115 " PRED, SUCC, VAL, POS, IMAGE AND VALUE - 6"); 116 END IF; 117 118 IF SUGAR'PRED (BROWN) /= GLUCOSE THEN 119 FAILED ("RESOLUTION INCORRECT FOR OPERANDS OF THE ATTRIBUTES" & 120 " PRED, SUCC, VAL, POS, IMAGE AND VALUE - 7"); 121 END IF; 122 123 IF COLOR'SUCC (BROWN) /= RED THEN 124 FAILED ("RESOLUTION INCORRECT FOR OPERANDS OF THE ATTRIBUTES" & 125 " PRED, SUCC, VAL, POS, IMAGE AND VALUE - 8"); 126 END IF; 127 128 IF SCHOOL'SUCC (BROWN) /= YALE THEN 129 FAILED ("RESOLUTION INCORRECT FOR OPERANDS OF THE ATTRIBUTES" & 130 " PRED, SUCC, VAL, POS, IMAGE AND VALUE - 9"); 131 END IF; 132 133 IF COOK'SUCC (BROWN) /= BOIL THEN 134 FAILED ("RESOLUTION INCORRECT FOR OPERANDS OF THE ATTRIBUTES" & 135 " PRED, SUCC, VAL, POS, IMAGE AND VALUE - 10"); 136 END IF; 137 138 IF COLOR'VAL (F2 (0)) /= BROWN THEN 139 FAILED ("RESOLUTION INCORRECT FOR OPERANDS OF THE ATTRIBUTES" & 140 " PRED, SUCC, VAL, POS, IMAGE AND VALUE - 11"); 141 END IF; 142 143 IF SCHOOL'VAL (F2) /= BROWN THEN 144 FAILED ("RESOLUTION INCORRECT FOR OPERANDS OF THE ATTRIBUTES" & 145 " PRED, SUCC, VAL, POS, IMAGE AND VALUE - 12"); 146 END IF; 147 148 IF COOK'VAL (F2 (2)) /= BROWN THEN 149 FAILED ("RESOLUTION INCORRECT FOR OPERANDS OF THE ATTRIBUTES" & 150 " PRED, SUCC, VAL, POS, IMAGE AND VALUE - 13"); 151 END IF; 152 153 IF SUGAR'VAL (F2) /= CANE THEN 154 FAILED ("RESOLUTION INCORRECT FOR OPERANDS OF THE ATTRIBUTES" & 155 " PRED, SUCC, VAL, POS, IMAGE AND VALUE - 14"); 156 END IF; 157 158 IF WHOLE'POS (1 + 1) /= 1 THEN 159 FAILED ("RESOLUTION INCORRECT FOR OPERANDS OF THE ATTRIBUTES" & 160 " PRED, SUCC, VAL, POS, IMAGE AND VALUE - 15"); 161 END IF; 162 163 IF WHOLE'VAL (1 + 1) /= 2 THEN 164 FAILED ("RESOLUTION INCORRECT FOR OPERANDS OF THE ATTRIBUTES" & 165 " PRED, SUCC, VAL, POS, IMAGE AND VALUE - 16"); 166 END IF; 167 168 IF WHOLE'SUCC (1 + 1) /= 2 THEN 169 FAILED ("RESOLUTION INCORRECT FOR OPERANDS OF THE ATTRIBUTES" & 170 " PRED, SUCC, VAL, POS, IMAGE AND VALUE - 17"); 171 END IF; 172 173 IF WHOLE'PRED (1 + 1) /= 0 THEN 174 FAILED ("RESOLUTION INCORRECT FOR OPERANDS OF THE ATTRIBUTES" & 175 " PRED, SUCC, VAL, POS, IMAGE AND VALUE - 18"); 176 END IF; 177 178 IF WHOLE'VALUE ("+1") + 1 /= 1 THEN 179 FAILED ("RESOLUTION INCORRECT FOR OPERANDS OF THE ATTRIBUTES" & 180 " PRED, SUCC, VAL, POS, IMAGE AND VALUE - 19"); 181 END IF; 182 183 IF WHOLE'IMAGE (1 + 1) /= " 1" THEN 184 FAILED ("RESOLUTION INCORRECT FOR OPERANDS OF THE ATTRIBUTES" & 185 " PRED, SUCC, VAL, POS, IMAGE AND VALUE - 20"); 186 END IF; 187 188 IF WHOLE'VALUE (F1) + 1 /= 10 THEN 189 FAILED ("RESOLUTION INCORRECT FOR OPERANDS OF THE ATTRIBUTES" & 190 " PRED, SUCC, VAL, POS, IMAGE AND VALUE - 21"); 191 END IF; 192 193 IF WHOLE'VAL (1) + 1 /= 1 THEN 194 FAILED ("RESOLUTION INCORRECT FOR OPERANDS OF THE ATTRIBUTES" & 195 " PRED, SUCC, VAL, POS, IMAGE AND VALUE - 22"); 196 END IF; 197 198 RESULT; 199END C87B32A; 200