diff options
Diffstat (limited to 'autodoc/inc/autodoc')
-rw-r--r-- | autodoc/inc/autodoc/displaying.hxx | 78 | ||||
-rw-r--r-- | autodoc/inc/autodoc/dsp_html_std.hxx | 216 | ||||
-rw-r--r-- | autodoc/inc/autodoc/dsp_txt_flist.hxx | 67 | ||||
-rw-r--r-- | autodoc/inc/autodoc/filecoli.hxx | 74 | ||||
-rw-r--r-- | autodoc/inc/autodoc/parsing.hxx | 80 | ||||
-rw-r--r-- | autodoc/inc/autodoc/prs_code.hxx | 79 | ||||
-rw-r--r-- | autodoc/inc/autodoc/prs_docu.hxx | 61 | ||||
-rw-r--r-- | autodoc/inc/autodoc/x_parsing.hxx | 76 |
8 files changed, 731 insertions, 0 deletions
diff --git a/autodoc/inc/autodoc/displaying.hxx b/autodoc/inc/autodoc/displaying.hxx new file mode 100644 index 000000000000..2e629b2927b5 --- /dev/null +++ b/autodoc/inc/autodoc/displaying.hxx @@ -0,0 +1,78 @@ +/* -*- 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 AUTODOC_DISPLAYING_HXX +#define AUTODOC_DISPLAYING_HXX + + +namespace display +{ + class CorporateFrame; +} + + + +namespace autodoc +{ + +class HtmlDisplay_UdkStd; +class HtmlDisplay_Idl_Ifc; + +// class TextDisplay_FunctionList_Ifc; + + +/** Interface for parsing code of a programming language and + delivering the information into an Autodoc Repository. +**/ +class DisplayToolsFactory_Ifc +{ + public: + virtual ~DisplayToolsFactory_Ifc() {} + static DisplayToolsFactory_Ifc & + GetIt_(); + +// virtual DYN autodoc::TextDisplay_FunctionList_Ifc * +// Create_TextDisplay_FunctionList() const = 0; + + virtual DYN autodoc::HtmlDisplay_UdkStd * + Create_HtmlDisplay_UdkStd() const = 0; + virtual DYN autodoc::HtmlDisplay_Idl_Ifc * + Create_HtmlDisplay_Idl() const = 0; + + virtual const display::CorporateFrame & + Create_StdFrame() const = 0; +}; + + +} // namespace autodoc + + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/autodoc/inc/autodoc/dsp_html_std.hxx b/autodoc/inc/autodoc/dsp_html_std.hxx new file mode 100644 index 000000000000..76f7f89915b2 --- /dev/null +++ b/autodoc/inc/autodoc/dsp_html_std.hxx @@ -0,0 +1,216 @@ +/* -*- 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 AUTODOC_DSP_HTML_STD_HXX +#define AUTODOC_DSP_HTML_STD_HXX + + + +namespace ary +{ + namespace cpp + { + class Gate; + } + namespace idl + { + class Gate; + } +} + +namespace display +{ + class CorporateFrame; +} + + +namespace autodoc +{ + + +class HtmlDisplay_UdkStd +{ + public: + virtual ~HtmlDisplay_UdkStd() {} + + /** Displays the names of several C++ code entities within the + given namespace (or the global namespace as default). All + subnamespaces are included. + + Output has following format: + + ========================================================================= + OutputDirectory + index.html + def-all.html + prj\ + sal\ + index.html // Overview about project + + f-FileName[1,2,...] // Overview about file + f-OtherFileName[1,2,...] + ... + def-FileName[1,2,...] // #defines and macros in file + def-OtherFileName[1,2,...] + ... + rtl\ + ... + cppu\ + ... + cppuhelper\ + ... + ... + ix\ + ix-a.html + ix-b.html + ... + ix-z.html + ix-_.html + ix-other.html + + cpp\ + index.html // Overview about global namespace + + Namespace_A\ + Namespace_C\ + index.html // Overview about namespace C + ... + ... + + index.html // Overview about namespace A + + c-ClassName_X.html // Description of class + ... + e-EnumName.html // Description of enum + ... + t-TypedefName.html // Description of typedef + ... + o-Filename.html // Descriptions of operations in this file in this namespace + ... + d-Filename.html // Descriptions of data in this file in this namespace + ... + + ClassName_X\ + c-ClassName_Y.html + e-EnumName.html + t-TypedefName.html + o.html // Descriptions of operations in class X + d.html // Descriptions of data in class X + + ClassName_Y\ + ... + ... + + idl\ + ... + java\ + ... + ========================================================================= + + + @param i_sOutputDirectory + Directory for output. Path must be given in correct + syntax for the actual operating system without final + path delimiter. If this is 0 or "", the current + working directory is chosen. + @param i_rAryGate + The access to the Autodoc Repository. + @param i_rLayout + Gives parameters for the appearance of the HTML output. + @param i_pProjectList + If this is != 0, then only code entities which are declared + in this projects are displayed. + */ + void Run( + const char * i_sOutputDirectory, + const ary::cpp::Gate & + i_rAryGate, + const display::CorporateFrame & + i_rLayout ); + private: + virtual void do_Run( + const char * i_sOutputDirectory, + const ary::cpp::Gate & + i_rAryGate, + const display::CorporateFrame & + i_rLayout ) = 0; +}; + +// IMPLEMENTATION + +inline void +HtmlDisplay_UdkStd::Run( const char * i_sOutputDirectory, + const ary::cpp::Gate & i_rAryGate, + const display::CorporateFrame & i_rLayout ) +{ + do_Run( i_sOutputDirectory, i_rAryGate, i_rLayout ); +} + + + +// class HtmlDisplay_Idl_Ifc + +class HtmlDisplay_Idl_Ifc +{ + public: + virtual ~HtmlDisplay_Idl_Ifc() {} + + void Run( + const char * i_sOutputDirectory, + const ary::idl::Gate & + i_rAryGate, + const display::CorporateFrame & + i_rLayout ); + private: + virtual void do_Run( + const char * i_sOutputDirectory, + const ary::idl::Gate & + i_rAryGate, + const display::CorporateFrame & + i_rLayout ) = 0; +}; + + + + +// IMPLEMENTATION +inline void +HtmlDisplay_Idl_Ifc::Run( const char * i_sOutputDirectory, + const ary::idl::Gate & i_rAryGate, + const display::CorporateFrame & i_rLayout ) +{ + do_Run( i_sOutputDirectory, i_rAryGate, i_rLayout ); +} + + + + +} // namespace autodoc +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/autodoc/inc/autodoc/dsp_txt_flist.hxx b/autodoc/inc/autodoc/dsp_txt_flist.hxx new file mode 100644 index 000000000000..6563cda9ac9c --- /dev/null +++ b/autodoc/inc/autodoc/dsp_txt_flist.hxx @@ -0,0 +1,67 @@ +/* -*- 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 AUTODOC_DSP_TXT_FLIST_HXX +#define AUTODOC_DSP_TXT_FLIST_HXX + +#include <iostream> + + +namespace ary +{ + namespace cpp + { + class DisplayGate; + } +} + + +namespace autodoc +{ + +class TextDisplay_FunctionList_Ifc +{ + public: + virtual ~TextDisplay_FunctionList_Ifc() {} + + /** Displays the names of all C++ functions and methods within the + given namespace (or the global namespace as default). All + subnamespaces are included. + */ + virtual void Run( + ostream & o_rStream, + const ary::cpp::DisplayGate & + i_rAryGate ) = 0; /// If i_pNamespace == 0, the global namespace is displayed. +}; + + +} // namespace autodoc + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/autodoc/inc/autodoc/filecoli.hxx b/autodoc/inc/autodoc/filecoli.hxx new file mode 100644 index 000000000000..d9e0f36df313 --- /dev/null +++ b/autodoc/inc/autodoc/filecoli.hxx @@ -0,0 +1,74 @@ +/* -*- 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_PARSER_FILECOLI_HXX +#define ADC_PARSER_FILECOLI_HXX + + +namespace autodoc +{ + +class FileCollector_Ifc +{ + public: + // TYPES + typedef StringVector::const_iterator const_iterator; + + enum E_SearchMode + { + flat, + recursive + }; + + // LIFECYCLE + virtual ~FileCollector_Ifc() {} + + // OPERATIONS + virtual uintt AddFilesFrom( + const char * i_sRootDir, + const char * i_sFilter, + E_SearchMode i_eSearchMode ) = 0; + virtual uintt AddFile( + const char * i_sFilePath ) = 0; + virtual void EraseAll() = 0; + + // INQUIRY + virtual const_iterator + Begin() const = 0; + virtual const_iterator + End() const = 0; + virtual uintt Size() const = 0; +}; + + +} // namespace autodoc + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/autodoc/inc/autodoc/parsing.hxx b/autodoc/inc/autodoc/parsing.hxx new file mode 100644 index 000000000000..ad30c93da620 --- /dev/null +++ b/autodoc/inc/autodoc/parsing.hxx @@ -0,0 +1,80 @@ +/* -*- 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 AUTODOC_PARSING_HXX +#define AUTODOC_PARSING_HXX + + + +namespace autodoc +{ + +class CodeParser_Ifc; +class DocumentationParser_Ifc; +class FileCollector_Ifc; + + +/** Interface for parsing code of a programming language and + delivering the information into an Autodoc Repository. +**/ +class ParseToolsFactory_Ifc +{ + public: + virtual ~ParseToolsFactory_Ifc() {} + static ParseToolsFactory_Ifc & + GetIt_(); + + virtual DYN autodoc::CodeParser_Ifc * + Create_Parser_Cplusplus() const = 0; + +// virtual DYN autodoc::CodeParser_Ifc * +// CreateParser_UnoIDL() const = 0; +// virtual DYN autodoc::CodeParser_Ifc * +// CreateParser_Java() const = 0; +// virtual DYN autodoc::CodeParser_Ifc * +// CreateParser_StoredProcedures() const = 0; + + virtual DYN autodoc::DocumentationParser_Ifc * + Create_DocuParser_AutodocStyle() const = 0; + +// virtual DYN autodoc::DocumentationParser_Ifc * +// CreateDocuParser_StarOfficeAPIStyle() const = 0; + + virtual DYN autodoc::FileCollector_Ifc * + Create_FileCollector( + uintt i_nEstimatedNrOfFiles ) const = 0; /// Should be somewhat larger than the maximal estimated number of files. +}; + + +} // namespace autodoc + + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/autodoc/inc/autodoc/prs_code.hxx b/autodoc/inc/autodoc/prs_code.hxx new file mode 100644 index 000000000000..d02ce373f1d7 --- /dev/null +++ b/autodoc/inc/autodoc/prs_code.hxx @@ -0,0 +1,79 @@ +/* -*- 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 AUTODOC_PRS_CODE_HXX +#define AUTODOC_PRS_CODE_HXX + + + +namespace csv +{ + namespace ploc + { + class Path; + } +} + +namespace ary +{ + class Repository; +} + +namespace autodoc +{ + class FileCollector_Ifc; + class DocumentationParser_Ifc; + + + + +/** Interface for parsing code of a programming language and + delivering the information into an Autodoc Repository. +**/ +class CodeParser_Ifc +{ + public: + virtual ~CodeParser_Ifc() {} + + virtual void Setup( + ary::Repository & o_rRepository, + const autodoc::DocumentationParser_Ifc & + i_rDocumentationInterpreter ) = 0; + + virtual void Run( + const autodoc::FileCollector_Ifc & + i_rFiles ) = 0; +}; + + + + +} // namespace autodoc +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/autodoc/inc/autodoc/prs_docu.hxx b/autodoc/inc/autodoc/prs_docu.hxx new file mode 100644 index 000000000000..5e60023c9a10 --- /dev/null +++ b/autodoc/inc/autodoc/prs_docu.hxx @@ -0,0 +1,61 @@ +/* -*- 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_PARSER_PRS_DOCU_HXX +#define ADC_PARSER_PRS_DOCU_HXX + + + +// USED SERVICES + // BASE CLASSES + // COMPONENTS + // PARAMETERS + + + +namespace autodoc +{ + +class TkpDocuContext; + +class DocumentationParser_Ifc +{ + public: + virtual ~DocumentationParser_Ifc() {} + + virtual DYN TkpDocuContext * + Create_DocuContext() const = 0; +}; + + +} // namespace autodoc + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/autodoc/inc/autodoc/x_parsing.hxx b/autodoc/inc/autodoc/x_parsing.hxx new file mode 100644 index 000000000000..f797309592ae --- /dev/null +++ b/autodoc/inc/autodoc/x_parsing.hxx @@ -0,0 +1,76 @@ +/* -*- 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 AUTODOC_X_PARSING_HXX +#define AUTODOC_X_PARSING_HXX + +// USED SERVICES +#include <iostream> + + + + +namespace autodoc +{ + +class X_Parser_Ifc +{ + public: + // TYPES + enum E_Event + { + x_Any = 0, + x_InvalidChar, + x_UnexpectedToken, + x_UnexpectedEOF, + x_UnspecifiedSyntaxError + }; + + // LIFECYCLE + virtual ~X_Parser_Ifc() {} + + // INQUIRY + virtual E_Event GetEvent() const = 0; + virtual void GetInfo( + std::ostream & o_rOutputMedium ) const = 0; +}; + + +} // namespace autodoc + +std::ostream & operator<<( + std::ostream & o_rOut, + const autodoc::X_Parser_Ifc & + i_rException ); + + + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |