xref: /AOO41X/main/autodoc/source/parser_i/inc/s2_luidl/tk_keyw.hxx (revision 1c78a5d6c0093dece4c096ba53051800fbad6e33)
1*1c78a5d6SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*1c78a5d6SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*1c78a5d6SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*1c78a5d6SAndrew Rist  * distributed with this work for additional information
6*1c78a5d6SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*1c78a5d6SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*1c78a5d6SAndrew Rist  * "License"); you may not use this file except in compliance
9*1c78a5d6SAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11*1c78a5d6SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13*1c78a5d6SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*1c78a5d6SAndrew Rist  * software distributed under the License is distributed on an
15*1c78a5d6SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*1c78a5d6SAndrew Rist  * KIND, either express or implied.  See the License for the
17*1c78a5d6SAndrew Rist  * specific language governing permissions and limitations
18*1c78a5d6SAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20*1c78a5d6SAndrew Rist  *************************************************************/
21*1c78a5d6SAndrew Rist 
22*1c78a5d6SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef ADC_UIDL_TK_KEYW_HXX
25cdf0e10cSrcweir #define ADC_UIDL_TK_KEYW_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir // USED SERVICES
28cdf0e10cSrcweir 	// BASE CLASSES
29cdf0e10cSrcweir #include <s2_luidl/uidl_tok.hxx>
30cdf0e10cSrcweir 	// COMPONENTS
31cdf0e10cSrcweir #include <luxenum.hxx>
32cdf0e10cSrcweir 	// PARAMETERS
33cdf0e10cSrcweir 
34cdf0e10cSrcweir 
35cdf0e10cSrcweir namespace csi
36cdf0e10cSrcweir {
37cdf0e10cSrcweir namespace uidl
38cdf0e10cSrcweir {
39cdf0e10cSrcweir 
40cdf0e10cSrcweir 
41cdf0e10cSrcweir class TokKeyword : public Token
42cdf0e10cSrcweir {
43cdf0e10cSrcweir };
44cdf0e10cSrcweir 
45cdf0e10cSrcweir 
46cdf0e10cSrcweir class TokBuiltInType : public TokKeyword
47cdf0e10cSrcweir {
48cdf0e10cSrcweir   public:
49cdf0e10cSrcweir 	enum E_TokenId
50cdf0e10cSrcweir 	{
51cdf0e10cSrcweir 		e_none = 0,
52cdf0e10cSrcweir 		bty_any = 1,
53cdf0e10cSrcweir 		bty_boolean = 2,
54cdf0e10cSrcweir 		bty_byte = 3,
55cdf0e10cSrcweir 		bty_char = 4,
56cdf0e10cSrcweir 		bty_double = 5,
57cdf0e10cSrcweir 		bty_hyper = 6,
58cdf0e10cSrcweir 		bty_long = 7,
59cdf0e10cSrcweir 		bty_short = 8,
60cdf0e10cSrcweir 		bty_string = 9,
61cdf0e10cSrcweir 		bty_void = 10,
62cdf0e10cSrcweir 		bty_ellipse = 11
63cdf0e10cSrcweir 	};
64cdf0e10cSrcweir 	typedef lux::Enum<E_TokenId> EV_TokenId;
65cdf0e10cSrcweir 
TokBuiltInType(EV_TokenId i_eTag)66cdf0e10cSrcweir 						TokBuiltInType(
67cdf0e10cSrcweir 							EV_TokenId			i_eTag )
68cdf0e10cSrcweir 												:	eTag(i_eTag) {}
69cdf0e10cSrcweir 
70cdf0e10cSrcweir 	virtual void       	Trigger(
71cdf0e10cSrcweir 							TokenInterpreter &	io_rInterpreter ) const;
72cdf0e10cSrcweir 	virtual const char *
73cdf0e10cSrcweir 						Text() const;
Id() const74cdf0e10cSrcweir     E_TokenId			Id() const				{ return eTag; }
75cdf0e10cSrcweir 
76cdf0e10cSrcweir   private:
77cdf0e10cSrcweir 	// DATA
78cdf0e10cSrcweir 	EV_TokenId   		eTag;
79cdf0e10cSrcweir };
80cdf0e10cSrcweir 
81cdf0e10cSrcweir 
82cdf0e10cSrcweir class TokTypeModifier : public TokKeyword
83cdf0e10cSrcweir {
84cdf0e10cSrcweir   public:
85cdf0e10cSrcweir 	enum E_TokenId
86cdf0e10cSrcweir 	{
87cdf0e10cSrcweir 		e_none = 0,
88cdf0e10cSrcweir 		tmod_unsigned = 1,
89cdf0e10cSrcweir 		tmod_sequence
90cdf0e10cSrcweir 	};
91cdf0e10cSrcweir 	typedef lux::Enum<E_TokenId> EV_TokenId;
92cdf0e10cSrcweir 
TokTypeModifier(EV_TokenId i_eTag)93cdf0e10cSrcweir 						TokTypeModifier(
94cdf0e10cSrcweir 							EV_TokenId			i_eTag )
95cdf0e10cSrcweir 												:	eTag(i_eTag) {}
96cdf0e10cSrcweir 	virtual void		Trigger(
97cdf0e10cSrcweir 							TokenInterpreter &	io_rInterpreter ) const;
98cdf0e10cSrcweir 	virtual const char *
99cdf0e10cSrcweir 						Text() const;
Id() const100cdf0e10cSrcweir     E_TokenId			Id() const				{ return eTag; }
101cdf0e10cSrcweir 
102cdf0e10cSrcweir   private:
103cdf0e10cSrcweir 	// DATA
104cdf0e10cSrcweir 	EV_TokenId   		eTag;
105cdf0e10cSrcweir };
106cdf0e10cSrcweir 
107cdf0e10cSrcweir class TokMetaType : public TokKeyword
108cdf0e10cSrcweir {
109cdf0e10cSrcweir   public:
110cdf0e10cSrcweir 	enum E_TokenId
111cdf0e10cSrcweir 	{
112cdf0e10cSrcweir 		e_none = 0,
113cdf0e10cSrcweir 		mt_attribute = 1,
114cdf0e10cSrcweir 		mt_constants,
115cdf0e10cSrcweir 		mt_enum,
116cdf0e10cSrcweir 		mt_exception,
117cdf0e10cSrcweir 		mt_ident,
118cdf0e10cSrcweir 		mt_interface,
119cdf0e10cSrcweir 		mt_module,
120cdf0e10cSrcweir 		mt_property,
121cdf0e10cSrcweir 		mt_service,
122cdf0e10cSrcweir 		mt_singleton,
123cdf0e10cSrcweir 		mt_struct,
124cdf0e10cSrcweir 		mt_typedef,
125cdf0e10cSrcweir 		mt_uik
126cdf0e10cSrcweir 	};
127cdf0e10cSrcweir 	typedef lux::Enum<E_TokenId> EV_TokenId;
128cdf0e10cSrcweir 
TokMetaType(EV_TokenId i_eTag)129cdf0e10cSrcweir 						TokMetaType(
130cdf0e10cSrcweir 							EV_TokenId			i_eTag )
131cdf0e10cSrcweir 												:	eTag(i_eTag) {}
132cdf0e10cSrcweir 
133cdf0e10cSrcweir 	virtual void		Trigger(
134cdf0e10cSrcweir 							TokenInterpreter &	io_rInterpreter ) const;
135cdf0e10cSrcweir 	virtual const char *
136cdf0e10cSrcweir 						Text() const;
Id() const137cdf0e10cSrcweir 	E_TokenId			Id() const				{ return eTag; }
138cdf0e10cSrcweir 
139cdf0e10cSrcweir 
140cdf0e10cSrcweir   private:
141cdf0e10cSrcweir 	// DATA
142cdf0e10cSrcweir 	EV_TokenId   		eTag;
143cdf0e10cSrcweir };
144cdf0e10cSrcweir 
145cdf0e10cSrcweir class TokStereotype : public TokKeyword
146cdf0e10cSrcweir {
147cdf0e10cSrcweir   public:
148cdf0e10cSrcweir 	// TYPES
149cdf0e10cSrcweir 	enum E_TokenId
150cdf0e10cSrcweir 	{
151cdf0e10cSrcweir 		e_none = 0,
152cdf0e10cSrcweir         ste_bound = 1,
153cdf0e10cSrcweir 		ste_const,
154cdf0e10cSrcweir 		ste_constrained,
155cdf0e10cSrcweir 		ste_maybeambiguous,
156cdf0e10cSrcweir 		ste_maybedefault,
157cdf0e10cSrcweir 		ste_maybevoid,
158cdf0e10cSrcweir 		ste_oneway,
159cdf0e10cSrcweir 		ste_optional,
160cdf0e10cSrcweir 		ste_readonly,
161cdf0e10cSrcweir 		ste_removable,
162cdf0e10cSrcweir 		ste_virtual,
163cdf0e10cSrcweir 		ste_transient,
164cdf0e10cSrcweir 		ste_published
165cdf0e10cSrcweir 	};
166cdf0e10cSrcweir 
167cdf0e10cSrcweir 	typedef lux::Enum<E_TokenId> EV_TokenId;
168cdf0e10cSrcweir 
TokStereotype(EV_TokenId i_eTag)169cdf0e10cSrcweir 						TokStereotype(
170cdf0e10cSrcweir 							EV_TokenId			i_eTag )
171cdf0e10cSrcweir 												:	eTag(i_eTag) {}
172cdf0e10cSrcweir 	// OPERATIONS
173cdf0e10cSrcweir 	virtual void		Trigger(
174cdf0e10cSrcweir 							TokenInterpreter &	io_rInterpreter ) const;
175cdf0e10cSrcweir 	// INQUIRY
176cdf0e10cSrcweir 	virtual const char *
177cdf0e10cSrcweir 						Text() const;
Id() const178cdf0e10cSrcweir 	E_TokenId			Id() const				{ return eTag; }
179cdf0e10cSrcweir 
180cdf0e10cSrcweir   private:
181cdf0e10cSrcweir 	// DATA
182cdf0e10cSrcweir 	EV_TokenId   		eTag;
183cdf0e10cSrcweir };
184cdf0e10cSrcweir 
185cdf0e10cSrcweir class TokParameterHandling : public TokKeyword
186cdf0e10cSrcweir {
187cdf0e10cSrcweir   public:
188cdf0e10cSrcweir 	// TYPES
189cdf0e10cSrcweir 	enum E_TokenId
190cdf0e10cSrcweir 	{
191cdf0e10cSrcweir 		e_none = 0,
192cdf0e10cSrcweir 		ph_in,
193cdf0e10cSrcweir 		ph_out,
194cdf0e10cSrcweir 		ph_inout
195cdf0e10cSrcweir 	};
196cdf0e10cSrcweir 	typedef lux::Enum<E_TokenId> EV_TokenId;
197cdf0e10cSrcweir 
TokParameterHandling(EV_TokenId i_eTag)198cdf0e10cSrcweir 						TokParameterHandling(
199cdf0e10cSrcweir 							EV_TokenId			i_eTag )
200cdf0e10cSrcweir 												:	eTag(i_eTag) {}
201cdf0e10cSrcweir 	// OPERATIONS
202cdf0e10cSrcweir 	virtual void		Trigger(
203cdf0e10cSrcweir 							TokenInterpreter &	io_rInterpreter ) const;
204cdf0e10cSrcweir 	// INQUIRY
205cdf0e10cSrcweir 	virtual const char *
206cdf0e10cSrcweir 						Text() const;
Id() const207cdf0e10cSrcweir 	E_TokenId			Id() const				{ return eTag; }
208cdf0e10cSrcweir 
209cdf0e10cSrcweir   private:
210cdf0e10cSrcweir 	// DATA
211cdf0e10cSrcweir 	EV_TokenId   		eTag;
212cdf0e10cSrcweir };
213cdf0e10cSrcweir 
214cdf0e10cSrcweir class TokRaises : public TokKeyword
215cdf0e10cSrcweir {
216cdf0e10cSrcweir   public:
217cdf0e10cSrcweir 	virtual void		Trigger(
218cdf0e10cSrcweir 							TokenInterpreter &	io_rInterpreter ) const;
219cdf0e10cSrcweir 	virtual const char *
220cdf0e10cSrcweir 						Text() const;
221cdf0e10cSrcweir };
222cdf0e10cSrcweir 
223cdf0e10cSrcweir class TokNeeds : public TokKeyword
224cdf0e10cSrcweir {
225cdf0e10cSrcweir   public:
226cdf0e10cSrcweir 	virtual void		Trigger(
227cdf0e10cSrcweir 							TokenInterpreter &	io_rInterpreter ) const;
228cdf0e10cSrcweir 	virtual const char *
229cdf0e10cSrcweir 						Text() const;
230cdf0e10cSrcweir };
231cdf0e10cSrcweir 
232cdf0e10cSrcweir class TokObserves : public TokKeyword
233cdf0e10cSrcweir {
234cdf0e10cSrcweir   public:
235cdf0e10cSrcweir 	virtual void		Trigger(
236cdf0e10cSrcweir 							TokenInterpreter &	io_rInterpreter ) const;
237cdf0e10cSrcweir 	virtual const char *
238cdf0e10cSrcweir 						Text() const;
239cdf0e10cSrcweir };
240cdf0e10cSrcweir 
241cdf0e10cSrcweir 
242cdf0e10cSrcweir }   // namespace uidl
243cdf0e10cSrcweir }   // namespace csi
244cdf0e10cSrcweir 
245cdf0e10cSrcweir #endif
246cdf0e10cSrcweir 
247cdf0e10cSrcweir 
248