-- BC3403B.ADA -- Grant of Unlimited Rights -- -- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687, -- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained -- unlimited rights in the software and documentation contained herein. -- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making -- this public release, the Government intends to confer upon all -- recipients unlimited rights equal to those held by the Government. -- These rights include rights to use, duplicate, release or disclose the -- released technical data and computer software in whole or in part, in -- any manner and for any purpose whatsoever, and to have or permit others -- to do so. -- -- DISCLAIMER -- -- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR -- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED -- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE -- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE -- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A -- PARTICULAR PURPOSE OF SAID MATERIAL. --* -- WHEN A GENERIC FORMAL TYPE IS AN ARRAY TYPE, CHECK THAT CORRESPONDING -- INDEX POSITIONS HAVE THE SAME BASE TYPE. -- CHECK WHEN THE INDEX BASE TYPE IS A GENERIC FORMAL PARAMETER DECLARED -- IN THE SAME GENERIC FORMAL PART. -- SPS 6/8/82 -- JRL 11/14/95 Removed Ada95-incompatible cases (corresponding index -- subtypes and ranges must statically match). -- PWN 03/28/96 Restored checks in Ada95 legal format. PROCEDURE BC3403B IS TYPE ENUM IS (E1, E2, E3, E4); SUBTYPE EN IS ENUM RANGE E1..E4; SUBTYPE BB IS BOOLEAN; SUBTYPE INT IS INTEGER; SUBTYPE CC IS CHARACTER; SUBTYPE NATURAL IS INTEGER RANGE 1..INTEGER'LAST; TYPE NI IS NEW INTEGER; TYPE NC IS NEW CHARACTER; TYPE AI IS ARRAY (INTEGER) OF NATURAL; TYPE AIU IS ARRAY (INTEGER RANGE <>) OF NATURAL; TYPE AN IS ARRAY (NATURAL) OF NATURAL; TYPE ANU IS ARRAY (NATURAL RANGE <>) OF NATURAL; TYPE A_I IS ARRAY (INT) OF NATURAL; TYPE A_IU IS ARRAY (INT RANGE <>) OF NATURAL; TYPE AB IS ARRAY (BOOLEAN) OF NATURAL; TYPE AE IS ARRAY (ENUM) OF NATURAL; TYPE AEU IS ARRAY (ENUM RANGE <>) OF NATURAL; TYPE AEN IS ARRAY (EN RANGE <>) OF NATURAL; TYPE AC IS ARRAY (CHARACTER) OF NATURAL; TYPE NAI IS ARRAY (NI) OF NATURAL; TYPE AII IS ARRAY (INTEGER, INTEGER) OF NATURAL; TYPE AI_I IS ARRAY (INTEGER, INT) OF NATURAL; TYPE AIN IS ARRAY (INTEGER, NATURAL) OF NATURAL; TYPE AIB IS ARRAY (INTEGER, BOOLEAN) OF NATURAL; TYPE AIC IS ARRAY (INTEGER, CHARACTER) OF NATURAL; TYPE ABI IS ARRAY (BOOLEAN, INTEGER) OF NATURAL; TYPE ACI IS ARRAY (CHARACTER, INTEGER) OF NATURAL; TYPE A_II IS ARRAY (INT, INTEGER) OF NATURAL; TYPE ANI IS ARRAY (NATURAL, INTEGER) OF NATURAL; TYPE ABC IS ARRAY (BOOLEAN, CHARACTER) OF NATURAL; TYPE ABBI IS ARRAY (BB, INTEGER) OF NATURAL; TYPE ANII IS ARRAY (NI, INTEGER) OF NATURAL; TYPE AINI IS ARRAY (INTEGER, NI) OF NATURAL; TYPE AINC IS ARRAY (INTEGER, NC) OF NATURAL; TYPE AICC IS ARRAY (INTEGER, CC) OF NATURAL; GENERIC TYPE INDEX IS (<>); TYPE AR IS ARRAY (INDEX) OF NATURAL; PACKAGE P IS END P; GENERIC TYPE INDEX IS (<>); TYPE AR IS ARRAY (INDEX RANGE <>) OF NATURAL; PACKAGE PU IS END PU; GENERIC TYPE I1 IS (<>); TYPE I2 IS (<>); TYPE AR IS ARRAY (I1, I2) OF NATURAL; PACKAGE PP IS END PP; PACKAGE P1 IS NEW P (INTEGER, AI); -- OK. PACKAGE P2 IS NEW P (INTEGER, A_I); -- OK. PACKAGE P3 IS NEW P (INTEGER, AN); -- ERROR: AN. PACKAGE P4 IS NEW P (INTEGER, AB); -- ERROR: AB. PACKAGE P5 IS NEW P (INTEGER, AC); -- ERROR: AC. PACKAGE P6 IS NEW P (INTEGER, AE); -- ERROR: AE. PACKAGE P7 IS NEW P (INTEGER, NAI); -- ERROR: NAI. PACKAGE PE1 IS NEW PU (ENUM, AEN); -- OK. PACKAGE PE2 IS NEW PU (ENUM, AEU); -- OK. PACKAGE PE3 IS NEW PU (ENUM, AIU); -- ERROR: AIU. PACKAGE PE4 IS NEW PU (ENUM, ANU); -- ERROR: ANU. PACKAGE PIU1 IS NEW PU (INTEGER, AIU); -- OK. PACKAGE PIU2 IS NEW PU (INTEGER, ANU); -- ERROR: ANU. PACKAGE PIU3 IS NEW PU (INTEGER, A_IU); -- OK. PACKAGE PIU4 IS NEW PU (INTEGER, AEN); -- ERROR: AEN. PACKAGE PI1 IS NEW PP (INTEGER, INTEGER, AII); -- OK. PACKAGE PI2 IS NEW PP (INTEGER, INTEGER, AIN); -- ERROR: AIN. PACKAGE PI3 IS NEW PP (INTEGER, INTEGER, ANI); -- ERROR: ANI. PACKAGE PI4 IS NEW PP (INTEGER, INTEGER, AI_I); -- OK. PACKAGE PI5 IS NEW PP (INTEGER, INTEGER, A_II); -- OK. PACKAGE PI6 IS NEW PP (INTEGER, INTEGER, AIB); -- ERROR: AIB. PACKAGE PI7 IS NEW PP (INTEGER, INTEGER, AIC); -- ERROR: AIC. PACKAGE PI8 IS NEW PP (INTEGER, INTEGER, ABI); -- ERROR: ABI. PACKAGE PI9 IS NEW PP (INTEGER, INTEGER, ACI); -- ERROR: ACI. PACKAGE PI10 IS NEW PP (INTEGER, INTEGER, ANII); -- ERROR: ANII. PACKAGE PI11 IS NEW PP (INTEGER, INTEGER, AINI); -- ERROR: AINI. PACKAGE PB1 IS NEW PP (BOOLEAN, INTEGER, ABI); -- OK. PACKAGE PB2 IS NEW PP (BOOLEAN, INTEGER, ABBI); -- OK. PACKAGE PB3 IS NEW PP (BOOLEAN, INTEGER, ABC); -- ERROR: ABC. PACKAGE PB4 IS NEW PP (BOOLEAN, INTEGER, AII); -- ERROR: AII. PACKAGE PC1 IS NEW PP (INTEGER, CHARACTER, AIC); -- OK. PACKAGE PC2 IS NEW PP (INTEGER, CHARACTER, ABC); -- ERROR: ABC. PACKAGE PC3 IS NEW PP (INTEGER, CHARACTER, AII); -- ERROR: AII. PACKAGE PC4 IS NEW PP (INTEGER, CHARACTER, AICC); -- OK. PACKAGE PC5 IS NEW PP (INTEGER, CHARACTER, AINC); -- ERROR: AINC. BEGIN NULL; END BC3403B;