ss_declaration.g.cc

Go to the documentation of this file.
00001 // This file is automatically generated, do not edit.
00002 
00003 #include <lestes/lang/cplus/sem/ss_declaration_visitor.v.g.hh>
00004 #include <lestes/lang/cplus/sem/ss_decl2ulint_base.g.hh>
00005 #include <lestes/lang/cplus/sem/ss_decl2lstring_base.g.hh>
00006 #include <lestes/lang/cplus/sem/visitor.v.g.hh>
00007 #include <lestes/lang/cplus/sem/or_or.g.hh>
00008 #include <lestes/lang/cplus/sem/ss_decl_name.g.hh>
00009 #include <lestes/lang/cplus/sem/ss_expression.g.hh>
00010 #include <lestes/lang/cplus/sem/ss_statement.g.hh>
00011 #include <lestes/lang/cplus/sem/ss_type.g.hh>
00012 
00013 #include <lestes/std/list.hh>
00014 #include <lestes/std/pair.hh>
00015 #include <lestes/std/reflect.hh>
00016 
00017 #include <lestes/lang/cplus/sem/ss_declaration.g.hh>
00018 
00019 package(lestes);
00020 package(lang);
00021 package(cplus);
00022 package(sem);
00023 
00024 
00025 // ------------- Class ss_declaration follows. -------------
00026 
00027 /*!
00028    \returns The value of ss_declaration::visible_since.
00029    \author lsg
00030  */
00031 ptr< ss_declaration_time > ss_declaration::visible_since_get() const
00032 {
00033         return visible_since;
00034 }
00035 
00036 /*!
00037    \param[in] x The new value to set ss_declaration::visible_since to.
00038    \author lsg
00039  */
00040 void ss_declaration::visible_since_set(const ptr< ss_declaration_time > & x)
00041 {
00042         ss_declaration::visible_since = x;
00043 }
00044 
00045 /*!
00046    \returns The value of ss_declaration::decl_time.
00047    \author lsg
00048  */
00049 ptr< ss_declaration_time > ss_declaration::decl_time_get() const
00050 {
00051         return decl_time;
00052 }
00053 
00054 /*!
00055    \param[in] x The new value to set ss_declaration::decl_time to.
00056    \author lsg
00057  */
00058 void ss_declaration::decl_time_set(const ptr< ss_declaration_time > & x)
00059 {
00060         ss_declaration::decl_time = x;
00061 }
00062 
00063 /*!
00064    \returns The value of ss_declaration::name.
00065    \author lsg
00066  */
00067 ptr< ss_decl_name > ss_declaration::name_get() const
00068 {
00069         return name;
00070 }
00071 
00072 /*!
00073    \param[in] x The new value to set ss_declaration::name to.
00074    \author lsg
00075  */
00076 void ss_declaration::name_set(const ptr< ss_decl_name > & x)
00077 {
00078         ss_declaration::name = x;
00079 }
00080 
00081 /*!
00082    \returns The value of ss_declaration::contained_in.
00083    \author lsg
00084  */
00085 ptr< ss_decl_seq > ss_declaration::contained_in_get() const
00086 {
00087         return contained_in;
00088 }
00089 
00090 /*!
00091    \param[in] x The new value to set ss_declaration::contained_in to.
00092    \author lsg
00093  */
00094 void ss_declaration::contained_in_set(const ptr< ss_decl_seq > & x)
00095 {
00096         ss_declaration::contained_in = x;
00097 }
00098 
00099 /*!
00100    \returns The value of ss_declaration::type.
00101    \author lsg
00102  */
00103 ptr< ss_type > ss_declaration::type_get() const
00104 {
00105         return type;
00106 }
00107 
00108 /*!
00109    \param[in] x The new value to set ss_declaration::type to.
00110    \author lsg
00111  */
00112 void ss_declaration::type_set(const ptr< ss_type > & x)
00113 {
00114         ss_declaration::type = x;
00115 }
00116 
00117 /*!
00118    \returns The value of ss_declaration::linkage.
00119    \author lsg
00120  */
00121 ptr< ss_linkage > ss_declaration::linkage_get() const
00122 {
00123         return linkage;
00124 }
00125 
00126 /*!
00127    \param[in] x The new value to set ss_declaration::linkage to.
00128    \author lsg
00129  */
00130 void ss_declaration::linkage_set(const ptr< ss_linkage > & x)
00131 {
00132         ss_declaration::linkage = x;
00133 }
00134 
00135 /*!
00136    Generated constructor for class ss_declaration.
00137    \author lsg
00138  */
00139 ss_declaration::ss_declaration (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00140                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
00141                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
00142                 ptr< ss_decl_name > a__ss_declaration__name,
00143                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
00144                 ptr< ss_type > a__ss_declaration__type,
00145                 ptr< ss_linkage > a__ss_declaration__linkage)
00146         : ss_base_with_location(a__ss_base_with_location__location), visible_since(checked(a__ss_declaration__visible_since)), decl_time(checked(a__ss_declaration__decl_time)), name(checked(a__ss_declaration__name)), contained_in(checked(a__ss_declaration__contained_in)), type(checked(a__ss_declaration__type)), linkage(checked(a__ss_declaration__linkage))
00147 {}
00148 
00149 ptr< object::reflection_list > ss_declaration::reflection_get() const
00150 {
00151         if (!reflection) {
00152                 typedef class_reflection::field_metadata md;
00153                 typedef class_reflection::field_metadata_list mdlist;
00154                 ptr<mdlist> mdl = mdlist::create();
00155                 mdl->push_back( md::create( "visible_since", "ss_declaration_time" ) );
00156                 mdl->push_back( md::create( "decl_time", "ss_declaration_time" ) );
00157                 mdl->push_back( md::create( "name", "ss_decl_name" ) );
00158                 mdl->push_back( md::create( "contained_in", "ss_decl_seq" ) );
00159                 mdl->push_back( md::create( "type", "ss_type" ) );
00160                 mdl->push_back( md::create( "linkage", "ss_linkage" ) );
00161                 reflection = reflection_list::create( ::lestes::intercode::ss_base_with_location::reflection_get() );
00162                 reflection->push_back( class_reflection::create( "ss_declaration", mdl ) );
00163         }
00164         return reflection;
00165 }
00166 
00167 ptr< object::field_list_list > ss_declaration::field_values_get() const
00168 {
00169         ptr < field_list_list > result = ::lestes::intercode::ss_base_with_location::field_values_get();
00170         result->push_back( value_list::create() );
00171         result->back()->push_back( this->visible_since );
00172         result->push_back( value_list::create() );
00173         result->back()->push_back( this->decl_time );
00174         result->push_back( value_list::create() );
00175         result->back()->push_back( this->name );
00176         result->push_back( value_list::create() );
00177         result->back()->push_back( this->contained_in );
00178         result->push_back( value_list::create() );
00179         result->back()->push_back( this->type );
00180         result->push_back( value_list::create() );
00181         result->back()->push_back( this->linkage );
00182         return result;
00183 }
00184 
00185 
00186 /*!
00187    Marking routine is used for garbage collection.
00188    \author lsg
00189  */
00190 void ss_declaration::gc_mark()
00191 {
00192 	::lestes::intercode::ss_base_with_location::gc_mark();
00193 }
00194 
00195 // End of class ss_declaration.
00196 
00197 // ------------- Class ss_namespace_definition follows. -------------
00198 
00199 /*!
00200    \returns The value of ss_namespace_definition::body.
00201    \author lsg
00202  */
00203 ptr< ss_decl_seq > ss_namespace_definition::body_get() const
00204 {
00205         return body;
00206 }
00207 
00208 /*!
00209    \param[in] x The new value to set ss_namespace_definition::body to.
00210    \author lsg
00211  */
00212 void ss_namespace_definition::body_set(const ptr< ss_decl_seq > & x)
00213 {
00214         ss_namespace_definition::body = x;
00215 }
00216 
00217 void ss_namespace_definition::accept_ss_declaration_visitor( ptr< ss_declaration_visitor > v )
00218 {
00219         return v->visit_ss_namespace_definition( this );
00220 }
00221 
00222 ulint ss_namespace_definition::accept_ss_decl2ulint_base( ptr< ss_decl2ulint_base > v )
00223 {
00224         return v->visit_ss_namespace_definition( this );
00225 }
00226 
00227 lstring ss_namespace_definition::accept_ss_decl2lstring_base( ptr< ss_decl2lstring_base > v )
00228 {
00229         return v->visit_ss_namespace_definition( this );
00230 }
00231 
00232 /*!
00233    This factory method for class ss_namespace_definition takes values of all fields as arguments.
00234    \author lsg
00235  */
00236 ptr< ss_namespace_definition > ss_namespace_definition::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00237                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
00238                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
00239                 ptr< ss_decl_name > a__ss_declaration__name,
00240                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
00241                 ptr< ss_type > a__ss_declaration__type,
00242                 ptr< ss_linkage > a__ss_declaration__linkage,
00243                 ptr< ss_decl_seq > a__ss_namespace_definition__body)
00244 {
00245         return ptr< ss_namespace_definition > ( new ss_namespace_definition(a__ss_base_with_location__location,
00246                 a__ss_declaration__visible_since,
00247                 a__ss_declaration__decl_time,
00248                 a__ss_declaration__name,
00249                 a__ss_declaration__contained_in,
00250                 a__ss_declaration__type,
00251                 a__ss_declaration__linkage,
00252                 a__ss_namespace_definition__body) );
00253 }
00254 
00255 /*!
00256    Generated constructor for class ss_namespace_definition.
00257    \author lsg
00258  */
00259 ss_namespace_definition::ss_namespace_definition (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00260                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
00261                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
00262                 ptr< ss_decl_name > a__ss_declaration__name,
00263                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
00264                 ptr< ss_type > a__ss_declaration__type,
00265                 ptr< ss_linkage > a__ss_declaration__linkage,
00266                 ptr< ss_decl_seq > a__ss_namespace_definition__body)
00267         : ss_declaration(a__ss_base_with_location__location,
00268                 a__ss_declaration__visible_since,
00269                 a__ss_declaration__decl_time,
00270                 a__ss_declaration__name,
00271                 a__ss_declaration__contained_in,
00272                 a__ss_declaration__type,
00273                 a__ss_declaration__linkage), body(checked(a__ss_namespace_definition__body))
00274 {}
00275 
00276 ptr< object::reflection_list > ss_namespace_definition::reflection_get() const
00277 {
00278         if (!reflection) {
00279                 typedef class_reflection::field_metadata md;
00280                 typedef class_reflection::field_metadata_list mdlist;
00281                 ptr<mdlist> mdl = mdlist::create();
00282                 mdl->push_back( md::create( "body", "ss_decl_seq" ) );
00283                 reflection = reflection_list::create( ss_declaration::reflection_get() );
00284                 reflection->push_back( class_reflection::create( "ss_namespace_definition", mdl ) );
00285         }
00286         return reflection;
00287 }
00288 
00289 ptr< object::field_list_list > ss_namespace_definition::field_values_get() const
00290 {
00291         ptr < field_list_list > result = ss_declaration::field_values_get();
00292         result->push_back( value_list::create() );
00293         result->back()->push_back( this->body );
00294         return result;
00295 }
00296 
00297 
00298 /*!
00299    Marking routine is used for garbage collection.
00300    \author lsg
00301  */
00302 void ss_namespace_definition::gc_mark()
00303 {
00304         ss_declaration::gc_mark();
00305 }
00306 
00307 // End of class ss_namespace_definition.
00308 
00309 // ------------- Class ss_declaration_with_access_specifier follows. -------------
00310 
00311 /*!
00312    \returns The value of ss_declaration_with_access_specifier::access_specifier.
00313    \author lsg
00314  */
00315 ss_access_specifier::type ss_declaration_with_access_specifier::access_specifier_get() const
00316 {
00317         return access_specifier;
00318 }
00319 
00320 /*!
00321    \param[in] x The new value to set ss_declaration_with_access_specifier::access_specifier to.
00322    \author lsg
00323  */
00324 void ss_declaration_with_access_specifier::access_specifier_set(ss_access_specifier::type x)
00325 {
00326         ss_declaration_with_access_specifier::access_specifier = x;
00327 }
00328 
00329 /*!
00330    \returns The value of ss_declaration_with_access_specifier::storage_class.
00331    \author lsg
00332  */
00333 ss_storage_class::type ss_declaration_with_access_specifier::storage_class_get() const
00334 {
00335         return storage_class;
00336 }
00337 
00338 /*!
00339    \param[in] x The new value to set ss_declaration_with_access_specifier::storage_class to.
00340    \author lsg
00341  */
00342 void ss_declaration_with_access_specifier::storage_class_set(ss_storage_class::type x)
00343 {
00344         ss_declaration_with_access_specifier::storage_class = x;
00345 }
00346 
00347 /*!
00348    Generated constructor for class ss_declaration_with_access_specifier.
00349    \author lsg
00350  */
00351 ss_declaration_with_access_specifier::ss_declaration_with_access_specifier (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00352                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
00353                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
00354                 ptr< ss_decl_name > a__ss_declaration__name,
00355                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
00356                 ptr< ss_type > a__ss_declaration__type,
00357                 ptr< ss_linkage > a__ss_declaration__linkage,
00358                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
00359                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class)
00360         : ss_declaration(a__ss_base_with_location__location,
00361                 a__ss_declaration__visible_since,
00362                 a__ss_declaration__decl_time,
00363                 a__ss_declaration__name,
00364                 a__ss_declaration__contained_in,
00365                 a__ss_declaration__type,
00366                 a__ss_declaration__linkage), access_specifier(a__ss_declaration_with_access_specifier__access_specifier), storage_class(a__ss_declaration_with_access_specifier__storage_class)
00367 {}
00368 
00369 ptr< object::reflection_list > ss_declaration_with_access_specifier::reflection_get() const
00370 {
00371         if (!reflection) {
00372                 typedef class_reflection::field_metadata md;
00373                 typedef class_reflection::field_metadata_list mdlist;
00374                 ptr<mdlist> mdl = mdlist::create();
00375                 mdl->push_back( md::create( "access_specifier", "ss_access_specifier::type" ) );
00376                 mdl->push_back( md::create( "storage_class", "ss_storage_class::type" ) );
00377                 reflection = reflection_list::create( ss_declaration::reflection_get() );
00378                 reflection->push_back( class_reflection::create( "ss_declaration_with_access_specifier", mdl ) );
00379         }
00380         return reflection;
00381 }
00382 
00383 ptr< object::field_list_list > ss_declaration_with_access_specifier::field_values_get() const
00384 {
00385         ptr < field_list_list > result = ss_declaration::field_values_get();
00386         result->push_back( value_list::create() );
00387         result->back()->push_back( objectize< ss_access_specifier::type > ::create( this->access_specifier ) );
00388         result->push_back( value_list::create() );
00389         result->back()->push_back( objectize< ss_storage_class::type > ::create( this->storage_class ) );
00390         return result;
00391 }
00392 
00393 
00394 /*!
00395    Marking routine is used for garbage collection.
00396    \author lsg
00397  */
00398 void ss_declaration_with_access_specifier::gc_mark()
00399 {
00400         ss_declaration::gc_mark();
00401 }
00402 
00403 // End of class ss_declaration_with_access_specifier.
00404 
00405 // ------------- Class ss_object_declaration follows. -------------
00406 
00407 /*!
00408    \returns The value of ss_object_declaration::initialized_since.
00409    \author lsg
00410  */
00411 ptr< ss_declaration_time > ss_object_declaration::initialized_since_get() const
00412 {
00413         return initialized_since;
00414 }
00415 
00416 /*!
00417    \param[in] x The new value to set ss_object_declaration::initialized_since to.
00418    \author lsg
00419  */
00420 void ss_object_declaration::initialized_since_set(const ptr< ss_declaration_time > & x)
00421 {
00422         ss_object_declaration::initialized_since = x;
00423 }
00424 
00425 /*!
00426    \returns The value of ss_object_declaration::initializer.
00427    \author lsg
00428  */
00429 ptr< or_or_functional > ss_object_declaration::initializer_get() const
00430 {
00431         return initializer;
00432 }
00433 
00434 /*!
00435    \param[in] x The new value to set ss_object_declaration::initializer to.
00436    \author lsg
00437  */
00438 void ss_object_declaration::initializer_set(const ptr< or_or_functional > & x)
00439 {
00440         ss_object_declaration::initializer = x;
00441 }
00442 
00443 void ss_object_declaration::accept_ss_declaration_visitor( ptr< ss_declaration_visitor > v )
00444 {
00445         return v->visit_ss_object_declaration( this );
00446 }
00447 
00448 ulint ss_object_declaration::accept_ss_decl2ulint_base( ptr< ss_decl2ulint_base > v )
00449 {
00450         return v->visit_ss_object_declaration( this );
00451 }
00452 
00453 lstring ss_object_declaration::accept_ss_decl2lstring_base( ptr< ss_decl2lstring_base > v )
00454 {
00455         return v->visit_ss_object_declaration( this );
00456 }
00457 
00458 /*!
00459    This factory method for class ss_object_declaration takes values of all fields as arguments.
00460    \author lsg
00461  */
00462 ptr< ss_object_declaration > ss_object_declaration::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00463                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
00464                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
00465                 ptr< ss_decl_name > a__ss_declaration__name,
00466                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
00467                 ptr< ss_type > a__ss_declaration__type,
00468                 ptr< ss_linkage > a__ss_declaration__linkage,
00469                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
00470                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class,
00471                 ptr< ss_declaration_time > a__ss_object_declaration__initialized_since,
00472                 ptr< or_or_functional > a__ss_object_declaration__initializer)
00473 {
00474         return ptr< ss_object_declaration > ( new ss_object_declaration(a__ss_base_with_location__location,
00475                 a__ss_declaration__visible_since,
00476                 a__ss_declaration__decl_time,
00477                 a__ss_declaration__name,
00478                 a__ss_declaration__contained_in,
00479                 a__ss_declaration__type,
00480                 a__ss_declaration__linkage,
00481                 a__ss_declaration_with_access_specifier__access_specifier,
00482                 a__ss_declaration_with_access_specifier__storage_class,
00483                 a__ss_object_declaration__initialized_since,
00484                 a__ss_object_declaration__initializer) );
00485 }
00486 
00487 /*!
00488    This factory method for class ss_object_declaration uses initializers.
00489    \author lsg
00490  */
00491 ptr< ss_object_declaration > ss_object_declaration::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00492                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
00493                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
00494                 ptr< ss_decl_name > a__ss_declaration__name,
00495                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
00496                 ptr< ss_type > a__ss_declaration__type,
00497                 ptr< ss_linkage > a__ss_declaration__linkage,
00498                 ptr< ss_declaration_time > a__ss_object_declaration__initialized_since,
00499                 ptr< or_or_functional > a__ss_object_declaration__initializer)
00500 {
00501         return ptr< ss_object_declaration > ( new ss_object_declaration(a__ss_base_with_location__location, a__ss_declaration__visible_since, a__ss_declaration__decl_time, a__ss_declaration__name, a__ss_declaration__contained_in, a__ss_declaration__type, a__ss_declaration__linkage, ss_access_specifier::ACCESS_PUBLIC, ss_storage_class::ST_NONE, a__ss_object_declaration__initialized_since, a__ss_object_declaration__initializer) );
00502 }
00503 
00504 /*!
00505    Generated constructor for class ss_object_declaration.
00506    \author lsg
00507  */
00508 ss_object_declaration::ss_object_declaration (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00509                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
00510                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
00511                 ptr< ss_decl_name > a__ss_declaration__name,
00512                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
00513                 ptr< ss_type > a__ss_declaration__type,
00514                 ptr< ss_linkage > a__ss_declaration__linkage,
00515                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
00516                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class,
00517                 ptr< ss_declaration_time > a__ss_object_declaration__initialized_since,
00518                 ptr< or_or_functional > a__ss_object_declaration__initializer)
00519         : ss_declaration_with_access_specifier(a__ss_base_with_location__location,
00520                 a__ss_declaration__visible_since,
00521                 a__ss_declaration__decl_time,
00522                 a__ss_declaration__name,
00523                 a__ss_declaration__contained_in,
00524                 a__ss_declaration__type,
00525                 a__ss_declaration__linkage,
00526                 a__ss_declaration_with_access_specifier__access_specifier,
00527                 a__ss_declaration_with_access_specifier__storage_class), initialized_since(checked(a__ss_object_declaration__initialized_since)), initializer(a__ss_object_declaration__initializer)
00528 {}
00529 
00530 ptr< object::reflection_list > ss_object_declaration::reflection_get() const
00531 {
00532         if (!reflection) {
00533                 typedef class_reflection::field_metadata md;
00534                 typedef class_reflection::field_metadata_list mdlist;
00535                 ptr<mdlist> mdl = mdlist::create();
00536                 mdl->push_back( md::create( "initialized_since", "ss_declaration_time" ) );
00537                 mdl->push_back( md::create( "initializer", "or_or_functional" ) );
00538                 reflection = reflection_list::create( ss_declaration_with_access_specifier::reflection_get() );
00539                 reflection->push_back( class_reflection::create( "ss_object_declaration", mdl ) );
00540         }
00541         return reflection;
00542 }
00543 
00544 ptr< object::field_list_list > ss_object_declaration::field_values_get() const
00545 {
00546         ptr < field_list_list > result = ss_declaration_with_access_specifier::field_values_get();
00547         result->push_back( value_list::create() );
00548         result->back()->push_back( this->initialized_since );
00549         result->push_back( value_list::create() );
00550         result->back()->push_back( this->initializer );
00551         return result;
00552 }
00553 
00554 
00555 /*!
00556    Marking routine is used for garbage collection.
00557    \author lsg
00558  */
00559 void ss_object_declaration::gc_mark()
00560 {
00561         ss_declaration_with_access_specifier::gc_mark();
00562 }
00563 
00564 // End of class ss_object_declaration.
00565 
00566 // ------------- Class ss_bitfield_declaration follows. -------------
00567 
00568 /*!
00569    \returns The value of ss_bitfield_declaration::width.
00570    \author lsg
00571  */
00572 t_size ss_bitfield_declaration::width_get() const
00573 {
00574         return width;
00575 }
00576 
00577 /*!
00578    \param[in] x The new value to set ss_bitfield_declaration::width to.
00579    \author lsg
00580  */
00581 void ss_bitfield_declaration::width_set(t_size x)
00582 {
00583         ss_bitfield_declaration::width = x;
00584 }
00585 
00586 void ss_bitfield_declaration::accept_ss_declaration_visitor( ptr< ss_declaration_visitor > v )
00587 {
00588         return v->visit_ss_bitfield_declaration( this );
00589 }
00590 
00591 ulint ss_bitfield_declaration::accept_ss_decl2ulint_base( ptr< ss_decl2ulint_base > v )
00592 {
00593         return v->visit_ss_bitfield_declaration( this );
00594 }
00595 
00596 lstring ss_bitfield_declaration::accept_ss_decl2lstring_base( ptr< ss_decl2lstring_base > v )
00597 {
00598         return v->visit_ss_bitfield_declaration( this );
00599 }
00600 
00601 /*!
00602    This factory method for class ss_bitfield_declaration takes values of all fields as arguments.
00603    \author lsg
00604  */
00605 ptr< ss_bitfield_declaration > ss_bitfield_declaration::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00606                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
00607                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
00608                 ptr< ss_decl_name > a__ss_declaration__name,
00609                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
00610                 ptr< ss_type > a__ss_declaration__type,
00611                 ptr< ss_linkage > a__ss_declaration__linkage,
00612                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
00613                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class,
00614                 ptr< ss_declaration_time > a__ss_object_declaration__initialized_since,
00615                 ptr< or_or_functional > a__ss_object_declaration__initializer,
00616                 t_size a__ss_bitfield_declaration__width)
00617 {
00618         return ptr< ss_bitfield_declaration > ( new ss_bitfield_declaration(a__ss_base_with_location__location,
00619                 a__ss_declaration__visible_since,
00620                 a__ss_declaration__decl_time,
00621                 a__ss_declaration__name,
00622                 a__ss_declaration__contained_in,
00623                 a__ss_declaration__type,
00624                 a__ss_declaration__linkage,
00625                 a__ss_declaration_with_access_specifier__access_specifier,
00626                 a__ss_declaration_with_access_specifier__storage_class,
00627                 a__ss_object_declaration__initialized_since,
00628                 a__ss_object_declaration__initializer,
00629                 a__ss_bitfield_declaration__width) );
00630 }
00631 
00632 /*!
00633    This factory method for class ss_bitfield_declaration uses initializers.
00634    \author lsg
00635  */
00636 ptr< ss_bitfield_declaration > ss_bitfield_declaration::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00637                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
00638                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
00639                 ptr< ss_decl_name > a__ss_declaration__name,
00640                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
00641                 ptr< ss_type > a__ss_declaration__type,
00642                 ptr< ss_linkage > a__ss_declaration__linkage,
00643                 ptr< ss_declaration_time > a__ss_object_declaration__initialized_since,
00644                 ptr< or_or_functional > a__ss_object_declaration__initializer,
00645                 t_size a__ss_bitfield_declaration__width)
00646 {
00647         return ptr< ss_bitfield_declaration > ( new ss_bitfield_declaration(a__ss_base_with_location__location, a__ss_declaration__visible_since, a__ss_declaration__decl_time, a__ss_declaration__name, a__ss_declaration__contained_in, a__ss_declaration__type, a__ss_declaration__linkage, ss_access_specifier::ACCESS_PUBLIC, ss_storage_class::ST_NONE, a__ss_object_declaration__initialized_since, a__ss_object_declaration__initializer, a__ss_bitfield_declaration__width) );
00648 }
00649 
00650 /*!
00651    Generated constructor for class ss_bitfield_declaration.
00652    \author lsg
00653  */
00654 ss_bitfield_declaration::ss_bitfield_declaration (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00655                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
00656                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
00657                 ptr< ss_decl_name > a__ss_declaration__name,
00658                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
00659                 ptr< ss_type > a__ss_declaration__type,
00660                 ptr< ss_linkage > a__ss_declaration__linkage,
00661                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
00662                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class,
00663                 ptr< ss_declaration_time > a__ss_object_declaration__initialized_since,
00664                 ptr< or_or_functional > a__ss_object_declaration__initializer,
00665                 t_size a__ss_bitfield_declaration__width)
00666         : ss_object_declaration(a__ss_base_with_location__location,
00667                 a__ss_declaration__visible_since,
00668                 a__ss_declaration__decl_time,
00669                 a__ss_declaration__name,
00670                 a__ss_declaration__contained_in,
00671                 a__ss_declaration__type,
00672                 a__ss_declaration__linkage,
00673                 a__ss_declaration_with_access_specifier__access_specifier,
00674                 a__ss_declaration_with_access_specifier__storage_class,
00675                 a__ss_object_declaration__initialized_since,
00676                 a__ss_object_declaration__initializer), width(a__ss_bitfield_declaration__width)
00677 {}
00678 
00679 ptr< object::reflection_list > ss_bitfield_declaration::reflection_get() const
00680 {
00681         if (!reflection) {
00682                 typedef class_reflection::field_metadata md;
00683                 typedef class_reflection::field_metadata_list mdlist;
00684                 ptr<mdlist> mdl = mdlist::create();
00685                 mdl->push_back( md::create( "width", "t_size" ) );
00686                 reflection = reflection_list::create( ss_object_declaration::reflection_get() );
00687                 reflection->push_back( class_reflection::create( "ss_bitfield_declaration", mdl ) );
00688         }
00689         return reflection;
00690 }
00691 
00692 ptr< object::field_list_list > ss_bitfield_declaration::field_values_get() const
00693 {
00694         ptr < field_list_list > result = ss_object_declaration::field_values_get();
00695         result->push_back( value_list::create() );
00696         result->back()->push_back( objectize< t_size > ::create( this->width ) );
00697         return result;
00698 }
00699 
00700 
00701 /*!
00702    Marking routine is used for garbage collection.
00703    \author lsg
00704  */
00705 void ss_bitfield_declaration::gc_mark()
00706 {
00707         ss_object_declaration::gc_mark();
00708 }
00709 
00710 // End of class ss_bitfield_declaration.
00711 
00712 // ------------- Class ss_parameter_declaration follows. -------------
00713 
00714 /*!
00715    \returns The value of ss_parameter_declaration::position.
00716    \author lsg
00717  */
00718 ulint ss_parameter_declaration::position_get() const
00719 {
00720         return position;
00721 }
00722 
00723 /*!
00724    \param[in] x The new value to set ss_parameter_declaration::position to.
00725    \author lsg
00726  */
00727 void ss_parameter_declaration::position_set(ulint x)
00728 {
00729         ss_parameter_declaration::position = x;
00730 }
00731 
00732 void ss_parameter_declaration::accept_ss_declaration_visitor( ptr< ss_declaration_visitor > v )
00733 {
00734         return v->visit_ss_parameter_declaration( this );
00735 }
00736 
00737 ulint ss_parameter_declaration::accept_ss_decl2ulint_base( ptr< ss_decl2ulint_base > v )
00738 {
00739         return v->visit_ss_parameter_declaration( this );
00740 }
00741 
00742 lstring ss_parameter_declaration::accept_ss_decl2lstring_base( ptr< ss_decl2lstring_base > v )
00743 {
00744         return v->visit_ss_parameter_declaration( this );
00745 }
00746 
00747 /*!
00748    This factory method for class ss_parameter_declaration takes values of all fields as arguments.
00749    \author lsg
00750  */
00751 ptr< ss_parameter_declaration > ss_parameter_declaration::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00752                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
00753                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
00754                 ptr< ss_decl_name > a__ss_declaration__name,
00755                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
00756                 ptr< ss_type > a__ss_declaration__type,
00757                 ptr< ss_linkage > a__ss_declaration__linkage,
00758                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
00759                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class,
00760                 ptr< ss_declaration_time > a__ss_object_declaration__initialized_since,
00761                 ptr< or_or_functional > a__ss_object_declaration__initializer,
00762                 ulint a__ss_parameter_declaration__position)
00763 {
00764         return ptr< ss_parameter_declaration > ( new ss_parameter_declaration(a__ss_base_with_location__location,
00765                 a__ss_declaration__visible_since,
00766                 a__ss_declaration__decl_time,
00767                 a__ss_declaration__name,
00768                 a__ss_declaration__contained_in,
00769                 a__ss_declaration__type,
00770                 a__ss_declaration__linkage,
00771                 a__ss_declaration_with_access_specifier__access_specifier,
00772                 a__ss_declaration_with_access_specifier__storage_class,
00773                 a__ss_object_declaration__initialized_since,
00774                 a__ss_object_declaration__initializer,
00775                 a__ss_parameter_declaration__position) );
00776 }
00777 
00778 /*!
00779    This factory method for class ss_parameter_declaration uses initializers.
00780    \author lsg
00781  */
00782 ptr< ss_parameter_declaration > ss_parameter_declaration::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00783                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
00784                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
00785                 ptr< ss_decl_name > a__ss_declaration__name,
00786                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
00787                 ptr< ss_type > a__ss_declaration__type,
00788                 ptr< ss_linkage > a__ss_declaration__linkage,
00789                 ptr< ss_declaration_time > a__ss_object_declaration__initialized_since,
00790                 ptr< or_or_functional > a__ss_object_declaration__initializer,
00791                 ulint a__ss_parameter_declaration__position)
00792 {
00793         return ptr< ss_parameter_declaration > ( new ss_parameter_declaration(a__ss_base_with_location__location, a__ss_declaration__visible_since, a__ss_declaration__decl_time, a__ss_declaration__name, a__ss_declaration__contained_in, a__ss_declaration__type, a__ss_declaration__linkage, ss_access_specifier::ACCESS_PUBLIC, ss_storage_class::ST_NONE, a__ss_object_declaration__initialized_since, a__ss_object_declaration__initializer, a__ss_parameter_declaration__position) );
00794 }
00795 
00796 /*!
00797    Generated constructor for class ss_parameter_declaration.
00798    \author lsg
00799  */
00800 ss_parameter_declaration::ss_parameter_declaration (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00801                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
00802                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
00803                 ptr< ss_decl_name > a__ss_declaration__name,
00804                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
00805                 ptr< ss_type > a__ss_declaration__type,
00806                 ptr< ss_linkage > a__ss_declaration__linkage,
00807                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
00808                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class,
00809                 ptr< ss_declaration_time > a__ss_object_declaration__initialized_since,
00810                 ptr< or_or_functional > a__ss_object_declaration__initializer,
00811                 ulint a__ss_parameter_declaration__position)
00812         : ss_object_declaration(a__ss_base_with_location__location,
00813                 a__ss_declaration__visible_since,
00814                 a__ss_declaration__decl_time,
00815                 a__ss_declaration__name,
00816                 a__ss_declaration__contained_in,
00817                 a__ss_declaration__type,
00818                 a__ss_declaration__linkage,
00819                 a__ss_declaration_with_access_specifier__access_specifier,
00820                 a__ss_declaration_with_access_specifier__storage_class,
00821                 a__ss_object_declaration__initialized_since,
00822                 a__ss_object_declaration__initializer), position(a__ss_parameter_declaration__position)
00823 {}
00824 
00825 ptr< object::reflection_list > ss_parameter_declaration::reflection_get() const
00826 {
00827         if (!reflection) {
00828                 typedef class_reflection::field_metadata md;
00829                 typedef class_reflection::field_metadata_list mdlist;
00830                 ptr<mdlist> mdl = mdlist::create();
00831                 mdl->push_back( md::create( "position", "ulint" ) );
00832                 reflection = reflection_list::create( ss_object_declaration::reflection_get() );
00833                 reflection->push_back( class_reflection::create( "ss_parameter_declaration", mdl ) );
00834         }
00835         return reflection;
00836 }
00837 
00838 ptr< object::field_list_list > ss_parameter_declaration::field_values_get() const
00839 {
00840         ptr < field_list_list > result = ss_object_declaration::field_values_get();
00841         result->push_back( value_list::create() );
00842         result->back()->push_back( objectize< ulint > ::create( this->position ) );
00843         return result;
00844 }
00845 
00846 
00847 /*!
00848    Marking routine is used for garbage collection.
00849    \author lsg
00850  */
00851 void ss_parameter_declaration::gc_mark()
00852 {
00853         ss_object_declaration::gc_mark();
00854 }
00855 
00856 // End of class ss_parameter_declaration.
00857 
00858 // ------------- Class ss_fake_declaration follows. -------------
00859 
00860 /*!
00861    \returns The value of ss_fake_declaration::real_decl.
00862    \author lsg
00863  */
00864 ptr< ss_object_declaration > ss_fake_declaration::real_decl_get() const
00865 {
00866         return real_decl;
00867 }
00868 
00869 /*!
00870    \param[in] x The new value to set ss_fake_declaration::real_decl to.
00871    \author lsg
00872  */
00873 void ss_fake_declaration::real_decl_set(const ptr< ss_object_declaration > & x)
00874 {
00875         ss_fake_declaration::real_decl = x;
00876 }
00877 
00878 void ss_fake_declaration::accept_ss_declaration_visitor( ptr< ss_declaration_visitor > v )
00879 {
00880         return v->visit_ss_fake_declaration( this );
00881 }
00882 
00883 ulint ss_fake_declaration::accept_ss_decl2ulint_base( ptr< ss_decl2ulint_base > v )
00884 {
00885         return v->visit_ss_fake_declaration( this );
00886 }
00887 
00888 lstring ss_fake_declaration::accept_ss_decl2lstring_base( ptr< ss_decl2lstring_base > v )
00889 {
00890         return v->visit_ss_fake_declaration( this );
00891 }
00892 
00893 /*!
00894    This factory method for class ss_fake_declaration takes values of all fields as arguments.
00895    \author lsg
00896  */
00897 ptr< ss_fake_declaration > ss_fake_declaration::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00898                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
00899                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
00900                 ptr< ss_decl_name > a__ss_declaration__name,
00901                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
00902                 ptr< ss_type > a__ss_declaration__type,
00903                 ptr< ss_linkage > a__ss_declaration__linkage,
00904                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
00905                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class,
00906                 ptr< ss_object_declaration > a__ss_fake_declaration__real_decl)
00907 {
00908         return ptr< ss_fake_declaration > ( new ss_fake_declaration(a__ss_base_with_location__location,
00909                 a__ss_declaration__visible_since,
00910                 a__ss_declaration__decl_time,
00911                 a__ss_declaration__name,
00912                 a__ss_declaration__contained_in,
00913                 a__ss_declaration__type,
00914                 a__ss_declaration__linkage,
00915                 a__ss_declaration_with_access_specifier__access_specifier,
00916                 a__ss_declaration_with_access_specifier__storage_class,
00917                 a__ss_fake_declaration__real_decl) );
00918 }
00919 
00920 /*!
00921    This factory method for class ss_fake_declaration uses initializers.
00922    \author lsg
00923  */
00924 ptr< ss_fake_declaration > ss_fake_declaration::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00925                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
00926                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
00927                 ptr< ss_decl_name > a__ss_declaration__name,
00928                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
00929                 ptr< ss_type > a__ss_declaration__type,
00930                 ptr< ss_linkage > a__ss_declaration__linkage,
00931                 ptr< ss_object_declaration > a__ss_fake_declaration__real_decl)
00932 {
00933         return ptr< ss_fake_declaration > ( new ss_fake_declaration(a__ss_base_with_location__location, a__ss_declaration__visible_since, a__ss_declaration__decl_time, a__ss_declaration__name, a__ss_declaration__contained_in, a__ss_declaration__type, a__ss_declaration__linkage, ss_access_specifier::ACCESS_PUBLIC, ss_storage_class::ST_NONE, a__ss_fake_declaration__real_decl) );
00934 }
00935 
00936 /*!
00937    Generated constructor for class ss_fake_declaration.
00938    \author lsg
00939  */
00940 ss_fake_declaration::ss_fake_declaration (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00941                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
00942                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
00943                 ptr< ss_decl_name > a__ss_declaration__name,
00944                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
00945                 ptr< ss_type > a__ss_declaration__type,
00946                 ptr< ss_linkage > a__ss_declaration__linkage,
00947                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
00948                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class,
00949                 ptr< ss_object_declaration > a__ss_fake_declaration__real_decl)
00950         : ss_declaration_with_access_specifier(a__ss_base_with_location__location,
00951                 a__ss_declaration__visible_since,
00952                 a__ss_declaration__decl_time,
00953                 a__ss_declaration__name,
00954                 a__ss_declaration__contained_in,
00955                 a__ss_declaration__type,
00956                 a__ss_declaration__linkage,
00957                 a__ss_declaration_with_access_specifier__access_specifier,
00958                 a__ss_declaration_with_access_specifier__storage_class), real_decl(checked(a__ss_fake_declaration__real_decl))
00959 {}
00960 
00961 ptr< object::reflection_list > ss_fake_declaration::reflection_get() const
00962 {
00963         if (!reflection) {
00964                 typedef class_reflection::field_metadata md;
00965                 typedef class_reflection::field_metadata_list mdlist;
00966                 ptr<mdlist> mdl = mdlist::create();
00967                 mdl->push_back( md::create( "real_decl", "ss_object_declaration" ) );
00968                 reflection = reflection_list::create( ss_declaration_with_access_specifier::reflection_get() );
00969                 reflection->push_back( class_reflection::create( "ss_fake_declaration", mdl ) );
00970         }
00971         return reflection;
00972 }
00973 
00974 ptr< object::field_list_list > ss_fake_declaration::field_values_get() const
00975 {
00976         ptr < field_list_list > result = ss_declaration_with_access_specifier::field_values_get();
00977         result->push_back( value_list::create() );
00978         result->back()->push_back( this->real_decl );
00979         return result;
00980 }
00981 
00982 
00983 /*!
00984    Marking routine is used for garbage collection.
00985    \author lsg
00986  */
00987 void ss_fake_declaration::gc_mark()
00988 {
00989         ss_declaration_with_access_specifier::gc_mark();
00990 }
00991 
00992 // End of class ss_fake_declaration.
00993 
00994 // ------------- Class ss_injected_class_declaration follows. -------------
00995 
00996 /*!
00997    \returns The value of ss_injected_class_declaration::real_decl.
00998    \author lsg
00999  */
01000 ptr< ss_structure_declaration > ss_injected_class_declaration::real_decl_get() const
01001 {
01002         return real_decl;
01003 }
01004 
01005 /*!
01006    \param[in] x The new value to set ss_injected_class_declaration::real_decl to.
01007    \author lsg
01008  */
01009 void ss_injected_class_declaration::real_decl_set(const ptr< ss_structure_declaration > & x)
01010 {
01011         ss_injected_class_declaration::real_decl = x;
01012 }
01013 
01014 void ss_injected_class_declaration::accept_ss_declaration_visitor( ptr< ss_declaration_visitor > v )
01015 {
01016         return v->visit_ss_injected_class_declaration( this );
01017 }
01018 
01019 ulint ss_injected_class_declaration::accept_ss_decl2ulint_base( ptr< ss_decl2ulint_base > v )
01020 {
01021         return v->visit_ss_injected_class_declaration( this );
01022 }
01023 
01024 lstring ss_injected_class_declaration::accept_ss_decl2lstring_base( ptr< ss_decl2lstring_base > v )
01025 {
01026         return v->visit_ss_injected_class_declaration( this );
01027 }
01028 
01029 /*!
01030    This factory method for class ss_injected_class_declaration takes values of all fields as arguments.
01031    \author lsg
01032  */
01033 ptr< ss_injected_class_declaration > ss_injected_class_declaration::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01034                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
01035                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
01036                 ptr< ss_decl_name > a__ss_declaration__name,
01037                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
01038                 ptr< ss_type > a__ss_declaration__type,
01039                 ptr< ss_linkage > a__ss_declaration__linkage,
01040                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
01041                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class,
01042                 ptr< ss_structure_declaration > a__ss_injected_class_declaration__real_decl)
01043 {
01044         return ptr< ss_injected_class_declaration > ( new ss_injected_class_declaration(a__ss_base_with_location__location,
01045                 a__ss_declaration__visible_since,
01046                 a__ss_declaration__decl_time,
01047                 a__ss_declaration__name,
01048                 a__ss_declaration__contained_in,
01049                 a__ss_declaration__type,
01050                 a__ss_declaration__linkage,
01051                 a__ss_declaration_with_access_specifier__access_specifier,
01052                 a__ss_declaration_with_access_specifier__storage_class,
01053                 a__ss_injected_class_declaration__real_decl) );
01054 }
01055 
01056 /*!
01057    This factory method for class ss_injected_class_declaration uses initializers.
01058    \author lsg
01059  */
01060 ptr< ss_injected_class_declaration > ss_injected_class_declaration::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01061                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
01062                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
01063                 ptr< ss_decl_name > a__ss_declaration__name,
01064                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
01065                 ptr< ss_type > a__ss_declaration__type,
01066                 ptr< ss_linkage > a__ss_declaration__linkage,
01067                 ptr< ss_structure_declaration > a__ss_injected_class_declaration__real_decl)
01068 {
01069         return ptr< ss_injected_class_declaration > ( new ss_injected_class_declaration(a__ss_base_with_location__location, a__ss_declaration__visible_since, a__ss_declaration__decl_time, a__ss_declaration__name, a__ss_declaration__contained_in, a__ss_declaration__type, a__ss_declaration__linkage, ss_access_specifier::ACCESS_PUBLIC, ss_storage_class::ST_NONE, a__ss_injected_class_declaration__real_decl) );
01070 }
01071 
01072 /*!
01073    Generated constructor for class ss_injected_class_declaration.
01074    \author lsg
01075  */
01076 ss_injected_class_declaration::ss_injected_class_declaration (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01077                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
01078                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
01079                 ptr< ss_decl_name > a__ss_declaration__name,
01080                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
01081                 ptr< ss_type > a__ss_declaration__type,
01082                 ptr< ss_linkage > a__ss_declaration__linkage,
01083                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
01084                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class,
01085                 ptr< ss_structure_declaration > a__ss_injected_class_declaration__real_decl)
01086         : ss_declaration_with_access_specifier(a__ss_base_with_location__location,
01087                 a__ss_declaration__visible_since,
01088                 a__ss_declaration__decl_time,
01089                 a__ss_declaration__name,
01090                 a__ss_declaration__contained_in,
01091                 a__ss_declaration__type,
01092                 a__ss_declaration__linkage,
01093                 a__ss_declaration_with_access_specifier__access_specifier,
01094                 a__ss_declaration_with_access_specifier__storage_class), real_decl(checked(a__ss_injected_class_declaration__real_decl))
01095 {}
01096 
01097 ptr< object::reflection_list > ss_injected_class_declaration::reflection_get() const
01098 {
01099         if (!reflection) {
01100                 typedef class_reflection::field_metadata md;
01101                 typedef class_reflection::field_metadata_list mdlist;
01102                 ptr<mdlist> mdl = mdlist::create();
01103                 mdl->push_back( md::create( "real_decl", "ss_structure_declaration" ) );
01104                 reflection = reflection_list::create( ss_declaration_with_access_specifier::reflection_get() );
01105                 reflection->push_back( class_reflection::create( "ss_injected_class_declaration", mdl ) );
01106         }
01107         return reflection;
01108 }
01109 
01110 ptr< object::field_list_list > ss_injected_class_declaration::field_values_get() const
01111 {
01112         ptr < field_list_list > result = ss_declaration_with_access_specifier::field_values_get();
01113         result->push_back( value_list::create() );
01114         result->back()->push_back( this->real_decl );
01115         return result;
01116 }
01117 
01118 
01119 /*!
01120    Marking routine is used for garbage collection.
01121    \author lsg
01122  */
01123 void ss_injected_class_declaration::gc_mark()
01124 {
01125         ss_declaration_with_access_specifier::gc_mark();
01126 }
01127 
01128 // End of class ss_injected_class_declaration.
01129 
01130 // ------------- Class ss_enum_definition follows. -------------
01131 
01132 void ss_enum_definition::accept_ss_declaration_visitor( ptr< ss_declaration_visitor > v )
01133 {
01134         return v->visit_ss_enum_definition( this );
01135 }
01136 
01137 ulint ss_enum_definition::accept_ss_decl2ulint_base( ptr< ss_decl2ulint_base > v )
01138 {
01139         return v->visit_ss_enum_definition( this );
01140 }
01141 
01142 lstring ss_enum_definition::accept_ss_decl2lstring_base( ptr< ss_decl2lstring_base > v )
01143 {
01144         return v->visit_ss_enum_definition( this );
01145 }
01146 
01147 /*!
01148    This factory method for class ss_enum_definition takes values of all fields as arguments.
01149    \author lsg
01150  */
01151 ptr< ss_enum_definition > ss_enum_definition::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01152                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
01153                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
01154                 ptr< ss_decl_name > a__ss_declaration__name,
01155                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
01156                 ptr< ss_type > a__ss_declaration__type,
01157                 ptr< ss_linkage > a__ss_declaration__linkage,
01158                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
01159                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class)
01160 {
01161         return ptr< ss_enum_definition > ( new ss_enum_definition(a__ss_base_with_location__location,
01162                 a__ss_declaration__visible_since,
01163                 a__ss_declaration__decl_time,
01164                 a__ss_declaration__name,
01165                 a__ss_declaration__contained_in,
01166                 a__ss_declaration__type,
01167                 a__ss_declaration__linkage,
01168                 a__ss_declaration_with_access_specifier__access_specifier,
01169                 a__ss_declaration_with_access_specifier__storage_class) );
01170 }
01171 
01172 /*!
01173    This factory method for class ss_enum_definition uses initializers.
01174    \author lsg
01175  */
01176 ptr< ss_enum_definition > ss_enum_definition::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01177                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
01178                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
01179                 ptr< ss_decl_name > a__ss_declaration__name,
01180                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
01181                 ptr< ss_type > a__ss_declaration__type,
01182                 ptr< ss_linkage > a__ss_declaration__linkage)
01183 {
01184         return ptr< ss_enum_definition > ( new ss_enum_definition(a__ss_base_with_location__location, a__ss_declaration__visible_since, a__ss_declaration__decl_time, a__ss_declaration__name, a__ss_declaration__contained_in, a__ss_declaration__type, a__ss_declaration__linkage, ss_access_specifier::ACCESS_PUBLIC, ss_storage_class::ST_NONE) );
01185 }
01186 
01187 /*!
01188    Generated constructor for class ss_enum_definition.
01189    \author lsg
01190  */
01191 ss_enum_definition::ss_enum_definition (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01192                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
01193                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
01194                 ptr< ss_decl_name > a__ss_declaration__name,
01195                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
01196                 ptr< ss_type > a__ss_declaration__type,
01197                 ptr< ss_linkage > a__ss_declaration__linkage,
01198                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
01199                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class)
01200         : ss_declaration_with_access_specifier(a__ss_base_with_location__location,
01201                 a__ss_declaration__visible_since,
01202                 a__ss_declaration__decl_time,
01203                 a__ss_declaration__name,
01204                 a__ss_declaration__contained_in,
01205                 a__ss_declaration__type,
01206                 a__ss_declaration__linkage,
01207                 a__ss_declaration_with_access_specifier__access_specifier,
01208                 a__ss_declaration_with_access_specifier__storage_class)
01209 {}
01210 
01211 ptr< object::reflection_list > ss_enum_definition::reflection_get() const
01212 {
01213         if (!reflection) {
01214                 typedef class_reflection::field_metadata md;
01215                 typedef class_reflection::field_metadata_list mdlist;
01216                 ptr<mdlist> mdl = mdlist::create();
01217                 reflection = reflection_list::create( ss_declaration_with_access_specifier::reflection_get() );
01218                 reflection->push_back( class_reflection::create( "ss_enum_definition", mdl ) );
01219         }
01220         return reflection;
01221 }
01222 
01223 ptr< object::field_list_list > ss_enum_definition::field_values_get() const
01224 {
01225         ptr < field_list_list > result = ss_declaration_with_access_specifier::field_values_get();
01226         return result;
01227 }
01228 
01229 
01230 /*!
01231    Marking routine is used for garbage collection.
01232    \author lsg
01233  */
01234 void ss_enum_definition::gc_mark()
01235 {
01236         ss_declaration_with_access_specifier::gc_mark();
01237 }
01238 
01239 // End of class ss_enum_definition.
01240 
01241 // ------------- Class ss_typedef_definition follows. -------------
01242 
01243 void ss_typedef_definition::accept_ss_declaration_visitor( ptr< ss_declaration_visitor > v )
01244 {
01245         return v->visit_ss_typedef_definition( this );
01246 }
01247 
01248 ulint ss_typedef_definition::accept_ss_decl2ulint_base( ptr< ss_decl2ulint_base > v )
01249 {
01250         return v->visit_ss_typedef_definition( this );
01251 }
01252 
01253 lstring ss_typedef_definition::accept_ss_decl2lstring_base( ptr< ss_decl2lstring_base > v )
01254 {
01255         return v->visit_ss_typedef_definition( this );
01256 }
01257 
01258 /*!
01259    This factory method for class ss_typedef_definition takes values of all fields as arguments.
01260    \author lsg
01261  */
01262 ptr< ss_typedef_definition > ss_typedef_definition::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01263                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
01264                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
01265                 ptr< ss_decl_name > a__ss_declaration__name,
01266                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
01267                 ptr< ss_type > a__ss_declaration__type,
01268                 ptr< ss_linkage > a__ss_declaration__linkage,
01269                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
01270                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class)
01271 {
01272         return ptr< ss_typedef_definition > ( new ss_typedef_definition(a__ss_base_with_location__location,
01273                 a__ss_declaration__visible_since,
01274                 a__ss_declaration__decl_time,
01275                 a__ss_declaration__name,
01276                 a__ss_declaration__contained_in,
01277                 a__ss_declaration__type,
01278                 a__ss_declaration__linkage,
01279                 a__ss_declaration_with_access_specifier__access_specifier,
01280                 a__ss_declaration_with_access_specifier__storage_class) );
01281 }
01282 
01283 /*!
01284    This factory method for class ss_typedef_definition uses initializers.
01285    \author lsg
01286  */
01287 ptr< ss_typedef_definition > ss_typedef_definition::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01288                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
01289                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
01290                 ptr< ss_decl_name > a__ss_declaration__name,
01291                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
01292                 ptr< ss_type > a__ss_declaration__type,
01293                 ptr< ss_linkage > a__ss_declaration__linkage)
01294 {
01295         return ptr< ss_typedef_definition > ( new ss_typedef_definition(a__ss_base_with_location__location, a__ss_declaration__visible_since, a__ss_declaration__decl_time, a__ss_declaration__name, a__ss_declaration__contained_in, a__ss_declaration__type, a__ss_declaration__linkage, ss_access_specifier::ACCESS_PUBLIC, ss_storage_class::ST_NONE) );
01296 }
01297 
01298 /*!
01299    Generated constructor for class ss_typedef_definition.
01300    \author lsg
01301  */
01302 ss_typedef_definition::ss_typedef_definition (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01303                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
01304                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
01305                 ptr< ss_decl_name > a__ss_declaration__name,
01306                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
01307                 ptr< ss_type > a__ss_declaration__type,
01308                 ptr< ss_linkage > a__ss_declaration__linkage,
01309                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
01310                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class)
01311         : ss_declaration_with_access_specifier(a__ss_base_with_location__location,
01312                 a__ss_declaration__visible_since,
01313                 a__ss_declaration__decl_time,
01314                 a__ss_declaration__name,
01315                 a__ss_declaration__contained_in,
01316                 a__ss_declaration__type,
01317                 a__ss_declaration__linkage,
01318                 a__ss_declaration_with_access_specifier__access_specifier,
01319                 a__ss_declaration_with_access_specifier__storage_class)
01320 {}
01321 
01322 ptr< object::reflection_list > ss_typedef_definition::reflection_get() const
01323 {
01324         if (!reflection) {
01325                 typedef class_reflection::field_metadata md;
01326                 typedef class_reflection::field_metadata_list mdlist;
01327                 ptr<mdlist> mdl = mdlist::create();
01328                 reflection = reflection_list::create( ss_declaration_with_access_specifier::reflection_get() );
01329                 reflection->push_back( class_reflection::create( "ss_typedef_definition", mdl ) );
01330         }
01331         return reflection;
01332 }
01333 
01334 ptr< object::field_list_list > ss_typedef_definition::field_values_get() const
01335 {
01336         ptr < field_list_list > result = ss_declaration_with_access_specifier::field_values_get();
01337         return result;
01338 }
01339 
01340 
01341 /*!
01342    Marking routine is used for garbage collection.
01343    \author lsg
01344  */
01345 void ss_typedef_definition::gc_mark()
01346 {
01347         ss_declaration_with_access_specifier::gc_mark();
01348 }
01349 
01350 // End of class ss_typedef_definition.
01351 
01352 // ------------- Class ss_enumerator_declaration follows. -------------
01353 
01354 /*!
01355    \returns The value of ss_enumerator_declaration::specifier.
01356    \author lsg
01357  */
01358 ptr< ss_enum > ss_enumerator_declaration::specifier_get() const
01359 {
01360         return specifier;
01361 }
01362 
01363 /*!
01364    \param[in] x The new value to set ss_enumerator_declaration::specifier to.
01365    \author lsg
01366  */
01367 void ss_enumerator_declaration::specifier_set(const ptr< ss_enum > & x)
01368 {
01369         ss_enumerator_declaration::specifier = x;
01370 }
01371 
01372 void ss_enumerator_declaration::accept_ss_declaration_visitor( ptr< ss_declaration_visitor > v )
01373 {
01374         return v->visit_ss_enumerator_declaration( this );
01375 }
01376 
01377 ulint ss_enumerator_declaration::accept_ss_decl2ulint_base( ptr< ss_decl2ulint_base > v )
01378 {
01379         return v->visit_ss_enumerator_declaration( this );
01380 }
01381 
01382 lstring ss_enumerator_declaration::accept_ss_decl2lstring_base( ptr< ss_decl2lstring_base > v )
01383 {
01384         return v->visit_ss_enumerator_declaration( this );
01385 }
01386 
01387 /*!
01388    This factory method for class ss_enumerator_declaration takes values of all fields as arguments.
01389    \author lsg
01390  */
01391 ptr< ss_enumerator_declaration > ss_enumerator_declaration::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01392                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
01393                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
01394                 ptr< ss_decl_name > a__ss_declaration__name,
01395                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
01396                 ptr< ss_type > a__ss_declaration__type,
01397                 ptr< ss_linkage > a__ss_declaration__linkage,
01398                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
01399                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class,
01400                 ptr< ss_enum > a__ss_enumerator_declaration__specifier)
01401 {
01402         return ptr< ss_enumerator_declaration > ( new ss_enumerator_declaration(a__ss_base_with_location__location,
01403                 a__ss_declaration__visible_since,
01404                 a__ss_declaration__decl_time,
01405                 a__ss_declaration__name,
01406                 a__ss_declaration__contained_in,
01407                 a__ss_declaration__type,
01408                 a__ss_declaration__linkage,
01409                 a__ss_declaration_with_access_specifier__access_specifier,
01410                 a__ss_declaration_with_access_specifier__storage_class,
01411                 a__ss_enumerator_declaration__specifier) );
01412 }
01413 
01414 /*!
01415    This factory method for class ss_enumerator_declaration uses initializers.
01416    \author lsg
01417  */
01418 ptr< ss_enumerator_declaration > ss_enumerator_declaration::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01419                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
01420                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
01421                 ptr< ss_decl_name > a__ss_declaration__name,
01422                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
01423                 ptr< ss_type > a__ss_declaration__type,
01424                 ptr< ss_linkage > a__ss_declaration__linkage,
01425                 ptr< ss_enum > a__ss_enumerator_declaration__specifier)
01426 {
01427         return ptr< ss_enumerator_declaration > ( new ss_enumerator_declaration(a__ss_base_with_location__location, a__ss_declaration__visible_since, a__ss_declaration__decl_time, a__ss_declaration__name, a__ss_declaration__contained_in, a__ss_declaration__type, a__ss_declaration__linkage, ss_access_specifier::ACCESS_PUBLIC, ss_storage_class::ST_NONE, a__ss_enumerator_declaration__specifier) );
01428 }
01429 
01430 /*!
01431    Generated constructor for class ss_enumerator_declaration.
01432    \author lsg
01433  */
01434 ss_enumerator_declaration::ss_enumerator_declaration (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01435                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
01436                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
01437                 ptr< ss_decl_name > a__ss_declaration__name,
01438                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
01439                 ptr< ss_type > a__ss_declaration__type,
01440                 ptr< ss_linkage > a__ss_declaration__linkage,
01441                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
01442                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class,
01443                 ptr< ss_enum > a__ss_enumerator_declaration__specifier)
01444         : ss_declaration_with_access_specifier(a__ss_base_with_location__location,
01445                 a__ss_declaration__visible_since,
01446                 a__ss_declaration__decl_time,
01447                 a__ss_declaration__name,
01448                 a__ss_declaration__contained_in,
01449                 a__ss_declaration__type,
01450                 a__ss_declaration__linkage,
01451                 a__ss_declaration_with_access_specifier__access_specifier,
01452                 a__ss_declaration_with_access_specifier__storage_class), specifier(checked(a__ss_enumerator_declaration__specifier))
01453 {}
01454 
01455 ptr< object::reflection_list > ss_enumerator_declaration::reflection_get() const
01456 {
01457         if (!reflection) {
01458                 typedef class_reflection::field_metadata md;
01459                 typedef class_reflection::field_metadata_list mdlist;
01460                 ptr<mdlist> mdl = mdlist::create();
01461                 mdl->push_back( md::create( "specifier", "ss_enum" ) );
01462                 reflection = reflection_list::create( ss_declaration_with_access_specifier::reflection_get() );
01463                 reflection->push_back( class_reflection::create( "ss_enumerator_declaration", mdl ) );
01464         }
01465         return reflection;
01466 }
01467 
01468 ptr< object::field_list_list > ss_enumerator_declaration::field_values_get() const
01469 {
01470         ptr < field_list_list > result = ss_declaration_with_access_specifier::field_values_get();
01471         result->push_back( value_list::create() );
01472         result->back()->push_back( this->specifier );
01473         return result;
01474 }
01475 
01476 
01477 /*!
01478    Marking routine is used for garbage collection.
01479    \author lsg
01480  */
01481 void ss_enumerator_declaration::gc_mark()
01482 {
01483         ss_declaration_with_access_specifier::gc_mark();
01484 }
01485 
01486 // End of class ss_enumerator_declaration.
01487 
01488 // ------------- Class ss_befriendable_declaration follows. -------------
01489 
01490 /*!
01491    \returns The value of ss_befriendable_declaration::friend_of.
01492    \author lsg
01493  */
01494 ptr< ::lestes::std::set< srp< ss_struct_base > > > ss_befriendable_declaration::friend_of_get() const
01495 {
01496         return friend_of;
01497 }
01498 
01499 /*!
01500    \param[in] x The new value to set ss_befriendable_declaration::friend_of to.
01501    \author lsg
01502  */
01503 void ss_befriendable_declaration::friend_of_set(const ptr< ::lestes::std::set< srp< ss_struct_base > > > & x)
01504 {
01505         ss_befriendable_declaration::friend_of = x;
01506 }
01507 
01508 /*!
01509    Generated constructor for class ss_befriendable_declaration.
01510    \author lsg
01511  */
01512 ss_befriendable_declaration::ss_befriendable_declaration (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01513                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
01514                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
01515                 ptr< ss_decl_name > a__ss_declaration__name,
01516                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
01517                 ptr< ss_type > a__ss_declaration__type,
01518                 ptr< ss_linkage > a__ss_declaration__linkage,
01519                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
01520                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class,
01521                 ptr< ::lestes::std::set< srp< ss_struct_base > > > a__ss_befriendable_declaration__friend_of)
01522         : ss_declaration_with_access_specifier(a__ss_base_with_location__location,
01523                 a__ss_declaration__visible_since,
01524                 a__ss_declaration__decl_time,
01525                 a__ss_declaration__name,
01526                 a__ss_declaration__contained_in,
01527                 a__ss_declaration__type,
01528                 a__ss_declaration__linkage,
01529                 a__ss_declaration_with_access_specifier__access_specifier,
01530                 a__ss_declaration_with_access_specifier__storage_class), friend_of(checked(a__ss_befriendable_declaration__friend_of))
01531 {}
01532 
01533 ptr< object::reflection_list > ss_befriendable_declaration::reflection_get() const
01534 {
01535         if (!reflection) {
01536                 typedef class_reflection::field_metadata md;
01537                 typedef class_reflection::field_metadata_list mdlist;
01538                 ptr<mdlist> mdl = mdlist::create();
01539                 mdl->push_back( md::create( "friend_of", "set&lt; srp&lt; ss_struct_base &gt; &gt;" ) );
01540                 reflection = reflection_list::create( ss_declaration_with_access_specifier::reflection_get() );
01541                 reflection->push_back( class_reflection::create( "ss_befriendable_declaration", mdl ) );
01542         }
01543         return reflection;
01544 }
01545 
01546 ptr< object::field_list_list > ss_befriendable_declaration::field_values_get() const
01547 {
01548         ptr < field_list_list > result = ss_declaration_with_access_specifier::field_values_get();
01549         result->push_back( value_list::create() );
01550         result->back()->push_back( this->friend_of );
01551         return result;
01552 }
01553 
01554 
01555 /*!
01556    Marking routine is used for garbage collection.
01557    \author lsg
01558  */
01559 void ss_befriendable_declaration::gc_mark()
01560 {
01561         ss_declaration_with_access_specifier::gc_mark();
01562 }
01563 
01564 // End of class ss_befriendable_declaration.
01565 
01566 // ------------- Class ss_structure_declaration follows. -------------
01567 
01568 /*!
01569    \returns The value of ss_structure_declaration::body.
01570    \author lsg
01571  */
01572 ptr< ss_decl_seq > ss_structure_declaration::body_get() const
01573 {
01574         return body;
01575 }
01576 
01577 /*!
01578    \param[in] x The new value to set ss_structure_declaration::body to.
01579    \author lsg
01580  */
01581 void ss_structure_declaration::body_set(const ptr< ss_decl_seq > & x)
01582 {
01583         ss_structure_declaration::body = x;
01584 }
01585 
01586 void ss_structure_declaration::accept_ss_declaration_visitor( ptr< ss_declaration_visitor > v )
01587 {
01588         return v->visit_ss_structure_declaration( this );
01589 }
01590 
01591 ulint ss_structure_declaration::accept_ss_decl2ulint_base( ptr< ss_decl2ulint_base > v )
01592 {
01593         return v->visit_ss_structure_declaration( this );
01594 }
01595 
01596 lstring ss_structure_declaration::accept_ss_decl2lstring_base( ptr< ss_decl2lstring_base > v )
01597 {
01598         return v->visit_ss_structure_declaration( this );
01599 }
01600 
01601 /*!
01602    This factory method for class ss_structure_declaration takes values of all fields as arguments.
01603    \author lsg
01604  */
01605 ptr< ss_structure_declaration > ss_structure_declaration::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01606                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
01607                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
01608                 ptr< ss_decl_name > a__ss_declaration__name,
01609                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
01610                 ptr< ss_type > a__ss_declaration__type,
01611                 ptr< ss_linkage > a__ss_declaration__linkage,
01612                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
01613                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class,
01614                 ptr< ::lestes::std::set< srp< ss_struct_base > > > a__ss_befriendable_declaration__friend_of,
01615                 ptr< ss_decl_seq > a__ss_structure_declaration__body)
01616 {
01617         return ptr< ss_structure_declaration > ( new ss_structure_declaration(a__ss_base_with_location__location,
01618                 a__ss_declaration__visible_since,
01619                 a__ss_declaration__decl_time,
01620                 a__ss_declaration__name,
01621                 a__ss_declaration__contained_in,
01622                 a__ss_declaration__type,
01623                 a__ss_declaration__linkage,
01624                 a__ss_declaration_with_access_specifier__access_specifier,
01625                 a__ss_declaration_with_access_specifier__storage_class,
01626                 a__ss_befriendable_declaration__friend_of,
01627                 a__ss_structure_declaration__body) );
01628 }
01629 
01630 /*!
01631    This factory method for class ss_structure_declaration uses initializers.
01632    \author lsg
01633  */
01634 ptr< ss_structure_declaration > ss_structure_declaration::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01635                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
01636                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
01637                 ptr< ss_decl_name > a__ss_declaration__name,
01638                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
01639                 ptr< ss_type > a__ss_declaration__type,
01640                 ptr< ss_linkage > a__ss_declaration__linkage,
01641                 ptr< ss_decl_seq > a__ss_structure_declaration__body)
01642 {
01643         return ptr< ss_structure_declaration > ( new ss_structure_declaration(a__ss_base_with_location__location, a__ss_declaration__visible_since, a__ss_declaration__decl_time, a__ss_declaration__name, a__ss_declaration__contained_in, a__ss_declaration__type, a__ss_declaration__linkage, ss_access_specifier::ACCESS_PUBLIC, ss_storage_class::ST_NONE, ::lestes::std::set< srp< ss_struct_base > > ::create(), a__ss_structure_declaration__body) );
01644 }
01645 
01646 /*!
01647    Generated constructor for class ss_structure_declaration.
01648    \author lsg
01649  */
01650 ss_structure_declaration::ss_structure_declaration (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01651                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
01652                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
01653                 ptr< ss_decl_name > a__ss_declaration__name,
01654                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
01655                 ptr< ss_type > a__ss_declaration__type,
01656                 ptr< ss_linkage > a__ss_declaration__linkage,
01657                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
01658                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class,
01659                 ptr< ::lestes::std::set< srp< ss_struct_base > > > a__ss_befriendable_declaration__friend_of,
01660                 ptr< ss_decl_seq > a__ss_structure_declaration__body)
01661         : ss_befriendable_declaration(a__ss_base_with_location__location,
01662                 a__ss_declaration__visible_since,
01663                 a__ss_declaration__decl_time,
01664                 a__ss_declaration__name,
01665                 a__ss_declaration__contained_in,
01666                 a__ss_declaration__type,
01667                 a__ss_declaration__linkage,
01668                 a__ss_declaration_with_access_specifier__access_specifier,
01669                 a__ss_declaration_with_access_specifier__storage_class,
01670                 a__ss_befriendable_declaration__friend_of), body(checked(a__ss_structure_declaration__body))
01671 {}
01672 
01673 ptr< object::reflection_list > ss_structure_declaration::reflection_get() const
01674 {
01675         if (!reflection) {
01676                 typedef class_reflection::field_metadata md;
01677                 typedef class_reflection::field_metadata_list mdlist;
01678                 ptr<mdlist> mdl = mdlist::create();
01679                 mdl->push_back( md::create( "body", "ss_decl_seq" ) );
01680                 reflection = reflection_list::create( ss_befriendable_declaration::reflection_get() );
01681                 reflection->push_back( class_reflection::create( "ss_structure_declaration", mdl ) );
01682         }
01683         return reflection;
01684 }
01685 
01686 ptr< object::field_list_list > ss_structure_declaration::field_values_get() const
01687 {
01688         ptr < field_list_list > result = ss_befriendable_declaration::field_values_get();
01689         result->push_back( value_list::create() );
01690         result->back()->push_back( this->body );
01691         return result;
01692 }
01693 
01694 
01695 /*!
01696    Marking routine is used for garbage collection.
01697    \author lsg
01698  */
01699 void ss_structure_declaration::gc_mark()
01700 {
01701         ss_befriendable_declaration::gc_mark();
01702 }
01703 
01704 // End of class ss_structure_declaration.
01705 
01706 // ------------- Class ss_function_declaration follows. -------------
01707 
01708 /*!
01709    \returns The value of ss_function_declaration::parameters.
01710    \author lsg
01711  */
01712 ptr< ss_decl_seq > ss_function_declaration::parameters_get() const
01713 {
01714         return parameters;
01715 }
01716 
01717 /*!
01718    \param[in] x The new value to set ss_function_declaration::parameters to.
01719    \author lsg
01720  */
01721 void ss_function_declaration::parameters_set(const ptr< ss_decl_seq > & x)
01722 {
01723         ss_function_declaration::parameters = x;
01724 }
01725 
01726 /*!
01727    \returns The value of ss_function_declaration::body.
01728    \author lsg
01729  */
01730 ptr< ss_compound_stmt > ss_function_declaration::body_get() const
01731 {
01732         return body;
01733 }
01734 
01735 /*!
01736    \param[in] x The new value to set ss_function_declaration::body to.
01737    \author lsg
01738  */
01739 void ss_function_declaration::body_set(const ptr< ss_compound_stmt > & x)
01740 {
01741         ss_function_declaration::body = x;
01742 }
01743 
01744 /*!
01745    \returns The value of ss_function_declaration::labels.
01746    \author lsg
01747  */
01748 ptr< ::lestes::std::map< srp< ss_id_label >, srp< ss_statement > > > ss_function_declaration::labels_get() const
01749 {
01750         return labels;
01751 }
01752 
01753 /*!
01754    \param[in] x The new value to set ss_function_declaration::labels to.
01755    \author lsg
01756  */
01757 void ss_function_declaration::labels_set(const ptr< ::lestes::std::map< srp< ss_id_label >, srp< ss_statement > > > & x)
01758 {
01759         ss_function_declaration::labels = x;
01760 }
01761 
01762 /*!
01763    \returns The value of ss_function_declaration::historical_parameters.
01764    \author lsg
01765  */
01766 ptr< ::lestes::std::list< srp< ss_decl_seq > > > ss_function_declaration::historical_parameters_get() const
01767 {
01768         return historical_parameters;
01769 }
01770 
01771 /*!
01772    \param[in] x The new value to set ss_function_declaration::historical_parameters to.
01773    \author lsg
01774  */
01775 void ss_function_declaration::historical_parameters_set(const ptr< ::lestes::std::list< srp< ss_decl_seq > > > & x)
01776 {
01777         ss_function_declaration::historical_parameters = x;
01778 }
01779 
01780 void ss_function_declaration::accept_ss_declaration_visitor( ptr< ss_declaration_visitor > v )
01781 {
01782         return v->visit_ss_function_declaration( this );
01783 }
01784 
01785 ulint ss_function_declaration::accept_ss_decl2ulint_base( ptr< ss_decl2ulint_base > v )
01786 {
01787         return v->visit_ss_function_declaration( this );
01788 }
01789 
01790 lstring ss_function_declaration::accept_ss_decl2lstring_base( ptr< ss_decl2lstring_base > v )
01791 {
01792         return v->visit_ss_function_declaration( this );
01793 }
01794 
01795 /*!
01796    This factory method for class ss_function_declaration takes values of all fields as arguments.
01797    \author lsg
01798  */
01799 ptr< ss_function_declaration > ss_function_declaration::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01800                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
01801                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
01802                 ptr< ss_decl_name > a__ss_declaration__name,
01803                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
01804                 ptr< ss_type > a__ss_declaration__type,
01805                 ptr< ss_linkage > a__ss_declaration__linkage,
01806                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
01807                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class,
01808                 ptr< ::lestes::std::set< srp< ss_struct_base > > > a__ss_befriendable_declaration__friend_of,
01809                 ptr< ss_decl_seq > a__ss_function_declaration__parameters,
01810                 ptr< ss_compound_stmt > a__ss_function_declaration__body,
01811                 ptr< ::lestes::std::map< srp< ss_id_label >, srp< ss_statement > > > a__ss_function_declaration__labels,
01812                 ptr< ::lestes::std::list< srp< ss_decl_seq > > > a__ss_function_declaration__historical_parameters)
01813 {
01814         return ptr< ss_function_declaration > ( new ss_function_declaration(a__ss_base_with_location__location,
01815                 a__ss_declaration__visible_since,
01816                 a__ss_declaration__decl_time,
01817                 a__ss_declaration__name,
01818                 a__ss_declaration__contained_in,
01819                 a__ss_declaration__type,
01820                 a__ss_declaration__linkage,
01821                 a__ss_declaration_with_access_specifier__access_specifier,
01822                 a__ss_declaration_with_access_specifier__storage_class,
01823                 a__ss_befriendable_declaration__friend_of,
01824                 a__ss_function_declaration__parameters,
01825                 a__ss_function_declaration__body,
01826                 a__ss_function_declaration__labels,
01827                 a__ss_function_declaration__historical_parameters) );
01828 }
01829 
01830 /*!
01831    This factory method for class ss_function_declaration uses initializers.
01832    \author lsg
01833  */
01834 ptr< ss_function_declaration > ss_function_declaration::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01835                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
01836                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
01837                 ptr< ss_decl_name > a__ss_declaration__name,
01838                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
01839                 ptr< ss_type > a__ss_declaration__type,
01840                 ptr< ss_linkage > a__ss_declaration__linkage,
01841                 ptr< ss_decl_seq > a__ss_function_declaration__parameters,
01842                 ptr< ss_compound_stmt > a__ss_function_declaration__body)
01843 {
01844         return ptr< ss_function_declaration > ( new ss_function_declaration(a__ss_base_with_location__location, a__ss_declaration__visible_since, a__ss_declaration__decl_time, a__ss_declaration__name, a__ss_declaration__contained_in, a__ss_declaration__type, a__ss_declaration__linkage, ss_access_specifier::ACCESS_PUBLIC, ss_storage_class::ST_NONE, ::lestes::std::set< srp< ss_struct_base > > ::create(), a__ss_function_declaration__parameters, a__ss_function_declaration__body, ::lestes::std::map< srp< ss_id_label >, srp< ss_statement > > ::create(), ::lestes::std::list< srp< ss_decl_seq > > ::create()) );
01845 }
01846 
01847 /*!
01848    Generated constructor for class ss_function_declaration.
01849    \author lsg
01850  */
01851 ss_function_declaration::ss_function_declaration (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01852                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
01853                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
01854                 ptr< ss_decl_name > a__ss_declaration__name,
01855                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
01856                 ptr< ss_type > a__ss_declaration__type,
01857                 ptr< ss_linkage > a__ss_declaration__linkage,
01858                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
01859                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class,
01860                 ptr< ::lestes::std::set< srp< ss_struct_base > > > a__ss_befriendable_declaration__friend_of,
01861                 ptr< ss_decl_seq > a__ss_function_declaration__parameters,
01862                 ptr< ss_compound_stmt > a__ss_function_declaration__body,
01863                 ptr< ::lestes::std::map< srp< ss_id_label >, srp< ss_statement > > > a__ss_function_declaration__labels,
01864                 ptr< ::lestes::std::list< srp< ss_decl_seq > > > a__ss_function_declaration__historical_parameters)
01865         : ss_befriendable_declaration(a__ss_base_with_location__location,
01866                 a__ss_declaration__visible_since,
01867                 a__ss_declaration__decl_time,
01868                 a__ss_declaration__name,
01869                 a__ss_declaration__contained_in,
01870                 a__ss_declaration__type,
01871                 a__ss_declaration__linkage,
01872                 a__ss_declaration_with_access_specifier__access_specifier,
01873                 a__ss_declaration_with_access_specifier__storage_class,
01874                 a__ss_befriendable_declaration__friend_of), parameters(checked(a__ss_function_declaration__parameters)), body(a__ss_function_declaration__body), labels(checked(a__ss_function_declaration__labels)), historical_parameters(checked(a__ss_function_declaration__historical_parameters))
01875 {}
01876 
01877 ptr< object::reflection_list > ss_function_declaration::reflection_get() const
01878 {
01879         if (!reflection) {
01880                 typedef class_reflection::field_metadata md;
01881                 typedef class_reflection::field_metadata_list mdlist;
01882                 ptr<mdlist> mdl = mdlist::create();
01883                 mdl->push_back( md::create( "parameters", "ss_decl_seq" ) );
01884                 mdl->push_back( md::create( "body", "ss_compound_stmt" ) );
01885                 mdl->push_back( md::create( "labels", "map&lt; srp&lt; ss_id_label &gt;, srp&lt; ss_statement &gt; &gt;" ) );
01886                 mdl->push_back( md::create( "historical_parameters", "list&lt; srp&lt; ss_decl_seq &gt; &gt;" ) );
01887                 reflection = reflection_list::create( ss_befriendable_declaration::reflection_get() );
01888                 reflection->push_back( class_reflection::create( "ss_function_declaration", mdl ) );
01889         }
01890         return reflection;
01891 }
01892 
01893 ptr< object::field_list_list > ss_function_declaration::field_values_get() const
01894 {
01895         ptr < field_list_list > result = ss_befriendable_declaration::field_values_get();
01896         result->push_back( value_list::create() );
01897         result->back()->push_back( this->parameters );
01898         result->push_back( value_list::create() );
01899         result->back()->push_back( this->body );
01900         result->push_back( value_list::create() );
01901         result->back()->push_back( this->labels );
01902         result->push_back( value_list::create() );
01903         result->back()->push_back( this->historical_parameters );
01904         return result;
01905 }
01906 
01907 
01908 /*!
01909    Marking routine is used for garbage collection.
01910    \author lsg
01911  */
01912 void ss_function_declaration::gc_mark()
01913 {
01914         ss_befriendable_declaration::gc_mark();
01915 }
01916 
01917 // End of class ss_function_declaration.
01918 
01919 // ------------- Class ss_method_declaration follows. -------------
01920 
01921 /*!
01922    \returns The value of ss_method_declaration::virtuality.
01923    \author lsg
01924  */
01925 bool ss_method_declaration::virtuality_get() const
01926 {
01927         return virtuality;
01928 }
01929 
01930 /*!
01931    \param[in] x The new value to set ss_method_declaration::virtuality to.
01932    \author lsg
01933  */
01934 void ss_method_declaration::virtuality_set(bool x)
01935 {
01936         ss_method_declaration::virtuality = x;
01937 }
01938 
01939 /*!
01940    \returns The value of ss_method_declaration::pure_virtual.
01941    \author lsg
01942  */
01943 bool ss_method_declaration::pure_virtual_get() const
01944 {
01945         return pure_virtual;
01946 }
01947 
01948 /*!
01949    \param[in] x The new value to set ss_method_declaration::pure_virtual to.
01950    \author lsg
01951  */
01952 void ss_method_declaration::pure_virtual_set(bool x)
01953 {
01954         ss_method_declaration::pure_virtual = x;
01955 }
01956 
01957 /*!
01958    \returns The value of ss_method_declaration::reimplements.
01959    \author lsg
01960  */
01961 ptr< ss_method_declaration > ss_method_declaration::reimplements_get() const
01962 {
01963         return reimplements;
01964 }
01965 
01966 /*!
01967    \param[in] x The new value to set ss_method_declaration::reimplements to.
01968    \author lsg
01969  */
01970 void ss_method_declaration::reimplements_set(const ptr< ss_method_declaration > & x)
01971 {
01972         ss_method_declaration::reimplements = x;
01973 }
01974 
01975 void ss_method_declaration::accept_ss_declaration_visitor( ptr< ss_declaration_visitor > v )
01976 {
01977         return v->visit_ss_method_declaration( this );
01978 }
01979 
01980 ulint ss_method_declaration::accept_ss_decl2ulint_base( ptr< ss_decl2ulint_base > v )
01981 {
01982         return v->visit_ss_method_declaration( this );
01983 }
01984 
01985 lstring ss_method_declaration::accept_ss_decl2lstring_base( ptr< ss_decl2lstring_base > v )
01986 {
01987         return v->visit_ss_method_declaration( this );
01988 }
01989 
01990 /*!
01991    This factory method for class ss_method_declaration takes values of all fields as arguments.
01992    \author lsg
01993  */
01994 ptr< ss_method_declaration > ss_method_declaration::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01995                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
01996                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
01997                 ptr< ss_decl_name > a__ss_declaration__name,
01998                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
01999                 ptr< ss_type > a__ss_declaration__type,
02000                 ptr< ss_linkage > a__ss_declaration__linkage,
02001                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
02002                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class,
02003                 ptr< ::lestes::std::set< srp< ss_struct_base > > > a__ss_befriendable_declaration__friend_of,
02004                 ptr< ss_decl_seq > a__ss_function_declaration__parameters,
02005                 ptr< ss_compound_stmt > a__ss_function_declaration__body,
02006                 ptr< ::lestes::std::map< srp< ss_id_label >, srp< ss_statement > > > a__ss_function_declaration__labels,
02007                 ptr< ::lestes::std::list< srp< ss_decl_seq > > > a__ss_function_declaration__historical_parameters,
02008                 bool a__ss_method_declaration__virtuality,
02009                 bool a__ss_method_declaration__pure_virtual,
02010                 ptr< ss_method_declaration > a__ss_method_declaration__reimplements)
02011 {
02012         return ptr< ss_method_declaration > ( new ss_method_declaration(a__ss_base_with_location__location,
02013                 a__ss_declaration__visible_since,
02014                 a__ss_declaration__decl_time,
02015                 a__ss_declaration__name,
02016                 a__ss_declaration__contained_in,
02017                 a__ss_declaration__type,
02018                 a__ss_declaration__linkage,
02019                 a__ss_declaration_with_access_specifier__access_specifier,
02020                 a__ss_declaration_with_access_specifier__storage_class,
02021                 a__ss_befriendable_declaration__friend_of,
02022                 a__ss_function_declaration__parameters,
02023                 a__ss_function_declaration__body,
02024                 a__ss_function_declaration__labels,
02025                 a__ss_function_declaration__historical_parameters,
02026                 a__ss_method_declaration__virtuality,
02027                 a__ss_method_declaration__pure_virtual,
02028                 a__ss_method_declaration__reimplements) );
02029 }
02030 
02031 /*!
02032    This factory method for class ss_method_declaration uses initializers.
02033    \author lsg
02034  */
02035 ptr< ss_method_declaration > ss_method_declaration::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
02036                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
02037                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
02038                 ptr< ss_decl_name > a__ss_declaration__name,
02039                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
02040                 ptr< ss_type > a__ss_declaration__type,
02041                 ptr< ss_linkage > a__ss_declaration__linkage,
02042                 ptr< ss_decl_seq > a__ss_function_declaration__parameters,
02043                 ptr< ss_compound_stmt > a__ss_function_declaration__body,
02044                 bool a__ss_method_declaration__virtuality,
02045                 bool a__ss_method_declaration__pure_virtual,
02046                 ptr< ss_method_declaration > a__ss_method_declaration__reimplements)
02047 {
02048         return ptr< ss_method_declaration > ( new ss_method_declaration(a__ss_base_with_location__location, a__ss_declaration__visible_since, a__ss_declaration__decl_time, a__ss_declaration__name, a__ss_declaration__contained_in, a__ss_declaration__type, a__ss_declaration__linkage, ss_access_specifier::ACCESS_PUBLIC, ss_storage_class::ST_NONE, ::lestes::std::set< srp< ss_struct_base > > ::create(), a__ss_function_declaration__parameters, a__ss_function_declaration__body, ::lestes::std::map< srp< ss_id_label >, srp< ss_statement > > ::create(), ::lestes::std::list< srp< ss_decl_seq > > ::create(), a__ss_method_declaration__virtuality, a__ss_method_declaration__pure_virtual, a__ss_method_declaration__reimplements) );
02049 }
02050 
02051 /*!
02052    Generated constructor for class ss_method_declaration.
02053    \author lsg
02054  */
02055 ss_method_declaration::ss_method_declaration (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
02056                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
02057                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
02058                 ptr< ss_decl_name > a__ss_declaration__name,
02059                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
02060                 ptr< ss_type > a__ss_declaration__type,
02061                 ptr< ss_linkage > a__ss_declaration__linkage,
02062                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
02063                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class,
02064                 ptr< ::lestes::std::set< srp< ss_struct_base > > > a__ss_befriendable_declaration__friend_of,
02065                 ptr< ss_decl_seq > a__ss_function_declaration__parameters,
02066                 ptr< ss_compound_stmt > a__ss_function_declaration__body,
02067                 ptr< ::lestes::std::map< srp< ss_id_label >, srp< ss_statement > > > a__ss_function_declaration__labels,
02068                 ptr< ::lestes::std::list< srp< ss_decl_seq > > > a__ss_function_declaration__historical_parameters,
02069                 bool a__ss_method_declaration__virtuality,
02070                 bool a__ss_method_declaration__pure_virtual,
02071                 ptr< ss_method_declaration > a__ss_method_declaration__reimplements)
02072         : ss_function_declaration(a__ss_base_with_location__location,
02073                 a__ss_declaration__visible_since,
02074                 a__ss_declaration__decl_time,
02075                 a__ss_declaration__name,
02076                 a__ss_declaration__contained_in,
02077                 a__ss_declaration__type,
02078                 a__ss_declaration__linkage,
02079                 a__ss_declaration_with_access_specifier__access_specifier,
02080                 a__ss_declaration_with_access_specifier__storage_class,
02081                 a__ss_befriendable_declaration__friend_of,
02082                 a__ss_function_declaration__parameters,
02083                 a__ss_function_declaration__body,
02084                 a__ss_function_declaration__labels,
02085                 a__ss_function_declaration__historical_parameters), virtuality(a__ss_method_declaration__virtuality), pure_virtual(a__ss_method_declaration__pure_virtual), reimplements(a__ss_method_declaration__reimplements)
02086 {}
02087 
02088 ptr< object::reflection_list > ss_method_declaration::reflection_get() const
02089 {
02090         if (!reflection) {
02091                 typedef class_reflection::field_metadata md;
02092                 typedef class_reflection::field_metadata_list mdlist;
02093                 ptr<mdlist> mdl = mdlist::create();
02094                 mdl->push_back( md::create( "virtuality", "bool" ) );
02095                 mdl->push_back( md::create( "pure_virtual", "bool" ) );
02096                 mdl->push_back( md::create( "reimplements", "ss_method_declaration" ) );
02097                 reflection = reflection_list::create( ss_function_declaration::reflection_get() );
02098                 reflection->push_back( class_reflection::create( "ss_method_declaration", mdl ) );
02099         }
02100         return reflection;
02101 }
02102 
02103 ptr< object::field_list_list > ss_method_declaration::field_values_get() const
02104 {
02105         ptr < field_list_list > result = ss_function_declaration::field_values_get();
02106         result->push_back( value_list::create() );
02107         result->back()->push_back( objectize< bool > ::create( this->virtuality ) );
02108         result->push_back( value_list::create() );
02109         result->back()->push_back( objectize< bool > ::create( this->pure_virtual ) );
02110         result->push_back( value_list::create() );
02111         result->back()->push_back( this->reimplements );
02112         return result;
02113 }
02114 
02115 
02116 /*!
02117    Marking routine is used for garbage collection.
02118    \author lsg
02119  */
02120 void ss_method_declaration::gc_mark()
02121 {
02122         ss_function_declaration::gc_mark();
02123 }
02124 
02125 // End of class ss_method_declaration.
02126 
02127 // ------------- Class ss_using_declaration follows. -------------
02128 
02129 /*!
02130    \returns The value of ss_using_declaration::target.
02131    \author lsg
02132  */
02133 ptr< ss_declaration > ss_using_declaration::target_get() const
02134 {
02135         return target;
02136 }
02137 
02138 /*!
02139    \param[in] x The new value to set ss_using_declaration::target to.
02140    \author lsg
02141  */
02142 void ss_using_declaration::target_set(const ptr< ss_declaration > & x)
02143 {
02144         ss_using_declaration::target = x;
02145 }
02146 
02147 /*!
02148    \returns The value of ss_using_declaration::real_target.
02149    \author lsg
02150  */
02151 ptr< ss_declaration > ss_using_declaration::real_target_get() const
02152 {
02153         return real_target;
02154 }
02155 
02156 /*!
02157    \param[in] x The new value to set ss_using_declaration::real_target to.
02158    \author lsg
02159  */
02160 void ss_using_declaration::real_target_set(const ptr< ss_declaration > & x)
02161 {
02162         ss_using_declaration::real_target = x;
02163 }
02164 
02165 void ss_using_declaration::accept_ss_declaration_visitor( ptr< ss_declaration_visitor > v )
02166 {
02167         return v->visit_ss_using_declaration( this );
02168 }
02169 
02170 ulint ss_using_declaration::accept_ss_decl2ulint_base( ptr< ss_decl2ulint_base > v )
02171 {
02172         return v->visit_ss_using_declaration( this );
02173 }
02174 
02175 lstring ss_using_declaration::accept_ss_decl2lstring_base( ptr< ss_decl2lstring_base > v )
02176 {
02177         return v->visit_ss_using_declaration( this );
02178 }
02179 
02180 /*!
02181    This factory method for class ss_using_declaration takes values of all fields as arguments.
02182    \author lsg
02183  */
02184 ptr< ss_using_declaration > ss_using_declaration::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
02185                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
02186                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
02187                 ptr< ss_decl_name > a__ss_declaration__name,
02188                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
02189                 ptr< ss_type > a__ss_declaration__type,
02190                 ptr< ss_linkage > a__ss_declaration__linkage,
02191                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
02192                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class,
02193                 ptr< ss_declaration > a__ss_using_declaration__target,
02194                 ptr< ss_declaration > a__ss_using_declaration__real_target)
02195 {
02196         return ptr< ss_using_declaration > ( new ss_using_declaration(a__ss_base_with_location__location,
02197                 a__ss_declaration__visible_since,
02198                 a__ss_declaration__decl_time,
02199                 a__ss_declaration__name,
02200                 a__ss_declaration__contained_in,
02201                 a__ss_declaration__type,
02202                 a__ss_declaration__linkage,
02203                 a__ss_declaration_with_access_specifier__access_specifier,
02204                 a__ss_declaration_with_access_specifier__storage_class,
02205                 a__ss_using_declaration__target,
02206                 a__ss_using_declaration__real_target) );
02207 }
02208 
02209 /*!
02210    This factory method for class ss_using_declaration uses initializers.
02211    \author lsg
02212  */
02213 ptr< ss_using_declaration > ss_using_declaration::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
02214                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
02215                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
02216                 ptr< ss_decl_name > a__ss_declaration__name,
02217                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
02218                 ptr< ss_type > a__ss_declaration__type,
02219                 ptr< ss_linkage > a__ss_declaration__linkage,
02220                 ptr< ss_declaration > a__ss_using_declaration__target,
02221                 ptr< ss_declaration > a__ss_using_declaration__real_target)
02222 {
02223         return ptr< ss_using_declaration > ( new ss_using_declaration(a__ss_base_with_location__location, a__ss_declaration__visible_since, a__ss_declaration__decl_time, a__ss_declaration__name, a__ss_declaration__contained_in, a__ss_declaration__type, a__ss_declaration__linkage, ss_access_specifier::ACCESS_PUBLIC, ss_storage_class::ST_NONE, a__ss_using_declaration__target, a__ss_using_declaration__real_target) );
02224 }
02225 
02226 /*!
02227    Generated constructor for class ss_using_declaration.
02228    \author lsg
02229  */
02230 ss_using_declaration::ss_using_declaration (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
02231                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
02232                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
02233                 ptr< ss_decl_name > a__ss_declaration__name,
02234                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
02235                 ptr< ss_type > a__ss_declaration__type,
02236                 ptr< ss_linkage > a__ss_declaration__linkage,
02237                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
02238                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class,
02239                 ptr< ss_declaration > a__ss_using_declaration__target,
02240                 ptr< ss_declaration > a__ss_using_declaration__real_target)
02241         : ss_declaration_with_access_specifier(a__ss_base_with_location__location,
02242                 a__ss_declaration__visible_since,
02243                 a__ss_declaration__decl_time,
02244                 a__ss_declaration__name,
02245                 a__ss_declaration__contained_in,
02246                 a__ss_declaration__type,
02247                 a__ss_declaration__linkage,
02248                 a__ss_declaration_with_access_specifier__access_specifier,
02249                 a__ss_declaration_with_access_specifier__storage_class), target(checked(a__ss_using_declaration__target)), real_target(checked(a__ss_using_declaration__real_target))
02250 {}
02251 
02252 ptr< object::reflection_list > ss_using_declaration::reflection_get() const
02253 {
02254         if (!reflection) {
02255                 typedef class_reflection::field_metadata md;
02256                 typedef class_reflection::field_metadata_list mdlist;
02257                 ptr<mdlist> mdl = mdlist::create();
02258                 mdl->push_back( md::create( "target", "ss_declaration" ) );
02259                 mdl->push_back( md::create( "real_target", "ss_declaration" ) );
02260                 reflection = reflection_list::create( ss_declaration_with_access_specifier::reflection_get() );
02261                 reflection->push_back( class_reflection::create( "ss_using_declaration", mdl ) );
02262         }
02263         return reflection;
02264 }
02265 
02266 ptr< object::field_list_list > ss_using_declaration::field_values_get() const
02267 {
02268         ptr < field_list_list > result = ss_declaration_with_access_specifier::field_values_get();
02269         result->push_back( value_list::create() );
02270         result->back()->push_back( this->target );
02271         result->push_back( value_list::create() );
02272         result->back()->push_back( this->real_target );
02273         return result;
02274 }
02275 
02276 
02277 /*!
02278    Marking routine is used for garbage collection.
02279    \author lsg
02280  */
02281 void ss_using_declaration::gc_mark()
02282 {
02283         ss_declaration_with_access_specifier::gc_mark();
02284 }
02285 
02286 // End of class ss_using_declaration.
02287 
02288 // ------------- Class ss_dummy_declaration follows. -------------
02289 
02290 /*!
02291    Generated constructor for class ss_dummy_declaration.
02292    \author lsg
02293  */
02294 ss_dummy_declaration::ss_dummy_declaration (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
02295                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
02296                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
02297                 ptr< ss_decl_name > a__ss_declaration__name,
02298                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
02299                 ptr< ss_type > a__ss_declaration__type,
02300                 ptr< ss_linkage > a__ss_declaration__linkage)
02301         : ss_declaration(a__ss_base_with_location__location,
02302                 a__ss_declaration__visible_since,
02303                 a__ss_declaration__decl_time,
02304                 a__ss_declaration__name,
02305                 a__ss_declaration__contained_in,
02306                 a__ss_declaration__type,
02307                 a__ss_declaration__linkage)
02308 {}
02309 
02310 ptr< object::reflection_list > ss_dummy_declaration::reflection_get() const
02311 {
02312         if (!reflection) {
02313                 typedef class_reflection::field_metadata md;
02314                 typedef class_reflection::field_metadata_list mdlist;
02315                 ptr<mdlist> mdl = mdlist::create();
02316                 reflection = reflection_list::create( ss_declaration::reflection_get() );
02317                 reflection->push_back( class_reflection::create( "ss_dummy_declaration", mdl ) );
02318         }
02319         return reflection;
02320 }
02321 
02322 ptr< object::field_list_list > ss_dummy_declaration::field_values_get() const
02323 {
02324         ptr < field_list_list > result = ss_declaration::field_values_get();
02325         return result;
02326 }
02327 
02328 
02329 /*!
02330    Marking routine is used for garbage collection.
02331    \author lsg
02332  */
02333 void ss_dummy_declaration::gc_mark()
02334 {
02335         ss_declaration::gc_mark();
02336 }
02337 
02338 // End of class ss_dummy_declaration.
02339 
02340 // ------------- Class ss_compound_stmt_declaration follows. -------------
02341 
02342 /*!
02343    \returns The value of ss_compound_stmt_declaration::compound_stmt.
02344    \author lsg
02345  */
02346 ptr< ss_compound_stmt > ss_compound_stmt_declaration::compound_stmt_get() const
02347 {
02348         return compound_stmt;
02349 }
02350 
02351 /*!
02352    \param[in] x The new value to set ss_compound_stmt_declaration::compound_stmt to.
02353    \author lsg
02354  */
02355 void ss_compound_stmt_declaration::compound_stmt_set(const ptr< ss_compound_stmt > & x)
02356 {
02357         ss_compound_stmt_declaration::compound_stmt = x;
02358 }
02359 
02360 void ss_compound_stmt_declaration::accept_ss_declaration_visitor( ptr< ss_declaration_visitor > v )
02361 {
02362         return v->visit_ss_compound_stmt_declaration( this );
02363 }
02364 
02365 ulint ss_compound_stmt_declaration::accept_ss_decl2ulint_base( ptr< ss_decl2ulint_base > v )
02366 {
02367         return v->visit_ss_compound_stmt_declaration( this );
02368 }
02369 
02370 lstring ss_compound_stmt_declaration::accept_ss_decl2lstring_base( ptr< ss_decl2lstring_base > v )
02371 {
02372         return v->visit_ss_compound_stmt_declaration( this );
02373 }
02374 
02375 /*!
02376    This factory method for class ss_compound_stmt_declaration takes values of all fields as arguments.
02377    \author lsg
02378  */
02379 ptr< ss_compound_stmt_declaration > ss_compound_stmt_declaration::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
02380                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
02381                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
02382                 ptr< ss_decl_name > a__ss_declaration__name,
02383                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
02384                 ptr< ss_type > a__ss_declaration__type,
02385                 ptr< ss_linkage > a__ss_declaration__linkage,
02386                 ptr< ss_compound_stmt > a__ss_compound_stmt_declaration__compound_stmt)
02387 {
02388         return ptr< ss_compound_stmt_declaration > ( new ss_compound_stmt_declaration(a__ss_base_with_location__location,
02389                 a__ss_declaration__visible_since,
02390                 a__ss_declaration__decl_time,
02391                 a__ss_declaration__name,
02392                 a__ss_declaration__contained_in,
02393                 a__ss_declaration__type,
02394                 a__ss_declaration__linkage,
02395                 a__ss_compound_stmt_declaration__compound_stmt) );
02396 }
02397 
02398 /*!
02399    Generated constructor for class ss_compound_stmt_declaration.
02400    \author lsg
02401  */
02402 ss_compound_stmt_declaration::ss_compound_stmt_declaration (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
02403                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
02404                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
02405                 ptr< ss_decl_name > a__ss_declaration__name,
02406                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
02407                 ptr< ss_type > a__ss_declaration__type,
02408                 ptr< ss_linkage > a__ss_declaration__linkage,
02409                 ptr< ss_compound_stmt > a__ss_compound_stmt_declaration__compound_stmt)
02410         : ss_dummy_declaration(a__ss_base_with_location__location,
02411                 a__ss_declaration__visible_since,
02412                 a__ss_declaration__decl_time,
02413                 a__ss_declaration__name,
02414                 a__ss_declaration__contained_in,
02415                 a__ss_declaration__type,
02416                 a__ss_declaration__linkage), compound_stmt(checked(a__ss_compound_stmt_declaration__compound_stmt))
02417 {}
02418 
02419 ptr< object::reflection_list > ss_compound_stmt_declaration::reflection_get() const
02420 {
02421         if (!reflection) {
02422                 typedef class_reflection::field_metadata md;
02423                 typedef class_reflection::field_metadata_list mdlist;
02424                 ptr<mdlist> mdl = mdlist::create();
02425                 mdl->push_back( md::create( "compound_stmt", "ss_compound_stmt" ) );
02426                 reflection = reflection_list::create( ss_dummy_declaration::reflection_get() );
02427                 reflection->push_back( class_reflection::create( "ss_compound_stmt_declaration", mdl ) );
02428         }
02429         return reflection;
02430 }
02431 
02432 ptr< object::field_list_list > ss_compound_stmt_declaration::field_values_get() const
02433 {
02434         ptr < field_list_list > result = ss_dummy_declaration::field_values_get();
02435         result->push_back( value_list::create() );
02436         result->back()->push_back( this->compound_stmt );
02437         return result;
02438 }
02439 
02440 
02441 /*!
02442    Marking routine is used for garbage collection.
02443    \author lsg
02444  */
02445 void ss_compound_stmt_declaration::gc_mark()
02446 {
02447         ss_dummy_declaration::gc_mark();
02448 }
02449 
02450 // End of class ss_compound_stmt_declaration.
02451 
02452 // ------------- Class ss_builtin_operator_declaration follows. -------------
02453 
02454 void ss_builtin_operator_declaration::accept_ss_declaration_visitor( ptr< ss_declaration_visitor > v )
02455 {
02456         return v->visit_ss_builtin_operator_declaration( this );
02457 }
02458 
02459 ulint ss_builtin_operator_declaration::accept_ss_decl2ulint_base( ptr< ss_decl2ulint_base > v )
02460 {
02461         return v->visit_ss_builtin_operator_declaration( this );
02462 }
02463 
02464 lstring ss_builtin_operator_declaration::accept_ss_decl2lstring_base( ptr< ss_decl2lstring_base > v )
02465 {
02466         return v->visit_ss_builtin_operator_declaration( this );
02467 }
02468 
02469 /*!
02470    This factory method for class ss_builtin_operator_declaration takes values of all fields as arguments.
02471    \author lsg
02472  */
02473 ptr< ss_builtin_operator_declaration > ss_builtin_operator_declaration::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
02474                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
02475                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
02476                 ptr< ss_decl_name > a__ss_declaration__name,
02477                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
02478                 ptr< ss_type > a__ss_declaration__type,
02479                 ptr< ss_linkage > a__ss_declaration__linkage,
02480                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
02481                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class,
02482                 ptr< ::lestes::std::set< srp< ss_struct_base > > > a__ss_befriendable_declaration__friend_of,
02483                 ptr< ss_decl_seq > a__ss_function_declaration__parameters,
02484                 ptr< ss_compound_stmt > a__ss_function_declaration__body,
02485                 ptr< ::lestes::std::map< srp< ss_id_label >, srp< ss_statement > > > a__ss_function_declaration__labels,
02486                 ptr< ::lestes::std::list< srp< ss_decl_seq > > > a__ss_function_declaration__historical_parameters)
02487 {
02488         return ptr< ss_builtin_operator_declaration > ( new ss_builtin_operator_declaration(a__ss_base_with_location__location,
02489                 a__ss_declaration__visible_since,
02490                 a__ss_declaration__decl_time,
02491                 a__ss_declaration__name,
02492                 a__ss_declaration__contained_in,
02493                 a__ss_declaration__type,
02494                 a__ss_declaration__linkage,
02495                 a__ss_declaration_with_access_specifier__access_specifier,
02496                 a__ss_declaration_with_access_specifier__storage_class,
02497                 a__ss_befriendable_declaration__friend_of,
02498                 a__ss_function_declaration__parameters,
02499                 a__ss_function_declaration__body,
02500                 a__ss_function_declaration__labels,
02501                 a__ss_function_declaration__historical_parameters) );
02502 }
02503 
02504 /*!
02505    This factory method for class ss_builtin_operator_declaration uses initializers.
02506    \author lsg
02507  */
02508 ptr< ss_builtin_operator_declaration > ss_builtin_operator_declaration::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
02509                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
02510                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
02511                 ptr< ss_decl_name > a__ss_declaration__name,
02512                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
02513                 ptr< ss_type > a__ss_declaration__type,
02514                 ptr< ss_linkage > a__ss_declaration__linkage,
02515                 ptr< ss_decl_seq > a__ss_function_declaration__parameters,
02516                 ptr< ss_compound_stmt > a__ss_function_declaration__body)
02517 {
02518         return ptr< ss_builtin_operator_declaration > ( new ss_builtin_operator_declaration(a__ss_base_with_location__location, a__ss_declaration__visible_since, a__ss_declaration__decl_time, a__ss_declaration__name, a__ss_declaration__contained_in, a__ss_declaration__type, a__ss_declaration__linkage, ss_access_specifier::ACCESS_PUBLIC, ss_storage_class::ST_NONE, ::lestes::std::set< srp< ss_struct_base > > ::create(), a__ss_function_declaration__parameters, a__ss_function_declaration__body, ::lestes::std::map< srp< ss_id_label >, srp< ss_statement > > ::create(), ::lestes::std::list< srp< ss_decl_seq > > ::create()) );
02519 }
02520 
02521 /*!
02522    Generated constructor for class ss_builtin_operator_declaration.
02523    \author lsg
02524  */
02525 ss_builtin_operator_declaration::ss_builtin_operator_declaration (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
02526                 ptr< ss_declaration_time > a__ss_declaration__visible_since,
02527                 ptr< ss_declaration_time > a__ss_declaration__decl_time,
02528                 ptr< ss_decl_name > a__ss_declaration__name,
02529                 ptr< ss_decl_seq > a__ss_declaration__contained_in,
02530                 ptr< ss_type > a__ss_declaration__type,
02531                 ptr< ss_linkage > a__ss_declaration__linkage,
02532                 ss_access_specifier::type a__ss_declaration_with_access_specifier__access_specifier,
02533                 ss_storage_class::type a__ss_declaration_with_access_specifier__storage_class,
02534                 ptr< ::lestes::std::set< srp< ss_struct_base > > > a__ss_befriendable_declaration__friend_of,
02535                 ptr< ss_decl_seq > a__ss_function_declaration__parameters,
02536                 ptr< ss_compound_stmt > a__ss_function_declaration__body,
02537                 ptr< ::lestes::std::map< srp< ss_id_label >, srp< ss_statement > > > a__ss_function_declaration__labels,
02538                 ptr< ::lestes::std::list< srp< ss_decl_seq > > > a__ss_function_declaration__historical_parameters)
02539         : ss_function_declaration(a__ss_base_with_location__location,
02540                 a__ss_declaration__visible_since,
02541                 a__ss_declaration__decl_time,
02542                 a__ss_declaration__name,
02543                 a__ss_declaration__contained_in,
02544                 a__ss_declaration__type,
02545                 a__ss_declaration__linkage,
02546                 a__ss_declaration_with_access_specifier__access_specifier,
02547                 a__ss_declaration_with_access_specifier__storage_class,
02548                 a__ss_befriendable_declaration__friend_of,
02549                 a__ss_function_declaration__parameters,
02550                 a__ss_function_declaration__body,
02551                 a__ss_function_declaration__labels,
02552                 a__ss_function_declaration__historical_parameters)
02553 {}
02554 
02555 ptr< object::reflection_list > ss_builtin_operator_declaration::reflection_get() const
02556 {
02557         if (!reflection) {
02558                 typedef class_reflection::field_metadata md;
02559                 typedef class_reflection::field_metadata_list mdlist;
02560                 ptr<mdlist> mdl = mdlist::create();
02561                 reflection = reflection_list::create( ss_function_declaration::reflection_get() );
02562                 reflection->push_back( class_reflection::create( "ss_builtin_operator_declaration", mdl ) );
02563         }
02564         return reflection;
02565 }
02566 
02567 ptr< object::field_list_list > ss_builtin_operator_declaration::field_values_get() const
02568 {
02569         ptr < field_list_list > result = ss_function_declaration::field_values_get();
02570         return result;
02571 }
02572 
02573 
02574 /*!
02575    Marking routine is used for garbage collection.
02576    \author lsg
02577  */
02578 void ss_builtin_operator_declaration::gc_mark()
02579 {
02580         ss_function_declaration::gc_mark();
02581 }
02582 
02583 // End of class ss_builtin_operator_declaration.
02584 
02585 // ------------- Class ss_linkage follows. -------------
02586 
02587 /*!
02588    \returns The value of ss_linkage::language.
02589    \author lsg
02590  */
02591 ucn_string ss_linkage::language_get() const
02592 {
02593         return language;
02594 }
02595 
02596 /*!
02597    \param[in] x The new value to set ss_linkage::language to.
02598    \author lsg
02599  */
02600 void ss_linkage::language_set(ucn_string x)
02601 {
02602         ss_linkage::language = x;
02603 }
02604 
02605 /*!
02606    \returns The value of ss_linkage::linkage.
02607    \author lsg
02608  */
02609 ss_linkage::type ss_linkage::linkage_get() const
02610 {
02611         return linkage;
02612 }
02613 
02614 /*!
02615    \param[in] x The new value to set ss_linkage::linkage to.
02616    \author lsg
02617  */
02618 void ss_linkage::linkage_set(type x)
02619 {
02620         ss_linkage::linkage = x;
02621 }
02622 
02623 /*!
02624    This factory method for class ss_linkage takes values of all fields as arguments.
02625    \author lsg
02626  */
02627 ptr< ss_linkage > ss_linkage::create(ucn_string a__ss_linkage__language,
02628                 type a__ss_linkage__linkage)
02629 {
02630         return ptr< ss_linkage > ( new ss_linkage(a__ss_linkage__language,
02631                 a__ss_linkage__linkage) );
02632 }
02633 
02634 /*!
02635    Generated constructor for class ss_linkage.
02636    \author lsg
02637  */
02638 ss_linkage::ss_linkage (ucn_string a__ss_linkage__language,
02639                 type a__ss_linkage__linkage)
02640         : object(), language(a__ss_linkage__language), linkage(a__ss_linkage__linkage)
02641 {}
02642 
02643 ptr< object::reflection_list > ss_linkage::reflection_get() const
02644 {
02645         if (!reflection) {
02646                 typedef class_reflection::field_metadata md;
02647                 typedef class_reflection::field_metadata_list mdlist;
02648                 ptr<mdlist> mdl = mdlist::create();
02649                 mdl->push_back( md::create( "language", "ucn_string" ) );
02650                 mdl->push_back( md::create( "linkage", "type" ) );
02651                 reflection = reflection_list::create( ::lestes::std::object::reflection_get() );
02652                 reflection->push_back( class_reflection::create( "ss_linkage", mdl ) );
02653         }
02654         return reflection;
02655 }
02656 
02657 ptr< object::field_list_list > ss_linkage::field_values_get() const
02658 {
02659         ptr < field_list_list > result = ::lestes::std::object::field_values_get();
02660         result->push_back( value_list::create() );
02661         result->back()->push_back( objectize< ucn_string > ::create( this->language ) );
02662         result->push_back( value_list::create() );
02663         result->back()->push_back( objectize< type > ::create( this->linkage ) );
02664         return result;
02665 }
02666 
02667 
02668 /*!
02669    Marking routine is used for garbage collection.
02670    \author lsg
02671  */
02672 void ss_linkage::gc_mark()
02673 {
02674 	::lestes::std::object::gc_mark();
02675 }
02676 
02677 // End of class ss_linkage.
02678 
02679 
02680 // static data members follow 
02681 ptr<object::reflection_list> ss_declaration::reflection = reflection;
02682 ptr<object::reflection_list> ss_namespace_definition::reflection = reflection;
02683 ptr<object::reflection_list> ss_declaration_with_access_specifier::reflection = reflection;
02684 ptr<object::reflection_list> ss_object_declaration::reflection = reflection;
02685 ptr<object::reflection_list> ss_bitfield_declaration::reflection = reflection;
02686 ptr<object::reflection_list> ss_parameter_declaration::reflection = reflection;
02687 ptr<object::reflection_list> ss_fake_declaration::reflection = reflection;
02688 ptr<object::reflection_list> ss_injected_class_declaration::reflection = reflection;
02689 ptr<object::reflection_list> ss_enum_definition::reflection = reflection;
02690 ptr<object::reflection_list> ss_typedef_definition::reflection = reflection;
02691 ptr<object::reflection_list> ss_enumerator_declaration::reflection = reflection;
02692 ptr<object::reflection_list> ss_befriendable_declaration::reflection = reflection;
02693 ptr<object::reflection_list> ss_structure_declaration::reflection = reflection;
02694 ptr<object::reflection_list> ss_function_declaration::reflection = reflection;
02695 ptr<object::reflection_list> ss_method_declaration::reflection = reflection;
02696 ptr<object::reflection_list> ss_using_declaration::reflection = reflection;
02697 ptr<object::reflection_list> ss_dummy_declaration::reflection = reflection;
02698 ptr<object::reflection_list> ss_compound_stmt_declaration::reflection = reflection;
02699 ptr<object::reflection_list> ss_builtin_operator_declaration::reflection = reflection;
02700 ptr<object::reflection_list> ss_linkage::reflection = reflection;
02701 
02702 end_package(sem);
02703 end_package(cplus);
02704 end_package(lang);
02705 end_package(lestes);
02706 

Generated on Mon Feb 12 18:23:22 2007 for lestes by doxygen 1.5.1-20070107