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

⟦01070a8c2⟧ Ada Source

    Length: 7168 (0x1c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Id_Referencers, seg_0045e1

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



--| @SUMMARY Prrovides interfaces for finding references and determining
--| what kind of reference it is.  Interfaces are available for determining
--| whether a reference is set, used, or both set and used.
--|
--| @INDICES (REFERENCES, ADA_ANALYSIS)
with Ada_Program;
package Id_Referencers is

    subtype Object_References is Ada_Program.Element_List;

    --| @DESCRIPTION Locates all references to an object indentifier
    --| reference or identifier definition.
    function Initialize_References
                (For_Id : Ada_Program.Element) return Object_References;

    --| @DESCRIPTION Finds all object references in a subprogram body.
    --| Included are variables, constants, named numbers, parameters and
    --| record component declarations.
    function Internal_References
                (In_Element : Ada_Program.Element) return Object_References;

    function  Done  (Referencers : Object_References) return Boolean;
    procedure Next  (Referencers : in out Object_References);
    function  Value (Referencers : Object_References)
                   return Ada_Program.Identifier_Reference;

    type Object_Reference_Types is (Parameter,  
                                    Global_Variable,  
                                    Global_Constant,  
                                    Local_Package_Variable,  
                                    Local_Package_Constant,  
                                    Local_Procedure_Variable,  
                                    Local_Procedure_Constant,  
                                    Not_An_Object_Ref);

    --| @DESCRIPTION Returns the kind of object referenced
    function Reference_Type (Id_Ref : Ada_Program.Identifier_Reference)
                            return Object_Reference_Types;

    --| @DESCRIPTION Find the id definition of the object referenced by the
    --| Id_Ref.  If for example, the reference is to a component of a
    --| record, Ada.definiion will return the record component.  Thsi function
    --| returns the actual object that is referenced.  A nil element is
    --| returned in the reference does not actually reference any object.
    function Get_Referenced_Object_Id
                (Id_Ref : Ada_Program.Identifier_Reference)
                return Ada_Program.Identifier_Definition;

    --| @DESCRIPTION Returns the type definition of any object reference
    --| @RAISES (Not_An_Object_Reference)
    function Reference_Type (Id_Reference : Ada_Program.Identifier_Reference)
                            return Ada_Program.Type_Definition;

    --| @DESCRIPTION Raised if the reference does not actual reference and
    --| object or a component of an object
    Not_An_Object_Reference : exception;


    type Reference_Kind is (Set,  
                            Used,  
                            Set_And_Used);

    --| @DESCRIPTION A references is Set if it is on the left hand
    --| side of an assignment statement or if it is passed as
    --| an out parameter.  A reference is Set_And_Used if it is passed
    --| as an in out parameter.  All other references are Used.
    function Kind (Id_Reference : Ada_Program.Identifier_Reference)
                  return Reference_Kind;

end Id_Referencers;

E3 Meta Data

    nblk1=6
    nid=0
    hdr6=c
        [0x00] rec0=18 rec1=00 rec2=01 rec3=034
        [0x01] rec0=00 rec1=00 rec2=06 rec3=006
        [0x02] rec0=13 rec1=00 rec2=02 rec3=034
        [0x03] rec0=00 rec1=00 rec2=05 rec3=002
        [0x04] rec0=16 rec1=00 rec2=03 rec3=020
        [0x05] rec0=07 rec1=00 rec2=04 rec3=000
    tail 0x215003f76815c65796f7b 0x42a00088462061e03