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

⟦1402aed8c⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Symbol_Table, seg_0376d2, seg_037bd6, seg_038abc

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 
└─⟦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 Object;
with Scanner;
with String_Map_Generic;

package Symbol_Table is

    type Table_Reference is private;


    -- initialiser la table des symboles
    procedure Create;

    -- entrer dans un bloc nomme de la table des symboles
    procedure Enter (Block_Name : in Scanner.B_String);

    -- entrer dans un bloc "sans nom" de la table des symboles
    procedure New_Enter (Block_Name : in out Scanner.B_String);

    -- quitter le bloc courant de la table des symboles
    procedure Leave;

    -- retourne le bloc courant
    function Current_Block return Scanner.B_String;

    -- inserer un element dans le bloc courant
    procedure Insert (Identifier : Scanner.B_String;
                      Content : Object.Reference);

    -- rechercher si un identificateur existe dans le bloc courant
    function Is_Found_In_Block (Identifier : Scanner.B_String) return Boolean;

    -- detruire un identificateur dans le bloc courant
    procedure Remove (Identifier : Scanner.B_String);

    -- rechercher si un identificateur existe dans la table des symboles
    function Is_Found (Identifier : Scanner.B_String) return Boolean;

    -- mise a jour du contenu de l'identificateur dans la table des symboles
    procedure Set_Info (Identifier : Scanner.B_String;
                        Content : Object.Reference);

    -- lecture du contenu de l'identificateur dans la table des symboles
    function Get_Info (Identifier : Scanner.B_String) return Object.Reference;

    -- affichage du contenu de la table des symboles
    procedure Image_Table;

    -- affichage du contenu du bloc courant
    procedure Image_Block (Block_Name : Scanner.B_String);


private

    package Block_Table is new String_Map_Generic
                                  (Size => Scanner.Max_Size,
                                   Range_Type => Object.Reference);

    type Table_Reference is
        record
            Father_Name : Scanner.B_String;
            Block_Access : Block_Table.Map;
        end record;

    package The_Symbol_Table is
       new String_Map_Generic (Size => Scanner.Max_Size,
                               Range_Type => Table_Reference);

end Symbol_Table;

E3 Meta Data

    nblk1=4
    nid=3
    hdr6=6
        [0x00] rec0=22 rec1=00 rec2=01 rec3=012
        [0x01] rec0=1b rec1=00 rec2=02 rec3=020
        [0x02] rec0=09 rec1=00 rec2=04 rec3=000
        [0x03] rec0=07 rec1=00 rec2=03 rec3=000
    tail 0x21530b1e884e480e61864 0x42a00088462060003
Free Block Chain:
  0x3: 0000  00 00 00 c2 80 04 6f 72 64 3b 04 00 00 00 00 1f  ┆      ord;      ┆