|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T V
Length: 15019 (0x3aab)
Types: TextFile
Names: »V«
└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
└─⟦fc9b38f02⟧ »DATA«
└─⟦9b46a407a⟧
└─⟦c84a2ac9b⟧
└─⟦this⟧
with Ada_Program;
package Type_Information is
--
-- The use of this system is subject to the software license terms and
-- conditions agreed upon between Rational and the Customer.
--
-- Copyright 1987, 1988, 1989, 1990 by Rational.
--
-- RESTRICTED RIGHTS LEGEND
--
-- Use, duplication, or disclosure by the Government is subject to
-- restrictions as set forth in subdivision (b)(3)(ii) of the Rights in
-- Technical Data and Computer Software clause at 52.227-7013.
--
--
-- Rational
-- 3320 Scott Boulevard
-- Santa Clara, California 95054
--
-- PROPRIETARY AND CONFIDENTIAL INFORMATION OF RATIONAL;
-- USE OR COPYING WITHOUT EXPRESS WRITTEN AUTHORIZATION
-- IS STRICTLY PROHIBITED. THIS MATERIAL IS PROTECTED AS
-- AN UNPUBLISHED WORK UNDER THE U.S. COPYRIGHT ACT OF
-- 1976. CREATED 1987, 1988, 1989, 1990. ALL RIGHTS RESERVED.
--
-- Local Renaming:
subtype Declaration is Ada_Program.Declaration;
subtype Name_Expression is Ada_Program.Expression;
subtype Expression is Ada_Program.Expression;
subtype Identifier_Reference is Ada_Program.Identifier_Reference;
subtype Statement is Ada_Program.Statement;
subtype Task_Specification is Ada_Program.Type_Definition;
subtype Type_Definition is Ada_Program.Type_Definition;
subtype Association_Iterator is Ada_Program.Association_Iterator;
subtype Choice_Iterator is Ada_Program.Choice_Iterator;
subtype Declarative_Part_Iterator is
Ada_Program.
Declaration_Or_Context_Clause_Or_Representation_Clause_Or_Pragma_Iterator;
subtype Name_Iterator is Ada_Program.Name_Iterator;
---------------------------------------------------------------
type Type_Definition_Kinds is (A_Subtype_Indication,
An_Enumeration_Type_Definition,
An_Integer_Type_Definition,
A_Float_Type_Definition,
A_Fixed_Type_Definition,
An_Array_Type_Definition,
A_Record_Type_Definition,
An_Access_Type_Definition,
A_Derived_Type_Definition,
A_Task_Type_Definition,
A_Private_Type_Definition,
A_Limited_Private_Type_Definition,
Not_A_Type_Definition);
function Kind (A_Type_Definition : Type_Definition)
return Type_Definition_Kinds;
function Parent_Declaration (Type_Def : Type_Definition) return Declaration;
-- Returns the declaration associated with the type definition, if
-- any is available. Anonymous types for example have no associated
-- declaration.
function Base_Type (Type_Def : Type_Definition) return Type_Definition;
-- Returns the base type of the specified type definition as per LRM 3.3.
-- All subtypes are constraints applied to some base type. This function
-- returns that base type.
function Type_Structure (Type_Def : Type_Definition) return Type_Definition;
-- Returns the type structure from which the specified type definition has
-- been derived. This function will unwind recursive derivations until the
-- type definition derives a new representation or is no longer derived.
-- This function is different from GROUND_TYPE only for enumerations or
-- records that have derivations with rep specs.
function Ground_Type (Type_Def : Type_Definition) return Type_Definition;
-- This function recursively unwinds all type derivations and subtyping
-- to arrive at a type definition which is neither a derived type or a
-- subtype.
function Last_Constraint
(Type_Def : Type_Definition) return Type_Definition;
-- This function recursively unwinds subtyping to arrive at a type
-- definition which is either the base_type or imposes constraints.
function Is_Predefined (Type_Def : Type_Definition) return Boolean;
-- returns true if the type definition is one of:
-- Boolean, Character, String, Integer, Natural, Positive, Float
function Is_Universal (Type_Def : Type_Definition) return Boolean;
-- returns true if the type definition is a universal integer,
-- universal fixed or universal float.
subtype Subtype_Indication is Type_Definition;
subtype Enumeration_Type_Definition is Type_Definition;
subtype Integer_Type_Definition is Type_Definition;
subtype Float_Type_Definition is Type_Definition;
subtype Fixed_Type_Definition is Type_Definition;
subtype Array_Type_Definition is Type_Definition;
subtype Record_Type_Definition is Type_Definition;
subtype Access_Type_Definition is Type_Definition;
subtype Derived_Type_Definition is Type_Definition;
subtype Task_Type_Definition is Type_Definition;
---------------------------------------------------------------
-- TYPE CONSTRAINTS:
subtype Type_Constraint is Ada_Program.Element;
subtype Discrete_Range_Iterator is Ada_Program.Element_Iterator;
subtype Discriminant_Association_Iterator is Ada_Program.Element_Iterator;
type Type_Constraint_Kinds is (A_Simple_Range,
A_Range_Attribute,
A_Floating_Point_Constraint,
A_Fixed_Point_Constraint,
An_Index_Constraint,
A_Discriminant_Constraint,
Not_A_Constraint);
function Constraint_Kind (A_Constraint : Type_Constraint)
return Type_Constraint_Kinds;
function Discrete_Ranges (Of_Index_Constraint : Type_Constraint)
return Discrete_Range_Iterator;
-- Returns the list of Discrete_Range components of an Index_Constraint
function Discriminant_Associations
(Of_Discriminant_Constraint : Type_Constraint)
return Discriminant_Association_Iterator;
-- Returns the list of discriminant associations of
-- a Discriminant_Constraint.
-------------------------------------------------------------------
-- DISCRETE RANGES:
subtype Discrete_Range is Ada_Program.Element; -- LRM 3.6
type Range_Kinds is (A_Simple_Range,
A_Range_Attribute,
A_Subtype_Indication,
Not_A_Range);
function Range_Kind (A_Discrete_Range : Discrete_Range) return Range_Kinds;
subtype Range_Info is Ada_Program.Element;
procedure Bounds (A_Range : Range_Info;
Lower, Upper : out Expression);
-- This procedure returns the simple expression for the
-- upper and lower bounds of a range if one is present
-- NIL_ELEMENTs otherwise.
-- Note that range attributes are expressions and can be analyzed
-- by using the attribute operations in NAMES_AND_EXPRESSIONS.
---------------------------------------------------------------
-- CHOICES:
subtype Choice is Ada_Program.Element;
type Choice_Kinds is (A_Simple_Expression,
A_Discrete_Range,
Others_Choice,
An_Identifier_Reference,
Not_A_Choice);
function Choice_Kind (A_Choice : Choice) return Choice_Kinds;
function Choice_Expression (A_Choice : Choice) return Expression;
function Choice_Range (A_Choice : Choice) return Discrete_Range;
function Choice_Identifier (A_Choice : Choice) return Identifier_Reference;
---------------------------------------------------------------
-- SUBTYPE_INDICATIONS & TYPE_MARKS - LRM 3.3.2
function Type_Mark (A_Subtype_Indication : Subtype_Indication)
return Name_Expression;
-- Returns the type mark of a subtype indication.
-- The NAMES_AND_EXPRESSION package provides selectors to do further
-- decomposition.
function Constraint (A_Subtype_Indication : Subtype_Indication)
return Type_Constraint;
-- Returns the constraint applied to the subtype indication. A nil
-- element is returned if no constraint is present.
---------------------------------------------------------------
-- ENUMERATION TYPES - LRM 3.5.1
function Enumeration_Literals
(Enumeration_Type : Enumeration_Type_Definition)
return Name_Iterator;
-- Returns a list of the literals declared an enumeration type
-- declaration. Each of these elements has a Name.
---------------------------------------------------------------
-- INTEGER TYPES - LRM 3.5.4
function Integer_Constraint
(Integer_Type : Integer_Type_Definition) return Range_Info;
-- Returns the range constraint on the integer type declaration.
---------------------------------------------------------------
-- REAL TYPES - LRM 3.5.6
function Digits_Accuracy_Definition
(Floating_Point_Type : Float_Type_Definition) return Expression;
-- Returns the digits accuracy definition of a floating point type
-- definition or floating point constraint.
function Floating_Point_Constraint
(Floating_Point_Type : Float_Type_Definition) return Range_Info;
-- Returns the range constraint of a floating point type declaration.
function Delta_Accuracy_Definition
(Fixed_Point_Type : Fixed_Type_Definition) return Expression;
-- Returns the delta accuracy definition of a fixed point type definition
-- or fixed point constraint.
function Fixed_Point_Constraint
(Fixed_Point_Type : Fixed_Type_Definition) return Range_Info;
-- Returns the range constraint of the fixed point type definition.
---------------------------------------------------------------
-- ARRAY TYPES - LRM 3.6
function Is_Constrained_Array
(Array_Type : Array_Type_Definition) return Boolean;
function Index_Constraints (Constrained_Array_Type : Array_Type_Definition)
return Discrete_Range_Iterator;
-- Returns a list of the discrete range constraints for an
-- constrained array type declaration.
function Index_Subtype_Definitions
(Unconstrained_Array_Type : Array_Type_Definition)
return Name_Iterator;
-- Returns a list of the Index_Subtypes (Type_Marks) for an
-- unconstrained array type declaration.
function Component_Type (Array_Type : Array_Type_Definition)
return Subtype_Indication;
-- Returns the specification of the array component type.
---------------------------------------------------------------
-- DISCRIMINANTS - LRM 3.7.1
subtype Type_Definition_Or_Declaration is Ada_Program.Element;
subtype Discriminant_Iterator is Ada_Program.Element_Iterator;
function Is_Discriminated
(A_Type : Type_Definition_Or_Declaration) return Boolean;
-- This function applies to private, limited private, incomplete or
-- record types. It returns True if this type has discriminants.
-- It may be applied to type declaration to handle the case of
-- incomplete types.
function Discriminants (A_Type : Type_Definition_Or_Declaration)
return Discriminant_Iterator;
-- Returns a list of discriminants of the type. These elements may
-- then be manipulated with the functions provided in package
-- Declarations.
---------------------------------------------------------------
-- RECORD TYPES - LRM 3.7
subtype Record_Component is Ada_Program.Element;
subtype Record_Component_Or_Pragma_Iterator is Ada_Program.Element_Iterator;
subtype Variant is Ada_Program.Element;
subtype Variant_Or_Pragma_Iterator is Ada_Program.Element_Iterator;
function Record_Components (Record_Type : Record_Type_Definition)
return Record_Component_Or_Pragma_Iterator;
-- Returns a list of the record components of the record declaration.
type Component_Kinds is (A_Null_Component,
A_Variable_Component,
A_Variant_Part_Component,
Not_A_Component);
-- A component can be a Variable, NULL or Variant_Part.
-- A Null_Component is a NIL_ELEMENT.
-- The operations on Variables can be used to decompose Variable_Components.
function Component_Kind
(Component : Record_Component) return Component_Kinds;
function Associated_Discriminant
(Variant_Part : Record_Component) return Identifier_Reference;
function Variant_Item_List (Variant_Part : Record_Component)
return Variant_Or_Pragma_Iterator;
-- Returns a list of variants that make up the record component.
function Variant_Choices (Variant_Item : Variant) return Choice_Iterator;
-- Returns a list of the 'WHEN <choice> | <choice>' choices.
-- Use the above CHOICES queries to extract further information.
function Inner_Record_Components (Variant_Item : Variant)
return Record_Component_Or_Pragma_Iterator;
-- Returns a list of the record components of the inner record declaration.
-- Use Component_Kind to analyze further.
---------------------------------------------------------------
-- ACCESS TYPES - LRM 3.8
function Access_To (Access_Type : Access_Type_Definition)
return Subtype_Indication;
-- Returns the subtype indication associated with the access type.
---------------------------------------------------------------
-- DERIVED TYPES - LRM 3.4
function Derived_From (Derived_Type : Derived_Type_Definition)
return Subtype_Indication;
-- Returns the subtype indication associated with the derived type.
---------------------------------------------------------------
-- TASK TYPE DEFINITIONS
-- LRM Chapter 9
function Task_Components (Task_Spec : Task_Specification)
return Declarative_Part_Iterator;
-- Returns a list of entry declarations, representation clauses
-- and pragmas in a task specification. The list is in order of appearance.
-- The operations on subprogram declarations can be used to
-- decompose task entries.
pragma Subsystem (Design_Facility, Closed);
pragma Module_Name (4, 3577);
pragma Bias_Key (27);
end Type_Information;