cc1226b.ada

来自「linux下编程用 编译软件」· ADA 代码 · 共 177 行

ADA
177
字号
-- CC1226B.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.--*-- OBJECTIVE:--     CHECK, FOR A FORMAL NONLIMITED PRIVATE TYPE, THAT ALL ALLOWABLE--     OPERATIONS ARE IMPLICITLY DECLARED.-- HISTORY:--     BCB 04/04/88  CREATED ORIGINAL TEST.--     RJW 03/28/90  INITIALIZED PREVIOUSLY UNINITIALIZED VARIABLES.--     LDC 09/19/90  INITALIZED NLPVAR & NLPVAR2 TO DIFFERENT VALUES,--                   REMOVED USE CLAUSE.--     PWN 01/31/95  REMOVED INCONSISTENCIES WITH ADA 9X.WITH REPORT; USE REPORT;WITH SYSTEM; USE SYSTEM;PROCEDURE CC1226B IS     TYPE DISCREC(DISC1 : INTEGER := 1;                  DISC2 : BOOLEAN := FALSE) IS RECORD          NULL;     END RECORD;     GENERIC          TYPE NLP IS PRIVATE;          TYPE NLPDISC(DISC1 : INTEGER;                       DISC2 : BOOLEAN) IS PRIVATE;          WITH PROCEDURE INITIALIZE (N : OUT NLPDISC);          WITH FUNCTION INITIALIZE RETURN NLP;          WITH FUNCTION INITIALIZE_2 RETURN NLP;     PACKAGE P IS          FUNCTION IDENT(X : NLP) RETURN NLP;          FUNCTION IDENT_ADR(Y : ADDRESS) RETURN ADDRESS;     END P;     PACKAGE BODY P IS          TYPE DER_NLP IS NEW NLP;          NLPVAR : NLP := INITIALIZE_2;          NLPVAR2, NLPVAR3 : NLP := INITIALIZE;          DERNLP : DER_NLP := DER_NLP (INITIALIZE);          NDVAR : NLPDISC(DISC1 => 5, DISC2 => TRUE);          NLPVARADDRESS : ADDRESS;          NLPSIZE : INTEGER;          NLPBASESIZE : INTEGER;          FUNCTION IDENT(X : NLP) RETURN NLP IS               Z : NLP := INITIALIZE;          BEGIN               IF EQUAL(3,3) THEN                    RETURN X;               END IF;               RETURN Z;          END IDENT;          FUNCTION IDENT_ADR(Y : ADDRESS) RETURN ADDRESS IS               I : INTEGER;               Z : ADDRESS := I'ADDRESS;          BEGIN               IF EQUAL(3,3) THEN                    RETURN Y;               END IF;               RETURN Z;          END IDENT_ADR;     BEGIN          TEST ("CC1226B", "CHECK, FOR A FORMAL NONLIMITED PRIVATE " &                           "TYPE THAT ALL ALLOWABLE OPERATIONS ARE " &                           "IMPLICITLY DECLARED");          INITIALIZE (NDVAR);          NLPVAR := NLPVAR2;          IF NLPVAR /= NLPVAR2 THEN               FAILED ("IMPROPER VALUE FROM ASSIGNMENT");          END IF;          IF NLPVAR NOT IN NLP THEN               FAILED ("IMPROPER RESULT FROM MEMBERSHIP TEST");          END IF;          NLPVAR := NLP'(NLPVAR2);          IF NLPVAR /= NLPVAR2 THEN               FAILED ("IMPROPER RESULT FROM QUALIFICATION");          END IF;          NLPVAR := NLP(DERNLP);          IF NLPVAR /= IDENT(NLP(DERNLP)) THEN               FAILED ("IMPROPER RESULT FROM EXPLICIT CONVERSION");          END IF;          NLPSIZE := IDENT_INT(NLP'SIZE);          IF NLPSIZE /= INTEGER(NLP'SIZE) THEN               FAILED ("IMPROPER VALUE FOR NLP'SIZE");          END IF;          NLPVARADDRESS := NLPVAR'ADDRESS;          IF NLPVAR'ADDRESS /= IDENT_ADR(NLPVARADDRESS) THEN               FAILED ("IMPROPER VALUE FOR NLPVAR'ADDRESS");          END IF;          IF NDVAR.DISC1 /= IDENT_INT(5) THEN               FAILED ("IMPROPER DISCRIMINANT VALUE - 1");          END IF;          IF NOT NDVAR.DISC2 THEN               FAILED ("IMPROPER DISCRIMINANT VALUE - 2");          END IF;          IF NOT NDVAR'CONSTRAINED THEN               FAILED ("IMPROPER VALUE FOR NDVAR'CONSTRAINED");          END IF;          NLPVAR := NLPVAR3;          IF NOT (NLPVAR = IDENT(NLPVAR3)) THEN               FAILED ("IMPROPER VALUE FROM EQUALITY OPERATION");          END IF;          IF NLPVAR /= IDENT(NLPVAR3) THEN               FAILED ("IMPROPER VALUE FROM INEQUALITY OPERATION");          END IF;          RESULT;     END P;     PROCEDURE INITIALIZE (I : OUT DISCREC) IS     BEGIN          I := (5, TRUE);     END INITIALIZE;     FUNCTION INITIALIZE RETURN INTEGER IS     BEGIN          RETURN 5;     END INITIALIZE;     FUNCTION INITIALIZE_OTHER RETURN INTEGER IS     BEGIN          RETURN 3;     END INITIALIZE_OTHER;     PACKAGE PACK IS NEW P(INTEGER,                            DISCREC,                            INITIALIZE,                            INITIALIZE,                            INITIALIZE_OTHER);BEGIN     NULL;END CC1226B;

⌨️ 快捷键说明

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