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

⟦7e1c40664⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Objet, seg_04606d

Derivation

└─⟦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, The_Hero, The_Place, The_Order, Complement_Identifier_Array;
package body Objet is

    procedure Create_Real (Item : out Object; Complement : in Positive) is

    begin
        Item := (Kind => Real, Complement => Complement);
    end Create_Real;

    procedure Create_Group (Item : out Object; Position : in Positive) is

    begin
        Item := (Kind => Group, Position => Position);
    end Create_Group;

    procedure Create_Place (Item : out Object) is

    begin
        Item := (Kind => Place);
    end Create_Place;

    procedure Create_Hero (Item : out Object) is

    begin
        Item := (Kind => Hero);
    end Create_Hero;

    procedure Show (Item : in Object) is

    begin
        Text_Io.Put_Line ("Objet : Kind : " & Objet_Kind'Image (Item.Kind) &
                          " Image : " & Image (Item));
    end Show;

    function Is_A_Real (Item : in Object) return Boolean is

    begin
        return Item.Kind = Real;
    end Is_A_Real;

    function Is_A_Group (Item : in Object) return Boolean is

    begin
        return Item.Kind = Group;
    end Is_A_Group;

    function Is_The_Place (Item : in Object) return Boolean is

    begin
        return Item.Kind = Place;
    end Is_The_Place;

    function Is_The_Hero (Item : in Object) return Boolean is

    begin
        return Item.Kind = Hero;
    end Is_The_Hero;

    function Complement (Item : in Object) return Natural is

    begin
        case Item.Kind is
            when Real =>
                return Item.Complement;
            when Group =>                    -- attention avec type index !!
                return The_Order.Complement (Item.Position);
            when Hero =>
                return The_Hero.Index;
            when Place =>
                return The_Place.Index;
            when Unknown =>
                return 0;
        end case;
    end Complement;

    function Image (Item : in Object) return String is
        [declaration]
    begin
        case Item.Kind is
            when Real | Group | Place | Hero =>
                return " Complement : " &
                          Complement_Identifier_Array.Image (Complement (Item));
            when Unknown =>
                return "";
        end case;
    end Image;
end Objet;

E3 Meta Data

    nblk1=4
    nid=3
    hdr6=6
        [0x00] rec0=27 rec1=00 rec2=01 rec3=018
        [0x01] rec0=24 rec1=00 rec2=04 rec3=01e
        [0x02] rec0=0e rec1=00 rec2=02 rec3=000
        [0x03] rec0=08 rec1=00 rec2=02 rec3=000
    tail 0x217484f58864d69c595fb 0x42a00088462060003
Free Block Chain:
  0x3: 0000  00 00 00 04 80 01 75 01 02 03 04 74 69 6f 6e 20  ┆      u    tion ┆