fxc6a00.a

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

A
163
字号
-- FXC6A00.A----                             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.--*---- FOUNDATION DESCRIPTION:--     This foundation declares various volatile and non-volatile types. Some--     are by-reference types, and some allow pass-by-copy.---- CHANGE HISTORY:--      23 Jan 96   SAIC    Initial version for ACVC 2.1.--      02 DEC 97   EDS     Removed Pragma Volatile applied to composite types.--      27 AUG 99   RLB     Repaired so Nonvolatile_Tagged really is--                          Nonvolatile.--!package FXC6A00 is   type Roman is ('I', 'V', 'X', 'L', 'C', 'D', 'M');  -- By-copy type.   type Acc_Roman is access all Roman;   type Tagged_Type is tagged record                   -- By-reference type.      C: Natural;   end record;   type Volatile_Tagged is new Tagged_Type with record -- Volatile by-reference      R1: Roman;                                       -- type.   end record;   pragma Volatile (Volatile_Tagged);   type Acc_Volatile_Tagged is access all Volatile_Tagged;                                                       -- By-reference type.   type NonVolatile_Tagged is new Tagged_Type with record      R2: aliased Roman;   end record;   task type Task_Type is                              -- By-reference type.      entry Calculate (C: in out Natural);   end Task_Type;   type Acc_Task_Type is access all Task_Type;   protected type Protected_Type is                    -- By-reference type.      procedure Op;   private      Count : Natural := 0;   end Protected_Type;   protected type Volatile_Protected is                -- Volatile by-reference      procedure Handler;                               -- type.      pragma Interrupt_Handler (Handler);      function Handled return Boolean;   private      Was_Handled : Boolean := False;   end Volatile_Protected;   pragma Volatile (Volatile_Protected);   type Acc_Vol_Protected is access all Volatile_Protected;   type Record_Type is record                          -- Allows pass-by-copy.      C: String(1 .. 2);   end record;   type Volatile_Record is limited record              -- Volatile by-reference      C: String(1 .. 2);                               -- type.   end record;   pragma Volatile (Volatile_Record);   type Composite_Type is record                       -- By-reference type.      C: Tagged_Type;      D: aliased Volatile_Tagged;                      -- Volatile component.   end record;   type Private_Type is private;                       -- By-reference type.   type Array_Type is array (1..3) of Tagged_Type;     -- By-reference type.   pragma Volatile_Components (Array_Type);   type Acc_Array_Type is access all Array_Type;   type Lim_Private_Type is limited private;           -- By-copy type.private   type Private_Type is new Tagged_Type with record      D: Character;   end record;   type Lim_Private_Type is new Integer;end FXC6A00;     --==================================================================--package body FXC6A00 is   task body Task_Type is   begin      accept Calculate (C: in out Natural) do         C := C * 10;      end Calculate;   end Task_Type;   protected body Protected_Type is      procedure Op is      begin         Count := Count + 1;      end Op;   end Protected_Type;   protected body Volatile_Protected is      procedure Handler is      begin         Was_Handled := True;      end Handler;      function Handled return Boolean is      begin         return Was_Handled;      end Handled;   end Volatile_Protected;end FXC6A00;

⌨️ 快捷键说明

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