Example #1
0
// получить название области видимости в виде имени, если
// она является идентификатором, вернуть его
CharString ManagerUtils::GetSymbolTableName( const SymbolTable &st )
{
	if( st.IsGlobalSymbolTable() )
		return "глобальная область видимости";
	
	else if( st.IsNamespaceSymbolTable() )
		return static_cast<const NameSpace &>(st).GetQualifiedName();
	
	else if( st.IsLocalSymbolTable() )
		return 
			(GetScopeSystem().GetFunctionSymbolTable())->GetFunction().GetQualifiedName();
	
	else if( st.IsFunctionSymbolTable() )
		return static_cast<const FunctionSymbolTable &>(st).GetFunction().GetQualifiedName();
	
	else if( st.IsClassSymbolTable() )
		return static_cast<const ClassType &>(st).GetQualifiedName();
	
	else
		INTERNAL( "'GetAccessSpecifierName' получила неизвестную область видимости" );
	return "";
}