📄 c51004a.ada
字号:
-- C51004A.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 LABELS, LOOP IDENTIFIERS, AND BLOCK IDENTIFIERS ARE-- IMPLICITLY DECLARED AT THE END OF THE DECLARATIVE PART. PRIOR TO-- THE END OF THE DECLARATIVE PART, THEY MAY BE USED TO REFERENCE-- ENTITIES IN AN ENCLOSING SCOPE. SUBTESTS ARE:-- (A) BLOCK.-- (B) PROCEDURE BODY.-- (C) PACKAGE BODY.-- (D) GENERIC FUNCTION BODY.-- (E) GENERIC PACKAGE BODY.-- (F) TASK BODY.-- CPP 6/1/84WITH REPORT; USE REPORT;PROCEDURE C51004A ISBEGIN TEST("C51004A", "CHECK THAT LABELS, LOOP IDENTIFIERS, AND BLOCK " & "IDENTIFIERS MAY BE USED PRIOR TO THEIR IMPLICIT " & "DECLARATION");OUTER: DECLARE TYPE IDN1 IS NEW INTEGER; IDN2 : CONSTANT INTEGER := 2; TYPE IDN3 IS ACCESS INTEGER; BEGIN -- OUTER ----------------------------------------------- A : DECLARE A1 : IDN1; A2 : CONSTANT INTEGER := IDN2; A3 : IDN3; TEMP : INTEGER; BEGIN -- A <<IDN1>> TEMP := 0; IDN2 : FOR I IN 1..1 LOOP TEMP := A2; END LOOP IDN2; IDN3 : BEGIN NULL; END IDN3; END A; ----------------------------------------------- B : DECLARE PROCEDURE P (TEMP : OUT INTEGER) IS B1 : IDN1; B2 : CONSTANT INTEGER := IDN2 + 2; B3 : IDN3; BEGIN -- P <<L>> <<IDN1>> TEMP := 0; IDN2 : WHILE B2 < 0 LOOP TEMP := 0; END LOOP IDN2; IDN3 : DECLARE BEGIN NULL; END IDN3; END P; BEGIN -- B NULL; END B; ----------------------------------------------- C : DECLARE PACKAGE PKG IS END PKG; PACKAGE BODY PKG IS C1 : IDN1; C2 : CONSTANT INTEGER := 2 * IDN2; C3 : IDN3; TEMP : INTEGER; BEGIN <<IDN1>> TEMP := 0; IDN2 : LOOP TEMP := 0; EXIT; END LOOP IDN2; IDN3 : BEGIN NULL; END IDN3; END PKG; BEGIN -- C NULL; END C; --------------------------------------------------- D : DECLARE GENERIC TYPE Q IS (<>); FUNCTION FN RETURN INTEGER; FUNCTION FN RETURN INTEGER IS D1 : IDN1; D2 : CONSTANT INTEGER := IDN2; D3 : IDN3; TEMP : INTEGER; BEGIN <<IDN1>> TEMP := 0; IDN2 : FOR I IN 1..5 LOOP TEMP := 0; END LOOP IDN2; IDN3 : BEGIN NULL; END IDN3; RETURN TEMP; END FN; BEGIN NULL; END D; ----------------------------------------------- E : DECLARE GENERIC TYPE ELEMENT IS (<>); ITEM : ELEMENT; PACKAGE PKG IS END PKG; PACKAGE BODY PKG IS E1 : IDN1 RANGE 1..5; E2 : CONSTANT INTEGER := IDN2; E3 : IDN3; TEMP : ELEMENT; BEGIN <<IDN1>> <<L>> TEMP := ITEM; IDN2 : WHILE TEMP /= ITEM LOOP TEMP := ITEM; END LOOP IDN2; IDN3 : DECLARE BEGIN NULL; END IDN3; END PKG; BEGIN -- E DECLARE PACKAGE P1 IS NEW PKG (INTEGER, 0); BEGIN NULL; END; END E; ----------------------------------------------- F : DECLARE TASK T; TASK BODY T IS F1 : IDN1 RANGE -4..2; F2 : CONSTANT INTEGER := IDN2; F3 : IDN3; TEMP : INTEGER; BEGIN <<IDN1>> TEMP := 1; IDN2 : LOOP TEMP := TEMP + 1; EXIT; END LOOP IDN2; IDN3 : DECLARE BEGIN TEMP := TEMP + 1; END IDN3; END T; BEGIN -- F NULL; END F; ----------------------------------------------- END OUTER; RESULT;END C51004A;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -