Personal tools
You are here: Home Projects C++ Cfront releases Release 3.0.3 source libSC fs fsippsrc scope.c
Document Actions

scope.c

by Michael L Powell last modified 2007-01-26 03:23

Click here to get the file

Size 1.6 kB - File type text/plain

File contents

/*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<Token>;
template class List_of_piter<Token>;
template class List_of_p<Scope>;
#endif
List_of_p<Scope> 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<Scope> 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 <iostream.h>
ostream& operator<<(ostream &os, const Scope &) { return os; }
#endif
« March 2024 »
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: