-- Copyright (c) 1990 Regents of the University of California. -- All rights reserved. -- -- The primary authors of ayacc were David Taback and Deepak Tolani. -- Enhancements were made by Ronald J. Schmalz. -- -- Send requests for ayacc information to ayacc-info@ics.uci.edu -- Send bug reports for ayacc to ayacc-bugs@ics.uci.edu -- -- Redistribution and use in source and binary forms are permitted -- provided that the above copyright notice and this paragraph are -- duplicated in all such forms and that any documentation, -- advertising materials, and other materials related to such -- distribution and use acknowledge that the software was developed -- by the University of California, Irvine. The name of the -- University may not be used to endorse or promote products derived -- from this software without specific prior written permission. -- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR -- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED -- WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. -- Module : stack.ada -- Component of : ayacc -- Version : 1.2 -- Date : 11/21/86 12:36:24 -- SCCS File : disk21~/rschm/hasee/sccs/ayacc/sccs/sxstack.ada -- $Header: stack.a,v 0.1 86/04/01 15:12:46 ada Exp $ -- $Log: stack.a,v $ -- Revision 0.1 86/04/01 15:12:46 ada -- This version fixes some minor bugs with empty grammars -- and $$ expansion. It also uses vads5.1b enhancements -- such as pragma inline. -- -- -- Revision 0.0 86/02/19 18:42:12 ada -- -- These files comprise the initial version of Ayacc -- designed and implemented by David Taback and Deepak Tolani. -- Ayacc has been compiled and tested under the Verdix Ada compiler -- version 4.06 on a vax 11/750 running Unix 4.2BSD. -- -- -- -- Authors : David Taback , Deepak Tolani -- -- Copyright : 1987, University of California Irvine -- -- -- -- If you -- -- modify the source code or if you have any suggestions or questions -- -- regarding ayacc, we would like to hear from you. Our mailing -- -- addresses are : -- -- taback@icsc.uci.edu -- -- tolani@icsc.uci.edu -- -- -- generic type Element is private; package Stack_Pack is type Stack is limited private; Stack_Underflow : exception; function Top_Value (S: in Stack) return Element; function Depth_of_Stack (S: in Stack) return Natural; procedure Make_Stack(S: out Stack); procedure Push(S: in out Stack; Value: in Element); procedure Pop (S: in out Stack; Value: out Element); procedure Free_Stack(S: in out Stack); private type Node; type Link is access Node; pragma Controlled(Link); type Stack is record Tos : Natural; Top : Link; Extras : Link; end record; end Stack_Pack;