|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: B T
Length: 1970 (0x7b2)
Types: TextFile
Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
└─⟦129cab021⟧ »DATA«
└─⟦this⟧
with Object, Msg_Report;
package body Arguments is
function Void_Arguments return List is
A_List : List;
begin
A_List.Iterator := 1;
A_List.Nb_Ref := 0;
for I in A_List.Ref'Range loop
A_List.Ref (I) := Object.Void_Reference;
end loop;
return A_List;
end Void_Arguments;
procedure First (A_List : in out List) is
begin
A_List.Iterator := 1;
end First;
procedure Next (A_List : in out List) is
begin
if A_List.Iterator < Max then
A_List.Iterator := A_List.Iterator + 1;
else
raise Constraint_Error;
end if;
end Next;
function How_Many (A_List : List) return Natural is
begin
return A_List.Nb_Ref;
end How_Many;
procedure Read (A_List : in out List; An_Argument : out Object.Reference) is
begin
An_Argument := A_List.Ref (A_List.Iterator);
Next (A_List);
end Read;
procedure Write (A_List : in out List; An_Argument : Object.Reference) is
begin
A_List.Nb_Ref := A_List.Nb_Ref + 1;
A_List.Ref (A_List.Iterator) := An_Argument;
Next (A_List);
end Write;
procedure Image (A_List : List) is
Nb : Natural;
begin
Nb := How_Many (A_List);
if Nb > 0 then
Msg_Report.Information ("Content of the list");
Msg_Report.Continue ("Nb element : " & Natural'Image (Nb));
Msg_Report.Continue ("Iterator value : " &
Natural'Image (A_List.Iterator));
end if;
for I in 1 .. Nb loop
Msg_Report.Continue
("Element No " & Natural'Image (I) & " : " & "class " &
Object.Class'Image (Object.The_Class (A_List.Ref (I))) &
" value " &
Natural'Image (Object.Identificator (A_List.Ref (I))));
end loop;
end Image;
end Arguments;