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

⟦ad0dda0f2⟧ Ada Source

    Length: 3072 (0xc00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, function Tree_For, seg_0043e5, separate Call_Tree_Queues

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



separate (Call_Tree_Queues)
function Tree_For (This_Subprogram_Body : Ada_Program.Element) return Queue is

    State              : State_Record;
    Unit_Body_Decl     : Ap.Element :=
       Normalize_Subprogram_Body (This_Subprogram_Body);
    Previously_Existed : Boolean;

begin

    Clear_State (State);

    -- not a subprogram body
    if Ap.Is_Nil (Unit_Body_Decl) then
        Io.Put_Line ("*** Error ***");
        Io.Put_Line ("  " & Conv.Get_Name (This_Subprogram_Body));
        Io.Put_Line ("  is not a subprogram.");

    else
        Append_State (Ap.Value (Decl.Identifiers (Unit_Body_Decl)),
                      State, Previously_Existed);
        Push_Level (State);

        Construct_Call_Tree (Root_Element        => Unit_Body_Decl,
                             State               => State,
                             Major_Elements_Only => False);

        return State.Transitive_Call_Tree;

    end if;

exception

    when Ap.Inappropriate_Program_Element =>
        Io.Echo_Line ("Call Tree Traverse Logic Error  """ &
                      Ap.Diagnosis & """");
    when others =>

        raise;
end Tree_For;

E3 Meta Data

    nblk1=2
    nid=0
    hdr6=4
        [0x00] rec0=23 rec1=00 rec2=01 rec3=004
        [0x01] rec0=07 rec1=00 rec2=02 rec3=000
    tail 0x21700168e815c63464685 0x42a00088462061e03