a74205e.ada

来自「用于进行gcc测试」· ADA 代码 · 共 150 行

ADA
150
字号
-- A74205E.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 THE ADDITIONAL OPERATIONS FOR A COMPOSITE TYPE WITH A-- COMPONENT OF A PRIVATE TYPE ARE AVAILABLE AT THE EARLIEST-- PLACE WITHIN THE IMMEDIATE SCOPE OF THE DECLARATION OF THE COMPOSITE-- TYPE AND AFTER THE FULL DECLARATION OF THE PRIVATE TYPE.-- IN PARTICULAR, CHECH FOR THE FOLLOWING :-- (1)  RELATIONAL OPERATORS WITH ARRAYS OF SCALAR TYPES-- (2)  EQUALITY WITH ARRAYS AND RECORDS OF LIMITED PRIVATE TYPES -- (3)  LOGICAL OPERATORS WITH ARRAYS OF BOOLEAN TYPES-- (4)  CATENATION WITH ARRAYS OF LIMITED PRIVATE TYPES-- (5)  INITIALIZATION WITH ARRAYS AND RECORDS OF LIMITED PRIVATE TYPES-- (6)  ASSIGNMENT WITH ARRAYS AND RECORDS OF LIMITED PRIVATE TYPES-- (7)  SELECTED COMPONENTS WITH COMPOSITES OF PRIVATE RECORD TYPES-- (8)  INDEXED COMPONENTS WITH COMPOSITES OF PRIVATE ARRAY TYPES-- (9)  SLICES WITH COMPOSITES OF PRIVATE ARRAY TYPES-- (10) QUALIFICATION FOR COMPOSITES OF PRIVATE TYPES-- (11) AGGREGATES FOR ARRAYS AND RECORDS OF PRIVATES TYPES-- (12) USE OF 'SIZE FOR ARRAYS AND RECORDS OF PRIVATE TYPES-- DSJ 5/2/83WITH REPORT ;PROCEDURE A74205E IS     USE REPORT ;BEGIN     TEST("A74205E", "CHECK THAT ADDITIONAL OPERATIONS FOR "                   & "COMPOSITE TYPES OF PRIVATE TYPES ARE "                   & "AVAILABLE AT THE EARLIEST PLACE AFTER THE "                   & "FULL DECLARATION AND IN THE IMMEDIATE "                   & "SCOPE OF THE COMPOSITE TYPE") ;     DECLARE          PACKAGE PACK1 IS               TYPE LP1 IS LIMITED PRIVATE ;               PACKAGE PACK_LP IS                    TYPE LP_ARR IS ARRAY (INTEGER RANGE <>) OF LP1 ;                    SUBTYPE LP_ARR2 IS LP_ARR ( 1 .. 2 ) ;                    SUBTYPE LP_ARR4 IS LP_ARR ( 1 .. 4 ) ;               END PACK_LP ;               TYPE T1 IS PRIVATE ;               PACKAGE PACK2 IS                    TYPE ARR IS ARRAY (INTEGER RANGE <>) OF T1 ;                    SUBTYPE ARR2 IS ARR ( 1 .. 2 ) ;                    SUBTYPE ARR4 IS ARR ( 1 .. 4 ) ;               END PACK2 ;               TYPE T2 IS PRIVATE ;               TYPE T3 IS PRIVATE ;               PACKAGE PACK3 IS                    TYPE ARR_T2 IS ARRAY ( 1 .. 2 ) OF T2 ;                    TYPE ARR_T3 IS ARRAY ( 1 .. 2 ) OF T3 ;               END PACK3 ;          PRIVATE               TYPE LP1 IS NEW BOOLEAN ;               TYPE T1 IS NEW BOOLEAN ;               TYPE T2 IS ARRAY ( 1 .. 2 ) OF INTEGER ;               TYPE T3 IS                    RECORD                         C1 : INTEGER ;                    END RECORD ;          END PACK1 ;          PACKAGE BODY PACK1 IS               PACKAGE BODY PACK_LP IS                    L1, L2 : LP_ARR2 := (TRUE,FALSE) ; -- LEGAL                    A3 : LP_ARR2 := L1 ;               -- LEGAL                    B3 : BOOLEAN := L1 =  L2 ;         -- LEGAL                    B4 : BOOLEAN := L1 /= L2 ;         -- LEGAL               END PACK_LP ;               PACKAGE BODY PACK2 IS                    A1, A2 : ARR2 := (FALSE,TRUE) ;    -- LEGAL                    A4 : ARR2    := ARR2'(A1) ;        -- LEGAL                    B1 : BOOLEAN := A1 <  A2 ;         -- LEGAL                    B2 : BOOLEAN := A1 >= A2 ;         -- LEGAL                    N3 : INTEGER := A1'SIZE ;          -- LEGAL                    PROCEDURE G1 (X : ARR2 := NOT A1) IS    -- LEGAL                    BEGIN                         NULL ;                     END G1 ;                    PROCEDURE G2 (X : ARR2 := A1 AND A2) IS -- LEGAL                    BEGIN                         NULL ;                    END G2 ;                    PROCEDURE G3 (X : ARR4 := A1 & A2) IS   -- LEGAL                    BEGIN                         NULL ;                    END G3 ;                    PROCEDURE G4 (X : ARR2 := (FALSE,TRUE) ) IS -- LEGAL                    BEGIN                         NULL ;                    END G4 ;               END PACK2 ;               PACKAGE BODY PACK3 IS                    X2 : ARR_T2 :=                         (1=>(1,2), 2=>(3,4)) ;        -- LEGAL                    X3 : ARR_T3 :=                         (1=>(C1=>5), 2=>(C1=>6)) ;    -- LEGAL                    N1 : INTEGER := X3(1).C1 ;         -- LEGAL                    N2 : INTEGER := X2(1)(2) ;         -- LEGAL                    N4 : T2      := X2(1)(1..2) ;      -- LEGAL               END PACK3 ;          END PACK1 ;     BEGIN          NULL ;     END ;     RESULT ;END A74205E ;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?