type Queue_Type is tagged record Top, Free : Marker := Marker'First; Is_Empty : Boolean := True; Elements : List; end record;
type Element is new Positive range 1 .. 1000;
type Marker is mod Queue_Size;
Queue_Size : constant Positive := 10;
Queueunderflow : exception;
procedure Enqueue
| ( | Item | : Element; |
| Queue | : in out Queue_Type); |
procedure Dequeue
| ( | Item | : out Element; |
| Queue | : in out Queue_Type); |
function Is_Empty
| ( | Queue | : Queue_Type) return Boolean; |
function Is_Full
| ( | Queue | : Queue_Type) return Boolean; |