blob: 16bf742defa10015ab6710b4d9d29907334e756b [file] [log] [blame]
-- FC54A00.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 types which will serve as designated
-- types for tests involving generic formal access types (including
-- access-to-subprogram types).
--
-- CHANGE HISTORY:
-- 06 Dec 94 SAIC ACVC 2.0
--
--!
package FC54A00 is
-- Discrete (integer) types:
Bits : constant := 8; -- Named number.
type Numerals is range -256 .. 255;
type New_Numerals is new Numerals range -128 .. 127;
subtype Positives is Numerals range 0 .. 255;
subtype Same_Numerals is Numerals;
subtype Numerals_Static is Numerals range -2**Bits .. 2**Bits - 1;
Min : Numerals := Numerals'First; -- Variable.
Max : Integer := 255; -- Variable.
subtype Numerals_Nonstatic is Numerals range Min .. 255;
subtype Positive_Nonstatic is Positives range 0 .. Positives(Max);
subtype Pos_Dupl_Nonstatic is Positives range 0 .. Positives(Max);
subtype Pos_Attr_Nonstatic is Positives range Positive_Nonstatic'Range;
-- Floating point types:
type Float_Type is digits 3;
type New_Float is new Float_Type;
subtype Float_100 is Float_Type range 0.0 .. 100.0;
subtype Same_Float is Float_Type;
Hundred : constant := 100.0; -- Named number.
type Float_With_Range is digits 3 range 0.0 .. 100.0;
subtype Float_Same_Range is Float_With_Range range 0.0 .. Hundred;
-- Tagged record types:
subtype Lengths is Natural range 0 .. 50;
type Parent is abstract tagged null record;
type Tag (Len: Lengths) is new Parent with record
Msg : String (1 .. Len);
end record;
type New_Tag is new Tag with record
Sent : Boolean;
end record;
subtype Same_Tag is Tag;
Twenty : constant := 20; -- Named number.
subtype Tag20 is Tag (Len => 20);
subtype Tag25 is Tag (25);
subtype Tag_Twenty is Tag (Twenty);
My_Len : Lengths := Twenty; -- Variable.
subtype Sub_Length is Lengths range 1 .. My_Len;
subtype Tag20_Nonstatic is Tag (Len => Sub_Length'Last);
subtype Tag20_Dupl_Nonstatic is Tag (Sub_Length'Last);
subtype Tag20_Same_Nonstatic is Tag20_Nonstatic;
subtype Tag20_Var_Nonstatic is Tag (Len => My_Len);
-- Access types (designated type is tagged):
type Tagged_Ptr is access Tag;
type Tag_Class_Ptr is access Tag'Class;
subtype Msg_Ptr_Static is Tagged_Ptr(Twenty);
-- Array types:
type New_String is new String;
subtype Same_String is String;
Ten : constant := 10; -- Named number.
subtype Msg_Static is String(1 .. Ten);
type Msg10 is new String(1 .. 10);
subtype Msg20 is String(1 .. 20);
Size : Positive := 10;
subtype Msg_Nonstatic is String(1 .. Size);
subtype Msg_Dupl_Nonstatic is String(1 .. Size);
subtype Msg_Same_Nonstatic is Msg_Nonstatic;
end FC54A00;