xref: /trunk/main/autodoc/source/parser_i/inc/s2_dsapi/docu_pe2.hxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
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