00001 /* stack.h - structed access to object stacks 00002 Copyright (C) 1988, 2000 Free Software Foundation, Inc. 00003 Contributed by Michael Tiemann (tiemann@cygnus.com). 00004 00005 This program is free software; you can redistribute it and/or modify it 00006 under the terms of the GNU General Public License as published by the 00007 Free Software Foundation; either version 2, or (at your option) any 00008 later version. 00009 00010 This program is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 GNU General Public License for more details. 00014 00015 You should have received a copy of the GNU General Public License 00016 along with this program; if not, write to the Free Software 00017 Foundation, 59 Temple Place - Suite 330, 00018 Boston, MA 02111-1307, USA. */ 00019 00020 /* Summary: this file contains additional structures that layer 00021 on top of obstacks for GNU C++. */ 00022 00023 /* Stack of data placed on obstacks. */ 00024 00025 struct stack_level 00026 { 00027 /* Pointer back to previous such level. */ 00028 struct stack_level *prev; 00029 00030 /* Point to obstack we should return to. */ 00031 struct obstack *obstack; 00032 00033 /* First place we start putting data. */ 00034 tree *first; 00035 00036 /* Number of entries we can have from `first'. 00037 Right now we are dumb: if we overflow, abort. */ 00038 int limit; 00039 }; 00040 00041 struct stack_level *push_stack_level PARAMS ((struct obstack *, char *, int)); 00042 struct stack_level *pop_stack_level PARAMS ((struct stack_level *));
1.5.6