summaryrefslogtreecommitdiff
path: root/autodoc/source/parser/inc/semantic/callf.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'autodoc/source/parser/inc/semantic/callf.hxx')
-rw-r--r--autodoc/source/parser/inc/semantic/callf.hxx289
1 files changed, 0 insertions, 289 deletions
diff --git a/autodoc/source/parser/inc/semantic/callf.hxx b/autodoc/source/parser/inc/semantic/callf.hxx
deleted file mode 100644
index 6a8c829e00ee..000000000000
--- a/autodoc/source/parser/inc/semantic/callf.hxx
+++ /dev/null
@@ -1,289 +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_CALLF_HXX
-#define ADC_CPP_CALLF_HXX
-
-// USED SERVICES
-
-
-
-
-/** This represents a function to be called, if a specific kind of token
- arrives in the semantic parser.
-
- @descr This class is only to be used as member of PeStatus<PE>.
- @template PE
- The owning ParseEnvironment.
- @see PeStatus, ParseEnvironment
-*/
-template <class PE>
-class CallFunction
-{
- public:
- typedef void (PE::*F_Tok)(const char *);
-
- CallFunction(
- F_Tok i_f2Call,
- INT16 i_nTokType );
-
- F_Tok GetF() const;
- INT16 TokType() const;
-
- private:
- // DATA
- F_Tok f2Call;
- INT16 nTokType;
-};
-
-
-/** One state within a ParseEnvironment.
-
- @template PE
- The owning ParseEnvironment.
-*/
-template <class PE>
-class PeStatus
-{
- public:
- typedef typename CallFunction<PE>::F_Tok F_Tok;
-
- PeStatus(
- PE & i_rMyPE,
- uintt i_nSize,
- F_Tok * i_pFuncArray,
- INT16 * i_pTokTypeArray,
- F_Tok i_pDefault );
- virtual ~PeStatus();
-
- virtual void Call_Handler(
- INT16 i_nTokTypeId,
- const char * i_sTokenText ) const;
-
- private:
- bool CheckForCall(
- uintt i_nPos,
- INT16 i_nTokTypeId,
- const char * i_sTokenText ) const;
-
- PE * pMyPE;
- std::vector< CallFunction<PE> >
- aBranches;
- F_Tok fDefault;
-};
-
-
-template <class PE>
-class PeStatusArray
-{
- public:
- typedef typename PE::E_State State;
-
- PeStatusArray();
- void InsertState(
- State i_ePosition,
- DYN PeStatus<PE> & let_drState );
- ~PeStatusArray();
-
- const PeStatus<PE> &
- operator[](
- State i_ePosition ) const;
-
- void SetCur(
- State i_eCurState );
- const PeStatus<PE> &
- Cur() const;
-
- private:
- DYN PeStatus<PE> * aStati[PE::size_of_states];
- State eState;
-};
-
-
-
-// IMPLEMENTATION
-
-
-// CallFunction
-
-template <class PE>
-CallFunction<PE>::CallFunction( F_Tok i_f2Call,
- INT16 i_nTokType )
- : f2Call(i_f2Call),
- nTokType(i_nTokType)
-{
-}
-
-template <class PE>
-inline typename CallFunction<PE>::F_Tok
-CallFunction<PE>::GetF() const
-{
- return f2Call;
-}
-
-template <class PE>
-inline INT16
-CallFunction<PE>::TokType() const
-{
- return nTokType;
-}
-
-
-
-// PeStatus
-
-template <class PE>
-PeStatus<PE>::PeStatus( PE & i_rMyPE,
- uintt i_nSize,
- F_Tok * i_pFuncArray,
- INT16 * i_pTokTypeArray,
- F_Tok i_fDefault )
- : pMyPE(&i_rMyPE),
- fDefault(i_fDefault)
-{
- aBranches.reserve(i_nSize);
- for ( uintt i = 0; i < i_nSize; ++i )
- {
-// csv_assert(i > 0 ? i_pTokTypeArray[i] > i_pTokTypeArray[i-1] : true);
- aBranches.push_back( CallFunction<PE>( i_pFuncArray[i], i_pTokTypeArray[i]) );
- } // end for
-}
-
-template <class PE>
-PeStatus<PE>::~PeStatus()
-{
-
-}
-
-template <class PE>
-void
-PeStatus<PE>::Call_Handler( INT16 i_nTokTypeId,
- const char * i_sTokenText ) const
-{
- uintt nSize = aBranches.size();
- uintt nPos = nSize / 2;
-
- if ( i_nTokTypeId < aBranches[nPos].TokType() )
- {
- for ( --nPos; intt(nPos) >= 0; --nPos )
- {
- if (CheckForCall(nPos, i_nTokTypeId, i_sTokenText))
- return;
- }
- }
- else
- {
- for ( ; nPos < nSize; ++nPos )
- {
- if (CheckForCall(nPos, i_nTokTypeId, i_sTokenText))
- return;
- }
- }
-
- (pMyPE->*fDefault)(i_sTokenText);
-}
-
-template <class PE>
-bool
-PeStatus<PE>::CheckForCall( uintt i_nPos,
- INT16 i_nTokTypeId,
- const char * i_sTokenText ) const
-{
- if ( aBranches[i_nPos].TokType() == i_nTokTypeId )
- {
- (pMyPE->*aBranches[i_nPos].GetF())(i_sTokenText);
- return true;
- }
- return false;
-}
-
-// PeStatusArray
-
-template <class PE>
-PeStatusArray<PE>::PeStatusArray()
- : eState(PE::size_of_states)
-{
- memset(aStati, 0, sizeof aStati);
-}
-
-template <class PE>
-void
-PeStatusArray<PE>::InsertState( State i_ePosition,
- DYN PeStatus<PE> & let_drState )
-{
- csv_assert(aStati[i_ePosition] == 0);
- aStati[i_ePosition] = &let_drState;
-}
-
-template <class PE>
-PeStatusArray<PE>::~PeStatusArray()
-{
- int i_max = PE::size_of_states;
- for (int i = 0; i < i_max; i++)
- {
- delete aStati[i];
- } // end for
-}
-
-template <class PE>
-inline const PeStatus<PE> &
-PeStatusArray<PE>::operator[]( State i_ePosition ) const
-{
- csv_assert( uintt(i_ePosition) < PE::size_of_states );
- csv_assert( aStati[i_ePosition] != 0 );
- return *aStati[i_ePosition];
-}
-
-template <class PE>
-inline void
-PeStatusArray<PE>::SetCur( State i_eCurState )
-{
- eState = i_eCurState;
-}
-
-
-template <class PE>
-const PeStatus<PE> &
-PeStatusArray<PE>::Cur() const
-{
- return (*this)[eState];
-}
-
-#define SEMPARSE_CREATE_STATUS(penv, state, default_function) \
- pStati->InsertState( state, \
- *new PeStatus<penv>( \
- *this, \
- sizeof( stateT_##state ) / sizeof (INT16), \
- stateF_##state, \
- stateT_##state, \
- &penv::default_function ) )
-
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */