1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 #ifndef ADC_DSAPI_DOCU_PE2_HXX 29 #define ADC_DSAPI_DOCU_PE2_HXX 30 31 32 33 // USED SERVICES 34 // BASE CLASSES 35 #include <s2_dsapi/tokintpr.hxx> 36 // COMPONENTS 37 // PARAMETERS 38 39 class ParserInfo; 40 41 namespace ary 42 { 43 namespace doc 44 { 45 class OldIdlDocu; 46 } 47 48 namespace inf 49 { 50 class DocuToken; 51 } // namespace info 52 } // namespace ary 53 54 55 56 namespace csi 57 { 58 namespace dsapi 59 { 60 61 62 class Token; 63 class DT_AtTag; 64 65 class SapiDocu_PE : public TokenInterpreter 66 { 67 public: 68 SapiDocu_PE( 69 ParserInfo & io_rPositionInfo ); 70 ~SapiDocu_PE(); 71 72 void ProcessToken( 73 DYN csi::dsapi::Token & 74 let_drToken ); 75 76 virtual void Process_AtTag( 77 const Tok_AtTag & i_rToken ); 78 virtual void Process_HtmlTag( 79 const Tok_HtmlTag & i_rToken ); 80 virtual void Process_XmlConst( 81 const Tok_XmlConst & 82 i_rToken ); 83 virtual void Process_XmlLink_BeginTag( 84 const Tok_XmlLink_BeginTag & 85 i_rToken ); 86 virtual void Process_XmlLink_EndTag( 87 const Tok_XmlLink_EndTag & 88 i_rToken ); 89 virtual void Process_XmlFormat_BeginTag( 90 const Tok_XmlFormat_BeginTag & 91 i_rToken ); 92 virtual void Process_XmlFormat_EndTag( 93 const Tok_XmlFormat_EndTag & 94 i_rToken ); 95 virtual void Process_Word( 96 const Tok_Word & i_rToken ); 97 virtual void Process_Comma(); 98 virtual void Process_DocuEnd(); 99 virtual void Process_EOL(); 100 virtual void Process_White(); 101 102 103 DYN ary::doc::OldIdlDocu * 104 ReleaseJustParsedDocu(); 105 106 bool IsComplete() const; 107 108 private: 109 enum E_State 110 { 111 e_none = 0, 112 st_short, 113 st_description, 114 st_attags, 115 st_complete 116 }; 117 118 typedef void ( SapiDocu_PE::*F_TokenAdder )( DYN ary::inf::DocuToken & let_drNewToken ); 119 120 void AddDocuToken2Void( 121 DYN ary::inf::DocuToken & 122 let_drNewToken ); 123 void AddDocuToken2Short( 124 DYN ary::inf::DocuToken & 125 let_drNewToken ); 126 void AddDocuToken2Description( 127 DYN ary::inf::DocuToken & 128 let_drNewToken ); 129 void AddDocuToken2Deprecated( 130 DYN ary::inf::DocuToken & 131 let_drNewToken ); 132 void AddDocuToken2CurAtTag( 133 DYN ary::inf::DocuToken & 134 let_drNewToken ); 135 void SetCurParameterAtTagName( 136 DYN ary::inf::DocuToken & 137 let_drNewToken ); 138 void SetCurSeeAlsoAtTagLinkText( 139 DYN ary::inf::DocuToken & 140 let_drNewToken ); 141 void SetCurSeeAlsoAtTagLinkText_2( 142 DYN ary::inf::DocuToken & 143 let_drNewToken ); 144 void SetCurSeeAlsoAtTagLinkText_3( 145 DYN ary::inf::DocuToken & 146 let_drNewToken ); 147 void SetCurSinceAtTagVersion_OOo( 148 DYN ary::inf::DocuToken & 149 let_drNewToken ); 150 void SetCurSinceAtTagVersion_Number( 151 DYN ary::inf::DocuToken & 152 let_drNewToken ); 153 void AddDocuToken2SinceAtTag( 154 DYN ary::inf::DocuToken & 155 let_drNewToken ); 156 157 bool CheckVersionSyntax_OOo( 158 const String & i_versionPart1 ); 159 bool CheckVersionSyntax_Number( 160 const String & i_versionPart2 ); 161 // DATA 162 Dyn<ary::doc::OldIdlDocu> 163 pDocu; 164 E_State eState; 165 ParserInfo * pPositionInfo; 166 F_TokenAdder fCurTokenAddFunction; 167 168 Dyn<DT_AtTag> pCurAtTag; 169 String sCurDimAttribute; 170 StreamStr sCurAtSeeType_byXML; 171 }; 172 173 } // namespace dsapi 174 } // namespace csi 175 176 177 // IMPLEMENTATION 178 179 180 #endif 181 182