xref: /AOO41X/main/autodoc/source/parser/inc/adoc/cx_a_sub.hxx (revision 1c78a5d6c0093dece4c096ba53051800fbad6e33)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef ADC_ADOC_CX_A_SUB_HXX
25 #define ADC_ADOC_CX_A_SUB_HXX
26 
27 // USED SERVICES
28     // BASE CLASSES
29 #include <tokens/tkpcontx.hxx>
30     // COMPONENTS
31 #include <tokens/tkpstama.hxx>
32     // PARAMETERS
33 #include <tokens/token.hxx>
34 
35 
36 namespace adoc {
37 
38 
39 
40 
41 class Cx_LineStart : public TkpContext
42 {
43   public:
44                         Cx_LineStart(
45                             TkpContext &        i_rFollowUpContext );
46 
47     virtual void        ReadCharChain(
48                             CharacterSource &   io_rText );
49     virtual bool        PassNewToken();
50     virtual TkpContext &
51                         FollowUpContext();
52 
SetCurToken(TextToken::F_CRTOK i_fTokenCreateFunction)53     void                SetCurToken(
54                             TextToken::F_CRTOK  i_fTokenCreateFunction )
55                                                 { fCur_TokenCreateFunction = i_fTokenCreateFunction; }
AssignDealer(TokenDealer & o_rDealer)56     void                AssignDealer(
57                             TokenDealer &       o_rDealer )
58                                                 { pDealer = &o_rDealer; }
59   private:
60     // DATA
61     TokenDealer *       pDealer;
62     TkpContext *        pFollowUpContext;
63 
64     Dyn<TextToken>      pNewToken;
65 
66     TextToken::F_CRTOK  fCur_TokenCreateFunction;
67 };
68 
69 
70 /**
71 @descr
72 */
73 
74 class Cx_CheckStar : public TkpContext
75 {
76   public:
77     // LIFECYCLE
78                         Cx_CheckStar(
79                             TkpContext &        i_rFollowUpContext );
Set_End_FollowUpContext(TkpContext & i_rEnd_FollowUpContext)80     void                Set_End_FollowUpContext(
81                             TkpContext &        i_rEnd_FollowUpContext )
82                                                 { pEnd_FollowUpContext = &i_rEnd_FollowUpContext; }
83 
84     virtual void        ReadCharChain(
85                             CharacterSource &   io_rText );
86     virtual bool        PassNewToken();
87 
SetCanBeEnd(bool i_bCanBeEnd)88     void                SetCanBeEnd(
89                             bool                i_bCanBeEnd  )
90                                                 { bCanBeEnd = i_bCanBeEnd; }
91     virtual TkpContext &
92                         FollowUpContext();
AssignDealer(TokenDealer & o_rDealer)93     void                AssignDealer(
94                             TokenDealer &       o_rDealer )
95                                                 { pDealer = &o_rDealer; }
96   private:
97     // DATA
98     TokenDealer *       pDealer;
99     TkpContext *        pFollowUpContext;
100     TkpContext *        pEnd_FollowUpContext;
101 
102     Dyn<TextToken>      pNewToken;
103 
104     bool                bCanBeEnd;
105     bool                bEndTokenFound;
106 };
107 
108 
109 class Cx_AtTagCompletion : public TkpContext
110 {
111   public:
112                         Cx_AtTagCompletion(
113                             TkpContext &        i_rFollowUpContext );
114 
115     virtual void        ReadCharChain(
116                             CharacterSource &   io_rText );
117     virtual bool        PassNewToken();
118     virtual TkpContext &
119                         FollowUpContext();
120 
SetCurToken(TextToken::F_CRTOK i_fTokenCreateFunction)121     void                SetCurToken(
122                             TextToken::F_CRTOK  i_fTokenCreateFunction )
123                                                 { fCur_TokenCreateFunction = i_fTokenCreateFunction; }
AssignDealer(TokenDealer & o_rDealer)124     void                AssignDealer(
125                             TokenDealer &       o_rDealer )
126                                                 { pDealer = &o_rDealer; }
127   private:
128     // DATA
129     TokenDealer *       pDealer;
130     TkpContext *        pFollowUpContext;
131 
132     Dyn<TextToken>      pNewToken;
133 
134     TextToken::F_CRTOK  fCur_TokenCreateFunction;
135 };
136 
137 
138 }   // namespace adoc
139 
140 
141 #endif
142 
143