/*ident "@(#)fs:fsippsrc/scope.c 3.1" */ /****************************************************************************** * * C++ Standard Components, Release 3.0. * * Copyright (c) 1991, 1992 AT&T and Unix System Laboratories, Inc. * Copyright (c) 1988, 1989, 1990 AT&T. All Rights Reserved. * * THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T and Unix System * Laboratories, Inc. The copyright notice above does not evidence * any actual or intended publication of such source code. * ******************************************************************************/ #ifdef __GNUG__ #pragma implementation "List.h" #endif #include "fsipp.h" #include "scope.h" #ifdef __GNUG__ template class List_of_p; template class List_of_piter; template class List_of_p; #endif List_of_p scopeStack; void pushClassScope(String tag) { scopeStack.put(new Scope(classScope, tag)); } void pushScope() { scopeStack.put(new Scope(otherScope)); } void popScope() { if (scopeStack.length() == 0) syntaxError("Unmatched right brace"); else { delete (scopeStack.unput()); } } static String foo; bool_type containingClass() { return containingClass(foo); } bool_type containingClass(String &className) { List_of_piter scopeStacki(scopeStack); for (scopeStacki.end_reset(); !scopeStacki.at_head(); scopeStacki.step_prev()) { if (scopeStacki.peek_prev()->type == classScope) { className = scopeStacki.peek_prev()->name; return yes; } } return no; } #ifdef __GNUG__ #include ostream& operator<<(ostream &os, const Scope &) { return os; } #endif