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

⟦c0a459e9e⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Moving_String, seg_044e49, seg_0462f7, seg_04800e

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;
package body Moving_String is

    procedure Free (Item : in out Object) is

    begin
        M_String.Free (Item.Inner);
    end Free;

    function From_Character (A_Character : in Character) return Object is

        New_Object : Object;
    begin  
        M_String.Append (New_Object.Inner, A_Character);
        return New_Object;
    end From_Character;

    function From_String (A_String : in String) return Object is

        New_Object : Object;
    begin  
        M_String.Append (New_Object.Inner, A_String);
        return New_Object;
    end From_String;

    function "&" (Left : in Object; Right : in Character) return Object is

        New_Object : Object := Left;

    begin
        M_String.Append (New_Object.Inner, Right);
        return New_Object;
    end "&";

    function "&" (Left : in Character; Right : in Object) return Object is

        New_Object : Object := From_Character (Left);

    begin
        M_String.Append (New_Object.Inner, Right.Inner);
        return New_Object;
    end "&";

    function "&" (Left : in Object; Right : in String) return Object is

        New_Object : Object := Left;

    begin
        M_String.Append (New_Object.Inner, Right);
        return New_Object;
    end "&";

    function "&" (Left : in String; Right : in Object) return Object is

        New_Object : Object := From_String (Left);

    begin
        M_String.Append (New_Object.Inner, Right.Inner);
        return New_Object;
    end "&";

    function "&" (Left, Right : in Object) return Object is

        New_Object : Object;

    begin
        M_String.Copy (New_Object.Inner, Left.Inner);
        M_String.Append (New_Object.Inner, Right.Inner);
        return New_Object;
    end "&";

    function Image (Item : in Object) return String is

    begin
        return M_String.Image (Item.Inner);
    end Image;

    function Length (Item : in Object) return Natural is
    begin
        return M_String.Length (Item.Inner);
    end Length;

    function Char_At (Item : in Object; At_Pos : in Positive)
                     return Character is  
    begin
        return M_String.Char_At (Item.Inner, At_Pos);
    end Char_At;

end Moving_String;


E3 Meta Data

    nblk1=4
    nid=2
    hdr6=6
        [0x00] rec0=28 rec1=00 rec2=01 rec3=008
        [0x01] rec0=27 rec1=00 rec2=04 rec3=014
        [0x02] rec0=0d rec1=00 rec2=03 rec3=000
        [0x03] rec0=16 rec1=00 rec2=02 rec3=000
    tail 0x21746372686465dcc1bcb 0x42a00088462060003
Free Block Chain:
  0x2: 0000  00 00 02 19 80 0d 6e 20 4e 65 77 5f 4f 62 6a 65  ┆      n New_Obje┆