home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1988 / 08_09 / stack / stackhan.def < prev    next >
Encoding:
Modula Definition  |  1988-01-10  |  3.2 KB  |  63 lines

  1. DEFINITION MODULE StackHandler;
  2. (*----------------------------------------------------------------------*
  3.  * Dieses Modul verwaltet Stacks mit beliebigen Datenelementen bis zu   *
  4.  * 255 Bytes pro Element.                                               *
  5.  * Copyright 1987: Dipl.-Inform. Frank F. Wachtmeister                  *
  6.  *----------------------------------------------------------------------*
  7.  * System  :  ATARI 520 ST+, SM 124, PADERCOMP DL-2, EPSON FX-105       *
  8.  * Compiler:  TDI MODULA-2/ST 0272-742796(UK)                           *
  9.  *----------------------------------------------------------------------*
  10.  * Verwendete Module, die nicht zum Grundpaket gehören:                 *
  11.  *    Debugger: erhältlich über PASCAL Intern. 4/88                     *
  12.  *----------------------------------------------------------------------*
  13.  * Folgende Fehlermeldungen sind über den Debugger implementiert:       *
  14.  * 101: Stack Overflow                                                  *
  15.  * 102: Stack not initialized                                           *
  16.  * 103: Stack Element too large. Max. 255 Bytes                         *
  17.  * 104: Empty Stack                                                     *
  18.  * 105: Stack element inkompatible with given variable (Pop)            *
  19.  *                                                                      *
  20.  * Vergleiche Datei ERRORS.TXT                                          *
  21.  *----------------------------------------------------------------------*)
  22.  
  23. FROM SYSTEM IMPORT BYTE;
  24.  
  25. TYPE Stack;
  26.        
  27. PROCEDURE InitStack (VAR s: Stack);
  28. (*----------------------------------------------------------------------*
  29.  * InitStack initialisiert einen leeren Stack.                          *
  30.  *----------------------------------------------------------------------*)
  31.  
  32.  
  33. PROCEDURE StackSize (VAR s: Stack): CARDINAL;
  34. (*----------------------------------------------------------------------*
  35.  * StackSize liefert die Anzahl der Elemente eines Stacks.              *
  36.  * Leerer oder nicht initialisierter Stack: StackSize = 0               *
  37.  *----------------------------------------------------------------------*)
  38.  
  39.  
  40. PROCEDURE Push (VAR s: Stack; elem: ARRAY OF BYTE);
  41. (*----------------------------------------------------------------------*
  42.  * Push legt ein Element beliebigen Typs auf einen Stack s.             *
  43.  *----------------------------------------------------------------------*)
  44.  
  45.  
  46. PROCEDURE Pop (VAR s: Stack; VAR elem: ARRAY OF BYTE);
  47. (*----------------------------------------------------------------------*
  48.  * Pop holt ein Element von einem Stack und verkleinert den Stack.      *
  49.  * Falls Grö₧e des Stackelements ungleich des übergebenen element's,    *
  50.  * wird die Fehlerroutine aufgerufen.                                   *
  51.  *----------------------------------------------------------------------*)
  52.  
  53.  
  54. PROCEDURE TopOfStack (VAR s: Stack; VAR elem: ARRAY OF BYTE);
  55. (*----------------------------------------------------------------------*
  56.  * PopOfStack holt ein Element vom Stack, ohne diesen zu verkleinern.   *
  57.  * Typenkompatibilität wird wie bei Pop geprüft.                        *
  58.  *----------------------------------------------------------------------*)
  59.  
  60. END StackHandler.
  61.  
  62.  
  63.