summaryrefslogtreecommitdiff
path: root/autodoc/source/parser/cpp/preproc.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'autodoc/source/parser/cpp/preproc.cxx')
-rw-r--r--autodoc/source/parser/cpp/preproc.cxx233
1 files changed, 0 insertions, 233 deletions
diff --git a/autodoc/source/parser/cpp/preproc.cxx b/autodoc/source/parser/cpp/preproc.cxx
deleted file mode 100644
index 856736b96442..000000000000
--- a/autodoc/source/parser/cpp/preproc.cxx
+++ /dev/null
@@ -1,233 +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.
- *
- ************************************************************************/
-
-#include <precomp.h>
-#include "preproc.hxx"
-
-
-// NOT FULLY DEFINED SERVICES
-#include <cosv/tpl/tpltools.hxx>
-#include "all_toks.hxx"
-#include "defdescr.hxx"
-#include <tools/tkpchars.hxx>
-#include "c_rcode.hxx"
-
-
-namespace cpp
-{
-
-
-PreProcessor::F_TOKENPROC PreProcessor::aTokProcs[PreProcessor::state_MAX] =
- {
- &PreProcessor::On_plain,
- &PreProcessor::On_expect_macro_bracket_left,
- &PreProcessor::On_expect_macro_param
- };
-
-
-PreProcessor::PreProcessor()
- : pCppExplorer(0),
- pSourceText(0),
- pCurValidDefines(0),
- // aTokens,
- eState(plain),
- pCurMacro(0),
- dpCurMacroName(0),
- // aCurMacroParams,
- aCurParamText(60000),
- nBracketInParameterCounter(0)
- // aBlockedMacroNames
-{
-}
-
-PreProcessor::~PreProcessor()
-{
-}
-
-void
-PreProcessor::AssignPartners( CodeExplorer & o_rCodeExplorer,
- CharacterSource & o_rCharSource,
- const MacroMap & i_rCurValidDefines )
-{
- pCppExplorer = &o_rCodeExplorer;
- pSourceText = &o_rCharSource;
- pCurValidDefines = &i_rCurValidDefines;
-}
-
-void
-PreProcessor::Process_Token( cpp::Token & let_drToken )
-{
- csv_assert(pCppExplorer != 0); // Implies pSourceText and pCurValidDefines.
-
- (this->*aTokProcs[eState])(let_drToken);
-}
-
-void
-PreProcessor::On_plain( cpp::Token & let_drToken )
-{
- if ( let_drToken.TypeId() == Tid_Identifier )
- {
- if (CheckForDefine(let_drToken))
- return;
- }
-
- pCppExplorer->Process_Token(let_drToken);
-}
-
-void
-PreProcessor::On_expect_macro_bracket_left( cpp::Token & let_drToken )
-{
- if ( let_drToken.TypeId() == Tid_Bracket_Left )
- {
- aCurParamText.seekp(0);
- eState = expect_macro_param;
- }
- else
- {
- pCppExplorer->Process_Token(*dpCurMacroName);
- dpCurMacroName = 0;
- pCppExplorer->Process_Token(let_drToken);
- eState = plain;
- }
-}
-
-void
-PreProcessor::On_expect_macro_param( cpp::Token & let_drToken )
-{
- if ( let_drToken.TypeId() == Tid_Bracket_Left )
- nBracketInParameterCounter++;
- else if ( let_drToken.TypeId() == Tid_Bracket_Right )
- {
- if ( nBracketInParameterCounter > 0 )
- nBracketInParameterCounter--;
- else
- {
- if ( NOT csv::no_str(aCurParamText.c_str()) )
- {
- aCurMacroParams.push_back( String(aCurParamText.c_str()) );
- }
- csv_assert( aCurMacroParams.size() == pCurMacro->ParamCount() );
-
- InterpretMacro();
- eState = plain;
- return;
- }
- }
- else if ( let_drToken.TypeId() == Tid_Comma AND nBracketInParameterCounter == 0 )
- {
- aCurMacroParams.push_back( String (aCurParamText.c_str()) );
- aCurParamText.seekp(0);
- return;
- }
-
- // KORR_FUTURE:
- // If in future whitespace is parsed also, that should match exactly and the
- // safety spaces, " ", here should be removed.
- aCurParamText << let_drToken.Text() << " ";
-}
-
-bool
-PreProcessor::CheckForDefine( cpp::Token & let_drToken )
-{
- String sTokenText(let_drToken.Text());
- pCurMacro = csv::value_from_map( *pCurValidDefines, sTokenText );
- if (pCurMacro == 0 )
- return false;
- for ( StringVector::const_iterator it = aBlockedMacroNames.begin();
- it != aBlockedMacroNames.end();
- ++it )
- {
- if ( strcmp( (*it).c_str(), let_drToken.Text() ) == 0 )
- return false;
- }
-
- if ( pCurMacro->DefineType() == DefineDescription::type_define )
- {
- delete &let_drToken;
-
- aCurParamText.seekp(0);
- pCurMacro->GetDefineText(aCurParamText);
-
- if ( aCurParamText.tellp() > 1 )
- pSourceText->InsertTextAtCurPos(aCurParamText.c_str());
- }
- else // ( pCurMacro->DefineType() == DefineDescription::type_macro )
- {
- dpCurMacroName = &let_drToken;
- eState = expect_macro_bracket_left;
- csv::erase_container( aCurMacroParams );
- aCurParamText.seekp(0);
- nBracketInParameterCounter = 0;
- } // endif
-
- return true;
-}
-
-void
-PreProcessor::UnblockMacro( const char * i_sMacroName )
-{
- for ( StringVector::iterator it = aBlockedMacroNames.begin();
- it != aBlockedMacroNames.end();
- ++it )
- {
- if ( strcmp( (*it), i_sMacroName ) == 0 )
- {
- aBlockedMacroNames.erase(it);
- break;
- }
- } /// end for
-}
-
-void
-PreProcessor::InterpretMacro()
-{
- aCurParamText.seekp(0);
- pCurMacro->GetMacroText(aCurParamText, aCurMacroParams);
-
- if ( NOT csv::no_str(aCurParamText.c_str()) )
- {
- aCurParamText.seekp(-1, csv::cur);
- aCurParamText << " #unblock-" << dpCurMacroName->Text() << " ";
-
- pSourceText->InsertTextAtCurPos(aCurParamText.c_str());
- String sCurMacroName(dpCurMacroName->Text());
- aBlockedMacroNames.insert( aBlockedMacroNames.begin(), sCurMacroName );
- }
-
- delete dpCurMacroName;
- dpCurMacroName = 0;
- pCurMacro = 0;
- csv::erase_container(aCurMacroParams);
- aCurParamText.seekp(0);
-}
-
-
-} // end namespace cpp
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */