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

⟦4aa9ab260⟧ Ada Source

    Length: 17408 (0x4400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Complementgl, seg_047ea4

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 Field, Link, Identifier, Generic_Index,
     Generic_String_Sort_Array, Group_Identifier_Array, List_Generic,
     Complement_Identifier_Array, Exclusive_Generic_List;
package Complementgl is

    type Complement_Kind is (Animate, Place, Entity, Word, Verb, Unknown);

    type Object (Kind : Complement_Kind := Unknown) is private;

    procedure Copy (Input_Item : in Object; Output_Item : in out Object);
    procedure Put_Name (Item : in out Object;
                        Name : in Identifier.Object;
                        Ok : out Boolean);
    procedure Put_Word (Item : in out Object; A_Word : in Identifier.Object);
    procedure Put_Verb (Item : in out Object;
                        A_Synonym, A_Verb : in Identifier.Object);

--procedure create_number_field(item : out object;field_name: in string; ok : out boolean);
--procedure create_sentence_field(item : out object;field_name: in string; ok : out boolean);
--procedure create_enumerate_field(item : out object;field_name: in string; ok : out boolean);
--procedure field_Put_number (Item : in out Object;field_name: in string;number : in integer; ok : out boolean);
--procedure field_Put_sentence (Item : in out Object;field_name: in string;sentence : in string; ok : out boolean);
--procedure field_Put_enumerate (Item : in out Object;field_name: in string;enumeration,literal : in positive; ok : out boolean);

    procedure Create_Number_Field (Item : in out Object;
                                   Field_Index : in Positive;
                                   Ok : out Boolean);
    procedure Create_Sentence_Field (Item : in out Object;
                                     Field_Index : in Positive;
                                     Ok : out Boolean);
    procedure Create_Enumerate_Field (Item : in out Object;
                                      Field_Index : in Positive;
                                      Ok : out Boolean);
    procedure Field_Put_Number (Item : in out Object;
                                Field_Index : in Positive;
                                Number : in Integer;
                                Ok : out Boolean);
    procedure Field_Put_Sentence (Item : in out Object;
                                  Field_Index : in Positive;
                                  Sentence : in Identifier.Object;
                                  Ok : out Boolean);
    procedure Field_Put_Enumerate (Item : in out Object;
                                   Field_Index : in Positive;
                                   Enumeration, Literal : in Positive;
                                   Ok : out Boolean);

    procedure Put_Movement (Item : in out Object; Place : in Positive);
    --   procedure Movement_Init (Item : in out Object);
    procedure Move (Item : in out Object);

    procedure Put_Exit (Item : in out Object;
                        Name, Start_Place, Start_Direction,
                        Next_Place, Next_Direction : in Positive;
                        Ok : out Boolean);
--procedure put_exit(item : in out object;name,start_place,start_direction,
--next_place,next_direction : in positive;ok : out boolean);
--procedure exit_put_enumerate(item : in out object;enumeration,literal: in positive;ok : out boolean);
    function Exit_Exist
                (Item : in Object; Direction : in Positive) return Boolean;
    function Exits_Exist (Item : in Object) return Boolean;
--function exit_enumeration(item : in out object;direction : in positive) return natural;
--function exit_literal(item : in out object;direction : in positive) return natural;
    function Exit_Name
                (Item : in Object; Direction : in Positive) return Natural;
    function Next_Place
                (Item : in Object; Direction : in Positive) return Natural;
    function Next_Direction
                (Item : in Object; Direction : in Positive) return Natural;

    procedure Put_Place
                 (Item : in out Object; Place : in Natural; Ok : out Boolean);
    procedure Show (Item : in Object);

    procedure List_Exits_Init (Item : in out Object);
    procedure List_Exits_Next (Item : in out Object);
    function List_Exits_Direction (Item : in Object) return Natural;
    function List_Exits_Done (Item : in Object) return Boolean;

    procedure Put_Group (Item : in out Object;
                         An_Index : in Positive;
                         Ok : out Boolean);
    procedure List_Group_Init (Item : in out Object);
    procedure List_Group_Next (Item : in out Object);
    function List_Group_Name
                (Item : in Object)
                return String; -- pour list_exits_value aussi string !!!
    function List_Group_Done (Item : in Object) return Boolean;

--function field_is_a_number (item : in object;field_name : in string) return boolean;
--function field_is_a_sentence (item : in object;field_name : in string) return boolean;
--function field_is_an_enumerate (item : in object;field_name : in string) return boolean;
--function field_exist (item : in object;field_name : in string) return boolean;

    function Field_Is_A_Number
                (Item : in Object; Field_Index : in Positive) return Boolean;
    function Field_Is_A_Sentence
                (Item : in Object; Field_Index : in Positive) return Boolean;
    function Field_Is_An_Enumerate
                (Item : in Object; Field_Index : in Positive) return Boolean;
    function Field_Belong
                (Item : in Object; Field_Index : in Positive) return Boolean;

    function Is_A_Subject (Item : in Object) return Boolean;
    function Is_An_Animate (Item : in Object) return Boolean;
    function Is_A_Place (Item : in Object) return Boolean;
    function Is_An_Entity (Item : in Object) return Boolean;
    function Is_A_Word (Item : in Object) return Boolean;
    function Is_A_Verb (Item : in Object) return Boolean;

    function Name (Item : in Object) return String;
    function Place (Item : in Object) return Natural;
--function field_number (Item : in Object,field_name:in string) return Integer;
--function field_sentence (Item : in Object,field_name:in string) return String;
--function field_Enumeration (Item : in Object,field_name:in string) return Natural;
--function field_Literal (Item : in Object,field_name:in string) return Natural;

    function Field_Number
                (Item : in Object; Field_Index : in Positive) return Integer;
    function Field_Sentence
                (Item : in Object; Field_Index : in Positive) return String;
    function Field_Enumeration
                (Item : in Object; Field_Index : in Positive) return Natural;
    function Field_Literal
                (Item : in Object; Field_Index : in Positive) return Natural;
    --   function Synonym (Item : in Object) return Natural;

    Null_Object : constant Object;
    Animate_Object : constant Object;
    Place_Object : constant Object;
    Entity_Object : constant Object;

private
--package field_array is new generic_string_sort_array(
--              element =>field.object,
--              max_element_number =>10,
--              null_element => field.null_object,
--              element_image => field.image,
--              get_key =>field.name);


    package Group_Index is
       new Generic_Index (Element_Image => Group_Identifier_Array.Image);
    package Complement_Index is
       new Generic_Index (Element_Image => Complement_Identifier_Array.Image);
    package Group_Index_List is new Exclusive_Generic_List
                                       (Element => Group_Index.Object,
                                        Null_Element => Group_Index.Null_Object,
                                        Show_Element => Group_Index.Show,
                                        Get_Key => Group_Index.Image);

    package Field_List is new Exclusive_Generic_List
                                 (Element => Field.Object,
                                  Null_Element => Field.Null_Object,
                                  Show_Element => Field.Show,
                                  Get_Key => Field.Name);

    package Place_List is new List_Generic (Element => Complement_Index.Object);

    package Link_List is new Exclusive_Generic_List
                                (Element => Link.Object,
                                 Null_Element => Link.Null_Object,
                                 Show_Element => Link.Show,
                                 Get_Key => Link.Key);

    Null_Trip_Iterator : Place_List.Iterator;  -- tester dans boucle
    Null_Exits_Iterator : Link_List.Iterator;
    Null_Group_Iterator : Group_Index_List.Iterator;


    type Object (Kind : Complement_Kind := Unknown) is
        record
            Group_List : Group_Index_List.Object :=
               Group_Index_List.Null_Object;
            Group_Iterator : Group_Index_List.Iterator := Null_Group_Iterator;

            case Kind is
                when Animate =>
                    Animate_Name : Identifier.Object := Identifier.Null_Object;
--    animate_fields : field_array.object := field_array.null_object;
                    Animate_Fields : Field_List.Object :=
                       Field_List.Null_Object;
                    Animate_Place : Natural := 0;
                    Trip : Place_List.List := Place_List.Nil;
                    Trip_Iterator : Place_List.Iterator := Null_Trip_Iterator;
                when Place =>
                    Place_Name : Identifier.Object := Identifier.Null_Object;
--  place_fields : field_array.object := field_array.null_object;
                    Place_Fields : Field_List.Object := Field_List.Null_Object;
                    Exits : Link_List.Object := Link_List.Null_Object;
                    Exits_Iterator : Link_List.Iterator := Null_Exits_Iterator;
                when Entity =>
                    Entity_Name : Identifier.Object := Identifier.Null_Object;
-- entity_fields : field_array.object := field_array.null_object;
                    Entity_Fields : Field_List.Object := Field_List.Null_Object;
                    Entity_Place : Natural := 0;
                when Word =>
                    Word_Value : Identifier.Object := Identifier.Null_Object;
                when Verb =>
                    Synonym : Identifier.Object := Identifier.Null_Object;
                    --   reference_Verb : Identifier.Object :=
                    --Identifier : identifier.Null_Object;
                when Unknown =>
                    null;
            end case;
        end record;

    Null_Object : constant Object :=
       (  
        Group_List => Group_Index_List.Null_Object,
        Group_Iterator => Null_Group_Iterator,
        Kind => Unknown);

    Animate_Object : constant Object :=
       (Group_List => Group_Index_List.Null_Object,
        Group_Iterator => Null_Group_Iterator,
        Kind => Animate,
        Animate_Name => Identifier.Null_Object,
--    animate_fields => field_array.null_object,
        Animate_Fields => Field_List.Null_Object,
        Animate_Place => 0,
        Trip => Place_List.Nil,
        Trip_Iterator => Null_Trip_Iterator);

    Place_Object : constant Object :=
       (Group_List => Group_Index_List.Null_Object,
        Group_Iterator => Null_Group_Iterator,
        Kind => Place,
        Place_Name => Identifier.Null_Object,
--  place_fields => field_array.null_object,
        Place_Fields => Field_List.Null_Object,
        Exits => Link_List.Null_Object,
        Exits_Iterator => Null_Exits_Iterator);

    Entity_Object : constant Object :=
       (Group_List => Group_Index_List.Null_Object,
        Group_Iterator => Null_Group_Iterator,
        Kind => Entity,
        Entity_Name => Identifier.Null_Object,
-- entity_fields => field_array.null_object,
        Entity_Fields => Field_List.Null_Object,
        Entity_Place => 0);

end Complementgl;

E3 Meta Data

    nblk1=10
    nid=d
    hdr6=1e
        [0x00] rec0=15 rec1=00 rec2=01 rec3=056
        [0x01] rec0=00 rec1=00 rec2=02 rec3=004
        [0x02] rec0=0e rec1=00 rec2=0f rec3=05a
        [0x03] rec0=01 rec1=00 rec2=04 rec3=052
        [0x04] rec0=13 rec1=00 rec2=10 rec3=03c
        [0x05] rec0=11 rec1=00 rec2=06 rec3=082
        [0x06] rec0=14 rec1=00 rec2=0e rec3=06e
        [0x07] rec0=14 rec1=00 rec2=05 rec3=012
        [0x08] rec0=13 rec1=00 rec2=08 rec3=012
        [0x09] rec0=16 rec1=00 rec2=0a rec3=04e
        [0x0a] rec0=16 rec1=00 rec2=03 rec3=068
        [0x0b] rec0=12 rec1=00 rec2=07 rec3=01c
        [0x0c] rec0=17 rec1=00 rec2=0b rec3=00e
        [0x0d] rec0=19 rec1=00 rec2=0c rec3=00c
        [0x0e] rec0=04 rec1=00 rec2=09 rec3=001
        [0x0f] rec0=00 rec1=00 rec2=00 rec3=000
    tail 0x2174bc58a86577e63edd1 0x42a00088462060003
Free Block Chain:
  0xd: 0000  00 00 03 fc 80 05 65 61 6e 29 3b 05 00 70 2d 2d  ┆      ean);  p--┆