|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 7168 (0x1c00)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Tuple, seg_00c7db, separate Expertsystem
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
separate (Expertsystem)
package body Tuple is
function Cardinality (Thetuple : Tuple.Object) return Natural is
begin
return Thetuple.Count;
end Cardinality;
function Isnull (Thetuple : Tuple.Object) return Boolean is
begin
return Thetuple.Count = 0;
end Isnull;
function Isnotnull (Thetuple : Tuple.Object) return Boolean is
begin
return Thetuple.Count /= 0;
end Isnotnull;
procedure Forall (Thetuple : Tuple.Object) is
begin
for I in 1 .. Thetuple.Count loop
Action (Get (Thetuple, I));
end loop;
end Forall;
function First (Thetuple : Tuple.Object) return Expertsystem.Reference is
begin
return Get (Thetuple, 1);
end First;
function Second (Thetuple : Tuple.Object) return Expertsystem.Reference is
begin
return Get (Thetuple, 2);
end Second;
function Third (Thetuple : Tuple.Object) return Expertsystem.Reference is
begin
return Get (Thetuple, 3);
end Third;
function Fourth (Thetuple : Tuple.Object) return Expertsystem.Reference is
begin
return Get (Thetuple, 4);
end Fourth;
function Fifth (Thetuple : Tuple.Object) return Expertsystem.Reference is
begin
return Get (Thetuple, 5);
end Fifth;
function Sixth (Thetuple : Tuple.Object) return Expertsystem.Reference is
begin
return Get (Thetuple, 6);
end Sixth;
function Seventh (Thetuple : Tuple.Object) return Expertsystem.Reference is
begin
return Get (Thetuple, 7);
end Seventh;
function Eighth (Thetuple : Tuple.Object) return Expertsystem.Reference is
begin
return Get (Thetuple, 8);
end Eighth;
function Ninth (Thetuple : Tuple.Object) return Expertsystem.Reference is
begin
return Get (Thetuple, 9);
end Ninth;
function Tenth (Thetuple : Tuple.Object) return Expertsystem.Reference is
begin
return Get (Thetuple, 10);
end Tenth;
function Get (Thetuple : Tuple.Object; Item : Positive := 1)
return Expertsystem.Reference is
begin
if Item > Thetuple.Count then
return Nullreference;
else
return Thetuple.Cells (Item);
end if;
end Get;
procedure Add (Thetuple : in out Tuple.Object;
Aref : Expertsystem.Reference) is
begin
if Thetuple.Count = Thetuple.Size then
declare
Bigtuple : Tuple.Object (Thetuple.Size + Thetuple.Size / 2);
begin
Bigtuple.Cells (1 .. Thetuple.Size) :=
Thetuple.Cells (1 .. Thetuple.Size);
Bigtuple.Count := Thetuple.Count;
Bigtuple.Unity := Thetuple.Unity;
Thetuple := Bigtuple;
end;
end if; Thetuple.Count := Thetuple.Count + 1;
Thetuple.Cells (Thetuple.Count) := Aref;
end Add;
procedure Merge (Thetuple : in out Tuple.Object;
R1 : Expertsystem.Reference := Nullreference;
R2 : Expertsystem.Reference := Nullreference;
R3 : Expertsystem.Reference := Nullreference;
R4 : Expertsystem.Reference := Nullreference;
R5 : Expertsystem.Reference := Nullreference;
R6 : Expertsystem.Reference := Nullreference;
R7 : Expertsystem.Reference := Nullreference;
R8 : Expertsystem.Reference := Nullreference;
R9 : Expertsystem.Reference := Nullreference;
R10 : Expertsystem.Reference := Nullreference) is
begin
if R1 /= Nullreference then
Add (Thetuple, R1);
end if;
if R2 /= Nullreference then
Add (Thetuple, R2);
end if;
if R3 /= Nullreference then
Add (Thetuple, R3);
end if;
if R4 /= Nullreference then
Add (Thetuple, R4);
end if;
if R4 /= Nullreference then
Add (Thetuple, R4);
end if;
if R5 /= Nullreference then
Add (Thetuple, R5);
end if;
if R6 /= Nullreference then
Add (Thetuple, R6);
end if;
if R7 /= Nullreference then
Add (Thetuple, R7);
end if;
if R8 /= Nullreference then
Add (Thetuple, R8);
end if;
if R9 /= Nullreference then
Add (Thetuple, R9);
end if;
if R10 /= Nullreference then
Add (Thetuple, R10);
end if;
end Merge;
function Asobject (Aref : Expertsystem.Reference) return Tuple.Object is
Result : Tuple.Object;
begin
Add (Result, Aref);
return Result;
end Asobject;
procedure Sort (Thetuple : in out Tuple.Object) is
Repere : Integer range Thetuple.Cells'First - 1 .. Thetuple.Cells'Last;
Nombre : Expertsystem.Reference;
begin
for I in Thetuple.Cells'First + 1 .. Thetuple.Count - 1 loop
Nombre := Thetuple.Cells (I);
Repere := I - 1;
while (Repere /= Thetuple.Cells'First - 1) and then
(Nombre < Thetuple.Cells (Repere)) loop
Thetuple.Cells (Repere + 1) := Thetuple.Cells (Repere);
Repere := Repere - 1;
end loop;
Thetuple.Cells (Repere + 1) := Nombre;
end loop;
end Sort;
end Tuple;
nblk1=6
nid=0
hdr6=c
[0x00] rec0=26 rec1=00 rec2=01 rec3=060
[0x01] rec0=23 rec1=00 rec2=02 rec3=02a
[0x02] rec0=1d rec1=00 rec2=03 rec3=002
[0x03] rec0=14 rec1=00 rec2=04 rec3=018
[0x04] rec0=22 rec1=00 rec2=05 rec3=02a
[0x05] rec0=15 rec1=00 rec2=06 rec3=000
tail 0x2170982ca8207490f5323 0x42a00088462060003