|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 7168 (0x1c00)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Hyper_Table, seg_004421
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Io;
with Profile;
with Log;
with Errors;
with Debug_Tools;
with Ada_Traversal;
with Directory_Tools;
with Ada_Program;
with Table_Formatter;
with Simple_Status;
with Lrm_Renames;
use Lrm_Renames;
with Directory_Renames;
use Directory_Renames;
package body Hyper_Table is
function Nil_Element_List return Ada_Program.Element_List is
begin
return Ada_Program.Nil_List;
end Nil_Element_List;
procedure Add_Hyper_Table (Units : in out Directory_Tools.Object.Iterator;
To_Document : in out Abstract_Document.Handle;
Response : String := "<PROFILE>") is
Old_Profile : Profile.Response_Profile := Profile.Get;
New_Profile : Profile.Response_Profile;
Rows : array (Columns) of Integer;
package Table is new Table_Formatter (Rows'Length);
Fields : Table.Field_List (1 .. Columns'Pos (Columns'Last) + 1);
Bool : Boolean := True;
procedure Add_One_Row (Program_Element : Ada.Element) is
Linkage_Element : Ada.Element;
Linkage_Elements : Ada.Element_List;
begin
for C in Columns loop
Linkage (For_Column => C,
For_Element => Program_Element,
Linkage => Linkage_Element,
Linkage_List => Linkage_Elements);
Table.Item (Image (C, Program_Element),
Linkage => Linkage_Element,
Linkage_List => Linkage_Elements,
Explanation => Explanation (C, Program_Element));
end loop;
end Add_One_Row;
procedure Pre_Op (Program_Element : Ada.Element;
State : in out Boolean;
Control : in out Ada.Traversal_Control) is
begin
if Include_Element (Program_Element) then
Add_One_Row (Program_Element);
end if;
Control := Ada.Continue;
exception
when others =>
Log.Put_Line ("UNEXPECTED ERROR, EXCEPTION:" &
Debug_Tools.Get_Exception_Name,
Profile.Error_Msg);
Log.Put_Line ("DIAGNOSIS: " & Ada.Diagnosis, Profile.Error_Msg);
Log.Put_Line ("UNIT: " & Ada.Conversion.Get_Name
(Comp_Units.Parent_Compilation_Unit
(Program_Element)),
Profile.Error_Msg);
Log.Put_Line ("On line: " &
Natural'Image (Ada.Line_Number (Program_Element)),
Profile.Error_Msg);
Control := Ada.Continue;
end Pre_Op;
procedure Post_Op (Program_Element : Ada.Element;
State : in out Boolean;
Control : in out Ada.Traversal_Control) is
begin
Control := Ada.Continue;
end Post_Op;
procedure Lrm_Traverse is new Ada.Depth_First_Traversal
(Boolean, Pre_Op, Post_Op);
procedure Include_Additional_Units
(List_Of_Elements : Ada.Element_List) is
Elements : Ada.Element_List;
begin
-- create a local copy so the parameter does not have to be 'in out'
Ada.Copy (List_Of_Elements, Elements);
while not Ada.Done (Elements) loop
Add_One_Row (Ada.Value (Elements));
Ada.Next (Elements);
end loop;
end Include_Additional_Units;
procedure Traverse (Unit : Object.Handle) is
begin
Lrm_Traverse (Ada.Conversion.To_Compilation_Unit (Unit),
Bool, False);
end Traverse;
procedure Traverse_All_Ada is new Ada_Traversal (Traverse);
begin
New_Profile := Profile.Value (Response);
Profile.Set (New_Profile);
for C in Columns loop
Fields (Columns'Pos (C) + 1) := Columns'Pos (C) + 1;
Table.Header (Columns'Image (C),
Is_Integer => Is_Integer_Valued (C));
end loop;
Io.Echo ("Traversing units...");
Traverse_All_Ada (Units);
Include_Additional_Units (Additional_Included_Elements);
Io.Echo_Line ("Building abstract_document...");
Table.Sort (Fields);
Table.Display (To_Document, Table_Title);
Profile.Set (Old_Profile);
end Add_Hyper_Table;
end Hyper_Table;
nblk1=6
nid=0
hdr6=c
[0x00] rec0=23 rec1=00 rec2=01 rec3=020
[0x01] rec0=18 rec1=00 rec2=02 rec3=006
[0x02] rec0=00 rec1=00 rec2=06 rec3=002
[0x03] rec0=15 rec1=00 rec2=03 rec3=026
[0x04] rec0=18 rec1=00 rec2=04 rec3=02a
[0x05] rec0=1e rec1=00 rec2=05 rec3=000
tail 0x217001700815c63cf91ba 0x42a00088462061e03