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 - downloadIndex: ┃ B T ┃
Length: 1895 (0x767) 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 I : Natural; 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 I : Natural; Nb : Natural; begin Nb := How_Many (A_List); if Nb > 0 then Msg_Report.Continue ("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) & " : " & Natural'Image (Object.Identificator (A_List.Ref (I)))); end loop; end Image; end Arguments;