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

⟦a96480593⟧ Ada Source

    Length: 8192 (0x2000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Dependency_Analysis, seg_02963a

Derivation

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

E3 Source Code



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;

E3 Meta Data

    nblk1=7
    nid=0
    hdr6=e
        [0x00] rec0=1c rec1=00 rec2=01 rec3=02c
        [0x01] rec0=1a rec1=00 rec2=02 rec3=004
        [0x02] rec0=1c rec1=00 rec2=03 rec3=00c
        [0x03] rec0=13 rec1=00 rec2=04 rec3=04e
        [0x04] rec0=14 rec1=00 rec2=05 rec3=016
        [0x05] rec0=0f rec1=00 rec2=06 rec3=032
        [0x06] rec0=0e rec1=00 rec2=07 rec3=000
    tail 0x21722f60683d369c0f41f 0x42a00088462060003