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_UIDL_PE_VARI2_HXX
25 #define ADC_UIDL_PE_VARI2_HXX
26 
27 
28 
29 // USED SERVICES
30 	// BASE CLASSES
31 #include <s2_luidl/parsenv2.hxx>
32 #include <s2_luidl/pestate.hxx>
33 	// COMPONENTS
34 	// PARAMETERS
35 
36 
37 namespace csi
38 {
39 namespace uidl
40 {
41 
42 
43 class PE_Type;
44 
45 
46 class PE_Variable : public UnoIDL_PE,
47 					public ParseEnvState
48 {
49   public:
50 						PE_Variable(
51 							ary::idl::Type_id &	i_rResult_Type,
52 							String &	        i_rResult_Name );
53 	virtual void	 	EstablishContacts(
54 							UnoIDL_PE *			io_pParentPE,
55 							ary::Repository &
56                                                 io_rRepository,
57 							TokenProcessing_Result &
58 												o_rResult );
59 	virtual				~PE_Variable();
60 
61 	virtual void	  	ProcessToken(
62 							const Token &		i_rToken );
63 
64 	virtual void		Process_Default();
65 	virtual void		Process_Identifier(
66 							const TokIdentifier &
67 												i_rToken );
68 	virtual void		Process_Punctuation(
69 							const TokPunctuation &
70 												i_rToken );
71 	virtual void		Process_BuiltInType(
72 							const TokBuiltInType &
73 												i_rToken );
74   private:
75 	enum E_State
76 	{
77 		e_none,
78 		expect_type,
79 		expect_name,
80 		expect_finish
81 	};
82 
83 	virtual void		InitData();
84 	virtual void		ReceiveData();
85 	virtual void		TransferData();
86 	virtual UnoIDL_PE &	MyPE();
87 
88     // DATA
89 	E_State             eState;
90 	ary::idl::Type_id *	pResult_Type;
91 	String *	        pResult_Name;
92 
93 	Dyn<PE_Type>		pPE_Type;
94 };
95 
96 
97 
98 }   // namespace uidl
99 }   // namespace csi
100 
101 
102 #endif
103 
104