sa_statements.g.cc

Go to the documentation of this file.
00001 // This file is automatically generated, do not edit.
00002 
00003 /*!
00004         \file
00005         \brief AS to SS statements transformation
00006         \author egg
00007 */
00008 
00009 #include <lestes/lang/cplus/sem/as_expr.g.hh>
00010 #include <lestes/lang/cplus/sem/ss_type.g.hh>
00011 #include <lestes/lang/cplus/sem/ss_statement.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/sa_statements.g.hh>
00018 
00019 package(lestes);
00020 package(lang);
00021 package(cplus);
00022 package(sem);
00023 
00024 
00025 // ------------- Class sa_statements follows. -------------
00026 
00027 /*!
00028    \returns The value of sa_statements::current_function.
00029    \author lsg
00030  */
00031 ptr< ss_function_declaration > sa_statements::current_function_get() const
00032 {
00033         return current_function;
00034 }
00035 
00036 /*!
00037    \param[in] x The new value to set sa_statements::current_function to.
00038    \author lsg
00039  */
00040 void sa_statements::current_function_set(const ptr< ss_function_declaration > & x)
00041 {
00042         sa_statements::current_function = x;
00043 }
00044 
00045 /*!
00046    \returns The value of sa_statements::last_declaration.
00047    \author lsg
00048  */
00049 ptr< ss_declaration > sa_statements::last_declaration_get() const
00050 {
00051         return last_declaration;
00052 }
00053 
00054 /*!
00055    \param[in] x The new value to set sa_statements::last_declaration to.
00056    \author lsg
00057  */
00058 void sa_statements::last_declaration_set(const ptr< ss_declaration > & x)
00059 {
00060         sa_statements::last_declaration = x;
00061 }
00062 
00063 /*!
00064    Generated constructor for class sa_statements.
00065    \author lsg
00066  */
00067 sa_statements::sa_statements (ptr< ss_function_declaration > a__sa_statements__current_function,
00068                 ptr< ss_declaration > a__sa_statements__last_declaration)
00069         : object(), current_function(a__sa_statements__current_function), last_declaration(a__sa_statements__last_declaration)
00070 {}
00071 
00072 ptr< object::reflection_list > sa_statements::reflection_get() const
00073 {
00074         if (!reflection) {
00075                 typedef class_reflection::field_metadata md;
00076                 typedef class_reflection::field_metadata_list mdlist;
00077                 ptr<mdlist> mdl = mdlist::create();
00078                 mdl->push_back( md::create( "current_function", "ss_function_declaration" ) );
00079                 mdl->push_back( md::create( "last_declaration", "ss_declaration" ) );
00080                 reflection = reflection_list::create( ::lestes::std::object::reflection_get() );
00081                 reflection->push_back( class_reflection::create( "sa_statements", mdl ) );
00082         }
00083         return reflection;
00084 }
00085 
00086 ptr< object::field_list_list > sa_statements::field_values_get() const
00087 {
00088         ptr < field_list_list > result = ::lestes::std::object::field_values_get();
00089         result->push_back( value_list::create() );
00090         result->back()->push_back( this->current_function );
00091         result->push_back( value_list::create() );
00092         result->back()->push_back( this->last_declaration );
00093         return result;
00094 }
00095 
00096 
00097 /*!
00098    Marking routine is used for garbage collection.
00099    \author lsg
00100  */
00101 void sa_statements::gc_mark()
00102 {
00103 	::lestes::std::object::gc_mark();
00104 }
00105 
00106 // End of class sa_statements.
00107 
00108 // ------------- Class decl_stmt_listener follows. -------------
00109 
00110 /*!
00111    Static field decl_stmt_listener::the_instance.
00112    \author lsg
00113  */
00114 ptr< decl_stmt_listener > decl_stmt_listener::the_instance = the_instance;
00115 
00116 /*!
00117    Generated instance() method for singleton class decl_stmt_listener.
00118    \author lsg
00119  */
00120 ptr< decl_stmt_listener > decl_stmt_listener::instance()
00121 {
00122          return the_instance ? the_instance : the_instance = new decl_stmt_listener();
00123 }
00124 
00125 /*!
00126    Generated constructor for class decl_stmt_listener.
00127    \author lsg
00128  */
00129 decl_stmt_listener::decl_stmt_listener ()
00130         : declaration_broadcast_listener()
00131 {}
00132 
00133 ptr< object::reflection_list > decl_stmt_listener::reflection_get() const
00134 {
00135         if (!reflection) {
00136                 typedef class_reflection::field_metadata md;
00137                 typedef class_reflection::field_metadata_list mdlist;
00138                 ptr<mdlist> mdl = mdlist::create();
00139                 reflection = reflection_list::create( declaration_broadcast_listener::reflection_get() );
00140                 reflection->push_back( class_reflection::create( "decl_stmt_listener", mdl ) );
00141         }
00142         return reflection;
00143 }
00144 
00145 ptr< object::field_list_list > decl_stmt_listener::field_values_get() const
00146 {
00147         ptr < field_list_list > result = declaration_broadcast_listener::field_values_get();
00148         return result;
00149 }
00150 
00151 
00152 /*!
00153    Marking routine is used for garbage collection.
00154    \author lsg
00155  */
00156 void decl_stmt_listener::gc_mark()
00157 {
00158         declaration_broadcast_listener::gc_mark();
00159 }
00160 
00161 // End of class decl_stmt_listener.
00162 
00163 // ------------- Class last_declaration_memorizer follows. -------------
00164 
00165 /*!
00166    Static field last_declaration_memorizer::the_instance.
00167    \author lsg
00168  */
00169 ptr< last_declaration_memorizer > last_declaration_memorizer::the_instance = the_instance;
00170 
00171 /*!
00172    Generated instance() method for singleton class last_declaration_memorizer.
00173    \author lsg
00174  */
00175 ptr< last_declaration_memorizer > last_declaration_memorizer::instance()
00176 {
00177          return the_instance ? the_instance : the_instance = new last_declaration_memorizer();
00178 }
00179 
00180 /*!
00181    Generated constructor for class last_declaration_memorizer.
00182    \author lsg
00183  */
00184 last_declaration_memorizer::last_declaration_memorizer ()
00185         : ss_declaration_default_visitor()
00186 {}
00187 
00188 ptr< object::reflection_list > last_declaration_memorizer::reflection_get() const
00189 {
00190         if (!reflection) {
00191                 typedef class_reflection::field_metadata md;
00192                 typedef class_reflection::field_metadata_list mdlist;
00193                 ptr<mdlist> mdl = mdlist::create();
00194                 reflection = reflection_list::create( ss_declaration_default_visitor::reflection_get() );
00195                 reflection->push_back( class_reflection::create( "last_declaration_memorizer", mdl ) );
00196         }
00197         return reflection;
00198 }
00199 
00200 ptr< object::field_list_list > last_declaration_memorizer::field_values_get() const
00201 {
00202         ptr < field_list_list > result = ss_declaration_default_visitor::field_values_get();
00203         return result;
00204 }
00205 
00206 
00207 /*!
00208    Marking routine is used for garbage collection.
00209    \author lsg
00210  */
00211 void last_declaration_memorizer::gc_mark()
00212 {
00213         ss_declaration_default_visitor::gc_mark();
00214 }
00215 
00216 // End of class last_declaration_memorizer.
00217 
00218 // ------------- Class initializer_clause_converter follows. -------------
00219 
00220 /*!
00221    \returns The value of initializer_clause_converter::psp.
00222    \author lsg
00223  */
00224 ptr< ss_sp > initializer_clause_converter::psp_get() const
00225 {
00226         return psp;
00227 }
00228 
00229 /*!
00230    \param[in] x The new value to set initializer_clause_converter::psp to.
00231    \author lsg
00232  */
00233 void initializer_clause_converter::psp_set(const ptr< ss_sp > & x)
00234 {
00235         initializer_clause_converter::psp = x;
00236 }
00237 
00238 /*!
00239    \returns The value of initializer_clause_converter::nsp.
00240    \author lsg
00241  */
00242 ptr< ss_sp > initializer_clause_converter::nsp_get() const
00243 {
00244         return nsp;
00245 }
00246 
00247 /*!
00248    \param[in] x The new value to set initializer_clause_converter::nsp to.
00249    \author lsg
00250  */
00251 void initializer_clause_converter::nsp_set(const ptr< ss_sp > & x)
00252 {
00253         initializer_clause_converter::nsp = x;
00254 }
00255 
00256 /*!
00257    \returns The value of initializer_clause_converter::sps.
00258    \author lsg
00259  */
00260 ptr< ::lestes::std::list< srp< ss_sp > > > initializer_clause_converter::sps_get() const
00261 {
00262         return sps;
00263 }
00264 
00265 /*!
00266    \param[in] x The new value to set initializer_clause_converter::sps to.
00267    \author lsg
00268  */
00269 void initializer_clause_converter::sps_set(const ptr< ::lestes::std::list< srp< ss_sp > > > & x)
00270 {
00271         initializer_clause_converter::sps = x;
00272 }
00273 
00274 /*!
00275    \returns The value of initializer_clause_converter::type.
00276    \author lsg
00277  */
00278 ptr< ss_type > initializer_clause_converter::type_get() const
00279 {
00280         return type;
00281 }
00282 
00283 /*!
00284    \param[in] x The new value to set initializer_clause_converter::type to.
00285    \author lsg
00286  */
00287 void initializer_clause_converter::type_set(const ptr< ss_type > & x)
00288 {
00289         initializer_clause_converter::type = x;
00290 }
00291 
00292 /*!
00293    \returns The value of initializer_clause_converter::result.
00294    \author lsg
00295  */
00296 ptr< expr_list > initializer_clause_converter::result_get() const
00297 {
00298         return result;
00299 }
00300 
00301 /*!
00302    \param[in] x The new value to set initializer_clause_converter::result to.
00303    \author lsg
00304  */
00305 void initializer_clause_converter::result_set(const ptr< expr_list > & x)
00306 {
00307         initializer_clause_converter::result = x;
00308 }
00309 
00310 /*!
00311    This factory method for class initializer_clause_converter takes values of all fields as arguments.
00312    \author lsg
00313  */
00314 ptr< initializer_clause_converter > initializer_clause_converter::create(ptr< ss_sp > a__initializer_clause_converter__psp,
00315                 ptr< ss_sp > a__initializer_clause_converter__nsp,
00316                 ptr< ::lestes::std::list< srp< ss_sp > > > a__initializer_clause_converter__sps,
00317                 ptr< ss_type > a__initializer_clause_converter__type,
00318                 ptr< expr_list > a__initializer_clause_converter__result)
00319 {
00320         return ptr< initializer_clause_converter > ( new initializer_clause_converter(a__initializer_clause_converter__psp,
00321                 a__initializer_clause_converter__nsp,
00322                 a__initializer_clause_converter__sps,
00323                 a__initializer_clause_converter__type,
00324                 a__initializer_clause_converter__result) );
00325 }
00326 
00327 /*!
00328    This factory method for class initializer_clause_converter uses initializers.
00329    \author lsg
00330  */
00331 ptr< initializer_clause_converter > initializer_clause_converter::create(ptr< ss_sp > a__initializer_clause_converter__psp,
00332                 ptr< ss_sp > a__initializer_clause_converter__nsp,
00333                 ptr< ::lestes::std::list< srp< ss_sp > > > a__initializer_clause_converter__sps,
00334                 ptr< ss_type > a__initializer_clause_converter__type)
00335 {
00336         return ptr< initializer_clause_converter > ( new initializer_clause_converter(a__initializer_clause_converter__psp, a__initializer_clause_converter__nsp, a__initializer_clause_converter__sps, a__initializer_clause_converter__type, NULL) );
00337 }
00338 
00339 /*!
00340    Generated constructor for class initializer_clause_converter.
00341    \author lsg
00342  */
00343 initializer_clause_converter::initializer_clause_converter (ptr< ss_sp > a__initializer_clause_converter__psp,
00344                 ptr< ss_sp > a__initializer_clause_converter__nsp,
00345                 ptr< ::lestes::std::list< srp< ss_sp > > > a__initializer_clause_converter__sps,
00346                 ptr< ss_type > a__initializer_clause_converter__type,
00347                 ptr< expr_list > a__initializer_clause_converter__result)
00348         : as_initializer_clause_visitor(), psp(checked(a__initializer_clause_converter__psp)), nsp(checked(a__initializer_clause_converter__nsp)), sps(checked(a__initializer_clause_converter__sps)), type(checked(a__initializer_clause_converter__type)), result(a__initializer_clause_converter__result)
00349 {}
00350 
00351 ptr< object::reflection_list > initializer_clause_converter::reflection_get() const
00352 {
00353         if (!reflection) {
00354                 typedef class_reflection::field_metadata md;
00355                 typedef class_reflection::field_metadata_list mdlist;
00356                 ptr<mdlist> mdl = mdlist::create();
00357                 mdl->push_back( md::create( "psp", "ss_sp" ) );
00358                 mdl->push_back( md::create( "nsp", "ss_sp" ) );
00359                 mdl->push_back( md::create( "sps", "list&lt; srp&lt; ss_sp &gt; &gt;" ) );
00360                 mdl->push_back( md::create( "type", "ss_type" ) );
00361                 mdl->push_back( md::create( "result", "expr_list" ) );
00362                 reflection = reflection_list::create( as_initializer_clause_visitor::reflection_get() );
00363                 reflection->push_back( class_reflection::create( "initializer_clause_converter", mdl ) );
00364         }
00365         return reflection;
00366 }
00367 
00368 ptr< object::field_list_list > initializer_clause_converter::field_values_get() const
00369 {
00370         ptr < field_list_list > result = as_initializer_clause_visitor::field_values_get();
00371         result->push_back( value_list::create() );
00372         result->back()->push_back( this->psp );
00373         result->push_back( value_list::create() );
00374         result->back()->push_back( this->nsp );
00375         result->push_back( value_list::create() );
00376         result->back()->push_back( this->sps );
00377         result->push_back( value_list::create() );
00378         result->back()->push_back( this->type );
00379         result->push_back( value_list::create() );
00380         result->back()->push_back( this->result );
00381         return result;
00382 }
00383 
00384 ptr< expr_list > initializer_clause_converter::process( const ptr< ::lestes::lang::cplus::sem::as_initializer_clause > & o )
00385 {
00386         lassert2( o, "Cannot visit NULL object." );
00387         o->accept_as_initializer_clause_visitor( ptr< as_initializer_clause_visitor >(this) );
00388         return result_get();
00389 }
00390 
00391 
00392 /*!
00393    Marking routine is used for garbage collection.
00394    \author lsg
00395  */
00396 void initializer_clause_converter::gc_mark()
00397 {
00398         as_initializer_clause_visitor::gc_mark();
00399 }
00400 
00401 // End of class initializer_clause_converter.
00402 
00403 // ------------- Class condition_to_expression follows. -------------
00404 
00405 /*!
00406    \returns The value of condition_to_expression::psp.
00407    \author lsg
00408  */
00409 ptr< ss_sp > condition_to_expression::psp_get() const
00410 {
00411         return psp;
00412 }
00413 
00414 /*!
00415    \param[in] x The new value to set condition_to_expression::psp to.
00416    \author lsg
00417  */
00418 void condition_to_expression::psp_set(const ptr< ss_sp > & x)
00419 {
00420         condition_to_expression::psp = x;
00421 }
00422 
00423 /*!
00424    \returns The value of condition_to_expression::nsp.
00425    \author lsg
00426  */
00427 ptr< ss_sp > condition_to_expression::nsp_get() const
00428 {
00429         return nsp;
00430 }
00431 
00432 /*!
00433    \param[in] x The new value to set condition_to_expression::nsp to.
00434    \author lsg
00435  */
00436 void condition_to_expression::nsp_set(const ptr< ss_sp > & x)
00437 {
00438         condition_to_expression::nsp = x;
00439 }
00440 
00441 /*!
00442    \returns The value of condition_to_expression::sps.
00443    \author lsg
00444  */
00445 ptr< ::lestes::std::list< srp< ss_sp > > > condition_to_expression::sps_get() const
00446 {
00447         return sps;
00448 }
00449 
00450 /*!
00451    \param[in] x The new value to set condition_to_expression::sps to.
00452    \author lsg
00453  */
00454 void condition_to_expression::sps_set(const ptr< ::lestes::std::list< srp< ss_sp > > > & x)
00455 {
00456         condition_to_expression::sps = x;
00457 }
00458 
00459 /*!
00460    \returns The value of condition_to_expression::result.
00461    \author lsg
00462  */
00463 ptr< ss_expression > condition_to_expression::result_get() const
00464 {
00465         return result;
00466 }
00467 
00468 /*!
00469    \param[in] x The new value to set condition_to_expression::result to.
00470    \author lsg
00471  */
00472 void condition_to_expression::result_set(const ptr< ss_expression > & x)
00473 {
00474         condition_to_expression::result = x;
00475 }
00476 
00477 /*!
00478    This factory method for class condition_to_expression takes values of all fields as arguments.
00479    \author lsg
00480  */
00481 ptr< condition_to_expression > condition_to_expression::create(ptr< ss_sp > a__condition_to_expression__psp,
00482                 ptr< ss_sp > a__condition_to_expression__nsp,
00483                 ptr< ::lestes::std::list< srp< ss_sp > > > a__condition_to_expression__sps,
00484                 ptr< ss_expression > a__condition_to_expression__result)
00485 {
00486         return ptr< condition_to_expression > ( new condition_to_expression(a__condition_to_expression__psp,
00487                 a__condition_to_expression__nsp,
00488                 a__condition_to_expression__sps,
00489                 a__condition_to_expression__result) );
00490 }
00491 
00492 /*!
00493    This factory method for class condition_to_expression uses initializers.
00494    \author lsg
00495  */
00496 ptr< condition_to_expression > condition_to_expression::create(ptr< ss_sp > a__condition_to_expression__psp,
00497                 ptr< ss_sp > a__condition_to_expression__nsp,
00498                 ptr< ::lestes::std::list< srp< ss_sp > > > a__condition_to_expression__sps)
00499 {
00500         return ptr< condition_to_expression > ( new condition_to_expression(a__condition_to_expression__psp, a__condition_to_expression__nsp, a__condition_to_expression__sps, NULL) );
00501 }
00502 
00503 /*!
00504    Generated constructor for class condition_to_expression.
00505    \author lsg
00506  */
00507 condition_to_expression::condition_to_expression (ptr< ss_sp > a__condition_to_expression__psp,
00508                 ptr< ss_sp > a__condition_to_expression__nsp,
00509                 ptr< ::lestes::std::list< srp< ss_sp > > > a__condition_to_expression__sps,
00510                 ptr< ss_expression > a__condition_to_expression__result)
00511         : as_condition_visitor(), psp(checked(a__condition_to_expression__psp)), nsp(checked(a__condition_to_expression__nsp)), sps(checked(a__condition_to_expression__sps)), result(a__condition_to_expression__result)
00512 {}
00513 
00514 ptr< object::reflection_list > condition_to_expression::reflection_get() const
00515 {
00516         if (!reflection) {
00517                 typedef class_reflection::field_metadata md;
00518                 typedef class_reflection::field_metadata_list mdlist;
00519                 ptr<mdlist> mdl = mdlist::create();
00520                 mdl->push_back( md::create( "psp", "ss_sp" ) );
00521                 mdl->push_back( md::create( "nsp", "ss_sp" ) );
00522                 mdl->push_back( md::create( "sps", "list&lt; srp&lt; ss_sp &gt; &gt;" ) );
00523                 mdl->push_back( md::create( "result", "ss_expression" ) );
00524                 reflection = reflection_list::create( as_condition_visitor::reflection_get() );
00525                 reflection->push_back( class_reflection::create( "condition_to_expression", mdl ) );
00526         }
00527         return reflection;
00528 }
00529 
00530 ptr< object::field_list_list > condition_to_expression::field_values_get() const
00531 {
00532         ptr < field_list_list > result = as_condition_visitor::field_values_get();
00533         result->push_back( value_list::create() );
00534         result->back()->push_back( this->psp );
00535         result->push_back( value_list::create() );
00536         result->back()->push_back( this->nsp );
00537         result->push_back( value_list::create() );
00538         result->back()->push_back( this->sps );
00539         result->push_back( value_list::create() );
00540         result->back()->push_back( this->result );
00541         return result;
00542 }
00543 
00544 ptr< ss_expression > condition_to_expression::process( const ptr< ::lestes::lang::cplus::sem::as_condition > & o )
00545 {
00546         lassert2( o, "Cannot visit NULL object." );
00547         o->accept_as_condition_visitor( ptr< as_condition_visitor >(this) );
00548         return result_get();
00549 }
00550 
00551 
00552 /*!
00553    Marking routine is used for garbage collection.
00554    \author lsg
00555  */
00556 void condition_to_expression::gc_mark()
00557 {
00558         as_condition_visitor::gc_mark();
00559 }
00560 
00561 // End of class condition_to_expression.
00562 
00563 // ------------- Class sa_expression_converter follows. -------------
00564 
00565 /*!
00566    \returns The value of sa_expression_converter::alpha.
00567    \author lsg
00568  */
00569 ptr< ss_sp > sa_expression_converter::alpha_get() const
00570 {
00571         return alpha;
00572 }
00573 
00574 /*!
00575    \param[in] x The new value to set sa_expression_converter::alpha to.
00576    \author lsg
00577  */
00578 void sa_expression_converter::alpha_set(const ptr< ss_sp > & x)
00579 {
00580         sa_expression_converter::alpha = x;
00581 }
00582 
00583 /*!
00584    \returns The value of sa_expression_converter::beta.
00585    \author lsg
00586  */
00587 ptr< ss_sp > sa_expression_converter::beta_get() const
00588 {
00589         return beta;
00590 }
00591 
00592 /*!
00593    \param[in] x The new value to set sa_expression_converter::beta to.
00594    \author lsg
00595  */
00596 void sa_expression_converter::beta_set(const ptr< ss_sp > & x)
00597 {
00598         sa_expression_converter::beta = x;
00599 }
00600 
00601 /*!
00602    \returns The value of sa_expression_converter::sps.
00603    \author lsg
00604  */
00605 ptr< ::lestes::std::list< srp< ss_sp > > > sa_expression_converter::sps_get() const
00606 {
00607         return sps;
00608 }
00609 
00610 /*!
00611    \param[in] x The new value to set sa_expression_converter::sps to.
00612    \author lsg
00613  */
00614 void sa_expression_converter::sps_set(const ptr< ::lestes::std::list< srp< ss_sp > > > & x)
00615 {
00616         sa_expression_converter::sps = x;
00617 }
00618 
00619 /*!
00620    \returns The value of sa_expression_converter::type.
00621    \author lsg
00622  */
00623 ptr< ss_type > sa_expression_converter::type_get() const
00624 {
00625         return type;
00626 }
00627 
00628 /*!
00629    \param[in] x The new value to set sa_expression_converter::type to.
00630    \author lsg
00631  */
00632 void sa_expression_converter::type_set(const ptr< ss_type > & x)
00633 {
00634         sa_expression_converter::type = x;
00635 }
00636 
00637 /*!
00638    \returns The value of sa_expression_converter::result.
00639    \author lsg
00640  */
00641 ptr< ss_expression > sa_expression_converter::result_get() const
00642 {
00643         return result;
00644 }
00645 
00646 /*!
00647    \param[in] x The new value to set sa_expression_converter::result to.
00648    \author lsg
00649  */
00650 void sa_expression_converter::result_set(const ptr< ss_expression > & x)
00651 {
00652         sa_expression_converter::result = x;
00653 }
00654 
00655 /*!
00656    This factory method for class sa_expression_converter takes values of all fields as arguments.
00657    \author lsg
00658  */
00659 ptr< sa_expression_converter > sa_expression_converter::create(ptr< ss_sp > a__sa_expression_converter__alpha,
00660                 ptr< ss_sp > a__sa_expression_converter__beta,
00661                 ptr< ::lestes::std::list< srp< ss_sp > > > a__sa_expression_converter__sps,
00662                 ptr< ss_type > a__sa_expression_converter__type,
00663                 ptr< ss_expression > a__sa_expression_converter__result)
00664 {
00665         return ptr< sa_expression_converter > ( new sa_expression_converter(a__sa_expression_converter__alpha,
00666                 a__sa_expression_converter__beta,
00667                 a__sa_expression_converter__sps,
00668                 a__sa_expression_converter__type,
00669                 a__sa_expression_converter__result) );
00670 }
00671 
00672 /*!
00673    This factory method for class sa_expression_converter uses initializers.
00674    \author lsg
00675  */
00676 ptr< sa_expression_converter > sa_expression_converter::create(ptr< ss_sp > a__sa_expression_converter__alpha,
00677                 ptr< ss_sp > a__sa_expression_converter__beta,
00678                 ptr< ::lestes::std::list< srp< ss_sp > > > a__sa_expression_converter__sps)
00679 {
00680         return ptr< sa_expression_converter > ( new sa_expression_converter(a__sa_expression_converter__alpha, a__sa_expression_converter__beta, a__sa_expression_converter__sps, NULL, NULL) );
00681 }
00682 
00683 /*!
00684    Generated constructor for class sa_expression_converter.
00685    \author lsg
00686  */
00687 sa_expression_converter::sa_expression_converter (ptr< ss_sp > a__sa_expression_converter__alpha,
00688                 ptr< ss_sp > a__sa_expression_converter__beta,
00689                 ptr< ::lestes::std::list< srp< ss_sp > > > a__sa_expression_converter__sps,
00690                 ptr< ss_type > a__sa_expression_converter__type,
00691                 ptr< ss_expression > a__sa_expression_converter__result)
00692         : abstract_sa_expression_converter(), alpha(checked(a__sa_expression_converter__alpha)), beta(checked(a__sa_expression_converter__beta)), sps(checked(a__sa_expression_converter__sps)), type(a__sa_expression_converter__type), result(a__sa_expression_converter__result)
00693 {}
00694 
00695 ptr< object::reflection_list > sa_expression_converter::reflection_get() const
00696 {
00697         if (!reflection) {
00698                 typedef class_reflection::field_metadata md;
00699                 typedef class_reflection::field_metadata_list mdlist;
00700                 ptr<mdlist> mdl = mdlist::create();
00701                 mdl->push_back( md::create( "alpha", "ss_sp" ) );
00702                 mdl->push_back( md::create( "beta", "ss_sp" ) );
00703                 mdl->push_back( md::create( "sps", "list&lt; srp&lt; ss_sp &gt; &gt;" ) );
00704                 mdl->push_back( md::create( "type", "ss_type" ) );
00705                 mdl->push_back( md::create( "result", "ss_expression" ) );
00706                 reflection = reflection_list::create( abstract_sa_expression_converter::reflection_get() );
00707                 reflection->push_back( class_reflection::create( "sa_expression_converter", mdl ) );
00708         }
00709         return reflection;
00710 }
00711 
00712 ptr< object::field_list_list > sa_expression_converter::field_values_get() const
00713 {
00714         ptr < field_list_list > result = abstract_sa_expression_converter::field_values_get();
00715         result->push_back( value_list::create() );
00716         result->back()->push_back( this->alpha );
00717         result->push_back( value_list::create() );
00718         result->back()->push_back( this->beta );
00719         result->push_back( value_list::create() );
00720         result->back()->push_back( this->sps );
00721         result->push_back( value_list::create() );
00722         result->back()->push_back( this->type );
00723         result->push_back( value_list::create() );
00724         result->back()->push_back( this->result );
00725         return result;
00726 }
00727 
00728 ptr< ss_expression > sa_expression_converter::process( const ptr< ::lestes::lang::cplus::sem::as_expression > & o )
00729 {
00730         lassert2( o, "Cannot visit NULL object." );
00731         o->accept_as_expr_visitor( ptr< as_expr_visitor >(this) );
00732         return result_get();
00733 }
00734 
00735 
00736 /*!
00737    Marking routine is used for garbage collection.
00738    \author lsg
00739  */
00740 void sa_expression_converter::gc_mark()
00741 {
00742         abstract_sa_expression_converter::gc_mark();
00743 }
00744 
00745 // End of class sa_expression_converter.
00746 
00747 // ------------- Class get_real_declaration follows. -------------
00748 
00749 /*!
00750    \returns The value of get_real_declaration::result.
00751    \author lsg
00752  */
00753 ptr< ss_declaration > get_real_declaration::result_get() const
00754 {
00755         return result;
00756 }
00757 
00758 /*!
00759    \param[in] x The new value to set get_real_declaration::result to.
00760    \author lsg
00761  */
00762 void get_real_declaration::result_set(const ptr< ss_declaration > & x)
00763 {
00764         get_real_declaration::result = x;
00765 }
00766 
00767 /*!
00768    Static field get_real_declaration::the_instance.
00769    \author lsg
00770  */
00771 ptr< get_real_declaration > get_real_declaration::the_instance = the_instance;
00772 
00773 /*!
00774    Generated instance() method for singleton class get_real_declaration.
00775    \author lsg
00776  */
00777 ptr< get_real_declaration > get_real_declaration::instance()
00778 {
00779          return the_instance ? the_instance : the_instance = new get_real_declaration(NULL);
00780 }
00781 
00782 /*!
00783    Generated constructor for class get_real_declaration.
00784    \author lsg
00785  */
00786 get_real_declaration::get_real_declaration (ptr< ss_declaration > a__get_real_declaration__result)
00787         : ss_declaration_default_visitor(), result(a__get_real_declaration__result)
00788 {}
00789 
00790 ptr< object::reflection_list > get_real_declaration::reflection_get() const
00791 {
00792         if (!reflection) {
00793                 typedef class_reflection::field_metadata md;
00794                 typedef class_reflection::field_metadata_list mdlist;
00795                 ptr<mdlist> mdl = mdlist::create();
00796                 mdl->push_back( md::create( "result", "ss_declaration" ) );
00797                 reflection = reflection_list::create( ss_declaration_default_visitor::reflection_get() );
00798                 reflection->push_back( class_reflection::create( "get_real_declaration", mdl ) );
00799         }
00800         return reflection;
00801 }
00802 
00803 ptr< object::field_list_list > get_real_declaration::field_values_get() const
00804 {
00805         ptr < field_list_list > result = ss_declaration_default_visitor::field_values_get();
00806         result->push_back( value_list::create() );
00807         result->back()->push_back( this->result );
00808         return result;
00809 }
00810 
00811 ptr< ss_declaration > get_real_declaration::process( const ptr< ::lestes::lang::cplus::sem::ss_declaration > & o )
00812 {
00813         lassert2( o, "Cannot visit NULL object." );
00814         o->accept_ss_declaration_visitor( ptr< ss_declaration_visitor >(this) );
00815         return result_get();
00816 }
00817 
00818 
00819 /*!
00820    Marking routine is used for garbage collection.
00821    \author lsg
00822  */
00823 void get_real_declaration::gc_mark()
00824 {
00825         ss_declaration_default_visitor::gc_mark();
00826 }
00827 
00828 // End of class get_real_declaration.
00829 
00830 
00831 // static data members follow 
00832 ptr<object::reflection_list> sa_statements::reflection = reflection;
00833 ptr<object::reflection_list> decl_stmt_listener::reflection = reflection;
00834 ptr<object::reflection_list> last_declaration_memorizer::reflection = reflection;
00835 ptr<object::reflection_list> initializer_clause_converter::reflection = reflection;
00836 ptr<object::reflection_list> condition_to_expression::reflection = reflection;
00837 ptr<object::reflection_list> sa_expression_converter::reflection = reflection;
00838 ptr<object::reflection_list> get_real_declaration::reflection = reflection;
00839 
00840 end_package(sem);
00841 end_package(cplus);
00842 end_package(lang);
00843 end_package(lestes);
00844 

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