00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include <lestes/lang/cplus/sem/visitor.v.g.hh>
00013 #include <lestes/lang/cplus/sem/ss_type.g.hh>
00014
00015 #include <lestes/std/list.hh>
00016 #include <lestes/std/pair.hh>
00017 #include <lestes/std/reflect.hh>
00018
00019 #include <lestes/lang/cplus/sem/ss_literal_info.g.hh>
00020
00021 package(lestes);
00022 package(lang);
00023 package(cplus);
00024 package(sem);
00025
00026
00027
00028
00029
00030
00031
00032
00033 ptr< ss_type > ss_literal_info::type_get() const
00034 {
00035 return type;
00036 }
00037
00038
00039
00040
00041
00042 void ss_literal_info::type_set(const ptr< ss_type > & x)
00043 {
00044 ss_literal_info::type = x;
00045 }
00046
00047
00048
00049
00050
00051 ss_literal_info::ss_literal_info (ptr< ss_type > a__ss_literal_info__type)
00052 : ss_base(), type(checked(a__ss_literal_info__type))
00053 {}
00054
00055 ptr< object::reflection_list > ss_literal_info::reflection_get() const
00056 {
00057 if (!reflection) {
00058 typedef class_reflection::field_metadata md;
00059 typedef class_reflection::field_metadata_list mdlist;
00060 ptr<mdlist> mdl = mdlist::create();
00061 mdl->push_back( md::create( "type", "ss_type" ) );
00062 reflection = reflection_list::create( ::lestes::intercode::ss_base::reflection_get() );
00063 reflection->push_back( class_reflection::create( "ss_literal_info", mdl ) );
00064 }
00065 return reflection;
00066 }
00067
00068 ptr< object::field_list_list > ss_literal_info::field_values_get() const
00069 {
00070 ptr < field_list_list > result = ::lestes::intercode::ss_base::field_values_get();
00071 result->push_back( value_list::create() );
00072 result->back()->push_back( this->type );
00073 return result;
00074 }
00075
00076
00077
00078
00079
00080
00081 void ss_literal_info::gc_mark()
00082 {
00083 ::lestes::intercode::ss_base::gc_mark();
00084 }
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094 ucn_string ss_integral_literal_info::data_get() const
00095 {
00096 return data;
00097 }
00098
00099
00100
00101
00102
00103 void ss_integral_literal_info::data_set(ucn_string x)
00104 {
00105 ss_integral_literal_info::data = x;
00106 }
00107
00108 void ss_integral_literal_info::accept_ss_literal_info_visitor( ptr< ss_literal_info_visitor > v )
00109 {
00110 return v->visit_ss_integral_literal_info( this );
00111 }
00112
00113
00114
00115
00116
00117 ptr< ss_integral_literal_info > ss_integral_literal_info::create(ptr< ss_type > a__ss_literal_info__type,
00118 ucn_string a__ss_integral_literal_info__data)
00119 {
00120 return ptr< ss_integral_literal_info > ( new ss_integral_literal_info(a__ss_literal_info__type,
00121 a__ss_integral_literal_info__data) );
00122 }
00123
00124
00125
00126
00127
00128 ss_integral_literal_info::ss_integral_literal_info (ptr< ss_type > a__ss_literal_info__type,
00129 ucn_string a__ss_integral_literal_info__data)
00130 : ss_literal_info(a__ss_literal_info__type), data(a__ss_integral_literal_info__data)
00131 {}
00132
00133 ptr< object::reflection_list > ss_integral_literal_info::reflection_get() const
00134 {
00135 if (!reflection) {
00136 typedef class_reflection::field_metadata md;
00137 typedef class_reflection::field_metadata_list mdlist;
00138 ptr<mdlist> mdl = mdlist::create();
00139 mdl->push_back( md::create( "data", "ucn_string" ) );
00140 reflection = reflection_list::create( ss_literal_info::reflection_get() );
00141 reflection->push_back( class_reflection::create( "ss_integral_literal_info", mdl ) );
00142 }
00143 return reflection;
00144 }
00145
00146 ptr< object::field_list_list > ss_integral_literal_info::field_values_get() const
00147 {
00148 ptr < field_list_list > result = ss_literal_info::field_values_get();
00149 result->push_back( value_list::create() );
00150 result->back()->push_back( objectize< ucn_string > ::create( this->data ) );
00151 return result;
00152 }
00153
00154
00155
00156
00157
00158
00159 void ss_integral_literal_info::gc_mark()
00160 {
00161 ss_literal_info::gc_mark();
00162 }
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172 ss_floating_literal_info::sign_type ss_floating_literal_info::sign_get() const
00173 {
00174 return sign;
00175 }
00176
00177
00178
00179
00180
00181 void ss_floating_literal_info::sign_set(sign_type x)
00182 {
00183 ss_floating_literal_info::sign = x;
00184 }
00185
00186
00187
00188
00189
00190 ucn_string ss_floating_literal_info::mantissa_get() const
00191 {
00192 return mantissa;
00193 }
00194
00195
00196
00197
00198
00199 void ss_floating_literal_info::mantissa_set(ucn_string x)
00200 {
00201 ss_floating_literal_info::mantissa = x;
00202 }
00203
00204
00205
00206
00207
00208 ulint ss_floating_literal_info::mantissa_base_get() const
00209 {
00210 return mantissa_base;
00211 }
00212
00213
00214
00215
00216
00217 void ss_floating_literal_info::mantissa_base_set(ulint x)
00218 {
00219 ss_floating_literal_info::mantissa_base = x;
00220 }
00221
00222
00223
00224
00225
00226 ss_floating_literal_info::sign_type ss_floating_literal_info::exponent_sign_get() const
00227 {
00228 return exponent_sign;
00229 }
00230
00231
00232
00233
00234
00235 void ss_floating_literal_info::exponent_sign_set(sign_type x)
00236 {
00237 ss_floating_literal_info::exponent_sign = x;
00238 }
00239
00240
00241
00242
00243
00244 ucn_string ss_floating_literal_info::exponent_get() const
00245 {
00246 return exponent;
00247 }
00248
00249
00250
00251
00252
00253 void ss_floating_literal_info::exponent_set(ucn_string x)
00254 {
00255 ss_floating_literal_info::exponent = x;
00256 }
00257
00258
00259
00260
00261
00262 ulint ss_floating_literal_info::exponent_base_get() const
00263 {
00264 return exponent_base;
00265 }
00266
00267
00268
00269
00270
00271 void ss_floating_literal_info::exponent_base_set(ulint x)
00272 {
00273 ss_floating_literal_info::exponent_base = x;
00274 }
00275
00276
00277
00278
00279
00280 ulint ss_floating_literal_info::radix_get() const
00281 {
00282 return radix;
00283 }
00284
00285
00286
00287
00288
00289 void ss_floating_literal_info::radix_set(ulint x)
00290 {
00291 ss_floating_literal_info::radix = x;
00292 }
00293
00294 void ss_floating_literal_info::accept_ss_literal_info_visitor( ptr< ss_literal_info_visitor > v )
00295 {
00296 return v->visit_ss_floating_literal_info( this );
00297 }
00298
00299
00300
00301
00302
00303 ptr< ss_floating_literal_info > ss_floating_literal_info::create(ptr< ss_type > a__ss_literal_info__type,
00304 sign_type a__ss_floating_literal_info__sign,
00305 ucn_string a__ss_floating_literal_info__mantissa,
00306 ulint a__ss_floating_literal_info__mantissa_base,
00307 sign_type a__ss_floating_literal_info__exponent_sign,
00308 ucn_string a__ss_floating_literal_info__exponent,
00309 ulint a__ss_floating_literal_info__exponent_base,
00310 ulint a__ss_floating_literal_info__radix)
00311 {
00312 return ptr< ss_floating_literal_info > ( new ss_floating_literal_info(a__ss_literal_info__type,
00313 a__ss_floating_literal_info__sign,
00314 a__ss_floating_literal_info__mantissa,
00315 a__ss_floating_literal_info__mantissa_base,
00316 a__ss_floating_literal_info__exponent_sign,
00317 a__ss_floating_literal_info__exponent,
00318 a__ss_floating_literal_info__exponent_base,
00319 a__ss_floating_literal_info__radix) );
00320 }
00321
00322
00323
00324
00325
00326 ptr< ss_floating_literal_info > ss_floating_literal_info::create(ptr< ss_type > a__ss_literal_info__type,
00327 sign_type a__ss_floating_literal_info__sign,
00328 ucn_string a__ss_floating_literal_info__mantissa,
00329 sign_type a__ss_floating_literal_info__exponent_sign,
00330 ucn_string a__ss_floating_literal_info__exponent)
00331 {
00332 return ptr< ss_floating_literal_info > ( new ss_floating_literal_info(a__ss_literal_info__type, a__ss_floating_literal_info__sign, a__ss_floating_literal_info__mantissa, 10, a__ss_floating_literal_info__exponent_sign, a__ss_floating_literal_info__exponent, 10, 10) );
00333 }
00334
00335
00336
00337
00338
00339 ss_floating_literal_info::ss_floating_literal_info (ptr< ss_type > a__ss_literal_info__type,
00340 sign_type a__ss_floating_literal_info__sign,
00341 ucn_string a__ss_floating_literal_info__mantissa,
00342 ulint a__ss_floating_literal_info__mantissa_base,
00343 sign_type a__ss_floating_literal_info__exponent_sign,
00344 ucn_string a__ss_floating_literal_info__exponent,
00345 ulint a__ss_floating_literal_info__exponent_base,
00346 ulint a__ss_floating_literal_info__radix)
00347 : ss_literal_info(a__ss_literal_info__type), sign(a__ss_floating_literal_info__sign), mantissa(a__ss_floating_literal_info__mantissa), mantissa_base(a__ss_floating_literal_info__mantissa_base), exponent_sign(a__ss_floating_literal_info__exponent_sign), exponent(a__ss_floating_literal_info__exponent), exponent_base(a__ss_floating_literal_info__exponent_base), radix(a__ss_floating_literal_info__radix)
00348 {}
00349
00350 ptr< object::reflection_list > ss_floating_literal_info::reflection_get() const
00351 {
00352 if (!reflection) {
00353 typedef class_reflection::field_metadata md;
00354 typedef class_reflection::field_metadata_list mdlist;
00355 ptr<mdlist> mdl = mdlist::create();
00356 mdl->push_back( md::create( "sign", "sign_type" ) );
00357 mdl->push_back( md::create( "mantissa", "ucn_string" ) );
00358 mdl->push_back( md::create( "mantissa_base", "ulint" ) );
00359 mdl->push_back( md::create( "exponent_sign", "sign_type" ) );
00360 mdl->push_back( md::create( "exponent", "ucn_string" ) );
00361 mdl->push_back( md::create( "exponent_base", "ulint" ) );
00362 mdl->push_back( md::create( "radix", "ulint" ) );
00363 reflection = reflection_list::create( ss_literal_info::reflection_get() );
00364 reflection->push_back( class_reflection::create( "ss_floating_literal_info", mdl ) );
00365 }
00366 return reflection;
00367 }
00368
00369 ptr< object::field_list_list > ss_floating_literal_info::field_values_get() const
00370 {
00371 ptr < field_list_list > result = ss_literal_info::field_values_get();
00372 result->push_back( value_list::create() );
00373 result->back()->push_back( objectize< sign_type > ::create( this->sign ) );
00374 result->push_back( value_list::create() );
00375 result->back()->push_back( objectize< ucn_string > ::create( this->mantissa ) );
00376 result->push_back( value_list::create() );
00377 result->back()->push_back( objectize< ulint > ::create( this->mantissa_base ) );
00378 result->push_back( value_list::create() );
00379 result->back()->push_back( objectize< sign_type > ::create( this->exponent_sign ) );
00380 result->push_back( value_list::create() );
00381 result->back()->push_back( objectize< ucn_string > ::create( this->exponent ) );
00382 result->push_back( value_list::create() );
00383 result->back()->push_back( objectize< ulint > ::create( this->exponent_base ) );
00384 result->push_back( value_list::create() );
00385 result->back()->push_back( objectize< ulint > ::create( this->radix ) );
00386 return result;
00387 }
00388
00389
00390
00391
00392
00393
00394 void ss_floating_literal_info::gc_mark()
00395 {
00396 ss_literal_info::gc_mark();
00397 }
00398
00399
00400
00401
00402
00403
00404
00405
00406
00407 ptr< ::lestes::std::list< srp< ss_literal_info > > > ss_compound_literal_info::constituents_get() const
00408 {
00409 return constituents;
00410 }
00411
00412 void ss_compound_literal_info::accept_ss_literal_info_visitor( ptr< ss_literal_info_visitor > v )
00413 {
00414 return v->visit_ss_compound_literal_info( this );
00415 }
00416
00417
00418
00419
00420
00421 ptr< ss_compound_literal_info > ss_compound_literal_info::create(ptr< ss_type > a__ss_literal_info__type,
00422 ptr< ::lestes::std::list< srp< ss_literal_info > > > a__ss_compound_literal_info__constituents)
00423 {
00424 return ptr< ss_compound_literal_info > ( new ss_compound_literal_info(a__ss_literal_info__type,
00425 a__ss_compound_literal_info__constituents) );
00426 }
00427
00428
00429
00430
00431
00432 ss_compound_literal_info::ss_compound_literal_info (ptr< ss_type > a__ss_literal_info__type,
00433 ptr< ::lestes::std::list< srp< ss_literal_info > > > a__ss_compound_literal_info__constituents)
00434 : ss_literal_info(a__ss_literal_info__type), constituents(checked(a__ss_compound_literal_info__constituents))
00435 {}
00436
00437 ptr< object::reflection_list > ss_compound_literal_info::reflection_get() const
00438 {
00439 if (!reflection) {
00440 typedef class_reflection::field_metadata md;
00441 typedef class_reflection::field_metadata_list mdlist;
00442 ptr<mdlist> mdl = mdlist::create();
00443 mdl->push_back( md::create( "constituents", "list< srp< ss_literal_info > >" ) );
00444 reflection = reflection_list::create( ss_literal_info::reflection_get() );
00445 reflection->push_back( class_reflection::create( "ss_compound_literal_info", mdl ) );
00446 }
00447 return reflection;
00448 }
00449
00450 ptr< object::field_list_list > ss_compound_literal_info::field_values_get() const
00451 {
00452 ptr < field_list_list > result = ss_literal_info::field_values_get();
00453 result->push_back( value_list::create() );
00454 result->back()->push_back( this->constituents );
00455 return result;
00456 }
00457
00458
00459
00460
00461
00462
00463 void ss_compound_literal_info::gc_mark()
00464 {
00465 ss_literal_info::gc_mark();
00466 }
00467
00468
00469
00470
00471
00472 ptr<object::reflection_list> ss_literal_info::reflection = reflection;
00473 ptr<object::reflection_list> ss_integral_literal_info::reflection = reflection;
00474 ptr<object::reflection_list> ss_floating_literal_info::reflection = reflection;
00475 ptr<object::reflection_list> ss_compound_literal_info::reflection = reflection;
00476
00477 end_package(sem);
00478 end_package(cplus);
00479 end_package(lang);
00480 end_package(lestes);
00481