cc3017b.ada

来自「用于进行gcc测试」· ADA 代码 · 共 471 行 · 第 1/2 页

ADA
471
字号
                  UPPER => 80);     EXCEPTION          WHEN OTHERS =>               REPORT.FAILED ("EXCEPTION RAISED IN CALL TO NEW_PC");     END REC_NON_STAT_COMPS ;     --------------------------------------------------     FIRST_STATIC_ARRAY:     DECLARE     --        (D) AN ARRAY PARAMETER CONSTRAINED WITH STATIC BOUNDS ON SUB---            SCRIPTS AND NON-STATIC BOUNDS ON COMPONENTS, INITIALIZED--            WITH A STATIC AGGREGATE.          TYPE NUMBER IS RANGE 1 .. 100 ;                    GENERIC                      TYPE INTEGER_TYPE IS RANGE <> ;            F_STATIC_VALUE : IN INTEGER_TYPE ;            S_STATIC_VALUE : IN INTEGER_TYPE ;            T_STATIC_VALUE : IN INTEGER_TYPE ;            L_STATIC_VALUE : IN INTEGER_TYPE ;            A_STATIC_VALUE : IN INTEGER_TYPE ;            B_STATIC_VALUE : IN INTEGER_TYPE ;            C_STATIC_VALUE : IN INTEGER_TYPE ;            D_STATIC_VALUE : IN INTEGER_TYPE ;                    PROCEDURE P1D (LOWER  : IN INTEGER_TYPE ;                         UPPER  : IN INTEGER_TYPE) ;          PROCEDURE P1D (LOWER  : IN INTEGER_TYPE ;                         UPPER  : IN INTEGER_TYPE) IS                                        SUBTYPE SUBINTEGER_TYPE IS INTEGER_TYPE                       RANGE LOWER .. UPPER ;               TYPE A1 IS ARRAY (INTEGER_TYPE RANGE                                       F_STATIC_VALUE .. S_STATIC_VALUE,                                 INTEGER_TYPE RANGE                                       T_STATIC_VALUE .. L_STATIC_VALUE)                       OF SUBINTEGER_TYPE ;               PROCEDURE P1D1 (A : A1 :=                           ((A_STATIC_VALUE, B_STATIC_VALUE),                           (C_STATIC_VALUE, D_STATIC_VALUE))) IS               BEGIN  -- P1D1                    REPORT.FAILED ("BODY OF P1D1 EXECUTED");               EXCEPTION                    WHEN OTHERS =>                         REPORT.FAILED ("EXCEPTION RAISED IN P1D1");               END P1D1;          BEGIN  -- P1D               P1D1 ;          EXCEPTION               WHEN CONSTRAINT_ERROR =>                    NULL;               WHEN OTHERS =>                    REPORT.FAILED ("WRONG EXCEPTION RAISED - P1D1");          END P1D;                    PROCEDURE NEW_P1D IS NEW P1D (INTEGER_TYPE => NUMBER,                                        F_STATIC_VALUE => 21,                                        S_STATIC_VALUE => 37,                                        T_STATIC_VALUE => 67,                                        L_STATIC_VALUE => 79,                                        A_STATIC_VALUE => 11,                                        B_STATIC_VALUE => 88,                                        C_STATIC_VALUE => 87,                                        D_STATIC_VALUE => 13) ;     BEGIN  -- FIRST_STATIC_ARRAY          NEW_P1D (LOWER => 10,                     UPPER => 90);     EXCEPTION          WHEN OTHERS =>               REPORT.FAILED ("EXCEPTION RAISED IN CALL TO NEW_P1D");     END FIRST_STATIC_ARRAY ;     --------------------------------------------------     SECOND_STATIC_ARRAY:          DECLARE     --        (D) AN ARRAY PARAMETER CONSTRAINED WITH STATIC BOUNDS ON SUB---            SCRIPTS AND NON-STATIC BOUNDS ON COMPONENTS, INITIALIZED--            WITH A STATIC AGGREGATE.          TYPE NUMBER IS RANGE 1 .. 100 ;                    GENERIC                      TYPE INTEGER_TYPE IS RANGE <> ;            F_STATIC_VALUE : IN INTEGER_TYPE ;            S_STATIC_VALUE : IN INTEGER_TYPE ;            T_STATIC_VALUE : IN INTEGER_TYPE ;            L_STATIC_VALUE : IN INTEGER_TYPE ;            A_STATIC_VALUE : IN INTEGER_TYPE ;            B_STATIC_VALUE : IN INTEGER_TYPE ;                    PROCEDURE P2D (LOWER  : IN INTEGER_TYPE ;                         UPPER  : IN INTEGER_TYPE) ;          PROCEDURE P2D (LOWER  : IN INTEGER_TYPE ;                         UPPER  : IN INTEGER_TYPE) IS                                        SUBTYPE SUBINTEGER_TYPE IS INTEGER_TYPE                       RANGE LOWER .. UPPER ;               TYPE A1 IS ARRAY (INTEGER_TYPE RANGE                                       F_STATIC_VALUE .. S_STATIC_VALUE,                                 INTEGER_TYPE RANGE                                       T_STATIC_VALUE .. L_STATIC_VALUE)                       OF SUBINTEGER_TYPE ;               PROCEDURE P2D1 (A : A1 :=                                   (F_STATIC_VALUE .. S_STATIC_VALUE =>                                   (A_STATIC_VALUE, B_STATIC_VALUE))) IS               BEGIN  -- P2D1                    REPORT.FAILED ("BODY OF P2D1 EXECUTED");               EXCEPTION                    WHEN OTHERS =>                         REPORT.FAILED ("EXCEPTION RAISED IN P2D1");               END P2D1;          BEGIN  -- P2D               P2D1;          EXCEPTION               WHEN CONSTRAINT_ERROR =>                    NULL;               WHEN OTHERS =>                    REPORT.FAILED ("WRONG EXCEPTION RAISED - P2D1");          END P2D;                    PROCEDURE NEW_P2D IS NEW P2D (INTEGER_TYPE => NUMBER,                                        F_STATIC_VALUE => 21,                                        S_STATIC_VALUE => 37,                                        T_STATIC_VALUE => 67,                                        L_STATIC_VALUE => 79,                                        A_STATIC_VALUE => 7,                                        B_STATIC_VALUE => 93) ;     BEGIN  -- SECOND_STATIC_ARRAY          NEW_P2D (LOWER => 5,                   UPPER => 95);     EXCEPTION          WHEN OTHERS =>               REPORT.FAILED ("EXCEPTION RAISED IN CALL TO NEW_P2D");     END SECOND_STATIC_ARRAY ;     --------------------------------------------------     REC_NON_STATIC_CONS:          DECLARE     --        (E) A RECORD PARAMETER WITH A NON-STATIC CONSTRAINT--            INITIALIZED WITH A STATIC AGGREGATE.          TYPE NUMBER IS RANGE 1 .. 100 ;                    GENERIC                      TYPE INTEGER_TYPE IS RANGE <> ;            F_STATIC_VALUE : IN INTEGER_TYPE ;            S_STATIC_VALUE : IN INTEGER_TYPE ;            T_STATIC_VALUE : IN INTEGER_TYPE ;            L_STATIC_VALUE : IN INTEGER_TYPE ;            D_STATIC_VALUE : IN INTEGER_TYPE ;                    PROCEDURE PE (LOWER  : IN INTEGER_TYPE ;                        UPPER  : IN INTEGER_TYPE) ;          PROCEDURE PE (LOWER  : IN INTEGER_TYPE ;                        UPPER  : IN INTEGER_TYPE) IS                                       SUBTYPE SUBINTEGER_TYPE IS INTEGER_TYPE                       RANGE LOWER .. UPPER ;               TYPE AR1 IS ARRAY (INTEGER RANGE 1..3) OF                      SUBINTEGER_TYPE ;                                   TYPE REC (DISCRIM : SUBINTEGER_TYPE) IS                    RECORD                         FIRST  : SUBINTEGER_TYPE ;                         SECOND : AR1 ;                    END RECORD ;               SUBTYPE REC4 IS REC (LOWER) ;               PROCEDURE PE1 (R : REC4 := (D_STATIC_VALUE,                                           F_STATIC_VALUE,                                          (S_STATIC_VALUE,                                           T_STATIC_VALUE,                                           L_STATIC_VALUE))) IS               BEGIN  -- PE1                    REPORT.FAILED ("BODY OF PE1 EXECUTED");               EXCEPTION                    WHEN OTHERS =>                         REPORT.FAILED ("EXCEPTION RAISED IN PE1");               END PE1;          BEGIN  -- PE               PE1;          EXCEPTION               WHEN CONSTRAINT_ERROR =>                    NULL;               WHEN OTHERS =>                    REPORT.FAILED ("WRONG EXCEPTION RAISED - PE1");          END PE;          PROCEDURE NEW_PE IS NEW PE (INTEGER_TYPE => NUMBER,                                      F_STATIC_VALUE => 37,                                      S_STATIC_VALUE => 21,                                      T_STATIC_VALUE => 67,                                      L_STATIC_VALUE => 79,                                      D_STATIC_VALUE => 44) ;     BEGIN  -- REC_NON_STATIC_CONS          NEW_PE  (LOWER => 2,                   UPPER => 99);     EXCEPTION          WHEN OTHERS =>               REPORT.FAILED ("EXCEPTION RAISED IN CALL TO NEW_PE");     END REC_NON_STATIC_CONS ;     --------------------------------------------------     REPORT.RESULT;END CC3017B;

⌨️ 快捷键说明

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