merge the formfield patch from ooo-build
[ooovba.git] / autodoc / source / parser / cpp / pe_base.hxx
blob11afd37ed2b35b70b40d39280511e5a85f678cda
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: pe_base.hxx,v $
10 * $Revision: 1.5 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
32 #ifndef ADC_CPP_PE_BASE_HXX
33 #define ADC_CPP_PE_BASE_HXX
35 // BASE CLASSES
36 #include "cpp_pe.hxx"
37 // USED SERVICES
38 #include <semantic/callf.hxx>
39 #include <semantic/sub_peu.hxx>
40 #include <ary/cpp/c_types4cpp.hxx>
41 #include <ary/cpp/c_slntry.hxx>
45 namespace cpp
48 class PE_Type;
50 class PE_Base : public Cpp_PE
52 public:
53 enum E_State
55 startOfNext,
56 inName,
57 size_of_states
60 typedef ary::cpp::List_Bases BaseList;
61 typedef ary::cpp::S_Classes_Base Base;
63 PE_Base(
64 Cpp_PE * i_pParent );
65 ~PE_Base();
67 const BaseList & Result_BaseIds() const;
69 virtual void Call_Handler(
70 const cpp::Token & i_rTok );
72 private:
73 typedef SubPe< PE_Base, PE_Type > SP_Type;
74 typedef SubPeUse< PE_Base, PE_Type> SPU_BaseName;
76 void Setup_StatusFunctions();
77 virtual void InitData();
78 virtual void TransferData();
79 void Hdl_SyntaxError( const char *);
81 void SpReturn_BaseName();
83 void On_startOfNext_Identifier(const char *);
84 void On_startOfNext_public(const char *);
85 void On_startOfNext_protected(const char *);
86 void On_startOfNext_private(const char *);
87 void On_startOfNext_virtual(const char *);
88 void On_startOfNext_DoubleColon(const char *);
90 void On_inName_Identifier(const char *);
91 void On_inName_virtual(const char *);
92 void On_inName_SwBracket_Left(const char *);
93 void On_inName_DoubleColon(const char *);
94 void On_inName_Comma(const char *);
96 Base & CurObject();
98 // DATA
99 Dyn< PeStatusArray<PE_Base> >
100 pStati;
102 Dyn<SP_Type> pSpType; /// till "{" incl.
103 Dyn<SPU_BaseName> pSpuBaseName;
105 BaseList aBaseIds;
110 // IMPLEMENTATION
112 inline const PE_Base::BaseList &
113 PE_Base::Result_BaseIds() const
114 { return aBaseIds; }
117 inline PE_Base::Base &
118 PE_Base::CurObject()
119 { return aBaseIds.back(); }
125 } // namespace cpp
126 #endif