xref: /AOO41X/main/autodoc/source/parser_i/inc/s2_luidl/pe_vari2.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_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