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

⟦15a545efd⟧ Ada Source

    Length: 36864 (0x9000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Test_Complement, seg_047b02

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, Complement, Identifier, Field_Identifier_Array,
     Enumeration_Array, Complement_Identifier_Array, Group_Identifier_Array;
use Text_Io, Complement;
procedure Test_Complement is

    C, C1 : Complement.Object;
    Id, Id1, Id2 : Identifier.Object;
    Val_Enum : Natural;

    Ok : Boolean;

begin
    Complement_Identifier_Array.Show;

    Complement_Identifier_Array.Put (Identifier.From_String ("e1"));
    Complement_Identifier_Array.Put (Identifier.From_String ("e2"));
    Complement_Identifier_Array.Put (Identifier.From_String ("e3"));
    Complement_Identifier_Array.Put (Identifier.From_String ("e4"));
    Complement_Identifier_Array.Put (Identifier.From_String ("e5"));
    Complement_Identifier_Array.Put (Identifier.From_String ("e6"));
    Complement_Identifier_Array.Put (Identifier.From_String ("e7"));
    Complement_Identifier_Array.Put (Identifier.From_String ("e8"));
    Complement_Identifier_Array.Put (Identifier.From_String ("e9"));

    Id1 := Identifier.From_String ("etat_porte");
    Id2 := Identifier.From_String ("ouverte");
    Enumeration_Array.Put_Literal (Id1, Id2, Ok);
    Id2 := Identifier.From_String ("fermee");
    Enumeration_Array.Put_Literal (Id1, Id2, Ok);
    Id2 := Identifier.From_String ("verrouillee");
    Enumeration_Array.Put_Literal (Id1, Id2, Ok);
    Id2 := Identifier.From_String ("deverrouillee");
    Enumeration_Array.Put_Literal (Id1, Id2, Ok);

    Val_Enum := Enumeration_Array.Enum (Identifier.Image (Id1));

    Enumeration_Array.Show;

    Put_Line ("-- UNKNOWN --");
    Show (C);
    Id := Identifier.From_String ("simple");
    Put_Line ("-- put_name --");
    Put_Name (C, Id, Ok);
    Put_Line ("ok : " & Boolean'Image (Ok));

    -- Put_Line ("-- create_number_field --");
    -- Id := Identifier.From_String ("vie");
    -- Field_Identifier_Array.Put (Id);
    -- Create_Number_Field (C, Field_Identifier_Array.Index (Id), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    -- Put_Line ("-- field_put_number --");
    -- Field_Put_Number (C, Field_Identifier_Array.Index (Id), 124, Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Put_Line ("-- create_sentence_field --");
    -- Id := Identifier.From_String ("description");
    -- Field_Identifier_Array.Put (Id);
    -- Create_Sentence_Field (C, Field_Identifier_Array.Index (Id), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    -- Put_Line ("-- field_put_sentence --");
    -- Field_Put_Sentence (C, Field_Identifier_Array.Index (Id),
    --                     "C'est un petit homme vert !", Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Put_Line ("-- create_enumerate_field --");
    -- Id := Identifier.From_String ("etat");
    -- Field_Identifier_Array.Put (Id);
    -- Create_Enumerate_Field (C, Field_Identifier_Array.Index (Id), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    -- Put_Line ("-- field_put_enumerate --");
    -- Field_Put_Enumerate (C, Field_Identifier_Array.Index (Id), Val_Enum,
    --                      Enumeration_Array.Literal
    --                         (Val_Enum, Identifier.Image (Id2)), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));

    -- Put_Line ("C is subject ? " & Boolean'Image (Is_A_Subject (C)));
    -- Put_Line ("C is animate ? " & Boolean'Image (Is_An_Animate (C)));
    -- Put_Line ("C is place ? " & Boolean'Image (Is_A_Place (C)));
    -- Put_Line ("C is entity ? " & Boolean'Image (Is_An_Entity (C)));
    -- Put_Line ("C is word? " & Boolean'Image (Is_A_Word (C)));
    -- Put_Line ("C is verb ? " & Boolean'Image (Is_A_Verb (C)));
    --
    -- Put_Line ("Name : " & Name (C));
    -- Put_Line ("Place : " & Natural'Image (Place (C)));
    -- Put_Line ("field number : " &
    --           Integer'Image (Field_Number
    --                             (C, Field_Identifier_Array.Index
    --                                    (Identifier.From_String ("vie")))));
    -- Put_Line ("field sentence : " &
    --           Field_Sentence (C, Field_Identifier_Array.Index
    --                                 (Identifier.From_String ("description"))));
    -- Put_Line ("field enumeration : " &
    --           Integer'Image (Field_Enumeration
    --                             (C, Field_Identifier_Array.Index
    --                                    (Identifier.From_String ("etat")))));
    -- Put_Line ("field literal : " &
    --           Integer'Image (Field_Literal
    --                             (C, Field_Identifier_Array.Index
    --                                    (Identifier.From_String ("etat")))));
    Group_Identifier_Array.Put (Identifier.From_String ("objet"), Ok);
    Group_Identifier_Array.Put (Identifier.From_String ("viande"), Ok);
    Group_Identifier_Array.Put (Identifier.From_String ("meuble"), Ok);
    Group_Identifier_Array.Show;
    Put_Group (C, Group_Identifier_Array.Index ("objet"), Ok);
    Put_Line ("group ok : " & Boolean'Image (Ok));
    Put_Group (C, Group_Identifier_Array.Index ("meuble"), Ok);
    Put_Line ("group ok : " & Boolean'Image (Ok));
    Put_Group (C, Group_Identifier_Array.Index ("objet"), Ok);
    Put_Line ("group ok : " & Boolean'Image (Ok));
    List_Group_Init (C);
    while not List_Group_Done (C) loop
        Put_Line ("group name : " & List_Group_Name (C));
        List_Group_Next (C);
    end loop;

    Show (C);
    --
    -- Put_Line ("-- word --");
    -- Show (C);
    -- Put_Word (C, Identifier.From_String ("DedanS"));
    -- Id := Identifier.From_String ("simple");
    -- Put_Line ("-- put_name --");
    -- Put_Name (C, Id, Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Put_Line ("-- create_number_field --");
    -- Id := Identifier.From_String ("vie");
    -- Field_Identifier_Array.Put (Id);
    -- Create_Number_Field (C, Field_Identifier_Array.Index (Id), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    -- Put_Line ("-- field_put_number --");
    -- Field_Put_Number (C, Field_Identifier_Array.Index (Id), 124, Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Put_Line ("-- create_sentence_field --");
    -- Id := Identifier.From_String ("description");
    -- Field_Identifier_Array.Put (Id);
    -- Create_Sentence_Field (C, Field_Identifier_Array.Index (Id), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    -- Put_Line ("-- field_put_sentence --");
    -- Field_Put_Sentence (C, Field_Identifier_Array.Index (Id),
    --                     "C'est un petit homme vert !", Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Put_Line ("-- create_enumerate_field --");
    -- Id := Identifier.From_String ("etat");
    -- Field_Identifier_Array.Put (Id);
    -- Create_Enumerate_Field (C, Field_Identifier_Array.Index (Id), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    -- Put_Line ("-- field_put_enumerate --");
    -- Field_Put_Enumerate (C, Field_Identifier_Array.Index (Id), Val_Enum,
    --                      Enumeration_Array.Literal
    --                         (Val_Enum, Identifier.Image (Id2)), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Put_Line ("C is subject ? " & Boolean'Image (Is_A_Subject (C)));
    -- Put_Line ("C is animate ? " & Boolean'Image (Is_An_Animate (C)));
    -- Put_Line ("C is place ? " & Boolean'Image (Is_A_Place (C)));
    -- Put_Line ("C is entity ? " & Boolean'Image (Is_An_Entity (C)));
    -- Put_Line ("C is word? " & Boolean'Image (Is_A_Word (C)));
    -- Put_Line ("C is verb ? " & Boolean'Image (Is_A_Verb (C)));
    --
    -- Put_Line ("Name : " & Name (C));
    -- Put_Line ("Place : " & Natural'Image (Place (C)));
    -- Put_Line ("field number : " &
    --           Integer'Image (Field_Number
    --                             (C, Field_Identifier_Array.Index
    --                                    (Identifier.From_String ("vie")))));
    -- Put_Line ("field sentence : " &
    --           Field_Sentence (C, Field_Identifier_Array.Index
    --                                 (Identifier.From_String ("description"))));
    -- Put_Line ("field enumeration : " &
    --           Integer'Image (Field_Enumeration
    --                             (C, Field_Identifier_Array.Index
    --                                    (Identifier.From_String ("etat")))));
    -- Put_Line ("field literal : " &
    --           Integer'Image (Field_Literal
    --                             (C, Field_Identifier_Array.Index
    --                                    (Identifier.From_String ("etat")))));

    --
    -- group_identifier_array.put(identifier.from_string("objet"),ok);
    -- group_identifier_array.put(identifier.from_string("viande"),ok);
    -- group_identifier_array.put(identifier.from_string("meuble"),ok);
    -- group_identifier_array.show;
    -- put_group(c,group_identifier_array.index("objet"),ok);
    -- put_line("group ok : " & boolean'image(ok));
    -- put_group(c,group_identifier_array.index("meuble"),ok);
    -- put_line("group ok : " & boolean'image(ok));
    -- put_group(c,group_identifier_array.index("objet"),ok);
    -- put_line("group ok : " & boolean'image(ok));
    -- list_group_init(c);
    -- while not list_group_done(c) loop
    --  put_line("group name : " & list_group_name(c));
    --  list_group_next(c);
    --end loop;
    -- Show (C);
    --
    -- Put_Line ("-- verb --");
    -- Show (C);
    -- Put_Verb (C, Identifier.From_String ("AllEr"), 5);
    -- Id := Identifier.From_String ("simple");
    -- Put_Line ("-- put_name --");
    -- Put_Name (C, Id, Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Put_Line ("-- create_number_field --");
    -- Id := Identifier.From_String ("vie");
    -- Field_Identifier_Array.Put (Id);
    -- Create_Number_Field (C, Field_Identifier_Array.Index (Id), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    -- Put_Line ("-- field_put_number --");
    -- Field_Put_Number (C, Field_Identifier_Array.Index (Id), 124, Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Put_Line ("-- create_sentence_field --");
    -- Id := Identifier.From_String ("description");
    -- Field_Identifier_Array.Put (Id);
    -- Create_Sentence_Field (C, Field_Identifier_Array.Index (Id), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    -- Put_Line ("-- field_put_sentence --");
    -- Field_Put_Sentence (C, Field_Identifier_Array.Index (Id),
    --                     "C'est un petit homme vert !", Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Put_Line ("-- create_enumerate_field --");
    -- Id := Identifier.From_String ("etat");
    -- Field_Identifier_Array.Put (Id);
    -- Create_Enumerate_Field (C, Field_Identifier_Array.Index (Id), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    -- Put_Line ("-- field_put_enumerate --");
    -- Field_Put_Enumerate (C, Field_Identifier_Array.Index (Id), Val_Enum,
    --                      Enumeration_Array.Literal
    --                         (Val_Enum, Identifier.Image (Id2)), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Put_Line ("C is subject ? " & Boolean'Image (Is_A_Subject (C)));
    -- Put_Line ("C is animate ? " & Boolean'Image (Is_An_Animate (C)));
    -- Put_Line ("C is place ? " & Boolean'Image (Is_A_Place (C)));
    -- Put_Line ("C is entity ? " & Boolean'Image (Is_An_Entity (C)));
    -- Put_Line ("C is word? " & Boolean'Image (Is_A_Word (C)));
    -- Put_Line ("C is verb ? " & Boolean'Image (Is_A_Verb (C)));
    --
    -- Put_Line ("Name : " & Name (C));
    -- Put_Line ("Place : " & Natural'Image (Place (C)));
    -- Put_Line ("field number : " &
    --           Integer'Image (Field_Number
    --                             (C, Field_Identifier_Array.Index
    --                                    (Identifier.From_String ("vie")))));
    -- Put_Line ("field sentence : " &
    --           Field_Sentence (C, Field_Identifier_Array.Index
    --                                 (Identifier.From_String ("description"))));
    -- Put_Line ("field enumeration : " &
    --           Integer'Image (Field_Enumeration
    --                             (C, Field_Identifier_Array.Index
    --                                    (Identifier.From_String ("etat")))));
    -- Put_Line ("field literal : " &
    --           Integer'Image (Field_Literal
    --                             (C, Field_Identifier_Array.Index
    --                                    (Identifier.From_String ("etat")))));

    -- group_identifier_array.put(identifier.from_string("objet"),ok);
    -- group_identifier_array.put(identifier.from_string("viande"),ok);
    -- group_identifier_array.put(identifier.from_string("meuble"),ok);
    -- group_identifier_array.show;
    -- put_group(c,group_identifier_array.index("objet"),ok);
    -- put_line("group ok : " & boolean'image(ok));
    -- put_group(c,group_identifier_array.index("meuble"),ok);
    -- put_line("group ok : " & boolean'image(ok));
    -- put_group(c,group_identifier_array.index("objet"),ok);
    -- put_line("group ok : " & boolean'image(ok));
    -- list_group_init(c);
    -- while not list_group_done(c) loop
    --  put_line("group name : " & list_group_name(c));
    --  list_group_next(c);
    --end loop;
    -- Show (C);

    Show (Animate_Object);
    Show (Place_Object);
    Show (Entity_Object);

    -- Copy (Entity_Object, C);
    --
    -- Put_Line ("-- entite --");
    -- Show (C);
    --
    -- Put_Line ("-- put_place --");
    -- Put_Place (C, 2, Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    --
    -- Id := Identifier.From_String ("Porte");
    -- Put_Line ("-- put_name --");
    -- Put_Name (C, Id, Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Put_Line ("-- create_number_field --");
    -- Id := Identifier.From_String ("vie");
    -- Field_Identifier_Array.Put (Id);
    -- Create_Number_Field (C, Field_Identifier_Array.Index (Id), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    -- Put_Line ("-- field_put_number --");
    -- Field_Put_Number (C, Field_Identifier_Array.Index (Id), 124, Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Put_Line ("-- create_sentence_field --");
    -- Id := Identifier.From_String ("description");
    -- Field_Identifier_Array.Put (Id);
    -- Create_Sentence_Field (C, Field_Identifier_Array.Index (Id), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    -- Put_Line ("-- field_put_sentence --");
    -- Field_Put_Sentence (C, Field_Identifier_Array.Index (Id),
    --                     "C'est un petit homme vert !", Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Put_Line ("-- create_enumerate_field --");
    -- Id := Identifier.From_String ("etat");
    -- Field_Identifier_Array.Put (Id);
    -- Create_Enumerate_Field (C, Field_Identifier_Array.Index (Id), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    -- Put_Line ("-- field_put_enumerate --");
    -- Field_Put_Enumerate (C, Field_Identifier_Array.Index (Id), Val_Enum,
    --                      Enumeration_Array.Literal
    --                         (Val_Enum, Identifier.Image (Id2)), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Show (C);
    --
    -- Copy (C, C1);
    -- Id := Identifier.From_String ("histoire");
    -- Field_Identifier_Array.Put (Id);
    -- Create_Sentence_Field (C, Field_Identifier_Array.Index (Id), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    -- Put_Line ("-- field_put_sentence --");
    -- Field_Put_Sentence (C, Field_Identifier_Array.Index (Id),
    --                     "Il etait une fois ...", Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Put_Line ("-- put_place --");
    -- Put_Place (C1, 4, Ok);   -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Id := Identifier.From_String ("vie");
    -- Put_Line ("vie is number ? " &
    --           Boolean'Image (Field_Is_A_Number
    --                             (C, Field_Identifier_Array.Index (Id))));
    -- Put_Line ("vie is enumerate ? " &
    --           Boolean'Image (Field_Is_An_Enumerate
    --                             (C, Field_Identifier_Array.Index (Id))));
    -- Put_Line ("vie is sentence ? " &
    --           Boolean'Image (Field_Is_A_Sentence
    --                             (C, Field_Identifier_Array.Index (Id))));
    -- Put_Line ("vie is exist? " &
    --           Boolean'Image (Field_Exist (C,
    --                                       Field_Identifier_Array.Index (Id))));
    --
    -- Put_Line ("C is subject ? " & Boolean'Image (Is_A_Subject (C)));
    -- Put_Line ("C is animate ? " & Boolean'Image (Is_An_Animate (C)));
    -- Put_Line ("C is place ? " & Boolean'Image (Is_A_Place (C)));
    -- Put_Line ("C is entity ? " & Boolean'Image (Is_An_Entity (C)));
    -- Put_Line ("C is word? " & Boolean'Image (Is_A_Word (C)));
    -- Put_Line ("C is verb ? " & Boolean'Image (Is_A_Verb (C)));
    --
    -- Put_Line ("Name : " & Name (C));
    -- Put_Line ("Place : " & Natural'Image (Place (C)));
    -- Put_Line ("field number : " &
    --           Integer'Image (Field_Number
    --                             (C, Field_Identifier_Array.Index
    --                                    (Identifier.From_String ("vie")))));
    -- Put_Line ("field sentence : " &
    --           Field_Sentence (C, Field_Identifier_Array.Index
    --                                 (Identifier.From_String ("description"))));
    -- Put_Line ("field enumeration : " &
    --           Integer'Image (Field_Enumeration
    --                             (C, Field_Identifier_Array.Index
    --                                    (Identifier.From_String ("etat")))));
    -- Put_Line ("field literal : " &
    --           Integer'Image (Field_Literal
    --                             (C, Field_Identifier_Array.Index
    --                                    (Identifier.From_String ("etat")))));
    -- group_identifier_array.put(identifier.from_string("objet"),ok);
    -- group_identifier_array.put(identifier.from_string("viande"),ok);
    -- group_identifier_array.put(identifier.from_string("meuble"),ok);
    -- group_identifier_array.show;
    -- put_group(c,group_identifier_array.index("objet"),ok);
    -- put_line("group ok : " & boolean'image(ok));
    -- put_group(c,group_identifier_array.index("meuble"),ok);
    -- put_line("group ok : " & boolean'image(ok));
    -- put_group(c,group_identifier_array.index("objet"),ok);
    -- put_line("group ok : " & boolean'image(ok));
    -- list_group_init(c);
    -- while not list_group_done(c) loop
    --  put_line("group name : " & list_group_name(c));
    --  list_group_next(c);
    --end loop;
    --
    -- Show (C);
    -- Show (C1);

    -- Copy (Animate_Object, C);
    --
    -- Put_Line ("-- anime --");
    -- Show (C);
    --
    -- Put_Line ("-- put_place --");
    -- Put_Place (C, 2, Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    --
    -- Id := Identifier.From_String ("Porte");
    -- Put_Line ("-- put_name --");
    -- Put_Name (C, Id, Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Put_Line ("-- create_number_field --");
    -- Id := Identifier.From_String ("vie");
    -- Field_Identifier_Array.Put (Id);
    -- Create_Number_Field (C, Field_Identifier_Array.Index (Id), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    -- Put_Line ("-- field_put_number --");
    -- Field_Put_Number (C, Field_Identifier_Array.Index (Id), 124, Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Put_Line ("-- create_sentence_field --");
    -- Id := Identifier.From_String ("description");
    -- Field_Identifier_Array.Put (Id);
    -- Create_Sentence_Field (C, Field_Identifier_Array.Index (Id), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    -- Put_Line ("-- field_put_sentence --");
    -- Field_Put_Sentence (C, Field_Identifier_Array.Index (Id),
    --                     "C'est un petit homme vert !", Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Put_Line ("-- create_enumerate_field --");
    -- Id := Identifier.From_String ("etat");
    -- Field_Identifier_Array.Put (Id);
    -- Create_Enumerate_Field (C, Field_Identifier_Array.Index (Id), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    -- Put_Line ("-- field_put_enumerate --");
    -- Field_Put_Enumerate (C, Field_Identifier_Array.Index (Id), Val_Enum,
    --                      Enumeration_Array.Literal
    --                         (Val_Enum, Identifier.Image (Id2)), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Put_Movement (C, 1);
    -- Put_Movement (C, 5);
    -- Put_Movement (C, 5);
    -- Put_Movement (C, 4);
    --  Put_Movement (C, 7);
    --  Put_Movement (C, 3);
    -- -- Movement_Init (C);
    -- for I in 1 .. 12 loop
    --     Put_Line ("place : " & Natural'Image (Place (C)));
    --     Move (C);
    -- end loop;
    --
    -- Show (C);
    --
    -- Copy (C, C1);
    -- Id := Identifier.From_String ("histoire");
    -- Field_Identifier_Array.Put (Id);
    -- Create_Sentence_Field (C, Field_Identifier_Array.Index (Id), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    -- Put_Line ("-- field_put_sentence --");
    -- Field_Put_Sentence (C, Field_Identifier_Array.Index (Id),
    --                     "Il etait une fois ...", Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Put_Line ("-- put_place --");
    -- Put_Place (C1, 4, Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Id := Identifier.From_String ("vie");
    -- Put_Line ("vie is number ? " &
    --           Boolean'Image (Field_Is_A_Number
    --                             (C, Field_Identifier_Array.Index (Id))));
    -- Put_Line ("vie is enumerate ? " &
    --           Boolean'Image (Field_Is_An_Enumerate
    --                             (C, Field_Identifier_Array.Index (Id))));
    -- Put_Line ("vie is sentence ? " &
    --           Boolean'Image (Field_Is_A_Sentence
    --                             (C, Field_Identifier_Array.Index (Id))));
    -- Put_Line ("vie is exist? " &
    --           Boolean'Image (Field_Exist (C,
    --                                       Field_Identifier_Array.Index (Id))));
    --
    -- Put_Line ("C is subject ? " & Boolean'Image (Is_A_Subject (C)));
    -- Put_Line ("C is animate ? " & Boolean'Image (Is_An_Animate (C)));
    -- Put_Line ("C is place ? " & Boolean'Image (Is_A_Place (C)));
    -- Put_Line ("C is entity ? " & Boolean'Image (Is_An_Entity (C)));
    -- Put_Line ("C is word? " & Boolean'Image (Is_A_Word (C)));
    -- Put_Line ("C is verb ? " & Boolean'Image (Is_A_Verb (C)));
    --
    -- Put_Line ("Name : " & Name (C));
    -- Put_Line ("Place : " & Natural'Image (Place (C)));
    -- Put_Line ("field number : " &
    --           Integer'Image (Field_Number
    --                             (C, Field_Identifier_Array.Index
    --                                    (Identifier.From_String ("vie")))));
    -- Put_Line ("field sentence : " &
    --           Field_Sentence (C, Field_Identifier_Array.Index
    --                                 (Identifier.From_String ("description"))));
    -- Put_Line ("field enumeration : " &
    --           Integer'Image (Field_Enumeration
    --                             (C, Field_Identifier_Array.Index
    --                                    (Identifier.From_String ("etat")))));
    -- Put_Line ("field literal : " &
    --           Integer'Image (Field_Literal
    --                             (C, Field_Identifier_Array.Index
    --                                    (Identifier.From_String ("etat")))));
    -- group_identifier_array.put(identifier.from_string("objet"),ok);
    -- group_identifier_array.put(identifier.from_string("viande"),ok);
    -- group_identifier_array.put(identifier.from_string("meuble"),ok);
    -- group_identifier_array.show;
    -- put_group(c,group_identifier_array.index("objet"),ok);
    -- put_line("group ok : " & boolean'image(ok));
    -- put_group(c,group_identifier_array.index("meuble"),ok);
    -- put_line("group ok : " & boolean'image(ok));
    -- put_group(c,group_identifier_array.index("objet"),ok);
    -- put_line("group ok : " & boolean'image(ok));
    -- list_group_init(c);
    -- while not list_group_done(c) loop
    --  put_line("group name : " & list_group_name(c));
    --  list_group_next(c);
    --end loop;
    --
    -- Put_Movement (C1, 6);
    -- Put_Movement (C1, 3);
    -- Put_Movement (C1, 2);
    --
    -- Show (C);
    -- Show (C1);

    -- Copy (Place_Object, C);
    --
    -- Put_Line ("-- place --");
    -- Show (C);
    --
    -- Put_Line ("-- put_place --");
    -- Put_Place (C, 2, Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    --
    -- Id := Identifier.From_String ("Porte");
    -- Put_Line ("-- put_name --");
    -- Put_Name (C, Id, Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Put_Line ("-- create_number_field --");
    -- Id := Identifier.From_String ("vie");
    -- Field_Identifier_Array.Put (Id);
    -- Create_Number_Field
    --    (C, Field_Identifier_Array.Index (Identifier.Image (Id)), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    -- Put_Line ("-- field_put_number --");
    -- Field_Put_Number
    --    (C, Field_Identifier_Array.Index (Identifier.Image (Id)), 124, Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Put_Line ("-- create_sentence_field --");
    -- Id := Identifier.From_String ("description");
    -- Field_Identifier_Array.Put (Id);
    -- Create_Sentence_Field
    --    (C, Field_Identifier_Array.Index (Identifier.Image (Id)), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    -- Put_Line ("-- field_put_sentence --");
    -- Field_Put_Sentence
    --    (C, Field_Identifier_Array.Index (Identifier.Image (Id)),
    --     Identifier.From_String ("C'est un petit homme vert !"), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Put_Line ("-- create_enumerate_field --");
    -- Id := Identifier.From_String ("etat");
    -- Field_Identifier_Array.Put (Id);
    -- Create_Enumerate_Field (C, Field_Identifier_Array.Index
    --                               (Identifier.Image (Id)), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    -- Put_Line ("-- field_put_enumerate --");
    -- Field_Put_Enumerate
    --    (C, Field_Identifier_Array.Index (Identifier.Image (Id)), Val_Enum,
    --     Enumeration_Array.Literal (Val_Enum, Identifier.Image (Id2)), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Put_Line ("exits exist : " & Boolean'Image (Exits_Exist (C)));
    --
    -- Put_Line ("-- put exit --");
    -- Put_Exit (C, 1, 2, 3, 4, 5, Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    -- Put_Line ("-- put exit --");
    -- Put_Exit (C, 1, 3, 4, 5, 6, Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    -- Put_Line ("-- put exit --");
    -- Put_Exit (C, 1, 2, 3, 4, 5, Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    -- Put_Line ("exit exist 3 : " & Boolean'Image (Exit_Exist (C, 3)));
    -- Put_Line ("exit exist 2 : " & Boolean'Image (Exit_Exist (C, 2)));
    -- Put_Line ("exit exist 4 : " & Boolean'Image (Exit_Exist (C, 4)));
    --
    -- Put_Line ("exit name 3 : " & Natural'Image (Exit_Name (C, 3)));
    -- Put_Line ("exit name 2 : " & Natural'Image (Exit_Name (C, 2)));
    -- Put_Line ("exit name 4 : " & Natural'Image (Exit_Name (C, 4)));
    --
    -- Put_Line ("next place 3 : " & Natural'Image (Next_Place (C, 3)));
    -- Put_Line ("next place 2 : " & Natural'Image (Next_Place (C, 2)));
    -- Put_Line ("next place 4 : " & Natural'Image (Next_Place (C, 4)));
    --
    -- Put_Line ("next dir 3 : " & Natural'Image (Next_Direction (C, 3)));
    -- Put_Line ("next dir 2 : " & Natural'Image (Next_Direction (C, 2)));
    -- Put_Line ("next dir 4 : " & Natural'Image (Next_Direction (C, 4)));
    --
    -- List_Exits_Init (C);
    -- while not List_Exits_Done (C) loop
    --     Put_Line ("name : " & Natural'Image (List_Exits_Direction (C)));
    --     List_Exits_Next (C);
    -- end loop;
    --
    -- Show (C);
    --
    -- Copy (C, C1);
    -- Id := Identifier.From_String ("histoire");
    -- Field_Identifier_Array.Put (Id);
    -- Create_Sentence_Field
    --    (C, Field_Identifier_Array.Index (Identifier.Image (Id)), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    -- Put_Line ("-- field_put_sentence --");
    -- Field_Put_Sentence (C, Field_Identifier_Array.Index (Identifier.Image (Id)),
    --                     Identifier.From_String ("Il etait une fois ..."), Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Put_Line ("-- put_place --");
    -- Put_Place (C1, 4, Ok);
    -- Put_Line ("ok : " & Boolean'Image (Ok));
    --
    -- Id := Identifier.From_String ("vie");
    -- Put_Line ("vie is number ? " &
    --           Boolean'Image (Field_Is_A_Number
    --                             (C, Field_Identifier_Array.Index
    --                                    (Identifier.Image (Id)))));
    -- Put_Line ("vie is enumerate ? " &
    --           Boolean'Image (Field_Is_An_Enumerate
    --                             (C, Field_Identifier_Array.Index
    --                                    (Identifier.Image (Id)))));
    -- Put_Line ("vie is sentence ? " &   --           Boolean'Image (Field_Is_A_Sentence
    --                             (C, Field_Identifier_Array.Index
    --                                    (Identifier.Image (Id)))));
    -- Put_Line ("vie is exist? " &
    --           Boolean'Image (Field_Belong (C, Field_Identifier_Array.Index
    --                                              (Identifier.Image (Id)))));
    --
    -- Put_Line ("C is subject ? " & Boolean'Image (Is_A_Subject (C)));
    -- Put_Line ("C is animate ? " & Boolean'Image (Is_An_Animate (C)));
    -- Put_Line ("C is place ? " & Boolean'Image (Is_A_Place (C)));
    -- Put_Line ("C is entity ? " & Boolean'Image (Is_An_Entity (C)));
    -- Put_Line ("C is word? " & Boolean'Image (Is_A_Word (C)));
    -- Put_Line ("C is verb ? " & Boolean'Image (Is_A_Verb (C)));
    --
    -- Put_Line ("Name : " & Name (C));
    -- Put_Line ("Place : " & Natural'Image (Place (C)));
    -- Put_Line ("field number : " &
    --           Integer'Image (Field_Number
    --                             (C, Field_Identifier_Array.Index ("vie"))));
    -- Put_Line ("field sentence : " &
    --           Field_Sentence (C, Field_Identifier_Array.Index ("description")));
    -- Put_Line ("field enumeration : " &
    --           Integer'Image (Field_Enumeration
    --                             (C, Field_Identifier_Array.Index ("etat"))));
    -- Put_Line ("field literal : " &
    --           Integer'Image (Field_Literal
    --                             (C, Field_Identifier_Array.Index ("etat"))));
    --
    -- Group_Identifier_Array.Put (Identifier.From_String ("objet"), Ok);
    -- Group_Identifier_Array.Put (Identifier.From_String ("viande"), Ok);
    -- Group_Identifier_Array.Put (Identifier.From_String ("meuble"), Ok);
    -- Group_Identifier_Array.Show;
    -- Put_Group (C, Group_Identifier_Array.Index ("objet"), Ok);
    -- Put_Line ("group ok : " & Boolean'Image (Ok));
    -- Put_Group (C, Group_Identifier_Array.Index ("meuble"), Ok);
    -- Put_Line ("group ok : " & Boolean'Image (Ok));
    -- Put_Group (C, Group_Identifier_Array.Index ("objet"), Ok);
    -- Put_Line ("group ok : " & Boolean'Image (Ok));
    -- List_Group_Init (C);
    -- while not List_Group_Done (C) loop
    --     Put_Line ("group name : " & List_Group_Name (C));
    --     List_Group_Next (C);
    -- end loop;
    --
    -- Show (C);
    -- Show (C1);

    Enumeration_Array.Show;
    Field_Identifier_Array.Show;
    Complement_Identifier_Array.Show;


end Test_Complement;

E3 Meta Data

    nblk1=23
    nid=23
    hdr6=44
        [0x00] rec0=18 rec1=00 rec2=01 rec3=084
        [0x01] rec0=1b rec1=00 rec2=0e rec3=022
        [0x02] rec0=14 rec1=00 rec2=10 rec3=030
        [0x03] rec0=12 rec1=00 rec2=1f rec3=04a
        [0x04] rec0=10 rec1=00 rec2=09 rec3=048
        [0x05] rec0=03 rec1=00 rec2=1c rec3=028
        [0x06] rec0=19 rec1=00 rec2=02 rec3=086
        [0x07] rec0=14 rec1=00 rec2=0c rec3=056
        [0x08] rec0=12 rec1=00 rec2=1d rec3=06e
        [0x09] rec0=12 rec1=00 rec2=04 rec3=056
        [0x0a] rec0=19 rec1=00 rec2=08 rec3=026
        [0x0b] rec0=13 rec1=00 rec2=06 rec3=092
        [0x0c] rec0=13 rec1=00 rec2=14 rec3=00e
        [0x0d] rec0=11 rec1=00 rec2=20 rec3=008
        [0x0e] rec0=1f rec1=00 rec2=22 rec3=034
        [0x0f] rec0=14 rec1=00 rec2=07 rec3=04e
        [0x10] rec0=17 rec1=00 rec2=0b rec3=002
        [0x11] rec0=12 rec1=00 rec2=05 rec3=072
        [0x12] rec0=12 rec1=00 rec2=0d rec3=00e
        [0x13] rec0=12 rec1=00 rec2=13 rec3=014
        [0x14] rec0=1e rec1=00 rec2=03 rec3=058
        [0x15] rec0=14 rec1=00 rec2=17 rec3=020
        [0x16] rec0=1c rec1=00 rec2=1b rec3=052
        [0x17] rec0=12 rec1=00 rec2=1a rec3=01a
        [0x18] rec0=12 rec1=00 rec2=19 rec3=024
        [0x19] rec0=14 rec1=00 rec2=11 rec3=028
        [0x1a] rec0=1f rec1=00 rec2=0f rec3=040
        [0x1b] rec0=14 rec1=00 rec2=21 rec3=07c
        [0x1c] rec0=15 rec1=00 rec2=1e rec3=012
        [0x1d] rec0=17 rec1=00 rec2=18 rec3=00a
        [0x1e] rec0=14 rec1=00 rec2=15 rec3=002
        [0x1f] rec0=11 rec1=00 rec2=12 rec3=048
        [0x20] rec0=11 rec1=00 rec2=16 rec3=05c
        [0x21] rec0=13 rec1=00 rec2=0a rec3=000
        [0x22] rec0=12 rec1=00 rec2=23 rec3=000
    tail 0x2174b5c3e8654956f8fe3 0x42a00088462060003
Free Block Chain:
  0x23: 0000  00 00 01 e9 80 11 6c 65 61 6e 27 49 6d 61 67 65  ┆      lean'Image┆