DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

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 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T V

⟦488dd0593⟧ TextFile

    Length: 3948 (0xf6c)
    Types: TextFile
    Names: »V«

Derivation

└─⟦149519bd4⟧ Bits:30000546 8mm tape, Rational 1000, !projects 93-07-13
    └─ ⟦124ff5788⟧ »DATA« 
        └─⟦this⟧ 
└─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16
    └─ ⟦6f12a12be⟧ »DATA« 
        └─⟦this⟧ 

TextFile

with Instance;

package Tuple is

    type Object is private;


    procedure Null_Action (The_Tuple : Tuple.Object);

    function Cardinality (Of_Tuple : Tuple.Object)  return Natural;
    function Is_Null     (The_Tuple : Tuple.Object) return Boolean;

    generic
        with procedure Action (The_Reference : Instance.Reference);
    procedure For_All (The_Tuple : Tuple.Object);

    procedure Split (The_Tuple : Tuple.Object;
                     In_Ref1   : out Instance.Reference);
    procedure Split (The_Tuple        : Tuple.Object;
                     In_Ref1, In_Ref2 : out Instance.Reference);
    procedure Split (The_Tuple                 : Tuple.Object;
                     In_Ref1, In_Ref2, In_Ref3 : out Instance.Reference);
    procedure Split (The_Tuple                          : Tuple.Object;
                     In_Ref1, In_Ref2, In_Ref3, In_Ref4 : out
                        Instance.Reference);
    procedure Split (The_Tuple : Tuple.Object;
                     In_Ref1, In_Ref2, In_Ref3, In_Ref4, In_Ref5 : out
                        Instance.Reference);
    procedure Split (The_Tuple : Tuple.Object;
                     In_Ref1, In_Ref2, In_Ref3, In_Ref4, In_Ref5, In_Ref6 : out
                        Instance.Reference);
    procedure Split (The_Tuple                 : Tuple.Object;
                     In_Ref1, In_Ref2, In_Ref3, In_Ref4,
                     In_Ref5, In_Ref6, In_Ref7 : out Instance.Reference);
    procedure Split (The_Tuple                          : Tuple.Object;
                     In_Ref1, In_Ref2, In_Ref3, In_Ref4,
                     In_Ref5, In_Ref6, In_Ref7, In_Ref8 : out
                        Instance.Reference);
    procedure Split (The_Tuple                          : Tuple.Object;
                     In_Ref1, In_Ref2, In_Ref3, In_Ref4, In_Ref5,
                     In_Ref6, In_Ref7, In_Ref8, In_Ref9 : out
                        Instance.Reference);
    procedure Split (The_Tuple : Tuple.Object;
                     In_Ref1, In_Ref2, In_Ref3, In_Ref4, In_Ref5,
                     In_Ref6, In_Ref7, In_Ref8, In_Ref9, In_Ref10 : out
                        Instance.Reference);


    function Get (In_Tuple : Tuple.Object; The_Item : Positive := 1)
                 return Instance.Reference;

    procedure Add (In_Tuple      : in out Tuple.Object;
                   The_Reference :        Instance.Reference);

    procedure Merge (In_Tuple   : in out Tuple.Object;
                     With_Size  : Natural;
                     The_Ref_1  : Instance.Reference := Instance.Null_Reference;
                     The_Ref_2  : Instance.Reference := Instance.Null_Reference;
                     The_Ref_3  : Instance.Reference := Instance.Null_Reference;
                     The_Ref_4  : Instance.Reference := Instance.Null_Reference;
                     The_Ref_5  : Instance.Reference := Instance.Null_Reference;
                     The_Ref_6  : Instance.Reference := Instance.Null_Reference;
                     The_Ref_7  : Instance.Reference := Instance.Null_Reference;
                     The_Ref_8  : Instance.Reference := Instance.Null_Reference;
                     The_Ref_9  : Instance.Reference := Instance.Null_Reference;
                     The_Ref_10 : Instance.Reference :=
                        Instance.Null_Reference);

    function Object_To_Tuple
                (The_Reference : Instance.Reference) return Tuple.Object;

    generic
        with function "<" (Left_Reference, Right_Reference : Instance.Reference)
                          return Boolean;
    procedure Sort (The_Tuple : in out Tuple.Object);


    Overflow : exception;

private

    Max_Size : constant Natural := 10;

    type Tuple_Array is array (1 .. Max_Size) of Instance.Reference;

    type Object is
        record
            Cells : Tuple_Array;
            Count : Natural  := 0;
            Unity : Positive := 1;
        end record;

end Tuple;