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

⟦5e8e3e19b⟧ Ada Source

    Length: 7168 (0x1c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Complements_Old, seg_04723c

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 

E3 Source Code



with Tree, String_Utilities, Unbounded_String;


package body Complements_Old is

    package Identifier is new Unbounded_String (1);

    type Complement is
        record
            Name : Identifier.Variable_String;
            Kind : Kind_Of_Complement;
        end record;

---------------------

    function "<" (Left, Right : Complement) return Boolean is

    begin
        return String_Utilities.Less_Than
                  (Identifier.Image (Left.Name), Identifier.Image (Right.Name));
    end "<";

    function ">" (Left, Right : Complement) return Boolean is

    begin
        return String_Utilities.Greater_Than
                  (Identifier.Image (Left.Name), Identifier.Image (Right.Name));
    end ">";

    package Complements_Tree is new Tree (Element => Complement,
                                          Nb_Preallocation_Node => 30);

---------------------

    procedure Create (Name : String; A_Kind : Kind_Of_Complement) is
        A_Complement : Complement;
    begin
        A_Complement.Name := Identifier.Value (Name);
        A_Complement.Kind := A_Kind;
        Complements_Tree.Insert (A_Complement);
    end Create;

    function Exists (Name : String) return Boolean is
        A_Complement : Complement;
    begin  
        A_Complement.Name := Identifier.Value (Name);
        return Complements_Tree.Find (A_Complement);
    end Exists;

    function Kind_Of (Name : String) return Kind_Of_Complement is
        A_Complement : Complement;
    begin
        A_Complement.Name := Identifier.Value (Name);
        if Complements_Tree.Find (A_Complement) then
            return Complements_Tree.Get_Current_Element.Kind;
        end if;
        return No_One;
    end Kind_Of;

end Complements_Old;

E3 Meta Data

    nblk1=6
    nid=5
    hdr6=4
        [0x00] rec0=24 rec1=00 rec2=01 rec3=076
        [0x01] rec0=1a rec1=00 rec2=04 rec3=000
        [0x02] rec0=0d rec1=00 rec2=04 rec3=000
        [0x03] rec0=14 rec1=00 rec2=03 rec3=000
        [0x04] rec0=0a rec1=00 rec2=02 rec3=000
        [0x05] rec0=43 rec1=09 rec2=36 rec3=23b
    tail 0x215440ba686534e463f04 0x42a00088462060003
Free Block Chain:
  0x5: 0000  00 03 03 fc 80 0b 65 20 28 43 2e 4e 61 6d 65 29  ┆      e (C.Name)┆
  0x3: 0000  00 02 01 9d 80 0d 5f 43 6f 6d 70 6c 65 6d 65 6e  ┆      _Complemen┆
  0x2: 0000  00 06 00 e0 80 07 6e 64 20 74 68 65 6e 07 00 1f  ┆      nd then   ┆
  0x6: 0000  00 00 00 2a 80 03 65 72 3b 03 00 09 20 20 20 20  ┆   *  er;       ┆