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: ┃ T V ┃
Length: 2162 (0x872) Types: TextFile Names: »V«
└─⟦afbc8121e⟧ Bits:30000532 8mm tape, Rational 1000, MC68020_OS2000 7_2_2 └─ ⟦77aa8350c⟧ »DATA« └─⟦f794ecd1d⟧ └─⟦this⟧
generic type Element is private; with procedure Free_Element (X : in out Element); pragma Must_Be_Constrained (Yes => Element); package Managed_Sequence_Generic is type Sequence is private; -- If used by multiple tasks, they must synchronize their access -- to Sequence objects themselves. -- May generate garbage -- = and := operate on references -- -- constraint error is raised when nil i provided to any of -- first, rest, set_first, or set_rest function Nil return Sequence; procedure Append (S : in out Sequence; X : Element); function Is_Empty (S : Sequence) return Boolean; function Length (S : Sequence) return Natural; type Iterator is private; procedure Init (Iter : out Iterator; S : Sequence); procedure Next (Iter : in out Iterator); function Value (Iter : Iterator) return Element; function Done (Iter : Iterator) return Boolean; function First (S : Sequence) return Element; function Rest (S : Sequence) return Sequence; procedure Free (S : in out Sequence); -- deallocates sequence and all elements of sequence (using generic formal -- Free_Element). -- Assumes no sharing. -- It's up to the user to avoid dangling references -- to S or any sequence used to construct S. --/inline pragma inline(make); --/inline pragma inline(nil); --/inline pragma inline(is_empty); --/inline pragma inline(first); --/inline pragma inline(rest); --/inline pragma inline(set_rest); --/inline pragma inline(set_first); private type Sequence_Data; type Sequence is access Sequence_Data; pragma Enable_Deallocation (Sequence); -- variables of type Sequence are initialized to null type Sequence_Data is record Value : Element; Rest : Sequence; -- next element of sequence Tail : Sequence; -- last element of end record; type Iterator is new Sequence; --/R1000 pragma Subsystem (Cross_Development); pragma Module_Name (4, 3878); pragma Bias_Key (28); end Managed_Sequence_Generic;