ss_statement.g.cc

Go to the documentation of this file.
00001 // This file is automatically generated, do not edit.
00002 
00003 /*!
00004         \file
00005         \brief Intercode structure for project Lestes
00006         
00007                         This file describes a set of classes and data types used for intercode layer -ss-.
00008                         It is an output from a XSLT template which generates C++ code.
00009                 
00010 */
00011 
00012 #include <lestes/lang/cplus/sem/ss_ss2pi_base.g.hh>
00013 #include <lestes/lang/cplus/sem/ss_declaration.g.hh>
00014 #include <lestes/lang/cplus/sem/visitor.v.g.hh>
00015 
00016 #include <lestes/std/list.hh>
00017 #include <lestes/std/pair.hh>
00018 #include <lestes/std/reflect.hh>
00019 
00020 #include <lestes/lang/cplus/sem/ss_statement.g.hh>
00021 
00022 package(lestes);
00023 package(lang);
00024 package(cplus);
00025 package(sem);
00026 
00027 
00028 // ------------- Class ss_statement follows. -------------
00029 
00030 /*!
00031    \returns The value of ss_statement::labels.
00032    \author lsg
00033  */
00034 ptr< ::lestes::std::list< srp< ss_label > > > ss_statement::labels_get() const
00035 {
00036         return labels;
00037 }
00038 
00039 /*!
00040    \returns The value of ss_statement::parent.
00041    \author lsg
00042  */
00043 ptr< ss_compound_stmt > ss_statement::parent_get() const
00044 {
00045         return parent;
00046 }
00047 
00048 /*!
00049    \returns The value of ss_statement::psp.
00050    \author lsg
00051  */
00052 ptr< ss_sp > ss_statement::psp_get() const
00053 {
00054         return psp;
00055 }
00056 
00057 /*!
00058    \param[in] x The new value to set ss_statement::psp to.
00059    \author lsg
00060  */
00061 void ss_statement::psp_set(const ptr< ss_sp > & x)
00062 {
00063         ss_statement::psp = x;
00064 }
00065 
00066 /*!
00067    \returns The value of ss_statement::nsp.
00068    \author lsg
00069  */
00070 ptr< ss_sp > ss_statement::nsp_get() const
00071 {
00072         return nsp;
00073 }
00074 
00075 /*!
00076    \param[in] x The new value to set ss_statement::nsp to.
00077    \author lsg
00078  */
00079 void ss_statement::nsp_set(const ptr< ss_sp > & x)
00080 {
00081         ss_statement::nsp = x;
00082 }
00083 
00084 /*!
00085    \returns The value of ss_statement::sequence_points.
00086    \author lsg
00087  */
00088 ptr< ::lestes::std::list< srp< ss_sp > > > ss_statement::sequence_points_get() const
00089 {
00090         return sequence_points;
00091 }
00092 
00093 /*!
00094    Generated constructor for class ss_statement.
00095    \author lsg
00096  */
00097 ss_statement::ss_statement (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00098                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00099                 ptr< ss_compound_stmt > a__ss_statement__parent,
00100                 ptr< ss_sp > a__ss_statement__psp,
00101                 ptr< ss_sp > a__ss_statement__nsp,
00102                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points)
00103         : ss_base_with_location(a__ss_base_with_location__location), labels(checked(a__ss_statement__labels)), parent(check__ss_statement__parent(a__ss_statement__parent)), psp(checked(a__ss_statement__psp)), nsp(checked(a__ss_statement__nsp)), sequence_points(checked(a__ss_statement__sequence_points))
00104 {}
00105 
00106 ptr< object::reflection_list > ss_statement::reflection_get() const
00107 {
00108         if (!reflection) {
00109                 typedef class_reflection::field_metadata md;
00110                 typedef class_reflection::field_metadata_list mdlist;
00111                 ptr<mdlist> mdl = mdlist::create();
00112                 mdl->push_back( md::create( "labels", "list&lt; srp&lt; ss_label &gt; &gt;" ) );
00113                 mdl->push_back( md::create( "parent", "ss_compound_stmt" ) );
00114                 mdl->push_back( md::create( "psp", "ss_sp" ) );
00115                 mdl->push_back( md::create( "nsp", "ss_sp" ) );
00116                 mdl->push_back( md::create( "sequence_points", "list&lt; srp&lt; ss_sp &gt; &gt;" ) );
00117                 mdl->push_back( md::create( "parent_set_ward", "bool" ) );
00118                 reflection = reflection_list::create( ::lestes::intercode::ss_base_with_location::reflection_get() );
00119                 reflection->push_back( class_reflection::create( "ss_statement", mdl ) );
00120         }
00121         return reflection;
00122 }
00123 
00124 ptr< object::field_list_list > ss_statement::field_values_get() const
00125 {
00126         ptr < field_list_list > result = ::lestes::intercode::ss_base_with_location::field_values_get();
00127         result->push_back( value_list::create() );
00128         result->back()->push_back( this->labels );
00129         result->push_back( value_list::create() );
00130         result->back()->push_back( this->parent );
00131         result->push_back( value_list::create() );
00132         result->back()->push_back( this->psp );
00133         result->push_back( value_list::create() );
00134         result->back()->push_back( this->nsp );
00135         result->push_back( value_list::create() );
00136         result->back()->push_back( this->sequence_points );
00137         result->push_back( value_list::create() );
00138         result->back()->push_back( objectize< bool > ::create( this->parent_set_ward ) );
00139         return result;
00140 }
00141 
00142 
00143 /*!
00144    Marking routine is used for garbage collection.
00145    \author lsg
00146  */
00147 void ss_statement::gc_mark()
00148 {
00149 	::lestes::intercode::ss_base_with_location::gc_mark();
00150 }
00151 
00152 // End of class ss_statement.
00153 
00154 // ------------- Class ss_compound_stmt follows. -------------
00155 
00156 /*!
00157    \returns The value of ss_compound_stmt::decl_seq.
00158    \author lsg
00159  */
00160 ptr< ss_decl_seq > ss_compound_stmt::decl_seq_get() const
00161 {
00162         return decl_seq;
00163 }
00164 
00165 /*!
00166    \returns The value of ss_compound_stmt::statements.
00167    \author lsg
00168  */
00169 ptr< ::lestes::std::list< srp< ss_statement > > > ss_compound_stmt::statements_get() const
00170 {
00171         return statements;
00172 }
00173 
00174 /*!
00175    \returns The value of ss_compound_stmt::destructor_sp.
00176    \author lsg
00177  */
00178 ptr< ss_sp > ss_compound_stmt::destructor_sp_get() const
00179 {
00180         return destructor_sp;
00181 }
00182 
00183 /*!
00184    \param[in] x The new value to set ss_compound_stmt::destructor_sp to.
00185    \author lsg
00186  */
00187 void ss_compound_stmt::destructor_sp_set(const ptr< ss_sp > & x)
00188 {
00189         ss_compound_stmt::destructor_sp = x;
00190 }
00191 
00192 /*!
00193    \returns The value of ss_compound_stmt::behavior.
00194    \author lsg
00195  */
00196 ss_compound_stmt::behavior_type ss_compound_stmt::behavior_get() const
00197 {
00198         return behavior;
00199 }
00200 
00201 /*!
00202    \param[in] x The new value to set ss_compound_stmt::behavior to.
00203    \author lsg
00204  */
00205 void ss_compound_stmt::behavior_set(behavior_type x)
00206 {
00207         ss_compound_stmt::behavior = x;
00208 }
00209 
00210 void ss_compound_stmt::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
00211 {
00212         return v->visit_ss_compound_stmt( this );
00213 }
00214 
00215 /*!
00216    This factory method for class ss_compound_stmt takes values of all fields as arguments.
00217    \author lsg
00218  */
00219 ptr< ss_compound_stmt > ss_compound_stmt::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00220                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00221                 ptr< ss_compound_stmt > a__ss_statement__parent,
00222                 ptr< ss_sp > a__ss_statement__psp,
00223                 ptr< ss_sp > a__ss_statement__nsp,
00224                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00225                 ptr< ss_decl_seq > a__ss_compound_stmt__decl_seq,
00226                 ptr< ::lestes::std::list< srp< ss_statement > > > a__ss_compound_stmt__statements,
00227                 ptr< ss_sp > a__ss_compound_stmt__destructor_sp,
00228                 behavior_type a__ss_compound_stmt__behavior)
00229 {
00230         return ptr< ss_compound_stmt > ( new ss_compound_stmt(a__ss_base_with_location__location,
00231                 a__ss_statement__labels,
00232                 a__ss_statement__parent,
00233                 a__ss_statement__psp,
00234                 a__ss_statement__nsp,
00235                 a__ss_statement__sequence_points,
00236                 a__ss_compound_stmt__decl_seq,
00237                 a__ss_compound_stmt__statements,
00238                 a__ss_compound_stmt__destructor_sp,
00239                 a__ss_compound_stmt__behavior) );
00240 }
00241 
00242 /*!
00243    This factory method for class ss_compound_stmt uses initializers.
00244    \author lsg
00245  */
00246 ptr< ss_compound_stmt > ss_compound_stmt::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00247                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00248                 ptr< ss_compound_stmt > a__ss_statement__parent,
00249                 ptr< ss_sp > a__ss_statement__psp,
00250                 ptr< ss_sp > a__ss_statement__nsp,
00251                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00252                 ptr< ss_decl_seq > a__ss_compound_stmt__decl_seq,
00253                 ptr< ::lestes::std::list< srp< ss_statement > > > a__ss_compound_stmt__statements,
00254                 ptr< ss_sp > a__ss_compound_stmt__destructor_sp)
00255 {
00256         return ptr< ss_compound_stmt > ( new ss_compound_stmt(a__ss_base_with_location__location, a__ss_statement__labels, a__ss_statement__parent, a__ss_statement__psp, a__ss_statement__nsp, a__ss_statement__sequence_points, a__ss_compound_stmt__decl_seq, a__ss_compound_stmt__statements, a__ss_compound_stmt__destructor_sp, NORMAL) );
00257 }
00258 
00259 /*!
00260    Generated constructor for class ss_compound_stmt.
00261    \author lsg
00262  */
00263 ss_compound_stmt::ss_compound_stmt (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00264                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00265                 ptr< ss_compound_stmt > a__ss_statement__parent,
00266                 ptr< ss_sp > a__ss_statement__psp,
00267                 ptr< ss_sp > a__ss_statement__nsp,
00268                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00269                 ptr< ss_decl_seq > a__ss_compound_stmt__decl_seq,
00270                 ptr< ::lestes::std::list< srp< ss_statement > > > a__ss_compound_stmt__statements,
00271                 ptr< ss_sp > a__ss_compound_stmt__destructor_sp,
00272                 behavior_type a__ss_compound_stmt__behavior)
00273         : ss_statement(a__ss_base_with_location__location,
00274                 a__ss_statement__labels,
00275                 a__ss_statement__parent,
00276                 a__ss_statement__psp,
00277                 a__ss_statement__nsp,
00278                 a__ss_statement__sequence_points), decl_seq(checked(a__ss_compound_stmt__decl_seq)), statements(checked(a__ss_compound_stmt__statements)), destructor_sp(checked(a__ss_compound_stmt__destructor_sp)), behavior(a__ss_compound_stmt__behavior)
00279 {}
00280 
00281 ptr< object::reflection_list > ss_compound_stmt::reflection_get() const
00282 {
00283         if (!reflection) {
00284                 typedef class_reflection::field_metadata md;
00285                 typedef class_reflection::field_metadata_list mdlist;
00286                 ptr<mdlist> mdl = mdlist::create();
00287                 mdl->push_back( md::create( "decl_seq", "ss_decl_seq" ) );
00288                 mdl->push_back( md::create( "statements", "list&lt; srp&lt; ss_statement &gt; &gt;" ) );
00289                 mdl->push_back( md::create( "destructor_sp", "ss_sp" ) );
00290                 mdl->push_back( md::create( "the_root_instance", "ss_compound_stmt" ) );
00291                 mdl->push_back( md::create( "behavior", "behavior_type" ) );
00292                 reflection = reflection_list::create( ss_statement::reflection_get() );
00293                 reflection->push_back( class_reflection::create( "ss_compound_stmt", mdl ) );
00294         }
00295         return reflection;
00296 }
00297 
00298 ptr< object::field_list_list > ss_compound_stmt::field_values_get() const
00299 {
00300         ptr < field_list_list > result = ss_statement::field_values_get();
00301         result->push_back( value_list::create() );
00302         result->back()->push_back( this->decl_seq );
00303         result->push_back( value_list::create() );
00304         result->back()->push_back( this->statements );
00305         result->push_back( value_list::create() );
00306         result->back()->push_back( this->destructor_sp );
00307         result->push_back( value_list::create() );
00308         result->back()->push_back( this->the_root_instance );
00309         result->push_back( value_list::create() );
00310         result->back()->push_back( objectize< behavior_type > ::create( this->behavior ) );
00311         return result;
00312 }
00313 
00314 
00315 /*!
00316    Marking routine is used for garbage collection.
00317    \author lsg
00318  */
00319 void ss_compound_stmt::gc_mark()
00320 {
00321         ss_statement::gc_mark();
00322 }
00323 
00324 // End of class ss_compound_stmt.
00325 
00326 // ------------- Class ss_decl_stmt follows. -------------
00327 
00328 /*!
00329    \returns The value of ss_decl_stmt::decl.
00330    \author lsg
00331  */
00332 ptr< ss_declaration > ss_decl_stmt::decl_get() const
00333 {
00334         return decl;
00335 }
00336 
00337 /*!
00338    \param[in] x The new value to set ss_decl_stmt::decl to.
00339    \author lsg
00340  */
00341 void ss_decl_stmt::decl_set(const ptr< ss_declaration > & x)
00342 {
00343         ss_decl_stmt::decl = x;
00344 }
00345 
00346 /*!
00347    \returns The value of ss_decl_stmt::args.
00348    \author lsg
00349  */
00350 ptr< ::lestes::std::list< srp< ss_expression > > > ss_decl_stmt::args_get() const
00351 {
00352         return args;
00353 }
00354 
00355 /*!
00356    \param[in] x The new value to set ss_decl_stmt::args to.
00357    \author lsg
00358  */
00359 void ss_decl_stmt::args_set(const ptr< ::lestes::std::list< srp< ss_expression > > > & x)
00360 {
00361         ss_decl_stmt::args = x;
00362 }
00363 
00364 /*!
00365    \returns The value of ss_decl_stmt::initializer_kind.
00366    \author lsg
00367  */
00368 ss_decl_stmt::initializer_kind_enum ss_decl_stmt::initializer_kind_get() const
00369 {
00370         return initializer_kind;
00371 }
00372 
00373 /*!
00374    \param[in] x The new value to set ss_decl_stmt::initializer_kind to.
00375    \author lsg
00376  */
00377 void ss_decl_stmt::initializer_kind_set(initializer_kind_enum x)
00378 {
00379         ss_decl_stmt::initializer_kind = x;
00380 }
00381 
00382 void ss_decl_stmt::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
00383 {
00384         return v->visit_ss_decl_stmt( this );
00385 }
00386 
00387 /*!
00388    This factory method for class ss_decl_stmt takes values of all fields as arguments.
00389    \author lsg
00390  */
00391 ptr< ss_decl_stmt > ss_decl_stmt::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00392                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00393                 ptr< ss_compound_stmt > a__ss_statement__parent,
00394                 ptr< ss_sp > a__ss_statement__psp,
00395                 ptr< ss_sp > a__ss_statement__nsp,
00396                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00397                 ptr< ss_declaration > a__ss_decl_stmt__decl,
00398                 ptr< ::lestes::std::list< srp< ss_expression > > > a__ss_decl_stmt__args,
00399                 initializer_kind_enum a__ss_decl_stmt__initializer_kind)
00400 {
00401         return ptr< ss_decl_stmt > ( new ss_decl_stmt(a__ss_base_with_location__location,
00402                 a__ss_statement__labels,
00403                 a__ss_statement__parent,
00404                 a__ss_statement__psp,
00405                 a__ss_statement__nsp,
00406                 a__ss_statement__sequence_points,
00407                 a__ss_decl_stmt__decl,
00408                 a__ss_decl_stmt__args,
00409                 a__ss_decl_stmt__initializer_kind) );
00410 }
00411 
00412 /*!
00413    Generated constructor for class ss_decl_stmt.
00414    \author lsg
00415  */
00416 ss_decl_stmt::ss_decl_stmt (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00417                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00418                 ptr< ss_compound_stmt > a__ss_statement__parent,
00419                 ptr< ss_sp > a__ss_statement__psp,
00420                 ptr< ss_sp > a__ss_statement__nsp,
00421                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00422                 ptr< ss_declaration > a__ss_decl_stmt__decl,
00423                 ptr< ::lestes::std::list< srp< ss_expression > > > a__ss_decl_stmt__args,
00424                 initializer_kind_enum a__ss_decl_stmt__initializer_kind)
00425         : ss_statement(a__ss_base_with_location__location,
00426                 a__ss_statement__labels,
00427                 a__ss_statement__parent,
00428                 a__ss_statement__psp,
00429                 a__ss_statement__nsp,
00430                 a__ss_statement__sequence_points), decl(checked(a__ss_decl_stmt__decl)), args(checked(a__ss_decl_stmt__args)), initializer_kind(a__ss_decl_stmt__initializer_kind)
00431 {}
00432 
00433 ptr< object::reflection_list > ss_decl_stmt::reflection_get() const
00434 {
00435         if (!reflection) {
00436                 typedef class_reflection::field_metadata md;
00437                 typedef class_reflection::field_metadata_list mdlist;
00438                 ptr<mdlist> mdl = mdlist::create();
00439                 mdl->push_back( md::create( "decl", "ss_declaration" ) );
00440                 mdl->push_back( md::create( "args", "list&lt; srp&lt; ss_expression &gt; &gt;" ) );
00441                 mdl->push_back( md::create( "initializer_kind", "initializer_kind_enum" ) );
00442                 reflection = reflection_list::create( ss_statement::reflection_get() );
00443                 reflection->push_back( class_reflection::create( "ss_decl_stmt", mdl ) );
00444         }
00445         return reflection;
00446 }
00447 
00448 ptr< object::field_list_list > ss_decl_stmt::field_values_get() const
00449 {
00450         ptr < field_list_list > result = ss_statement::field_values_get();
00451         result->push_back( value_list::create() );
00452         result->back()->push_back( this->decl );
00453         result->push_back( value_list::create() );
00454         result->back()->push_back( this->args );
00455         result->push_back( value_list::create() );
00456         result->back()->push_back( objectize< initializer_kind_enum > ::create( this->initializer_kind ) );
00457         return result;
00458 }
00459 
00460 
00461 /*!
00462    Marking routine is used for garbage collection.
00463    \author lsg
00464  */
00465 void ss_decl_stmt::gc_mark()
00466 {
00467         ss_statement::gc_mark();
00468 }
00469 
00470 // End of class ss_decl_stmt.
00471 
00472 // ------------- Class ss_try follows. -------------
00473 
00474 /*!
00475    \returns The value of ss_try::block.
00476    \author lsg
00477  */
00478 ptr< ss_compound_stmt > ss_try::block_get() const
00479 {
00480         return block;
00481 }
00482 
00483 /*!
00484    \param[in] x The new value to set ss_try::block to.
00485    \author lsg
00486  */
00487 void ss_try::block_set(const ptr< ss_compound_stmt > & x)
00488 {
00489         ss_try::block = x;
00490 }
00491 
00492 /*!
00493    \returns The value of ss_try::handlers.
00494    \author lsg
00495  */
00496 ptr< ::lestes::std::list< srp< ss_catch > > > ss_try::handlers_get() const
00497 {
00498         return handlers;
00499 }
00500 
00501 /*!
00502    \param[in] x The new value to set ss_try::handlers to.
00503    \author lsg
00504  */
00505 void ss_try::handlers_set(const ptr< ::lestes::std::list< srp< ss_catch > > > & x)
00506 {
00507         ss_try::handlers = x;
00508 }
00509 
00510 void ss_try::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
00511 {
00512         return v->visit_ss_try( this );
00513 }
00514 
00515 /*!
00516    This factory method for class ss_try takes values of all fields as arguments.
00517    \author lsg
00518  */
00519 ptr< ss_try > ss_try::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00520                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00521                 ptr< ss_compound_stmt > a__ss_statement__parent,
00522                 ptr< ss_sp > a__ss_statement__psp,
00523                 ptr< ss_sp > a__ss_statement__nsp,
00524                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00525                 ptr< ss_compound_stmt > a__ss_try__block,
00526                 ptr< ::lestes::std::list< srp< ss_catch > > > a__ss_try__handlers)
00527 {
00528         return ptr< ss_try > ( new ss_try(a__ss_base_with_location__location,
00529                 a__ss_statement__labels,
00530                 a__ss_statement__parent,
00531                 a__ss_statement__psp,
00532                 a__ss_statement__nsp,
00533                 a__ss_statement__sequence_points,
00534                 a__ss_try__block,
00535                 a__ss_try__handlers) );
00536 }
00537 
00538 /*!
00539    Generated constructor for class ss_try.
00540    \author lsg
00541  */
00542 ss_try::ss_try (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00543                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00544                 ptr< ss_compound_stmt > a__ss_statement__parent,
00545                 ptr< ss_sp > a__ss_statement__psp,
00546                 ptr< ss_sp > a__ss_statement__nsp,
00547                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00548                 ptr< ss_compound_stmt > a__ss_try__block,
00549                 ptr< ::lestes::std::list< srp< ss_catch > > > a__ss_try__handlers)
00550         : ss_statement(a__ss_base_with_location__location,
00551                 a__ss_statement__labels,
00552                 a__ss_statement__parent,
00553                 a__ss_statement__psp,
00554                 a__ss_statement__nsp,
00555                 a__ss_statement__sequence_points), block(checked(a__ss_try__block)), handlers(checked(a__ss_try__handlers))
00556 {}
00557 
00558 ptr< object::reflection_list > ss_try::reflection_get() const
00559 {
00560         if (!reflection) {
00561                 typedef class_reflection::field_metadata md;
00562                 typedef class_reflection::field_metadata_list mdlist;
00563                 ptr<mdlist> mdl = mdlist::create();
00564                 mdl->push_back( md::create( "block", "ss_compound_stmt" ) );
00565                 mdl->push_back( md::create( "handlers", "list&lt; srp&lt; ss_catch &gt; &gt;" ) );
00566                 reflection = reflection_list::create( ss_statement::reflection_get() );
00567                 reflection->push_back( class_reflection::create( "ss_try", mdl ) );
00568         }
00569         return reflection;
00570 }
00571 
00572 ptr< object::field_list_list > ss_try::field_values_get() const
00573 {
00574         ptr < field_list_list > result = ss_statement::field_values_get();
00575         result->push_back( value_list::create() );
00576         result->back()->push_back( this->block );
00577         result->push_back( value_list::create() );
00578         result->back()->push_back( this->handlers );
00579         return result;
00580 }
00581 
00582 
00583 /*!
00584    Marking routine is used for garbage collection.
00585    \author lsg
00586  */
00587 void ss_try::gc_mark()
00588 {
00589         ss_statement::gc_mark();
00590 }
00591 
00592 // End of class ss_try.
00593 
00594 // ------------- Class ss_break follows. -------------
00595 
00596 /*!
00597    \returns The value of ss_break::from.
00598    \author lsg
00599  */
00600 ptr< ss_breakable_stmt > ss_break::from_get() const
00601 {
00602         return from;
00603 }
00604 
00605 /*!
00606    \param[in] x The new value to set ss_break::from to.
00607    \author lsg
00608  */
00609 void ss_break::from_set(const ptr< ss_breakable_stmt > & x)
00610 {
00611         ss_break::from = x;
00612 }
00613 
00614 void ss_break::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
00615 {
00616         return v->visit_ss_break( this );
00617 }
00618 
00619 /*!
00620    This factory method for class ss_break takes values of all fields as arguments.
00621    \author lsg
00622  */
00623 ptr< ss_break > ss_break::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00624                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00625                 ptr< ss_compound_stmt > a__ss_statement__parent,
00626                 ptr< ss_sp > a__ss_statement__psp,
00627                 ptr< ss_sp > a__ss_statement__nsp,
00628                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00629                 ptr< ss_breakable_stmt > a__ss_break__from)
00630 {
00631         return ptr< ss_break > ( new ss_break(a__ss_base_with_location__location,
00632                 a__ss_statement__labels,
00633                 a__ss_statement__parent,
00634                 a__ss_statement__psp,
00635                 a__ss_statement__nsp,
00636                 a__ss_statement__sequence_points,
00637                 a__ss_break__from) );
00638 }
00639 
00640 /*!
00641    Generated constructor for class ss_break.
00642    \author lsg
00643  */
00644 ss_break::ss_break (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00645                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00646                 ptr< ss_compound_stmt > a__ss_statement__parent,
00647                 ptr< ss_sp > a__ss_statement__psp,
00648                 ptr< ss_sp > a__ss_statement__nsp,
00649                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00650                 ptr< ss_breakable_stmt > a__ss_break__from)
00651         : ss_statement(a__ss_base_with_location__location,
00652                 a__ss_statement__labels,
00653                 a__ss_statement__parent,
00654                 a__ss_statement__psp,
00655                 a__ss_statement__nsp,
00656                 a__ss_statement__sequence_points), from(checked(a__ss_break__from))
00657 {}
00658 
00659 ptr< object::reflection_list > ss_break::reflection_get() const
00660 {
00661         if (!reflection) {
00662                 typedef class_reflection::field_metadata md;
00663                 typedef class_reflection::field_metadata_list mdlist;
00664                 ptr<mdlist> mdl = mdlist::create();
00665                 mdl->push_back( md::create( "from", "ss_breakable_stmt" ) );
00666                 reflection = reflection_list::create( ss_statement::reflection_get() );
00667                 reflection->push_back( class_reflection::create( "ss_break", mdl ) );
00668         }
00669         return reflection;
00670 }
00671 
00672 ptr< object::field_list_list > ss_break::field_values_get() const
00673 {
00674         ptr < field_list_list > result = ss_statement::field_values_get();
00675         result->push_back( value_list::create() );
00676         result->back()->push_back( this->from );
00677         return result;
00678 }
00679 
00680 
00681 /*!
00682    Marking routine is used for garbage collection.
00683    \author lsg
00684  */
00685 void ss_break::gc_mark()
00686 {
00687         ss_statement::gc_mark();
00688 }
00689 
00690 // End of class ss_break.
00691 
00692 // ------------- Class ss_return follows. -------------
00693 
00694 /*!
00695    \returns The value of ss_return::result.
00696    \author lsg
00697  */
00698 ptr< ss_expression > ss_return::result_get() const
00699 {
00700         return result;
00701 }
00702 
00703 /*!
00704    \param[in] x The new value to set ss_return::result to.
00705    \author lsg
00706  */
00707 void ss_return::result_set(const ptr< ss_expression > & x)
00708 {
00709         ss_return::result = x;
00710 }
00711 
00712 void ss_return::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
00713 {
00714         return v->visit_ss_return( this );
00715 }
00716 
00717 /*!
00718    This factory method for class ss_return takes values of all fields as arguments.
00719    \author lsg
00720  */
00721 ptr< ss_return > ss_return::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00722                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00723                 ptr< ss_compound_stmt > a__ss_statement__parent,
00724                 ptr< ss_sp > a__ss_statement__psp,
00725                 ptr< ss_sp > a__ss_statement__nsp,
00726                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00727                 ptr< ss_expression > a__ss_return__result)
00728 {
00729         return ptr< ss_return > ( new ss_return(a__ss_base_with_location__location,
00730                 a__ss_statement__labels,
00731                 a__ss_statement__parent,
00732                 a__ss_statement__psp,
00733                 a__ss_statement__nsp,
00734                 a__ss_statement__sequence_points,
00735                 a__ss_return__result) );
00736 }
00737 
00738 /*!
00739    Generated constructor for class ss_return.
00740    \author lsg
00741  */
00742 ss_return::ss_return (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00743                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00744                 ptr< ss_compound_stmt > a__ss_statement__parent,
00745                 ptr< ss_sp > a__ss_statement__psp,
00746                 ptr< ss_sp > a__ss_statement__nsp,
00747                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00748                 ptr< ss_expression > a__ss_return__result)
00749         : ss_statement(a__ss_base_with_location__location,
00750                 a__ss_statement__labels,
00751                 a__ss_statement__parent,
00752                 a__ss_statement__psp,
00753                 a__ss_statement__nsp,
00754                 a__ss_statement__sequence_points), result(a__ss_return__result)
00755 {}
00756 
00757 ptr< object::reflection_list > ss_return::reflection_get() const
00758 {
00759         if (!reflection) {
00760                 typedef class_reflection::field_metadata md;
00761                 typedef class_reflection::field_metadata_list mdlist;
00762                 ptr<mdlist> mdl = mdlist::create();
00763                 mdl->push_back( md::create( "result", "ss_expression" ) );
00764                 reflection = reflection_list::create( ss_statement::reflection_get() );
00765                 reflection->push_back( class_reflection::create( "ss_return", mdl ) );
00766         }
00767         return reflection;
00768 }
00769 
00770 ptr< object::field_list_list > ss_return::field_values_get() const
00771 {
00772         ptr < field_list_list > result = ss_statement::field_values_get();
00773         result->push_back( value_list::create() );
00774         result->back()->push_back( this->result );
00775         return result;
00776 }
00777 
00778 
00779 /*!
00780    Marking routine is used for garbage collection.
00781    \author lsg
00782  */
00783 void ss_return::gc_mark()
00784 {
00785         ss_statement::gc_mark();
00786 }
00787 
00788 // End of class ss_return.
00789 
00790 // ------------- Class ss_goto follows. -------------
00791 
00792 /*!
00793    \returns The value of ss_goto::label.
00794    \author lsg
00795  */
00796 ptr< ss_label > ss_goto::label_get() const
00797 {
00798         return label;
00799 }
00800 
00801 /*!
00802    \param[in] x The new value to set ss_goto::label to.
00803    \author lsg
00804  */
00805 void ss_goto::label_set(const ptr< ss_label > & x)
00806 {
00807         ss_goto::label = x;
00808 }
00809 
00810 void ss_goto::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
00811 {
00812         return v->visit_ss_goto( this );
00813 }
00814 
00815 /*!
00816    This factory method for class ss_goto takes values of all fields as arguments.
00817    \author lsg
00818  */
00819 ptr< ss_goto > ss_goto::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00820                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00821                 ptr< ss_compound_stmt > a__ss_statement__parent,
00822                 ptr< ss_sp > a__ss_statement__psp,
00823                 ptr< ss_sp > a__ss_statement__nsp,
00824                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00825                 ptr< ss_label > a__ss_goto__label)
00826 {
00827         return ptr< ss_goto > ( new ss_goto(a__ss_base_with_location__location,
00828                 a__ss_statement__labels,
00829                 a__ss_statement__parent,
00830                 a__ss_statement__psp,
00831                 a__ss_statement__nsp,
00832                 a__ss_statement__sequence_points,
00833                 a__ss_goto__label) );
00834 }
00835 
00836 /*!
00837    Generated constructor for class ss_goto.
00838    \author lsg
00839  */
00840 ss_goto::ss_goto (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00841                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00842                 ptr< ss_compound_stmt > a__ss_statement__parent,
00843                 ptr< ss_sp > a__ss_statement__psp,
00844                 ptr< ss_sp > a__ss_statement__nsp,
00845                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00846                 ptr< ss_label > a__ss_goto__label)
00847         : ss_statement(a__ss_base_with_location__location,
00848                 a__ss_statement__labels,
00849                 a__ss_statement__parent,
00850                 a__ss_statement__psp,
00851                 a__ss_statement__nsp,
00852                 a__ss_statement__sequence_points), label(checked(a__ss_goto__label))
00853 {}
00854 
00855 ptr< object::reflection_list > ss_goto::reflection_get() const
00856 {
00857         if (!reflection) {
00858                 typedef class_reflection::field_metadata md;
00859                 typedef class_reflection::field_metadata_list mdlist;
00860                 ptr<mdlist> mdl = mdlist::create();
00861                 mdl->push_back( md::create( "label", "ss_label" ) );
00862                 reflection = reflection_list::create( ss_statement::reflection_get() );
00863                 reflection->push_back( class_reflection::create( "ss_goto", mdl ) );
00864         }
00865         return reflection;
00866 }
00867 
00868 ptr< object::field_list_list > ss_goto::field_values_get() const
00869 {
00870         ptr < field_list_list > result = ss_statement::field_values_get();
00871         result->push_back( value_list::create() );
00872         result->back()->push_back( this->label );
00873         return result;
00874 }
00875 
00876 
00877 /*!
00878    Marking routine is used for garbage collection.
00879    \author lsg
00880  */
00881 void ss_goto::gc_mark()
00882 {
00883         ss_statement::gc_mark();
00884 }
00885 
00886 // End of class ss_goto.
00887 
00888 // ------------- Class ss_expr_stmt follows. -------------
00889 
00890 /*!
00891    \returns The value of ss_expr_stmt::expression.
00892    \author lsg
00893  */
00894 ptr< ss_expression > ss_expr_stmt::expression_get() const
00895 {
00896         return expression;
00897 }
00898 
00899 /*!
00900    \param[in] x The new value to set ss_expr_stmt::expression to.
00901    \author lsg
00902  */
00903 void ss_expr_stmt::expression_set(const ptr< ss_expression > & x)
00904 {
00905         ss_expr_stmt::expression = x;
00906 }
00907 
00908 void ss_expr_stmt::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
00909 {
00910         return v->visit_ss_expr_stmt( this );
00911 }
00912 
00913 /*!
00914    This factory method for class ss_expr_stmt takes values of all fields as arguments.
00915    \author lsg
00916  */
00917 ptr< ss_expr_stmt > ss_expr_stmt::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00918                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00919                 ptr< ss_compound_stmt > a__ss_statement__parent,
00920                 ptr< ss_sp > a__ss_statement__psp,
00921                 ptr< ss_sp > a__ss_statement__nsp,
00922                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00923                 ptr< ss_expression > a__ss_expr_stmt__expression)
00924 {
00925         return ptr< ss_expr_stmt > ( new ss_expr_stmt(a__ss_base_with_location__location,
00926                 a__ss_statement__labels,
00927                 a__ss_statement__parent,
00928                 a__ss_statement__psp,
00929                 a__ss_statement__nsp,
00930                 a__ss_statement__sequence_points,
00931                 a__ss_expr_stmt__expression) );
00932 }
00933 
00934 /*!
00935    Generated constructor for class ss_expr_stmt.
00936    \author lsg
00937  */
00938 ss_expr_stmt::ss_expr_stmt (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00939                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00940                 ptr< ss_compound_stmt > a__ss_statement__parent,
00941                 ptr< ss_sp > a__ss_statement__psp,
00942                 ptr< ss_sp > a__ss_statement__nsp,
00943                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00944                 ptr< ss_expression > a__ss_expr_stmt__expression)
00945         : ss_statement(a__ss_base_with_location__location,
00946                 a__ss_statement__labels,
00947                 a__ss_statement__parent,
00948                 a__ss_statement__psp,
00949                 a__ss_statement__nsp,
00950                 a__ss_statement__sequence_points), expression(checked(a__ss_expr_stmt__expression))
00951 {}
00952 
00953 ptr< object::reflection_list > ss_expr_stmt::reflection_get() const
00954 {
00955         if (!reflection) {
00956                 typedef class_reflection::field_metadata md;
00957                 typedef class_reflection::field_metadata_list mdlist;
00958                 ptr<mdlist> mdl = mdlist::create();
00959                 mdl->push_back( md::create( "expression", "ss_expression" ) );
00960                 reflection = reflection_list::create( ss_statement::reflection_get() );
00961                 reflection->push_back( class_reflection::create( "ss_expr_stmt", mdl ) );
00962         }
00963         return reflection;
00964 }
00965 
00966 ptr< object::field_list_list > ss_expr_stmt::field_values_get() const
00967 {
00968         ptr < field_list_list > result = ss_statement::field_values_get();
00969         result->push_back( value_list::create() );
00970         result->back()->push_back( this->expression );
00971         return result;
00972 }
00973 
00974 
00975 /*!
00976    Marking routine is used for garbage collection.
00977    \author lsg
00978  */
00979 void ss_expr_stmt::gc_mark()
00980 {
00981         ss_statement::gc_mark();
00982 }
00983 
00984 // End of class ss_expr_stmt.
00985 
00986 // ------------- Class ss_continue follows. -------------
00987 
00988 /*!
00989    \returns The value of ss_continue::from.
00990    \author lsg
00991  */
00992 ptr< ss_iteration_stmt > ss_continue::from_get() const
00993 {
00994         return from;
00995 }
00996 
00997 /*!
00998    \param[in] x The new value to set ss_continue::from to.
00999    \author lsg
01000  */
01001 void ss_continue::from_set(const ptr< ss_iteration_stmt > & x)
01002 {
01003         ss_continue::from = x;
01004 }
01005 
01006 void ss_continue::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
01007 {
01008         return v->visit_ss_continue( this );
01009 }
01010 
01011 /*!
01012    This factory method for class ss_continue takes values of all fields as arguments.
01013    \author lsg
01014  */
01015 ptr< ss_continue > ss_continue::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01016                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01017                 ptr< ss_compound_stmt > a__ss_statement__parent,
01018                 ptr< ss_sp > a__ss_statement__psp,
01019                 ptr< ss_sp > a__ss_statement__nsp,
01020                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01021                 ptr< ss_iteration_stmt > a__ss_continue__from)
01022 {
01023         return ptr< ss_continue > ( new ss_continue(a__ss_base_with_location__location,
01024                 a__ss_statement__labels,
01025                 a__ss_statement__parent,
01026                 a__ss_statement__psp,
01027                 a__ss_statement__nsp,
01028                 a__ss_statement__sequence_points,
01029                 a__ss_continue__from) );
01030 }
01031 
01032 /*!
01033    Generated constructor for class ss_continue.
01034    \author lsg
01035  */
01036 ss_continue::ss_continue (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01037                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01038                 ptr< ss_compound_stmt > a__ss_statement__parent,
01039                 ptr< ss_sp > a__ss_statement__psp,
01040                 ptr< ss_sp > a__ss_statement__nsp,
01041                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01042                 ptr< ss_iteration_stmt > a__ss_continue__from)
01043         : ss_statement(a__ss_base_with_location__location,
01044                 a__ss_statement__labels,
01045                 a__ss_statement__parent,
01046                 a__ss_statement__psp,
01047                 a__ss_statement__nsp,
01048                 a__ss_statement__sequence_points), from(checked(a__ss_continue__from))
01049 {}
01050 
01051 ptr< object::reflection_list > ss_continue::reflection_get() const
01052 {
01053         if (!reflection) {
01054                 typedef class_reflection::field_metadata md;
01055                 typedef class_reflection::field_metadata_list mdlist;
01056                 ptr<mdlist> mdl = mdlist::create();
01057                 mdl->push_back( md::create( "from", "ss_iteration_stmt" ) );
01058                 reflection = reflection_list::create( ss_statement::reflection_get() );
01059                 reflection->push_back( class_reflection::create( "ss_continue", mdl ) );
01060         }
01061         return reflection;
01062 }
01063 
01064 ptr< object::field_list_list > ss_continue::field_values_get() const
01065 {
01066         ptr < field_list_list > result = ss_statement::field_values_get();
01067         result->push_back( value_list::create() );
01068         result->back()->push_back( this->from );
01069         return result;
01070 }
01071 
01072 
01073 /*!
01074    Marking routine is used for garbage collection.
01075    \author lsg
01076  */
01077 void ss_continue::gc_mark()
01078 {
01079         ss_statement::gc_mark();
01080 }
01081 
01082 // End of class ss_continue.
01083 
01084 // ------------- Class ss_if_stmt follows. -------------
01085 
01086 /*!
01087    \returns The value of ss_if_stmt::condition.
01088    \author lsg
01089  */
01090 ptr< ss_expression > ss_if_stmt::condition_get() const
01091 {
01092         return condition;
01093 }
01094 
01095 /*!
01096    \param[in] x The new value to set ss_if_stmt::condition to.
01097    \author lsg
01098  */
01099 void ss_if_stmt::condition_set(const ptr< ss_expression > & x)
01100 {
01101         ss_if_stmt::condition = x;
01102 }
01103 
01104 /*!
01105    \returns The value of ss_if_stmt::cthen.
01106    \author lsg
01107  */
01108 ptr< ss_compound_stmt > ss_if_stmt::cthen_get() const
01109 {
01110         return cthen;
01111 }
01112 
01113 /*!
01114    \param[in] x The new value to set ss_if_stmt::cthen to.
01115    \author lsg
01116  */
01117 void ss_if_stmt::cthen_set(const ptr< ss_compound_stmt > & x)
01118 {
01119         ss_if_stmt::cthen = x;
01120 }
01121 
01122 /*!
01123    \returns The value of ss_if_stmt::celse.
01124    \author lsg
01125  */
01126 ptr< ss_compound_stmt > ss_if_stmt::celse_get() const
01127 {
01128         return celse;
01129 }
01130 
01131 /*!
01132    \param[in] x The new value to set ss_if_stmt::celse to.
01133    \author lsg
01134  */
01135 void ss_if_stmt::celse_set(const ptr< ss_compound_stmt > & x)
01136 {
01137         ss_if_stmt::celse = x;
01138 }
01139 
01140 void ss_if_stmt::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
01141 {
01142         return v->visit_ss_if_stmt( this );
01143 }
01144 
01145 /*!
01146    This factory method for class ss_if_stmt takes values of all fields as arguments.
01147    \author lsg
01148  */
01149 ptr< ss_if_stmt > ss_if_stmt::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01150                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01151                 ptr< ss_compound_stmt > a__ss_statement__parent,
01152                 ptr< ss_sp > a__ss_statement__psp,
01153                 ptr< ss_sp > a__ss_statement__nsp,
01154                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01155                 ptr< ss_expression > a__ss_if_stmt__condition,
01156                 ptr< ss_compound_stmt > a__ss_if_stmt__cthen,
01157                 ptr< ss_compound_stmt > a__ss_if_stmt__celse)
01158 {
01159         return ptr< ss_if_stmt > ( new ss_if_stmt(a__ss_base_with_location__location,
01160                 a__ss_statement__labels,
01161                 a__ss_statement__parent,
01162                 a__ss_statement__psp,
01163                 a__ss_statement__nsp,
01164                 a__ss_statement__sequence_points,
01165                 a__ss_if_stmt__condition,
01166                 a__ss_if_stmt__cthen,
01167                 a__ss_if_stmt__celse) );
01168 }
01169 
01170 /*!
01171    Generated constructor for class ss_if_stmt.
01172    \author lsg
01173  */
01174 ss_if_stmt::ss_if_stmt (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01175                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01176                 ptr< ss_compound_stmt > a__ss_statement__parent,
01177                 ptr< ss_sp > a__ss_statement__psp,
01178                 ptr< ss_sp > a__ss_statement__nsp,
01179                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01180                 ptr< ss_expression > a__ss_if_stmt__condition,
01181                 ptr< ss_compound_stmt > a__ss_if_stmt__cthen,
01182                 ptr< ss_compound_stmt > a__ss_if_stmt__celse)
01183         : ss_statement(a__ss_base_with_location__location,
01184                 a__ss_statement__labels,
01185                 a__ss_statement__parent,
01186                 a__ss_statement__psp,
01187                 a__ss_statement__nsp,
01188                 a__ss_statement__sequence_points), condition(checked(a__ss_if_stmt__condition)), cthen(checked(a__ss_if_stmt__cthen)), celse(checked(a__ss_if_stmt__celse))
01189 {}
01190 
01191 ptr< object::reflection_list > ss_if_stmt::reflection_get() const
01192 {
01193         if (!reflection) {
01194                 typedef class_reflection::field_metadata md;
01195                 typedef class_reflection::field_metadata_list mdlist;
01196                 ptr<mdlist> mdl = mdlist::create();
01197                 mdl->push_back( md::create( "condition", "ss_expression" ) );
01198                 mdl->push_back( md::create( "cthen", "ss_compound_stmt" ) );
01199                 mdl->push_back( md::create( "celse", "ss_compound_stmt" ) );
01200                 reflection = reflection_list::create( ss_statement::reflection_get() );
01201                 reflection->push_back( class_reflection::create( "ss_if_stmt", mdl ) );
01202         }
01203         return reflection;
01204 }
01205 
01206 ptr< object::field_list_list > ss_if_stmt::field_values_get() const
01207 {
01208         ptr < field_list_list > result = ss_statement::field_values_get();
01209         result->push_back( value_list::create() );
01210         result->back()->push_back( this->condition );
01211         result->push_back( value_list::create() );
01212         result->back()->push_back( this->cthen );
01213         result->push_back( value_list::create() );
01214         result->back()->push_back( this->celse );
01215         return result;
01216 }
01217 
01218 
01219 /*!
01220    Marking routine is used for garbage collection.
01221    \author lsg
01222  */
01223 void ss_if_stmt::gc_mark()
01224 {
01225         ss_statement::gc_mark();
01226 }
01227 
01228 // End of class ss_if_stmt.
01229 
01230 // ------------- Class ss_catch follows. -------------
01231 
01232 /*!
01233    \returns The value of ss_catch::body.
01234    \author lsg
01235  */
01236 ptr< ss_compound_stmt > ss_catch::body_get() const
01237 {
01238         return body;
01239 }
01240 
01241 /*!
01242    \param[in] x The new value to set ss_catch::body to.
01243    \author lsg
01244  */
01245 void ss_catch::body_set(const ptr< ss_compound_stmt > & x)
01246 {
01247         ss_catch::body = x;
01248 }
01249 
01250 /*!
01251    \returns The value of ss_catch::decl.
01252    \author lsg
01253  */
01254 ptr< ss_declaration > ss_catch::decl_get() const
01255 {
01256         return decl;
01257 }
01258 
01259 /*!
01260    \param[in] x The new value to set ss_catch::decl to.
01261    \author lsg
01262  */
01263 void ss_catch::decl_set(const ptr< ss_declaration > & x)
01264 {
01265         ss_catch::decl = x;
01266 }
01267 
01268 void ss_catch::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
01269 {
01270         return v->visit_ss_catch( this );
01271 }
01272 
01273 /*!
01274    This factory method for class ss_catch takes values of all fields as arguments.
01275    \author lsg
01276  */
01277 ptr< ss_catch > ss_catch::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01278                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01279                 ptr< ss_compound_stmt > a__ss_statement__parent,
01280                 ptr< ss_sp > a__ss_statement__psp,
01281                 ptr< ss_sp > a__ss_statement__nsp,
01282                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01283                 ptr< ss_compound_stmt > a__ss_catch__body,
01284                 ptr< ss_declaration > a__ss_catch__decl)
01285 {
01286         return ptr< ss_catch > ( new ss_catch(a__ss_base_with_location__location,
01287                 a__ss_statement__labels,
01288                 a__ss_statement__parent,
01289                 a__ss_statement__psp,
01290                 a__ss_statement__nsp,
01291                 a__ss_statement__sequence_points,
01292                 a__ss_catch__body,
01293                 a__ss_catch__decl) );
01294 }
01295 
01296 /*!
01297    Generated constructor for class ss_catch.
01298    \author lsg
01299  */
01300 ss_catch::ss_catch (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01301                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01302                 ptr< ss_compound_stmt > a__ss_statement__parent,
01303                 ptr< ss_sp > a__ss_statement__psp,
01304                 ptr< ss_sp > a__ss_statement__nsp,
01305                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01306                 ptr< ss_compound_stmt > a__ss_catch__body,
01307                 ptr< ss_declaration > a__ss_catch__decl)
01308         : ss_statement(a__ss_base_with_location__location,
01309                 a__ss_statement__labels,
01310                 a__ss_statement__parent,
01311                 a__ss_statement__psp,
01312                 a__ss_statement__nsp,
01313                 a__ss_statement__sequence_points), body(checked(a__ss_catch__body)), decl(checked(a__ss_catch__decl))
01314 {}
01315 
01316 ptr< object::reflection_list > ss_catch::reflection_get() const
01317 {
01318         if (!reflection) {
01319                 typedef class_reflection::field_metadata md;
01320                 typedef class_reflection::field_metadata_list mdlist;
01321                 ptr<mdlist> mdl = mdlist::create();
01322                 mdl->push_back( md::create( "body", "ss_compound_stmt" ) );
01323                 mdl->push_back( md::create( "decl", "ss_declaration" ) );
01324                 reflection = reflection_list::create( ss_statement::reflection_get() );
01325                 reflection->push_back( class_reflection::create( "ss_catch", mdl ) );
01326         }
01327         return reflection;
01328 }
01329 
01330 ptr< object::field_list_list > ss_catch::field_values_get() const
01331 {
01332         ptr < field_list_list > result = ss_statement::field_values_get();
01333         result->push_back( value_list::create() );
01334         result->back()->push_back( this->body );
01335         result->push_back( value_list::create() );
01336         result->back()->push_back( this->decl );
01337         return result;
01338 }
01339 
01340 
01341 /*!
01342    Marking routine is used for garbage collection.
01343    \author lsg
01344  */
01345 void ss_catch::gc_mark()
01346 {
01347         ss_statement::gc_mark();
01348 }
01349 
01350 // End of class ss_catch.
01351 
01352 // ------------- Class ss_breakable_stmt follows. -------------
01353 
01354 /*!
01355    \returns The value of ss_breakable_stmt::body.
01356    \author lsg
01357  */
01358 ptr< ss_compound_stmt > ss_breakable_stmt::body_get() const
01359 {
01360         return body;
01361 }
01362 
01363 /*!
01364    \param[in] x The new value to set ss_breakable_stmt::body to.
01365    \author lsg
01366  */
01367 void ss_breakable_stmt::body_set(const ptr< ss_compound_stmt > & x)
01368 {
01369         ss_breakable_stmt::body = x;
01370 }
01371 
01372 /*!
01373    \returns The value of ss_breakable_stmt::condition.
01374    \author lsg
01375  */
01376 ptr< ss_expression > ss_breakable_stmt::condition_get() const
01377 {
01378         return condition;
01379 }
01380 
01381 /*!
01382    \param[in] x The new value to set ss_breakable_stmt::condition to.
01383    \author lsg
01384  */
01385 void ss_breakable_stmt::condition_set(const ptr< ss_expression > & x)
01386 {
01387         ss_breakable_stmt::condition = x;
01388 }
01389 
01390 /*!
01391    Generated constructor for class ss_breakable_stmt.
01392    \author lsg
01393  */
01394 ss_breakable_stmt::ss_breakable_stmt (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01395                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01396                 ptr< ss_compound_stmt > a__ss_statement__parent,
01397                 ptr< ss_sp > a__ss_statement__psp,
01398                 ptr< ss_sp > a__ss_statement__nsp,
01399                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01400                 ptr< ss_compound_stmt > a__ss_breakable_stmt__body,
01401                 ptr< ss_expression > a__ss_breakable_stmt__condition)
01402         : ss_statement(a__ss_base_with_location__location,
01403                 a__ss_statement__labels,
01404                 a__ss_statement__parent,
01405                 a__ss_statement__psp,
01406                 a__ss_statement__nsp,
01407                 a__ss_statement__sequence_points), body(checked(a__ss_breakable_stmt__body)), condition(checked(a__ss_breakable_stmt__condition))
01408 {}
01409 
01410 ptr< object::reflection_list > ss_breakable_stmt::reflection_get() const
01411 {
01412         if (!reflection) {
01413                 typedef class_reflection::field_metadata md;
01414                 typedef class_reflection::field_metadata_list mdlist;
01415                 ptr<mdlist> mdl = mdlist::create();
01416                 mdl->push_back( md::create( "body", "ss_compound_stmt" ) );
01417                 mdl->push_back( md::create( "condition", "ss_expression" ) );
01418                 reflection = reflection_list::create( ss_statement::reflection_get() );
01419                 reflection->push_back( class_reflection::create( "ss_breakable_stmt", mdl ) );
01420         }
01421         return reflection;
01422 }
01423 
01424 ptr< object::field_list_list > ss_breakable_stmt::field_values_get() const
01425 {
01426         ptr < field_list_list > result = ss_statement::field_values_get();
01427         result->push_back( value_list::create() );
01428         result->back()->push_back( this->body );
01429         result->push_back( value_list::create() );
01430         result->back()->push_back( this->condition );
01431         return result;
01432 }
01433 
01434 
01435 /*!
01436    Marking routine is used for garbage collection.
01437    \author lsg
01438  */
01439 void ss_breakable_stmt::gc_mark()
01440 {
01441         ss_statement::gc_mark();
01442 }
01443 
01444 // End of class ss_breakable_stmt.
01445 
01446 // ------------- Class ss_switch_stmt follows. -------------
01447 
01448 /*!
01449    \returns The value of ss_switch_stmt::case_labels.
01450    \author lsg
01451  */
01452 ptr< ::lestes::std::list< srp< ss_case_label > > > ss_switch_stmt::case_labels_get() const
01453 {
01454         return case_labels;
01455 }
01456 
01457 /*!
01458    \param[in] x The new value to set ss_switch_stmt::case_labels to.
01459    \author lsg
01460  */
01461 void ss_switch_stmt::case_labels_set(const ptr< ::lestes::std::list< srp< ss_case_label > > > & x)
01462 {
01463         ss_switch_stmt::case_labels = x;
01464 }
01465 
01466 /*!
01467    \returns The value of ss_switch_stmt::default_label.
01468    \author lsg
01469  */
01470 ptr< ss_default_label > ss_switch_stmt::default_label_get() const
01471 {
01472         return default_label;
01473 }
01474 
01475 /*!
01476    \param[in] x The new value to set ss_switch_stmt::default_label to.
01477    \author lsg
01478  */
01479 void ss_switch_stmt::default_label_set(const ptr< ss_default_label > & x)
01480 {
01481         ss_switch_stmt::default_label = x;
01482 }
01483 
01484 void ss_switch_stmt::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
01485 {
01486         return v->visit_ss_switch_stmt( this );
01487 }
01488 
01489 /*!
01490    This factory method for class ss_switch_stmt takes values of all fields as arguments.
01491    \author lsg
01492  */
01493 ptr< ss_switch_stmt > ss_switch_stmt::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01494                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01495                 ptr< ss_compound_stmt > a__ss_statement__parent,
01496                 ptr< ss_sp > a__ss_statement__psp,
01497                 ptr< ss_sp > a__ss_statement__nsp,
01498                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01499                 ptr< ss_compound_stmt > a__ss_breakable_stmt__body,
01500                 ptr< ss_expression > a__ss_breakable_stmt__condition,
01501                 ptr< ::lestes::std::list< srp< ss_case_label > > > a__ss_switch_stmt__case_labels,
01502                 ptr< ss_default_label > a__ss_switch_stmt__default_label)
01503 {
01504         return ptr< ss_switch_stmt > ( new ss_switch_stmt(a__ss_base_with_location__location,
01505                 a__ss_statement__labels,
01506                 a__ss_statement__parent,
01507                 a__ss_statement__psp,
01508                 a__ss_statement__nsp,
01509                 a__ss_statement__sequence_points,
01510                 a__ss_breakable_stmt__body,
01511                 a__ss_breakable_stmt__condition,
01512                 a__ss_switch_stmt__case_labels,
01513                 a__ss_switch_stmt__default_label) );
01514 }
01515 
01516 /*!
01517    Generated constructor for class ss_switch_stmt.
01518    \author lsg
01519  */
01520 ss_switch_stmt::ss_switch_stmt (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01521                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01522                 ptr< ss_compound_stmt > a__ss_statement__parent,
01523                 ptr< ss_sp > a__ss_statement__psp,
01524                 ptr< ss_sp > a__ss_statement__nsp,
01525                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01526                 ptr< ss_compound_stmt > a__ss_breakable_stmt__body,
01527                 ptr< ss_expression > a__ss_breakable_stmt__condition,
01528                 ptr< ::lestes::std::list< srp< ss_case_label > > > a__ss_switch_stmt__case_labels,
01529                 ptr< ss_default_label > a__ss_switch_stmt__default_label)
01530         : ss_breakable_stmt(a__ss_base_with_location__location,
01531                 a__ss_statement__labels,
01532                 a__ss_statement__parent,
01533                 a__ss_statement__psp,
01534                 a__ss_statement__nsp,
01535                 a__ss_statement__sequence_points,
01536                 a__ss_breakable_stmt__body,
01537                 a__ss_breakable_stmt__condition), case_labels(checked(a__ss_switch_stmt__case_labels)), default_label(checked(a__ss_switch_stmt__default_label))
01538 {}
01539 
01540 ptr< object::reflection_list > ss_switch_stmt::reflection_get() const
01541 {
01542         if (!reflection) {
01543                 typedef class_reflection::field_metadata md;
01544                 typedef class_reflection::field_metadata_list mdlist;
01545                 ptr<mdlist> mdl = mdlist::create();
01546                 mdl->push_back( md::create( "case_labels", "list&lt; srp&lt; ss_case_label &gt; &gt;" ) );
01547                 mdl->push_back( md::create( "default_label", "ss_default_label" ) );
01548                 reflection = reflection_list::create( ss_breakable_stmt::reflection_get() );
01549                 reflection->push_back( class_reflection::create( "ss_switch_stmt", mdl ) );
01550         }
01551         return reflection;
01552 }
01553 
01554 ptr< object::field_list_list > ss_switch_stmt::field_values_get() const
01555 {
01556         ptr < field_list_list > result = ss_breakable_stmt::field_values_get();
01557         result->push_back( value_list::create() );
01558         result->back()->push_back( this->case_labels );
01559         result->push_back( value_list::create() );
01560         result->back()->push_back( this->default_label );
01561         return result;
01562 }
01563 
01564 
01565 /*!
01566    Marking routine is used for garbage collection.
01567    \author lsg
01568  */
01569 void ss_switch_stmt::gc_mark()
01570 {
01571         ss_breakable_stmt::gc_mark();
01572 }
01573 
01574 // End of class ss_switch_stmt.
01575 
01576 // ------------- Class ss_iteration_stmt follows. -------------
01577 
01578 /*!
01579    Generated constructor for class ss_iteration_stmt.
01580    \author lsg
01581  */
01582 ss_iteration_stmt::ss_iteration_stmt (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01583                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01584                 ptr< ss_compound_stmt > a__ss_statement__parent,
01585                 ptr< ss_sp > a__ss_statement__psp,
01586                 ptr< ss_sp > a__ss_statement__nsp,
01587                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01588                 ptr< ss_compound_stmt > a__ss_breakable_stmt__body,
01589                 ptr< ss_expression > a__ss_breakable_stmt__condition)
01590         : ss_breakable_stmt(a__ss_base_with_location__location,
01591                 a__ss_statement__labels,
01592                 a__ss_statement__parent,
01593                 a__ss_statement__psp,
01594                 a__ss_statement__nsp,
01595                 a__ss_statement__sequence_points,
01596                 a__ss_breakable_stmt__body,
01597                 a__ss_breakable_stmt__condition)
01598 {}
01599 
01600 ptr< object::reflection_list > ss_iteration_stmt::reflection_get() const
01601 {
01602         if (!reflection) {
01603                 typedef class_reflection::field_metadata md;
01604                 typedef class_reflection::field_metadata_list mdlist;
01605                 ptr<mdlist> mdl = mdlist::create();
01606                 reflection = reflection_list::create( ss_breakable_stmt::reflection_get() );
01607                 reflection->push_back( class_reflection::create( "ss_iteration_stmt", mdl ) );
01608         }
01609         return reflection;
01610 }
01611 
01612 ptr< object::field_list_list > ss_iteration_stmt::field_values_get() const
01613 {
01614         ptr < field_list_list > result = ss_breakable_stmt::field_values_get();
01615         return result;
01616 }
01617 
01618 
01619 /*!
01620    Marking routine is used for garbage collection.
01621    \author lsg
01622  */
01623 void ss_iteration_stmt::gc_mark()
01624 {
01625         ss_breakable_stmt::gc_mark();
01626 }
01627 
01628 // End of class ss_iteration_stmt.
01629 
01630 // ------------- Class ss_do follows. -------------
01631 
01632 void ss_do::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
01633 {
01634         return v->visit_ss_do( this );
01635 }
01636 
01637 /*!
01638    This factory method for class ss_do takes values of all fields as arguments.
01639    \author lsg
01640  */
01641 ptr< ss_do > ss_do::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01642                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01643                 ptr< ss_compound_stmt > a__ss_statement__parent,
01644                 ptr< ss_sp > a__ss_statement__psp,
01645                 ptr< ss_sp > a__ss_statement__nsp,
01646                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01647                 ptr< ss_compound_stmt > a__ss_breakable_stmt__body,
01648                 ptr< ss_expression > a__ss_breakable_stmt__condition)
01649 {
01650         return ptr< ss_do > ( new ss_do(a__ss_base_with_location__location,
01651                 a__ss_statement__labels,
01652                 a__ss_statement__parent,
01653                 a__ss_statement__psp,
01654                 a__ss_statement__nsp,
01655                 a__ss_statement__sequence_points,
01656                 a__ss_breakable_stmt__body,
01657                 a__ss_breakable_stmt__condition) );
01658 }
01659 
01660 /*!
01661    Generated constructor for class ss_do.
01662    \author lsg
01663  */
01664 ss_do::ss_do (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01665                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01666                 ptr< ss_compound_stmt > a__ss_statement__parent,
01667                 ptr< ss_sp > a__ss_statement__psp,
01668                 ptr< ss_sp > a__ss_statement__nsp,
01669                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01670                 ptr< ss_compound_stmt > a__ss_breakable_stmt__body,
01671                 ptr< ss_expression > a__ss_breakable_stmt__condition)
01672         : ss_iteration_stmt(a__ss_base_with_location__location,
01673                 a__ss_statement__labels,
01674                 a__ss_statement__parent,
01675                 a__ss_statement__psp,
01676                 a__ss_statement__nsp,
01677                 a__ss_statement__sequence_points,
01678                 a__ss_breakable_stmt__body,
01679                 a__ss_breakable_stmt__condition)
01680 {}
01681 
01682 ptr< object::reflection_list > ss_do::reflection_get() const
01683 {
01684         if (!reflection) {
01685                 typedef class_reflection::field_metadata md;
01686                 typedef class_reflection::field_metadata_list mdlist;
01687                 ptr<mdlist> mdl = mdlist::create();
01688                 reflection = reflection_list::create( ss_iteration_stmt::reflection_get() );
01689                 reflection->push_back( class_reflection::create( "ss_do", mdl ) );
01690         }
01691         return reflection;
01692 }
01693 
01694 ptr< object::field_list_list > ss_do::field_values_get() const
01695 {
01696         ptr < field_list_list > result = ss_iteration_stmt::field_values_get();
01697         return result;
01698 }
01699 
01700 
01701 /*!
01702    Marking routine is used for garbage collection.
01703    \author lsg
01704  */
01705 void ss_do::gc_mark()
01706 {
01707         ss_iteration_stmt::gc_mark();
01708 }
01709 
01710 // End of class ss_do.
01711 
01712 // ------------- Class ss_while follows. -------------
01713 
01714 void ss_while::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
01715 {
01716         return v->visit_ss_while( this );
01717 }
01718 
01719 /*!
01720    This factory method for class ss_while takes values of all fields as arguments.
01721    \author lsg
01722  */
01723 ptr< ss_while > ss_while::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01724                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01725                 ptr< ss_compound_stmt > a__ss_statement__parent,
01726                 ptr< ss_sp > a__ss_statement__psp,
01727                 ptr< ss_sp > a__ss_statement__nsp,
01728                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01729                 ptr< ss_compound_stmt > a__ss_breakable_stmt__body,
01730                 ptr< ss_expression > a__ss_breakable_stmt__condition)
01731 {
01732         return ptr< ss_while > ( new ss_while(a__ss_base_with_location__location,
01733                 a__ss_statement__labels,
01734                 a__ss_statement__parent,
01735                 a__ss_statement__psp,
01736                 a__ss_statement__nsp,
01737                 a__ss_statement__sequence_points,
01738                 a__ss_breakable_stmt__body,
01739                 a__ss_breakable_stmt__condition) );
01740 }
01741 
01742 /*!
01743    Generated constructor for class ss_while.
01744    \author lsg
01745  */
01746 ss_while::ss_while (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01747                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01748                 ptr< ss_compound_stmt > a__ss_statement__parent,
01749                 ptr< ss_sp > a__ss_statement__psp,
01750                 ptr< ss_sp > a__ss_statement__nsp,
01751                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01752                 ptr< ss_compound_stmt > a__ss_breakable_stmt__body,
01753                 ptr< ss_expression > a__ss_breakable_stmt__condition)
01754         : ss_iteration_stmt(a__ss_base_with_location__location,
01755                 a__ss_statement__labels,
01756                 a__ss_statement__parent,
01757                 a__ss_statement__psp,
01758                 a__ss_statement__nsp,
01759                 a__ss_statement__sequence_points,
01760                 a__ss_breakable_stmt__body,
01761                 a__ss_breakable_stmt__condition)
01762 {}
01763 
01764 ptr< object::reflection_list > ss_while::reflection_get() const
01765 {
01766         if (!reflection) {
01767                 typedef class_reflection::field_metadata md;
01768                 typedef class_reflection::field_metadata_list mdlist;
01769                 ptr<mdlist> mdl = mdlist::create();
01770                 reflection = reflection_list::create( ss_iteration_stmt::reflection_get() );
01771                 reflection->push_back( class_reflection::create( "ss_while", mdl ) );
01772         }
01773         return reflection;
01774 }
01775 
01776 ptr< object::field_list_list > ss_while::field_values_get() const
01777 {
01778         ptr < field_list_list > result = ss_iteration_stmt::field_values_get();
01779         return result;
01780 }
01781 
01782 
01783 /*!
01784    Marking routine is used for garbage collection.
01785    \author lsg
01786  */
01787 void ss_while::gc_mark()
01788 {
01789         ss_iteration_stmt::gc_mark();
01790 }
01791 
01792 // End of class ss_while.
01793 
01794 // ------------- Class ss_for follows. -------------
01795 
01796 /*!
01797    \returns The value of ss_for::iteration.
01798    \author lsg
01799  */
01800 ptr< ss_expr_stmt > ss_for::iteration_get() const
01801 {
01802         return iteration;
01803 }
01804 
01805 /*!
01806    \param[in] x The new value to set ss_for::iteration to.
01807    \author lsg
01808  */
01809 void ss_for::iteration_set(const ptr< ss_expr_stmt > & x)
01810 {
01811         ss_for::iteration = x;
01812 }
01813 
01814 void ss_for::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
01815 {
01816         return v->visit_ss_for( this );
01817 }
01818 
01819 /*!
01820    This factory method for class ss_for takes values of all fields as arguments.
01821    \author lsg
01822  */
01823 ptr< ss_for > ss_for::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01824                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01825                 ptr< ss_compound_stmt > a__ss_statement__parent,
01826                 ptr< ss_sp > a__ss_statement__psp,
01827                 ptr< ss_sp > a__ss_statement__nsp,
01828                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01829                 ptr< ss_compound_stmt > a__ss_breakable_stmt__body,
01830                 ptr< ss_expression > a__ss_breakable_stmt__condition,
01831                 ptr< ss_expr_stmt > a__ss_for__iteration)
01832 {
01833         return ptr< ss_for > ( new ss_for(a__ss_base_with_location__location,
01834                 a__ss_statement__labels,
01835                 a__ss_statement__parent,
01836                 a__ss_statement__psp,
01837                 a__ss_statement__nsp,
01838                 a__ss_statement__sequence_points,
01839                 a__ss_breakable_stmt__body,
01840                 a__ss_breakable_stmt__condition,
01841                 a__ss_for__iteration) );
01842 }
01843 
01844 /*!
01845    Generated constructor for class ss_for.
01846    \author lsg
01847  */
01848 ss_for::ss_for (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01849                 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01850                 ptr< ss_compound_stmt > a__ss_statement__parent,
01851                 ptr< ss_sp > a__ss_statement__psp,
01852                 ptr< ss_sp > a__ss_statement__nsp,
01853                 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01854                 ptr< ss_compound_stmt > a__ss_breakable_stmt__body,
01855                 ptr< ss_expression > a__ss_breakable_stmt__condition,
01856                 ptr< ss_expr_stmt > a__ss_for__iteration)
01857         : ss_iteration_stmt(a__ss_base_with_location__location,
01858                 a__ss_statement__labels,
01859                 a__ss_statement__parent,
01860                 a__ss_statement__psp,
01861                 a__ss_statement__nsp,
01862                 a__ss_statement__sequence_points,
01863                 a__ss_breakable_stmt__body,
01864                 a__ss_breakable_stmt__condition), iteration(a__ss_for__iteration)
01865 {}
01866 
01867 ptr< object::reflection_list > ss_for::reflection_get() const
01868 {
01869         if (!reflection) {
01870                 typedef class_reflection::field_metadata md;
01871                 typedef class_reflection::field_metadata_list mdlist;
01872                 ptr<mdlist> mdl = mdlist::create();
01873                 mdl->push_back( md::create( "iteration", "ss_expr_stmt" ) );
01874                 reflection = reflection_list::create( ss_iteration_stmt::reflection_get() );
01875                 reflection->push_back( class_reflection::create( "ss_for", mdl ) );
01876         }
01877         return reflection;
01878 }
01879 
01880 ptr< object::field_list_list > ss_for::field_values_get() const
01881 {
01882         ptr < field_list_list > result = ss_iteration_stmt::field_values_get();
01883         result->push_back( value_list::create() );
01884         result->back()->push_back( this->iteration );
01885         return result;
01886 }
01887 
01888 
01889 /*!
01890    Marking routine is used for garbage collection.
01891    \author lsg
01892  */
01893 void ss_for::gc_mark()
01894 {
01895         ss_iteration_stmt::gc_mark();
01896 }
01897 
01898 // End of class ss_for.
01899 
01900 
01901 // static data members follow 
01902 bool ss_statement::parent_set_ward = false;
01903 ptr<object::reflection_list> ss_statement::reflection = reflection;
01904 ptr< ss_compound_stmt > ss_compound_stmt::the_root_instance = the_root_instance;
01905 ptr<object::reflection_list> ss_compound_stmt::reflection = reflection;
01906 ptr<object::reflection_list> ss_decl_stmt::reflection = reflection;
01907 ptr<object::reflection_list> ss_try::reflection = reflection;
01908 ptr<object::reflection_list> ss_break::reflection = reflection;
01909 ptr<object::reflection_list> ss_return::reflection = reflection;
01910 ptr<object::reflection_list> ss_goto::reflection = reflection;
01911 ptr<object::reflection_list> ss_expr_stmt::reflection = reflection;
01912 ptr<object::reflection_list> ss_continue::reflection = reflection;
01913 ptr<object::reflection_list> ss_if_stmt::reflection = reflection;
01914 ptr<object::reflection_list> ss_catch::reflection = reflection;
01915 ptr<object::reflection_list> ss_breakable_stmt::reflection = reflection;
01916 ptr<object::reflection_list> ss_switch_stmt::reflection = reflection;
01917 ptr<object::reflection_list> ss_iteration_stmt::reflection = reflection;
01918 ptr<object::reflection_list> ss_do::reflection = reflection;
01919 ptr<object::reflection_list> ss_while::reflection = reflection;
01920 ptr<object::reflection_list> ss_for::reflection = reflection;
01921 
01922 end_package(sem);
01923 end_package(cplus);
01924 end_package(lang);
01925 end_package(lestes);
01926 

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