DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

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 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T V

⟦1c38efe01⟧ TextFile

    Length: 2176 (0x880)
    Types: TextFile
    Names: »V«

Derivation

└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
    └─ ⟦129cab021⟧ »DATA« 
        └─⟦this⟧ 

TextFile

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;