DEFINITION MODULE StkSBUN; (*========================================================== Version : 1.00 29 Apr 1989 C. Lins Compiler : TopSpeed Modula-2 Component: Monolithic Structures - Stack (Opaque version) Sequential Bounded Unmanaged Non-Iterator REVISION HISTORY v1.00 29 Apr 1989 C. Lins: Initial implementation from StackSBUI module. ==========================================================*) FROM Items IMPORT (*--Type*) Item; FROM StackEnum IMPORT (*--Type*) Exceptions; FROM ErrorHandling IMPORT (*--Type*) HandlerProc; (*-----------------------*) TYPE Stack; TYPE SizeRange = [1..8100]; CONST NullStack = Stack(NIL); (*-----------------------*) CONST ModuleID = 8; PROCEDURE StackError () : Exceptions (*-- out *); PROCEDURE GetHandler ( theError : Exceptions (*-- in *)) : HandlerProc (*-- out *); PROCEDURE SetHandler ( theError : Exceptions (*-- in *); theHandler : HandlerProc (*-- in *)); (*-----------------------*) PROCEDURE Create ( theSize : SizeRange (*-- in *)) : Stack (*-- out *); PROCEDURE Destroy (VAR theStack : Stack (*-- inout *)); PROCEDURE Clear (VAR theStack : Stack (*-- inout *)); PROCEDURE Assign ( theStack : Stack (*-- in *); VAR toStack : Stack (*-- inout *)); PROCEDURE Push (VAR toStack : Stack (*-- inout *); theItem : Item (*-- in *)); PROCEDURE Pop (VAR theStack : Stack (*-- inout *)); PROCEDURE PopTopOf (VAR theStack : Stack (*-- inout *)) : Item (*-- out *); (*-----------------------*) PROCEDURE IsDefined ( theStack : Stack (*-- in *)) : BOOLEAN (*-- out *); PROCEDURE IsEmpty ( theStack : Stack (*-- in *)) : BOOLEAN (*-- out *); PROCEDURE IsEqual ( left : Stack (*-- in *); right : Stack (*-- in *)) : BOOLEAN (*-- out *); PROCEDURE SizeOf ( theStack : Stack (*-- in *)) : CARDINAL (*-- out *); PROCEDURE DepthOf ( theStack : Stack (*-- in *)) : CARDINAL (*-- out *); PROCEDURE TopOf ( theStack : Stack (*-- in *)) : Item (*-- out *); END StkSBUN.