-- BC3502D.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. --* -- CHECK THAT WHEN A GENERIC FORMAL TYPE IS AN ACCESS TYPE, THE FORMAL -- TYPE IS ONLY MATCHED WHEN ITS DESIGNATED BASE TYPE IS THE SAME AS -- THE DESIGNATED TYPE OF THE ACTUAL PARAMTER. -- CHECK FOR WHEN THE DESIGNATED TYPE IS NOT A GENERIC FORMAL TYPE. -- CHECK FOR WHEN THE DESIGNATED TYPE IS AN ACCESS TYPE. -- SPS 5/25/82 PROCEDURE BC3502D IS -- ACCESS TO INTEGER TYPES -- TYPE AI IS ACCESS INTEGER; TYPE AI2 IS ACCESS INTEGER; TYPE NAI IS NEW AI; TYPE AN IS ACCESS NATURAL; TYPE NI IS NEW INTEGER RANGE 1 .. 10; TYPE ANI IS ACCESS NI; SUBTYPE CI IS INTEGER RANGE 1 .. 10; TYPE ACI IS ACCESS CI; TYPE ACI2 IS ACCESS INTEGER RANGE 1 .. 10; -- ACCESS TO CHARACTER AND BOOLEAN -- TYPE AC IS ACCESS CHARACTER; TYPE AB IS ACCESS BOOLEAN; -- ACCESS TO ARRAY TYPES -- TYPE ARR IS ARRAY (NI RANGE <>) OF ACI; TYPE AAR IS ACCESS ARR; TYPE ARR2 IS ARRAY (NI RANGE <>) OF ACI; TYPE AAR2 IS ACCESS ARR2; TYPE NAAR IS NEW AAR; -- ACCESS TO RECORD TYPES (WITHOUT DISCRIMINANTS) -- TYPE REC IS RECORD NULL; END RECORD; TYPE REC2 IS RECORD NULL; END RECORD; TYPE AREC IS ACCESS REC; TYPE NAREC IS NEW AREC; TYPE AREC2 IS ACCESS REC2; TYPE NREC IS NEW REC; TYPE ANREC IS ACCESS NREC; -- ACCESS TO RECORD TYPES (WITH DISCRIMINANTS) -- TYPE REC3 (D: INTEGER) IS RECORD NULL; END RECORD; TYPE REC4 (D: INTEGER) IS RECORD NULL; END RECORD; TYPE AREC3 IS ACCESS REC3; TYPE AREC4 IS ACCESS REC4; TYPE ACREC3 IS ACCESS REC3 (D=> 2); SUBTYPE CAREC3 IS AREC3 (D => 2); TYPE NAREC3 IS NEW AREC3; -- ACCESS TO ACCESS TYPES -- TYPE AAI IS ACCESS AI; TYPE AAI2 IS ACCESS AI2; TYPE NAAI IS NEW AAI; TYPE ANAI IS ACCESS NAI; TYPE AAN IS ACCESS AN; TYPE AANI IS ACCESS ANI; TYPE AACI IS ACCESS ACI; TYPE AACI2 IS ACCESS ACI2; TYPE AAC IS ACCESS AC; TYPE NAAC IS NEW AAC; TYPE AAB IS ACCESS AB; TYPE NAAB IS NEW AAB; TYPE AAAR IS ACCESS AAR; TYPE AAAR2 IS ACCESS AAR2; TYPE ANAAR IS ACCESS NAAR; TYPE NAAAR IS NEW AAAR; TYPE AAREC IS ACCESS AREC; TYPE AAREC2 IS ACCESS AREC2; TYPE ANAREC IS ACCESS NAREC; TYPE AANREC IS ACCESS ANREC; TYPE AAREC3 IS ACCESS AREC3; TYPE AACREC3 IS ACCESS ACREC3; TYPE AAREC4 IS ACCESS AREC4; TYPE ACAREC3 IS ACCESS CAREC3; TYPE NACAREC3 IS NEW ACAREC3; TYPE NAACREC3 IS NEW AACREC3; TYPE ANAREC3 IS ACCESS NAREC3; TYPE NAAREC IS NEW AAREC; TYPE NAAREC3 IS NEW AAREC3; -- PACKAGE WITH ACCESS TO INTEGER AS FORMAL TYPE -- GENERIC TYPE FT IS ACCESS AI; PACKAGE PAI IS END PAI; -- PACKAGE WITH ACCESS TO CONSTRAINTED INTEGER AS FORMAL TYPE -- GENERIC TYPE FT IS ACCESS ACI; PACKAGE PACI IS END PACI; -- PACKAGE WITH ACCESS TO CHARACTER AS FORMAL TYPE -- GENERIC TYPE FT IS ACCESS AC; PACKAGE PAC IS END PAC; -- PACKAGE WITH ACCESS TO ARRAY TYPE -- GENERIC TYPE FT IS ACCESS AAR; PACKAGE PAAR IS END PAAR; -- PACKAGE WITH ACCESS TO RECORD (WITHOUT DISCRIMINANTS) -- GENERIC TYPE FT IS ACCESS AREC; PACKAGE PAREC IS END PAREC; -- PACKAGE WITH ACCESS TO RECORD (WITH DISCRIMINANTS) -- GENERIC TYPE FT IS ACCESS AREC3; PACKAGE PAREC3 IS END PAREC3; -- PACKAGE WITH ACCESS TO RECORD (CONSTRAINED DISCRIMINANTS) -- GENERIC TYPE FT IS ACCESS ACREC3; PACKAGE PACREC3 IS END PACREC3; PACKAGE PAI1 IS NEW PAI (AAI); -- OK. PACKAGE PAI2 IS NEW PAI (NAAI); -- OK. PACKAGE PAI3 IS NEW PAI (AAI2); -- ERROR: AAI2. PACKAGE PAI4 IS NEW PAI (ANAI); -- ERROR: ANAI. PACKAGE PAI5 IS NEW PAI (AAN); -- ERROR: AAN. PACKAGE PAI6 IS NEW PAI (AACI); -- ERROR: AACI. PACKAGE PAI7 IS NEW PAI (AI); -- ERROR: AI. PACKAGE PAI8 IS NEW PAI (AANI); -- ERROR: AANI. PACKAGE PACI1 IS NEW PACI (AACI); -- OK. PACKAGE PACI2 IS NEW PACI (ACI); -- ERROR: ACI. PACKAGE PACI3 IS NEW PACI (AANI); -- ERROR: AANI. PACKAGE PACI4 IS NEW PACI (AACI2); -- ERROR: AACI2. PACKAGE PAC1 IS NEW PAC (AAC); -- OK. PACKAGE PAC2 IS NEW PAC (AAB); -- ERROR: AAB. PACKAGE PAC3 IS NEW PAC (NAAC); -- OK. PACKAGE PAC4 IS NEW PAC (NAAB); -- ERROR: NAAB. PACKAGE PAC5 IS NEW PAC (AC); -- ERROR: AC. PACKAGE PAAR1 IS NEW PAAR (AAAR); -- OK. PACKAGE PAAR2 IS NEW PAAR (AAAR2); -- ERROR: AAAR2. PACKAGE PAAR3 IS NEW PAAR (ANAAR); -- ERROR: ANAAR. PACKAGE PAAR5 IS NEW PAAR (NAAAR); -- OK. PACKAGE PAAR6 IS NEW PAAR (AAR); -- ERROR: AAR. PACKAGE PAREC1 IS NEW PAREC (AAREC); -- OK. PACKAGE PAREC2 IS NEW PAREC (AREC); -- ERROR: AREC. PACKAGE PAREC4 IS NEW PAREC (ANAREC); -- ERROR: ANAREC. PACKAGE PAREC5 IS NEW PAREC (AAREC2); -- ERROR: AAREC2. PACKAGE PAREC6 IS NEW PAREC (AANREC); -- ERROR: AANREC. PACKAGE PAREC7 IS NEW PAREC (NAAREC); -- OK. PACKAGE PAREC31 IS NEW PAREC3 (AAREC3); -- OK. PACKAGE PAREC32 IS NEW PAREC3 (AREC3); -- ERROR: AREC3. PACKAGE PAREC33 IS NEW PAREC3 (AAREC4); -- ERROR: AAREC4. PACKAGE PAREC34 IS NEW PAREC3 (ANAREC3); -- ERROR: ANAREC3. PACKAGE PAREC35 IS NEW PAREC3 (NAAREC3); -- OK. PACKAGE PACREC31 IS NEW PACREC3 (AACREC3); -- OK. PACKAGE PACREC32 IS NEW PACREC3 (ACREC3); -- ERROR: ACREC3; PACKAGE PACREC33 IS NEW PACREC3 (ACAREC3); -- ERROR: ACREC3; PACKAGE PACREC34 IS NEW PACREC3 (NACAREC3); -- ERROR: ACREC3; PACKAGE PACREC35 IS NEW PACREC3 (NAACREC3); -- OK. BEGIN NULL; END BC3502D;