|
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