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