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_STD_HXX
25 #define ADC_ADOC_CX_A_STD_HXX
26 
27 // USED SERVICES
28 	// BASE CLASSES
29 #include <tokens/tkpcontx.hxx>
30 	// COMPONENTS
31 #include <tokens/tkpstama.hxx>
32 	// PARAMETERS
33 
34 class TextToken;
35 
36 
37 namespace adoc {
38 
39 class Cx_LineStart;
40 class Cx_CheckStar;
41 class Cx_AtTagCompletion;
42 
43 
44 /**
45 @descr
46 */
47 class Context_AdocStd : public autodoc::TkpDocuContext,
48 						private StateMachineContext
49 {
50   public:
51 	// 	LIFECYCLE
52 						Context_AdocStd();
53 	virtual void	  	SetParentContext(
54 							TkpContext &		io_rParentContext,
55 							const char *		i_sMultiLineEndToken );
56 						~Context_AdocStd();
57 
58 	//	OPERATIONS
59 	virtual void	  	AssignDealer(
60 							TokenDealer &		o_rDealer );
61 
62 	virtual void		ReadCharChain(
63 							CharacterSource &	io_rText );
64 	virtual bool		PassNewToken();
65 	virtual void	   	SetMode_IsMultiLine(
66 							bool				i_bTrue );
67 	//	INQUIRY
68 	virtual TkpContext &
69 						FollowUpContext();
70   private:
71 	//	SERVICE FUNCTIONS
72 	virtual	void		PerformStatusFunction(
73 							uintt				i_nStatusSignal,
74 							F_CRTOK		        i_fTokenCreateFunction,
75 							CharacterSource &	io_rText );
76 
77 	void				SetupStateMachine();
78 
79 	//	DATA
80 	StateMachine		aStateMachine;
81 	TokenDealer *		pDealer;
82 
83 		// Contexts
84 	TkpContext *    	pParentContext;
85 	TkpContext *		pFollowUpContext;
86 	Dyn<Cx_LineStart>	pCx_LineStart;
87 	Dyn<Cx_CheckStar>	pCx_CheckStar;
88 	Dyn<Cx_AtTagCompletion>
89 						pCx_AtTagCompletion;
90 
91 		// Temporary data, used during ReadCharChain()
92 	Dyn<TextToken>		pNewToken;
93 	bool                bIsMultiline;
94 };
95 
96 
97 }   // namespace adoc
98 
99 
100 #endif
101 
102