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

⟦9a3ca9dad⟧ Ada Source

    Length: 7168 (0x1c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Enumerate_Array, seg_0492e6, seg_049306, seg_04946d

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 Text_Io, Enumerate, Generic_String_Sort_Array;
package body Enumerate_Array is

    package Enumeration_Array is
       new Generic_String_Sort_Array (Element => Identifier.Object,
                                      Max_Element_Number => 30,
                                      Null_Element => Identifier.Null_Object,
                                      Get_Key => Identifier.Image,
                                      Show_Element => Identifier.Show);

    package Enum_Array is new Generic_String_Sort_Array
                                 (Element => Enumerate.Object,
                                  Max_Element_Number => 100,
                                  Null_Element => Enumerate.Null_Object,
                                  Get_Key => Enumerate.Literal,
                                  Show_Element => Enumerate.Show);

    The_Enumerate_Array : Enum_Array.Object := Enum_Array.Null_Object;
    The_Enumeration_Array : Enumeration_Array.Object :=
       Enumeration_Array.Null_Object;

    procedure Put (Enumeration, Literal : in Identifier.Object;
                   Ok : out Boolean) is

        An_Enumerate : Enumerate.Object;
        Local_Ok : Boolean;

    begin
        Enumerate.Put (An_Enumerate, Enumeration, Literal);
        Enum_Array.Put (The_Enumerate_Array, An_Enumerate, Local_Ok);
        if Local_Ok then
            Enumeration_Array.Put (The_Enumeration_Array, Enumeration);  
        end if;  
        Ok := Local_Ok;
    end Put;

    procedure Show is

    begin
        Text_Io.Put_Line ("Enumerate Array :");
        Enum_Array.Show (The_Enumerate_Array);  
        Text_Io.Put_Line ("Enumeration Array :");
        Enumeration_Array.Show (The_Enumeration_Array);
    end Show;

    function Enumeration_Index (Enumeration : in String) return Natural is

    begin
        return Enumeration_Array.Index (The_Enumeration_Array, Enumeration);
    end Enumeration_Index;

    function Enumeration_From_Literal_Index
                (Literal : in String) return Natural is

        An_Enumerate : Enumerate.Object;
        Local_Ok : Boolean;

    begin
        Enum_Array.Get (The_Enumerate_Array, An_Enumerate, Literal, Local_Ok);
        if Local_Ok then
            return Enumeration_Array.Index
                      (The_Enumeration_Array,
                       Enumerate.Enumeration (An_Enumerate));
        else
            return 0;
        end if;
    end Enumeration_From_Literal_Index;

    function Enumeration_Index (Literal_Index : in Natural) return Natural is

        An_Enumerate : Enumerate.Object;
        Local_Ok : Boolean;

    begin
        Enum_Array.Get (The_Enumerate_Array, An_Enumerate,
                        Literal_Index, Local_Ok);
        if Local_Ok then
            return Enumeration_Array.Index
                      (The_Enumeration_Array,
                       Enumerate.Enumeration (An_Enumerate));
        else
            return 0;
        end if;
    end Enumeration_Index;

    function Literal_Index (Literal : in String) return Natural is

    begin
        return Enum_Array.Index (The_Enumerate_Array, Literal);
    end Literal_Index;

    function Enumeration (Enumeration_Index : in Natural) return String is

        An_Enumeration : Identifier.Object;
        Local_Ok : Boolean;

    begin
        Enumeration_Array.Get (The_Enumeration_Array, An_Enumeration,
                               Enumeration_Index, Local_Ok);
        if Local_Ok then
            return Identifier.Image (An_Enumeration);
        else
            return "";
        end if;  
    end Enumeration;

    function Literal (Literal_Index : in Natural) return String is

        An_Enumerate : Enumerate.Object;
        Local_Ok : Boolean;

    begin
        Enum_Array.Get (The_Enumerate_Array, An_Enumerate,
                        Literal_Index, Local_Ok);
        if Local_Ok then
            return Enumerate.Literal (An_Enumerate);
        else
            return "";
        end if;  
    end Literal;

    function Enumeration_Belong (Enumeration : in String) return Boolean is

    begin
        return Enumeration_Array.Belong (The_Enumeration_Array, Enumeration);
    end Enumeration_Belong;

    function Literal_Belong (Literal : in String) return Boolean is

    begin
        return Enum_Array.Belong (The_Enumerate_Array, Literal);
    end Literal_Belong;

begin

    Enumeration_Array.Put (The_Enumeration_Array,
                           Identifier.From_String ("special"));
    Enumeration_Array.Put (The_Enumeration_Array,
                           Identifier.From_String ("normal"));

end Enumerate_Array;

E3 Meta Data

    nblk1=6
    nid=0
    hdr6=c
        [0x00] rec0=14 rec1=00 rec2=01 rec3=06c
        [0x01] rec0=20 rec1=00 rec2=03 rec3=000
        [0x02] rec0=11 rec1=00 rec2=04 rec3=000
        [0x03] rec0=1f rec1=00 rec2=05 rec3=04e
        [0x04] rec0=22 rec1=00 rec2=02 rec3=000
        [0x05] rec0=09 rec1=00 rec2=06 rec3=000
    tail 0x2174d986e865b6e00f385 0x42a00088462060003