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

⟦493b37167⟧ Ada Source

    Length: 7168 (0x1c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Table, seg_035446, seg_03639f, seg_0368f0

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 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;



E3 Meta Data

    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┆