diff options
author | Nikolai Pretzell <np@openoffice.org> | 2002-03-08 13:45:36 +0000 |
---|---|---|
committer | Nikolai Pretzell <np@openoffice.org> | 2002-03-08 13:45:36 +0000 |
commit | d566f38f8a38739595fd8edb89eaa48c1c4b8f9b (patch) | |
tree | cbf47b13e83d60334fcd68872bd4c26791a39a0e /autodoc/inc | |
parent | 1710683406e72de5458733231636e8fdb2c2c0bc (diff) |
Moving Autodoc to OpenOffice.org, module autodoc: sourcecode repository and documentation generator
Diffstat (limited to 'autodoc/inc')
42 files changed, 6225 insertions, 0 deletions
diff --git a/autodoc/inc/ary/ary.hxx b/autodoc/inc/ary/ary.hxx new file mode 100644 index 000000000000..85210c470239 --- /dev/null +++ b/autodoc/inc/ary/ary.hxx @@ -0,0 +1,158 @@ +/************************************************************************* + * + * $RCSfile: ary.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:13 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_ARY_HXX +#define ARY_ARY_HXX + + +// USED SERVICES + // BASE CLASSES + // COMPONENTS + // PARAMETERS + + +namespace ary +{ + namespace cpp + { + class RwGate; + class DisplayGate; + } + namespace uidl + { + class Gate; + } +// namespace java +// { +// class RwGate; +// } + + class IdGenerator; + +/** Starting point for work with the repository. + + @short + From here you get handles for all work on the + repository. + + @descr + In the whole repository interface the abbreviation + "Ce" means "CodeEntity". A CodeEntity is + one of the items that can be found in the repository + and that is able to have a documentation. +**/ + +class Repository +{ + public: + // LIFECYCLE + virtual ~Repository() { } + static Repository & Create_( + const udmstri & i_sName, + DYN IdGenerator * let_dpIds ); /// May be 0. Then a default is used. + static Repository & The_(); + static void Destroy_(); /// Destroys the Repository. + + // INQUIRY + const cpp::DisplayGate & + DisplayGate_Cpp() const; + const udmstri & Name() const; + + // ACCESS + cpp::RwGate & RwGate_Cpp(); + uidl::Gate & RwGate_Idl(); + + + private: + virtual const cpp::DisplayGate & + inq_DisplayGate_Cpp() const = 0; + virtual const udmstri & + inq_Name() const = 0; + virtual cpp::RwGate & + access_RwGate_Cpp() = 0; + virtual uidl::Gate & + access_RwGate_Idl() = 0; +}; + + + +// IMPLEMENTATION +inline const cpp::DisplayGate & +Repository::DisplayGate_Cpp() const + { return inq_DisplayGate_Cpp(); } +inline const udmstri & +Repository::Name() const + { return inq_Name(); } +inline cpp::RwGate & +Repository::RwGate_Cpp() + { return access_RwGate_Cpp(); } +inline uidl::Gate & +Repository::RwGate_Idl() + { return access_RwGate_Idl(); } + + +} // namespace ary + + +#endif + + + diff --git a/autodoc/inc/ary/ary_disp.hxx b/autodoc/inc/ary/ary_disp.hxx new file mode 100644 index 000000000000..292b49c24599 --- /dev/null +++ b/autodoc/inc/ary/ary_disp.hxx @@ -0,0 +1,145 @@ +/************************************************************************* + * + * $RCSfile: ary_disp.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:13 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_ARY_DISP_HXX +#define ARY_ARY_DISP_HXX + +// USED SERVICES + // BASE CLASSES + // COMPONENTS + // PARAMETERS +#include <ary/ids.hxx> + +namespace ary +{ + class DisplayGate; + +class Display +{ + public: + virtual ~Display() {} + + // OPERATIONS + void StartSlot(); + void FinishSlot(); + + /** This method depends on the result of Get_ReFinder(). + If Get_ReFinder() != 0, then DisplayGate::Find_Re() is called + and if valid, RepositoryEntity::StoreAt( *this ) is called. + If Get_ReFinder() == 0, simply do_DisplaySlot_Rid() is called + with just the id as parameter. + */ + void DisplaySlot_Rid( + ary::Rid i_nId ); + void DisplaySlot_Lid( + ary::Lid i_nId ); + /** This method depends on the result of Get_ReFinder(). + If Get_ReFinder() != 0, then DisplayGate::Find_Re() is called + and if valid, RepositoryEntity::StoreAt( *this ) is called. + If Get_ReFinder() == 0, simply do_DisplaySlot_LocalCe() is called + with just the id as parameter. + */ + void DisplaySlot_LocalCe( + ary::Rid i_nId, + const udmstri & i_sName ); + // INQUIRY + const DisplayGate * Get_ReFinder() const; + + private: + virtual void do_StartSlot(); + virtual void do_FinishSlot(); + + + virtual void do_DisplaySlot_Rid( + ary::Rid i_nId ); + virtual void do_DisplaySlot_Lid( + ary::Lid i_nId ); + virtual void do_DisplaySlot_LocalCe( + ary::Rid i_nId, + const udmstri & i_sName ); + virtual const DisplayGate * + inq_Get_ReFinder() const; +}; + + +// IMPLEMENTATION + + +inline void +Display::StartSlot() + { do_StartSlot(); } +inline void +Display::FinishSlot() + { do_FinishSlot(); } +inline void +Display::DisplaySlot_Lid( ary::Lid i_nId ) + { do_DisplaySlot_Lid( i_nId ); } +inline const DisplayGate * +Display::Get_ReFinder() const + { return inq_Get_ReFinder(); } + + +} // namespace ary + + +#endif + + diff --git a/autodoc/inc/ary/arygroup.hxx b/autodoc/inc/ary/arygroup.hxx new file mode 100644 index 000000000000..c893fb233699 --- /dev/null +++ b/autodoc/inc/ary/arygroup.hxx @@ -0,0 +1,132 @@ +/************************************************************************* + * + * $RCSfile: arygroup.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:13 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_ARYGROUP_HXX +#define ARY_ARYGROUP_HXX + + +// USED SERVICES + // BASE CLASSES + // COMPONENTS + // PARAMETERS +#include <ary/ids.hxx> + +namespace ary +{ + class RepositoryEntity; + class Slot; + +namespace group +{ + typedef std::vector< SlotAccessId > SlotList; +} + +class AryGroup +{ + public: + // LIFECYCLE + virtual ~AryGroup() {} + + // INQUIRY + Gid Id_Group() const; + const RepositoryEntity & + RE_Group() const; + const group::SlotList & + Slots() const; + DYN Slot * Create_Slot( + SlotAccessId i_nSlot ) const; + + + private: + virtual Gid inq_Id_Group() const = 0; + virtual const RepositoryEntity & + inq_RE_Group() const = 0; + virtual const group::SlotList & + inq_Slots() const = 0; + virtual DYN Slot * inq_Create_Slot( + SlotAccessId i_nSlot ) const = 0; +}; + + +// IMPLEMENTATION + +inline Gid +AryGroup::Id_Group() const + { return inq_Id_Group(); } +inline const RepositoryEntity & +AryGroup::RE_Group() const + { return inq_RE_Group(); } +inline const group::SlotList & +AryGroup::Slots() const + { return inq_Slots(); } +inline DYN Slot * +AryGroup::Create_Slot( SlotAccessId i_nSlot ) const + { return inq_Create_Slot(i_nSlot); } + + + +} // namespace ary + + +#endif + + + diff --git a/autodoc/inc/ary/ceslot.hxx b/autodoc/inc/ary/ceslot.hxx new file mode 100644 index 000000000000..bc62dff47c92 --- /dev/null +++ b/autodoc/inc/ary/ceslot.hxx @@ -0,0 +1,165 @@ +/************************************************************************* + * + * $RCSfile: ceslot.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:13 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_CESLOT_HXX +#define ARY_CESLOT_HXX + + +// USED SERVICES + // BASE CLASSES + // COMPONENTS + // PARAMETERS + +namespace ary +{ + +class Display; + +/** Unterscheidungen von Slots + + Slots: + - ReadWrite or ReadOnly + - ContentType + - Groups + - MemberLink 'EnumValue from Enum' or 'Class from Namespace' + - MemberData 'Parameter from Operation' + - SimpleLink + - CommentedLink 'Baseclass from Class' + - DefaultCommentedLink 'Class from GlobaIndex' +*/ + +class Slot +{ + public: + virtual ~Slot() {} + + virtual void StoreAt( + Display & o_rDestination ) const; + virtual uintt Size() const = 0; + + private: + virtual void StoreEntries( + Display & o_rDestination ) const = 0; +}; + +class Slot_AutoPtr +{ + public: + Slot_AutoPtr( + Slot * i_pSlot = 0 ) + : pSlot(i_pSlot) {} + ~Slot_AutoPtr() { if (pSlot != 0) delete pSlot; } + + Slot_AutoPtr & operator=( + Slot * i_pSlot ) + { if (pSlot != 0) delete pSlot; + pSlot = i_pSlot; + return *this; } + operator bool() const { return pSlot != 0; } + + const Slot & operator*() { csv_assert(pSlot != 0); + return *pSlot; } + const Slot * operator->() { csv_assert(pSlot != 0); + return pSlot; } + + private: + // Forbidden functions + Slot_AutoPtr(const Slot_AutoPtr &); + Slot_AutoPtr & operator=(const Slot_AutoPtr &); + + // DATA + Slot * pSlot; +}; + + +#if 0 +/* +class CeIteratingSlot +{ + public: + + // LIFECYCLE + virtual ~CeIteratingSlot() {} + + // OPERATORS + virtual CeIteratingSlot & + operator++() = 0; + virtual operator bool() const = 0; + + // OPERATIONS + virtual void Start() = 0; + virtual void StoreCurrentElementAt( + Display & o_rDestination ) const = 0; + private: + // Forbidden + void operator++(int) const {} +}; +*/ +#endif // 0 + + +} // namespace ary + + +#endif + + + diff --git a/autodoc/inc/ary/cessentl.hxx b/autodoc/inc/ary/cessentl.hxx new file mode 100644 index 000000000000..22b23c9d8bf8 --- /dev/null +++ b/autodoc/inc/ary/cessentl.hxx @@ -0,0 +1,142 @@ +/************************************************************************* + * + * $RCSfile: cessentl.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:13 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_CESSENTL_HXX +#define ARY_CESSENTL_HXX + + +// USED SERVICES + // BASE CLASSES + // COMPONENTS + // PARAMETERS +#include <ary/ids.hxx> +#include <ary/docu.hxx> + +namespace udm +{ +class Agent; +} + + + + +namespace ary +{ + + +class CeEssentials +{ // Non inline functions are implemented in ceworker.cxx . + public: + // LIFECYCLE + CeEssentials(); + CeEssentials( + Cid i_nId, + const udmstri & i_sLocalName, + Cid i_nOwner, + Lid i_nLocation ); + ~CeEssentials(); + // INQUIRY + Cid Id() const; + const udmstri & LocalName() const; + Cid Owner() const; + Lid Location() const; + const ary::Documentation & + Info() const; + + // ACCESS + void SetInfo( + DYN ary::Documentation & + let_drInfo ) + { pInfo = &let_drInfo; } + private: + udmstri sLocalName; + Cid nId; + Cid nOwner; + Lid nLocation; + Dyn<ary::Documentation> + pInfo; +}; + + + +inline Cid +CeEssentials::Id() const + { return nId; } +inline const udmstri & +CeEssentials::LocalName() const + { return sLocalName; } +inline Cid +CeEssentials::Owner() const + { return nOwner; } +inline Lid +CeEssentials::Location() const + { return nLocation; } +inline const ary::Documentation & +CeEssentials::Info() const + { return pInfo ? *pInfo : ary::Documentation::Null_(); } + + +} // namespace ary + + +#endif + + diff --git a/autodoc/inc/ary/cpp/c_class.hxx b/autodoc/inc/ary/cpp/c_class.hxx new file mode 100644 index 000000000000..be9ecba529da --- /dev/null +++ b/autodoc/inc/ary/cpp/c_class.hxx @@ -0,0 +1,253 @@ +/************************************************************************* + * + * $RCSfile: c_class.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:14 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_CPP_C_CLASS_HXX +#define ARY_CPP_C_CLASS_HXX + + + +// USED SERVICES + // BASE CLASSES +#include <ary/ce.hxx> +#include <ary/cpp/ca_type.hxx> +#include <ary/arygroup.hxx> +#include <ary/re.hxx> + // COMPONENTS +#include <ary/cessentl.hxx> +#include <ary/cpp/c_idlist.hxx> +#include <ary/opertype.hxx> +#include <ary/cpp/c_etypes.hxx> + // PARAMETERS +#include <ary/idlists.hxx> + + + +namespace ary +{ +namespace cpp +{ + class Enum; + class Typedef; + class Function; + class Variable; + + + +class Class : public CodeEntity, + public AryGroup +{ + public: + enum E_Slots + { + SLOT_Bases = 1, + SLOT_NestedClasses, + SLOT_Enums, + SLOT_Typedefs, + SLOT_Operations, + SLOT_StaticOperations, + SLOT_Data, + SLOT_StaticData, + SLOT_FriendClasses, + SLOT_FriendOperations + }; + + // LIFECYCLE + Class(); + Class( + Cid i_nId, + const udmstri & i_sLocalName, + Cid i_nOwner, + E_Protection i_eProtection, + Lid i_nFile, + E_ClassKey i_eClassKey ); + ~Class(); + + // OPERATIONS + void Add_BaseClass( + const S_Classes_Base & + i_rBaseClass ); + void Add_TemplateParameterType( + const udmstri & i_sLocalName, + Tid i_nIdAsType ); + void Add_KnownDerivative( + Rid i_nId ) + { aKnownDerivatives.push_back(i_nId); } + + void Add_LocalClass( + const udmstri & i_sLocalName, + Cid i_nId ); + void Add_LocalEnum( + const udmstri & i_sLocalName, + Cid i_nId ); + void Add_LocalTypedef( + const udmstri & i_sLocalName, + Cid i_nId ); + void Add_LocalOperation( + const udmstri & i_sLocalName, + OSid i_nOS, + Cid i_nId ); + void Add_LocalStaticOperation( + const udmstri & i_sLocalName, + OSid i_nOS, + Cid i_nId ); + void Add_LocalData( + const udmstri & i_sLocalName, + Cid i_nId ); + void Add_LocalStaticData( + const udmstri & i_sLocalName, + Cid i_nId ); + + void UpdateVirtuality( + E_Virtuality i_eVirtuality ) + { if ( int(i_eVirtuality) > int(eVirtuality) ) + eVirtuality = i_eVirtuality; } + const List_TplParam & + TemplateParameters() const + { return aTemplateParameterTypes; } + const List_Bases & BaseClasses() const { return aBaseClasses; } + const List_Rid & KnownDerivatives() const + { return aKnownDerivatives; } + + // INQUIRY + static RCid RC_() { return 0x1002; } + + E_ClassKey ClassKey() const; + E_Protection Protection() const; + E_Virtuality Virtuality() const { return eVirtuality; } + + Rid Search_LocalClass( + const udmstri & i_sName ) const; + + private: + // Interface ary::CodeEntity + virtual Cid inq_Id() const; + virtual const udmstri & + inq_LocalName() const; + virtual Cid inq_Owner() const; + virtual Lid inq_Location() const; + + // Interface ary::RepositoryEntity + virtual void do_StoreAt( + ary::Display & o_rOut ) const; + virtual RCid inq_RC() const; + virtual const ary::Documentation & + inq_Info() const; + virtual void do_Add_Documentation( + DYN ary::Documentation & + let_drInfo ); + // Interface ary::AryGroup + virtual Gid inq_Id_Group() const; + virtual const RepositoryEntity & + inq_RE_Group() const; + virtual const group::SlotList & + inq_Slots() const; + virtual DYN Slot * inq_Create_Slot( + SlotAccessId i_nSlot ) const; + // Local + typedef List_LocalCe::const_iterator CIterator_Locals; + typedef List_LocalCe::iterator Iterator_Locals; + + CIterator_Locals PosOfName( + const List_LocalCe& i_rList, + const udmstri & i_sName ) const; + Iterator_Locals PosOfName( + List_LocalCe & io_rList, + const udmstri & i_sName ); + // DATA + CeEssentials aEssentials; + + List_Bases aBaseClasses; + List_TplParam aTemplateParameterTypes; + + List_LocalCe aClasses; + List_LocalCe aEnums; + List_LocalCe aTypedefs; + List_LocalOperation aOperations; + List_LocalOperation aStaticOperations; + List_LocalCe aData; + List_LocalCe aStaticData; + List_Rid aFriendClasses; + List_Rid aFriendOperations; + List_Rid aKnownDerivatives; + + E_ClassKey eClassKey; + E_Protection eProtection; + E_Virtuality eVirtuality; +}; + + + +// IMPLEMENTATION + +inline E_ClassKey +Class::ClassKey() const + { return eClassKey; } +inline E_Protection +Class::Protection() const + { return eProtection; } + + +} // namespace cpp +} // namespace ary + + +#endif + diff --git a/autodoc/inc/ary/cpp/c_define.hxx b/autodoc/inc/ary/cpp/c_define.hxx new file mode 100644 index 000000000000..dcfc6ec66e21 --- /dev/null +++ b/autodoc/inc/ary/cpp/c_define.hxx @@ -0,0 +1,122 @@ +/************************************************************************* + * + * $RCSfile: c_define.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:14 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_CPP_C_DEFINE_HXX +#define ARY_CPP_C_DEFINE_HXX + + +// USED SERVICES + // BASE CLASSES +#include <ary/cpp/cpp_defs.hxx> + // COMPONENTS + // PARAMETERS + + + +namespace ary +{ +namespace cpp +{ + + +/** Describes a C/C++ #define <DEFINE_BUT_NO_MACRO> statement. +*/ +class Define : public CppDefinition +{ + public: + Define( /// Used for: #define DEFINE xyz + Did i_nId, + const udmstri & i_sName, + const str_vector & i_rDefinition, + Lid i_nDeclaringFile ); + ~Define(); + + // INQUIRY + void GetText( + csv::StreamStr & o_rText ) const; + + private: + // Interface RepositoryEntity: + virtual void do_StoreAt( + ary::Display & o_rOut ) const; + virtual RCid inq_RC() const; + + // Interface CppDefinition: + virtual const str_vector & + inq_DefinitionText() const; + + // DATA + str_vector aDefinition; +}; + + + +// IMPLEMENTATION + + + +} // namespace cpp +} // namespace ary + + + +#endif + diff --git a/autodoc/inc/ary/cpp/c_enum.hxx b/autodoc/inc/ary/cpp/c_enum.hxx new file mode 100644 index 000000000000..ee8c89050adb --- /dev/null +++ b/autodoc/inc/ary/cpp/c_enum.hxx @@ -0,0 +1,150 @@ +/************************************************************************* + * + * $RCSfile: c_enum.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:14 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_CPP_C_ENUM_HXX +#define ARY_CPP_C_ENUM_HXX + + + +// USED SERVICES + // BASE CLASSES +#include <ary/ce.hxx> +#include <ary/arygroup.hxx> + // COMPONENTS +#include <ary/cessentl.hxx> +#include <ary/idlists.hxx> +#include <ary/cpp/c_etypes.hxx> + // PARAMETERS + +namespace ary +{ +namespace cpp +{ + + +class Enum : public CodeEntity, + public AryGroup +{ + public: + enum E_Slots + { + SLOT_Values = 1 + }; + + // LIFECYCLE + Enum(); + Enum( + Cid i_nId, + const udmstri & i_sLocalName, + Cid i_nOwner, + E_Protection i_eProtection, + Lid i_nFile ); + ~Enum(); + + // OPERATIONS + void Add_Value( + Cid i_nId ); + + // INQUIRY + static RCid RC_() { return 0x1003; } + + E_Protection Protection() const { return eProtection; } + + private: + // Interface ary::CodeEntity + virtual Cid inq_Id() const; + virtual const udmstri & + inq_LocalName() const; + virtual Cid inq_Owner() const; + virtual Lid inq_Location() const; + + // Interface ary::RepositoryEntity + virtual void do_StoreAt( + ary::Display & o_rOut ) const; + virtual RCid inq_RC() const; + virtual const ary::Documentation & + inq_Info() const; + virtual void do_Add_Documentation( + DYN ary::Documentation & + let_drInfo ); + // Interface ary::AryGroup + virtual Gid inq_Id_Group() const; + virtual const RepositoryEntity & + inq_RE_Group() const; + virtual const group::SlotList & + inq_Slots() const; + virtual DYN Slot * inq_Create_Slot( + SlotAccessId i_nSlot ) const; + + // DATA + CeEssentials aEssentials; + List_Rid aValues; + E_Protection eProtection; +}; + + + +} // namespace cpp +} // namespace ary + + +#endif + diff --git a/autodoc/inc/ary/cpp/c_enuval.hxx b/autodoc/inc/ary/cpp/c_enuval.hxx new file mode 100644 index 000000000000..909c96549d13 --- /dev/null +++ b/autodoc/inc/ary/cpp/c_enuval.hxx @@ -0,0 +1,136 @@ +/************************************************************************* + * + * $RCSfile: c_enuval.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:14 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_CPP_C_ENUVAL_HXX +#define ARY_CPP_C_ENUVAL_HXX + + +// USED SERVICES + // BASE CLASSES +#include <ary/ce.hxx> + // COMPONENTS +#include <ary/cessentl.hxx> +#include <ary/cpp/c_etypes.hxx> + // PARAMETERS + + + +namespace ary +{ +namespace cpp +{ + + +class EnumValue : public CodeEntity +{ + public: + // LIFECYCLE + EnumValue(); + EnumValue( + Cid i_nId, + const udmstri & i_sLocalName, + Cid i_nOwner, + udmstri i_sInitialisation ); + ~EnumValue(); + // INQUIRY + static RCid RC_() { return 0x1007; } + + const udmstri & Initialisation() const; + + + private: + // Interface ary::CodeEntity + virtual Cid inq_Id() const; + virtual const udmstri & + inq_LocalName() const; + virtual Cid inq_Owner() const; + virtual Lid inq_Location() const; + + // Interface ary::RepositoryEntity + virtual void do_StoreAt( + ary::Display & o_rOut ) const; + virtual RCid inq_RC() const; + virtual const ary::Documentation & + inq_Info() const; + virtual void do_Add_Documentation( + DYN ary::Documentation & + let_drInfo ); + + // DATA + CeEssentials aEssentials; + udmstri sInitialisation; +}; + + + +// IMPLEMENTATION + +inline const udmstri & +EnumValue::Initialisation() const + { return sInitialisation; } + + +} // namespace cpp +} // namespace ary + + +#endif + diff --git a/autodoc/inc/ary/cpp/c_funct.hxx b/autodoc/inc/ary/cpp/c_funct.hxx new file mode 100644 index 000000000000..70f7393aec58 --- /dev/null +++ b/autodoc/inc/ary/cpp/c_funct.hxx @@ -0,0 +1,184 @@ +/************************************************************************* + * + * $RCSfile: c_funct.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:14 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_CPP_C_FUNCT_HXX +#define ARY_CPP_C_FUNCT_HXX + + + +// USED SERVICES + // BASE CLASSES +#include <ary/ce.hxx> + // COMPONENTS +#include <ary/ids.hxx> +#include <ary/cessentl.hxx> +#include <ary/cpp/c_etypes.hxx> +#include <ary/cpp/c_vfflag.hxx> +#include <ary/cpp/c_osigna.hxx> +#include <ary/cpp/c_idlist.hxx> + // PARAMETERS + + + +namespace ary +{ +namespace cpp +{ + + +class Function : public CodeEntity +{ + public: + Function(); + Function( + Cid i_nId, + const udmstri & i_sLocalName, + Cid i_nOwner, + E_Protection i_eProtection, + Lid i_nFile, + Tid i_nReturnType, + OSid i_nSignature, + StringVector & + i_rNonType_ParameterInfos, /// Is non const, because the contents are swap'ped with aParameterInfos. + E_Virtuality i_eVirtuality, + FunctionFlags i_aFlags, + bool i_bThrowExists, + const std::vector<Tid> & + i_rExceptions ); + ~Function(); + + // OPERATIONS + void Add_TemplateParameterType( + const udmstri & i_sLocalName, + Tid i_nIdAsType ); + + // INQUIRY + static RCid RC_() { return 0x1005; } + + OSid Signature() const; + Tid ReturnType() const; + E_Protection Protection() const { return eProtection; } + E_Virtuality Virtuality() const { return eVirtuality; } + const FunctionFlags & + Flags() const { return aFlags; } + const StringVector & + ParamInfos() const { return aParameterInfos; } + const std::vector<Tid> * + Exceptions() const { return pExceptions.Ptr(); } + + const List_TplParam & + TemplateParameters() const + { return aTemplateParameterTypes; } + + private: + // Interface ary::CodeEntity + virtual Cid inq_Id() const; + virtual const udmstri & + inq_LocalName() const; + virtual Cid inq_Owner() const; + virtual Lid inq_Location() const; + + // Interface ary::RepositoryEntity + virtual void do_StoreAt( + Display & o_rOut ) const; + virtual RCid inq_RC() const; + virtual const Documentation & + inq_Info() const; + virtual void do_Add_Documentation( + DYN Documentation & let_drInfo ); + + // Local Types + typedef StringVector ParameterInfoList; + typedef std::vector<Tid> ExceptionTypeList; + + // DATA + CeEssentials aEssentials; + + List_TplParam aTemplateParameterTypes; + + OSid nSignature; + Tid nReturnType; + E_Protection eProtection; + E_Virtuality eVirtuality; + FunctionFlags aFlags; + ParameterInfoList aParameterInfos; + Dyn<ExceptionTypeList> + pExceptions; // if (NOT pExceptions) there is no throw, + // else, there is one, but the list still may be empty. +}; + + + +// IMPLEMENTATION +inline OSid +Function::Signature() const + { return nSignature; } +inline Tid +Function::ReturnType() const + { return nReturnType; } + + +} // namespace cpp +} // namespace ary + + +#endif + diff --git a/autodoc/inc/ary/cpp/c_macro.hxx b/autodoc/inc/ary/cpp/c_macro.hxx new file mode 100644 index 000000000000..994377ae27fb --- /dev/null +++ b/autodoc/inc/ary/cpp/c_macro.hxx @@ -0,0 +1,125 @@ +/************************************************************************* + * + * $RCSfile: c_macro.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:14 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_CPP_C_MACRO_HXX +#define ARY_CPP_C_MACRO_HXX + + +// USED SERVICES + // BASE CLASSES +#include <ary/cpp/cpp_defs.hxx> + // COMPONENTS + // PARAMETERS + + + +namespace ary +{ + +namespace cpp +{ + + + +/** Describes a C/C++ #define MACRO(a,b, ...) statement. +*/ +class Macro : public CppDefinition +{ + public: + Macro(); + Macro( /// Used for: #define DEFINE xyz + Did i_nId, + const udmstri & i_sName, + const str_vector & i_rParams, + const str_vector & i_rDefinition, + Lid i_nDeclaringFile ); + ~Macro(); + // INQUIRY + void GetText( + csv::StreamStr & o_rText, + const StringVector & + i_rGivenArguments ) const; + const str_vector & Params() const { return aParams; } + + private: + // Interface RepositoryEntity: + virtual void do_StoreAt( + ary::Display & o_rOut ) const; + virtual RCid inq_RC() const; + + // Interface CppDefinition: + virtual const str_vector & + inq_DefinitionText() const; + + // DATA + str_vector aParams; + str_vector aDefinition; +}; + + + + +} // namespace cpp +} // namespace ary + + +#endif + diff --git a/autodoc/inc/ary/cpp/c_namesp.hxx b/autodoc/inc/ary/cpp/c_namesp.hxx new file mode 100644 index 000000000000..edbca54b5e0e --- /dev/null +++ b/autodoc/inc/ary/cpp/c_namesp.hxx @@ -0,0 +1,192 @@ +/************************************************************************* + * + * $RCSfile: c_namesp.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:14 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_CPP_C_NAMESP_HXX +#define ARY_CPP_C_NAMESP_HXX + + + +// USED SERVICES + // BASE CLASSES +#include <ary/ce.hxx> +#include <ary/arygroup.hxx> + // COMPONENTS +#include <ary/cessentl.hxx> +#include <ary/opertype.hxx> +#include <ary/cpp/c_idlist.hxx> + // PARAMETERS +#include <ary/idlists.hxx> + + + +namespace ary +{ +namespace cpp +{ + + +class Namespace : public CodeEntity, + public AryGroup +{ + public: + enum E_Slots + { + SLOT_SubNamespaces = 1, + SLOT_Classes, + SLOT_Enums, + SLOT_Typedefs, + SLOT_Operations, + SLOT_Variables, + SLOT_Constants + }; + Namespace(); + Namespace( /// Used only for the global namespace. + Rid i_nId ); + Namespace( + Cid i_nId, + const udmstri & i_sName, + Namespace & i_rParent ); + ~Namespace(); + // OPERATIONS + void Add_LocalNamespace( + Namespace & io_rLocalNamespace ); + void Add_LocalClass( + const udmstri & i_sLocalName, + Cid i_nId ); + void Add_LocalEnum( + const udmstri & i_sLocalName, + Cid i_nId ); + void Add_LocalTypedef( + const udmstri & i_sLocalName, + Cid i_nId ); + void Add_LocalOperation( + const udmstri & i_sLocalName, + OSid i_nOS, + Cid i_nId ); + void Add_LocalVariable( + const udmstri & i_sLocalName, + Cid i_nId ); + void Add_LocalConstant( + const udmstri & i_sLocalName, + Cid i_nId ); + + // INQUIRY + static RCid RC_() { return 0x1001; } + virtual uintt Depth() const; + Namespace * Parent() const; + + Namespace * Search_LocalNamespace( + const udmstri & i_sLocalName ) const; + uintt Get_SubNamespaces( + std::vector< const Namespace* > & + o_rResultList ) const; + Rid Search_LocalClass( + const udmstri & i_sName ) const; + private: + // Interface CodeEntity + virtual Cid inq_Id() const; + virtual const udmstri & + inq_LocalName() const; + virtual Cid inq_Owner() const; + virtual Lid inq_Location() const; + + // Interface ary::RepositoryEntity + virtual void do_StoreAt( + ary::Display & o_rOut ) const; + virtual RCid inq_RC() const; + virtual const ary::Documentation & + inq_Info() const; + virtual void do_Add_Documentation( + DYN ary::Documentation & + let_drInfo ); + // Interface AryGroup + virtual Gid inq_Id_Group() const; + virtual const RepositoryEntity & + inq_RE_Group() const; + virtual const ary::group::SlotList & + inq_Slots() const; + virtual DYN Slot * inq_Create_Slot( + SlotAccessId i_nSlot ) const; + + // Local + + // DATA + CeEssentials aEssentials; + + Map_NamespacePtr aLocalNamespaces; + Map_LocalCe aLocalClasses; + Map_LocalCe aLocalEnums; + Map_LocalCe aLocalTypedefs; + Set_LocalOperation aLocalOperations; + Map_LocalCe aLocalVariables; + Map_LocalCe aLocalConstants; + + Namespace * pParent; + uintt nDepth; +}; + + +} // namespace cpp +} // ary + + +#endif + diff --git a/autodoc/inc/ary/cpp/c_osigna.hxx b/autodoc/inc/ary/cpp/c_osigna.hxx new file mode 100644 index 000000000000..f3f84fcbe6d1 --- /dev/null +++ b/autodoc/inc/ary/cpp/c_osigna.hxx @@ -0,0 +1,149 @@ +/************************************************************************* + * + * $RCSfile: c_osigna.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:14 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_CPP_C_OSIGNA_HXX +#define ARY_CPP_C_OSIGNA_HXX + + + +// USED SERVICES + // BASE CLASSES + // COMPONENTS +#include <ary/ids.hxx> +#include <ary/cpp/c_etypes.hxx> + // PARAMETERS + + + +namespace ary +{ + +namespace cpp +{ + +class OperationSignature +{ + public: + typedef std::vector<Tid> ParameterTypeList; + + OperationSignature(); + OperationSignature( + std::vector<Tid> & i_rParameterTypes, // Non const, because it will be swapped with aParameterTypes. + E_ConVol i_eConVol ); + + bool operator<( + const OperationSignature & + i_rSig ) const; + + // INQUIRY + const ParameterTypeList & + Parameters() const; + E_ConVol ConVol() const; + + /** Compares the signatures by length an then by ids of + parameter types. So the result is not always human + reconstructable. + @return like in strcmp(). + */ + int Compare( + const OperationSignature & + i_rSig ) const; + private: + + // DATA + ParameterTypeList aParameterTypes; + E_ConVol eConVol; +}; + +#if 0 // Vielleicht noch gebraucht, vielleicht auch nicht. DO NOT delete! +struct S_VariableInfo +{ + udmstri sName; + udmstri sSizeExpression; + udmstri sInitExpression; + + void Empty() + { sName.clear(); + sSizeExpression.clear(); + sInitExpression.clear(); } +}; +#endif + + +// IMPLEMENTATION + +inline bool +OperationSignature::operator<( const OperationSignature & i_rSign ) const + { return Compare(i_rSign) < 0; } +inline const OperationSignature::ParameterTypeList & +OperationSignature::Parameters() const + { return aParameterTypes; } +inline E_ConVol +OperationSignature::ConVol() const + { return eConVol; } + + +} // namespace cpp +} // namespace ary + + +#endif + diff --git a/autodoc/inc/ary/cpp/c_slntry.hxx b/autodoc/inc/ary/cpp/c_slntry.hxx new file mode 100644 index 000000000000..e98c129ec3b4 --- /dev/null +++ b/autodoc/inc/ary/cpp/c_slntry.hxx @@ -0,0 +1,127 @@ +/************************************************************************* + * + * $RCSfile: c_slntry.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:14 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_CPP_C_SLNTRY_HXX +#define ARY_CPP_C_SLNTRY_HXX + +// USED SERVICES + // BASE CLASSES + // COMPONENTS + // PARAMETERS +#include <ary/ids.hxx> +#include <ary/cpp/c_etypes.hxx> + + +namespace ary +{ +namespace cpp +{ + class Namespace; + + +typedef Namespace * NamespacePtr; +struct Less_NamespacePtr +{ + bool operator()( /// @return true if (i_p1->Name() < i_p2->Name()) . + const NamespacePtr& i_p1, + const NamespacePtr& i_p2 ); +}; + + + + +struct S_Classes_Base +{ + Tid nId; + E_Protection eProtection; + E_Virtuality eVirtuality; + udmstri sComment; + + S_Classes_Base() + : nId(0), + eProtection(PROTECT_global), + eVirtuality(VIRTUAL_none) + // sComent + { } +}; + +struct S_TplParam +{ + udmstri sName; + Tid nId; + + S_TplParam( + udmstri i_sName, + Tid i_nId ) + : sName(i_sName), nId(i_nId) {} + const udmstri & Name() const { return sName; } + +}; + + + +} // namespace cpp +} // namespace ary + + + +#endif + diff --git a/autodoc/inc/ary/cpp/c_tydef.hxx b/autodoc/inc/ary/cpp/c_tydef.hxx new file mode 100644 index 000000000000..dbf94ed212f0 --- /dev/null +++ b/autodoc/inc/ary/cpp/c_tydef.hxx @@ -0,0 +1,140 @@ +/************************************************************************* + * + * $RCSfile: c_tydef.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:14 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_CPP_C_TYDEF_HXX +#define ARY_CPP_C_TYDEF_HXX + + + +// USED SERVICES + // BASE CLASSES +#include <ary/ce.hxx> + // COMPONENTS +#include <ary/cessentl.hxx> +#include <ary/cpp/c_etypes.hxx> + // PARAMETERS + + + +namespace ary +{ +namespace cpp +{ + + +class Typedef : public CodeEntity +{ + public: + // LIFECYCLE + Typedef(); + Typedef( + Cid i_nId, + const udmstri & i_sLocalName, + Cid i_nOwner, + E_Protection i_eProtection, + Lid i_nFile, + Tid i_nDescribingType ); + ~Typedef(); + // INQUIRY + static RCid RC_() { return 0x1004; } + + Tid DescribingType() const; + E_Protection Protection() const { return eProtection; } + + private: + // Interface ary::CodeEntity + virtual Cid inq_Id() const; + virtual const udmstri & + inq_LocalName() const; + virtual Cid inq_Owner() const; + virtual Lid inq_Location() const; + + // Interface ary::RepositoryEntity + virtual void do_StoreAt( + Display & o_rOut ) const; + virtual RCid inq_RC() const; + virtual const Documentation & + inq_Info() const; + virtual void do_Add_Documentation( + DYN Documentation & let_drInfo ); + + // DATA + CeEssentials aEssentials; + Tid nDescribingType; + E_Protection eProtection; +}; + + + +// IMPLEMENTATION + +inline Tid +Typedef::DescribingType() const + { return nDescribingType; } + + + +} // namespace cpp +} // namespace ary + + +#endif + diff --git a/autodoc/inc/ary/cpp/c_vari.hxx b/autodoc/inc/ary/cpp/c_vari.hxx new file mode 100644 index 000000000000..08d333de49ee --- /dev/null +++ b/autodoc/inc/ary/cpp/c_vari.hxx @@ -0,0 +1,159 @@ +/************************************************************************* + * + * $RCSfile: c_vari.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:14 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_CPP_C_VARI_HXX +#define ARY_CPP_C_VARI_HXX + + +// USED SERVICES + // BASE CLASSES +#include <ary/ce.hxx> + // COMPONENTS +#include <ary/cessentl.hxx> +#include <ary/cpp/c_etypes.hxx> +#include <ary/cpp/c_vfflag.hxx> + // PARAMETERS + + + +namespace ary +{ + +namespace cpp +{ + + +class Variable : public CodeEntity +{ + public: + // LIFECYCLE + Variable(); + Variable( + Cid i_nId, + const udmstri & i_sLocalName, + Cid i_nOwner, + E_Protection i_eProtection, + Lid i_nFile, + Tid i_nType, + VariableFlags i_aFlags, + const udmstri & i_sArraySize, + const udmstri & i_sInitValue ); + ~Variable(); + + + // INQUIRY + static RCid RC_() { return 0x1006; } + + Tid Type() const; + const udmstri & ArraySize() const; + const udmstri & Initialisation() const; + E_Protection Protection() const { return eProtection; } + + // ACCESS + + private: + // Interface ary::CodeEntity + virtual Cid inq_Id() const; + virtual const udmstri & + inq_LocalName() const; + virtual Cid inq_Owner() const; + virtual Lid inq_Location() const; + + // Interface ary::RepositoryEntity + virtual void do_StoreAt( + ary::Display & o_rOut ) const; + virtual RCid inq_RC() const; + virtual const ary::Documentation & + inq_Info() const; + virtual void do_Add_Documentation( + DYN ary::Documentation & + let_drInfo ); + + // DATA + CeEssentials aEssentials; + Tid nType; + E_Protection eProtection; + VariableFlags aFlags; + udmstri sArraySize; + udmstri sInitialisation; +}; + + + +// IMPLEMENTATION + +inline Tid +Variable::Type() const + { return nType; } +inline const udmstri & +Variable::ArraySize() const + { return sArraySize; } +inline const udmstri & +Variable::Initialisation() const + { return sInitialisation; } + + +} // namespace cpp +} // namespace ary + + +#endif + diff --git a/autodoc/inc/ary/cpp/c_vfflag.hxx b/autodoc/inc/ary/cpp/c_vfflag.hxx new file mode 100644 index 000000000000..ef67a63f330b --- /dev/null +++ b/autodoc/inc/ary/cpp/c_vfflag.hxx @@ -0,0 +1,177 @@ +/************************************************************************* + * + * $RCSfile: c_vfflag.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:14 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_CPP_C_VFFLAG_HXX +#define ARY_CPP_C_VFFLAG_HXX + + + +// USED SERVICES + // BASE CLASSES + // COMPONENTS + // PARAMETERS + + + +namespace ary +{ +namespace cpp +{ + + +struct VariableFlags +{ + public: + enum E_Flags + { + f_static_local = 0x0001, + f_static_member = 0x0002, + f_extern = 0x0004, + f_mutable = 0x0008 + }; + + VariableFlags( + UINT16 i_nFlags = 0 ) + : nFlags(i_nFlags) {} + + void Reset() { nFlags = 0; } + + void SetStaticLocal() { nFlags |= f_static_local; } + void SetStaticMember() { nFlags |= f_static_member; } + void SetExtern() { nFlags |= f_extern; } + void SetMutable() { nFlags |= f_mutable; } + + bool IsStaticLocal() const { return (nFlags & f_static_local) != 0; } + bool IsStaticMember() const { return (nFlags & f_static_member) != 0; } + bool IsExtern() const { return (nFlags & f_extern) != 0; } + bool IsMutable() const { return (nFlags & f_mutable) != 0; } + + private: + UINT16 nFlags; +}; + + +struct FunctionFlags +{ + public: + enum E_Flags + { + f_static_local = 0x0001, + f_static_member = 0x0002, + f_extern = 0x0004, + f_externC = 0x0008, + f_mutable = 0x0010, + f_inline = 0x0100, + f_register = 0x0200, + f_explicit = 0x0400 + }; + + FunctionFlags( + UINT16 i_nFlags = 0 ) + : nFlags(i_nFlags) {} + + void Reset() { nFlags = 0; } + + void SetStaticLocal() { nFlags |= f_static_local; } + void SetStaticMember() { nFlags |= f_static_member; } + void SetExtern() { nFlags |= f_extern; } + void SetExternC() { nFlags |= f_externC; } + void SetMutable() { nFlags |= f_mutable; } + void SetInline() { nFlags |= f_inline; } + void SetRegister() { nFlags |= f_register; } + void SetExplicit() { nFlags |= f_explicit; } + + bool IsStaticLocal() const { return (nFlags & f_static_local) != 0; } + bool IsStaticMember() const { return (nFlags & f_static_member) != 0; } + bool IsExtern() const { return (nFlags & f_extern) != 0; } + bool IsExternC() const { return (nFlags & f_externC) != 0; } + bool IsMutable() const { return (nFlags & f_mutable) != 0; } + bool IsInline() const { return (nFlags & f_inline) != 0; } + bool IsRegister() const { return (nFlags & f_register) != 0; } + bool IsExplicit() const { return (nFlags & f_explicit) != 0; } + + private: + UINT16 nFlags; +}; + +struct S_Parameter +{ + udmstri sName; + udmstri sSizeExpression; + udmstri sInitExpression; + Tid nType; + + S_Parameter() : nType(0) {} + ~S_Parameter() {} + void Empty() { nType = 0; + sName.clear(); + sSizeExpression.clear(); + sInitExpression.clear(); } +}; + + + +} // namespace cpp +} // namespace ary + + +#endif + diff --git a/autodoc/inc/ary/cpp/inpcontx.hxx b/autodoc/inc/ary/cpp/inpcontx.hxx new file mode 100644 index 000000000000..f26b9afae704 --- /dev/null +++ b/autodoc/inc/ary/cpp/inpcontx.hxx @@ -0,0 +1,245 @@ +/************************************************************************* + * + * $RCSfile: inpcontx.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:15 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_CPP_INPCONTX_HXX +#define ARY_CPP_INPCONTX_HXX + + + +// USED SERVICES + // BASE CLASSES + // COMPONENTS + // PARAMETERS +#include <ary/ids.hxx> +#include <ary/cpp/c_etypes.hxx> + + + +namespace ary +{ +namespace cpp +{ + class Namespace; + class Class; + class Enum; + + class ProjectGroup; + class FileGroup; + +/** This class provides information about the context of an + CodeEntity, which is going to be stored in the repository. + The information is used mainly by class ary::cpp::Gate. +*/ +class InputContext +{ + public: + class Owner + { + public: + // LIFECYCLE + virtual ~Owner() {} + + // OPERATIONS + /// Adds Class data to current inner scope (Namespace or Class). + void Add_Class( + const udmstri & i_sLocalName, + Cid i_nId ); + /// Adds Enum data to current inner scope (Namespace or Class). + void Add_Enum( + const udmstri & i_sLocalName, + Cid i_nId ); + /// Adds Typedef data to current inner scope (Namespace or Class). + void Add_Typedef( + const udmstri & i_sLocalName, + Cid i_nId ); + /// Adds Operation data to current inner scope (Namespace or Class). + void Add_Operation( + const udmstri & i_sLocalName, + OSid i_nSignature, + Cid i_nId, + bool i_bIsStaticMember ); /// True only for static class members. + /// Adds Variable data to current inner scope (Namespace or Class). + void Add_Variable( + const udmstri & i_sLocalName, + Cid i_nId, + bool i_bIsConst, + bool i_bIsStaticMember ); /// True only for static class members. + // INQUIRY + Cid Id() const; + + private: + virtual void do_Add_Class( + const udmstri & i_sLocalName, + Cid i_nId ) = 0; + virtual void do_Add_Enum( + const udmstri & i_sLocalName, + Cid i_nId ) = 0; + virtual void do_Add_Typedef( + const udmstri & i_sLocalName, + Cid i_nId ) = 0; + virtual void do_Add_Operation( + const udmstri & i_sLocalName, + OSid i_nSignature, + Cid i_nId, + bool i_bIsStatic ) = 0; + virtual void do_Add_Variable( + const udmstri & i_sLocalName, + Cid i_nId, + bool i_bIsConst, + bool i_bIsStatic ) = 0; + virtual Cid inq_Id() const = 0; + }; + + // LIFECYCLE + virtual ~InputContext() {} + + // OPERATIONS + + // INQUIRY + ProjectGroup & CurProjectGroup() const; + FileGroup & CurFileGroup() const; + + Namespace & CurNamespace() const; + Class * CurClass() const; + Enum * CurEnum() const; + + Owner & CurOwner() const; + E_Protection CurProtection() const; + + private: + virtual ProjectGroup & + inq_CurProjectGroup() const = 0; + virtual FileGroup & inq_CurFileGroup() const = 0; + + virtual Namespace & inq_CurNamespace() const = 0; + virtual Class * inq_CurClass() const = 0; + virtual Enum * inq_CurEnum() const = 0; + + virtual Owner & inq_CurOwner() const = 0; + virtual E_Protection + inq_CurProtection() const = 0; +}; + + + +// IMPLEMENTATION + +inline ProjectGroup & +InputContext::CurProjectGroup() const + { return inq_CurProjectGroup(); } +inline FileGroup & +InputContext::CurFileGroup() const + { return inq_CurFileGroup(); } + +inline Namespace & +InputContext::CurNamespace() const + { return inq_CurNamespace(); } +inline Class * +InputContext::CurClass() const + { return inq_CurClass(); } +inline Enum * +InputContext::CurEnum() const + { return inq_CurEnum(); } +inline InputContext::Owner & +InputContext::CurOwner() const + { return inq_CurOwner(); } +inline E_Protection +InputContext::CurProtection() const + { return inq_CurProtection(); } + + +inline void +InputContext::Owner::Add_Class( const udmstri & i_sLocalName, + Cid i_nId ) + { do_Add_Class(i_sLocalName, i_nId); } +inline void +InputContext::Owner::Add_Enum( const udmstri & i_sLocalName, + Cid i_nId ) + { do_Add_Enum(i_sLocalName, i_nId); } +inline void +InputContext::Owner::Add_Typedef( const udmstri & i_sLocalName, + Cid i_nId ) + { do_Add_Typedef(i_sLocalName, i_nId); } +inline void +InputContext::Owner::Add_Operation( const udmstri & i_sLocalName, + OSid i_nSignature, + Cid i_nId, + bool i_bIsStatic ) + { do_Add_Operation( i_sLocalName, i_nSignature, i_nId, i_bIsStatic ); } +inline void +InputContext::Owner::Add_Variable( const udmstri & i_sLocalName, + Cid i_nId, + bool i_bIsConst, + bool i_bIsStatic ) + { do_Add_Variable( i_sLocalName, i_nId, i_bIsConst, i_bIsStatic ); } +inline Cid +InputContext::Owner::Id() const + { return inq_Id(); } + + + + +} // namespace cpp +} // namespace ary + + +#endif + diff --git a/autodoc/inc/ary/cpp/usedtype.hxx b/autodoc/inc/ary/cpp/usedtype.hxx new file mode 100644 index 000000000000..845639db09b7 --- /dev/null +++ b/autodoc/inc/ary/cpp/usedtype.hxx @@ -0,0 +1,212 @@ +/************************************************************************* + * + * $RCSfile: usedtype.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:15 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_CPP_USEDTYPE_HXX +#define ARY_CPP_USEDTYPE_HXX + + +// USED SERVICES + // BASE CLASSES +#include <ary/cpp/ca_type.hxx> + // COMPONENTS + // PARAMETERS + + +namespace ary +{ +namespace cpp +{ + namespace ut + { + class List_TplParameter; + } + + class DisplayGate; + class Gate; + +/** This class represents a type in textual form, like it is parsed out of + source code as a variable type or function return type. +*/ +class UsedType : public Type +{ + public: + UsedType(); + ~UsedType(); + // OPERATORS + bool operator<( + const UsedType & i_rType ) const; + // OPERATIONS + + // Operations to build up the used type from parsing: + void Set_Id( + Tid i_nId ); + void Set_Absolute(); /// "::" is in front. + void Add_NameSegment( + const char * i_sSeg ); + ut::List_TplParameter & + Enter_Template(); + void LeaveTemplate(); + + void Set_Unsigned(); + void Set_Signed(); + void Set_BuiltIn( + const char * i_sType ); + void Set_Const(); /// Sets CV to the type or the present pointer level, whatever is highest. + void Set_Volatile(); /// Sets CV to the type or the present pointer level, whatever is highest. + void Add_PtrLevel(); /// For an '*'. + void Set_Reference(); /// For an '&'. + + // Operations to find the relating CodeEntity: + /** This needs to be called only one time. After that + RelatedCe() will return the value. + */ + Rid Connect2Ce( + const Gate & i_rGate ); + + // INQUIRY + /** @return True, if type consists of one built-in typename and + nothing else. + */ + bool IsBuiltInType() const; + /** @return the full local name, including template instantiation, but without + '*','&' or modifiers. + */ + const udmstri & LocalName() const; + E_TypeSpecialisation + TypeSpecialisation() const; + + private: + // Forbidden functions + UsedType( + const UsedType & i_rType ); + bool operator=( + const UsedType & i_rType ); + + // Interface ary::cpp::Type + virtual Tid inq_Id_Type() const; + virtual Rid inq_RelatedCe() const; + virtual bool inq_IsConst() const; + virtual void inq_Get_Text( + StreamStr & o_rPreName, + StreamStr & o_rName, + StreamStr & o_rPostName, + const ary::cpp::DisplayGate & + i_rGate ) const; + // Local + struct CheshireCat; + + bool DoesMatch_Ce( + Rid i_nId, + const Gate & i_rGate ) const; + + // DATA + Dyn<CheshireCat> pi; +}; + + +namespace ut +{ + class TemplateParameter; + +class List_TplParameter +{ + public: + typedef std::vector< DYN TemplateParameter * >::const_iterator const_iterator; + + List_TplParameter(); + ~List_TplParameter(); + + void AddParam_Type( + Tid i_nType ); + void AddParam_Constant( + const udmstri & i_sConst ); + + const_iterator Begin() const; + const_iterator End() const; + + /// puts "< " TemplateArgumentList " >" to o_rOut. + void Get_Text( + StreamStr & o_rOut, + const ary::cpp::DisplayGate & + i_rGate ) const; + /// @return as strcmp(). + intt Compare( + const List_TplParameter & + i_rOther ) const; + + private: + typedef std::vector< DYN TemplateParameter * > Vector_TplArgument; + + Vector_TplArgument aTplParameters; +}; + + +} // namespace ut + + + +} // namespace cpp +} // namespace ary + + + +#endif + diff --git a/autodoc/inc/ary/info/all_dts.hxx b/autodoc/inc/ary/info/all_dts.hxx new file mode 100644 index 000000000000..c4d8d122fb44 --- /dev/null +++ b/autodoc/inc/ary/info/all_dts.hxx @@ -0,0 +1,194 @@ +/************************************************************************* + * + * $RCSfile: all_dts.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:15 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_INFO_ALL_DTS_HXX +#define ARY_INFO_ALL_DTS_HXX + + + +// USED SERVICES + // BASE CLASSES + // COMPONENTS + // PARAMETERS + + +namespace ary +{ +namespace info +{ + +class DocuDisplay; + +class DocuToken +{ + public: + virtual ~DocuToken() {} + + void StoreAt( + DocuDisplay & o_rDisplay ) const; + bool IsWhite() const; + + private: + virtual void do_StoreAt( + DocuDisplay & o_rDisplay ) const = 0; + virtual bool inq_IsWhite() const = 0; +}; + +class DT_Text : public DocuToken +{ + public: + DT_Text( + const char * i_sText ) + : sText( i_sText ) {} + + const udmstri & Text() const { return sText; } + + private: + virtual void do_StoreAt( + DocuDisplay & o_rDisplay ) const; + virtual bool inq_IsWhite() const; + + udmstri sText; +}; + +class DT_MaybeLink : public DocuToken +{ + public: + DT_MaybeLink( + const char * i_sText, + bool i_bIsGlobal, + bool i_bIsFunction ) + : sText( i_sText ), + bIsGlobal(i_bIsGlobal), + bIsFunction(i_bIsFunction) { } + + const udmstri & Text() const { return sText; } + bool IsAbsolute() const { return bIsGlobal; } + bool IsFunction() const { return bIsFunction; } + + private: + virtual void do_StoreAt( + DocuDisplay & o_rDisplay ) const; + virtual bool inq_IsWhite() const; + + udmstri sText; + bool bIsGlobal; + bool bIsFunction; +}; + +class DT_Whitespace : public DocuToken +{ + public: + DT_Whitespace( + UINT8 i_nLength ) + : nLength( i_nLength ) {} + UINT8 Length() const { return nLength; } + + private: + virtual void do_StoreAt( + DocuDisplay & o_rDisplay ) const; + virtual bool inq_IsWhite() const; + + UINT8 nLength; +}; + + +class DT_Eol : public DocuToken +{ + virtual void do_StoreAt( + DocuDisplay & o_rDisplay ) const; + virtual bool inq_IsWhite() const; +}; + +class DT_Xml : public DocuToken +{ + public: + DT_Xml( + const char * i_sText ) + : sText( i_sText ) {} + + const udmstri & Text() const { return sText; } + + private: + virtual void do_StoreAt( + DocuDisplay & o_rDisplay ) const; + virtual bool inq_IsWhite() const; + + udmstri sText; +}; + + +// IMPLEMENTATION + +inline void +DocuToken::StoreAt( DocuDisplay & o_rDisplay ) const + { do_StoreAt(o_rDisplay); } +inline bool +DocuToken::IsWhite() const + { return inq_IsWhite(); } + + + +} +} + +#endif + diff --git a/autodoc/inc/ary/info/all_tags.hxx b/autodoc/inc/ary/info/all_tags.hxx new file mode 100644 index 000000000000..e33da7d1cf0a --- /dev/null +++ b/autodoc/inc/ary/info/all_tags.hxx @@ -0,0 +1,300 @@ +/************************************************************************* + * + * $RCSfile: all_tags.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:15 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_INFO_ALL_TAGS_HXX +#define ARY_INFO_ALL_TAGS_HXX + + + +// USED SERVICES + // BASE CLASSES +#include <ary/info/ci_attag.hxx> + // COMPONENTS +#include <ary/info/inftypes.hxx> +#include <ary/info/ci_text.hxx> +#include <ary/quname.hxx> + // PARAMETERS +#include <ary/ids.hxx> + + + +namespace ary +{ +namespace info +{ + + +class StdTag : public AtTag +{ + public: + StdTag( + E_AtTagId i_eId ); + + virtual bool Add_SpecialMeaningToken( + const char * i_sText, + intt i_nNr ); + void ChangeId2( + E_AtTagId i_eId ) + { eId = i_eId; } + + virtual UINT8 NrOfSpecialMeaningTokens() const; + virtual AtTag * GetFollower(); + + E_AtTagId Std_Id() const { return eId; } + + private: + virtual void do_StoreAt( + DocuDisplay & o_rDisplay ) const; + virtual DocuText * Text(); + + E_AtTagId eId; + DocuText aText; + StdTag * pNext; +}; + +class BaseTag : public AtTag +{ + public: + BaseTag(); + + virtual bool Add_SpecialMeaningToken( + const char * i_sText, + intt i_nNr ); + virtual const char * + Title() const; + virtual UINT8 NrOfSpecialMeaningTokens() const; + virtual AtTag * GetFollower(); + + private: + virtual DocuText * Text(); + + QualifiedName sBase; + DocuText aText; + AtTag * pNext; +}; + +class ExceptionTag : public AtTag +{ + public: + ExceptionTag(); + + virtual bool Add_SpecialMeaningToken( + const char * i_sText, + intt i_nNr ); + virtual const char * + Title() const; + virtual UINT8 NrOfSpecialMeaningTokens() const; + virtual AtTag * GetFollower(); + + private: + virtual DocuText * Text(); + + QualifiedName sException; + DocuText aText; + AtTag * pNext; +}; + +class ImplementsTag : public AtTag +{ + public: + ImplementsTag(); + + virtual bool Add_SpecialMeaningToken( + const char * i_sText, + intt i_nNr ); + virtual const char * + Title() const; + virtual UINT8 NrOfSpecialMeaningTokens() const; + virtual AtTag * GetFollower(); + + private: + virtual DocuText * Text(); + + QualifiedName sName; + AtTag * pNext; +}; + +class KeywordTag : public AtTag +{ + public: + KeywordTag(); + + virtual bool Add_SpecialMeaningToken( + const char * i_sText, + intt i_nNr ); + virtual const char * + Title() const; + virtual UINT8 NrOfSpecialMeaningTokens() const; + virtual AtTag * GetFollower(); + + private: + virtual DocuText * Text(); + + StringVector sKeys; +}; + +class ParameterTag : public AtTag +{ + public: + ParameterTag(); + + virtual bool Add_SpecialMeaningToken( + const char * i_sText, + intt i_nNr ); + + const udmstri & ParamName() const { return sName; } + const DocuText & CText() const { return aText; } + virtual UINT8 NrOfSpecialMeaningTokens() const; + virtual const ParameterTag * + GetNext() const { return dynamic_cast< ParameterTag* >(pNext); } + virtual AtTag * GetFollower(); + + private: + virtual void do_StoreAt( + DocuDisplay & o_rDisplay ) const; + virtual DocuText * Text(); + + udmstri sName; + udmstri sValidRange; + DocuText aText; + AtTag * pNext; +}; + +class SeeTag : public AtTag +{ + public: + SeeTag(); + + virtual bool Add_SpecialMeaningToken( + const char * i_sText, + intt i_nNr ); + virtual const char * + Title() const; + virtual UINT8 NrOfSpecialMeaningTokens() const; + virtual AtTag * GetFollower(); + + const std::vector< QualifiedName > & + References() const { return sReferences; } + private: + virtual void do_StoreAt( + DocuDisplay & o_rDisplay ) const; + virtual DocuText * Text(); + + std::vector< QualifiedName > + sReferences; +}; + +class TemplateTag : public AtTag +{ + public: + TemplateTag(); + + virtual bool Add_SpecialMeaningToken( + const char * i_sText, + intt i_nNr ); + const DocuText & CText() const { return aText; } + virtual const char * + Title() const; + const udmstri & TplParamName() const { return sName; } + virtual UINT8 NrOfSpecialMeaningTokens() const; + virtual const TemplateTag * + GetNext() const { return dynamic_cast< TemplateTag* >(pNext); } + virtual AtTag * GetFollower(); + + private: + virtual void do_StoreAt( + DocuDisplay & o_rDisplay ) const; + virtual DocuText * Text(); + + udmstri sName; + DocuText aText; + AtTag * pNext; +}; + +class LabelTag : public AtTag +{ + public: + LabelTag(); + + virtual bool Add_SpecialMeaningToken( + const char * i_sText, + intt i_nNr ); + virtual const char * + Title() const; + virtual UINT8 NrOfSpecialMeaningTokens() const; + virtual AtTag * GetFollower(); + + private: + virtual DocuText * Text(); + + udmstri sLabel; +}; + + + +// IMPLEMENTATION + + +} +} + +#endif + diff --git a/autodoc/inc/ary/info/ci_attag.hxx b/autodoc/inc/ary/info/ci_attag.hxx new file mode 100644 index 000000000000..2bc1ac6f5241 --- /dev/null +++ b/autodoc/inc/ary/info/ci_attag.hxx @@ -0,0 +1,135 @@ +/************************************************************************* + * + * $RCSfile: ci_attag.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:15 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_INFO_CI_ATTAG_HXX +#define ARY_INFO_CI_ATTAG_HXX + + + +// USED SERVICES + // BASE CLASSES + // COMPONENTS + // PARAMETERS + + + +namespace ary +{ +namespace info +{ + +class DocuText; +class DocuDisplay; + +class AtTag +{ + public: + virtual ~AtTag() {} + + void Set_HtmlUseInDocuText( + bool i_bUseIt ); + virtual bool Add_SpecialMeaningToken( /// @return false, if token was not spüecial. + const char * i_sText, + intt i_nNr ) = 0; + virtual void Add_Token( + const char * i_sText ); + virtual void Add_PotentialLink( + const char * i_sText, + bool i_bIsGlobal, + bool i_bIsFunction ); + virtual void Add_Whitespace( + UINT8 i_nLength ); + virtual void Add_Eol(); + + virtual UINT8 NrOfSpecialMeaningTokens() const = 0; + virtual AtTag * GetFollower() = 0; + + void StoreAt( + DocuDisplay & o_rDisplay ) const; + const DocuText & CText() const; + + private: + virtual void do_StoreAt( + DocuDisplay & o_rDisplay ) const; // later becoming abstract + + virtual DocuText * Text() = 0; +}; + + + +// IMPLEMENTATION + +inline void +AtTag::StoreAt( DocuDisplay & o_rDisplay ) const + { do_StoreAt(o_rDisplay); } +inline const DocuText & +AtTag::CText() const + { DocuText * ret = const_cast< AtTag* >(this)->Text(); + csv_assert( ret != 0 ); + return *ret; + } + + +} +} + +#endif + diff --git a/autodoc/inc/ary/info/ci_text.hxx b/autodoc/inc/ary/info/ci_text.hxx new file mode 100644 index 000000000000..fb821205d494 --- /dev/null +++ b/autodoc/inc/ary/info/ci_text.hxx @@ -0,0 +1,119 @@ +/************************************************************************* + * + * $RCSfile: ci_text.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:15 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_INFO_CI_TEXT_HXX +#define ARY_INFO_CI_TEXT_HXX + + + +// USED SERVICES + // BASE CLASSES + // COMPONENTS + // PARAMETERS + + +namespace ary +{ +namespace info +{ + +class DocuToken; +class DocuDisplay; + + +class DocuText +{ + public: + typedef std::vector< DocuToken * > TokenList; + + DocuText(); + ~DocuText(); + + void Set_HtmlUse( + bool i_bUseIt ) + { bUsesHtml = i_bUseIt; } + void Add_Token( + DYN DocuToken & let_drToken ) + { aTokens.push_back(&let_drToken); } + const TokenList & Tokens() const { return aTokens; } + void StoreAt( + DocuDisplay & o_rDisplay ) const; + bool IsNoHtml() const { return NOT bUsesHtml; } + bool IsEmpty() const { return aTokens.size() == 0; } + + private: + TokenList aTokens; + bool bUsesHtml; +}; + + + + + + +// IMPLEMENTATION + + +} +} + +#endif + diff --git a/autodoc/inc/ary/info/docstore.hxx b/autodoc/inc/ary/info/docstore.hxx new file mode 100644 index 000000000000..eeee4002ee11 --- /dev/null +++ b/autodoc/inc/ary/info/docstore.hxx @@ -0,0 +1,153 @@ +/************************************************************************* + * + * $RCSfile: docstore.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:15 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_INFO_DOCSTORE_HXX +#define ARY_INFO_DOCSTORE_HXX + + + +// USED SERVICES + // BASE CLASSES + // COMPONENTS + // PARAMETERS +#include <ary/info/inftypes.hxx> + +namespace ary +{ + class Documentation; + +namespace info +{ + +class DocuStore +{ + public: + virtual ~DocuStore() {} + + void Store2CurProject( + DYN Documentation & let_drDocu ); + void Store2CurFile( + DYN Documentation & let_drDocu ); + void Store2CurNamespace( + DYN Documentation & let_drDocu ); + + void Store2ConnectedDeclaration( + DYN Documentation & let_drDocu ); + + void Store2Glossary( + DYN Documentation & let_drDocu, + const udmstri & i_sExplainedTerm ); + void Store2GlobalTexts( + DYN Documentation & let_drDocu, + ary::info::GlobalTextId + i_nId ); + private: + virtual void do_Store2CurProject( + DYN Documentation & let_drDocu ) = 0; + virtual void do_Store2CurFile( + DYN Documentation & let_drDocu ) = 0; + virtual void do_Store2CurNamespace( + DYN Documentation & let_drDocu ) = 0; + + virtual void do_Store2ConnectedDeclaration( + DYN Documentation & let_drDocu ) = 0; + + virtual void do_Store2Glossary( + DYN Documentation & let_drDocu, + const udmstri & i_sExplainedTerm ) = 0; + virtual void do_Store2GlobalTexts( + DYN Documentation & let_drDocu, + ary::info::GlobalTextId + i_nId ) = 0; +}; + + +// IMPLEMENTATION + + +inline void +DocuStore::Store2CurProject( DYN Documentation & let_drDocu ) + { do_Store2CurProject(let_drDocu); } +inline void +DocuStore::Store2CurFile( DYN Documentation & let_drDocu ) + { do_Store2CurFile(let_drDocu); } +inline void +DocuStore::Store2CurNamespace( DYN Documentation & let_drDocu ) + { do_Store2CurNamespace(let_drDocu); } +inline void +DocuStore::Store2ConnectedDeclaration( DYN Documentation & let_drDocu ) + { do_Store2ConnectedDeclaration(let_drDocu); } +inline void +DocuStore::Store2Glossary( DYN Documentation & let_drDocu, + const udmstri & i_sExplainedTerm ) + { do_Store2Glossary(let_drDocu, i_sExplainedTerm); } +inline void +DocuStore::Store2GlobalTexts( DYN Documentation & let_drDocu, + ary::info::GlobalTextId i_nId ) + { do_Store2GlobalTexts(let_drDocu, i_nId); } + + +} // namespace info +} // namespace ary + + +#endif + diff --git a/autodoc/inc/ary/info/infodisp.hxx b/autodoc/inc/ary/info/infodisp.hxx new file mode 100644 index 000000000000..8125ed6dceda --- /dev/null +++ b/autodoc/inc/ary/info/infodisp.hxx @@ -0,0 +1,150 @@ +/************************************************************************* + * + * $RCSfile: infodisp.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:15 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_INFO_INFODISP_HXX +#define ARY_INFO_INFODISP_HXX + +// USED SERVICES + // BASE CLASSES +// #include <udm/display.hxx> + // COMPONENTS + // PARAMETERS + +namespace ary +{ +namespace info +{ + +class CodeInfo; +class StdTag; +class BaseTag; +class ExceptionTag; +class ImplementsTag; +class KeywordTag; +class ParameterTag; +class SeeTag; +class TemplateTag; +class LabelTag; +class DT_Text; +class DT_MaybeLink; +class DT_Whitespace; +class DT_Eol; +class DT_Xml; + + + +/** Displaying an ary::info::CodeInfo. + + @descr + This class is an interface, but the functions are defaulted, + to do nothing. so a derived class needn't implement all of them. +*/ +class DocuDisplay +{ + public: + virtual ~DocuDisplay() {} + + virtual void Display_CodeInfo( + const CodeInfo & i_rData ); + + virtual void Display_StdTag( + const StdTag & i_rData ); + virtual void Display_BaseTag( + const BaseTag & i_rData ); + virtual void Display_ExceptionTag( + const ExceptionTag & + i_rData ); + virtual void Display_ImplementsTag( + const ImplementsTag & + i_rData ); + virtual void Display_KeywordTag( + const KeywordTag & i_rData ); + virtual void Display_ParameterTag( + const ParameterTag & + i_rData ); + virtual void Display_SeeTag( + const SeeTag & i_rData ); + virtual void Display_TemplateTag( + const TemplateTag & i_rData ); + virtual void Display_LabelTag( + const LabelTag & i_rData ); + + virtual void Display_DT_Text( + const DT_Text & i_rData ); + virtual void Display_DT_MaybeLink( + const DT_MaybeLink& i_rData ); + virtual void Display_DT_Whitespace( + const DT_Whitespace & + i_rData ); + virtual void Display_DT_Eol( + const DT_Eol & i_rData ); + virtual void Display_DT_Xml( + const ary::info::DT_Xml & + i_rData ); +}; + + +} +} + +#endif + + diff --git a/autodoc/inc/ary/info/inftypes.hxx b/autodoc/inc/ary/info/inftypes.hxx new file mode 100644 index 000000000000..19ee4be34300 --- /dev/null +++ b/autodoc/inc/ary/info/inftypes.hxx @@ -0,0 +1,155 @@ +/************************************************************************* + * + * $RCSfile: inftypes.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:15 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_INFO_INFTYPES_HXX +#define ARY_INFO_INFTYPES_HXX + + +// USED SERVICES + // BASE CLASSES + // COMPONENTS + // PARAMETERS + + +namespace ary +{ +namespace info +{ + + + + +typedef uintt GlobalTextId; + + + +/** Because this enum is used as index list for displayed + tag headlines, the items must neither be moved nor deleted. + Only adding to the end is allowed. atid_MAX always has to exist + and to be the last used value. + Also assigning numbers to the values is forbidden. +*/ +enum E_AtTagId +{ + atid_ATT = 0, + atid_author, + atid_change, + atid_collab, + atid_contact, + + atid_copyright, + atid_deprecated, + atid_descr, + atid_docdate, + atid_derive, + + atid_dyn, + atid_instance, + atid_interface, + atid_invariant, + atid_life, + + atid_multi, + atid_onerror, + atid_persist, + atid_postcond, + atid_precond, + + atid_resp, + atid_return, + atid_short, + atid_todo, + atid_version, + + atid_MAX +}; + +/** Because this enum is used as index list for displayed + tag headlines, the items must neither be moved nor deleted. + Only adding to the end is allowed. C_eAtTag_NrOfClasses always has to exist + and to be the last used value. + Also assigning other numbers to the values, than in this + existing scheme, is forbidden. +*/ +enum E_AtTagClass +{ + atc_std = 0, + + atc_base = atid_MAX, + atc_exception = atid_MAX + 1, + atc_implements = atid_MAX + 2, + atc_keyword = atid_MAX + 3, + atc_parameter = atid_MAX + 4, + + atc_see = atid_MAX + 5, + atc_template = atid_MAX + 6, + atc_label = atid_MAX + 7, + C_eAtTag_NrOfClasses +}; + + + +} // namespace info +} // namespace ary + + +#endif + diff --git a/autodoc/inc/ary/loc/loc_dir.hxx b/autodoc/inc/ary/loc/loc_dir.hxx new file mode 100644 index 000000000000..6e7b9be9ae2c --- /dev/null +++ b/autodoc/inc/ary/loc/loc_dir.hxx @@ -0,0 +1,156 @@ +/************************************************************************* + * + * $RCSfile: loc_dir.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:15 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_LOC_LOC_DIR_HXX +#define ARY_LOC_LOC_DIR_HXX + +// USED SERVICES + // BASE CLASSES + // COMPONENTS +#include <ary/ids.hxx> + // PARAMETERS + + +namespace ary +{ +namespace loc +{ + + +class Directory +{ + public: + typedef std::map< udmstri, Lid > Map_Children; + + // LIFECYCLE + virtual ~Directory() {} + + + // OPERATIONS + void Add_ChildDir( + const udmstri & i_sName, + Lid i_nId ); + void Add_File( + const udmstri & i_sName, + Lid i_nId ); + //INQUIRY + Lid Id() const; + const Map_Children & + ChildDirs() const; + + const Map_Children & + Files() const; + // ACCESS + Map_Children & ChildDirs(); + Map_Children & Files(); + + protected: + Directory( + Lid i_nId ); + private: + Map_Children aChildDirs; + Map_Children aFiles; + Lid nId; +}; + +class SubDirectory : public Directory +{ + public: + SubDirectory( + Lid i_nId, + const udmstri & i_sName, + Lid i_nParentDirectory ); + //INQUIRY + const udmstri & Name() const; + + private: + udmstri sName; + Lid nParentDirectory; +}; + + +// IMPLEMENTATION + +inline Lid +Directory::Id() const + { return nId; } +inline const Directory::Map_Children & +Directory::ChildDirs() const + { return aChildDirs; } +inline const Directory::Map_Children & +Directory::Files() const + { return aFiles; } +inline Directory::Map_Children & +Directory::ChildDirs() + { return aChildDirs; } +inline Directory::Map_Children & +Directory::Files() + { return aFiles; } +inline const udmstri & +SubDirectory::Name() const + { return sName; } + + +} // namespace loc +} // namespace ary + +#endif + diff --git a/autodoc/inc/ary/loc/loc_file.hxx b/autodoc/inc/ary/loc/loc_file.hxx new file mode 100644 index 000000000000..3feb05fc82db --- /dev/null +++ b/autodoc/inc/ary/loc/loc_file.hxx @@ -0,0 +1,115 @@ +/************************************************************************* + * + * $RCSfile: loc_file.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:15 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_LOC_LOC_FILE_HXX +#define ARY_LOC_LOC_FILE_HXX + +// USED SERVICES + // BASE CLASSES + // COMPONENTS +#include <ary/ids.hxx> + // PARAMETERS + + +namespace ary +{ +namespace loc +{ + + +class SourceCodeFile +{ + public: + SourceCodeFile( + Lid i_nId, + Lid i_nRoot, + Lid i_nDirectory, + const udmstri & i_sName ); + //INQUIRY + Lid Id() const; + Lid Root() const; + const udmstri & Name() const; + + private: + Lid nId; + Lid nRoot; + Lid nDirectory; + udmstri sName; +}; + +// IMPLEMENTATION + +inline Lid +SourceCodeFile::Id() const + { return nId; } +inline Lid +SourceCodeFile::Root() const + { return nRoot; } +inline const udmstri & +SourceCodeFile::Name() const + { return sName; } + + +} // namespace loc +} // namespace ary + +#endif + diff --git a/autodoc/inc/ary/loc/loc_root.hxx b/autodoc/inc/ary/loc/loc_root.hxx new file mode 100644 index 000000000000..984dcc7e302f --- /dev/null +++ b/autodoc/inc/ary/loc/loc_root.hxx @@ -0,0 +1,109 @@ +/************************************************************************* + * + * $RCSfile: loc_root.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:15 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_LOC_PROJECT_HXX +#define ARY_LOC_PROJECT_HXX + +// USED SERVICES + // BASE CLASSES +#include <ary/loc/loc_dir.hxx> + // COMPONENTS +#include <ary/ids.hxx> +#include <cosv/ploc.hxx> + // PARAMETERS + + +namespace ary +{ +namespace loc +{ + + +class LocationRoot : public Directory +{ + public: + LocationRoot( + Lid i_nId, + const csv::ploc::Path & + i_rRootDirectoryPath ); + // INQUIRY + const csv::ploc::Path & + RootDirectoryPath() const; + + private: + csv::ploc::Path aRootDirectoryPath; +}; + + + +// IMPLEMENTATION + +inline const csv::ploc::Path & +LocationRoot::RootDirectoryPath() const + { return aRootDirectoryPath; } + + + +} // namespace loc +} // namespace ary + +#endif + diff --git a/autodoc/inc/ary_i/ci_atag2.hxx b/autodoc/inc/ary_i/ci_atag2.hxx new file mode 100644 index 000000000000..3456882ce159 --- /dev/null +++ b/autodoc/inc/ary_i/ci_atag2.hxx @@ -0,0 +1,112 @@ +/************************************************************************* + * + * $RCSfile: ci_atag2.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:15 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_CI_ATAG2_HXX +#define ARY_CI_ATAG2_HXX + + + +// USED SERVICES + // BASE CLASSES + // COMPONENTS +#include <ary_i/ci_text2.hxx> + // PARAMETERS + + + +namespace ary +{ +namespace info +{ + + +class DocumentationDisplay; + +class AtTag2 +{ + public: + virtual ~AtTag2() {} + + virtual void DisplayAt( + DocumentationDisplay & + o_rDisplay ) const = 0; + + const char * Title() const { return sTitle; } + const DocuTex2 & Text() const { return aText; } + + protected: + AtTag2( + const char * i_sTitle) + : sTitle(i_sTitle) {} + udmstri sTitle; + DocuTex2 aText; +}; + + + +// IMPLEMENTATION + +} // namespace info +} // namespace ary + + +#endif + diff --git a/autodoc/inc/ary_i/ci_text2.hxx b/autodoc/inc/ary_i/ci_text2.hxx new file mode 100644 index 000000000000..25c8e8b4f6e9 --- /dev/null +++ b/autodoc/inc/ary_i/ci_text2.hxx @@ -0,0 +1,124 @@ +/************************************************************************* + * + * $RCSfile: ci_text2.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:15 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_CINFO_CI_TEXT2_HXX +#define ARY_CINFO_CI_TEXT2_HXX + + + +// USED SERVICES + // BASE CLASSES + // COMPONENTS + // PARAMETERS + + +namespace ary +{ +namespace info +{ + + +class DocumentationDisplay; + + +class DocuToken +{ + public: + virtual ~DocuToken() {} + virtual void DisplayAt( + DocumentationDisplay & + o_rDisplay ) const = 0; +}; + + +class DocuTex2 +{ + public: + typedef std::vector< DocuToken * > TokenList; + + DocuTex2(); + ~DocuTex2(); + + virtual void DisplayAt( + DocumentationDisplay & + o_rDisplay ) const; + + void AddToken( + DYN DocuToken & let_drToken ) + { aTokens.push_back(&let_drToken); } + const TokenList & Tokens() const { return aTokens; } + bool IsEmpty() const; + + + private: + TokenList aTokens; +}; + + + +// IMPLEMENTATION + +} // namespace info +} // namespace ary + + +#endif + diff --git a/autodoc/inc/ary_i/disdocum.hxx b/autodoc/inc/ary_i/disdocum.hxx new file mode 100644 index 000000000000..63eb62ab7dfc --- /dev/null +++ b/autodoc/inc/ary_i/disdocum.hxx @@ -0,0 +1,133 @@ +/************************************************************************* + * + * $RCSfile: disdocum.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:16 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ARY_DISDOCUM_HXX +#define ARY_DISDOCUM_HXX + + + +// USED SERVICES + // BASE CLASSES + // COMPONENTS + // PARAMETERS + + +namespace csi +{ +namespace dsapi +{ +class DT_TextToken; +class DT_MupType; +class DT_MupMember; +class DT_MupConst; +class DT_Style; +class DT_EOL; +class DT_StdAtTag; +class DT_SeeAlsoAtTag; +class DT_ParameterAtTag; +} // namespace dsapi +} // namespace csi + + +namespace ary +{ +namespace info +{ + + + +class DocumentationDisplay +{ + public: + + virtual ~DocumentationDisplay() { } + + virtual void Display_TextToken( + const csi::dsapi::DT_TextToken & + i_rToken ) = 0; + virtual void Display_MupType( + const csi::dsapi::DT_MupType & i_rToken ) = 0; + virtual void Display_MupMember( + const csi::dsapi::DT_MupMember & + i_rToken ) = 0; + virtual void Display_MupConst( + const csi::dsapi::DT_MupConst & + i_rToken ) = 0; + virtual void Display_Style( + const csi::dsapi::DT_Style & i_rToken ) = 0; + virtual void Display_EOL() = 0; + virtual void Display_StdAtTag( + const csi::dsapi::DT_StdAtTag & + i_rToken ) = 0; + virtual void Display_SeeAlsoAtTag( + const csi::dsapi::DT_SeeAlsoAtTag & + i_rToken ) = 0; + virtual void Display_ParameterAtTag( + const csi::dsapi::DT_ParameterAtTag & + i_rToken ) = 0; +}; + +} // namespace info +} // namespace ary + + +#endif + diff --git a/autodoc/inc/autodoc/displaying.hxx b/autodoc/inc/autodoc/displaying.hxx new file mode 100644 index 000000000000..e49f54609b07 --- /dev/null +++ b/autodoc/inc/autodoc/displaying.hxx @@ -0,0 +1,107 @@ +/************************************************************************* + * + * $RCSfile: displaying.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:16 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef AUTODOC_DISPLAYING_HXX +#define AUTODOC_DISPLAYING_HXX + + +namespace display +{ + class CorporateFrame; +} + + + +namespace autodoc +{ + +class HtmlDisplay_UdkStd; +// 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 const display::CorporateFrame & + Create_StdFrame() const = 0; +}; + + +} // namespace autodoc + + + +#endif + diff --git a/autodoc/inc/autodoc/dsp_html_std.hxx b/autodoc/inc/autodoc/dsp_html_std.hxx new file mode 100644 index 000000000000..c913cabd46f4 --- /dev/null +++ b/autodoc/inc/autodoc/dsp_html_std.hxx @@ -0,0 +1,213 @@ +/************************************************************************* + * + * $RCSfile: dsp_html_std.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:16 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef AUTODOC_DSP_HTML_STD_HXX +#define AUTODOC_DSP_HTML_STD_HXX + + + +namespace ary +{ + namespace cpp + { + class DisplayGate; + } +} + +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::DisplayGate & + i_rAryGate, + const display::CorporateFrame & + i_rLayout, + const StringVector * + i_pProjectList = 0 ); + private: + virtual void do_Run( + const char * i_sOutputDirectory, + const ary::cpp::DisplayGate & + i_rAryGate, + const display::CorporateFrame & + i_rLayout, + const StringVector * + i_pProjectList ) = 0; +}; + +// IMPLEMENTATION + +inline void +HtmlDisplay_UdkStd::Run( const char * i_sOutputDirectory, + const ary::cpp::DisplayGate & i_rAryGate, + const display::CorporateFrame & i_rLayout, + const StringVector * i_pProjectList ) + { do_Run( i_sOutputDirectory, i_rAryGate, i_rLayout, i_pProjectList ); } + + + +} // namespace autodoc + + +#endif + + diff --git a/autodoc/inc/autodoc/dsp_txt_flist.hxx b/autodoc/inc/autodoc/dsp_txt_flist.hxx new file mode 100644 index 000000000000..343ea0d4e044 --- /dev/null +++ b/autodoc/inc/autodoc/dsp_txt_flist.hxx @@ -0,0 +1,99 @@ +/************************************************************************* + * + * $RCSfile: dsp_txt_flist.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:16 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#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 + diff --git a/autodoc/inc/autodoc/filecoli.hxx b/autodoc/inc/autodoc/filecoli.hxx new file mode 100644 index 000000000000..710ae8930fd7 --- /dev/null +++ b/autodoc/inc/autodoc/filecoli.hxx @@ -0,0 +1,106 @@ +/************************************************************************* + * + * $RCSfile: filecoli.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:16 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#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 + diff --git a/autodoc/inc/autodoc/parsing.hxx b/autodoc/inc/autodoc/parsing.hxx new file mode 100644 index 000000000000..988583bf4f83 --- /dev/null +++ b/autodoc/inc/autodoc/parsing.hxx @@ -0,0 +1,112 @@ +/************************************************************************* + * + * $RCSfile: parsing.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:16 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#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 + diff --git a/autodoc/inc/autodoc/prs_code.hxx b/autodoc/inc/autodoc/prs_code.hxx new file mode 100644 index 000000000000..9c4ede5c90ba --- /dev/null +++ b/autodoc/inc/autodoc/prs_code.hxx @@ -0,0 +1,113 @@ +/************************************************************************* + * + * $RCSfile: prs_code.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:16 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#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 udmstri & i_sProjectName, + csv::ploc::Path & i_rProjectRootDirectory, + const autodoc::FileCollector_Ifc & + i_rFiles ) = 0; +}; + + +} // namespace autodoc + + + +#endif + diff --git a/autodoc/inc/autodoc/prs_docu.hxx b/autodoc/inc/autodoc/prs_docu.hxx new file mode 100644 index 000000000000..257b8f8b6321 --- /dev/null +++ b/autodoc/inc/autodoc/prs_docu.hxx @@ -0,0 +1,93 @@ +/************************************************************************* + * + * $RCSfile: prs_docu.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:16 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#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 + diff --git a/autodoc/inc/autodoc/x_parsing.hxx b/autodoc/inc/autodoc/x_parsing.hxx new file mode 100644 index 000000000000..6624f4a3ced0 --- /dev/null +++ b/autodoc/inc/autodoc/x_parsing.hxx @@ -0,0 +1,109 @@ +/************************************************************************* + * + * $RCSfile: x_parsing.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:16 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef AUTODOC_X_PARSING_HXX +#define AUTODOC_X_PARSING_HXX + +// USED SERVICES + // BASE CLASSES + // COMPONENTS + // PARAMETERS + +#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( + ostream & o_rOutputMedium ) const = 0; +}; + + +} // namespace autodoc + +ostream & operator<<( + ostream & o_rOut, + const autodoc::X_Parser_Ifc & + i_rException ); + + + +#endif + diff --git a/autodoc/inc/parser/parser.hxx b/autodoc/inc/parser/parser.hxx new file mode 100644 index 000000000000..51f8a6a6c395 --- /dev/null +++ b/autodoc/inc/parser/parser.hxx @@ -0,0 +1,91 @@ +/************************************************************************* + * + * $RCSfile: parser.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:17 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ADC_PARSER_HXX +#define ADC_PARSER_HXX + + + +// USED SERVICES + // BASE CLASSES + // COMPONENTS + // PARAMETERS + +namespace autodoc +{ + class FileCollector_Ifc; +} + + +class CodeParser +{ + public: + virtual ~CodeParser() {} + + virtual void Run( + const autodoc::FileCollector_Ifc & + i_rFiles ) = 0; +}; + + + +#endif + diff --git a/autodoc/inc/parser/unoidl.hxx b/autodoc/inc/parser/unoidl.hxx new file mode 100644 index 000000000000..d4683297fb3e --- /dev/null +++ b/autodoc/inc/parser/unoidl.hxx @@ -0,0 +1,114 @@ +/************************************************************************* + * + * $RCSfile: unoidl.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: np $ $Date: 2002-03-08 14:45:17 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef ADC_UNOIDL_HXX +#define ADC_UNOIDL_HXX + + + +// USED SERVICES + // BASE CLASSES +#include <parser/parser.hxx> + // COMPONENTS + // PARAMETERS + + +namespace ary +{ + class Repository; +} +namespace autodoc +{ + class FileCollector_Ifc; +} + +namespace csi +{ +namespace uidl +{ + + +class Uidl_Parser : public ::CodeParser +{ + public: + Uidl_Parser( + ary::Repository & io_rRepository ); + + virtual void Run( + const autodoc::FileCollector_Ifc & + i_rFiles ); + + private: + // DATA + ary::Repository * pRepository; +}; + + + +// IMPLEMENTATION + + +} // namespace uidl +} // namespace csi + + +#endif + |