DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦70238a5fe⟧ Ada Source

    Length: 27648 (0x6c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Declarations, pragma Module_Name 4 3572, pragma Subsystem Design_Facility, seg_028ae1

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 

E3 Source Code



with Ada_Program;
package Declarations 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.
    --


    -- LRM Chapter 3

    -- Local Renaming:

    subtype Compilation_Unit is Ada_Program.Compilation_Unit;
    subtype Declaration      is Ada_Program.Declaration;
    subtype Expression       is Ada_Program.Expression;
    subtype Name_Expression  is Ada_Program.Name;
    subtype Statement        is Ada_Program.Statement;
    subtype Type_Definition  is Ada_Program.Type_Definition;

    subtype Association_Iterator      is Ada_Program.Association_Iterator;
    subtype Declarative_Part_Iterator is
       Ada_Program.
          Declaration_Or_Context_Clause_Or_Representation_Clause_Or_Pragma_Iterator;
    ---------------------------------------------------------------

    type Declaration_Kinds is (A_Variable_Declaration,  
                               A_Constant_Declaration,  
                               A_Deferred_Constant_Declaration,  
                               An_Integer_Number_Declaration,  
                               A_Real_Number_Declaration,

                               A_Type_Declaration,  
                               An_Incomplete_Type_Declaration,  
                               A_Subtype_Declaration,

                               A_Package_Declaration,  
                               A_Package_Body_Declaration,

                               A_Procedure_Declaration,  
                               A_Procedure_Body_Declaration,

                               A_Function_Declaration,  
                               A_Function_Body_Declaration,

                               A_Package_Rename_Declaration,  
                               A_Procedure_Rename_Declaration,  
                               A_Function_Rename_Declaration,  
                               An_Object_Rename_Declaration,  
                               An_Exception_Rename_Declaration,

                               A_Generic_Package_Declaration,  
                               A_Generic_Procedure_Declaration,  
                               A_Generic_Function_Declaration,

                               A_Package_Instantiation,  
                               A_Procedure_Instantiation,  
                               A_Function_Instantiation,

                               A_Task_Declaration,  
                               A_Task_Body_Declaration,  
                               A_Task_Type_Declaration,

                               An_Entry_Declaration,

                               An_Exception_Declaration,

                               A_Procedure_Subunit,  
                               A_Function_Subunit,  
                               A_Package_Subunit,  
                               A_Task_Subunit,

                               A_Subprogram_Formal_Parameter,  
                               A_Generic_Formal_Parameter,

                               A_Discriminant,  
                               A_Record_Component,

                               Not_A_Declaration);

    function Kind (A_Declaration : Declaration) return Declaration_Kinds;


    subtype Object_Declaration    is Declaration;  -- LRM 3.2.1
    subtype Type_Declaration      is Declaration;  -- LRM 3.3.1
    subtype Subtype_Declaration   is Declaration;  -- LRM 3.3.2
    subtype Package_Declaration   is Declaration;  -- LRM 7.1
    subtype Procedure_Declaration is Declaration;  -- LRM 6.1
    subtype Function_Declaration  is Declaration;  -- LRM 6.1
    subtype Task_Declaration      is Declaration;  -- LRM 9.1
    subtype Task_Specification    is Type_Definition;  -- LRM 9.2
    subtype Entry_Declaration     is Declaration;  -- LRM 9.5
    subtype Exception_Declaration is Declaration;  -- LRM 11.1



    function Is_Visible (A_Declaration : Declaration) return Boolean;
    -- Returns True for units that are library level package or subprogram
    -- specs, and for declarations inside library level package specs.

    function Is_In_Private_Part (A_Declaration : Declaration) return Boolean;
    -- Returns true is the declaration appears in the private part
    -- of a package.


    function Is_Generic_Formal (Element : Ada_Program.Element) return Boolean;
    -- Returns true if a subprogram, type or object declaration is
    -- a generic formal parameter or was derived from the GENERIC_PARAMETERS
    -- selector.

    function Is_Subprogram_Formal
                (Element : Ada_Program.Element) return Boolean;
    -- Returns true if the element was derived from the
    -- SUBPROGRAM_PARAMETERS selector.


    function Identifiers (A_Declaration : Declaration)
                         return Ada_Program.Element_List;
    -- Returns a list of the identifier(s) introduced by the declaration.

    function Name (A_Declaration : Declaration) return String;
    -- Returns the identifier(s) image. Basically the same as calling
    -- ADA_PROGRAM.STRING_NAME on the result of IDENTIFIERS for a
    -- declaration.


    function Enclosing_Declaration
                (Element : Ada_Program.Element) return Declaration;
    -- Returns the enclosing declaration for any element.
    -- NOTE: This is the identity function if given a declaration.


    ---------------------------------------------------------------
    -- OBJECT DECLARATIONS - LRM 3.2.1

    -- The following operations apply to object declarations, component
    -- declarations and discriminant specifications.

    function Is_Initialized (Object_Decl : Object_Declaration) return Boolean;
    -- Determines whether the object declaration includes an initial
    -- value.

    function Initial_Value (Object_Decl : Object_Declaration) return Expression;
    -- Returns the optional expression that initializes an object or number
    -- declaration, NIL_ELEMENT is otherwise returned.


    function Object_Type (Object_Declaration_Or_Id : Object_Declaration)
                         return Type_Definition;
    -- Returns the subtype indication following the colon in the object
    -- declaration.  This function will take either a declaration element
    -- or identifier definition associated with the declaration.

    function Type_Mark (Subprogram_Formal_Or_Deferred_Constant : Declaration)
                       return Name_Expression;
    -- Returns the type mark associated with Subprogram Formal
    -- parameters and Deferred Constants.  Selectors in
    -- NAMES_AND_EXPRESSIONS can then be used to extract more information.



    -----------------------------------------------------------------
    -- TYPE DECLARATIONS - LRM 3.3

    function Is_Private    (Type_Decl : Type_Declaration) return Boolean;
    function Is_Limited    (Type_Decl : Type_Declaration) return Boolean;
    function Is_Incomplete (Type_Decl : Type_Declaration) return Boolean;

    function Type_Specification
                (Type_Declaration_Or_Id : Declaration) return Type_Definition;
    -- Returns the type definition for a given type or subtype declaration
    -- or the identifier definition associated with the declaration.
    -- See the enumeration TYPE_INFORMATION.TYPE_DEFINITION_KINDS for
    -- the various kinds of type definitions.

    function Full_Type_Declaration
                (Type_Declaration_Or_Id : Declaration) return Type_Declaration;
    -- Given the declaration of an incomplete type, returns the
    -- corresponding full type declaration.  A nil element is returned
    -- if the full type declaration is not yet compiled.  NOTE: this is
    -- the identity function if given a non-incomplete type declaration.


    ---------------------------------------------------------------
    -- PROGRAM UNIT DECLARATIONS
    -- LRM Chapters 5, 6, 9

    -- Program units are package, subprogram, and task specifications
    -- and bodies.

    function Is_Spec (Program_Unit : Declaration) return Boolean;
    -- Determines whether a package, procedure, function, or task
    -- is a specification.


    function Is_Package    (A_Declaration : Declaration) return Boolean;
    function Is_Task       (A_Declaration : Declaration) return Boolean;
    function Is_Procedure  (A_Declaration : Declaration) return Boolean;
    function Is_Function   (A_Declaration : Declaration) return Boolean;
    function Is_Subprogram (A_Declaration : Declaration) return Boolean;
    -- Determines if a declaration is a particular kind of program unit
    -- declaration regardless if it is generic, an instantiation, rename,
    -- spec or body.


    function Specification (Decl_Or_Id : Declaration) return Declaration;
    -- Returns the specification of a program unit declaration or identifier.
    -- If a specification is provided the same element is returned.  If no
    -- specification exists a nil element is returned.

    function Unit_Body (Decl_Or_Id : Declaration) return Declaration;
    -- Returns the body for a given program unit declaration or identifier
    -- definition associated with the declaration.  If a body is input,
    -- the same element is returned.  If no body exists a nil element is
    -- returned.  If a stub is given, the subunit is returned.


    ---------------------------------------------------------------
    -- PACKAGES
    -- LRM Chapter 7


    function Visible_Part_Declarations
                (Package_Specification : Package_Declaration)
                return Declarative_Part_Iterator;
    -- Returns a list of all declarations, representation
    -- specifications, and pragmas in the visible part of a package in
    -- the order of appearance.  When applied to a package
    -- instantiation, this operation yields the instance's visible
    -- declarations.

    function Private_Part_Declarations
                (Package_Specification : Package_Declaration)
                return Declarative_Part_Iterator;
    -- Returns a list of all declarations, representation
    -- specifications, and pragmas in the private part of the package in
    -- order of appearance.  When applied to a package instantiation,
    -- this operation yields the instance's private declarations.

    function Package_Body_Block
                (Package_Body : Package_Declaration) return Statement;
    -- Returns the block statement for a package body including
    -- the declarative part, any elaboration statements, and
    -- exception handler if any.  The selectors for blocks in STATEMENTS
    -- can then be used for further decomposition.


    ---------------------------------------------------------------
    -- SUBPROGRAMS

    subtype Subprogram_Formal_Parameter          is Ada_Program.Element;
    subtype Subprogram_Formal_Parameter_Iterator is
       Ada_Program.Element_Iterator;

    type Subprogram_Parameter_Kinds is (Default_In_Parameter, In_Parameter,  
                                        Out_Parameter,  
                                        In_Out_Parameter,  
                                        Not_A_Parameter);

    function Subprogram_Parameter_Kind
                (Of_Parameter : Subprogram_Formal_Parameter)
                return Subprogram_Parameter_Kinds;

    function Subprogram_Parameters (Subprogram_Or_Entry : Declaration)
                                   return Subprogram_Formal_Parameter_Iterator;
    -- Returns an ordered list of formal parameter declarations.
    -- Use IS_INITIALIZED and INITIAL_VALUE to query
    -- the information related to the presence of the default parameter
    -- initialization, and use TYPE_MARK to obtain the parameter type mark.
    -- When applied to a subprogram instantiation, this operation yields
    -- the instance's parameters.

    function Return_Type (Of_Function : Function_Declaration)
                         return Name_Expression;
    -- Returns the name expression of the return type, selectors in
    -- NAMES_AND_EXPRESSIONS can then be used to extract more information.
    -- When applied to a function instantiation, this operation yields
    -- the instance's return type.

    function Is_Operator_Definition
                (Function_Declaration : Declaration) return Boolean;


    function Subprogram_Block (Subprogram_Body : Declaration) return Statement;
    -- Returns the block statement for the body including
    -- the declarative part, any elaboration statements, and
    -- exception handler if any.  The selectors for blocks in STATEMENTS
    -- can then be used for further decomposition.


    ---------------------------------------------------------------
    -- RENAMINGS
    -- LRM Chapter 8.5

    function Is_Renaming_Declaration
                (A_Declaration : Declaration) return Boolean;

    function Renamed_Name (A_Declaration : Declaration) return Name_Expression;
    -- Returns the name of the entity being renamed.  It can be a simple
    -- name, an operator symbol, an indexed component, a slice, a
    -- selected component or an attribute.

    function Renamed_Declaration
                (A_Declaration : Declaration) return Declaration;
    -- If applied to the renaming of a simple name, an operator symbol
    -- or an expanded name, returns the name's declaration.  Returns nil
    -- element otherwise.  Use of this function is discouraged.

    ---------------------------------------------------------------
    -- GENERIC PACKAGE and SUBPROGRAM SPECIFICATIONS
    -- LRM Chapter 12

    function Is_Generic
                (Package_Or_Subprogram_Decl : Declaration) return Boolean;

    subtype Generic_Formal_Parameter                    is Ada_Program.Element;
    subtype Generic_Formal_Parameter_Or_Pragma_Iterator is
       Ada_Program.Element_Iterator;

    type Generic_Parameter_Kinds is (Subprogram,  
                                     Object,  
                                     Private_Type,  
                                     Limited_Private_Type,  
                                     Discrete_Type,  
                                     Integer_Type,  
                                     Floating_Point_Type,  
                                     Fixed_Point_Type,  
                                     Array_Type,  
                                     Access_Type,  
                                     Not_A_Generic_Parameter);

    function Generic_Parameter_Kind
                (Generic_Parameter : Generic_Formal_Parameter)
                return Generic_Parameter_Kinds;


    function Generic_Parameters
                (Generic_Decl : Declaration)
                return Generic_Formal_Parameter_Or_Pragma_Iterator;
    -- Returns a list of formal parameters to the generic in order of
    -- appearance.
    -- Object parameters can be decomposed with subprogram formal parameter
    -- and object declaration operations.
    -- Array and access type declarations can be decomposed with the
    -- operations corresponding to their types.
    -- Subprogram parameters can be queried by the following operations and
    -- can be further decomposed with subprogram declaration operations.


    type Generic_Formal_Subprogram_Default_Kinds is
       (Box, Name, None, Not_A_Generic_Formal_Subprogram);

    function Generic_Formal_Subprogram_Default_Kind
                (A_Generic_Formal_Subprogram : Generic_Formal_Parameter)
                return Generic_Formal_Subprogram_Default_Kinds;

    function Generic_Formal_Subprogram_Default
                (A_Generic_Formal_Subprogram : Generic_Formal_Parameter)
                return Name_Expression;

    function Is_Generic_Instantiation
                (Package_Or_Subprogram_Decl : Declaration) return Boolean;

    function Generic_Unit_Declaration
                (Generic_Instantiation_Or_Unit_Declaration : Declaration)
                return Declaration;
    -- Returns the declaration of the generic unit being instantiated.

    function Generic_Instantiation_Parameters
                (Generic_Instantiation : Declaration)
                return Association_Iterator;
    -- Returns an ordered list of parameter associations of a generic
    -- instantiation.  The operations defined in package ASSOCIATIONS
    -- can be used to decompose them.

    function Generic_Actual_Parameters (Generic_Instantiation : Declaration)
                                       return Association_Iterator
        renames Generic_Instantiation_Parameters;
    -- Use of this form is discouraged.


    ---------------------------------------------------------------
    -- TASK DECLARATIONS
    -- LRM Chapter 9

    function Task_Type_Specification
                (Task_Decl : Task_Declaration) return Task_Specification;
    -- Returns a task specification for a given task declaration.


    function Entry_Declarations (Task_Decl : Task_Declaration)
                                return Declarative_Part_Iterator;
    -- Returns a list of entry declarations associated with a TASK declaration.


    function Task_Body_Block (Task_Body : Task_Declaration) return Statement;
    -- Returns the block statement for the body including
    -- the declarative part, any elaboration statements, and
    -- exception handler if any.


    ---------------------------------------------------------------
    -- ENTRY DECLARATIONS
    -- LRM Chapter 9.5

    -- The operations available for decomposing subprograms will
    -- also work for entry declarations.

    subtype Family_Index_Range is Ada_Program.Element;

    function Family_Index (Entry_Family : Entry_Declaration)
                          return Family_Index_Range;
    -- Returns the index range for the entry family.  If the entry is not
    -- a family, a nil element is returned.   -- Use operations on discrete ranges in TYPE_INFORMATION to analyze
    -- the family index range.


    ---------------------------------------------------------------
    -- EXCEPTION DECLARATIONS
    -- LRM Chapter 11

    -- The selector IDENTIFIERS can be used to get a list of identifier
    -- definitions introduced by an exception declaration.


    ---------------------------------------------------------------
    -- SUBUNIT STUBS
    -- LRM Chapter 10.2

    function Subunit (Of_Body_Stub : Declaration) return Compilation_Unit;
    -- Returns the compilation unit corresponding to the subunit stub.

    pragma Subsystem (Design_Facility, Closed);
    pragma Module_Name (4, 3572);
    pragma Bias_Key (27);
end Declarations;

E3 Meta Data

    nblk1=1a
    nid=0
    hdr6=34
        [0x00] rec0=1a rec1=00 rec2=01 rec3=00a
        [0x01] rec0=18 rec1=00 rec2=02 rec3=04a
        [0x02] rec0=00 rec1=00 rec2=1a rec3=032
        [0x03] rec0=16 rec1=00 rec2=03 rec3=07e
        [0x04] rec0=19 rec1=00 rec2=04 rec3=006
        [0x05] rec0=16 rec1=00 rec2=05 rec3=022
        [0x06] rec0=00 rec1=00 rec2=19 rec3=032
        [0x07] rec0=18 rec1=00 rec2=06 rec3=01c
        [0x08] rec0=19 rec1=00 rec2=07 rec3=068
        [0x09] rec0=16 rec1=00 rec2=08 rec3=010
        [0x0a] rec0=00 rec1=00 rec2=18 rec3=00c
        [0x0b] rec0=15 rec1=00 rec2=09 rec3=040
        [0x0c] rec0=14 rec1=00 rec2=0a rec3=03e
        [0x0d] rec0=00 rec1=00 rec2=17 rec3=018
        [0x0e] rec0=17 rec1=00 rec2=0b rec3=02e
        [0x0f] rec0=15 rec1=00 rec2=0c rec3=096
        [0x10] rec0=01 rec1=00 rec2=16 rec3=008
        [0x11] rec0=13 rec1=00 rec2=0d rec3=026
        [0x12] rec0=18 rec1=00 rec2=0e rec3=022
        [0x13] rec0=16 rec1=00 rec2=0f rec3=036
        [0x14] rec0=00 rec1=00 rec2=15 rec3=026
        [0x15] rec0=16 rec1=00 rec2=10 rec3=016
        [0x16] rec0=16 rec1=00 rec2=11 rec3=076
        [0x17] rec0=17 rec1=00 rec2=12 rec3=07c
        [0x18] rec0=1b rec1=00 rec2=13 rec3=002
        [0x19] rec0=17 rec1=00 rec2=14 rec3=000
    tail 0x21521190e83c247bd97dd 0x42a00088462065003