|
|
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 Table, seg_035446, seg_03639f, seg_0368f0
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Text_Io;
with Bounded_String;
with Bug;
package body Table is
procedure Insert (The_Table : in out Symbol_Kind;
Name : Message.Tiny_String;
New_Reference : Object.Reference) is
begin
Symbol_Map.Define (The_Map => The_Table.Map,
D => Bounded_String.Image (V => Name),
R => New_Reference,
Trap_Multiples => False);
end Insert;
procedure Find (The_Table : Symbol_Kind;
Name : Message.Tiny_String;
New_Reference : in out Object.Reference;
Success : out Boolean) is
begin
Symbol_Map.Find (The_Map => The_Table.Map,
D => Bounded_String.Image (Name),
R => New_Reference,
Success => Success);
end Find;
procedure Remove (The_Table : in out Symbol_Kind;
Name : Message.Tiny_String) is
begin
Symbol_Map.Undefine (The_Map => The_Table.Map,
D => Bounded_String.Image (V => Name));
end Remove;
function Is_Empty (The_Table : Symbol_Kind) return Boolean is
begin
return Symbol_Map.Is_Empty (The_Map => The_Table.Map);
end Is_Empty;
procedure Initialize (The_Table : in out Symbol_Kind) is
begin
Symbol_Map.Initialize (The_Map => The_Table.Map);
end Initialize;
function Eval (The_Table : Symbol_Kind; Name : Message.Tiny_String)
return Object.Reference is
begin
return Symbol_Map.Eval (The_Map => The_Table.Map,
D => Bounded_String.Image (Name));
exception
when Symbol_Map.Undefined =>
raise Bug.Undefined_Name_In_Symbol_Table;
end Eval;
procedure In_Text (The_Table : Symbol_Kind) is
Iterator : Symbol_Map.Iterator;
The_Object : Object.Reference;
begin
Iterator := The_Table.Iter;
Symbol_Map.Init (Iter => Iterator, The_Map => The_Table.Map);
Text_Io.Put_Line ("TABLE DES SYMBOLES");
Text_Io.Put_Line ("==================");
Text_Io.New_Line;
while not Symbol_Map.Done (Iter => Iterator) loop
Text_Io.Put ("I: ");
Text_Io.Put (Symbol_Map.Value (Iter => Iterator));
Text_Io.Set_Col (25);
Text_Io.Put (" Classe : ");
The_Object := Symbol_Map.Eval
(The_Table.Map, (Symbol_Map.Value
(Iter => Iterator)));
Text_Io.Put (Object.Class'Image (Object.Get_Class (The_Object)));
Text_Io.Set_Col (50);
Text_Io.Put (" ID_Objet :==> ");
Text_Io.Put_Line (Integer'Image (Object.Get_Value (The_Object)));
Symbol_Map.Next (Iter => Iterator);
end loop;
end In_Text;
end Table;
nblk1=6
nid=2
hdr6=8
[0x00] rec0=1d rec1=00 rec2=01 rec3=06a
[0x01] rec0=20 rec1=00 rec2=06 rec3=018
[0x02] rec0=14 rec1=00 rec2=05 rec3=032
[0x03] rec0=08 rec1=00 rec2=04 rec3=000
[0x04] rec0=09 rec1=00 rec2=04 rec3=000
[0x05] rec0=08 rec1=00 rec2=02 rec3=000
tail 0x2173209fe84d9582fcb1b 0x42a00088462060003
Free Block Chain:
0x2: 0000 00 03 00 12 00 0f 20 20 20 20 70 72 6f 63 65 64 ┆ proced┆
0x3: 0000 00 00 00 0e 80 0b 20 53 79 6d 62 6f 6c 5f 4d 61 ┆ Symbol_Ma┆