ss_expression.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/visitor.v.g.hh>
00013 #include <lestes/lang/cplus/lex/token_value.hh>
00014 #include <lestes/lang/cplus/sem/ss_misc.g.hh>
00015 #include <lestes/lang/cplus/sem/ss_type.g.hh>
00016 #include <lestes/backend_v2/intercode/pi.g.hh>
00017 #include <lestes/lang/cplus/sem/as_decl.g.hh>
00018 #include <lestes/lang/cplus/sem/ss_declaration.g.hh>
00019 #include <lestes/lang/cplus/sem/ss_literal_info.g.hh>
00020 
00021 #include <lestes/std/list.hh>
00022 #include <lestes/std/pair.hh>
00023 #include <lestes/std/reflect.hh>
00024 
00025 #include <lestes/lang/cplus/sem/ss_expression.g.hh>
00026 
00027 package(lestes);
00028 package(lang);
00029 package(cplus);
00030 package(sem);
00031 
00032 
00033 // ------------- Class ss_expression follows. -------------
00034 
00035 /*!
00036    \returns The value of ss_expression::type.
00037    \author lsg
00038  */
00039 ptr< ss_type > ss_expression::type_get() const
00040 {
00041         return type;
00042 }
00043 
00044 /*!
00045    \param[in] x The new value to set ss_expression::type to.
00046    \author lsg
00047  */
00048 void ss_expression::type_set(const ptr< ss_type > & x)
00049 {
00050         ss_expression::type = x;
00051 }
00052 
00053 /*!
00054    \returns The value of ss_expression::psp.
00055    \author lsg
00056  */
00057 ptr< ss_sp > ss_expression::psp_get() const
00058 {
00059         return psp;
00060 }
00061 
00062 /*!
00063    \param[in] x The new value to set ss_expression::psp to.
00064    \author lsg
00065  */
00066 void ss_expression::psp_set(const ptr< ss_sp > & x)
00067 {
00068         ss_expression::psp = x;
00069 }
00070 
00071 /*!
00072    \returns The value of ss_expression::nsp.
00073    \author lsg
00074  */
00075 ptr< ss_sp > ss_expression::nsp_get() const
00076 {
00077         return nsp;
00078 }
00079 
00080 /*!
00081    \param[in] x The new value to set ss_expression::nsp to.
00082    \author lsg
00083  */
00084 void ss_expression::nsp_set(const ptr< ss_sp > & x)
00085 {
00086         ss_expression::nsp = x;
00087 }
00088 
00089 /*!
00090    Generated constructor for class ss_expression.
00091    \author lsg
00092  */
00093 ss_expression::ss_expression (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00094                 ptr< ss_type > a__ss_expression__type,
00095                 ptr< ss_sp > a__ss_expression__psp,
00096                 ptr< ss_sp > a__ss_expression__nsp)
00097         : ss_base_with_location(a__ss_base_with_location__location), type(checked(a__ss_expression__type)), psp(checked(a__ss_expression__psp)), nsp(checked(a__ss_expression__nsp))
00098 {}
00099 
00100 ptr< object::reflection_list > ss_expression::reflection_get() const
00101 {
00102         if (!reflection) {
00103                 typedef class_reflection::field_metadata md;
00104                 typedef class_reflection::field_metadata_list mdlist;
00105                 ptr<mdlist> mdl = mdlist::create();
00106                 mdl->push_back( md::create( "type", "ss_type" ) );
00107                 mdl->push_back( md::create( "psp", "ss_sp" ) );
00108                 mdl->push_back( md::create( "nsp", "ss_sp" ) );
00109                 reflection = reflection_list::create( ::lestes::intercode::ss_base_with_location::reflection_get() );
00110                 reflection->push_back( class_reflection::create( "ss_expression", mdl ) );
00111         }
00112         return reflection;
00113 }
00114 
00115 ptr< object::field_list_list > ss_expression::field_values_get() const
00116 {
00117         ptr < field_list_list > result = ::lestes::intercode::ss_base_with_location::field_values_get();
00118         result->push_back( value_list::create() );
00119         result->back()->push_back( this->type );
00120         result->push_back( value_list::create() );
00121         result->back()->push_back( this->psp );
00122         result->push_back( value_list::create() );
00123         result->back()->push_back( this->nsp );
00124         return result;
00125 }
00126 
00127 
00128 /*!
00129    Marking routine is used for garbage collection.
00130    \author lsg
00131  */
00132 void ss_expression::gc_mark()
00133 {
00134 	::lestes::intercode::ss_base_with_location::gc_mark();
00135 }
00136 
00137 // End of class ss_expression.
00138 
00139 // ------------- Class ss_this_expr follows. -------------
00140 
00141 void ss_this_expr::accept_ss_expression_visitor( ptr< ss_expression_visitor > v )
00142 {
00143         return v->visit_ss_this_expr( this );
00144 }
00145 
00146 /*!
00147    This factory method for class ss_this_expr takes values of all fields as arguments.
00148    \author lsg
00149  */
00150 ptr< ss_this_expr > ss_this_expr::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00151                 ptr< ss_type > a__ss_expression__type,
00152                 ptr< ss_sp > a__ss_expression__psp,
00153                 ptr< ss_sp > a__ss_expression__nsp)
00154 {
00155         return ptr< ss_this_expr > ( new ss_this_expr(a__ss_base_with_location__location,
00156                 a__ss_expression__type,
00157                 a__ss_expression__psp,
00158                 a__ss_expression__nsp) );
00159 }
00160 
00161 /*!
00162    Generated constructor for class ss_this_expr.
00163    \author lsg
00164  */
00165 ss_this_expr::ss_this_expr (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00166                 ptr< ss_type > a__ss_expression__type,
00167                 ptr< ss_sp > a__ss_expression__psp,
00168                 ptr< ss_sp > a__ss_expression__nsp)
00169         : ss_expression(a__ss_base_with_location__location,
00170                 a__ss_expression__type,
00171                 a__ss_expression__psp,
00172                 a__ss_expression__nsp)
00173 {}
00174 
00175 ptr< object::reflection_list > ss_this_expr::reflection_get() const
00176 {
00177         if (!reflection) {
00178                 typedef class_reflection::field_metadata md;
00179                 typedef class_reflection::field_metadata_list mdlist;
00180                 ptr<mdlist> mdl = mdlist::create();
00181                 reflection = reflection_list::create( ss_expression::reflection_get() );
00182                 reflection->push_back( class_reflection::create( "ss_this_expr", mdl ) );
00183         }
00184         return reflection;
00185 }
00186 
00187 ptr< object::field_list_list > ss_this_expr::field_values_get() const
00188 {
00189         ptr < field_list_list > result = ss_expression::field_values_get();
00190         return result;
00191 }
00192 
00193 
00194 /*!
00195    Marking routine is used for garbage collection.
00196    \author lsg
00197  */
00198 void ss_this_expr::gc_mark()
00199 {
00200         ss_expression::gc_mark();
00201 }
00202 
00203 // End of class ss_this_expr.
00204 
00205 // ------------- Class ss_literal follows. -------------
00206 
00207 /*!
00208    \returns The value of ss_literal::value.
00209    \author lsg
00210  */
00211 ptr< ss_literal_info > ss_literal::value_get() const
00212 {
00213         return value;
00214 }
00215 
00216 /*!
00217    \param[in] x The new value to set ss_literal::value to.
00218    \author lsg
00219  */
00220 void ss_literal::value_set(const ptr< ss_literal_info > & x)
00221 {
00222         ss_literal::value = x;
00223 }
00224 
00225 void ss_literal::accept_ss_expression_visitor( ptr< ss_expression_visitor > v )
00226 {
00227         return v->visit_ss_literal( this );
00228 }
00229 
00230 /*!
00231    This factory method for class ss_literal takes values of all fields as arguments.
00232    \author lsg
00233  */
00234 ptr< ss_literal > ss_literal::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00235                 ptr< ss_type > a__ss_expression__type,
00236                 ptr< ss_sp > a__ss_expression__psp,
00237                 ptr< ss_sp > a__ss_expression__nsp,
00238                 ptr< ss_literal_info > a__ss_literal__value)
00239 {
00240         return ptr< ss_literal > ( new ss_literal(a__ss_base_with_location__location,
00241                 a__ss_expression__type,
00242                 a__ss_expression__psp,
00243                 a__ss_expression__nsp,
00244                 a__ss_literal__value) );
00245 }
00246 
00247 /*!
00248    Generated constructor for class ss_literal.
00249    \author lsg
00250  */
00251 ss_literal::ss_literal (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00252                 ptr< ss_type > a__ss_expression__type,
00253                 ptr< ss_sp > a__ss_expression__psp,
00254                 ptr< ss_sp > a__ss_expression__nsp,
00255                 ptr< ss_literal_info > a__ss_literal__value)
00256         : ss_expression(a__ss_base_with_location__location,
00257                 a__ss_expression__type,
00258                 a__ss_expression__psp,
00259                 a__ss_expression__nsp), value(checked(a__ss_literal__value))
00260 {}
00261 
00262 ptr< object::reflection_list > ss_literal::reflection_get() const
00263 {
00264         if (!reflection) {
00265                 typedef class_reflection::field_metadata md;
00266                 typedef class_reflection::field_metadata_list mdlist;
00267                 ptr<mdlist> mdl = mdlist::create();
00268                 mdl->push_back( md::create( "value", "ss_literal_info" ) );
00269                 reflection = reflection_list::create( ss_expression::reflection_get() );
00270                 reflection->push_back( class_reflection::create( "ss_literal", mdl ) );
00271         }
00272         return reflection;
00273 }
00274 
00275 ptr< object::field_list_list > ss_literal::field_values_get() const
00276 {
00277         ptr < field_list_list > result = ss_expression::field_values_get();
00278         result->push_back( value_list::create() );
00279         result->back()->push_back( this->value );
00280         return result;
00281 }
00282 
00283 
00284 /*!
00285    Marking routine is used for garbage collection.
00286    \author lsg
00287  */
00288 void ss_literal::gc_mark()
00289 {
00290         ss_expression::gc_mark();
00291 }
00292 
00293 // End of class ss_literal.
00294 
00295 // ------------- Class ss_ternary follows. -------------
00296 
00297 /*!
00298    \returns The value of ss_ternary::condition.
00299    \author lsg
00300  */
00301 ptr< ss_expression > ss_ternary::condition_get() const
00302 {
00303         return condition;
00304 }
00305 
00306 /*!
00307    \param[in] x The new value to set ss_ternary::condition to.
00308    \author lsg
00309  */
00310 void ss_ternary::condition_set(const ptr< ss_expression > & x)
00311 {
00312         ss_ternary::condition = x;
00313 }
00314 
00315 /*!
00316    \returns The value of ss_ternary::true_expr.
00317    \author lsg
00318  */
00319 ptr< ss_expression > ss_ternary::true_expr_get() const
00320 {
00321         return true_expr;
00322 }
00323 
00324 /*!
00325    \param[in] x The new value to set ss_ternary::true_expr to.
00326    \author lsg
00327  */
00328 void ss_ternary::true_expr_set(const ptr< ss_expression > & x)
00329 {
00330         ss_ternary::true_expr = x;
00331 }
00332 
00333 /*!
00334    \returns The value of ss_ternary::false_expr.
00335    \author lsg
00336  */
00337 ptr< ss_expression > ss_ternary::false_expr_get() const
00338 {
00339         return false_expr;
00340 }
00341 
00342 /*!
00343    \param[in] x The new value to set ss_ternary::false_expr to.
00344    \author lsg
00345  */
00346 void ss_ternary::false_expr_set(const ptr< ss_expression > & x)
00347 {
00348         ss_ternary::false_expr = x;
00349 }
00350 
00351 void ss_ternary::accept_ss_expression_visitor( ptr< ss_expression_visitor > v )
00352 {
00353         return v->visit_ss_ternary( this );
00354 }
00355 
00356 /*!
00357    This factory method for class ss_ternary takes values of all fields as arguments.
00358    \author lsg
00359  */
00360 ptr< ss_ternary > ss_ternary::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00361                 ptr< ss_type > a__ss_expression__type,
00362                 ptr< ss_sp > a__ss_expression__psp,
00363                 ptr< ss_sp > a__ss_expression__nsp,
00364                 ptr< ss_expression > a__ss_ternary__condition,
00365                 ptr< ss_expression > a__ss_ternary__true_expr,
00366                 ptr< ss_expression > a__ss_ternary__false_expr)
00367 {
00368         return ptr< ss_ternary > ( new ss_ternary(a__ss_base_with_location__location,
00369                 a__ss_expression__type,
00370                 a__ss_expression__psp,
00371                 a__ss_expression__nsp,
00372                 a__ss_ternary__condition,
00373                 a__ss_ternary__true_expr,
00374                 a__ss_ternary__false_expr) );
00375 }
00376 
00377 /*!
00378    Generated constructor for class ss_ternary.
00379    \author lsg
00380  */
00381 ss_ternary::ss_ternary (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00382                 ptr< ss_type > a__ss_expression__type,
00383                 ptr< ss_sp > a__ss_expression__psp,
00384                 ptr< ss_sp > a__ss_expression__nsp,
00385                 ptr< ss_expression > a__ss_ternary__condition,
00386                 ptr< ss_expression > a__ss_ternary__true_expr,
00387                 ptr< ss_expression > a__ss_ternary__false_expr)
00388         : ss_expression(a__ss_base_with_location__location,
00389                 a__ss_expression__type,
00390                 a__ss_expression__psp,
00391                 a__ss_expression__nsp), condition(checked(a__ss_ternary__condition)), true_expr(checked(a__ss_ternary__true_expr)), false_expr(checked(a__ss_ternary__false_expr))
00392 {}
00393 
00394 ptr< object::reflection_list > ss_ternary::reflection_get() const
00395 {
00396         if (!reflection) {
00397                 typedef class_reflection::field_metadata md;
00398                 typedef class_reflection::field_metadata_list mdlist;
00399                 ptr<mdlist> mdl = mdlist::create();
00400                 mdl->push_back( md::create( "condition", "ss_expression" ) );
00401                 mdl->push_back( md::create( "true_expr", "ss_expression" ) );
00402                 mdl->push_back( md::create( "false_expr", "ss_expression" ) );
00403                 reflection = reflection_list::create( ss_expression::reflection_get() );
00404                 reflection->push_back( class_reflection::create( "ss_ternary", mdl ) );
00405         }
00406         return reflection;
00407 }
00408 
00409 ptr< object::field_list_list > ss_ternary::field_values_get() const
00410 {
00411         ptr < field_list_list > result = ss_expression::field_values_get();
00412         result->push_back( value_list::create() );
00413         result->back()->push_back( this->condition );
00414         result->push_back( value_list::create() );
00415         result->back()->push_back( this->true_expr );
00416         result->push_back( value_list::create() );
00417         result->back()->push_back( this->false_expr );
00418         return result;
00419 }
00420 
00421 
00422 /*!
00423    Marking routine is used for garbage collection.
00424    \author lsg
00425  */
00426 void ss_ternary::gc_mark()
00427 {
00428         ss_expression::gc_mark();
00429 }
00430 
00431 // End of class ss_ternary.
00432 
00433 // ------------- Class ss_var_ref_abstract follows. -------------
00434 
00435 /*!
00436    Generated constructor for class ss_var_ref_abstract.
00437    \author lsg
00438  */
00439 ss_var_ref_abstract::ss_var_ref_abstract (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00440                 ptr< ss_type > a__ss_expression__type,
00441                 ptr< ss_sp > a__ss_expression__psp,
00442                 ptr< ss_sp > a__ss_expression__nsp)
00443         : ss_expression(a__ss_base_with_location__location,
00444                 a__ss_expression__type,
00445                 a__ss_expression__psp,
00446                 a__ss_expression__nsp)
00447 {}
00448 
00449 ptr< object::reflection_list > ss_var_ref_abstract::reflection_get() const
00450 {
00451         if (!reflection) {
00452                 typedef class_reflection::field_metadata md;
00453                 typedef class_reflection::field_metadata_list mdlist;
00454                 ptr<mdlist> mdl = mdlist::create();
00455                 reflection = reflection_list::create( ss_expression::reflection_get() );
00456                 reflection->push_back( class_reflection::create( "ss_var_ref_abstract", mdl ) );
00457         }
00458         return reflection;
00459 }
00460 
00461 ptr< object::field_list_list > ss_var_ref_abstract::field_values_get() const
00462 {
00463         ptr < field_list_list > result = ss_expression::field_values_get();
00464         return result;
00465 }
00466 
00467 
00468 /*!
00469    Marking routine is used for garbage collection.
00470    \author lsg
00471  */
00472 void ss_var_ref_abstract::gc_mark()
00473 {
00474         ss_expression::gc_mark();
00475 }
00476 
00477 // End of class ss_var_ref_abstract.
00478 
00479 // ------------- Class ss_var_ref_by_qname follows. -------------
00480 
00481 /*!
00482    \returns The value of ss_var_ref_by_qname::contained_in.
00483    \author lsg
00484  */
00485 ptr< ss_decl_seq > ss_var_ref_by_qname::contained_in_get() const
00486 {
00487         return contained_in;
00488 }
00489 
00490 /*!
00491    \param[in] x The new value to set ss_var_ref_by_qname::contained_in to.
00492    \author lsg
00493  */
00494 void ss_var_ref_by_qname::contained_in_set(const ptr< ss_decl_seq > & x)
00495 {
00496         ss_var_ref_by_qname::contained_in = x;
00497 }
00498 
00499 /*!
00500    \returns The value of ss_var_ref_by_qname::decl_time.
00501    \author lsg
00502  */
00503 ptr< ss_declaration_time > ss_var_ref_by_qname::decl_time_get() const
00504 {
00505         return decl_time;
00506 }
00507 
00508 /*!
00509    \param[in] x The new value to set ss_var_ref_by_qname::decl_time to.
00510    \author lsg
00511  */
00512 void ss_var_ref_by_qname::decl_time_set(const ptr< ss_declaration_time > & x)
00513 {
00514         ss_var_ref_by_qname::decl_time = x;
00515 }
00516 
00517 /*!
00518    \returns The value of ss_var_ref_by_qname::qualified_name.
00519    \author lsg
00520  */
00521 ptr< as_name > ss_var_ref_by_qname::qualified_name_get() const
00522 {
00523         return qualified_name;
00524 }
00525 
00526 /*!
00527    \param[in] x The new value to set ss_var_ref_by_qname::qualified_name to.
00528    \author lsg
00529  */
00530 void ss_var_ref_by_qname::qualified_name_set(const ptr< as_name > & x)
00531 {
00532         ss_var_ref_by_qname::qualified_name = x;
00533 }
00534 
00535 void ss_var_ref_by_qname::accept_ss_expression_visitor( ptr< ss_expression_visitor > v )
00536 {
00537         return v->visit_ss_var_ref_by_qname( this );
00538 }
00539 
00540 /*!
00541    This factory method for class ss_var_ref_by_qname takes values of all fields as arguments.
00542    \author lsg
00543  */
00544 ptr< ss_var_ref_by_qname > ss_var_ref_by_qname::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00545                 ptr< ss_type > a__ss_expression__type,
00546                 ptr< ss_sp > a__ss_expression__psp,
00547                 ptr< ss_sp > a__ss_expression__nsp,
00548                 ptr< ss_decl_seq > a__ss_var_ref_by_qname__contained_in,
00549                 ptr< ss_declaration_time > a__ss_var_ref_by_qname__decl_time,
00550                 ptr< as_name > a__ss_var_ref_by_qname__qualified_name)
00551 {
00552         return ptr< ss_var_ref_by_qname > ( new ss_var_ref_by_qname(a__ss_base_with_location__location,
00553                 a__ss_expression__type,
00554                 a__ss_expression__psp,
00555                 a__ss_expression__nsp,
00556                 a__ss_var_ref_by_qname__contained_in,
00557                 a__ss_var_ref_by_qname__decl_time,
00558                 a__ss_var_ref_by_qname__qualified_name) );
00559 }
00560 
00561 /*!
00562    Generated constructor for class ss_var_ref_by_qname.
00563    \author lsg
00564  */
00565 ss_var_ref_by_qname::ss_var_ref_by_qname (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00566                 ptr< ss_type > a__ss_expression__type,
00567                 ptr< ss_sp > a__ss_expression__psp,
00568                 ptr< ss_sp > a__ss_expression__nsp,
00569                 ptr< ss_decl_seq > a__ss_var_ref_by_qname__contained_in,
00570                 ptr< ss_declaration_time > a__ss_var_ref_by_qname__decl_time,
00571                 ptr< as_name > a__ss_var_ref_by_qname__qualified_name)
00572         : ss_var_ref_abstract(a__ss_base_with_location__location,
00573                 a__ss_expression__type,
00574                 a__ss_expression__psp,
00575                 a__ss_expression__nsp), contained_in(checked(a__ss_var_ref_by_qname__contained_in)), decl_time(checked(a__ss_var_ref_by_qname__decl_time)), qualified_name(checked(a__ss_var_ref_by_qname__qualified_name))
00576 {}
00577 
00578 ptr< object::reflection_list > ss_var_ref_by_qname::reflection_get() const
00579 {
00580         if (!reflection) {
00581                 typedef class_reflection::field_metadata md;
00582                 typedef class_reflection::field_metadata_list mdlist;
00583                 ptr<mdlist> mdl = mdlist::create();
00584                 mdl->push_back( md::create( "contained_in", "ss_decl_seq" ) );
00585                 mdl->push_back( md::create( "decl_time", "ss_declaration_time" ) );
00586                 mdl->push_back( md::create( "qualified_name", "as_name" ) );
00587                 reflection = reflection_list::create( ss_var_ref_abstract::reflection_get() );
00588                 reflection->push_back( class_reflection::create( "ss_var_ref_by_qname", mdl ) );
00589         }
00590         return reflection;
00591 }
00592 
00593 ptr< object::field_list_list > ss_var_ref_by_qname::field_values_get() const
00594 {
00595         ptr < field_list_list > result = ss_var_ref_abstract::field_values_get();
00596         result->push_back( value_list::create() );
00597         result->back()->push_back( this->contained_in );
00598         result->push_back( value_list::create() );
00599         result->back()->push_back( this->decl_time );
00600         result->push_back( value_list::create() );
00601         result->back()->push_back( this->qualified_name );
00602         return result;
00603 }
00604 
00605 
00606 /*!
00607    Marking routine is used for garbage collection.
00608    \author lsg
00609  */
00610 void ss_var_ref_by_qname::gc_mark()
00611 {
00612         ss_var_ref_abstract::gc_mark();
00613 }
00614 
00615 // End of class ss_var_ref_by_qname.
00616 
00617 // ------------- Class ss_var_ref follows. -------------
00618 
00619 /*!
00620    \returns The value of ss_var_ref::var_decl.
00621    \author lsg
00622  */
00623 ptr< ss_declaration > ss_var_ref::var_decl_get() const
00624 {
00625         return var_decl;
00626 }
00627 
00628 /*!
00629    \param[in] x The new value to set ss_var_ref::var_decl to.
00630    \author lsg
00631  */
00632 void ss_var_ref::var_decl_set(const ptr< ss_declaration > & x)
00633 {
00634         ss_var_ref::var_decl = x;
00635 }
00636 
00637 void ss_var_ref::accept_ss_expression_visitor( ptr< ss_expression_visitor > v )
00638 {
00639         return v->visit_ss_var_ref( this );
00640 }
00641 
00642 /*!
00643    This factory method for class ss_var_ref takes values of all fields as arguments.
00644    \author lsg
00645  */
00646 ptr< ss_var_ref > ss_var_ref::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00647                 ptr< ss_type > a__ss_expression__type,
00648                 ptr< ss_sp > a__ss_expression__psp,
00649                 ptr< ss_sp > a__ss_expression__nsp,
00650                 ptr< ss_declaration > a__ss_var_ref__var_decl)
00651 {
00652         return ptr< ss_var_ref > ( new ss_var_ref(a__ss_base_with_location__location,
00653                 a__ss_expression__type,
00654                 a__ss_expression__psp,
00655                 a__ss_expression__nsp,
00656                 a__ss_var_ref__var_decl) );
00657 }
00658 
00659 /*!
00660    Generated constructor for class ss_var_ref.
00661    \author lsg
00662  */
00663 ss_var_ref::ss_var_ref (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00664                 ptr< ss_type > a__ss_expression__type,
00665                 ptr< ss_sp > a__ss_expression__psp,
00666                 ptr< ss_sp > a__ss_expression__nsp,
00667                 ptr< ss_declaration > a__ss_var_ref__var_decl)
00668         : ss_var_ref_abstract(a__ss_base_with_location__location,
00669                 a__ss_expression__type,
00670                 a__ss_expression__psp,
00671                 a__ss_expression__nsp), var_decl(checked(a__ss_var_ref__var_decl))
00672 {}
00673 
00674 ptr< object::reflection_list > ss_var_ref::reflection_get() const
00675 {
00676         if (!reflection) {
00677                 typedef class_reflection::field_metadata md;
00678                 typedef class_reflection::field_metadata_list mdlist;
00679                 ptr<mdlist> mdl = mdlist::create();
00680                 mdl->push_back( md::create( "var_decl", "ss_declaration" ) );
00681                 reflection = reflection_list::create( ss_var_ref_abstract::reflection_get() );
00682                 reflection->push_back( class_reflection::create( "ss_var_ref", mdl ) );
00683         }
00684         return reflection;
00685 }
00686 
00687 ptr< object::field_list_list > ss_var_ref::field_values_get() const
00688 {
00689         ptr < field_list_list > result = ss_var_ref_abstract::field_values_get();
00690         result->push_back( value_list::create() );
00691         result->back()->push_back( this->var_decl );
00692         return result;
00693 }
00694 
00695 
00696 /*!
00697    Marking routine is used for garbage collection.
00698    \author lsg
00699  */
00700 void ss_var_ref::gc_mark()
00701 {
00702         ss_var_ref_abstract::gc_mark();
00703 }
00704 
00705 // End of class ss_var_ref.
00706 
00707 // ------------- Class ss_throw follows. -------------
00708 
00709 /*!
00710    \returns The value of ss_throw::type.
00711    \author lsg
00712  */
00713 ptr< ss_type > ss_throw::type_get() const
00714 {
00715         return type;
00716 }
00717 
00718 /*!
00719    \param[in] x The new value to set ss_throw::type to.
00720    \author lsg
00721  */
00722 void ss_throw::type_set(const ptr< ss_type > & x)
00723 {
00724         ss_throw::type = x;
00725 }
00726 
00727 /*!
00728    \returns The value of ss_throw::value.
00729    \author lsg
00730  */
00731 ptr< ss_expression > ss_throw::value_get() const
00732 {
00733         return value;
00734 }
00735 
00736 /*!
00737    \param[in] x The new value to set ss_throw::value to.
00738    \author lsg
00739  */
00740 void ss_throw::value_set(const ptr< ss_expression > & x)
00741 {
00742         ss_throw::value = x;
00743 }
00744 
00745 void ss_throw::accept_ss_expression_visitor( ptr< ss_expression_visitor > v )
00746 {
00747         return v->visit_ss_throw( this );
00748 }
00749 
00750 /*!
00751    This factory method for class ss_throw takes values of all fields as arguments.
00752    \author lsg
00753  */
00754 ptr< ss_throw > ss_throw::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00755                 ptr< ss_type > a__ss_expression__type,
00756                 ptr< ss_sp > a__ss_expression__psp,
00757                 ptr< ss_sp > a__ss_expression__nsp,
00758                 ptr< ss_type > a__ss_throw__type,
00759                 ptr< ss_expression > a__ss_throw__value)
00760 {
00761         return ptr< ss_throw > ( new ss_throw(a__ss_base_with_location__location,
00762                 a__ss_expression__type,
00763                 a__ss_expression__psp,
00764                 a__ss_expression__nsp,
00765                 a__ss_throw__type,
00766                 a__ss_throw__value) );
00767 }
00768 
00769 /*!
00770    Generated constructor for class ss_throw.
00771    \author lsg
00772  */
00773 ss_throw::ss_throw (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00774                 ptr< ss_type > a__ss_expression__type,
00775                 ptr< ss_sp > a__ss_expression__psp,
00776                 ptr< ss_sp > a__ss_expression__nsp,
00777                 ptr< ss_type > a__ss_throw__type,
00778                 ptr< ss_expression > a__ss_throw__value)
00779         : ss_expression(a__ss_base_with_location__location,
00780                 a__ss_expression__type,
00781                 a__ss_expression__psp,
00782                 a__ss_expression__nsp), type(checked(a__ss_throw__type)), value(checked(a__ss_throw__value))
00783 {}
00784 
00785 ptr< object::reflection_list > ss_throw::reflection_get() const
00786 {
00787         if (!reflection) {
00788                 typedef class_reflection::field_metadata md;
00789                 typedef class_reflection::field_metadata_list mdlist;
00790                 ptr<mdlist> mdl = mdlist::create();
00791                 mdl->push_back( md::create( "type", "ss_type" ) );
00792                 mdl->push_back( md::create( "value", "ss_expression" ) );
00793                 reflection = reflection_list::create( ss_expression::reflection_get() );
00794                 reflection->push_back( class_reflection::create( "ss_throw", mdl ) );
00795         }
00796         return reflection;
00797 }
00798 
00799 ptr< object::field_list_list > ss_throw::field_values_get() const
00800 {
00801         ptr < field_list_list > result = ss_expression::field_values_get();
00802         result->push_back( value_list::create() );
00803         result->back()->push_back( this->type );
00804         result->push_back( value_list::create() );
00805         result->back()->push_back( this->value );
00806         return result;
00807 }
00808 
00809 
00810 /*!
00811    Marking routine is used for garbage collection.
00812    \author lsg
00813  */
00814 void ss_throw::gc_mark()
00815 {
00816         ss_expression::gc_mark();
00817 }
00818 
00819 // End of class ss_throw.
00820 
00821 // ------------- Class ss_member_ptr follows. -------------
00822 
00823 /*!
00824    \returns The value of ss_member_ptr::object.
00825    \author lsg
00826  */
00827 ptr< ss_expression > ss_member_ptr::object_get() const
00828 {
00829         return object;
00830 }
00831 
00832 /*!
00833    \param[in] x The new value to set ss_member_ptr::object to.
00834    \author lsg
00835  */
00836 void ss_member_ptr::object_set(const ptr< ss_expression > & x)
00837 {
00838         ss_member_ptr::object = x;
00839 }
00840 
00841 /*!
00842    \returns The value of ss_member_ptr::member_ptr.
00843    \author lsg
00844  */
00845 ptr< ss_expression > ss_member_ptr::member_ptr_get() const
00846 {
00847         return member_ptr;
00848 }
00849 
00850 /*!
00851    \param[in] x The new value to set ss_member_ptr::member_ptr to.
00852    \author lsg
00853  */
00854 void ss_member_ptr::member_ptr_set(const ptr< ss_expression > & x)
00855 {
00856         ss_member_ptr::member_ptr = x;
00857 }
00858 
00859 void ss_member_ptr::accept_ss_expression_visitor( ptr< ss_expression_visitor > v )
00860 {
00861         return v->visit_ss_member_ptr( this );
00862 }
00863 
00864 /*!
00865    This factory method for class ss_member_ptr takes values of all fields as arguments.
00866    \author lsg
00867  */
00868 ptr< ss_member_ptr > ss_member_ptr::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00869                 ptr< ss_type > a__ss_expression__type,
00870                 ptr< ss_sp > a__ss_expression__psp,
00871                 ptr< ss_sp > a__ss_expression__nsp,
00872                 ptr< ss_expression > a__ss_member_ptr__object,
00873                 ptr< ss_expression > a__ss_member_ptr__member_ptr)
00874 {
00875         return ptr< ss_member_ptr > ( new ss_member_ptr(a__ss_base_with_location__location,
00876                 a__ss_expression__type,
00877                 a__ss_expression__psp,
00878                 a__ss_expression__nsp,
00879                 a__ss_member_ptr__object,
00880                 a__ss_member_ptr__member_ptr) );
00881 }
00882 
00883 /*!
00884    Generated constructor for class ss_member_ptr.
00885    \author lsg
00886  */
00887 ss_member_ptr::ss_member_ptr (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00888                 ptr< ss_type > a__ss_expression__type,
00889                 ptr< ss_sp > a__ss_expression__psp,
00890                 ptr< ss_sp > a__ss_expression__nsp,
00891                 ptr< ss_expression > a__ss_member_ptr__object,
00892                 ptr< ss_expression > a__ss_member_ptr__member_ptr)
00893         : ss_expression(a__ss_base_with_location__location,
00894                 a__ss_expression__type,
00895                 a__ss_expression__psp,
00896                 a__ss_expression__nsp), object(checked(a__ss_member_ptr__object)), member_ptr(checked(a__ss_member_ptr__member_ptr))
00897 {}
00898 
00899 ptr< object::reflection_list > ss_member_ptr::reflection_get() const
00900 {
00901         if (!reflection) {
00902                 typedef class_reflection::field_metadata md;
00903                 typedef class_reflection::field_metadata_list mdlist;
00904                 ptr<mdlist> mdl = mdlist::create();
00905                 mdl->push_back( md::create( "object", "ss_expression" ) );
00906                 mdl->push_back( md::create( "member_ptr", "ss_expression" ) );
00907                 reflection = reflection_list::create( ss_expression::reflection_get() );
00908                 reflection->push_back( class_reflection::create( "ss_member_ptr", mdl ) );
00909         }
00910         return reflection;
00911 }
00912 
00913 ptr< object::field_list_list > ss_member_ptr::field_values_get() const
00914 {
00915         ptr < field_list_list > result = ss_expression::field_values_get();
00916         result->push_back( value_list::create() );
00917         result->back()->push_back( this->object );
00918         result->push_back( value_list::create() );
00919         result->back()->push_back( this->member_ptr );
00920         return result;
00921 }
00922 
00923 
00924 /*!
00925    Marking routine is used for garbage collection.
00926    \author lsg
00927  */
00928 void ss_member_ptr::gc_mark()
00929 {
00930         ss_expression::gc_mark();
00931 }
00932 
00933 // End of class ss_member_ptr.
00934 
00935 // ------------- Class ss_ptr_member_ptr follows. -------------
00936 
00937 /*!
00938    \returns The value of ss_ptr_member_ptr::object_ptr.
00939    \author lsg
00940  */
00941 ptr< ss_expression > ss_ptr_member_ptr::object_ptr_get() const
00942 {
00943         return object_ptr;
00944 }
00945 
00946 /*!
00947    \param[in] x The new value to set ss_ptr_member_ptr::object_ptr to.
00948    \author lsg
00949  */
00950 void ss_ptr_member_ptr::object_ptr_set(const ptr< ss_expression > & x)
00951 {
00952         ss_ptr_member_ptr::object_ptr = x;
00953 }
00954 
00955 /*!
00956    \returns The value of ss_ptr_member_ptr::member_ptr.
00957    \author lsg
00958  */
00959 ptr< ss_expression > ss_ptr_member_ptr::member_ptr_get() const
00960 {
00961         return member_ptr;
00962 }
00963 
00964 /*!
00965    \param[in] x The new value to set ss_ptr_member_ptr::member_ptr to.
00966    \author lsg
00967  */
00968 void ss_ptr_member_ptr::member_ptr_set(const ptr< ss_expression > & x)
00969 {
00970         ss_ptr_member_ptr::member_ptr = x;
00971 }
00972 
00973 void ss_ptr_member_ptr::accept_ss_expression_visitor( ptr< ss_expression_visitor > v )
00974 {
00975         return v->visit_ss_ptr_member_ptr( this );
00976 }
00977 
00978 /*!
00979    This factory method for class ss_ptr_member_ptr takes values of all fields as arguments.
00980    \author lsg
00981  */
00982 ptr< ss_ptr_member_ptr > ss_ptr_member_ptr::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00983                 ptr< ss_type > a__ss_expression__type,
00984                 ptr< ss_sp > a__ss_expression__psp,
00985                 ptr< ss_sp > a__ss_expression__nsp,
00986                 ptr< ss_expression > a__ss_ptr_member_ptr__object_ptr,
00987                 ptr< ss_expression > a__ss_ptr_member_ptr__member_ptr)
00988 {
00989         return ptr< ss_ptr_member_ptr > ( new ss_ptr_member_ptr(a__ss_base_with_location__location,
00990                 a__ss_expression__type,
00991                 a__ss_expression__psp,
00992                 a__ss_expression__nsp,
00993                 a__ss_ptr_member_ptr__object_ptr,
00994                 a__ss_ptr_member_ptr__member_ptr) );
00995 }
00996 
00997 /*!
00998    Generated constructor for class ss_ptr_member_ptr.
00999    \author lsg
01000  */
01001 ss_ptr_member_ptr::ss_ptr_member_ptr (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01002                 ptr< ss_type > a__ss_expression__type,
01003                 ptr< ss_sp > a__ss_expression__psp,
01004                 ptr< ss_sp > a__ss_expression__nsp,
01005                 ptr< ss_expression > a__ss_ptr_member_ptr__object_ptr,
01006                 ptr< ss_expression > a__ss_ptr_member_ptr__member_ptr)
01007         : ss_expression(a__ss_base_with_location__location,
01008                 a__ss_expression__type,
01009                 a__ss_expression__psp,
01010                 a__ss_expression__nsp), object_ptr(checked(a__ss_ptr_member_ptr__object_ptr)), member_ptr(checked(a__ss_ptr_member_ptr__member_ptr))
01011 {}
01012 
01013 ptr< object::reflection_list > ss_ptr_member_ptr::reflection_get() const
01014 {
01015         if (!reflection) {
01016                 typedef class_reflection::field_metadata md;
01017                 typedef class_reflection::field_metadata_list mdlist;
01018                 ptr<mdlist> mdl = mdlist::create();
01019                 mdl->push_back( md::create( "object_ptr", "ss_expression" ) );
01020                 mdl->push_back( md::create( "member_ptr", "ss_expression" ) );
01021                 reflection = reflection_list::create( ss_expression::reflection_get() );
01022                 reflection->push_back( class_reflection::create( "ss_ptr_member_ptr", mdl ) );
01023         }
01024         return reflection;
01025 }
01026 
01027 ptr< object::field_list_list > ss_ptr_member_ptr::field_values_get() const
01028 {
01029         ptr < field_list_list > result = ss_expression::field_values_get();
01030         result->push_back( value_list::create() );
01031         result->back()->push_back( this->object_ptr );
01032         result->push_back( value_list::create() );
01033         result->back()->push_back( this->member_ptr );
01034         return result;
01035 }
01036 
01037 
01038 /*!
01039    Marking routine is used for garbage collection.
01040    \author lsg
01041  */
01042 void ss_ptr_member_ptr::gc_mark()
01043 {
01044         ss_expression::gc_mark();
01045 }
01046 
01047 // End of class ss_ptr_member_ptr.
01048 
01049 // ------------- Class ss_access follows. -------------
01050 
01051 /*!
01052    \returns The value of ss_access::object.
01053    \author lsg
01054  */
01055 ptr< ss_expression > ss_access::object_get() const
01056 {
01057         return object;
01058 }
01059 
01060 /*!
01061    \param[in] x The new value to set ss_access::object to.
01062    \author lsg
01063  */
01064 void ss_access::object_set(const ptr< ss_expression > & x)
01065 {
01066         ss_access::object = x;
01067 }
01068 
01069 /*!
01070    \returns The value of ss_access::member.
01071    \author lsg
01072  */
01073 ptr< ss_declaration > ss_access::member_get() const
01074 {
01075         return member;
01076 }
01077 
01078 /*!
01079    \param[in] x The new value to set ss_access::member to.
01080    \author lsg
01081  */
01082 void ss_access::member_set(const ptr< ss_declaration > & x)
01083 {
01084         ss_access::member = x;
01085 }
01086 
01087 void ss_access::accept_ss_expression_visitor( ptr< ss_expression_visitor > v )
01088 {
01089         return v->visit_ss_access( this );
01090 }
01091 
01092 /*!
01093    This factory method for class ss_access takes values of all fields as arguments.
01094    \author lsg
01095  */
01096 ptr< ss_access > ss_access::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01097                 ptr< ss_type > a__ss_expression__type,
01098                 ptr< ss_sp > a__ss_expression__psp,
01099                 ptr< ss_sp > a__ss_expression__nsp,
01100                 ptr< ss_expression > a__ss_access__object,
01101                 ptr< ss_declaration > a__ss_access__member)
01102 {
01103         return ptr< ss_access > ( new ss_access(a__ss_base_with_location__location,
01104                 a__ss_expression__type,
01105                 a__ss_expression__psp,
01106                 a__ss_expression__nsp,
01107                 a__ss_access__object,
01108                 a__ss_access__member) );
01109 }
01110 
01111 /*!
01112    Generated constructor for class ss_access.
01113    \author lsg
01114  */
01115 ss_access::ss_access (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01116                 ptr< ss_type > a__ss_expression__type,
01117                 ptr< ss_sp > a__ss_expression__psp,
01118                 ptr< ss_sp > a__ss_expression__nsp,
01119                 ptr< ss_expression > a__ss_access__object,
01120                 ptr< ss_declaration > a__ss_access__member)
01121         : ss_expression(a__ss_base_with_location__location,
01122                 a__ss_expression__type,
01123                 a__ss_expression__psp,
01124                 a__ss_expression__nsp), object(checked(a__ss_access__object)), member(checked(a__ss_access__member))
01125 {}
01126 
01127 ptr< object::reflection_list > ss_access::reflection_get() const
01128 {
01129         if (!reflection) {
01130                 typedef class_reflection::field_metadata md;
01131                 typedef class_reflection::field_metadata_list mdlist;
01132                 ptr<mdlist> mdl = mdlist::create();
01133                 mdl->push_back( md::create( "object", "ss_expression" ) );
01134                 mdl->push_back( md::create( "member", "ss_declaration" ) );
01135                 reflection = reflection_list::create( ss_expression::reflection_get() );
01136                 reflection->push_back( class_reflection::create( "ss_access", mdl ) );
01137         }
01138         return reflection;
01139 }
01140 
01141 ptr< object::field_list_list > ss_access::field_values_get() const
01142 {
01143         ptr < field_list_list > result = ss_expression::field_values_get();
01144         result->push_back( value_list::create() );
01145         result->back()->push_back( this->object );
01146         result->push_back( value_list::create() );
01147         result->back()->push_back( this->member );
01148         return result;
01149 }
01150 
01151 
01152 /*!
01153    Marking routine is used for garbage collection.
01154    \author lsg
01155  */
01156 void ss_access::gc_mark()
01157 {
01158         ss_expression::gc_mark();
01159 }
01160 
01161 // End of class ss_access.
01162 
01163 // ------------- Class ss_ptr_access follows. -------------
01164 
01165 /*!
01166    \returns The value of ss_ptr_access::object_ptr.
01167    \author lsg
01168  */
01169 ptr< ss_expression > ss_ptr_access::object_ptr_get() const
01170 {
01171         return object_ptr;
01172 }
01173 
01174 /*!
01175    \param[in] x The new value to set ss_ptr_access::object_ptr to.
01176    \author lsg
01177  */
01178 void ss_ptr_access::object_ptr_set(const ptr< ss_expression > & x)
01179 {
01180         ss_ptr_access::object_ptr = x;
01181 }
01182 
01183 /*!
01184    \returns The value of ss_ptr_access::member.
01185    \author lsg
01186  */
01187 ptr< ss_declaration > ss_ptr_access::member_get() const
01188 {
01189         return member;
01190 }
01191 
01192 /*!
01193    \param[in] x The new value to set ss_ptr_access::member to.
01194    \author lsg
01195  */
01196 void ss_ptr_access::member_set(const ptr< ss_declaration > & x)
01197 {
01198         ss_ptr_access::member = x;
01199 }
01200 
01201 void ss_ptr_access::accept_ss_expression_visitor( ptr< ss_expression_visitor > v )
01202 {
01203         return v->visit_ss_ptr_access( this );
01204 }
01205 
01206 /*!
01207    This factory method for class ss_ptr_access takes values of all fields as arguments.
01208    \author lsg
01209  */
01210 ptr< ss_ptr_access > ss_ptr_access::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01211                 ptr< ss_type > a__ss_expression__type,
01212                 ptr< ss_sp > a__ss_expression__psp,
01213                 ptr< ss_sp > a__ss_expression__nsp,
01214                 ptr< ss_expression > a__ss_ptr_access__object_ptr,
01215                 ptr< ss_declaration > a__ss_ptr_access__member)
01216 {
01217         return ptr< ss_ptr_access > ( new ss_ptr_access(a__ss_base_with_location__location,
01218                 a__ss_expression__type,
01219                 a__ss_expression__psp,
01220                 a__ss_expression__nsp,
01221                 a__ss_ptr_access__object_ptr,
01222                 a__ss_ptr_access__member) );
01223 }
01224 
01225 /*!
01226    Generated constructor for class ss_ptr_access.
01227    \author lsg
01228  */
01229 ss_ptr_access::ss_ptr_access (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01230                 ptr< ss_type > a__ss_expression__type,
01231                 ptr< ss_sp > a__ss_expression__psp,
01232                 ptr< ss_sp > a__ss_expression__nsp,
01233                 ptr< ss_expression > a__ss_ptr_access__object_ptr,
01234                 ptr< ss_declaration > a__ss_ptr_access__member)
01235         : ss_expression(a__ss_base_with_location__location,
01236                 a__ss_expression__type,
01237                 a__ss_expression__psp,
01238                 a__ss_expression__nsp), object_ptr(checked(a__ss_ptr_access__object_ptr)), member(checked(a__ss_ptr_access__member))
01239 {}
01240 
01241 ptr< object::reflection_list > ss_ptr_access::reflection_get() const
01242 {
01243         if (!reflection) {
01244                 typedef class_reflection::field_metadata md;
01245                 typedef class_reflection::field_metadata_list mdlist;
01246                 ptr<mdlist> mdl = mdlist::create();
01247                 mdl->push_back( md::create( "object_ptr", "ss_expression" ) );
01248                 mdl->push_back( md::create( "member", "ss_declaration" ) );
01249                 reflection = reflection_list::create( ss_expression::reflection_get() );
01250                 reflection->push_back( class_reflection::create( "ss_ptr_access", mdl ) );
01251         }
01252         return reflection;
01253 }
01254 
01255 ptr< object::field_list_list > ss_ptr_access::field_values_get() const
01256 {
01257         ptr < field_list_list > result = ss_expression::field_values_get();
01258         result->push_back( value_list::create() );
01259         result->back()->push_back( this->object_ptr );
01260         result->push_back( value_list::create() );
01261         result->back()->push_back( this->member );
01262         return result;
01263 }
01264 
01265 
01266 /*!
01267    Marking routine is used for garbage collection.
01268    \author lsg
01269  */
01270 void ss_ptr_access::gc_mark()
01271 {
01272         ss_expression::gc_mark();
01273 }
01274 
01275 // End of class ss_ptr_access.
01276 
01277 // ------------- Class ss_binary_expr follows. -------------
01278 
01279 /*!
01280    \returns The value of ss_binary_expr::left.
01281    \author lsg
01282  */
01283 ptr< ss_expression > ss_binary_expr::left_get() const
01284 {
01285         return left;
01286 }
01287 
01288 /*!
01289    \param[in] x The new value to set ss_binary_expr::left to.
01290    \author lsg
01291  */
01292 void ss_binary_expr::left_set(const ptr< ss_expression > & x)
01293 {
01294         ss_binary_expr::left = x;
01295 }
01296 
01297 /*!
01298    \returns The value of ss_binary_expr::right.
01299    \author lsg
01300  */
01301 ptr< ss_expression > ss_binary_expr::right_get() const
01302 {
01303         return right;
01304 }
01305 
01306 /*!
01307    \param[in] x The new value to set ss_binary_expr::right to.
01308    \author lsg
01309  */
01310 void ss_binary_expr::right_set(const ptr< ss_expression > & x)
01311 {
01312         ss_binary_expr::right = x;
01313 }
01314 
01315 /*!
01316    Generated constructor for class ss_binary_expr.
01317    \author lsg
01318  */
01319 ss_binary_expr::ss_binary_expr (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01320                 ptr< ss_type > a__ss_expression__type,
01321                 ptr< ss_sp > a__ss_expression__psp,
01322                 ptr< ss_sp > a__ss_expression__nsp,
01323                 ptr< ss_expression > a__ss_binary_expr__left,
01324                 ptr< ss_expression > a__ss_binary_expr__right)
01325         : ss_expression(a__ss_base_with_location__location,
01326                 a__ss_expression__type,
01327                 a__ss_expression__psp,
01328                 a__ss_expression__nsp), left(checked(a__ss_binary_expr__left)), right(checked(a__ss_binary_expr__right))
01329 {}
01330 
01331 ptr< object::reflection_list > ss_binary_expr::reflection_get() const
01332 {
01333         if (!reflection) {
01334                 typedef class_reflection::field_metadata md;
01335                 typedef class_reflection::field_metadata_list mdlist;
01336                 ptr<mdlist> mdl = mdlist::create();
01337                 mdl->push_back( md::create( "left", "ss_expression" ) );
01338                 mdl->push_back( md::create( "right", "ss_expression" ) );
01339                 reflection = reflection_list::create( ss_expression::reflection_get() );
01340                 reflection->push_back( class_reflection::create( "ss_binary_expr", mdl ) );
01341         }
01342         return reflection;
01343 }
01344 
01345 ptr< object::field_list_list > ss_binary_expr::field_values_get() const
01346 {
01347         ptr < field_list_list > result = ss_expression::field_values_get();
01348         result->push_back( value_list::create() );
01349         result->back()->push_back( this->left );
01350         result->push_back( value_list::create() );
01351         result->back()->push_back( this->right );
01352         return result;
01353 }
01354 
01355 
01356 /*!
01357    Marking routine is used for garbage collection.
01358    \author lsg
01359  */
01360 void ss_binary_expr::gc_mark()
01361 {
01362         ss_expression::gc_mark();
01363 }
01364 
01365 // End of class ss_binary_expr.
01366 
01367 
01368 // static data members follow 
01369 ptr<object::reflection_list> ss_expression::reflection = reflection;
01370 ptr<object::reflection_list> ss_this_expr::reflection = reflection;
01371 ptr<object::reflection_list> ss_literal::reflection = reflection;
01372 ptr<object::reflection_list> ss_ternary::reflection = reflection;
01373 ptr<object::reflection_list> ss_var_ref_abstract::reflection = reflection;
01374 ptr<object::reflection_list> ss_var_ref_by_qname::reflection = reflection;
01375 ptr<object::reflection_list> ss_var_ref::reflection = reflection;
01376 ptr<object::reflection_list> ss_throw::reflection = reflection;
01377 ptr<object::reflection_list> ss_member_ptr::reflection = reflection;
01378 ptr<object::reflection_list> ss_ptr_member_ptr::reflection = reflection;
01379 ptr<object::reflection_list> ss_access::reflection = reflection;
01380 ptr<object::reflection_list> ss_ptr_access::reflection = reflection;
01381 ptr<object::reflection_list> ss_binary_expr::reflection = reflection;
01382 
01383 end_package(sem);
01384 end_package(cplus);
01385 end_package(lang);
01386 end_package(lestes);
01387 

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