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

⟦108ccc232⟧ Ada Source

    Length: 12288 (0x3000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Condition, seg_047ff5, seg_0482b2, seg_04923d, seg_049a65

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 Attribute, Objet, Detail, Expression;
package Condition is

    type Node_Kind is (Et, Ou, Single_Attribute, Hero, Place,
                       Actions, Meet, Belong, Attribute_Exist,
                       Exits_Exist, Subject_Exist, Unknown);

    subtype Operator is Node_Kind range Et .. Ou;
    type Compare_Kind is (Equal, Not_Equal, Less, Greater,
                          Greater_Equal, Less_Equal);
    type Binary_Kind is (Yes, No);

    type Object is private;

    procedure Create (Item : out Object;
                      Kind : in Operator;
                      Left, Right : in Object);
    procedure Create_Compare (Item : out Object;
                              An_Attribute : in Attribute.Object;
                              Symbol : in Compare_Kind;
                              An_Expression : in Expression.Object;
                              Ok : out Boolean);
    procedure Create_Hero (Item : out Object; A_Hero : in Detail.Object);
    procedure Create_Place (Item : out Object; A_Place : in Detail.Object);
    procedure Create_Actions (Item : out Object; Number : in Positive);
    procedure Create_Meet (Item : out Object; An_Animate : in Detail.Object);
    procedure Create_Belong (Item : out Object;
                             An_Objet : in Objet.Object;
                             Subject : in Detail.Object;
                             Binary : in Binary_Kind);
    procedure Create_Attribute_Exist (Item : out Object;
                                      An_Attribute : in Attribute.Object;
                                      Binary : in Binary_Kind);
    procedure Create_Exits_Exist (Item : out Object;
                                  A_Room : in Objet.Object;
                                  Binary : in Binary_Kind);
    procedure Create_Subject_Exist (Item : out Object;
                                    A_Subject : in Detail.Object;
                                    Binary : in Binary_Kind);
    procedure Show (Item : in Object);
    function Is_Right (Item : in Object) return Boolean;

    Null_Object : constant Object;

private

    type Node (Kind : Node_Kind := Unknown) is
        record  
            case Kind is
                when Et | Ou =>
                    Left_Node, Right_Node : Object;
                when Single_Attribute =>
                    The_Attribute : Attribute.Object := Attribute.Null_Object;
                    Compare : Compare_Kind;
                    Value : Expression.Object := Expression.Null_Object;
                when Hero =>
                    Other_Hero : Detail.Object := Detail.Null_Object;
                when Place =>
                    Other_Place : Detail.Object := Detail.Null_Object;
                when Actions =>
                    Actions_Number : Natural := 0;
                when Meet =>
                    Animate : Detail.Object := Detail.Null_Object;
                when Belong =>
                    Owner : Objet.Object := Objet.Null_Object;
                    Belong_Subject : Detail.Object := Detail.Null_Object;
                    Belong_Binary : Binary_Kind;  
                when Attribute_Exist =>
                    Exist_Attribute : Attribute.Object := Attribute.Null_Object;
                    Attribute_Binary : Binary_Kind;
                when Exits_Exist =>
                    Room : Objet.Object := Objet.Null_Object;
                    Exits_Binary : Binary_Kind;
                when Subject_Exist =>
                    Exist_Subject : Detail.Object := Detail.Null_Object;
                    Subject_Binary : Binary_Kind;
                when Unknown =>
                    null;
            end case;
        end record;

    type Object is access Node;

    Null_Object : constant Object := new Node'(Kind => Unknown);

end Condition;

E3 Meta Data

    nblk1=b
    nid=6
    hdr6=a
        [0x00] rec0=17 rec1=00 rec2=01 rec3=050
        [0x01] rec0=10 rec1=00 rec2=03 rec3=048
        [0x02] rec0=19 rec1=00 rec2=02 rec3=016
        [0x03] rec0=17 rec1=00 rec2=05 rec3=01c
        [0x04] rec0=01 rec1=00 rec2=04 rec3=000
        [0x05] rec0=1b rec1=00 rec2=07 rec3=02e
        [0x06] rec0=12 rec1=00 rec2=06 rec3=03a
        [0x07] rec0=1d rec1=00 rec2=05 rec3=00a
        [0x08] rec0=14 rec1=00 rec2=04 rec3=044
        [0x09] rec0=14 rec1=00 rec2=02 rec3=064
        [0x0a] rec0=16 rec1=00 rec2=03 rec3=000
    tail 0x2174bef7886579a39e27b 0x42a00088462060003
Free Block Chain:
  0x6: 0000  00 07 03 fc 80 29 2e 50 75 74 5f 4c 69 6e 65 20  ┆     ).Put_Line ┆
  0x7: 0000  00 08 03 fc 80 17 20 53 75 62 6a 65 63 74 20 3a  ┆       Subject :┆
  0x8: 0000  00 09 03 fc 80 1c 20 20 20 20 20 20 20 41 6e 5f  ┆             An_┆
  0x9: 0000  00 0a 03 fc 80 07 20 20 62 65 67 69 6e 07 00 3c  ┆        begin  <┆
  0xa: 0000  00 0b 03 fc 80 02 66 3b 02 00 0f 20 20 20 20 65  ┆      f;       e┆
  0xb: 0000  00 00 03 fc 80 0e 74 2e 4e 75 6c 6c 5f 4f 62 6a  ┆      t.Null_Obj┆