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

⟦a40c03d98⟧ Ada Source

    Length: 24576 (0x6000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Test_Attribute, seg_049207

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, Attribute, Order, Field_Identifier_Array, Order,
     Objet, The_Order, The_Hero, The_Place, Identifier,
     Moving_String, Detail, Group_Identifier_Array,
     Complement_Array, Complement, Enumerate_Array, Moving_String;
use Text_Io, Attribute;
procedure Test_Attribute is

    O : Object;  
    An_Order : Order.Object;
    D1, D2 : Detail.Object;
    Ob : Objet.Object;
    Id : Identifier.Object;  
    Ia : Order.Index_Array;
    Index : Natural;
    Ok : Boolean;

begin  
    Enumerate_Array.Put (Identifier.From_String ("normal"),
                         Identifier.From_String ("ouverte"), Ok);
    Enumerate_Array.Put (Identifier.From_String ("normal"),
                         Identifier.From_String ("entre-ouverte"), Ok);
    Enumerate_Array.Put (Identifier.From_String ("normal"),
                         Identifier.From_String ("fermee"), Ok);

    Enumerate_Array.Put (Identifier.From_String ("couleur"),
                         Identifier.From_String ("rouge"), Ok);  
    Enumerate_Array.Put (Identifier.From_String ("couleur"),
                         Identifier.From_String ("vert"), Ok);

    Enumerate_Array.Put (Identifier.From_String ("special"),
                         Identifier.From_String ("invisible"), Ok);

    Enumerate_Array.Show;

    Field_Identifier_Array.Put (Identifier.From_String ("nord"));
    Field_Identifier_Array.Put (Identifier.From_String ("sud"));
    Field_Identifier_Array.Put (Identifier.From_String ("est"));
    Field_Identifier_Array.Put (Identifier.From_String ("vie"));
    Field_Identifier_Array.Put (Identifier.From_String ("age"));
    Field_Identifier_Array.Put (Identifier.From_String ("nom"));
    Field_Identifier_Array.Put (Identifier.From_String ("couleur"));
    Field_Identifier_Array.Put (Identifier.From_String ("etat"));
    Field_Identifier_Array.Put (Identifier.From_String ("description"));
    Field_Identifier_Array.Show;

    Complement_Array.Put (Complement.Entity_Object,
                          Identifier.From_String ("gaston"), Ok);


    Complement_Array.Put_Verb (Identifier.From_String ("courir"),
                               Identifier.From_String ("aller"), Ok);
    Complement_Array.Put_Verb (Identifier.From_String ("demander"),
                               Identifier.From_String ("demander"), Ok);
    Complement_Array.Put_Verb (Identifier.From_String ("aller"),
                               Identifier.From_String ("aller"), Ok);
    Complement_Array.Put_Word (Identifier.From_String ("de"), Ok);
    Complement_Array.Put_Word (Identifier.From_String ("vie"), Ok);
    Complement_Array.Put_Word (Identifier.From_String ("nom"), Ok);
    Complement_Array.Put_Word (Identifier.From_String ("couleur"), Ok);
    Complement_Array.Put_Word (Identifier.From_String ("descriptiom"), Ok);
    Complement_Array.Put_Word (Identifier.From_String ("age"), Ok);
    Complement_Array.Put_Word (Identifier.From_String ("nord"), Ok);
    Complement_Array.Put_Word (Identifier.From_String ("est"), Ok);
    Complement_Array.Put_Word (Identifier.From_String ("sud"), Ok);
    Complement_Array.Put_Word (Identifier.From_String ("porte"), Ok);
    Complement_Array.Put_Word (Identifier.From_String ("etat"), Ok);

    Complement_Array.Put (Complement.Place_Object,
                          Identifier.From_String ("cuisine"), Ok);

    Complement_Array.Put (Complement.Place_Object,
                          Identifier.From_String ("chambre"), Ok);

    Complement_Array.Put (Complement.Place_Object,
                          Identifier.From_String ("salon"), Ok);


    Complement_Array.Create_Number_Field
       (Complement_Array.Index ("gaston"),
        Field_Identifier_Array.Index ("age"), Ok);
    Complement_Array.Field_Put_Number
       (Complement_Array.Index ("gaston"),
        Field_Identifier_Array.Index ("age"), 13, Ok);

    Complement_Array.Create_Number_Field
       (Complement_Array.Index ("gaston"),
        Field_Identifier_Array.Index ("vie"), Ok);
    Complement_Array.Field_Put_Number
       (Complement_Array.Index ("gaston"),
        Field_Identifier_Array.Index ("vie"), 138, Ok);

    Complement_Array.Create_Enumerate_Field
       (Complement_Array.Index ("gaston"),
        Field_Identifier_Array.Index ("couleur"), Ok);
    Complement_Array.Field_Put_Enumerate
       (Complement_Array.Index ("gaston"),
        Field_Identifier_Array.Index ("couleur"),
        Enumerate_Array.Enumeration_Index ("couleur"),
        Enumerate_Array.Literal_Index ("rouge"), Ok);

    Complement_Array.Create_Sentence_Field
       (Complement_Array.Index ("cuisine"),
        Field_Identifier_Array.Index ("description"), Ok);
    Complement_Array.Field_Put_Sentence
       (Complement_Array.Index ("cuisine"),
        Field_Identifier_Array.Index ("description"),
        Identifier.From_String ("C'est une belle cuisine"), Ok);

    Complement_Array.Create_Enumerate_Field
       (Complement_Array.Index ("cuisine"),
        Field_Identifier_Array.Index ("nord"), Ok);
    Complement_Array.Field_Put_Enumerate
       (Complement_Array.Index ("cuisine"),
        Field_Identifier_Array.Index ("nord"),
        Enumerate_Array.Enumeration_Index ("normal"),
        Enumerate_Array.Literal_Index ("fermee"), Ok);


    Complement_Array.Create_Sentence_Field
       (Complement_Array.Index ("chambre"),
        Field_Identifier_Array.Index ("description"), Ok);
    Complement_Array.Field_Put_Sentence
       (Complement_Array.Index ("chambre"),
        Field_Identifier_Array.Index ("description"),
        Identifier.From_String ("C'est une belle et grande chambre"), Ok);

    Complement_Array.Create_Enumerate_Field
       (Complement_Array.Index ("chambre"),
        Field_Identifier_Array.Index ("sud"), Ok);
    Index := Enumerate_Array.Enumeration_Index ("normal");
    Complement_Array.Field_Put_Enumerate
       (Complement_Array.Index ("chambre"),
        Field_Identifier_Array.Index ("sud"),
        Enumerate_Array.Enumeration_Index ("normal"),
        Enumerate_Array.Literal_Index ("fermee"), Ok);


    Complement_Array.Create_Sentence_Field
       (Complement_Array.Index ("salon"),
        Field_Identifier_Array.Index ("description"), Ok);
    Complement_Array.Field_Put_Sentence
       (Complement_Array.Index ("salon"),
        Field_Identifier_Array.Index ("description"),
        Identifier.From_String ("C'est un grand salon"), Ok);



    Complement_Array.Put_Exit (Complement_Array.Index ("cuisine"),
                               Complement_Array.Index ("porte"),
                               Complement_Array.Index ("cuisine"),
                               Complement_Array.Index ("nord"),
                               Complement_Array.Index ("chambre"),
                               Complement_Array.Index ("sud"), Ok);

    Complement_Array.Put_Exit (Complement_Array.Index ("chambre"),
                               Complement_Array.Index ("porte"),
                               Complement_Array.Index ("chambre"),
                               Complement_Array.Index ("sud"),
                               Complement_Array.Index ("cuisine"),
                               Complement_Array.Index ("nord"), Ok);

    Complement_Array.Show;

    Group_Identifier_Array.Put (Identifier.From_String ("salle"), Ok);
    Group_Identifier_Array.Put (Identifier.From_String ("salle"), Ok);
    Group_Identifier_Array.Put (Identifier.From_String ("direction"), Ok);



    Order.Put_Place (An_Order, "cuisine");
    Order.Put_First_Complement (An_Order, "aller");
    Order.Put_Second_Complement (An_Order, "nord");
    Order.Put_Third_Complement (An_Order, "cuisine");
    Order.Put_Fourth_Complement (An_Order, "");

    Ia := (1, 2, 3, 3, 4);  
    Order.Put_Redirection (An_Order, Ia);
    The_Order.Put (An_Order);

    The_Order.Show;

    The_Hero.Put (Complement_Array.Index ("gaston"));
    Put_Line ("index the hero : " & Natural'Image (The_Hero.Index));
    The_Hero.Show;

    The_Place.Put (Complement_Array.Index ("salon"));
    Put_Line ("index the place : " & Natural'Image (The_Place.Index));
    The_Place.Show;

    Put_Line ("show vide");
    Show (O);

    Objet.Create_Real (Ob, Complement_Array.Index ("gaston"));
    Objet.Show (Ob);
    Detail.Create_Real_Field (D1, Field_Identifier_Array.Index ("age"));
    Detail.Show (D1);
    Put (O, Ob, D1);

    Put_Line ("show plein");
    Show (O);

    Put_Line ("is a number : " & Boolean'Image (Is_A_Number (O)));
    Put_Line ("is a sentence : " & Boolean'Image (Is_A_Sentence (O)));
    Put_Line ("is an enumerate : " & Boolean'Image (Is_An_Enumerate (O)));
    Put_Line ("exist : " & Boolean'Image (Exist (O)));
    Put_Line ("image " & Image (O));
    Put_Line ("number : " & Integer'Image (Number (O)));
    Put_Line ("sentence : " & Sentence (O));
    Put_Line ("enumerate : " & Natural'Image (Enumeration (O)));
    Put_Line ("literal : " & Natural'Image (Literal (O)));

    Affect (O, 34, Ok);
    Put_Line ("affect number " & Boolean'Image (Ok) & " " &
              Integer'Image (Number (O)) & " " & Image (O));
    Text_Io.Put_Line (Natural'Image
                         (Enumerate_Array.Enumeration_Index ("couleur")) &
                      " " & Natural'Image
                               (Enumerate_Array.Literal_Index ("vert")));
    Affect (O, Enumerate_Array.Enumeration_Index ("couleur"),
            Enumerate_Array.Literal_Index ("vert"), Ok);  
    Put_Line ("affect enumerate " & Boolean'Image (Ok) &
              " " & Natural'Image (Enumeration (O)) & " " &
              Natural'Image (Literal (O)) & " " & Image (O));

    Put_Line ("show apres changement");
    Show (O);



    Objet.Create_Hero (Ob);  
    Detail.Create_Real_Field (D1, Field_Identifier_Array.Index ("couleur"));
    Put (O, Ob, D1);

    Put_Line ("show plein");
    Show (O);

    Put_Line ("is a number : " & Boolean'Image (Is_A_Number (O)));
    Put_Line ("is a sentence : " & Boolean'Image (Is_A_Sentence (O)));
    Put_Line ("is an enumerate : " & Boolean'Image (Is_An_Enumerate (O)));
    Put_Line ("exist : " & Boolean'Image (Exist (O)));
    Put_Line ("image " & Image (O));
    Put_Line ("number : " & Integer'Image (Number (O)));
    Put_Line ("sentence : " & Sentence (O));
    Put_Line ("enumerate : " & Natural'Image (Enumeration (O)));
    Put_Line ("literal : " & Natural'Image (Literal (O)));

    Affect (O, 34, Ok);
    Put_Line ("affect number " & Boolean'Image (Ok) & " " &
              Integer'Image (Number (O)) & " " & Image (O));

    Complement_Array.Show ("gaston");


    Affect (O, Enumerate_Array.Enumeration_Index ("couleur"),
            Enumerate_Array.Literal_Index ("vert"), Ok);
    Put_Line ("affect enumerate " & Boolean'Image (Ok) &
              " " & Natural'Image (Enumeration (O)) & " " &
              Natural'Image (Literal (O)) & " " & Image (O));

    Complement_Array.Show ("gaston");


    Affect (O, Enumerate_Array.Enumeration_Index ("special"),
            Enumerate_Array.Literal_Index ("invisible"), Ok);
    Put_Line ("affect enumerate " & Boolean'Image (Ok) &
              " " & Natural'Image (Enumeration (O)) & " " &
              Natural'Image (Literal (O)) & " " & Image (O));

    Complement_Array.Show ("gaston");

    Affect (O, Enumerate_Array.Enumeration_Index ("normal"),
            Enumerate_Array.Literal_Index ("fermee"), Ok);
    Put_Line ("affect enumerate " & Boolean'Image (Ok) &
              " " & Natural'Image (Enumeration (O)) & " " &
              Natural'Image (Literal (O)) & " " & Image (O));

    Complement_Array.Show ("gaston");

    Affect (O, Enumerate_Array.Enumeration_Index ("special"),
            Enumerate_Array.Literal_Index ("invisible"), Ok);
    Put_Line ("affect enumerate " & Boolean'Image (Ok) &
              " " & Natural'Image (Enumeration (O)) & " " &
              Natural'Image (Literal (O)) & " " & Image (O));

    Complement_Array.Show ("gaston");


    Put_Line ("Show Apres Changement");
    Show (O);

    Objet.Create_Place (Ob);  
    Detail.Create_Real_Field (D1, Field_Identifier_Array.Index ("description"));
    Put (O, Ob, D1);

    Put_Line ("show plein");
    Show (O);

    Put_Line ("is a number : " & Boolean'Image (Is_A_Number (O)));
    Put_Line ("is a sentence : " & Boolean'Image (Is_A_Sentence (O)));
    Put_Line ("is an enumerate : " & Boolean'Image (Is_An_Enumerate (O)));
    Put_Line ("exist : " & Boolean'Image (Exist (O)));
    Put_Line ("image " & Image (O));
    Put_Line ("number : " & Integer'Image (Number (O)));
    Put_Line ("sentence : " & Sentence (O));
    Put_Line ("enumerate : " & Natural'Image (Enumeration (O)));
    Put_Line ("literal : " & Natural'Image (Literal (O)));

    Affect (O, 34, Ok);
    Put_Line ("affect number " & Boolean'Image (Ok) & " " &
              Integer'Image (Number (O)) & " " & Image (O));

    Affect (O, Enumerate_Array.Enumeration_Index ("couleur"),
            Enumerate_Array.Literal_Index ("vert"), Ok);
    Put_Line ("affect enumerate " & Boolean'Image (Ok) &
              " " & Natural'Image (Enumeration (O)) & " " &
              Natural'Image (Literal (O)) & " " & Image (O));

    Put_Line ("Show Apres Changement");
    Show (O);

    Objet.Create_Group (Ob, 5);
    Detail.Create_Field_Group (D2, 4);
    Put (O, Ob, D2);

    Put_Line ("show plein");
    Show (O);

    Put_Line ("is a number : " & Boolean'Image (Is_A_Number (O)));
    Put_Line ("is a sentence : " & Boolean'Image (Is_A_Sentence (O)));
    Put_Line ("is an enumerate : " & Boolean'Image (Is_An_Enumerate (O)));
    Put_Line ("exist : " & Boolean'Image (Exist (O)));
    Put_Line ("image " & Image (O));
    Put_Line ("number : " & Integer'Image (Number (O)));
    Put_Line ("sentence : " & Sentence (O));
    Put_Line ("enumerate : " & Natural'Image (Enumeration (O)));
    Put_Line ("literal : " & Natural'Image (Literal (O)));

    Affect (O, 34, Ok);
    Put_Line ("affect number " & Boolean'Image (Ok) & " " &
              Integer'Image (Number (O)) & " " & Image (O));

    Complement_Array.Show ("cuisine");

    Affect (O, Enumerate_Array.Enumeration_Index ("normal"),
            Enumerate_Array.Literal_Index ("ouverte"), Ok);
    Put_Line ("affect enumerate " & Boolean'Image (Ok) &
              " " & Natural'Image (Enumeration (O)) & " " &
              Natural'Image (Literal (O)) & " " & Image (O));

    Complement_Array.Show ("cuisine");

    Affect (O, Enumerate_Array.Enumeration_Index ("couleur"),
            Enumerate_Array.Literal_Index ("rouge"), Ok);
    Put_Line ("affect enumerate " & Boolean'Image (Ok) &
              " " & Natural'Image (Enumeration (O)) & " " &
              Natural'Image (Literal (O)) & " " & Image (O));

    Complement_Array.Show ("cuisine");

    Affect (O, Enumerate_Array.Enumeration_Index ("special"),
            Enumerate_Array.Literal_Index ("invisible"), Ok);
    Put_Line ("affect enumerate " & Boolean'Image (Ok) &
              " " & Natural'Image (Enumeration (O)) & " " &
              Natural'Image (Literal (O)) & " " & Image (O));

    Put_Line ("show apres changement");
    Show (O);


    Complement_Array.Show;
end Test_Attribute;

E3 Meta Data

    nblk1=17
    nid=4
    hdr6=24
        [0x00] rec0=1b rec1=00 rec2=01 rec3=030
        [0x01] rec0=14 rec1=00 rec2=08 rec3=028
        [0x02] rec0=01 rec1=00 rec2=07 rec3=042
        [0x03] rec0=10 rec1=00 rec2=09 rec3=064
        [0x04] rec0=18 rec1=00 rec2=17 rec3=03e
        [0x05] rec0=17 rec1=00 rec2=12 rec3=042
        [0x06] rec0=17 rec1=00 rec2=14 rec3=02c
        [0x07] rec0=06 rec1=00 rec2=11 rec3=004
        [0x08] rec0=14 rec1=00 rec2=0f rec3=020
        [0x09] rec0=1c rec1=00 rec2=16 rec3=02c
        [0x0a] rec0=1a rec1=00 rec2=06 rec3=066
        [0x0b] rec0=19 rec1=00 rec2=0d rec3=08c
        [0x0c] rec0=19 rec1=00 rec2=15 rec3=064
        [0x0d] rec0=16 rec1=00 rec2=02 rec3=04a
        [0x0e] rec0=1b rec1=00 rec2=10 rec3=068
        [0x0f] rec0=18 rec1=00 rec2=0b rec3=074
        [0x10] rec0=19 rec1=00 rec2=05 rec3=04e
        [0x11] rec0=0b rec1=00 rec2=0c rec3=000
        [0x12] rec0=19 rec1=00 rec2=10 rec3=046
        [0x13] rec0=1a rec1=00 rec2=02 rec3=004
        [0x14] rec0=17 rec1=00 rec2=14 rec3=018
        [0x15] rec0=01 rec1=00 rec2=13 rec3=000
        [0x16] rec0=00 rec1=00 rec2=00 rec3=000
    tail 0x2174d7540865b4bddde8c 0x42a00088462060003
Free Block Chain:
  0x4: 0000  00 03 03 fc 80 09 61 67 65 20 28 4f 29 29 3b 09  ┆      age (O)); ┆
  0x3: 0000  00 13 00 0a 80 07 20 20 20 20 20 20 22 07 20 20  ┆            "   ┆
  0x13: 0000  00 0a 00 62 80 01 3b 01 00 0d 20 20 20 20 53 68  ┆   b  ;       Sh┆
  0xa: 0000  00 0e 00 42 80 19 65 20 28 22 69 6d 61 67 65 20  ┆   B  e ("image ┆
  0xe: 0000  00 00 00 04 80 01 3b 01 02 70 6c 65 6d 65 6e 74  ┆      ;  plement┆