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

⟦879f7cd7e⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Visit, seg_0043de, separate Call_Trees

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



separate (Call_Trees)
procedure Visit (This_Object : in String := "<SELECTION>") is

    The_Object : constant String := Naming.Unique_Full_Name (This_Object);

    procedure Display_Interactive (This_Tree : Queues.Queue) is
        Current_Element       : Ada_Program.Element         :=
           Queues.First (This_Tree).Subprogram_Id;
        The_Hierarchy         : Ct_Hierarchy.Hierarchy.Hier :=
           Ct_Hierarchy.Conversion (Of_This_Tree => This_Tree);
        In_Window, Out_Window : Window_Io.File_Type;

    begin  
        Window_Io.Open (File => Out_Window,
                        Mode => Window_Io.Out_File,
                        Name => "Call Tree",
                        Form => "");
        Window_Utilities.Erase (Out_Window);
        loop
            declare
                The_Map : constant Ct_Hierarchy.Display_Map :=
                   Ct_Hierarchy.Conversion
                      (Of_This_Map => Ct_Hierarchy.Hierarchy.Map_From
                                         (This_Element      => Current_Element,
                                          In_This_Hierarchy => The_Hierarchy));
            begin
                Ct_Hierarchy.Put (This_Map       => The_Map,
                                  In_This_Window => Out_Window);
                Current_Element := Ct_Hierarchy.Get_Next
                                      (This_Map       => The_Map,
                                       In_This_Window => Out_Window);
                if Ada_Program.Is_Nil (Current_Element) then
                    exit;
                end if;
            end;
        end loop;
        Window_Io.Delete (File => Out_Window);
    end Display_Interactive;

begin
    if The_Object = "" then
        Log.Put_Line (Message => "ERROR: " & This_Object &
                                    " does not resolve to an object",
                      Kind    => Profile.Error_Msg);
    else  
        declare
            The_Element : Ada_Program.Element :=
               Declarations.Enclosing_Declaration
                  (Ada_Program.Conversion.Resolve (The_Object));
        begin
            Display_Interactive (This_Tree =>
                                    Call_Tree_Queues.Tree_For
                                       (This_Subprogram_Body => The_Element));
        end;
    end if;

exception
    when Ada_Program.Failed =>
        Log.Put_Line (Message => "ERROR: " & The_Object & " is not an Ada unit",
                      Kind    => Profile.Error_Msg);
end Visit;

E3 Meta Data

    nblk1=4
    nid=0
    hdr6=8
        [0x00] rec0=19 rec1=00 rec2=01 rec3=008
        [0x01] rec0=00 rec1=00 rec2=04 rec3=02c
        [0x02] rec0=17 rec1=00 rec2=02 rec3=044
        [0x03] rec0=0f rec1=00 rec2=03 rec3=001
    tail 0x2150030e8815c633d9134 0x42a00088462061e03