ss_literal_info.g.hh

Go to the documentation of this file.
00001 // This file is automatically generated, do not edit.
00002 
00003 /*!
00004         \file
00005         \brief Intercode structure for project Lestes
00006         
00007                         This file describes a set of classes and data types used for intercode layer -ss-.
00008                         It is an output from a XSLT template which generates C++ code.
00009                 
00010 */
00011 
00012 #ifndef lestes__lang__cplus__sem__ss_literal_info_g_hh__included
00013 #define lestes__lang__cplus__sem__ss_literal_info_g_hh__included
00014 
00015 #include <lestes/common.hh>
00016 #include <lestes/intercode/intercode.g.hh>
00017 
00018 #include <lestes/std/objectize_macros.hh>
00019 package(lestes);
00020 package(lang);
00021 package(cplus);
00022 package(sem);
00023 
00024 
00025 
00026         
00027 
00028 
00029 
00030 class ss_type;
00031 class ss_literal_info;
00032 class ss_literal_info_visitor;
00033 class ss_integral_literal_info;
00034 class ss_floating_literal_info;
00035 class ss_compound_literal_info;
00036 
00037 
00038 //! Base class for literal information
00039 class ss_literal_info : public ::lestes::intercode::ss_base {
00040 public:
00041         //! The method type_get returns the value of the field ss_literal_info::type.
00042         ptr< ss_type > type_get() const;
00043 
00044         //! The method type_set sets the field ss_literal_info::type to the given value.
00045         void type_set(const ptr< ss_type > &);
00046 
00047         virtual void accept_ss_literal_info_visitor( ptr< ss_literal_info_visitor > v ) abstract;
00048         
00049 
00050         //! for purposes of dumping
00051         virtual ptr<reflection_list> reflection_get() const;
00052         //! for purposes of dumping
00053         virtual ptr<field_list_list> field_values_get() const;
00054         
00055 protected:
00056         //! Generated constructor for class ss_literal_info.
00057         ss_literal_info (
00058                 ptr< ss_type > a__ss_literal_info__type);
00059 
00060         //! Marking routine for class ss_literal_info. 
00061         virtual void gc_mark();
00062 
00063 private:
00064         srp< ss_type > type;
00065         static ptr<reflection_list> reflection;
00066         
00067 }; // ss_literal_info
00068 
00069 
00070 class ss_integral_literal_info : public ss_literal_info {
00071 public:
00072         //! The method data_get returns the value of the field ss_integral_literal_info::data.
00073         ucn_string data_get() const;
00074 
00075         //! The method data_set sets the field ss_integral_literal_info::data to the given value.
00076         void data_set(ucn_string);
00077 
00078         static ptr< ss_integral_literal_info > create_from_number(ptr< ss_type > type, t_size value);
00079 
00080         virtual void accept_ss_literal_info_visitor( ptr< ss_literal_info_visitor > v );
00081         
00082         //! First generated factory method for class ss_integral_literal_info.
00083         static ptr< ss_integral_literal_info > create (
00084                 ptr< ss_type > a__ss_literal_info__type,
00085                 ucn_string a__ss_integral_literal_info__data);
00086 
00087         
00088 
00089         //! for purposes of dumping
00090         virtual ptr<reflection_list> reflection_get() const;
00091         //! for purposes of dumping
00092         virtual ptr<field_list_list> field_values_get() const;
00093         
00094 protected:
00095         //! Generated constructor for class ss_integral_literal_info.
00096         ss_integral_literal_info (
00097                 ptr< ss_type > a__ss_literal_info__type,
00098                 ucn_string a__ss_integral_literal_info__data);
00099 
00100         //! Marking routine for class ss_integral_literal_info. 
00101         virtual void gc_mark();
00102 
00103 private:
00104         ucn_string data;
00105         static ptr<reflection_list> reflection;
00106         
00107 }; // ss_integral_literal_info
00108 
00109 
00110 class ss_floating_literal_info : public ss_literal_info {
00111 public:
00112         enum sign_type {
00113                 S_POSITIVE,
00114                 S_NEGATIVE
00115         };
00116 
00117         //! The method sign_get returns the value of the field ss_floating_literal_info::sign.
00118         sign_type sign_get() const;
00119 
00120         //! The method sign_set sets the field ss_floating_literal_info::sign to the given value.
00121         void sign_set(sign_type);
00122 
00123         //! The method mantissa_get returns the value of the field ss_floating_literal_info::mantissa.
00124         ucn_string mantissa_get() const;
00125 
00126         //! The method mantissa_set sets the field ss_floating_literal_info::mantissa to the given value.
00127         void mantissa_set(ucn_string);
00128 
00129         //! The method mantissa_base_get returns the value of the field ss_floating_literal_info::mantissa_base.
00130         ulint mantissa_base_get() const;
00131 
00132         //! The method mantissa_base_set sets the field ss_floating_literal_info::mantissa_base to the given value.
00133         void mantissa_base_set(ulint);
00134 
00135         //! The method exponent_sign_get returns the value of the field ss_floating_literal_info::exponent_sign.
00136         sign_type exponent_sign_get() const;
00137 
00138         //! The method exponent_sign_set sets the field ss_floating_literal_info::exponent_sign to the given value.
00139         void exponent_sign_set(sign_type);
00140 
00141         //! The method exponent_get returns the value of the field ss_floating_literal_info::exponent.
00142         ucn_string exponent_get() const;
00143 
00144         //! The method exponent_set sets the field ss_floating_literal_info::exponent to the given value.
00145         void exponent_set(ucn_string);
00146 
00147         //! The method exponent_base_get returns the value of the field ss_floating_literal_info::exponent_base.
00148         ulint exponent_base_get() const;
00149 
00150         //! The method exponent_base_set sets the field ss_floating_literal_info::exponent_base to the given value.
00151         void exponent_base_set(ulint);
00152 
00153         //! The method radix_get returns the value of the field ss_floating_literal_info::radix.
00154         ulint radix_get() const;
00155 
00156         //! The method radix_set sets the field ss_floating_literal_info::radix to the given value.
00157         void radix_set(ulint);
00158 
00159         virtual void accept_ss_literal_info_visitor( ptr< ss_literal_info_visitor > v );
00160         
00161         //! First generated factory method for class ss_floating_literal_info.
00162         static ptr< ss_floating_literal_info > create (
00163                 ptr< ss_type > a__ss_literal_info__type,
00164                 sign_type a__ss_floating_literal_info__sign,
00165                 ucn_string a__ss_floating_literal_info__mantissa,
00166                 ulint a__ss_floating_literal_info__mantissa_base,
00167                 sign_type a__ss_floating_literal_info__exponent_sign,
00168                 ucn_string a__ss_floating_literal_info__exponent,
00169                 ulint a__ss_floating_literal_info__exponent_base,
00170                 ulint a__ss_floating_literal_info__radix);
00171 
00172         //! Second generated factory method for class ss_floating_literal_info.
00173         static ptr< ss_floating_literal_info > create (
00174                 ptr< ss_type > a__ss_literal_info__type,
00175                 sign_type a__ss_floating_literal_info__sign,
00176                 ucn_string a__ss_floating_literal_info__mantissa,
00177                 sign_type a__ss_floating_literal_info__exponent_sign,
00178                 ucn_string a__ss_floating_literal_info__exponent);
00179 
00180         
00181 
00182         //! for purposes of dumping
00183         virtual ptr<reflection_list> reflection_get() const;
00184         //! for purposes of dumping
00185         virtual ptr<field_list_list> field_values_get() const;
00186         
00187 protected:
00188         //! Generated constructor for class ss_floating_literal_info.
00189         ss_floating_literal_info (
00190                 ptr< ss_type > a__ss_literal_info__type,
00191                 sign_type a__ss_floating_literal_info__sign,
00192                 ucn_string a__ss_floating_literal_info__mantissa,
00193                 ulint a__ss_floating_literal_info__mantissa_base,
00194                 sign_type a__ss_floating_literal_info__exponent_sign,
00195                 ucn_string a__ss_floating_literal_info__exponent,
00196                 ulint a__ss_floating_literal_info__exponent_base,
00197                 ulint a__ss_floating_literal_info__radix);
00198 
00199         //! Marking routine for class ss_floating_literal_info. 
00200         virtual void gc_mark();
00201 
00202 private:
00203         sign_type sign;
00204         ucn_string mantissa;
00205         ulint mantissa_base;
00206         sign_type exponent_sign;
00207         ucn_string exponent;
00208         ulint exponent_base;
00209         ulint radix;
00210         static ptr<reflection_list> reflection;
00211         
00212 }; // ss_floating_literal_info
00213 
00214 
00215 /*! \brief Represents compound literal.
00216 
00217 Compound literals are literals specified as { ... } initializers
00218 */
00219 class ss_compound_literal_info : public ss_literal_info {
00220 public:
00221         //! The method constituents_get returns the value of the field ss_compound_literal_info::constituents.
00222         ptr< ::lestes::std::list< srp< ss_literal_info > > > constituents_get() const;
00223 
00224         virtual void accept_ss_literal_info_visitor( ptr< ss_literal_info_visitor > v );
00225         
00226         //! First generated factory method for class ss_compound_literal_info.
00227         static ptr< ss_compound_literal_info > create (
00228                 ptr< ss_type > a__ss_literal_info__type,
00229                 ptr< ::lestes::std::list< srp< ss_literal_info > > > a__ss_compound_literal_info__constituents);
00230 
00231         
00232 
00233         //! for purposes of dumping
00234         virtual ptr<reflection_list> reflection_get() const;
00235         //! for purposes of dumping
00236         virtual ptr<field_list_list> field_values_get() const;
00237         
00238 protected:
00239         //! Generated constructor for class ss_compound_literal_info.
00240         ss_compound_literal_info (
00241                 ptr< ss_type > a__ss_literal_info__type,
00242                 ptr< ::lestes::std::list< srp< ss_literal_info > > > a__ss_compound_literal_info__constituents);
00243 
00244         //! Marking routine for class ss_compound_literal_info. 
00245         virtual void gc_mark();
00246 
00247 private:
00248         //! Constituents of the compound literal in their lexical order.
00249         srp< ::lestes::std::list< srp< ss_literal_info > > >  constituents;
00250         static ptr<reflection_list> reflection;
00251         
00252 }; // ss_compound_literal_info
00253 
00254 
00255 end_package(sem);
00256 end_package(cplus);
00257 end_package(lang);
00258 end_package(lestes);
00259 
00260 package(lestes);
00261 package(std);
00262 specialize_objectize_for_enum( ::lestes::lang::cplus::sem::ss_floating_literal_info::sign_type );
00263 end_package(std);
00264 end_package(lestes);
00265 
00266 #endif // lestes__lang__cplus__sem__ss_literal_info_g_hh__included

Generated on Mon Feb 12 18:27:08 2007 for lestes by doxygen 1.5.1-20070107