mirror of
https://forge.sourceware.org/marek/gcc.git
synced 2026-02-22 12:00:11 -05:00
100 lines
2.4 KiB
Modula-2
100 lines
2.4 KiB
Modula-2
(* M2StackAddress.def provides a generic stack for ADDRESS sized objects.
|
|
|
|
Copyright (C) 2001-2026 Free Software Foundation, Inc.
|
|
Contributed by Gaius Mulley <gaius.mulley@southwales.ac.uk>.
|
|
|
|
This file is part of GNU Modula-2.
|
|
|
|
GNU Modula-2 is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 3, or (at your option)
|
|
any later version.
|
|
|
|
GNU Modula-2 is distributed in the hope that it will be useful, but
|
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with GNU Modula-2; see the file COPYING3. If not see
|
|
<http://www.gnu.org/licenses/>. *)
|
|
|
|
DEFINITION MODULE M2StackAddress ;
|
|
|
|
(*
|
|
Title : M2StackAddress
|
|
Author : Gaius Mulley
|
|
System : UNIX (GNU Modula-2)
|
|
Date : Fri Oct 12 17:26:50 2001
|
|
Revision : $Version$
|
|
Description: provides a generic stack for ADDRESS sized objects.
|
|
*)
|
|
|
|
FROM SYSTEM IMPORT ADDRESS ;
|
|
EXPORT QUALIFIED StackOfAddress, InitStackAddress, KillStackAddress,
|
|
PushAddress, PopAddress, PeepAddress,
|
|
IsEmptyAddress, NoOfItemsInStackAddress ;
|
|
|
|
TYPE
|
|
StackOfAddress ;
|
|
|
|
|
|
(*
|
|
InitStackAddress - creates and returns a new stack.
|
|
*)
|
|
|
|
PROCEDURE InitStackAddress () : StackOfAddress ;
|
|
|
|
|
|
(*
|
|
KillStackAddress - destroys a stack, returning NIL.
|
|
*)
|
|
|
|
PROCEDURE KillStackAddress (s: StackOfAddress) : StackOfAddress ;
|
|
|
|
|
|
(*
|
|
PushAddress - pushes a word, w, onto, s.
|
|
*)
|
|
|
|
PROCEDURE PushAddress (s: StackOfAddress; w: ADDRESS) ;
|
|
|
|
|
|
(*
|
|
PopAddress - pops an element from stack, s.
|
|
*)
|
|
|
|
PROCEDURE PopAddress (s: StackOfAddress) : ADDRESS ;
|
|
|
|
|
|
(*
|
|
IsEmptyAddress - returns TRUE if stack, s, is empty.
|
|
*)
|
|
|
|
PROCEDURE IsEmptyAddress (s: StackOfAddress) : BOOLEAN ;
|
|
|
|
|
|
(*
|
|
PeepAddress - returns the element at, n, items below in the stack.
|
|
Top of stack can be seen via Peep(s, 1)
|
|
*)
|
|
|
|
PROCEDURE PeepAddress (s: StackOfAddress; n: CARDINAL) : ADDRESS ;
|
|
|
|
|
|
(*
|
|
ReduceAddress - reduce the stack by n elements.
|
|
*)
|
|
|
|
PROCEDURE ReduceAddress (s: StackOfAddress; n: CARDINAL) ;
|
|
|
|
|
|
(*
|
|
NoOfItemsInStack - returns the number of items held in the stack, s.
|
|
*)
|
|
|
|
PROCEDURE NoOfItemsInStackAddress (s: StackOfAddress) : CARDINAL ;
|
|
|
|
|
|
END M2StackAddress.
|