summaryrefslogtreecommitdiff
path: root/autodoc/source/inc
diff options
context:
space:
mode:
Diffstat (limited to 'autodoc/source/inc')
-rw-r--r--autodoc/source/inc/adc_cl.hxx196
-rw-r--r--autodoc/source/inc/adc_msg.hxx144
-rw-r--r--autodoc/source/inc/docu_node_ids.hxx67
-rw-r--r--autodoc/source/inc/estack.hxx97
-rw-r--r--autodoc/source/inc/luxenum.hxx106
-rw-r--r--autodoc/source/inc/manip.hxx64
-rw-r--r--autodoc/source/inc/precomp.h69
-rw-r--r--autodoc/source/inc/prprpr.hxx61
-rw-r--r--autodoc/source/inc/tools/filecoll.hxx72
-rw-r--r--autodoc/source/inc/tools/tkpchars.hxx173
10 files changed, 1049 insertions, 0 deletions
diff --git a/autodoc/source/inc/adc_cl.hxx b/autodoc/source/inc/adc_cl.hxx
new file mode 100644
index 000000000000..895c5a4f2667
--- /dev/null
+++ b/autodoc/source/inc/adc_cl.hxx
@@ -0,0 +1,196 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: adc_cl.hxx,v $
+ * $Revision: 1.9 $
+ *
+ * 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_ADC_CL_HXX
+#define ADC_ADC_CL_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <cosv/comdline.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+namespace ary
+{
+ class Repository;
+}
+
+namespace autodoc
+{
+namespace command
+{
+ class Command;
+ class CreateHtml;
+ class SinceTagTransformationData;
+}
+
+
+/** Reads and runs an Autodoc command line.
+*/
+class CommandLine : public csv::CommandLine_Ifc
+{
+ public:
+ // LIFECYCLE
+ CommandLine();
+ ~CommandLine();
+ // OPERATIONS
+ int Run() const;
+
+ // INQUIRY
+ // debugging
+ bool DebugStyle_ShowText() const;
+ bool DebugStyle_ShowStoredObjects() const;
+ bool DebugStyle_ShowTokens() const;
+
+ // @since tags
+ bool DoesTransform_SinceTag() const;
+
+// /// @see command::SinceTagTransformationData::StripSinceTagValue()
+// bool Strip_SinceTagText(
+// String & io_sSinceTagValue ) const;
+
+ /// @see command::SinceTagTransformationData::DisplayOf()
+ const String & DisplayOf_SinceTagValue(
+ const String & i_sVersionNumber ) const;
+
+ // extern IDL links
+ const String & ExternRoot() const { return sExternRoot; }
+ const String & ExternNamespace() const { return sExternNamespace; }
+
+ bool CppUsed() const { return bCpp; }
+ bool IdlUsed() const { return bIdl; }
+
+ // ACCESS
+ static CommandLine &
+ Get_();
+ void Set_ExternRoot(
+ const String & i_s )
+ { sExternRoot = i_s; }
+ void Set_ExternNamespace(
+ const String & i_s )
+ { sExternNamespace = i_s; }
+ ary::Repository & TheRepository() const { csv_assert(pReposy != 0);
+ return *pReposy; }
+ void Set_CppUsed() { bCpp = true; }
+ void Set_IdlUsed() { bIdl = true; }
+
+ private:
+ // Interface cosv::CommandLine_Ifc:
+ virtual void do_Init(
+ int argc,
+ char * argv[] );
+ virtual void do_PrintUse() const;
+ virtual bool inq_CheckParameters() const;
+
+ // Locals
+ typedef StringVector::const_iterator opt_iter;
+ typedef std::vector< DYN command::Command* > CommandList;
+
+ void load_IncludedCommands(
+ StringVector & out,
+ const char * i_filePath );
+
+ void do_clVerbose(
+ opt_iter & it,
+ opt_iter itEnd );
+ void do_clParse(
+ opt_iter & it,
+ opt_iter itEnd );
+ void do_clCreateHtml(
+ opt_iter & it,
+ opt_iter itEnd );
+ void do_clSinceFile(
+ opt_iter & it,
+ opt_iter itEnd );
+
+// void do_clCreateXml(
+// opt_iter & it,
+// opt_iter itEnd );
+// void do_clLoad(
+// opt_iter & it,
+// opt_iter itEnd );
+// void do_clSave(
+// opt_iter & it,
+// opt_iter itEnd );
+
+ void sort_Commands();
+
+ // DATA
+ uintt nDebugStyle;
+ Dyn<command::SinceTagTransformationData>
+ pSinceTransformator;
+
+ CommandList aCommands;
+ bool bInitOk;
+ command::CreateHtml *
+ pCommand_CreateHtml;
+
+ String sExternRoot;
+ String sExternNamespace;
+
+ mutable Dyn<ary::Repository>
+ pReposy;
+ bool bCpp;
+ bool bIdl;
+
+ static CommandLine *
+ pTheInstance_;
+};
+
+
+
+// IMPLEMENTATION
+inline bool
+CommandLine::DebugStyle_ShowText() const
+ { return (nDebugStyle & 2) != 0; }
+inline bool
+CommandLine::DebugStyle_ShowStoredObjects() const
+ { return (nDebugStyle & 4) != 0; }
+inline bool
+CommandLine::DebugStyle_ShowTokens() const
+ { return (nDebugStyle & 1) != 0; }
+
+} // namespace autodoc
+
+
+inline bool
+DEBUG_ShowText()
+ { return autodoc::CommandLine::Get_().DebugStyle_ShowText(); }
+inline bool
+DEBUG_ShowStoring()
+ { return autodoc::CommandLine::Get_().DebugStyle_ShowStoredObjects(); }
+inline bool
+DEBUG_ShowTokens()
+ { return autodoc::CommandLine::Get_().DebugStyle_ShowTokens(); }
+
+#endif
+
diff --git a/autodoc/source/inc/adc_msg.hxx b/autodoc/source/inc/adc_msg.hxx
new file mode 100644
index 000000000000..996b6d7dc270
--- /dev/null
+++ b/autodoc/source/inc/adc_msg.hxx
@@ -0,0 +1,144 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: adc_msg.hxx,v $
+ * $Revision: 1.4 $
+ *
+ * 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_ADC_MSG_HXX
+#define ADC_ADC_MSG_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+namespace csv
+{
+ class File;
+}
+
+
+namespace autodoc
+{
+
+
+/** Gathers, sorts and displays (mainly diagnostic) messages to the
+ user of Autodoc.
+*/
+class Messages
+{
+ public:
+ // LIFECYCLE
+ Messages();
+ ~Messages();
+ // OPERATIONS
+ void WriteFile(
+ const String & i_sOutputFilePath);
+ // INQUIRY
+
+ // ACCESS
+ void Out_MissingDoc(
+ const String & i_sEntity,
+ const String & i_sFile,
+ uintt i_nLine);
+ void Out_ParseError(
+ const String & i_sFile,
+ uintt i_nLine);
+ void Out_InvalidConstSymbol(
+ const String & i_sText,
+ const String & i_sFile,
+ uintt i_nLine);
+ void Out_UnresolvedLink(
+ const String & i_sLinkText,
+ const String & i_sFile,
+ uintt i_nLine);
+ void Out_TypeVsMemberMisuse(
+ const String & i_sLinkText,
+ const String & i_sFile,
+ uintt i_nLine);
+
+ static Messages & The_();
+
+ private:
+ struct Location
+ {
+ String sFile;
+ uintt nLine;
+
+ Location(
+ const String & i_file,
+ uintt i_line)
+ : sFile(i_file),
+ nLine(i_line) {}
+ bool operator<(
+ const Location & i_other) const
+ { int cmp = csv::compare(sFile,i_other.sFile);
+ return cmp < 0
+ ? true
+ : cmp > 0
+ ? false
+ : nLine < i_other.nLine;
+ }
+ };
+
+ typedef std::map<Location,String> MessageMap;
+
+ // Locals
+ void AddValue(
+ MessageMap & o_dest,
+ const String & i_sText,
+ const String & i_sFile,
+ uintt i_nLine );
+ void WriteParagraph(
+ csv::File & o_out,
+ const MessageMap & i_source,
+ const String & i_title,
+ const String & i_firstIntermediateText );
+
+ // DATA
+ MessageMap aMissingDocs;
+ MessageMap aParseErrors;
+ MessageMap aInvalidConstSymbols;
+ MessageMap aUnresolvedLinks;
+ MessageMap aTypeVsMemberMisuses;
+};
+
+
+
+// IMPLEMENTATION
+
+
+} // namespace autodoc
+
+inline autodoc::Messages &
+TheMessages()
+{
+ return autodoc::Messages::The_();
+}
+
+#endif
diff --git a/autodoc/source/inc/docu_node_ids.hxx b/autodoc/source/inc/docu_node_ids.hxx
new file mode 100644
index 000000000000..c7b11c234cd4
--- /dev/null
+++ b/autodoc/source/inc/docu_node_ids.hxx
@@ -0,0 +1,67 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: docu_node_ids.hxx,v $
+ * $Revision: 1.3 $
+ *
+ * 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_DOCU_NODE_IDS_HXX
+#define ADC_DOCU_NODE_IDS_HXX
+
+
+
+namespace ary
+{
+namespace doc
+{
+namespace nodetype
+{
+enum E_Ids
+{
+
+ nt_none,
+ nt_OldCppDocu,
+ nt_OldIdlDocu
+
+
+
+
+
+
+
+
+
+};
+} // namespace nodetype
+} // namespace doc
+} // namespace ary
+
+namespace docnt = ::ary::doc::nodetype;
+
+
+
+
+#endif
diff --git a/autodoc/source/inc/estack.hxx b/autodoc/source/inc/estack.hxx
new file mode 100644
index 000000000000..b1946c174e7d
--- /dev/null
+++ b/autodoc/source/inc/estack.hxx
@@ -0,0 +1,97 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: estack.hxx,v $
+ * $Revision: 1.6 $
+ *
+ * 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 ARY_ESTACK_HXX
+#define ARY_ESTACK_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <slist>
+ // COMPONENTS
+ // PARAMETERS
+
+
+
+template <class ELEM>
+class EStack : private std::slist<ELEM>
+{
+ private:
+ typedef std::slist<ELEM> base;
+ const base & Base() const { return *this; }
+ base & Base() { return *this; }
+
+ public:
+ typedef ELEM value_type;
+ typedef typename std::slist<ELEM>::size_type size_type;
+
+ // LIFECYCLE
+ EStack() {}
+ EStack(
+ const EStack & i_rStack )
+ : base( (const base &)(i_rStack) ) {}
+ ~EStack() {}
+ // OPERATORS
+ EStack & operator=(
+ const EStack & i_rStack )
+ { base::operator=( i_rStack.Base() );
+ return *this; }
+ bool operator==(
+ const EStack<ELEM> &
+ i_r2 ) const
+ { return std::operator==( Base(), this->i_rStack.Base() ); }
+ bool operator<(
+ const EStack<ELEM> &
+ i_r2 ) const
+ { return std::operator<( Base(), this->i_rStack.Base() ); }
+ // OPERATIONS
+ void push(
+ const value_type & i_rElem )
+ { base::push_front(i_rElem); }
+ void pop() { base::pop_front(); }
+ void erase_all() { while (NOT empty()) pop(); }
+
+ // INQUIRY
+ const value_type & top() const { return base::front(); }
+ size_type size() const { return base::size(); }
+ bool empty() const { return base::empty(); }
+
+ // ACCESS
+ value_type & top() { return base::front(); }
+};
+
+
+
+// IMPLEMENTATION
+
+
+#endif
+
diff --git a/autodoc/source/inc/luxenum.hxx b/autodoc/source/inc/luxenum.hxx
new file mode 100644
index 000000000000..eee69d734f40
--- /dev/null
+++ b/autodoc/source/inc/luxenum.hxx
@@ -0,0 +1,106 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: luxenum.hxx,v $
+ * $Revision: 1.7 $
+ *
+ * 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 UDM_LUXENUM_HXX
+#define UDM_LUXENUM_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include <map>
+#include <algorithm>
+
+
+namespace lux
+{
+
+typedef std::map< intt, String > EnumValueMap;
+
+
+template <class DIFF>
+class Enum // : public Template_Base
+{
+ public:
+ // TYPES
+ typedef Enum< DIFF > self;
+
+ // LIFECYCLE
+ Enum(
+ DIFF i_nValue,
+ const char * i_sText )
+ : nValue(i_nValue) { Values_()[nValue] = i_sText;
+ // Sequence_().insert(
+ // std::lower_bound( Sequence_().begin(), Sequence_().end(), i_nValue ),
+ // i_nValue );
+ }
+ Enum(
+ DIFF i_nValue )
+ : nValue(i_nValue) { ; }
+ Enum(
+ intt i_nValue = 0 )
+ : nValue(i_nValue) { if ( NOT CheckIntt(i_nValue) ) { csv_assert(false); } }
+ Enum(
+ const self & i_rEnum )
+ : nValue(i_rEnum.nValue) {;}
+
+ self & operator=(
+ DIFF i_nValue )
+ { nValue = i_nValue; return *this; }
+ self & operator=(
+ intt i_nValue )
+ { if ( CheckIntt(i_nValue) ) {nValue = DIFF(i_nValue);}
+ else {csv_assert(false);} return *this; }
+ self & operator=(
+ const self & i_rEnum )
+ { nValue = i_rEnum.nValue; return *this; }
+ operator DIFF() const { return DIFF(nValue); }
+
+ DIFF operator()() const { return nValue; }
+ const String & Text() const { return Values_()[nValue]; }
+
+ private:
+ static EnumValueMap &
+ Values_();
+ bool CheckIntt(
+ intt i_nNumber )
+ { return Values_().find(i_nNumber) != Values_().end(); }
+ // DATA
+ intt nValue;
+};
+
+
+
+
+} // namespace lux
+#endif
+
diff --git a/autodoc/source/inc/manip.hxx b/autodoc/source/inc/manip.hxx
new file mode 100644
index 000000000000..afa03e9be1b5
--- /dev/null
+++ b/autodoc/source/inc/manip.hxx
@@ -0,0 +1,64 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: manip.hxx,v $
+ * $Revision: 1.4 $
+ *
+ * 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 ARY_MANIP_HXX
+#define ARY_MANIP_HXX
+
+template <class XY >
+class Manipulator
+{
+ public:
+ virtual ~Manipulator() {}
+
+ void operator()(
+ XY & io_r ) const
+ { op_fcall(io_r); }
+ private:
+ virtual void op_fcall(
+ XY & io_r ) const = 0;
+};
+
+template <class XY >
+class Const_Manipulator
+{
+ public:
+ virtual ~Const_Manipulator() {}
+
+ void operator()(
+ const XY & io_r ) const
+ { op_fcall(io_r); }
+ private:
+ virtual void op_fcall(
+ const XY & io_r ) const = 0;
+};
+
+
+#endif
+
diff --git a/autodoc/source/inc/precomp.h b/autodoc/source/inc/precomp.h
new file mode 100644
index 000000000000..ae288a3e8d1c
--- /dev/null
+++ b/autodoc/source/inc/precomp.h
@@ -0,0 +1,69 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: precomp.h,v $
+ * $Revision: 1.8 $
+ *
+ * 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_PRECOMP_H_06071998
+#define ADC_PRECOMP_H_06071998
+
+
+// For en/disabling csv_assertions:
+#ifndef DEBUG
+#define CSV_NO_ASSERTIONS
+#endif
+
+#include <cosv/csv_precomp.h>
+
+#include <vector>
+#include <map>
+#include <set>
+
+
+
+// Shortcuts to access csv::-types:
+using csv::String;
+using csv::StringVector;
+using csv::StreamStr;
+using csv::c_str;
+typedef csv::StreamStrLock StreamLock;
+
+
+
+inline std::ostream &
+Cout() { return std::cout; }
+inline std::ostream &
+Cerr() { return std::cerr; }
+
+inline csv::F_FLUSHING_FUNC
+Endl() { return csv::Endl; }
+inline csv::F_FLUSHING_FUNC
+Flush() { return csv::Flush; }
+
+
+
+
+#endif
diff --git a/autodoc/source/inc/prprpr.hxx b/autodoc/source/inc/prprpr.hxx
new file mode 100644
index 000000000000..9f67732002b4
--- /dev/null
+++ b/autodoc/source/inc/prprpr.hxx
@@ -0,0 +1,61 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: prprpr.hxx,v $
+ * $Revision: 1.3 $
+ *
+ * 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 ARY_CPP_PRPRPR_HXX // PRePRocessorPRocessing
+#define ARY_CPP_PRPRPR_HXX
+
+
+
+// Implemented in autodoc/source/parser/cpp/defdescr.cxx .
+
+bool CheckForOperator(
+ bool & o_bStringify,
+ bool & o_bConcatenate,
+ const String & i_sTextItem );
+void Do_bConcatenate(
+ csv::StreamStr & o_rText,
+ bool & io_bConcatenate );
+void Do_bStringify_begin(
+ csv::StreamStr & o_rText,
+ bool i_bStringify );
+void Do_bStringify_end(
+ csv::StreamStr & o_rText,
+ bool & io_bStringify );
+bool HandleOperatorsBeforeTextItem( /// @return true, if text item is done here
+ csv::StreamStr & o_rText,
+ bool & io_bStringify,
+ bool & io_bConcatenate,
+ const String & i_sTextItem );
+
+
+
+
+#endif
diff --git a/autodoc/source/inc/tools/filecoll.hxx b/autodoc/source/inc/tools/filecoll.hxx
new file mode 100644
index 000000000000..028001f777c8
--- /dev/null
+++ b/autodoc/source/inc/tools/filecoll.hxx
@@ -0,0 +1,72 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: filecoll.hxx,v $
+ * $Revision: 1.4 $
+ *
+ * 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_FILECOLL_HXX
+#define ADC_FILECOLL_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <autodoc/filecoli.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+
+class FileCollector : public autodoc::FileCollector_Ifc
+{
+ public:
+ // LIFECYCLE
+ FileCollector(
+ uintt i_nRoughNrOfFiles = 0 );
+
+ // OPERATIONS
+ virtual uintt AddFilesFrom(
+ const char * i_sRootDir,
+ const char * i_sFilter,
+ E_SearchMode i_eSearchMode );
+ virtual uintt AddFile(
+ const char * i_sFilePath );
+ virtual void EraseAll();
+
+ // INQUIRY
+ virtual const_iterator
+ Begin() const;
+ virtual const_iterator
+ End() const;
+ virtual uintt Size() const;
+
+ private:
+ // DATA
+ StringVector aFoundFiles;
+};
+
+
+#endif
+
diff --git a/autodoc/source/inc/tools/tkpchars.hxx b/autodoc/source/inc/tools/tkpchars.hxx
new file mode 100644
index 000000000000..03cc774c4dbe
--- /dev/null
+++ b/autodoc/source/inc/tools/tkpchars.hxx
@@ -0,0 +1,173 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: tkpchars.hxx,v $
+ * $Revision: 1.4 $
+ *
+ * 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_TKPCHARS_HXX
+#define ADC_TKPCHARS_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETRS
+#include <adc_cl.hxx>
+#include <stack>
+
+
+
+/** @descr
+
+ dpSource:
+
+ 1||||||||||||||||||||||a||||||||||||b|||c||||||||||||||||||||...
+
+
+ 1 := first character of Sourcecode.
+ a := nLastTokenStart, there starts the last cut token.
+ b := nLastCut, there is a '\0'-char which marks the end of
+ the last cut token. The original character at b is stored
+ in cCharAtLastCut and will replace the '\0'-char, when the
+ next token is cut.
+ c := The current cursor position.
+
+
+ @needs cosv.lib
+
+ @use This class can be used by any parser to get the chars of a
+ text one by one and separate them to tokens.
+**/
+
+class CharacterSource
+{
+ public:
+ // LIFECYCLE
+ CharacterSource();
+ ~CharacterSource();
+
+ // OPERATIONS
+ /** Loads the complete contents of in_rSource into the classes private memory.
+ If in_rSource is a file, it has to be open of course.
+ After loading the text, the CurChar() is set on the begin of the text.
+ **/
+ void LoadText(
+ csv::bstream & io_rSource);
+
+ void InsertTextAtCurPos(
+ const char * i_sText2Insert );
+
+ /// @return CurChar() after moving forward one char.
+ char MoveOn();
+ /** @return
+ The token which starts at the char which was CurChar(), when
+ CutToken() was called the last time - or at the beginning of the text.
+ The token ends by the CurChar() being replaced by a '\0'.
+
+ Value is valid until the next call of CutToken() or ~CharacterSource().
+ **/
+ const char * CutToken();
+
+ // INQUIRY
+ char CurChar() const;
+ /// @return The result of the last CutToken(). Or NULL, if there was none yet.
+ const char * CurToken() const;
+
+ // INQUIRY
+ /// @return true, if
+ bool IsFinished() const;
+
+ private:
+ struct S_SourceState
+ {
+ DYN char * dpSource;
+ intt nSourceSize;
+
+ intt nCurPos;
+ intt nLastCut;
+ intt nLastTokenStart;
+ char cCharAtLastCut;
+
+ S_SourceState(
+ DYN char * dpSource,
+ intt nSourceSize,
+ intt nCurPos,
+ intt nLastCut,
+ intt nLastTokenStart,
+ char cCharAtLastCut );
+ };
+
+ void BeginSource();
+ intt CurPos() const;
+ char MoveOn_OverStack();
+
+ // DATA
+ std::stack< S_SourceState >
+ aSourcesStack;
+
+ DYN char * dpSource;
+ intt nSourceSize;
+
+ intt nCurPos;
+ intt nLastCut;
+ intt nLastTokenStart;
+ char cCharAtLastCut;
+};
+
+
+inline char
+CharacterSource::MoveOn()
+ {
+if (DEBUG_ShowText())
+{
+ Cerr() << char(dpSource[nCurPos+1]) << Flush();
+}
+ if ( nCurPos < nSourceSize-1 )
+ return dpSource[++nCurPos];
+ else if ( aSourcesStack.size() > 0 )
+ return MoveOn_OverStack();
+ else
+ return dpSource[nCurPos = nSourceSize];
+ }
+inline char
+CharacterSource::CurChar() const
+ { return nCurPos != nLastCut ? dpSource[nCurPos] : cCharAtLastCut; }
+inline const char *
+CharacterSource::CurToken() const
+ { return &dpSource[nLastTokenStart]; }
+inline bool
+CharacterSource::IsFinished() const
+ { return nCurPos >= nSourceSize; }
+inline intt
+CharacterSource::CurPos() const
+ { return nCurPos; }
+
+
+
+
+#endif
+
+