summaryrefslogtreecommitdiff
path: root/autodoc/source/parser/cpp/sownstck.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'autodoc/source/parser/cpp/sownstck.hxx')
-rw-r--r--autodoc/source/parser/cpp/sownstck.hxx327
1 files changed, 0 insertions, 327 deletions
diff --git a/autodoc/source/parser/cpp/sownstck.hxx b/autodoc/source/parser/cpp/sownstck.hxx
deleted file mode 100644
index 8f4a2d7b..00000000
--- a/autodoc/source/parser/cpp/sownstck.hxx
+++ /dev/null
@@ -1,327 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef ADC_CPP_SOWNSTCK_HXX
-#define ADC_CPP_SOWNSTCK_HXX
-
-
-
-// USED SERVICES
- // BASE CLASSES
-#include "cxt2ary.hxx"
- // COMPONENTS
-#include <ary/cpp/c_types4cpp.hxx>
-#include <estack.hxx>
- // PARAMETERS
-#include <ary/cpp/c_namesp.hxx>
-#include <x_parse.hxx>
-
-
-namespace cpp
-{
-
-using ary::cpp::E_Protection;
-
-
-/** Implementation struct for cpp::ContextForAry.
-*/
-struct ContextForAry::S_OwnerStack
-{
- public:
- S_OwnerStack();
- void SetGlobalNamespace(
- ary::cpp::Namespace &
- io_rGlobalNamespace );
- ~S_OwnerStack();
-
- void Reset();
-
- void OpenNamespace(
- ary::cpp::Namespace &
- io_rOpenedNamespace );
- void OpenExternC();
- void OpenClass(
- ary::cpp::Class & io_rOpenedClass );
- void OpenEnum(
- ary::cpp::Enum & io_rOpenedEnum );
- void CloseBlock();
- void CloseClass();
- void CloseEnum();
- void SetCurProtection(
- ary::cpp::E_Protection
- i_eProtection );
- ary::cpp::Namespace &
- CurNamespace() const;
- ary::cpp::Class * CurClass() const;
- ary::cpp::Enum * CurEnum() const;
-
- Owner & CurOwner() const;
- ary::cpp::E_Protection
- CurProtection() const;
- bool IsExternC() const { return nExternC > 0; }
-
- private:
- typedef std::pair< ary::cpp::Class*, E_Protection > ClassEnv;
- typedef EStack< ary::cpp::Namespace* > Stack_Namespaces;
- typedef EStack< ClassEnv > Stack_Classes;
- typedef ary::cpp::InputContext::Owner Ifc_Owner;
-
- void SetOwner_2CurNamespace();
- void SetOwner_2CurClass();
- void SetOwner_2None();
-
- // DATA
- Stack_Namespaces aStack_Namespaces;
- Stack_Classes aStack_Classes;
- ary::cpp::Enum * pCurEnum;
- uintt nExternC; /// This is a number, for the case that extern "C" blocks are nested.
-
- Dyn<Owner_Namespace>
- pOwner_Namespace;
- Dyn<Owner_Class> pOwner_Class;
- Ifc_Owner * pOwner_Cur;
-};
-
-
-// IMPLEMENTATION
-
-/* The implementation is in header, though not inline, because this file is included
- in cxt2ary.cxx only!
-*/
-
-inline ary::cpp::Namespace &
-ContextForAry::
-S_OwnerStack::CurNamespace() const
-{
- csv_assert( aStack_Namespaces.size() > 0 );
- return *aStack_Namespaces.top();
-}
-
-inline ary::cpp::Class *
-ContextForAry::
-S_OwnerStack::CurClass() const
-{
- return aStack_Classes.size() > 0
- ? aStack_Classes.top().first
- : (ary::cpp::Class *) 0;
-}
-
-inline void
-ContextForAry::
-S_OwnerStack::SetOwner_2CurNamespace()
-{
- csv_assert( aStack_Namespaces.size() > 0 );
- pOwner_Cur = pOwner_Namespace.MutablePtr();
- pOwner_Namespace->SetAnotherNamespace( CurNamespace() );
-}
-
-inline void
-ContextForAry::
-S_OwnerStack::SetOwner_2CurClass()
-{
- csv_assert( aStack_Classes.size() > 0 );
- pOwner_Cur = pOwner_Class.MutablePtr();
- pOwner_Class->SetAnotherClass( *CurClass() );
-}
-
-ContextForAry::
-S_OwnerStack::S_OwnerStack()
- : // aStack_Namespaces,
- // aStack_Classes,
- pCurEnum(0),
- nExternC(0),
- pOwner_Namespace(new Owner_Namespace),
- pOwner_Class(new Owner_Class),
- pOwner_Cur(0)
-{
-}
-
-void
-ContextForAry::
-S_OwnerStack::Reset()
-{
- while ( aStack_Namespaces.top()->Owner().IsValid() )
- aStack_Namespaces.pop();
- while ( NOT aStack_Classes.empty() )
- aStack_Classes.pop();
- pCurEnum = 0;
- nExternC = 0;
- SetOwner_2CurNamespace();
-}
-
-inline void
-ContextForAry::
-S_OwnerStack::SetGlobalNamespace( ary::cpp::Namespace & io_rGlobalNamespace )
-{
- csv_assert( aStack_Namespaces.size() == 0 );
- aStack_Namespaces.push(&io_rGlobalNamespace);
- SetOwner_2CurNamespace();
-}
-
-ContextForAry::
-S_OwnerStack::~S_OwnerStack()
-{
-}
-
-inline void
-ContextForAry::
-S_OwnerStack::OpenNamespace( ary::cpp::Namespace & io_rOpenedNamespace )
-{
- csv_assert( aStack_Namespaces.size() > 0 OR io_rOpenedNamespace.Parent() == 0 );
- aStack_Namespaces.push(&io_rOpenedNamespace);
- SetOwner_2CurNamespace();
-}
-
-inline void
-ContextForAry::
-S_OwnerStack::OpenExternC()
-{
- ++nExternC;
-// SetOwner_2None();
-}
-
-inline void
-ContextForAry::
-S_OwnerStack::SetCurProtection( ary::cpp::E_Protection i_eProtection )
-{
- csv_assert( aStack_Classes.size() > 0 );
- aStack_Classes.top().second = i_eProtection;
-}
-
-inline ary::cpp::Enum *
-ContextForAry::
-S_OwnerStack::CurEnum() const
-{
- return pCurEnum;
-}
-
-
-inline ary::cpp::InputContext::Owner &
-ContextForAry::
-S_OwnerStack::CurOwner() const
-{
- csv_assert( pOwner_Cur != 0 );
- return *pOwner_Cur;
-}
-
-inline E_Protection
-ContextForAry::
-S_OwnerStack::CurProtection() const
-{
- return aStack_Classes.size() > 0
- ? aStack_Classes.top().second
- : ary::cpp::PROTECT_global;
-}
-
-inline void
-ContextForAry::
-S_OwnerStack::SetOwner_2None()
-{
- pOwner_Cur = 0;
-}
-
-void
-ContextForAry::
-S_OwnerStack::OpenClass( ary::cpp::Class & io_rOpenedClass )
-{
- E_Protection eDefaultProtection
- = io_rOpenedClass.ClassKey() == ary::cpp::CK_class
- ? ary::cpp::PROTECT_private
- : ary::cpp::PROTECT_public;
- aStack_Classes.push( ClassEnv(&io_rOpenedClass, eDefaultProtection) );
- SetOwner_2CurClass();
-}
-
-inline void
-ContextForAry::
-S_OwnerStack::OpenEnum( ary::cpp::Enum & io_rOpenedEnum )
-{
- csv_assert( pCurEnum == 0 );
- pCurEnum = &io_rOpenedEnum;
- SetOwner_2None();
-}
-
-void
-ContextForAry::
-S_OwnerStack::CloseBlock()
-{
- if (nExternC > 0)
- {
- --nExternC;
- }
- else
- {
- // csv_assert( aStack_Classes.size() == 0 );
- if ( aStack_Classes.size() > 0 )
- throw X_Parser(X_Parser::x_UnspecifiedSyntaxError, "", String::Null_(), 0);
-
- csv_assert( pCurEnum == 0 );
- aStack_Namespaces.pop();
-
- // csv_assert( aStack_Namespaces.size() > 0 );
- if( aStack_Namespaces.size() == 0 )
- throw X_Parser(X_Parser::x_UnspecifiedSyntaxError, "", String::Null_(), 0);
-
- }
- SetOwner_2CurNamespace();
-}
-
-void
-ContextForAry::
-S_OwnerStack::CloseClass()
-{
- // csv_assert( aStack_Classes.size() > 0 );
- if ( aStack_Classes.size() == 0 )
- throw X_Parser(X_Parser::x_UnspecifiedSyntaxError, "", String::Null_(), 0);
-
- aStack_Classes.pop();
- if ( aStack_Classes.size() > 0 )
- SetOwner_2CurClass();
- else
- SetOwner_2CurNamespace();
-}
-
-void
-ContextForAry::
-S_OwnerStack::CloseEnum()
-{
- csv_assert( pCurEnum != 0 );
- pCurEnum = 0;
- if ( aStack_Classes.size() > 0 )
- SetOwner_2CurClass();
- else
- SetOwner_2CurNamespace();
-}
-
-
-} // namespace cpp
-
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */