with Gnat.Io; use Gnat.Io; package body ListSeq is -- Set the sequence. procedure SetList(S: out ListSequence; A: SeqList) is begin S.List := new SeqList(A'Range); S.List.all := A; S.Which := S.List.all'First; end SetList; -- Standard procedures. -- Go to the next integer, wrap around. procedure Next(S: in out ListSequence) is begin S.Which := S.Which + 1; if S.Which > S.List.all'Last then S.Which := S.List.all'First; end if; end Next; -- Get the current item. function Value(S: ListSequence) return Integer is begin return S.List.all(S.Which); end Value; end ListSeq;