DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

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 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T V

⟦b4f852940⟧ TextFile

    Length: 4949 (0x1355)
    Types: TextFile
    Names: »V«

Derivation

└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
    └─ ⟦fc9b38f02⟧ »DATA« 
        └─⟦9b46a407a⟧ 
            └─⟦12c68c704⟧ 
                └─⟦this⟧ 
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS 
    └─ ⟦91c658230⟧ »DATA« 
        └─⟦458657fb6⟧ 
            └─⟦220843204⟧ 
                └─⟦this⟧ 

TextFile

with Diana;
with Directory;
with Links_Implementation;
with Io_Exceptions;

package Link_Tools is

    pragma Subsystem (Tools, Private_Part => Closed);
    pragma Module_Name (4, 3975);

    package Links renames Links_Implementation;

    subtype World_Name is String;
    This_World : constant World_Name := "$";

    -- The string name for the World associated with the current naming
    -- context.

    subtype Link_Name is String;

    -- An Ada simple name. When used as an in-parameter, except in Add and
    -- Replace, it may contain wildcard characters.  In Add and Replace it
    -- may contain substitution characters.

    subtype Source_Name is String;

    -- A directory string name that specifies an existing Ada Library Unit.
    -- (The unit does not have to be installed, but its declaration must be
    -- in a library.)  May contain wildcard characters when used as an
    -- in-parameter.

    subtype Link_Kind is Links.Link_Kind;

    -- If the source unit is in the same world as the link,
    -- the link is Internal; otherwise it is External.


    Any      : constant Link_Kind := Links.Any;
    External : constant Link_Kind := Links.External;
    Internal : constant Link_Kind := Links.Internal;

    function "=" (L, R : Link_Kind) return Boolean renames Links."=";


    Name_Error : exception renames Io_Exceptions.Name_Error;
    -- Raised if a World parameter cannot be resolved.

    Use_Error : exception renames Io_Exceptions.Use_Error;
    -- Raised of the link pack cannot be opened for other reasons.


    function Has (Link   : Link_Name   := "@";
                  Source : Source_Name := "?";
                  Kind   : Link_Kind   := Link_Tools.Any;
                  World  : World_Name  := This_World) return Boolean;

    -- Returns true iff the pack contains at least one link that matches the
    -- given link, source, and kind parameters.


    function Link (Source : Source_Name;
                   Kind   : Link_Kind  := Link_Tools.Any;
                   World  : World_Name := This_World) return Link_Name;

    function Link (Source : Diana.Tree;
                   Kind   : Link_Kind  := Link_Tools.Any;
                   World  : World_Name := This_World) return Link_Name;

    function Link (Source : Directory.Object;
                   Kind   : Link_Kind  := Link_Tools.Any;
                   World  : World_Name := This_World) return Link_Name;


    -- Given a Source_Name, Def_ID, or Directory.Object for an Ada unit,
    -- returns a link for that unit in the given world that matches the
    -- Kind parameter.  A null string is returned if no such link can be
    -- found.


    function Source (Link  : Link_Name;
                     Kind  : Link_Kind  := Link_Tools.Any;
                     World : World_Name := This_World) return Source_Name;

    function Source (Link  : Link_Name;
                     Kind  : Link_Kind  := Link_Tools.Any;
                     World : World_Name := This_World) return Diana.Tree;

    function Source (Link  : Link_Name;
                     Kind  : Link_Kind  := Link_Tools.Any;
                     World : World_Name := This_World) return Directory.Object;


    -- Returns either the Source_Name, Def_ID, or Directory.Object for an Ada
    -- unit corresponding to a link that matches the Link and Kind parameter.
    -- Returns a null object if no match can be found.


    type Dependent_Iterator is private;

    function Dependents (Link   : Link_Name   := "@";
                         Source : Source_Name := "?";
                         Kind   : Link_Kind   := Link_Tools.Any;
                         World  : World_Name  := This_World)
                        return Dependent_Iterator;

    procedure Next  (Iter : in out Dependent_Iterator);
    function  Value (Iter : Dependent_Iterator) return Diana.Tree;
    function  Done  (Iter : Dependent_Iterator) return Boolean;


    -- Computes the Library Units of the world that are installed or coded
    -- and reference any of the links specified by the Source, Link and Kind
    -- parameters.

    type Link_Iterator is private;

    procedure Init (Iter   : out Link_Iterator;
                    Source :     Source_Name := "?";
                    Link   :     Link_Name   := "@";
                    Kind   :     Link_Kind   := Link_Tools.Any;
                    World  :     World_Name  := This_World);

    procedure Next   (Iter : in out Link_Iterator);
    function  Link   (Iter : Link_Iterator) return Link_Name;
    function  Source (Iter : Link_Iterator) return Source_Name;
    function  Source (Iter : Link_Iterator) return Diana.Tree;
    function  Source (Iter : Link_Iterator) return Directory.Object;
    function  Kind   (Iter : Link_Iterator) return Link_Kind;
    function  Done   (Iter : Link_Iterator) return Boolean;

    -- For iterating over the Links in a link pack that match given Source
    -- and Link patterns

end Link_Tools;