1-- C87B23A.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 RULE THAT: 26-- 27-- FOR AN INDEXED COMPONENT OF AN ARRAY, THE PREFIX MUST BE 28-- APPROPRIATE FOR AN ARRAY TYPE. EACH EXPRESSION FOR THE INDEXED 29-- COMPONENT MUST BE OF THE TYPE OF THE CORRESPONDING INDEX AND 30-- THERE MUST BE ONE SUCH EXPRESSION FOR EACH INDEX POSITION OF THE 31-- ARRAY TYPE. 32 33-- TRH 15 SEPT 82 34-- DSJ 07 JUNE 83 35 36WITH REPORT; USE REPORT; 37 38PROCEDURE C87B23A IS 39 40 SUBTYPE CHAR IS CHARACTER; 41 TYPE GRADE IS (A, B, C, D, F); 42 TYPE NOTE IS (A, B, C, D, E, F, G); 43 TYPE INT IS NEW INTEGER; 44 TYPE POS IS NEW INTEGER RANGE 1 .. INTEGER'LAST; 45 TYPE NAT IS NEW POS; 46 TYPE BOOL IS NEW BOOLEAN; 47 TYPE BIT IS NEW BOOL; 48 TYPE LIT IS (FALSE, TRUE); 49 TYPE FLAG IS (PASS, FAIL); 50 51 TYPE NUM2 IS DIGITS(2); 52 TYPE NUM3 IS DIGITS(2); 53 TYPE NUM4 IS DIGITS(2); 54 55 TYPE A1 IS ARRAY (POS'(1)..5, NOTE'(A)..D, BOOL'(FALSE)..TRUE) 56 OF FLOAT; 57 TYPE A2 IS ARRAY (INT'(1)..5, NOTE'(A)..D, BIT'(FALSE)..TRUE) 58 OF NUM2; 59 TYPE A3 IS ARRAY (POS'(1)..5, GRADE'(A)..D, BOOL'(FALSE)..TRUE) 60 OF NUM3; 61 TYPE A4 IS ARRAY (NAT'(1)..5, NOTE'(A)..D, LIT'(FALSE)..TRUE) 62 OF NUM4; 63 64 OBJ1 : A1 := (OTHERS => (OTHERS => (OTHERS => 0.0))); 65 OBJ2 : A2 := (OTHERS => (OTHERS => (OTHERS => 0.0))); 66 OBJ3 : A3 := (OTHERS => (OTHERS => (OTHERS => 0.0))); 67 OBJ4 : A4 := (OTHERS => (OTHERS => (OTHERS => 0.0))); 68 69 GENERIC 70 TYPE T IS PRIVATE; 71 ARG : IN T; 72 STAT : IN FLAG; 73 FUNCTION F1 RETURN T; 74 75 FUNCTION F1 RETURN T IS 76 BEGIN 77 IF STAT = FAIL THEN 78 FAILED ("PREFIX OR INDEX IS NOT APPROPRIATE FOR" & 79 " INDEXED COMPONENT"); 80 END IF; 81 RETURN ARG; 82 END F1; 83 84 FUNCTION A IS NEW F1 (A1, OBJ1, PASS); 85 FUNCTION A IS NEW F1 (A2, OBJ2, FAIL); 86 FUNCTION A IS NEW F1 (A3, OBJ3, FAIL); 87 FUNCTION A IS NEW F1 (A4, OBJ4, FAIL); 88 89BEGIN 90 TEST ("C87B23A","OVERLOADED ARRAY INDEXES"); 91 92 DECLARE 93 F1 : FLOAT := A (3, C, TRUE); 94 95 BEGIN 96 NULL; 97 END; 98 99 RESULT; 100END C87B23A; 101