11c78a5d6SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
31c78a5d6SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
41c78a5d6SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
51c78a5d6SAndrew Rist  * distributed with this work for additional information
61c78a5d6SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
71c78a5d6SAndrew Rist  * to you under the Apache License, Version 2.0 (the
81c78a5d6SAndrew Rist  * "License"); you may not use this file except in compliance
91c78a5d6SAndrew Rist  * with the License.  You may obtain a copy of the License at
101c78a5d6SAndrew Rist  *
111c78a5d6SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
121c78a5d6SAndrew Rist  *
131c78a5d6SAndrew Rist  * Unless required by applicable law or agreed to in writing,
141c78a5d6SAndrew Rist  * software distributed under the License is distributed on an
151c78a5d6SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
161c78a5d6SAndrew Rist  * KIND, either express or implied.  See the License for the
171c78a5d6SAndrew Rist  * specific language governing permissions and limitations
181c78a5d6SAndrew Rist  * under the License.
191c78a5d6SAndrew Rist  *
201c78a5d6SAndrew Rist  *************************************************************/
211c78a5d6SAndrew Rist 
221c78a5d6SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef ADC_TOKPROCT_HXX
25cdf0e10cSrcweir #define ADC_TOKPROCT_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir 
28cdf0e10cSrcweir 
29cdf0e10cSrcweir // USED SERVICES
30cdf0e10cSrcweir 	// BASE CLASSES
31cdf0e10cSrcweir 	// COMPONENTS
32cdf0e10cSrcweir 	// PARAMETERS
33cdf0e10cSrcweir 
34cdf0e10cSrcweir 
35cdf0e10cSrcweir namespace csi
36cdf0e10cSrcweir {
37cdf0e10cSrcweir namespace uidl
38cdf0e10cSrcweir {
39cdf0e10cSrcweir 
40cdf0e10cSrcweir 
41cdf0e10cSrcweir class UnoIDL_PE;
42cdf0e10cSrcweir 
43cdf0e10cSrcweir 
44cdf0e10cSrcweir /**	is a parent class for classes, which take part in parsing tokens semantically.
45cdf0e10cSrcweir 	It provides some types for them.
46cdf0e10cSrcweir */
47cdf0e10cSrcweir class TokenProcessing_Types
48cdf0e10cSrcweir {
49cdf0e10cSrcweir   public:
50cdf0e10cSrcweir 	enum E_TokenDone
51cdf0e10cSrcweir 	{
52cdf0e10cSrcweir 		not_done = 0,
53cdf0e10cSrcweir 		done = 1
54cdf0e10cSrcweir 	};
55cdf0e10cSrcweir 
56cdf0e10cSrcweir 	enum E_EnvStackAction
57cdf0e10cSrcweir 	{
58cdf0e10cSrcweir 		stay,			// same parse environment
59cdf0e10cSrcweir 		push_sure,      // push sub environment, which must be the correct one
60cdf0e10cSrcweir 		push_try,       // push sub environment, which is tried, if it may be the right one
61cdf0e10cSrcweir 		pop_success,    // return to parent environment, parsing was successful
62*07a3d7f1SPedro Giffuni 		pop_failure     // return to parent environment, but an error occurred.
63cdf0e10cSrcweir 	};
64cdf0e10cSrcweir 
65cdf0e10cSrcweir 	struct TokenProcessing_Result
66cdf0e10cSrcweir 	{
67cdf0e10cSrcweir 		E_TokenDone			eDone;
68cdf0e10cSrcweir 		E_EnvStackAction	eStackAction;
69cdf0e10cSrcweir 		UnoIDL_PE *			pEnv2Push;
70cdf0e10cSrcweir 
TokenProcessing_Resultcsi::uidl::TokenProcessing_Types::TokenProcessing_Result71cdf0e10cSrcweir 							TokenProcessing_Result()
72cdf0e10cSrcweir 												: eDone(not_done), eStackAction(stay), pEnv2Push(0) {}
resetcsi::uidl::TokenProcessing_Types::TokenProcessing_Result73cdf0e10cSrcweir 		void				reset()				{ eDone = not_done; eStackAction = stay; pEnv2Push = 0; }
74cdf0e10cSrcweir 	};
75cdf0e10cSrcweir 
76cdf0e10cSrcweir 	enum E_ParseResult
77cdf0e10cSrcweir 	{
78cdf0e10cSrcweir 		res_error,
79cdf0e10cSrcweir 		res_complete,
80cdf0e10cSrcweir 		res_predeclaration
81cdf0e10cSrcweir 	};
82cdf0e10cSrcweir };
83cdf0e10cSrcweir 
84cdf0e10cSrcweir 
85cdf0e10cSrcweir }   // namespace uidl
86cdf0e10cSrcweir }   // namespace csi
87cdf0e10cSrcweir 
88cdf0e10cSrcweir #endif
89cdf0e10cSrcweir 
90