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: ┃ B T

⟦f294778ca⟧ TextFile

    Length: 6329 (0x18b9)
    Types: TextFile
    Names: »B«

Derivation

└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
    └─ ⟦129cab021⟧ »DATA« 
        └─⟦this⟧ 
└─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04
    └─ ⟦d65440be7⟧ »DATA« 
        └─⟦this⟧ 

TextFile

with Activity;
with Directory_Tools;
with Io;
with Object_Sets;  
with Object_Sets_Renames;

use Object_Sets_Renames;

procedure Dependency_Analysis
             (The_Objects : in String := "<SELECTION>";
              Show_Full_Pathnames : Boolean := False;
              Show_Dependencies_Only : in Boolean := True;
              Process_Specs_Only : in Boolean := False;
              Process_Using_Transitive_Closure : in Boolean := False;
              Include_Environment_Dependencies : in Boolean := False;
              Analyze_Generics_As_Code_Shared : in Boolean := True;
              Use_This_Activity : in Activity.Activity_Name := Activity.Nil) is

    package Dir_Object renames Directory_Tools.Object;
    package Dir_Names renames Directory_Tools.Naming;

    All_Objects : Dir_Object.Iterator := Dir_Names.Resolution (The_Objects);


    function Simple_Name (The_Object : in Dir_Object.Handle) return String is
    begin
        return (Dir_Names.Simple_Name (The_Object) &
                Dir_Names.Part_Attribute
                   (Dir_Names.Unique_Full_Name (The_Object)));
    end Simple_Name;


    procedure Print_Objects (These_Objects : in Object_Set;
                             Show_Full_Pathnames : in Boolean;
                             This_Header : in String) is
        Indentation : constant String := "   ";
        Underline : constant String (This_Header'First .. This_Header'Last) :=
           (others => '-');
        The_Objects : Object_Set := These_Objects;
    begin
        Dir_Object.Reset (The_Objects);

        if (Dir_Object.Done (The_Objects)) then
            null;
        else
            Io.Put_Line (This_Header);  
            Io.Put_Line (Underline);

            while (not Dir_Object.Done (The_Objects)) loop
                if Show_Full_Pathnames then
                    Io.Put_Line (Indentation &
                                 Dir_Names.Unique_Full_Name
                                    (Dir_Object.Value (The_Objects)));
                else
                    Io.Put_Line (Indentation &
                                 Simple_Name (Dir_Object.Value (The_Objects)));
                end if;
                Dir_Object.Next (The_Objects);
            end loop;
        end if;
        Io.New_Line;
    end Print_Objects;


begin
    if Dir_Object.Is_Bad (All_Objects) then
        Io.Put_Line ("CANNOT RESOLVE """ & The_Objects & """!");
    end if;

    while not Dir_Object.Done (All_Objects) loop
        declare
            This_Object : Object := Dir_Object.Value (All_Objects);

            Full_Object_Name : constant String :=
               Dir_Names.Unique_Full_Name (This_Object);
            Simple_Object_Name : constant String :=
               Dir_Names.Simple_Name (This_Object) &
                  Dir_Names.Part_Attribute
                     (Dir_Names.Unique_Full_Name (This_Object));

        begin  
            if (Dir_Object.Is_Bad (This_Object)) then
                Io.Put_Line ("CANNOT RESOLVE """ & The_Objects & """!");
            else
                if Show_Dependencies_Only then
                    null;
                else
                    if Show_Full_Pathnames then
                        Print_Objects
                           (These_Objects =>
                               Object_Sets.Dependencies_On
                                  (This_Object, Process_Specs_Only,
                                   Process_Using_Transitive_Closure,
                                   Include_Environment_Dependencies,
                                   Analyze_Generics_As_Code_Shared,
                                   Use_This_Activity),
                            Show_Full_Pathnames => True,
                            This_Header =>
                               "The following depend upon (""with"") " &
                                  Full_Object_Name & ":");
                    else
                        Print_Objects
                           (These_Objects =>
                               Object_Sets.Dependencies_On
                                  (This_Object, Process_Specs_Only,
                                   Process_Using_Transitive_Closure,
                                   Include_Environment_Dependencies,
                                   Analyze_Generics_As_Code_Shared,
                                   Use_This_Activity),
                            Show_Full_Pathnames => False,
                            This_Header =>
                               "The following depend upon (""with"") " &
                                  Simple_Object_Name & ":");
                    end if;
                end if;

                if Show_Full_Pathnames then
                    Print_Objects (These_Objects =>
                                      Object_Sets.Dependencies_By
                                         (This_Object, Process_Specs_Only,
                                          Process_Using_Transitive_Closure,
                                          Include_Environment_Dependencies,
                                          Analyze_Generics_As_Code_Shared,
                                          Use_This_Activity),
                                   Show_Full_Pathnames => True,
                                   This_Header =>
                                      Full_Object_Name &
                                         " depends upon (""withs""):");
                else
                    Print_Objects (These_Objects =>
                                      Object_Sets.Dependencies_By
                                         (This_Object, Process_Specs_Only,
                                          Process_Using_Transitive_Closure,
                                          Include_Environment_Dependencies,
                                          Analyze_Generics_As_Code_Shared,
                                          Use_This_Activity),
                                   Show_Full_Pathnames => False,
                                   This_Header =>
                                      Simple_Object_Name &
                                         " depends upon (""withs""):");
                end if;
            end if;

            Dir_Object.Next (All_Objects);
        end;
    end loop;

end Dependency_Analysis;