pi.g.cc

Go to the documentation of this file.
00001 // This file is automatically generated, do not edit.
00002 
00003 /*!
00004         \file
00005         \brief Classes of pi-level pseudoinstructions used in backend.
00006         \author jaz
00007 */
00008 
00009 #include <lestes/md/literals/literal_info_base.g.hh>
00010 #include <lestes/backend_v2/intercode/pi_visitor_bases.v.g.hh>
00011 #include <lestes/backend_v2/intercode/pi_mem_factory.g.hh>
00012 #include <lestes/backend_v2/structs/pi_operands.g.hh>
00013 #include <lestes/lang/cplus/sem/ss_misc.g.hh>
00014 #include <lestes/lang/cplus/sem/ss_declaration.g.hh>
00015 #include <lestes/md/types/tm_data_type_base.g.hh>
00016 
00017 #include <lestes/std/list.hh>
00018 #include <lestes/std/pair.hh>
00019 #include <lestes/std/reflect.hh>
00020 
00021 #include <lestes/backend_v2/intercode/pi.g.hh>
00022 
00023 package(lestes);
00024 package(backend_v2);
00025 package(intercode);
00026 
00027 
00028 // ------------- Class pi_pi follows. -------------
00029 
00030 /*!
00031    \returns The value of pi_pi::psp.
00032    \author lsg
00033  */
00034 ptr< pi_pi > pi_pi::psp_get() const
00035 {
00036         return psp;
00037 }
00038 
00039 /*!
00040    \param[in] x The new value to set pi_pi::psp to.
00041    \author lsg
00042  */
00043 void pi_pi::psp_set(const ptr< pi_pi > & x)
00044 {
00045         pi_pi::psp = x;
00046 }
00047 
00048 /*!
00049    \returns The value of pi_pi::nsp.
00050    \author lsg
00051  */
00052 ptr< pi_pi > pi_pi::nsp_get() const
00053 {
00054         return nsp;
00055 }
00056 
00057 /*!
00058    \param[in] x The new value to set pi_pi::nsp to.
00059    \author lsg
00060  */
00061 void pi_pi::nsp_set(const ptr< pi_pi > & x)
00062 {
00063         pi_pi::nsp = x;
00064 }
00065 
00066 /*!
00067    \returns The value of pi_pi::level.
00068    \author lsg
00069  */
00070 ulint pi_pi::level_get() const
00071 {
00072         return level;
00073 }
00074 
00075 /*!
00076    \param[in] x The new value to set pi_pi::level to.
00077    \author lsg
00078  */
00079 void pi_pi::level_set(ulint x)
00080 {
00081         pi_pi::level = x;
00082 }
00083 
00084 /*!
00085    Generated constructor for class pi_pi.
00086    \author lsg
00087  */
00088 pi_pi::pi_pi (ptr< pi_pi > a__pi_pi__psp,
00089                 ptr< pi_pi > a__pi_pi__nsp,
00090                 ulint a__pi_pi__level)
00091         : ::lestes::intercode::pi_base(), psp(a__pi_pi__psp), nsp(a__pi_pi__nsp), level(a__pi_pi__level)
00092 {}
00093 
00094 ptr< object::reflection_list > pi_pi::reflection_get() const
00095 {
00096         if (!reflection) {
00097                 typedef class_reflection::field_metadata md;
00098                 typedef class_reflection::field_metadata_list mdlist;
00099                 ptr<mdlist> mdl = mdlist::create();
00100                 mdl->push_back( md::create( "psp", "pi_pi" ) );
00101                 mdl->push_back( md::create( "nsp", "pi_pi" ) );
00102                 mdl->push_back( md::create( "level", "ulint" ) );
00103                 reflection = reflection_list::create( ::lestes::intercode::pi_base::reflection_get() );
00104                 reflection->push_back( class_reflection::create( "pi_pi", mdl ) );
00105         }
00106         return reflection;
00107 }
00108 
00109 ptr< object::field_list_list > pi_pi::field_values_get() const
00110 {
00111         ptr < field_list_list > result = ::lestes::intercode::pi_base::field_values_get();
00112         result->push_back( value_list::create() );
00113         result->back()->push_back( this->psp );
00114         result->push_back( value_list::create() );
00115         result->back()->push_back( this->nsp );
00116         result->push_back( value_list::create() );
00117         result->back()->push_back( objectize< ulint > ::create( this->level ) );
00118         return result;
00119 }
00120 
00121 
00122 /*!
00123    Marking routine is used for garbage collection.
00124    \author lsg
00125  */
00126 void pi_pi::gc_mark()
00127 {
00128 	::lestes::intercode::pi_base::gc_mark();
00129 }
00130 
00131 // End of class pi_pi.
00132 
00133 // ------------- Class pi_branch follows. -------------
00134 
00135 /*!
00136    Generated constructor for class pi_branch.
00137    \author lsg
00138  */
00139 pi_branch::pi_branch (ptr< pi_pi > a__pi_pi__psp,
00140                 ptr< pi_pi > a__pi_pi__nsp,
00141                 ulint a__pi_pi__level)
00142         : pi_pi(a__pi_pi__psp,
00143                 a__pi_pi__nsp,
00144                 a__pi_pi__level)
00145 {}
00146 
00147 ptr< object::reflection_list > pi_branch::reflection_get() const
00148 {
00149         if (!reflection) {
00150                 typedef class_reflection::field_metadata md;
00151                 typedef class_reflection::field_metadata_list mdlist;
00152                 ptr<mdlist> mdl = mdlist::create();
00153                 reflection = reflection_list::create( pi_pi::reflection_get() );
00154                 reflection->push_back( class_reflection::create( "pi_branch", mdl ) );
00155         }
00156         return reflection;
00157 }
00158 
00159 ptr< object::field_list_list > pi_branch::field_values_get() const
00160 {
00161         ptr < field_list_list > result = pi_pi::field_values_get();
00162         return result;
00163 }
00164 
00165 
00166 /*!
00167    Marking routine is used for garbage collection.
00168    \author lsg
00169  */
00170 void pi_branch::gc_mark()
00171 {
00172         pi_pi::gc_mark();
00173 }
00174 
00175 // End of class pi_branch.
00176 
00177 // ------------- Class pi_conditional_branch follows. -------------
00178 
00179 /*!
00180    \returns The value of pi_conditional_branch::condition.
00181    \author lsg
00182  */
00183 ptr< pi_preg > pi_conditional_branch::condition_get() const
00184 {
00185         return condition;
00186 }
00187 
00188 /*!
00189    \param[in] x The new value to set pi_conditional_branch::condition to.
00190    \author lsg
00191  */
00192 void pi_conditional_branch::condition_set(const ptr< pi_preg > & x)
00193 {
00194         pi_conditional_branch::condition = x;
00195 }
00196 
00197 /*!
00198    Generated constructor for class pi_conditional_branch.
00199    \author lsg
00200  */
00201 pi_conditional_branch::pi_conditional_branch (ptr< pi_pi > a__pi_pi__psp,
00202                 ptr< pi_pi > a__pi_pi__nsp,
00203                 ulint a__pi_pi__level,
00204                 ptr< pi_preg > a__pi_conditional_branch__condition)
00205         : pi_branch(a__pi_pi__psp,
00206                 a__pi_pi__nsp,
00207                 a__pi_pi__level), condition(checked(a__pi_conditional_branch__condition))
00208 {}
00209 
00210 ptr< object::reflection_list > pi_conditional_branch::reflection_get() const
00211 {
00212         if (!reflection) {
00213                 typedef class_reflection::field_metadata md;
00214                 typedef class_reflection::field_metadata_list mdlist;
00215                 ptr<mdlist> mdl = mdlist::create();
00216                 mdl->push_back( md::create( "condition", "pi_preg" ) );
00217                 reflection = reflection_list::create( pi_branch::reflection_get() );
00218                 reflection->push_back( class_reflection::create( "pi_conditional_branch", mdl ) );
00219         }
00220         return reflection;
00221 }
00222 
00223 ptr< object::field_list_list > pi_conditional_branch::field_values_get() const
00224 {
00225         ptr < field_list_list > result = pi_branch::field_values_get();
00226         result->push_back( value_list::create() );
00227         result->back()->push_back( this->condition );
00228         return result;
00229 }
00230 
00231 
00232 /*!
00233    Marking routine is used for garbage collection.
00234    \author lsg
00235  */
00236 void pi_conditional_branch::gc_mark()
00237 {
00238         pi_branch::gc_mark();
00239 }
00240 
00241 // End of class pi_conditional_branch.
00242 
00243 // ------------- Class pi_uconditional_branch follows. -------------
00244 
00245 /*!
00246    Generated constructor for class pi_uconditional_branch.
00247    \author lsg
00248  */
00249 pi_uconditional_branch::pi_uconditional_branch (ptr< pi_pi > a__pi_pi__psp,
00250                 ptr< pi_pi > a__pi_pi__nsp,
00251                 ulint a__pi_pi__level)
00252         : pi_branch(a__pi_pi__psp,
00253                 a__pi_pi__nsp,
00254                 a__pi_pi__level)
00255 {}
00256 
00257 ptr< object::reflection_list > pi_uconditional_branch::reflection_get() const
00258 {
00259         if (!reflection) {
00260                 typedef class_reflection::field_metadata md;
00261                 typedef class_reflection::field_metadata_list mdlist;
00262                 ptr<mdlist> mdl = mdlist::create();
00263                 reflection = reflection_list::create( pi_branch::reflection_get() );
00264                 reflection->push_back( class_reflection::create( "pi_uconditional_branch", mdl ) );
00265         }
00266         return reflection;
00267 }
00268 
00269 ptr< object::field_list_list > pi_uconditional_branch::field_values_get() const
00270 {
00271         ptr < field_list_list > result = pi_branch::field_values_get();
00272         return result;
00273 }
00274 
00275 
00276 /*!
00277    Marking routine is used for garbage collection.
00278    \author lsg
00279  */
00280 void pi_uconditional_branch::gc_mark()
00281 {
00282         pi_branch::gc_mark();
00283 }
00284 
00285 // End of class pi_uconditional_branch.
00286 
00287 // ------------- Class pi_branch_multiple follows. -------------
00288 
00289 /*!
00290    \returns The value of pi_branch_multiple::value.
00291    \author lsg
00292  */
00293 ptr< pi_preg > pi_branch_multiple::value_get() const
00294 {
00295         return value;
00296 }
00297 
00298 /*!
00299    \param[in] x The new value to set pi_branch_multiple::value to.
00300    \author lsg
00301  */
00302 void pi_branch_multiple::value_set(const ptr< pi_preg > & x)
00303 {
00304         pi_branch_multiple::value = x;
00305 }
00306 
00307 /*!
00308    Generated constructor for class pi_branch_multiple.
00309    \author lsg
00310  */
00311 pi_branch_multiple::pi_branch_multiple (ptr< pi_pi > a__pi_pi__psp,
00312                 ptr< pi_pi > a__pi_pi__nsp,
00313                 ulint a__pi_pi__level,
00314                 ptr< pi_preg > a__pi_branch_multiple__value)
00315         : pi_branch(a__pi_pi__psp,
00316                 a__pi_pi__nsp,
00317                 a__pi_pi__level), value(checked(a__pi_branch_multiple__value))
00318 {}
00319 
00320 ptr< object::reflection_list > pi_branch_multiple::reflection_get() const
00321 {
00322         if (!reflection) {
00323                 typedef class_reflection::field_metadata md;
00324                 typedef class_reflection::field_metadata_list mdlist;
00325                 ptr<mdlist> mdl = mdlist::create();
00326                 mdl->push_back( md::create( "value", "pi_preg" ) );
00327                 reflection = reflection_list::create( pi_branch::reflection_get() );
00328                 reflection->push_back( class_reflection::create( "pi_branch_multiple", mdl ) );
00329         }
00330         return reflection;
00331 }
00332 
00333 ptr< object::field_list_list > pi_branch_multiple::field_values_get() const
00334 {
00335         ptr < field_list_list > result = pi_branch::field_values_get();
00336         result->push_back( value_list::create() );
00337         result->back()->push_back( this->value );
00338         return result;
00339 }
00340 
00341 
00342 /*!
00343    Marking routine is used for garbage collection.
00344    \author lsg
00345  */
00346 void pi_branch_multiple::gc_mark()
00347 {
00348         pi_branch::gc_mark();
00349 }
00350 
00351 // End of class pi_branch_multiple.
00352 
00353 // ------------- Class pi_cb_single_label_target follows. -------------
00354 
00355 /*!
00356    \returns The value of pi_cb_single_label_target::destination.
00357    \author lsg
00358  */
00359 ptr< pi_sp > pi_cb_single_label_target::destination_get() const
00360 {
00361         return destination;
00362 }
00363 
00364 /*!
00365    \param[in] x The new value to set pi_cb_single_label_target::destination to.
00366    \author lsg
00367  */
00368 void pi_cb_single_label_target::destination_set(const ptr< pi_sp > & x)
00369 {
00370         pi_cb_single_label_target::destination = x;
00371 }
00372 
00373 /*!
00374    Generated constructor for class pi_cb_single_label_target.
00375    \author lsg
00376  */
00377 pi_cb_single_label_target::pi_cb_single_label_target (ptr< pi_pi > a__pi_pi__psp,
00378                 ptr< pi_pi > a__pi_pi__nsp,
00379                 ulint a__pi_pi__level,
00380                 ptr< pi_preg > a__pi_conditional_branch__condition,
00381                 ptr< pi_sp > a__pi_cb_single_label_target__destination)
00382         : pi_conditional_branch(a__pi_pi__psp,
00383                 a__pi_pi__nsp,
00384                 a__pi_pi__level,
00385                 a__pi_conditional_branch__condition), destination(checked(a__pi_cb_single_label_target__destination))
00386 {}
00387 
00388 ptr< object::reflection_list > pi_cb_single_label_target::reflection_get() const
00389 {
00390         if (!reflection) {
00391                 typedef class_reflection::field_metadata md;
00392                 typedef class_reflection::field_metadata_list mdlist;
00393                 ptr<mdlist> mdl = mdlist::create();
00394                 mdl->push_back( md::create( "destination", "pi_sp" ) );
00395                 reflection = reflection_list::create( pi_conditional_branch::reflection_get() );
00396                 reflection->push_back( class_reflection::create( "pi_cb_single_label_target", mdl ) );
00397         }
00398         return reflection;
00399 }
00400 
00401 ptr< object::field_list_list > pi_cb_single_label_target::field_values_get() const
00402 {
00403         ptr < field_list_list > result = pi_conditional_branch::field_values_get();
00404         result->push_back( value_list::create() );
00405         result->back()->push_back( this->destination );
00406         return result;
00407 }
00408 
00409 
00410 /*!
00411    Marking routine is used for garbage collection.
00412    \author lsg
00413  */
00414 void pi_cb_single_label_target::gc_mark()
00415 {
00416         pi_conditional_branch::gc_mark();
00417 }
00418 
00419 // End of class pi_cb_single_label_target.
00420 
00421 // ------------- Class pi_cb_single_address_target follows. -------------
00422 
00423 /*!
00424    \returns The value of pi_cb_single_address_target::destination.
00425    \author lsg
00426  */
00427 ptr< pi_preg > pi_cb_single_address_target::destination_get() const
00428 {
00429         return destination;
00430 }
00431 
00432 /*!
00433    \param[in] x The new value to set pi_cb_single_address_target::destination to.
00434    \author lsg
00435  */
00436 void pi_cb_single_address_target::destination_set(const ptr< pi_preg > & x)
00437 {
00438         pi_cb_single_address_target::destination = x;
00439 }
00440 
00441 /*!
00442    Generated constructor for class pi_cb_single_address_target.
00443    \author lsg
00444  */
00445 pi_cb_single_address_target::pi_cb_single_address_target (ptr< pi_pi > a__pi_pi__psp,
00446                 ptr< pi_pi > a__pi_pi__nsp,
00447                 ulint a__pi_pi__level,
00448                 ptr< pi_preg > a__pi_conditional_branch__condition,
00449                 ptr< pi_preg > a__pi_cb_single_address_target__destination)
00450         : pi_conditional_branch(a__pi_pi__psp,
00451                 a__pi_pi__nsp,
00452                 a__pi_pi__level,
00453                 a__pi_conditional_branch__condition), destination(checked(a__pi_cb_single_address_target__destination))
00454 {}
00455 
00456 ptr< object::reflection_list > pi_cb_single_address_target::reflection_get() const
00457 {
00458         if (!reflection) {
00459                 typedef class_reflection::field_metadata md;
00460                 typedef class_reflection::field_metadata_list mdlist;
00461                 ptr<mdlist> mdl = mdlist::create();
00462                 mdl->push_back( md::create( "destination", "pi_preg" ) );
00463                 reflection = reflection_list::create( pi_conditional_branch::reflection_get() );
00464                 reflection->push_back( class_reflection::create( "pi_cb_single_address_target", mdl ) );
00465         }
00466         return reflection;
00467 }
00468 
00469 ptr< object::field_list_list > pi_cb_single_address_target::field_values_get() const
00470 {
00471         ptr < field_list_list > result = pi_conditional_branch::field_values_get();
00472         result->push_back( value_list::create() );
00473         result->back()->push_back( this->destination );
00474         return result;
00475 }
00476 
00477 
00478 /*!
00479    Marking routine is used for garbage collection.
00480    \author lsg
00481  */
00482 void pi_cb_single_address_target::gc_mark()
00483 {
00484         pi_conditional_branch::gc_mark();
00485 }
00486 
00487 // End of class pi_cb_single_address_target.
00488 
00489 // ------------- Class pi_ub_single_label_target follows. -------------
00490 
00491 /*!
00492    \returns The value of pi_ub_single_label_target::destination.
00493    \author lsg
00494  */
00495 ptr< pi_sp > pi_ub_single_label_target::destination_get() const
00496 {
00497         return destination;
00498 }
00499 
00500 /*!
00501    \param[in] x The new value to set pi_ub_single_label_target::destination to.
00502    \author lsg
00503  */
00504 void pi_ub_single_label_target::destination_set(const ptr< pi_sp > & x)
00505 {
00506         pi_ub_single_label_target::destination = x;
00507 }
00508 
00509 /*!
00510    Generated constructor for class pi_ub_single_label_target.
00511    \author lsg
00512  */
00513 pi_ub_single_label_target::pi_ub_single_label_target (ptr< pi_pi > a__pi_pi__psp,
00514                 ptr< pi_pi > a__pi_pi__nsp,
00515                 ulint a__pi_pi__level,
00516                 ptr< pi_sp > a__pi_ub_single_label_target__destination)
00517         : pi_uconditional_branch(a__pi_pi__psp,
00518                 a__pi_pi__nsp,
00519                 a__pi_pi__level), destination(checked(a__pi_ub_single_label_target__destination))
00520 {}
00521 
00522 ptr< object::reflection_list > pi_ub_single_label_target::reflection_get() const
00523 {
00524         if (!reflection) {
00525                 typedef class_reflection::field_metadata md;
00526                 typedef class_reflection::field_metadata_list mdlist;
00527                 ptr<mdlist> mdl = mdlist::create();
00528                 mdl->push_back( md::create( "destination", "pi_sp" ) );
00529                 reflection = reflection_list::create( pi_uconditional_branch::reflection_get() );
00530                 reflection->push_back( class_reflection::create( "pi_ub_single_label_target", mdl ) );
00531         }
00532         return reflection;
00533 }
00534 
00535 ptr< object::field_list_list > pi_ub_single_label_target::field_values_get() const
00536 {
00537         ptr < field_list_list > result = pi_uconditional_branch::field_values_get();
00538         result->push_back( value_list::create() );
00539         result->back()->push_back( this->destination );
00540         return result;
00541 }
00542 
00543 
00544 /*!
00545    Marking routine is used for garbage collection.
00546    \author lsg
00547  */
00548 void pi_ub_single_label_target::gc_mark()
00549 {
00550         pi_uconditional_branch::gc_mark();
00551 }
00552 
00553 // End of class pi_ub_single_label_target.
00554 
00555 // ------------- Class pi_ub_single_address_target follows. -------------
00556 
00557 /*!
00558    \returns The value of pi_ub_single_address_target::destination.
00559    \author lsg
00560  */
00561 ptr< pi_preg > pi_ub_single_address_target::destination_get() const
00562 {
00563         return destination;
00564 }
00565 
00566 /*!
00567    \param[in] x The new value to set pi_ub_single_address_target::destination to.
00568    \author lsg
00569  */
00570 void pi_ub_single_address_target::destination_set(const ptr< pi_preg > & x)
00571 {
00572         pi_ub_single_address_target::destination = x;
00573 }
00574 
00575 /*!
00576    Generated constructor for class pi_ub_single_address_target.
00577    \author lsg
00578  */
00579 pi_ub_single_address_target::pi_ub_single_address_target (ptr< pi_pi > a__pi_pi__psp,
00580                 ptr< pi_pi > a__pi_pi__nsp,
00581                 ulint a__pi_pi__level,
00582                 ptr< pi_preg > a__pi_ub_single_address_target__destination)
00583         : pi_uconditional_branch(a__pi_pi__psp,
00584                 a__pi_pi__nsp,
00585                 a__pi_pi__level), destination(checked(a__pi_ub_single_address_target__destination))
00586 {}
00587 
00588 ptr< object::reflection_list > pi_ub_single_address_target::reflection_get() const
00589 {
00590         if (!reflection) {
00591                 typedef class_reflection::field_metadata md;
00592                 typedef class_reflection::field_metadata_list mdlist;
00593                 ptr<mdlist> mdl = mdlist::create();
00594                 mdl->push_back( md::create( "destination", "pi_preg" ) );
00595                 reflection = reflection_list::create( pi_uconditional_branch::reflection_get() );
00596                 reflection->push_back( class_reflection::create( "pi_ub_single_address_target", mdl ) );
00597         }
00598         return reflection;
00599 }
00600 
00601 ptr< object::field_list_list > pi_ub_single_address_target::field_values_get() const
00602 {
00603         ptr < field_list_list > result = pi_uconditional_branch::field_values_get();
00604         result->push_back( value_list::create() );
00605         result->back()->push_back( this->destination );
00606         return result;
00607 }
00608 
00609 
00610 /*!
00611    Marking routine is used for garbage collection.
00612    \author lsg
00613  */
00614 void pi_ub_single_address_target::gc_mark()
00615 {
00616         pi_uconditional_branch::gc_mark();
00617 }
00618 
00619 // End of class pi_ub_single_address_target.
00620 
00621 // ------------- Class pi_branch_multiple_label_target follows. -------------
00622 
00623 /*!
00624    \returns The value of pi_branch_multiple_label_target::targets.
00625    \author lsg
00626  */
00627 ptr< ::lestes::std::map< srp< ::lestes::md::literals::literal_info_base >, srp< pi_sp > > > pi_branch_multiple_label_target::targets_get() const
00628 {
00629         return targets;
00630 }
00631 
00632 /*!
00633    \param[in] x The new value to set pi_branch_multiple_label_target::targets to.
00634    \author lsg
00635  */
00636 void pi_branch_multiple_label_target::targets_set(const ptr< ::lestes::std::map< srp< ::lestes::md::literals::literal_info_base >, srp< pi_sp > > > & x)
00637 {
00638         pi_branch_multiple_label_target::targets = x;
00639 }
00640 
00641 /*!
00642    Generated constructor for class pi_branch_multiple_label_target.
00643    \author lsg
00644  */
00645 pi_branch_multiple_label_target::pi_branch_multiple_label_target (ptr< pi_pi > a__pi_pi__psp,
00646                 ptr< pi_pi > a__pi_pi__nsp,
00647                 ulint a__pi_pi__level,
00648                 ptr< pi_preg > a__pi_branch_multiple__value,
00649                 ptr< ::lestes::std::map< srp< ::lestes::md::literals::literal_info_base >, srp< pi_sp > > > a__pi_branch_multiple_label_target__targets)
00650         : pi_branch_multiple(a__pi_pi__psp,
00651                 a__pi_pi__nsp,
00652                 a__pi_pi__level,
00653                 a__pi_branch_multiple__value), targets(checked(a__pi_branch_multiple_label_target__targets))
00654 {}
00655 
00656 ptr< object::reflection_list > pi_branch_multiple_label_target::reflection_get() const
00657 {
00658         if (!reflection) {
00659                 typedef class_reflection::field_metadata md;
00660                 typedef class_reflection::field_metadata_list mdlist;
00661                 ptr<mdlist> mdl = mdlist::create();
00662                 mdl->push_back( md::create( "targets", "map&lt; srp&lt; ::lestes::md::literals::literal_info_base &gt;, srp&lt; pi_sp &gt; &gt;" ) );
00663                 reflection = reflection_list::create( pi_branch_multiple::reflection_get() );
00664                 reflection->push_back( class_reflection::create( "pi_branch_multiple_label_target", mdl ) );
00665         }
00666         return reflection;
00667 }
00668 
00669 ptr< object::field_list_list > pi_branch_multiple_label_target::field_values_get() const
00670 {
00671         ptr < field_list_list > result = pi_branch_multiple::field_values_get();
00672         result->push_back( value_list::create() );
00673         result->back()->push_back( this->targets );
00674         return result;
00675 }
00676 
00677 
00678 /*!
00679    Marking routine is used for garbage collection.
00680    \author lsg
00681  */
00682 void pi_branch_multiple_label_target::gc_mark()
00683 {
00684         pi_branch_multiple::gc_mark();
00685 }
00686 
00687 // End of class pi_branch_multiple_label_target.
00688 
00689 // ------------- Class pi_branch_multiple_address_target follows. -------------
00690 
00691 /*!
00692    \returns The value of pi_branch_multiple_address_target::targets.
00693    \author lsg
00694  */
00695 ptr< ::lestes::std::map< srp< ::lestes::md::literals::literal_info_base >, srp< pi_preg > > > pi_branch_multiple_address_target::targets_get() const
00696 {
00697         return targets;
00698 }
00699 
00700 /*!
00701    \param[in] x The new value to set pi_branch_multiple_address_target::targets to.
00702    \author lsg
00703  */
00704 void pi_branch_multiple_address_target::targets_set(const ptr< ::lestes::std::map< srp< ::lestes::md::literals::literal_info_base >, srp< pi_preg > > > & x)
00705 {
00706         pi_branch_multiple_address_target::targets = x;
00707 }
00708 
00709 /*!
00710    Generated constructor for class pi_branch_multiple_address_target.
00711    \author lsg
00712  */
00713 pi_branch_multiple_address_target::pi_branch_multiple_address_target (ptr< pi_pi > a__pi_pi__psp,
00714                 ptr< pi_pi > a__pi_pi__nsp,
00715                 ulint a__pi_pi__level,
00716                 ptr< pi_preg > a__pi_branch_multiple__value,
00717                 ptr< ::lestes::std::map< srp< ::lestes::md::literals::literal_info_base >, srp< pi_preg > > > a__pi_branch_multiple_address_target__targets)
00718         : pi_branch_multiple(a__pi_pi__psp,
00719                 a__pi_pi__nsp,
00720                 a__pi_pi__level,
00721                 a__pi_branch_multiple__value), targets(checked(a__pi_branch_multiple_address_target__targets))
00722 {}
00723 
00724 ptr< object::reflection_list > pi_branch_multiple_address_target::reflection_get() const
00725 {
00726         if (!reflection) {
00727                 typedef class_reflection::field_metadata md;
00728                 typedef class_reflection::field_metadata_list mdlist;
00729                 ptr<mdlist> mdl = mdlist::create();
00730                 mdl->push_back( md::create( "targets", "map&lt; srp&lt; ::lestes::md::literals::literal_info_base &gt;, srp&lt; pi_preg &gt; &gt;" ) );
00731                 reflection = reflection_list::create( pi_branch_multiple::reflection_get() );
00732                 reflection->push_back( class_reflection::create( "pi_branch_multiple_address_target", mdl ) );
00733         }
00734         return reflection;
00735 }
00736 
00737 ptr< object::field_list_list > pi_branch_multiple_address_target::field_values_get() const
00738 {
00739         ptr < field_list_list > result = pi_branch_multiple::field_values_get();
00740         result->push_back( value_list::create() );
00741         result->back()->push_back( this->targets );
00742         return result;
00743 }
00744 
00745 
00746 /*!
00747    Marking routine is used for garbage collection.
00748    \author lsg
00749  */
00750 void pi_branch_multiple_address_target::gc_mark()
00751 {
00752         pi_branch_multiple::gc_mark();
00753 }
00754 
00755 // End of class pi_branch_multiple_address_target.
00756 
00757 // ------------- Class pi_bpi follows. -------------
00758 
00759 /*!
00760    \returns The value of pi_bpi::source.
00761    \author lsg
00762  */
00763 ptr< pi_non_mem > pi_bpi::source_get() const
00764 {
00765         return source;
00766 }
00767 
00768 /*!
00769    \param[in] x The new value to set pi_bpi::source to.
00770    \author lsg
00771  */
00772 void pi_bpi::source_set(const ptr< pi_non_mem > & x)
00773 {
00774         pi_bpi::source = x;
00775 }
00776 
00777 /*!
00778    \returns The value of pi_bpi::destination.
00779    \author lsg
00780  */
00781 ptr< pi_preg > pi_bpi::destination_get() const
00782 {
00783         return destination;
00784 }
00785 
00786 /*!
00787    \param[in] x The new value to set pi_bpi::destination to.
00788    \author lsg
00789  */
00790 void pi_bpi::destination_set(const ptr< pi_preg > & x)
00791 {
00792         pi_bpi::destination = x;
00793 }
00794 
00795 /*!
00796    Generated constructor for class pi_bpi.
00797    \author lsg
00798  */
00799 pi_bpi::pi_bpi (ptr< pi_pi > a__pi_pi__psp,
00800                 ptr< pi_pi > a__pi_pi__nsp,
00801                 ulint a__pi_pi__level,
00802                 ptr< pi_non_mem > a__pi_bpi__source,
00803                 ptr< pi_preg > a__pi_bpi__destination)
00804         : pi_pi(a__pi_pi__psp,
00805                 a__pi_pi__nsp,
00806                 a__pi_pi__level), source(checked(a__pi_bpi__source)), destination(checked(a__pi_bpi__destination))
00807 {}
00808 
00809 ptr< object::reflection_list > pi_bpi::reflection_get() const
00810 {
00811         if (!reflection) {
00812                 typedef class_reflection::field_metadata md;
00813                 typedef class_reflection::field_metadata_list mdlist;
00814                 ptr<mdlist> mdl = mdlist::create();
00815                 mdl->push_back( md::create( "source", "pi_non_mem" ) );
00816                 mdl->push_back( md::create( "destination", "pi_preg" ) );
00817                 reflection = reflection_list::create( pi_pi::reflection_get() );
00818                 reflection->push_back( class_reflection::create( "pi_bpi", mdl ) );
00819         }
00820         return reflection;
00821 }
00822 
00823 ptr< object::field_list_list > pi_bpi::field_values_get() const
00824 {
00825         ptr < field_list_list > result = pi_pi::field_values_get();
00826         result->push_back( value_list::create() );
00827         result->back()->push_back( this->source );
00828         result->push_back( value_list::create() );
00829         result->back()->push_back( this->destination );
00830         return result;
00831 }
00832 
00833 
00834 /*!
00835    Marking routine is used for garbage collection.
00836    \author lsg
00837  */
00838 void pi_bpi::gc_mark()
00839 {
00840         pi_pi::gc_mark();
00841 }
00842 
00843 // End of class pi_bpi.
00844 
00845 // ------------- Class pi_tpi follows. -------------
00846 
00847 /*!
00848    \returns The value of pi_tpi::left.
00849    \author lsg
00850  */
00851 ptr< pi_non_mem > pi_tpi::left_get() const
00852 {
00853         return left;
00854 }
00855 
00856 /*!
00857    \param[in] x The new value to set pi_tpi::left to.
00858    \author lsg
00859  */
00860 void pi_tpi::left_set(const ptr< pi_non_mem > & x)
00861 {
00862         pi_tpi::left = x;
00863 }
00864 
00865 /*!
00866    \returns The value of pi_tpi::right.
00867    \author lsg
00868  */
00869 ptr< pi_non_mem > pi_tpi::right_get() const
00870 {
00871         return right;
00872 }
00873 
00874 /*!
00875    \param[in] x The new value to set pi_tpi::right to.
00876    \author lsg
00877  */
00878 void pi_tpi::right_set(const ptr< pi_non_mem > & x)
00879 {
00880         pi_tpi::right = x;
00881 }
00882 
00883 /*!
00884    \returns The value of pi_tpi::destination.
00885    \author lsg
00886  */
00887 ptr< pi_preg > pi_tpi::destination_get() const
00888 {
00889         return destination;
00890 }
00891 
00892 /*!
00893    \param[in] x The new value to set pi_tpi::destination to.
00894    \author lsg
00895  */
00896 void pi_tpi::destination_set(const ptr< pi_preg > & x)
00897 {
00898         pi_tpi::destination = x;
00899 }
00900 
00901 /*!
00902    Generated constructor for class pi_tpi.
00903    \author lsg
00904  */
00905 pi_tpi::pi_tpi (ptr< pi_pi > a__pi_pi__psp,
00906                 ptr< pi_pi > a__pi_pi__nsp,
00907                 ulint a__pi_pi__level,
00908                 ptr< pi_non_mem > a__pi_tpi__left,
00909                 ptr< pi_non_mem > a__pi_tpi__right,
00910                 ptr< pi_preg > a__pi_tpi__destination)
00911         : pi_pi(a__pi_pi__psp,
00912                 a__pi_pi__nsp,
00913                 a__pi_pi__level), left(checked(a__pi_tpi__left)), right(checked(a__pi_tpi__right)), destination(checked(a__pi_tpi__destination))
00914 {}
00915 
00916 ptr< object::reflection_list > pi_tpi::reflection_get() const
00917 {
00918         if (!reflection) {
00919                 typedef class_reflection::field_metadata md;
00920                 typedef class_reflection::field_metadata_list mdlist;
00921                 ptr<mdlist> mdl = mdlist::create();
00922                 mdl->push_back( md::create( "left", "pi_non_mem" ) );
00923                 mdl->push_back( md::create( "right", "pi_non_mem" ) );
00924                 mdl->push_back( md::create( "destination", "pi_preg" ) );
00925                 reflection = reflection_list::create( pi_pi::reflection_get() );
00926                 reflection->push_back( class_reflection::create( "pi_tpi", mdl ) );
00927         }
00928         return reflection;
00929 }
00930 
00931 ptr< object::field_list_list > pi_tpi::field_values_get() const
00932 {
00933         ptr < field_list_list > result = pi_pi::field_values_get();
00934         result->push_back( value_list::create() );
00935         result->back()->push_back( this->left );
00936         result->push_back( value_list::create() );
00937         result->back()->push_back( this->right );
00938         result->push_back( value_list::create() );
00939         result->back()->push_back( this->destination );
00940         return result;
00941 }
00942 
00943 
00944 /*!
00945    Marking routine is used for garbage collection.
00946    \author lsg
00947  */
00948 void pi_tpi::gc_mark()
00949 {
00950         pi_pi::gc_mark();
00951 }
00952 
00953 // End of class pi_tpi.
00954 
00955 // ------------- Class pi_abstract_function_call follows. -------------
00956 
00957 /*!
00958    \returns The value of pi_abstract_function_call::args.
00959    \author lsg
00960  */
00961 ptr< ::lestes::std::list< srp< pi_operand > > > pi_abstract_function_call::args_get() const
00962 {
00963         return args;
00964 }
00965 
00966 /*!
00967    \param[in] x The new value to set pi_abstract_function_call::args to.
00968    \author lsg
00969  */
00970 void pi_abstract_function_call::args_set(const ptr< ::lestes::std::list< srp< pi_operand > > > & x)
00971 {
00972         pi_abstract_function_call::args = x;
00973 }
00974 
00975 /*!
00976    \returns The value of pi_abstract_function_call::this_arg.
00977    \author lsg
00978  */
00979 ptr< pi_mem > pi_abstract_function_call::this_arg_get() const
00980 {
00981         return this_arg;
00982 }
00983 
00984 /*!
00985    \param[in] x The new value to set pi_abstract_function_call::this_arg to.
00986    \author lsg
00987  */
00988 void pi_abstract_function_call::this_arg_set(const ptr< pi_mem > & x)
00989 {
00990         pi_abstract_function_call::this_arg = x;
00991 }
00992 
00993 /*!
00994    Generated constructor for class pi_abstract_function_call.
00995    \author lsg
00996  */
00997 pi_abstract_function_call::pi_abstract_function_call (ptr< pi_pi > a__pi_pi__psp,
00998                 ptr< pi_pi > a__pi_pi__nsp,
00999                 ulint a__pi_pi__level,
01000                 ptr< ::lestes::std::list< srp< pi_operand > > > a__pi_abstract_function_call__args,
01001                 ptr< pi_mem > a__pi_abstract_function_call__this_arg)
01002         : pi_pi(a__pi_pi__psp,
01003                 a__pi_pi__nsp,
01004                 a__pi_pi__level), args(checked(a__pi_abstract_function_call__args)), this_arg(a__pi_abstract_function_call__this_arg)
01005 {}
01006 
01007 ptr< object::reflection_list > pi_abstract_function_call::reflection_get() const
01008 {
01009         if (!reflection) {
01010                 typedef class_reflection::field_metadata md;
01011                 typedef class_reflection::field_metadata_list mdlist;
01012                 ptr<mdlist> mdl = mdlist::create();
01013                 mdl->push_back( md::create( "args", "list&lt; srp&lt; pi_operand &gt; &gt;" ) );
01014                 mdl->push_back( md::create( "this_arg", "pi_mem" ) );
01015                 reflection = reflection_list::create( pi_pi::reflection_get() );
01016                 reflection->push_back( class_reflection::create( "pi_abstract_function_call", mdl ) );
01017         }
01018         return reflection;
01019 }
01020 
01021 ptr< object::field_list_list > pi_abstract_function_call::field_values_get() const
01022 {
01023         ptr < field_list_list > result = pi_pi::field_values_get();
01024         result->push_back( value_list::create() );
01025         result->back()->push_back( this->args );
01026         result->push_back( value_list::create() );
01027         result->back()->push_back( this->this_arg );
01028         return result;
01029 }
01030 
01031 
01032 /*!
01033    Marking routine is used for garbage collection.
01034    \author lsg
01035  */
01036 void pi_abstract_function_call::gc_mark()
01037 {
01038         pi_pi::gc_mark();
01039 }
01040 
01041 // End of class pi_abstract_function_call.
01042 
01043 // ------------- Class pi_bdtpi follows. -------------
01044 
01045 /*!
01046    \returns The value of pi_bdtpi::type1.
01047    \author lsg
01048  */
01049 ptr< ::lestes::md::types::tm_data_type_base > pi_bdtpi::type1_get() const
01050 {
01051         return type1;
01052 }
01053 
01054 /*!
01055    \param[in] x The new value to set pi_bdtpi::type1 to.
01056    \author lsg
01057  */
01058 void pi_bdtpi::type1_set(const ptr< ::lestes::md::types::tm_data_type_base > & x)
01059 {
01060         pi_bdtpi::type1 = x;
01061 }
01062 
01063 /*!
01064    \returns The value of pi_bdtpi::type2.
01065    \author lsg
01066  */
01067 ptr< ::lestes::md::types::tm_data_type_base > pi_bdtpi::type2_get() const
01068 {
01069         return type2;
01070 }
01071 
01072 /*!
01073    \param[in] x The new value to set pi_bdtpi::type2 to.
01074    \author lsg
01075  */
01076 void pi_bdtpi::type2_set(const ptr< ::lestes::md::types::tm_data_type_base > & x)
01077 {
01078         pi_bdtpi::type2 = x;
01079 }
01080 
01081 /*!
01082    Generated constructor for class pi_bdtpi.
01083    \author lsg
01084  */
01085 pi_bdtpi::pi_bdtpi (ptr< pi_pi > a__pi_pi__psp,
01086                 ptr< pi_pi > a__pi_pi__nsp,
01087                 ulint a__pi_pi__level,
01088                 ptr< pi_non_mem > a__pi_bpi__source,
01089                 ptr< pi_preg > a__pi_bpi__destination,
01090                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_bdtpi__type1,
01091                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_bdtpi__type2)
01092         : pi_bpi(a__pi_pi__psp,
01093                 a__pi_pi__nsp,
01094                 a__pi_pi__level,
01095                 a__pi_bpi__source,
01096                 a__pi_bpi__destination), type1(checked(a__pi_bdtpi__type1)), type2(checked(a__pi_bdtpi__type2))
01097 {}
01098 
01099 ptr< object::reflection_list > pi_bdtpi::reflection_get() const
01100 {
01101         if (!reflection) {
01102                 typedef class_reflection::field_metadata md;
01103                 typedef class_reflection::field_metadata_list mdlist;
01104                 ptr<mdlist> mdl = mdlist::create();
01105                 mdl->push_back( md::create( "type1", "tm_data_type_base" ) );
01106                 mdl->push_back( md::create( "type2", "tm_data_type_base" ) );
01107                 reflection = reflection_list::create( pi_bpi::reflection_get() );
01108                 reflection->push_back( class_reflection::create( "pi_bdtpi", mdl ) );
01109         }
01110         return reflection;
01111 }
01112 
01113 ptr< object::field_list_list > pi_bdtpi::field_values_get() const
01114 {
01115         ptr < field_list_list > result = pi_bpi::field_values_get();
01116         result->push_back( value_list::create() );
01117         result->back()->push_back( this->type1 );
01118         result->push_back( value_list::create() );
01119         result->back()->push_back( this->type2 );
01120         return result;
01121 }
01122 
01123 
01124 /*!
01125    Marking routine is used for garbage collection.
01126    \author lsg
01127  */
01128 void pi_bdtpi::gc_mark()
01129 {
01130         pi_bpi::gc_mark();
01131 }
01132 
01133 // End of class pi_bdtpi.
01134 
01135 // ------------- Class pi_abstract_move follows. -------------
01136 
01137 /*!
01138    Generated constructor for class pi_abstract_move.
01139    \author lsg
01140  */
01141 pi_abstract_move::pi_abstract_move (ptr< pi_pi > a__pi_pi__psp,
01142                 ptr< pi_pi > a__pi_pi__nsp,
01143                 ulint a__pi_pi__level)
01144         : pi_pi(a__pi_pi__psp,
01145                 a__pi_pi__nsp,
01146                 a__pi_pi__level)
01147 {}
01148 
01149 ptr< object::reflection_list > pi_abstract_move::reflection_get() const
01150 {
01151         if (!reflection) {
01152                 typedef class_reflection::field_metadata md;
01153                 typedef class_reflection::field_metadata_list mdlist;
01154                 ptr<mdlist> mdl = mdlist::create();
01155                 reflection = reflection_list::create( pi_pi::reflection_get() );
01156                 reflection->push_back( class_reflection::create( "pi_abstract_move", mdl ) );
01157         }
01158         return reflection;
01159 }
01160 
01161 ptr< object::field_list_list > pi_abstract_move::field_values_get() const
01162 {
01163         ptr < field_list_list > result = pi_pi::field_values_get();
01164         return result;
01165 }
01166 
01167 
01168 /*!
01169    Marking routine is used for garbage collection.
01170    \author lsg
01171  */
01172 void pi_abstract_move::gc_mark()
01173 {
01174         pi_pi::gc_mark();
01175 }
01176 
01177 // End of class pi_abstract_move.
01178 
01179 // ------------- Class pi_abstract_move_st follows. -------------
01180 
01181 /*!
01182    \returns The value of pi_abstract_move_st::destination.
01183    \author lsg
01184  */
01185 ptr< pi_operand > pi_abstract_move_st::destination_get() const
01186 {
01187         return destination;
01188 }
01189 
01190 /*!
01191    \param[in] x The new value to set pi_abstract_move_st::destination to.
01192    \author lsg
01193  */
01194 void pi_abstract_move_st::destination_set(const ptr< pi_operand > & x)
01195 {
01196         pi_abstract_move_st::destination = x;
01197 }
01198 
01199 /*!
01200    \returns The value of pi_abstract_move_st::source.
01201    \author lsg
01202  */
01203 ptr< pi_operand > pi_abstract_move_st::source_get() const
01204 {
01205         return source;
01206 }
01207 
01208 /*!
01209    \param[in] x The new value to set pi_abstract_move_st::source to.
01210    \author lsg
01211  */
01212 void pi_abstract_move_st::source_set(const ptr< pi_operand > & x)
01213 {
01214         pi_abstract_move_st::source = x;
01215 }
01216 
01217 /*!
01218    \returns The value of pi_abstract_move_st::type.
01219    \author lsg
01220  */
01221 ptr< ::lestes::md::types::tm_data_type_base > pi_abstract_move_st::type_get() const
01222 {
01223         return type;
01224 }
01225 
01226 /*!
01227    \param[in] x The new value to set pi_abstract_move_st::type to.
01228    \author lsg
01229  */
01230 void pi_abstract_move_st::type_set(const ptr< ::lestes::md::types::tm_data_type_base > & x)
01231 {
01232         pi_abstract_move_st::type = x;
01233 }
01234 
01235 /*!
01236    Generated constructor for class pi_abstract_move_st.
01237    \author lsg
01238  */
01239 pi_abstract_move_st::pi_abstract_move_st (ptr< pi_pi > a__pi_pi__psp,
01240                 ptr< pi_pi > a__pi_pi__nsp,
01241                 ulint a__pi_pi__level,
01242                 ptr< pi_operand > a__pi_abstract_move_st__destination,
01243                 ptr< pi_operand > a__pi_abstract_move_st__source,
01244                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_abstract_move_st__type)
01245         : pi_abstract_move(a__pi_pi__psp,
01246                 a__pi_pi__nsp,
01247                 a__pi_pi__level), destination(checked(a__pi_abstract_move_st__destination)), source(checked(a__pi_abstract_move_st__source)), type(checked(a__pi_abstract_move_st__type))
01248 {}
01249 
01250 ptr< object::reflection_list > pi_abstract_move_st::reflection_get() const
01251 {
01252         if (!reflection) {
01253                 typedef class_reflection::field_metadata md;
01254                 typedef class_reflection::field_metadata_list mdlist;
01255                 ptr<mdlist> mdl = mdlist::create();
01256                 mdl->push_back( md::create( "destination", "pi_operand" ) );
01257                 mdl->push_back( md::create( "source", "pi_operand" ) );
01258                 mdl->push_back( md::create( "type", "tm_data_type_base" ) );
01259                 reflection = reflection_list::create( pi_abstract_move::reflection_get() );
01260                 reflection->push_back( class_reflection::create( "pi_abstract_move_st", mdl ) );
01261         }
01262         return reflection;
01263 }
01264 
01265 ptr< object::field_list_list > pi_abstract_move_st::field_values_get() const
01266 {
01267         ptr < field_list_list > result = pi_abstract_move::field_values_get();
01268         result->push_back( value_list::create() );
01269         result->back()->push_back( this->destination );
01270         result->push_back( value_list::create() );
01271         result->back()->push_back( this->source );
01272         result->push_back( value_list::create() );
01273         result->back()->push_back( this->type );
01274         return result;
01275 }
01276 
01277 
01278 /*!
01279    Marking routine is used for garbage collection.
01280    \author lsg
01281  */
01282 void pi_abstract_move_st::gc_mark()
01283 {
01284         pi_abstract_move::gc_mark();
01285 }
01286 
01287 // End of class pi_abstract_move_st.
01288 
01289 // ------------- Class pi_abstract_move_dt follows. -------------
01290 
01291 /*!
01292    \returns The value of pi_abstract_move_dt::destination.
01293    \author lsg
01294  */
01295 ptr< pi_operand > pi_abstract_move_dt::destination_get() const
01296 {
01297         return destination;
01298 }
01299 
01300 /*!
01301    \param[in] x The new value to set pi_abstract_move_dt::destination to.
01302    \author lsg
01303  */
01304 void pi_abstract_move_dt::destination_set(const ptr< pi_operand > & x)
01305 {
01306         pi_abstract_move_dt::destination = x;
01307 }
01308 
01309 /*!
01310    \returns The value of pi_abstract_move_dt::source.
01311    \author lsg
01312  */
01313 ptr< pi_operand > pi_abstract_move_dt::source_get() const
01314 {
01315         return source;
01316 }
01317 
01318 /*!
01319    \param[in] x The new value to set pi_abstract_move_dt::source to.
01320    \author lsg
01321  */
01322 void pi_abstract_move_dt::source_set(const ptr< pi_operand > & x)
01323 {
01324         pi_abstract_move_dt::source = x;
01325 }
01326 
01327 /*!
01328    \returns The value of pi_abstract_move_dt::type1.
01329    \author lsg
01330  */
01331 ptr< ::lestes::md::types::tm_data_type_base > pi_abstract_move_dt::type1_get() const
01332 {
01333         return type1;
01334 }
01335 
01336 /*!
01337    \param[in] x The new value to set pi_abstract_move_dt::type1 to.
01338    \author lsg
01339  */
01340 void pi_abstract_move_dt::type1_set(const ptr< ::lestes::md::types::tm_data_type_base > & x)
01341 {
01342         pi_abstract_move_dt::type1 = x;
01343 }
01344 
01345 /*!
01346    \returns The value of pi_abstract_move_dt::type2.
01347    \author lsg
01348  */
01349 ptr< ::lestes::md::types::tm_data_type_base > pi_abstract_move_dt::type2_get() const
01350 {
01351         return type2;
01352 }
01353 
01354 /*!
01355    \param[in] x The new value to set pi_abstract_move_dt::type2 to.
01356    \author lsg
01357  */
01358 void pi_abstract_move_dt::type2_set(const ptr< ::lestes::md::types::tm_data_type_base > & x)
01359 {
01360         pi_abstract_move_dt::type2 = x;
01361 }
01362 
01363 /*!
01364    Generated constructor for class pi_abstract_move_dt.
01365    \author lsg
01366  */
01367 pi_abstract_move_dt::pi_abstract_move_dt (ptr< pi_pi > a__pi_pi__psp,
01368                 ptr< pi_pi > a__pi_pi__nsp,
01369                 ulint a__pi_pi__level,
01370                 ptr< pi_operand > a__pi_abstract_move_dt__destination,
01371                 ptr< pi_operand > a__pi_abstract_move_dt__source,
01372                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_abstract_move_dt__type1,
01373                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_abstract_move_dt__type2)
01374         : pi_abstract_move(a__pi_pi__psp,
01375                 a__pi_pi__nsp,
01376                 a__pi_pi__level), destination(checked(a__pi_abstract_move_dt__destination)), source(checked(a__pi_abstract_move_dt__source)), type1(checked(a__pi_abstract_move_dt__type1)), type2(checked(a__pi_abstract_move_dt__type2))
01377 {}
01378 
01379 ptr< object::reflection_list > pi_abstract_move_dt::reflection_get() const
01380 {
01381         if (!reflection) {
01382                 typedef class_reflection::field_metadata md;
01383                 typedef class_reflection::field_metadata_list mdlist;
01384                 ptr<mdlist> mdl = mdlist::create();
01385                 mdl->push_back( md::create( "destination", "pi_operand" ) );
01386                 mdl->push_back( md::create( "source", "pi_operand" ) );
01387                 mdl->push_back( md::create( "type1", "tm_data_type_base" ) );
01388                 mdl->push_back( md::create( "type2", "tm_data_type_base" ) );
01389                 reflection = reflection_list::create( pi_abstract_move::reflection_get() );
01390                 reflection->push_back( class_reflection::create( "pi_abstract_move_dt", mdl ) );
01391         }
01392         return reflection;
01393 }
01394 
01395 ptr< object::field_list_list > pi_abstract_move_dt::field_values_get() const
01396 {
01397         ptr < field_list_list > result = pi_abstract_move::field_values_get();
01398         result->push_back( value_list::create() );
01399         result->back()->push_back( this->destination );
01400         result->push_back( value_list::create() );
01401         result->back()->push_back( this->source );
01402         result->push_back( value_list::create() );
01403         result->back()->push_back( this->type1 );
01404         result->push_back( value_list::create() );
01405         result->back()->push_back( this->type2 );
01406         return result;
01407 }
01408 
01409 
01410 /*!
01411    Marking routine is used for garbage collection.
01412    \author lsg
01413  */
01414 void pi_abstract_move_dt::gc_mark()
01415 {
01416         pi_abstract_move::gc_mark();
01417 }
01418 
01419 // End of class pi_abstract_move_dt.
01420 
01421 // ------------- Class pi_indirect_store follows. -------------
01422 
01423 /*!
01424    \returns The value of pi_indirect_store::address.
01425    \author lsg
01426  */
01427 ptr< pi_mem_ptr_deref > pi_indirect_store::address_get() const
01428 {
01429         return address;
01430 }
01431 
01432 /*!
01433    \param[in] x The new value to set pi_indirect_store::address to.
01434    \author lsg
01435  */
01436 void pi_indirect_store::address_set(const ptr< pi_mem_ptr_deref > & x)
01437 {
01438         pi_indirect_store::address = x;
01439 }
01440 
01441 /*!
01442    \returns The value of pi_indirect_store::value.
01443    \author lsg
01444  */
01445 ptr< pi_operand > pi_indirect_store::value_get() const
01446 {
01447         return value;
01448 }
01449 
01450 /*!
01451    \param[in] x The new value to set pi_indirect_store::value to.
01452    \author lsg
01453  */
01454 void pi_indirect_store::value_set(const ptr< pi_operand > & x)
01455 {
01456         pi_indirect_store::value = x;
01457 }
01458 
01459 /*!
01460    \returns The value of pi_indirect_store::type1.
01461    \author lsg
01462  */
01463 ptr< ::lestes::md::types::tm_data_type_base > pi_indirect_store::type1_get() const
01464 {
01465         return type1;
01466 }
01467 
01468 /*!
01469    \param[in] x The new value to set pi_indirect_store::type1 to.
01470    \author lsg
01471  */
01472 void pi_indirect_store::type1_set(const ptr< ::lestes::md::types::tm_data_type_base > & x)
01473 {
01474         pi_indirect_store::type1 = x;
01475 }
01476 
01477 /*!
01478    \returns The value of pi_indirect_store::type2.
01479    \author lsg
01480  */
01481 ptr< ::lestes::md::types::tm_data_type_base > pi_indirect_store::type2_get() const
01482 {
01483         return type2;
01484 }
01485 
01486 /*!
01487    \param[in] x The new value to set pi_indirect_store::type2 to.
01488    \author lsg
01489  */
01490 void pi_indirect_store::type2_set(const ptr< ::lestes::md::types::tm_data_type_base > & x)
01491 {
01492         pi_indirect_store::type2 = x;
01493 }
01494 
01495 /*!
01496    Generated constructor for class pi_indirect_store.
01497    \author lsg
01498  */
01499 pi_indirect_store::pi_indirect_store (ptr< pi_pi > a__pi_pi__psp,
01500                 ptr< pi_pi > a__pi_pi__nsp,
01501                 ulint a__pi_pi__level,
01502                 ptr< pi_mem_ptr_deref > a__pi_indirect_store__address,
01503                 ptr< pi_operand > a__pi_indirect_store__value,
01504                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_indirect_store__type1,
01505                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_indirect_store__type2)
01506         : pi_abstract_move(a__pi_pi__psp,
01507                 a__pi_pi__nsp,
01508                 a__pi_pi__level), address(checked(a__pi_indirect_store__address)), value(checked(a__pi_indirect_store__value)), type1(checked(a__pi_indirect_store__type1)), type2(checked(a__pi_indirect_store__type2))
01509 {}
01510 
01511 ptr< object::reflection_list > pi_indirect_store::reflection_get() const
01512 {
01513         if (!reflection) {
01514                 typedef class_reflection::field_metadata md;
01515                 typedef class_reflection::field_metadata_list mdlist;
01516                 ptr<mdlist> mdl = mdlist::create();
01517                 mdl->push_back( md::create( "address", "pi_mem_ptr_deref" ) );
01518                 mdl->push_back( md::create( "value", "pi_operand" ) );
01519                 mdl->push_back( md::create( "type1", "tm_data_type_base" ) );
01520                 mdl->push_back( md::create( "type2", "tm_data_type_base" ) );
01521                 reflection = reflection_list::create( pi_abstract_move::reflection_get() );
01522                 reflection->push_back( class_reflection::create( "pi_indirect_store", mdl ) );
01523         }
01524         return reflection;
01525 }
01526 
01527 ptr< object::field_list_list > pi_indirect_store::field_values_get() const
01528 {
01529         ptr < field_list_list > result = pi_abstract_move::field_values_get();
01530         result->push_back( value_list::create() );
01531         result->back()->push_back( this->address );
01532         result->push_back( value_list::create() );
01533         result->back()->push_back( this->value );
01534         result->push_back( value_list::create() );
01535         result->back()->push_back( this->type1 );
01536         result->push_back( value_list::create() );
01537         result->back()->push_back( this->type2 );
01538         return result;
01539 }
01540 
01541 
01542 /*!
01543    Marking routine is used for garbage collection.
01544    \author lsg
01545  */
01546 void pi_indirect_store::gc_mark()
01547 {
01548         pi_abstract_move::gc_mark();
01549 }
01550 
01551 // End of class pi_indirect_store.
01552 
01553 // ------------- Class pi_indirect_load follows. -------------
01554 
01555 /*!
01556    \returns The value of pi_indirect_load::value.
01557    \author lsg
01558  */
01559 ptr< pi_operand > pi_indirect_load::value_get() const
01560 {
01561         return value;
01562 }
01563 
01564 /*!
01565    \param[in] x The new value to set pi_indirect_load::value to.
01566    \author lsg
01567  */
01568 void pi_indirect_load::value_set(const ptr< pi_operand > & x)
01569 {
01570         pi_indirect_load::value = x;
01571 }
01572 
01573 /*!
01574    \returns The value of pi_indirect_load::address.
01575    \author lsg
01576  */
01577 ptr< pi_mem_ptr_deref > pi_indirect_load::address_get() const
01578 {
01579         return address;
01580 }
01581 
01582 /*!
01583    \param[in] x The new value to set pi_indirect_load::address to.
01584    \author lsg
01585  */
01586 void pi_indirect_load::address_set(const ptr< pi_mem_ptr_deref > & x)
01587 {
01588         pi_indirect_load::address = x;
01589 }
01590 
01591 /*!
01592    \returns The value of pi_indirect_load::type1.
01593    \author lsg
01594  */
01595 ptr< ::lestes::md::types::tm_data_type_base > pi_indirect_load::type1_get() const
01596 {
01597         return type1;
01598 }
01599 
01600 /*!
01601    \param[in] x The new value to set pi_indirect_load::type1 to.
01602    \author lsg
01603  */
01604 void pi_indirect_load::type1_set(const ptr< ::lestes::md::types::tm_data_type_base > & x)
01605 {
01606         pi_indirect_load::type1 = x;
01607 }
01608 
01609 /*!
01610    \returns The value of pi_indirect_load::type2.
01611    \author lsg
01612  */
01613 ptr< ::lestes::md::types::tm_data_type_base > pi_indirect_load::type2_get() const
01614 {
01615         return type2;
01616 }
01617 
01618 /*!
01619    \param[in] x The new value to set pi_indirect_load::type2 to.
01620    \author lsg
01621  */
01622 void pi_indirect_load::type2_set(const ptr< ::lestes::md::types::tm_data_type_base > & x)
01623 {
01624         pi_indirect_load::type2 = x;
01625 }
01626 
01627 /*!
01628    Generated constructor for class pi_indirect_load.
01629    \author lsg
01630  */
01631 pi_indirect_load::pi_indirect_load (ptr< pi_pi > a__pi_pi__psp,
01632                 ptr< pi_pi > a__pi_pi__nsp,
01633                 ulint a__pi_pi__level,
01634                 ptr< pi_operand > a__pi_indirect_load__value,
01635                 ptr< pi_mem_ptr_deref > a__pi_indirect_load__address,
01636                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_indirect_load__type1,
01637                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_indirect_load__type2)
01638         : pi_abstract_move(a__pi_pi__psp,
01639                 a__pi_pi__nsp,
01640                 a__pi_pi__level), value(checked(a__pi_indirect_load__value)), address(checked(a__pi_indirect_load__address)), type1(checked(a__pi_indirect_load__type1)), type2(checked(a__pi_indirect_load__type2))
01641 {}
01642 
01643 ptr< object::reflection_list > pi_indirect_load::reflection_get() const
01644 {
01645         if (!reflection) {
01646                 typedef class_reflection::field_metadata md;
01647                 typedef class_reflection::field_metadata_list mdlist;
01648                 ptr<mdlist> mdl = mdlist::create();
01649                 mdl->push_back( md::create( "value", "pi_operand" ) );
01650                 mdl->push_back( md::create( "address", "pi_mem_ptr_deref" ) );
01651                 mdl->push_back( md::create( "type1", "tm_data_type_base" ) );
01652                 mdl->push_back( md::create( "type2", "tm_data_type_base" ) );
01653                 reflection = reflection_list::create( pi_abstract_move::reflection_get() );
01654                 reflection->push_back( class_reflection::create( "pi_indirect_load", mdl ) );
01655         }
01656         return reflection;
01657 }
01658 
01659 ptr< object::field_list_list > pi_indirect_load::field_values_get() const
01660 {
01661         ptr < field_list_list > result = pi_abstract_move::field_values_get();
01662         result->push_back( value_list::create() );
01663         result->back()->push_back( this->value );
01664         result->push_back( value_list::create() );
01665         result->back()->push_back( this->address );
01666         result->push_back( value_list::create() );
01667         result->back()->push_back( this->type1 );
01668         result->push_back( value_list::create() );
01669         result->back()->push_back( this->type2 );
01670         return result;
01671 }
01672 
01673 
01674 /*!
01675    Marking routine is used for garbage collection.
01676    \author lsg
01677  */
01678 void pi_indirect_load::gc_mark()
01679 {
01680         pi_abstract_move::gc_mark();
01681 }
01682 
01683 // End of class pi_indirect_load.
01684 
01685 // ------------- Class pi_bstpi follows. -------------
01686 
01687 /*!
01688    \returns The value of pi_bstpi::type.
01689    \author lsg
01690  */
01691 ptr< ::lestes::md::types::tm_data_type_base > pi_bstpi::type_get() const
01692 {
01693         return type;
01694 }
01695 
01696 /*!
01697    \param[in] x The new value to set pi_bstpi::type to.
01698    \author lsg
01699  */
01700 void pi_bstpi::type_set(const ptr< ::lestes::md::types::tm_data_type_base > & x)
01701 {
01702         pi_bstpi::type = x;
01703 }
01704 
01705 /*!
01706    Generated constructor for class pi_bstpi.
01707    \author lsg
01708  */
01709 pi_bstpi::pi_bstpi (ptr< pi_pi > a__pi_pi__psp,
01710                 ptr< pi_pi > a__pi_pi__nsp,
01711                 ulint a__pi_pi__level,
01712                 ptr< pi_non_mem > a__pi_bpi__source,
01713                 ptr< pi_preg > a__pi_bpi__destination,
01714                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_bstpi__type)
01715         : pi_bpi(a__pi_pi__psp,
01716                 a__pi_pi__nsp,
01717                 a__pi_pi__level,
01718                 a__pi_bpi__source,
01719                 a__pi_bpi__destination), type(checked(a__pi_bstpi__type))
01720 {}
01721 
01722 ptr< object::reflection_list > pi_bstpi::reflection_get() const
01723 {
01724         if (!reflection) {
01725                 typedef class_reflection::field_metadata md;
01726                 typedef class_reflection::field_metadata_list mdlist;
01727                 ptr<mdlist> mdl = mdlist::create();
01728                 mdl->push_back( md::create( "type", "tm_data_type_base" ) );
01729                 reflection = reflection_list::create( pi_bpi::reflection_get() );
01730                 reflection->push_back( class_reflection::create( "pi_bstpi", mdl ) );
01731         }
01732         return reflection;
01733 }
01734 
01735 ptr< object::field_list_list > pi_bstpi::field_values_get() const
01736 {
01737         ptr < field_list_list > result = pi_bpi::field_values_get();
01738         result->push_back( value_list::create() );
01739         result->back()->push_back( this->type );
01740         return result;
01741 }
01742 
01743 
01744 /*!
01745    Marking routine is used for garbage collection.
01746    \author lsg
01747  */
01748 void pi_bstpi::gc_mark()
01749 {
01750         pi_bpi::gc_mark();
01751 }
01752 
01753 // End of class pi_bstpi.
01754 
01755 // ------------- Class pi_tstpi follows. -------------
01756 
01757 /*!
01758    \returns The value of pi_tstpi::type.
01759    \author lsg
01760  */
01761 ptr< ::lestes::md::types::tm_data_type_base > pi_tstpi::type_get() const
01762 {
01763         return type;
01764 }
01765 
01766 /*!
01767    \param[in] x The new value to set pi_tstpi::type to.
01768    \author lsg
01769  */
01770 void pi_tstpi::type_set(const ptr< ::lestes::md::types::tm_data_type_base > & x)
01771 {
01772         pi_tstpi::type = x;
01773 }
01774 
01775 /*!
01776    Generated constructor for class pi_tstpi.
01777    \author lsg
01778  */
01779 pi_tstpi::pi_tstpi (ptr< pi_pi > a__pi_pi__psp,
01780                 ptr< pi_pi > a__pi_pi__nsp,
01781                 ulint a__pi_pi__level,
01782                 ptr< pi_non_mem > a__pi_tpi__left,
01783                 ptr< pi_non_mem > a__pi_tpi__right,
01784                 ptr< pi_preg > a__pi_tpi__destination,
01785                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
01786         : pi_tpi(a__pi_pi__psp,
01787                 a__pi_pi__nsp,
01788                 a__pi_pi__level,
01789                 a__pi_tpi__left,
01790                 a__pi_tpi__right,
01791                 a__pi_tpi__destination), type(checked(a__pi_tstpi__type))
01792 {}
01793 
01794 ptr< object::reflection_list > pi_tstpi::reflection_get() const
01795 {
01796         if (!reflection) {
01797                 typedef class_reflection::field_metadata md;
01798                 typedef class_reflection::field_metadata_list mdlist;
01799                 ptr<mdlist> mdl = mdlist::create();
01800                 mdl->push_back( md::create( "type", "tm_data_type_base" ) );
01801                 reflection = reflection_list::create( pi_tpi::reflection_get() );
01802                 reflection->push_back( class_reflection::create( "pi_tstpi", mdl ) );
01803         }
01804         return reflection;
01805 }
01806 
01807 ptr< object::field_list_list > pi_tstpi::field_values_get() const
01808 {
01809         ptr < field_list_list > result = pi_tpi::field_values_get();
01810         result->push_back( value_list::create() );
01811         result->back()->push_back( this->type );
01812         return result;
01813 }
01814 
01815 
01816 /*!
01817    Marking routine is used for garbage collection.
01818    \author lsg
01819  */
01820 void pi_tstpi::gc_mark()
01821 {
01822         pi_tpi::gc_mark();
01823 }
01824 
01825 // End of class pi_tstpi.
01826 
01827 // ------------- Class pi_tdtpi follows. -------------
01828 
01829 /*!
01830    \returns The value of pi_tdtpi::type1.
01831    \author lsg
01832  */
01833 ptr< ::lestes::md::types::tm_data_type_base > pi_tdtpi::type1_get() const
01834 {
01835         return type1;
01836 }
01837 
01838 /*!
01839    \param[in] x The new value to set pi_tdtpi::type1 to.
01840    \author lsg
01841  */
01842 void pi_tdtpi::type1_set(const ptr< ::lestes::md::types::tm_data_type_base > & x)
01843 {
01844         pi_tdtpi::type1 = x;
01845 }
01846 
01847 /*!
01848    \returns The value of pi_tdtpi::type2.
01849    \author lsg
01850  */
01851 ptr< ::lestes::md::types::tm_data_type_base > pi_tdtpi::type2_get() const
01852 {
01853         return type2;
01854 }
01855 
01856 /*!
01857    \param[in] x The new value to set pi_tdtpi::type2 to.
01858    \author lsg
01859  */
01860 void pi_tdtpi::type2_set(const ptr< ::lestes::md::types::tm_data_type_base > & x)
01861 {
01862         pi_tdtpi::type2 = x;
01863 }
01864 
01865 /*!
01866    Generated constructor for class pi_tdtpi.
01867    \author lsg
01868  */
01869 pi_tdtpi::pi_tdtpi (ptr< pi_pi > a__pi_pi__psp,
01870                 ptr< pi_pi > a__pi_pi__nsp,
01871                 ulint a__pi_pi__level,
01872                 ptr< pi_non_mem > a__pi_tpi__left,
01873                 ptr< pi_non_mem > a__pi_tpi__right,
01874                 ptr< pi_preg > a__pi_tpi__destination,
01875                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type1,
01876                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type2)
01877         : pi_tpi(a__pi_pi__psp,
01878                 a__pi_pi__nsp,
01879                 a__pi_pi__level,
01880                 a__pi_tpi__left,
01881                 a__pi_tpi__right,
01882                 a__pi_tpi__destination), type1(checked(a__pi_tdtpi__type1)), type2(checked(a__pi_tdtpi__type2))
01883 {}
01884 
01885 ptr< object::reflection_list > pi_tdtpi::reflection_get() const
01886 {
01887         if (!reflection) {
01888                 typedef class_reflection::field_metadata md;
01889                 typedef class_reflection::field_metadata_list mdlist;
01890                 ptr<mdlist> mdl = mdlist::create();
01891                 mdl->push_back( md::create( "type1", "tm_data_type_base" ) );
01892                 mdl->push_back( md::create( "type2", "tm_data_type_base" ) );
01893                 reflection = reflection_list::create( pi_tpi::reflection_get() );
01894                 reflection->push_back( class_reflection::create( "pi_tdtpi", mdl ) );
01895         }
01896         return reflection;
01897 }
01898 
01899 ptr< object::field_list_list > pi_tdtpi::field_values_get() const
01900 {
01901         ptr < field_list_list > result = pi_tpi::field_values_get();
01902         result->push_back( value_list::create() );
01903         result->back()->push_back( this->type1 );
01904         result->push_back( value_list::create() );
01905         result->back()->push_back( this->type2 );
01906         return result;
01907 }
01908 
01909 
01910 /*!
01911    Marking routine is used for garbage collection.
01912    \author lsg
01913  */
01914 void pi_tdtpi::gc_mark()
01915 {
01916         pi_tpi::gc_mark();
01917 }
01918 
01919 // End of class pi_tdtpi.
01920 
01921 // ------------- Class pi_sp follows. -------------
01922 
01923 ptr< ::lestes::backend_v2::structs::pi_operands > pi_sp::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
01924 {
01925         return v->visit_pi_sp( this );
01926 }
01927 
01928 ulint pi_sp::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
01929 {
01930         return v->visit_pi_sp( this );
01931 }
01932 
01933 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_sp::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
01934 {
01935         return v->visit_pi_sp( this );
01936 }
01937 
01938 /*!
01939    This factory method for class pi_sp takes values of all fields as arguments.
01940    \author lsg
01941  */
01942 ptr< pi_sp > pi_sp::create(ptr< pi_pi > a__pi_pi__psp,
01943                 ptr< pi_pi > a__pi_pi__nsp,
01944                 ulint a__pi_pi__level)
01945 {
01946         return ptr< pi_sp > ( new pi_sp(a__pi_pi__psp,
01947                 a__pi_pi__nsp,
01948                 a__pi_pi__level) );
01949 }
01950 
01951 /*!
01952    Generated constructor for class pi_sp.
01953    \author lsg
01954  */
01955 pi_sp::pi_sp (ptr< pi_pi > a__pi_pi__psp,
01956                 ptr< pi_pi > a__pi_pi__nsp,
01957                 ulint a__pi_pi__level)
01958         : pi_pi(a__pi_pi__psp,
01959                 a__pi_pi__nsp,
01960                 a__pi_pi__level)
01961 {}
01962 
01963 ptr< object::reflection_list > pi_sp::reflection_get() const
01964 {
01965         if (!reflection) {
01966                 typedef class_reflection::field_metadata md;
01967                 typedef class_reflection::field_metadata_list mdlist;
01968                 ptr<mdlist> mdl = mdlist::create();
01969                 reflection = reflection_list::create( pi_pi::reflection_get() );
01970                 reflection->push_back( class_reflection::create( "pi_sp", mdl ) );
01971         }
01972         return reflection;
01973 }
01974 
01975 ptr< object::field_list_list > pi_sp::field_values_get() const
01976 {
01977         ptr < field_list_list > result = pi_pi::field_values_get();
01978         return result;
01979 }
01980 
01981 
01982 /*!
01983    Marking routine is used for garbage collection.
01984    \author lsg
01985  */
01986 void pi_sp::gc_mark()
01987 {
01988         pi_pi::gc_mark();
01989 }
01990 
01991 // End of class pi_sp.
01992 
01993 // ------------- Class pi_add follows. -------------
01994 
01995 ptr< ::lestes::backend_v2::structs::pi_operands > pi_add::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
01996 {
01997         return v->visit_pi_add( this );
01998 }
01999 
02000 ulint pi_add::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
02001 {
02002         return v->visit_pi_add( this );
02003 }
02004 
02005 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_add::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
02006 {
02007         return v->visit_pi_add( this );
02008 }
02009 
02010 /*!
02011    This factory method for class pi_add takes values of all fields as arguments.
02012    \author lsg
02013  */
02014 ptr< pi_add > pi_add::create(ptr< pi_pi > a__pi_pi__psp,
02015                 ptr< pi_pi > a__pi_pi__nsp,
02016                 ulint a__pi_pi__level,
02017                 ptr< pi_non_mem > a__pi_tpi__left,
02018                 ptr< pi_non_mem > a__pi_tpi__right,
02019                 ptr< pi_preg > a__pi_tpi__destination,
02020                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
02021 {
02022         return ptr< pi_add > ( new pi_add(a__pi_pi__psp,
02023                 a__pi_pi__nsp,
02024                 a__pi_pi__level,
02025                 a__pi_tpi__left,
02026                 a__pi_tpi__right,
02027                 a__pi_tpi__destination,
02028                 a__pi_tstpi__type) );
02029 }
02030 
02031 /*!
02032    Generated constructor for class pi_add.
02033    \author lsg
02034  */
02035 pi_add::pi_add (ptr< pi_pi > a__pi_pi__psp,
02036                 ptr< pi_pi > a__pi_pi__nsp,
02037                 ulint a__pi_pi__level,
02038                 ptr< pi_non_mem > a__pi_tpi__left,
02039                 ptr< pi_non_mem > a__pi_tpi__right,
02040                 ptr< pi_preg > a__pi_tpi__destination,
02041                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
02042         : pi_tstpi(a__pi_pi__psp,
02043                 a__pi_pi__nsp,
02044                 a__pi_pi__level,
02045                 a__pi_tpi__left,
02046                 a__pi_tpi__right,
02047                 a__pi_tpi__destination,
02048                 a__pi_tstpi__type)
02049 {}
02050 
02051 ptr< object::reflection_list > pi_add::reflection_get() const
02052 {
02053         if (!reflection) {
02054                 typedef class_reflection::field_metadata md;
02055                 typedef class_reflection::field_metadata_list mdlist;
02056                 ptr<mdlist> mdl = mdlist::create();
02057                 reflection = reflection_list::create( pi_tstpi::reflection_get() );
02058                 reflection->push_back( class_reflection::create( "pi_add", mdl ) );
02059         }
02060         return reflection;
02061 }
02062 
02063 ptr< object::field_list_list > pi_add::field_values_get() const
02064 {
02065         ptr < field_list_list > result = pi_tstpi::field_values_get();
02066         return result;
02067 }
02068 
02069 
02070 /*!
02071    Marking routine is used for garbage collection.
02072    \author lsg
02073  */
02074 void pi_add::gc_mark()
02075 {
02076         pi_tstpi::gc_mark();
02077 }
02078 
02079 // End of class pi_add.
02080 
02081 // ------------- Class pi_sub follows. -------------
02082 
02083 ptr< ::lestes::backend_v2::structs::pi_operands > pi_sub::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
02084 {
02085         return v->visit_pi_sub( this );
02086 }
02087 
02088 ulint pi_sub::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
02089 {
02090         return v->visit_pi_sub( this );
02091 }
02092 
02093 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_sub::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
02094 {
02095         return v->visit_pi_sub( this );
02096 }
02097 
02098 /*!
02099    This factory method for class pi_sub takes values of all fields as arguments.
02100    \author lsg
02101  */
02102 ptr< pi_sub > pi_sub::create(ptr< pi_pi > a__pi_pi__psp,
02103                 ptr< pi_pi > a__pi_pi__nsp,
02104                 ulint a__pi_pi__level,
02105                 ptr< pi_non_mem > a__pi_tpi__left,
02106                 ptr< pi_non_mem > a__pi_tpi__right,
02107                 ptr< pi_preg > a__pi_tpi__destination,
02108                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
02109 {
02110         return ptr< pi_sub > ( new pi_sub(a__pi_pi__psp,
02111                 a__pi_pi__nsp,
02112                 a__pi_pi__level,
02113                 a__pi_tpi__left,
02114                 a__pi_tpi__right,
02115                 a__pi_tpi__destination,
02116                 a__pi_tstpi__type) );
02117 }
02118 
02119 /*!
02120    Generated constructor for class pi_sub.
02121    \author lsg
02122  */
02123 pi_sub::pi_sub (ptr< pi_pi > a__pi_pi__psp,
02124                 ptr< pi_pi > a__pi_pi__nsp,
02125                 ulint a__pi_pi__level,
02126                 ptr< pi_non_mem > a__pi_tpi__left,
02127                 ptr< pi_non_mem > a__pi_tpi__right,
02128                 ptr< pi_preg > a__pi_tpi__destination,
02129                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
02130         : pi_tstpi(a__pi_pi__psp,
02131                 a__pi_pi__nsp,
02132                 a__pi_pi__level,
02133                 a__pi_tpi__left,
02134                 a__pi_tpi__right,
02135                 a__pi_tpi__destination,
02136                 a__pi_tstpi__type)
02137 {}
02138 
02139 ptr< object::reflection_list > pi_sub::reflection_get() const
02140 {
02141         if (!reflection) {
02142                 typedef class_reflection::field_metadata md;
02143                 typedef class_reflection::field_metadata_list mdlist;
02144                 ptr<mdlist> mdl = mdlist::create();
02145                 reflection = reflection_list::create( pi_tstpi::reflection_get() );
02146                 reflection->push_back( class_reflection::create( "pi_sub", mdl ) );
02147         }
02148         return reflection;
02149 }
02150 
02151 ptr< object::field_list_list > pi_sub::field_values_get() const
02152 {
02153         ptr < field_list_list > result = pi_tstpi::field_values_get();
02154         return result;
02155 }
02156 
02157 
02158 /*!
02159    Marking routine is used for garbage collection.
02160    \author lsg
02161  */
02162 void pi_sub::gc_mark()
02163 {
02164         pi_tstpi::gc_mark();
02165 }
02166 
02167 // End of class pi_sub.
02168 
02169 // ------------- Class pi_mul follows. -------------
02170 
02171 ptr< ::lestes::backend_v2::structs::pi_operands > pi_mul::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
02172 {
02173         return v->visit_pi_mul( this );
02174 }
02175 
02176 ulint pi_mul::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
02177 {
02178         return v->visit_pi_mul( this );
02179 }
02180 
02181 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_mul::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
02182 {
02183         return v->visit_pi_mul( this );
02184 }
02185 
02186 /*!
02187    This factory method for class pi_mul takes values of all fields as arguments.
02188    \author lsg
02189  */
02190 ptr< pi_mul > pi_mul::create(ptr< pi_pi > a__pi_pi__psp,
02191                 ptr< pi_pi > a__pi_pi__nsp,
02192                 ulint a__pi_pi__level,
02193                 ptr< pi_non_mem > a__pi_tpi__left,
02194                 ptr< pi_non_mem > a__pi_tpi__right,
02195                 ptr< pi_preg > a__pi_tpi__destination,
02196                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
02197 {
02198         return ptr< pi_mul > ( new pi_mul(a__pi_pi__psp,
02199                 a__pi_pi__nsp,
02200                 a__pi_pi__level,
02201                 a__pi_tpi__left,
02202                 a__pi_tpi__right,
02203                 a__pi_tpi__destination,
02204                 a__pi_tstpi__type) );
02205 }
02206 
02207 /*!
02208    Generated constructor for class pi_mul.
02209    \author lsg
02210  */
02211 pi_mul::pi_mul (ptr< pi_pi > a__pi_pi__psp,
02212                 ptr< pi_pi > a__pi_pi__nsp,
02213                 ulint a__pi_pi__level,
02214                 ptr< pi_non_mem > a__pi_tpi__left,
02215                 ptr< pi_non_mem > a__pi_tpi__right,
02216                 ptr< pi_preg > a__pi_tpi__destination,
02217                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
02218         : pi_tstpi(a__pi_pi__psp,
02219                 a__pi_pi__nsp,
02220                 a__pi_pi__level,
02221                 a__pi_tpi__left,
02222                 a__pi_tpi__right,
02223                 a__pi_tpi__destination,
02224                 a__pi_tstpi__type)
02225 {}
02226 
02227 ptr< object::reflection_list > pi_mul::reflection_get() const
02228 {
02229         if (!reflection) {
02230                 typedef class_reflection::field_metadata md;
02231                 typedef class_reflection::field_metadata_list mdlist;
02232                 ptr<mdlist> mdl = mdlist::create();
02233                 reflection = reflection_list::create( pi_tstpi::reflection_get() );
02234                 reflection->push_back( class_reflection::create( "pi_mul", mdl ) );
02235         }
02236         return reflection;
02237 }
02238 
02239 ptr< object::field_list_list > pi_mul::field_values_get() const
02240 {
02241         ptr < field_list_list > result = pi_tstpi::field_values_get();
02242         return result;
02243 }
02244 
02245 
02246 /*!
02247    Marking routine is used for garbage collection.
02248    \author lsg
02249  */
02250 void pi_mul::gc_mark()
02251 {
02252         pi_tstpi::gc_mark();
02253 }
02254 
02255 // End of class pi_mul.
02256 
02257 // ------------- Class pi_div follows. -------------
02258 
02259 ptr< ::lestes::backend_v2::structs::pi_operands > pi_div::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
02260 {
02261         return v->visit_pi_div( this );
02262 }
02263 
02264 ulint pi_div::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
02265 {
02266         return v->visit_pi_div( this );
02267 }
02268 
02269 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_div::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
02270 {
02271         return v->visit_pi_div( this );
02272 }
02273 
02274 /*!
02275    This factory method for class pi_div takes values of all fields as arguments.
02276    \author lsg
02277  */
02278 ptr< pi_div > pi_div::create(ptr< pi_pi > a__pi_pi__psp,
02279                 ptr< pi_pi > a__pi_pi__nsp,
02280                 ulint a__pi_pi__level,
02281                 ptr< pi_non_mem > a__pi_tpi__left,
02282                 ptr< pi_non_mem > a__pi_tpi__right,
02283                 ptr< pi_preg > a__pi_tpi__destination,
02284                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
02285 {
02286         return ptr< pi_div > ( new pi_div(a__pi_pi__psp,
02287                 a__pi_pi__nsp,
02288                 a__pi_pi__level,
02289                 a__pi_tpi__left,
02290                 a__pi_tpi__right,
02291                 a__pi_tpi__destination,
02292                 a__pi_tstpi__type) );
02293 }
02294 
02295 /*!
02296    Generated constructor for class pi_div.
02297    \author lsg
02298  */
02299 pi_div::pi_div (ptr< pi_pi > a__pi_pi__psp,
02300                 ptr< pi_pi > a__pi_pi__nsp,
02301                 ulint a__pi_pi__level,
02302                 ptr< pi_non_mem > a__pi_tpi__left,
02303                 ptr< pi_non_mem > a__pi_tpi__right,
02304                 ptr< pi_preg > a__pi_tpi__destination,
02305                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
02306         : pi_tstpi(a__pi_pi__psp,
02307                 a__pi_pi__nsp,
02308                 a__pi_pi__level,
02309                 a__pi_tpi__left,
02310                 a__pi_tpi__right,
02311                 a__pi_tpi__destination,
02312                 a__pi_tstpi__type)
02313 {}
02314 
02315 ptr< object::reflection_list > pi_div::reflection_get() const
02316 {
02317         if (!reflection) {
02318                 typedef class_reflection::field_metadata md;
02319                 typedef class_reflection::field_metadata_list mdlist;
02320                 ptr<mdlist> mdl = mdlist::create();
02321                 reflection = reflection_list::create( pi_tstpi::reflection_get() );
02322                 reflection->push_back( class_reflection::create( "pi_div", mdl ) );
02323         }
02324         return reflection;
02325 }
02326 
02327 ptr< object::field_list_list > pi_div::field_values_get() const
02328 {
02329         ptr < field_list_list > result = pi_tstpi::field_values_get();
02330         return result;
02331 }
02332 
02333 
02334 /*!
02335    Marking routine is used for garbage collection.
02336    \author lsg
02337  */
02338 void pi_div::gc_mark()
02339 {
02340         pi_tstpi::gc_mark();
02341 }
02342 
02343 // End of class pi_div.
02344 
02345 // ------------- Class pi_divrni follows. -------------
02346 
02347 ptr< ::lestes::backend_v2::structs::pi_operands > pi_divrni::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
02348 {
02349         return v->visit_pi_divrni( this );
02350 }
02351 
02352 ulint pi_divrni::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
02353 {
02354         return v->visit_pi_divrni( this );
02355 }
02356 
02357 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_divrni::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
02358 {
02359         return v->visit_pi_divrni( this );
02360 }
02361 
02362 /*!
02363    This factory method for class pi_divrni takes values of all fields as arguments.
02364    \author lsg
02365  */
02366 ptr< pi_divrni > pi_divrni::create(ptr< pi_pi > a__pi_pi__psp,
02367                 ptr< pi_pi > a__pi_pi__nsp,
02368                 ulint a__pi_pi__level,
02369                 ptr< pi_non_mem > a__pi_tpi__left,
02370                 ptr< pi_non_mem > a__pi_tpi__right,
02371                 ptr< pi_preg > a__pi_tpi__destination,
02372                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
02373 {
02374         return ptr< pi_divrni > ( new pi_divrni(a__pi_pi__psp,
02375                 a__pi_pi__nsp,
02376                 a__pi_pi__level,
02377                 a__pi_tpi__left,
02378                 a__pi_tpi__right,
02379                 a__pi_tpi__destination,
02380                 a__pi_tstpi__type) );
02381 }
02382 
02383 /*!
02384    Generated constructor for class pi_divrni.
02385    \author lsg
02386  */
02387 pi_divrni::pi_divrni (ptr< pi_pi > a__pi_pi__psp,
02388                 ptr< pi_pi > a__pi_pi__nsp,
02389                 ulint a__pi_pi__level,
02390                 ptr< pi_non_mem > a__pi_tpi__left,
02391                 ptr< pi_non_mem > a__pi_tpi__right,
02392                 ptr< pi_preg > a__pi_tpi__destination,
02393                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
02394         : pi_tstpi(a__pi_pi__psp,
02395                 a__pi_pi__nsp,
02396                 a__pi_pi__level,
02397                 a__pi_tpi__left,
02398                 a__pi_tpi__right,
02399                 a__pi_tpi__destination,
02400                 a__pi_tstpi__type)
02401 {}
02402 
02403 ptr< object::reflection_list > pi_divrni::reflection_get() const
02404 {
02405         if (!reflection) {
02406                 typedef class_reflection::field_metadata md;
02407                 typedef class_reflection::field_metadata_list mdlist;
02408                 ptr<mdlist> mdl = mdlist::create();
02409                 reflection = reflection_list::create( pi_tstpi::reflection_get() );
02410                 reflection->push_back( class_reflection::create( "pi_divrni", mdl ) );
02411         }
02412         return reflection;
02413 }
02414 
02415 ptr< object::field_list_list > pi_divrni::field_values_get() const
02416 {
02417         ptr < field_list_list > result = pi_tstpi::field_values_get();
02418         return result;
02419 }
02420 
02421 
02422 /*!
02423    Marking routine is used for garbage collection.
02424    \author lsg
02425  */
02426 void pi_divrni::gc_mark()
02427 {
02428         pi_tstpi::gc_mark();
02429 }
02430 
02431 // End of class pi_divrni.
02432 
02433 // ------------- Class pi_divrpi follows. -------------
02434 
02435 ptr< ::lestes::backend_v2::structs::pi_operands > pi_divrpi::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
02436 {
02437         return v->visit_pi_divrpi( this );
02438 }
02439 
02440 ulint pi_divrpi::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
02441 {
02442         return v->visit_pi_divrpi( this );
02443 }
02444 
02445 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_divrpi::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
02446 {
02447         return v->visit_pi_divrpi( this );
02448 }
02449 
02450 /*!
02451    This factory method for class pi_divrpi takes values of all fields as arguments.
02452    \author lsg
02453  */
02454 ptr< pi_divrpi > pi_divrpi::create(ptr< pi_pi > a__pi_pi__psp,
02455                 ptr< pi_pi > a__pi_pi__nsp,
02456                 ulint a__pi_pi__level,
02457                 ptr< pi_non_mem > a__pi_tpi__left,
02458                 ptr< pi_non_mem > a__pi_tpi__right,
02459                 ptr< pi_preg > a__pi_tpi__destination,
02460                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
02461 {
02462         return ptr< pi_divrpi > ( new pi_divrpi(a__pi_pi__psp,
02463                 a__pi_pi__nsp,
02464                 a__pi_pi__level,
02465                 a__pi_tpi__left,
02466                 a__pi_tpi__right,
02467                 a__pi_tpi__destination,
02468                 a__pi_tstpi__type) );
02469 }
02470 
02471 /*!
02472    Generated constructor for class pi_divrpi.
02473    \author lsg
02474  */
02475 pi_divrpi::pi_divrpi (ptr< pi_pi > a__pi_pi__psp,
02476                 ptr< pi_pi > a__pi_pi__nsp,
02477                 ulint a__pi_pi__level,
02478                 ptr< pi_non_mem > a__pi_tpi__left,
02479                 ptr< pi_non_mem > a__pi_tpi__right,
02480                 ptr< pi_preg > a__pi_tpi__destination,
02481                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
02482         : pi_tstpi(a__pi_pi__psp,
02483                 a__pi_pi__nsp,
02484                 a__pi_pi__level,
02485                 a__pi_tpi__left,
02486                 a__pi_tpi__right,
02487                 a__pi_tpi__destination,
02488                 a__pi_tstpi__type)
02489 {}
02490 
02491 ptr< object::reflection_list > pi_divrpi::reflection_get() const
02492 {
02493         if (!reflection) {
02494                 typedef class_reflection::field_metadata md;
02495                 typedef class_reflection::field_metadata_list mdlist;
02496                 ptr<mdlist> mdl = mdlist::create();
02497                 reflection = reflection_list::create( pi_tstpi::reflection_get() );
02498                 reflection->push_back( class_reflection::create( "pi_divrpi", mdl ) );
02499         }
02500         return reflection;
02501 }
02502 
02503 ptr< object::field_list_list > pi_divrpi::field_values_get() const
02504 {
02505         ptr < field_list_list > result = pi_tstpi::field_values_get();
02506         return result;
02507 }
02508 
02509 
02510 /*!
02511    Marking routine is used for garbage collection.
02512    \author lsg
02513  */
02514 void pi_divrpi::gc_mark()
02515 {
02516         pi_tstpi::gc_mark();
02517 }
02518 
02519 // End of class pi_divrpi.
02520 
02521 // ------------- Class pi_divrz follows. -------------
02522 
02523 ptr< ::lestes::backend_v2::structs::pi_operands > pi_divrz::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
02524 {
02525         return v->visit_pi_divrz( this );
02526 }
02527 
02528 ulint pi_divrz::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
02529 {
02530         return v->visit_pi_divrz( this );
02531 }
02532 
02533 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_divrz::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
02534 {
02535         return v->visit_pi_divrz( this );
02536 }
02537 
02538 /*!
02539    This factory method for class pi_divrz takes values of all fields as arguments.
02540    \author lsg
02541  */
02542 ptr< pi_divrz > pi_divrz::create(ptr< pi_pi > a__pi_pi__psp,
02543                 ptr< pi_pi > a__pi_pi__nsp,
02544                 ulint a__pi_pi__level,
02545                 ptr< pi_non_mem > a__pi_tpi__left,
02546                 ptr< pi_non_mem > a__pi_tpi__right,
02547                 ptr< pi_preg > a__pi_tpi__destination,
02548                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
02549 {
02550         return ptr< pi_divrz > ( new pi_divrz(a__pi_pi__psp,
02551                 a__pi_pi__nsp,
02552                 a__pi_pi__level,
02553                 a__pi_tpi__left,
02554                 a__pi_tpi__right,
02555                 a__pi_tpi__destination,
02556                 a__pi_tstpi__type) );
02557 }
02558 
02559 /*!
02560    Generated constructor for class pi_divrz.
02561    \author lsg
02562  */
02563 pi_divrz::pi_divrz (ptr< pi_pi > a__pi_pi__psp,
02564                 ptr< pi_pi > a__pi_pi__nsp,
02565                 ulint a__pi_pi__level,
02566                 ptr< pi_non_mem > a__pi_tpi__left,
02567                 ptr< pi_non_mem > a__pi_tpi__right,
02568                 ptr< pi_preg > a__pi_tpi__destination,
02569                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
02570         : pi_tstpi(a__pi_pi__psp,
02571                 a__pi_pi__nsp,
02572                 a__pi_pi__level,
02573                 a__pi_tpi__left,
02574                 a__pi_tpi__right,
02575                 a__pi_tpi__destination,
02576                 a__pi_tstpi__type)
02577 {}
02578 
02579 ptr< object::reflection_list > pi_divrz::reflection_get() const
02580 {
02581         if (!reflection) {
02582                 typedef class_reflection::field_metadata md;
02583                 typedef class_reflection::field_metadata_list mdlist;
02584                 ptr<mdlist> mdl = mdlist::create();
02585                 reflection = reflection_list::create( pi_tstpi::reflection_get() );
02586                 reflection->push_back( class_reflection::create( "pi_divrz", mdl ) );
02587         }
02588         return reflection;
02589 }
02590 
02591 ptr< object::field_list_list > pi_divrz::field_values_get() const
02592 {
02593         ptr < field_list_list > result = pi_tstpi::field_values_get();
02594         return result;
02595 }
02596 
02597 
02598 /*!
02599    Marking routine is used for garbage collection.
02600    \author lsg
02601  */
02602 void pi_divrz::gc_mark()
02603 {
02604         pi_tstpi::gc_mark();
02605 }
02606 
02607 // End of class pi_divrz.
02608 
02609 // ------------- Class pi_mod follows. -------------
02610 
02611 ptr< ::lestes::backend_v2::structs::pi_operands > pi_mod::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
02612 {
02613         return v->visit_pi_mod( this );
02614 }
02615 
02616 ulint pi_mod::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
02617 {
02618         return v->visit_pi_mod( this );
02619 }
02620 
02621 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_mod::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
02622 {
02623         return v->visit_pi_mod( this );
02624 }
02625 
02626 /*!
02627    This factory method for class pi_mod takes values of all fields as arguments.
02628    \author lsg
02629  */
02630 ptr< pi_mod > pi_mod::create(ptr< pi_pi > a__pi_pi__psp,
02631                 ptr< pi_pi > a__pi_pi__nsp,
02632                 ulint a__pi_pi__level,
02633                 ptr< pi_non_mem > a__pi_tpi__left,
02634                 ptr< pi_non_mem > a__pi_tpi__right,
02635                 ptr< pi_preg > a__pi_tpi__destination,
02636                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
02637 {
02638         return ptr< pi_mod > ( new pi_mod(a__pi_pi__psp,
02639                 a__pi_pi__nsp,
02640                 a__pi_pi__level,
02641                 a__pi_tpi__left,
02642                 a__pi_tpi__right,
02643                 a__pi_tpi__destination,
02644                 a__pi_tstpi__type) );
02645 }
02646 
02647 /*!
02648    Generated constructor for class pi_mod.
02649    \author lsg
02650  */
02651 pi_mod::pi_mod (ptr< pi_pi > a__pi_pi__psp,
02652                 ptr< pi_pi > a__pi_pi__nsp,
02653                 ulint a__pi_pi__level,
02654                 ptr< pi_non_mem > a__pi_tpi__left,
02655                 ptr< pi_non_mem > a__pi_tpi__right,
02656                 ptr< pi_preg > a__pi_tpi__destination,
02657                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
02658         : pi_tstpi(a__pi_pi__psp,
02659                 a__pi_pi__nsp,
02660                 a__pi_pi__level,
02661                 a__pi_tpi__left,
02662                 a__pi_tpi__right,
02663                 a__pi_tpi__destination,
02664                 a__pi_tstpi__type)
02665 {}
02666 
02667 ptr< object::reflection_list > pi_mod::reflection_get() const
02668 {
02669         if (!reflection) {
02670                 typedef class_reflection::field_metadata md;
02671                 typedef class_reflection::field_metadata_list mdlist;
02672                 ptr<mdlist> mdl = mdlist::create();
02673                 reflection = reflection_list::create( pi_tstpi::reflection_get() );
02674                 reflection->push_back( class_reflection::create( "pi_mod", mdl ) );
02675         }
02676         return reflection;
02677 }
02678 
02679 ptr< object::field_list_list > pi_mod::field_values_get() const
02680 {
02681         ptr < field_list_list > result = pi_tstpi::field_values_get();
02682         return result;
02683 }
02684 
02685 
02686 /*!
02687    Marking routine is used for garbage collection.
02688    \author lsg
02689  */
02690 void pi_mod::gc_mark()
02691 {
02692         pi_tstpi::gc_mark();
02693 }
02694 
02695 // End of class pi_mod.
02696 
02697 // ------------- Class pi_rem follows. -------------
02698 
02699 ptr< ::lestes::backend_v2::structs::pi_operands > pi_rem::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
02700 {
02701         return v->visit_pi_rem( this );
02702 }
02703 
02704 ulint pi_rem::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
02705 {
02706         return v->visit_pi_rem( this );
02707 }
02708 
02709 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_rem::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
02710 {
02711         return v->visit_pi_rem( this );
02712 }
02713 
02714 /*!
02715    This factory method for class pi_rem takes values of all fields as arguments.
02716    \author lsg
02717  */
02718 ptr< pi_rem > pi_rem::create(ptr< pi_pi > a__pi_pi__psp,
02719                 ptr< pi_pi > a__pi_pi__nsp,
02720                 ulint a__pi_pi__level,
02721                 ptr< pi_non_mem > a__pi_tpi__left,
02722                 ptr< pi_non_mem > a__pi_tpi__right,
02723                 ptr< pi_preg > a__pi_tpi__destination,
02724                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
02725 {
02726         return ptr< pi_rem > ( new pi_rem(a__pi_pi__psp,
02727                 a__pi_pi__nsp,
02728                 a__pi_pi__level,
02729                 a__pi_tpi__left,
02730                 a__pi_tpi__right,
02731                 a__pi_tpi__destination,
02732                 a__pi_tstpi__type) );
02733 }
02734 
02735 /*!
02736    Generated constructor for class pi_rem.
02737    \author lsg
02738  */
02739 pi_rem::pi_rem (ptr< pi_pi > a__pi_pi__psp,
02740                 ptr< pi_pi > a__pi_pi__nsp,
02741                 ulint a__pi_pi__level,
02742                 ptr< pi_non_mem > a__pi_tpi__left,
02743                 ptr< pi_non_mem > a__pi_tpi__right,
02744                 ptr< pi_preg > a__pi_tpi__destination,
02745                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
02746         : pi_tstpi(a__pi_pi__psp,
02747                 a__pi_pi__nsp,
02748                 a__pi_pi__level,
02749                 a__pi_tpi__left,
02750                 a__pi_tpi__right,
02751                 a__pi_tpi__destination,
02752                 a__pi_tstpi__type)
02753 {}
02754 
02755 ptr< object::reflection_list > pi_rem::reflection_get() const
02756 {
02757         if (!reflection) {
02758                 typedef class_reflection::field_metadata md;
02759                 typedef class_reflection::field_metadata_list mdlist;
02760                 ptr<mdlist> mdl = mdlist::create();
02761                 reflection = reflection_list::create( pi_tstpi::reflection_get() );
02762                 reflection->push_back( class_reflection::create( "pi_rem", mdl ) );
02763         }
02764         return reflection;
02765 }
02766 
02767 ptr< object::field_list_list > pi_rem::field_values_get() const
02768 {
02769         ptr < field_list_list > result = pi_tstpi::field_values_get();
02770         return result;
02771 }
02772 
02773 
02774 /*!
02775    Marking routine is used for garbage collection.
02776    \author lsg
02777  */
02778 void pi_rem::gc_mark()
02779 {
02780         pi_tstpi::gc_mark();
02781 }
02782 
02783 // End of class pi_rem.
02784 
02785 // ------------- Class pi_neg follows. -------------
02786 
02787 ptr< ::lestes::backend_v2::structs::pi_operands > pi_neg::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
02788 {
02789         return v->visit_pi_neg( this );
02790 }
02791 
02792 ulint pi_neg::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
02793 {
02794         return v->visit_pi_neg( this );
02795 }
02796 
02797 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_neg::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
02798 {
02799         return v->visit_pi_neg( this );
02800 }
02801 
02802 /*!
02803    This factory method for class pi_neg takes values of all fields as arguments.
02804    \author lsg
02805  */
02806 ptr< pi_neg > pi_neg::create(ptr< pi_pi > a__pi_pi__psp,
02807                 ptr< pi_pi > a__pi_pi__nsp,
02808                 ulint a__pi_pi__level,
02809                 ptr< pi_non_mem > a__pi_bpi__source,
02810                 ptr< pi_preg > a__pi_bpi__destination,
02811                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_bstpi__type)
02812 {
02813         return ptr< pi_neg > ( new pi_neg(a__pi_pi__psp,
02814                 a__pi_pi__nsp,
02815                 a__pi_pi__level,
02816                 a__pi_bpi__source,
02817                 a__pi_bpi__destination,
02818                 a__pi_bstpi__type) );
02819 }
02820 
02821 /*!
02822    Generated constructor for class pi_neg.
02823    \author lsg
02824  */
02825 pi_neg::pi_neg (ptr< pi_pi > a__pi_pi__psp,
02826                 ptr< pi_pi > a__pi_pi__nsp,
02827                 ulint a__pi_pi__level,
02828                 ptr< pi_non_mem > a__pi_bpi__source,
02829                 ptr< pi_preg > a__pi_bpi__destination,
02830                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_bstpi__type)
02831         : pi_bstpi(a__pi_pi__psp,
02832                 a__pi_pi__nsp,
02833                 a__pi_pi__level,
02834                 a__pi_bpi__source,
02835                 a__pi_bpi__destination,
02836                 a__pi_bstpi__type)
02837 {}
02838 
02839 ptr< object::reflection_list > pi_neg::reflection_get() const
02840 {
02841         if (!reflection) {
02842                 typedef class_reflection::field_metadata md;
02843                 typedef class_reflection::field_metadata_list mdlist;
02844                 ptr<mdlist> mdl = mdlist::create();
02845                 reflection = reflection_list::create( pi_bstpi::reflection_get() );
02846                 reflection->push_back( class_reflection::create( "pi_neg", mdl ) );
02847         }
02848         return reflection;
02849 }
02850 
02851 ptr< object::field_list_list > pi_neg::field_values_get() const
02852 {
02853         ptr < field_list_list > result = pi_bstpi::field_values_get();
02854         return result;
02855 }
02856 
02857 
02858 /*!
02859    Marking routine is used for garbage collection.
02860    \author lsg
02861  */
02862 void pi_neg::gc_mark()
02863 {
02864         pi_bstpi::gc_mark();
02865 }
02866 
02867 // End of class pi_neg.
02868 
02869 // ------------- Class pi_gat follows. -------------
02870 
02871 ptr< ::lestes::backend_v2::structs::pi_operands > pi_gat::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
02872 {
02873         return v->visit_pi_gat( this );
02874 }
02875 
02876 ulint pi_gat::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
02877 {
02878         return v->visit_pi_gat( this );
02879 }
02880 
02881 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_gat::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
02882 {
02883         return v->visit_pi_gat( this );
02884 }
02885 
02886 /*!
02887    This factory method for class pi_gat takes values of all fields as arguments.
02888    \author lsg
02889  */
02890 ptr< pi_gat > pi_gat::create(ptr< pi_pi > a__pi_pi__psp,
02891                 ptr< pi_pi > a__pi_pi__nsp,
02892                 ulint a__pi_pi__level,
02893                 ptr< pi_non_mem > a__pi_bpi__source,
02894                 ptr< pi_preg > a__pi_bpi__destination,
02895                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_bstpi__type)
02896 {
02897         return ptr< pi_gat > ( new pi_gat(a__pi_pi__psp,
02898                 a__pi_pi__nsp,
02899                 a__pi_pi__level,
02900                 a__pi_bpi__source,
02901                 a__pi_bpi__destination,
02902                 a__pi_bstpi__type) );
02903 }
02904 
02905 /*!
02906    Generated constructor for class pi_gat.
02907    \author lsg
02908  */
02909 pi_gat::pi_gat (ptr< pi_pi > a__pi_pi__psp,
02910                 ptr< pi_pi > a__pi_pi__nsp,
02911                 ulint a__pi_pi__level,
02912                 ptr< pi_non_mem > a__pi_bpi__source,
02913                 ptr< pi_preg > a__pi_bpi__destination,
02914                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_bstpi__type)
02915         : pi_bstpi(a__pi_pi__psp,
02916                 a__pi_pi__nsp,
02917                 a__pi_pi__level,
02918                 a__pi_bpi__source,
02919                 a__pi_bpi__destination,
02920                 a__pi_bstpi__type)
02921 {}
02922 
02923 ptr< object::reflection_list > pi_gat::reflection_get() const
02924 {
02925         if (!reflection) {
02926                 typedef class_reflection::field_metadata md;
02927                 typedef class_reflection::field_metadata_list mdlist;
02928                 ptr<mdlist> mdl = mdlist::create();
02929                 reflection = reflection_list::create( pi_bstpi::reflection_get() );
02930                 reflection->push_back( class_reflection::create( "pi_gat", mdl ) );
02931         }
02932         return reflection;
02933 }
02934 
02935 ptr< object::field_list_list > pi_gat::field_values_get() const
02936 {
02937         ptr < field_list_list > result = pi_bstpi::field_values_get();
02938         return result;
02939 }
02940 
02941 
02942 /*!
02943    Marking routine is used for garbage collection.
02944    \author lsg
02945  */
02946 void pi_gat::gc_mark()
02947 {
02948         pi_bstpi::gc_mark();
02949 }
02950 
02951 // End of class pi_gat.
02952 
02953 // ------------- Class pi_shl follows. -------------
02954 
02955 ptr< ::lestes::backend_v2::structs::pi_operands > pi_shl::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
02956 {
02957         return v->visit_pi_shl( this );
02958 }
02959 
02960 ulint pi_shl::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
02961 {
02962         return v->visit_pi_shl( this );
02963 }
02964 
02965 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_shl::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
02966 {
02967         return v->visit_pi_shl( this );
02968 }
02969 
02970 /*!
02971    This factory method for class pi_shl takes values of all fields as arguments.
02972    \author lsg
02973  */
02974 ptr< pi_shl > pi_shl::create(ptr< pi_pi > a__pi_pi__psp,
02975                 ptr< pi_pi > a__pi_pi__nsp,
02976                 ulint a__pi_pi__level,
02977                 ptr< pi_non_mem > a__pi_tpi__left,
02978                 ptr< pi_non_mem > a__pi_tpi__right,
02979                 ptr< pi_preg > a__pi_tpi__destination,
02980                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
02981 {
02982         return ptr< pi_shl > ( new pi_shl(a__pi_pi__psp,
02983                 a__pi_pi__nsp,
02984                 a__pi_pi__level,
02985                 a__pi_tpi__left,
02986                 a__pi_tpi__right,
02987                 a__pi_tpi__destination,
02988                 a__pi_tstpi__type) );
02989 }
02990 
02991 /*!
02992    Generated constructor for class pi_shl.
02993    \author lsg
02994  */
02995 pi_shl::pi_shl (ptr< pi_pi > a__pi_pi__psp,
02996                 ptr< pi_pi > a__pi_pi__nsp,
02997                 ulint a__pi_pi__level,
02998                 ptr< pi_non_mem > a__pi_tpi__left,
02999                 ptr< pi_non_mem > a__pi_tpi__right,
03000                 ptr< pi_preg > a__pi_tpi__destination,
03001                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
03002         : pi_tstpi(a__pi_pi__psp,
03003                 a__pi_pi__nsp,
03004                 a__pi_pi__level,
03005                 a__pi_tpi__left,
03006                 a__pi_tpi__right,
03007                 a__pi_tpi__destination,
03008                 a__pi_tstpi__type)
03009 {}
03010 
03011 ptr< object::reflection_list > pi_shl::reflection_get() const
03012 {
03013         if (!reflection) {
03014                 typedef class_reflection::field_metadata md;
03015                 typedef class_reflection::field_metadata_list mdlist;
03016                 ptr<mdlist> mdl = mdlist::create();
03017                 reflection = reflection_list::create( pi_tstpi::reflection_get() );
03018                 reflection->push_back( class_reflection::create( "pi_shl", mdl ) );
03019         }
03020         return reflection;
03021 }
03022 
03023 ptr< object::field_list_list > pi_shl::field_values_get() const
03024 {
03025         ptr < field_list_list > result = pi_tstpi::field_values_get();
03026         return result;
03027 }
03028 
03029 
03030 /*!
03031    Marking routine is used for garbage collection.
03032    \author lsg
03033  */
03034 void pi_shl::gc_mark()
03035 {
03036         pi_tstpi::gc_mark();
03037 }
03038 
03039 // End of class pi_shl.
03040 
03041 // ------------- Class pi_shr follows. -------------
03042 
03043 ptr< ::lestes::backend_v2::structs::pi_operands > pi_shr::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
03044 {
03045         return v->visit_pi_shr( this );
03046 }
03047 
03048 ulint pi_shr::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
03049 {
03050         return v->visit_pi_shr( this );
03051 }
03052 
03053 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_shr::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
03054 {
03055         return v->visit_pi_shr( this );
03056 }
03057 
03058 /*!
03059    This factory method for class pi_shr takes values of all fields as arguments.
03060    \author lsg
03061  */
03062 ptr< pi_shr > pi_shr::create(ptr< pi_pi > a__pi_pi__psp,
03063                 ptr< pi_pi > a__pi_pi__nsp,
03064                 ulint a__pi_pi__level,
03065                 ptr< pi_non_mem > a__pi_tpi__left,
03066                 ptr< pi_non_mem > a__pi_tpi__right,
03067                 ptr< pi_preg > a__pi_tpi__destination,
03068                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
03069 {
03070         return ptr< pi_shr > ( new pi_shr(a__pi_pi__psp,
03071                 a__pi_pi__nsp,
03072                 a__pi_pi__level,
03073                 a__pi_tpi__left,
03074                 a__pi_tpi__right,
03075                 a__pi_tpi__destination,
03076                 a__pi_tstpi__type) );
03077 }
03078 
03079 /*!
03080    Generated constructor for class pi_shr.
03081    \author lsg
03082  */
03083 pi_shr::pi_shr (ptr< pi_pi > a__pi_pi__psp,
03084                 ptr< pi_pi > a__pi_pi__nsp,
03085                 ulint a__pi_pi__level,
03086                 ptr< pi_non_mem > a__pi_tpi__left,
03087                 ptr< pi_non_mem > a__pi_tpi__right,
03088                 ptr< pi_preg > a__pi_tpi__destination,
03089                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
03090         : pi_tstpi(a__pi_pi__psp,
03091                 a__pi_pi__nsp,
03092                 a__pi_pi__level,
03093                 a__pi_tpi__left,
03094                 a__pi_tpi__right,
03095                 a__pi_tpi__destination,
03096                 a__pi_tstpi__type)
03097 {}
03098 
03099 ptr< object::reflection_list > pi_shr::reflection_get() const
03100 {
03101         if (!reflection) {
03102                 typedef class_reflection::field_metadata md;
03103                 typedef class_reflection::field_metadata_list mdlist;
03104                 ptr<mdlist> mdl = mdlist::create();
03105                 reflection = reflection_list::create( pi_tstpi::reflection_get() );
03106                 reflection->push_back( class_reflection::create( "pi_shr", mdl ) );
03107         }
03108         return reflection;
03109 }
03110 
03111 ptr< object::field_list_list > pi_shr::field_values_get() const
03112 {
03113         ptr < field_list_list > result = pi_tstpi::field_values_get();
03114         return result;
03115 }
03116 
03117 
03118 /*!
03119    Marking routine is used for garbage collection.
03120    \author lsg
03121  */
03122 void pi_shr::gc_mark()
03123 {
03124         pi_tstpi::gc_mark();
03125 }
03126 
03127 // End of class pi_shr.
03128 
03129 // ------------- Class pi_sal follows. -------------
03130 
03131 ptr< ::lestes::backend_v2::structs::pi_operands > pi_sal::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
03132 {
03133         return v->visit_pi_sal( this );
03134 }
03135 
03136 ulint pi_sal::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
03137 {
03138         return v->visit_pi_sal( this );
03139 }
03140 
03141 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_sal::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
03142 {
03143         return v->visit_pi_sal( this );
03144 }
03145 
03146 /*!
03147    This factory method for class pi_sal takes values of all fields as arguments.
03148    \author lsg
03149  */
03150 ptr< pi_sal > pi_sal::create(ptr< pi_pi > a__pi_pi__psp,
03151                 ptr< pi_pi > a__pi_pi__nsp,
03152                 ulint a__pi_pi__level,
03153                 ptr< pi_non_mem > a__pi_tpi__left,
03154                 ptr< pi_non_mem > a__pi_tpi__right,
03155                 ptr< pi_preg > a__pi_tpi__destination,
03156                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
03157 {
03158         return ptr< pi_sal > ( new pi_sal(a__pi_pi__psp,
03159                 a__pi_pi__nsp,
03160                 a__pi_pi__level,
03161                 a__pi_tpi__left,
03162                 a__pi_tpi__right,
03163                 a__pi_tpi__destination,
03164                 a__pi_tstpi__type) );
03165 }
03166 
03167 /*!
03168    Generated constructor for class pi_sal.
03169    \author lsg
03170  */
03171 pi_sal::pi_sal (ptr< pi_pi > a__pi_pi__psp,
03172                 ptr< pi_pi > a__pi_pi__nsp,
03173                 ulint a__pi_pi__level,
03174                 ptr< pi_non_mem > a__pi_tpi__left,
03175                 ptr< pi_non_mem > a__pi_tpi__right,
03176                 ptr< pi_preg > a__pi_tpi__destination,
03177                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
03178         : pi_tstpi(a__pi_pi__psp,
03179                 a__pi_pi__nsp,
03180                 a__pi_pi__level,
03181                 a__pi_tpi__left,
03182                 a__pi_tpi__right,
03183                 a__pi_tpi__destination,
03184                 a__pi_tstpi__type)
03185 {}
03186 
03187 ptr< object::reflection_list > pi_sal::reflection_get() const
03188 {
03189         if (!reflection) {
03190                 typedef class_reflection::field_metadata md;
03191                 typedef class_reflection::field_metadata_list mdlist;
03192                 ptr<mdlist> mdl = mdlist::create();
03193                 reflection = reflection_list::create( pi_tstpi::reflection_get() );
03194                 reflection->push_back( class_reflection::create( "pi_sal", mdl ) );
03195         }
03196         return reflection;
03197 }
03198 
03199 ptr< object::field_list_list > pi_sal::field_values_get() const
03200 {
03201         ptr < field_list_list > result = pi_tstpi::field_values_get();
03202         return result;
03203 }
03204 
03205 
03206 /*!
03207    Marking routine is used for garbage collection.
03208    \author lsg
03209  */
03210 void pi_sal::gc_mark()
03211 {
03212         pi_tstpi::gc_mark();
03213 }
03214 
03215 // End of class pi_sal.
03216 
03217 // ------------- Class pi_sar follows. -------------
03218 
03219 ptr< ::lestes::backend_v2::structs::pi_operands > pi_sar::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
03220 {
03221         return v->visit_pi_sar( this );
03222 }
03223 
03224 ulint pi_sar::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
03225 {
03226         return v->visit_pi_sar( this );
03227 }
03228 
03229 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_sar::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
03230 {
03231         return v->visit_pi_sar( this );
03232 }
03233 
03234 /*!
03235    This factory method for class pi_sar takes values of all fields as arguments.
03236    \author lsg
03237  */
03238 ptr< pi_sar > pi_sar::create(ptr< pi_pi > a__pi_pi__psp,
03239                 ptr< pi_pi > a__pi_pi__nsp,
03240                 ulint a__pi_pi__level,
03241                 ptr< pi_non_mem > a__pi_tpi__left,
03242                 ptr< pi_non_mem > a__pi_tpi__right,
03243                 ptr< pi_preg > a__pi_tpi__destination,
03244                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
03245 {
03246         return ptr< pi_sar > ( new pi_sar(a__pi_pi__psp,
03247                 a__pi_pi__nsp,
03248                 a__pi_pi__level,
03249                 a__pi_tpi__left,
03250                 a__pi_tpi__right,
03251                 a__pi_tpi__destination,
03252                 a__pi_tstpi__type) );
03253 }
03254 
03255 /*!
03256    Generated constructor for class pi_sar.
03257    \author lsg
03258  */
03259 pi_sar::pi_sar (ptr< pi_pi > a__pi_pi__psp,
03260                 ptr< pi_pi > a__pi_pi__nsp,
03261                 ulint a__pi_pi__level,
03262                 ptr< pi_non_mem > a__pi_tpi__left,
03263                 ptr< pi_non_mem > a__pi_tpi__right,
03264                 ptr< pi_preg > a__pi_tpi__destination,
03265                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
03266         : pi_tstpi(a__pi_pi__psp,
03267                 a__pi_pi__nsp,
03268                 a__pi_pi__level,
03269                 a__pi_tpi__left,
03270                 a__pi_tpi__right,
03271                 a__pi_tpi__destination,
03272                 a__pi_tstpi__type)
03273 {}
03274 
03275 ptr< object::reflection_list > pi_sar::reflection_get() const
03276 {
03277         if (!reflection) {
03278                 typedef class_reflection::field_metadata md;
03279                 typedef class_reflection::field_metadata_list mdlist;
03280                 ptr<mdlist> mdl = mdlist::create();
03281                 reflection = reflection_list::create( pi_tstpi::reflection_get() );
03282                 reflection->push_back( class_reflection::create( "pi_sar", mdl ) );
03283         }
03284         return reflection;
03285 }
03286 
03287 ptr< object::field_list_list > pi_sar::field_values_get() const
03288 {
03289         ptr < field_list_list > result = pi_tstpi::field_values_get();
03290         return result;
03291 }
03292 
03293 
03294 /*!
03295    Marking routine is used for garbage collection.
03296    \author lsg
03297  */
03298 void pi_sar::gc_mark()
03299 {
03300         pi_tstpi::gc_mark();
03301 }
03302 
03303 // End of class pi_sar.
03304 
03305 // ------------- Class pi_band follows. -------------
03306 
03307 ptr< ::lestes::backend_v2::structs::pi_operands > pi_band::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
03308 {
03309         return v->visit_pi_band( this );
03310 }
03311 
03312 ulint pi_band::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
03313 {
03314         return v->visit_pi_band( this );
03315 }
03316 
03317 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_band::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
03318 {
03319         return v->visit_pi_band( this );
03320 }
03321 
03322 /*!
03323    This factory method for class pi_band takes values of all fields as arguments.
03324    \author lsg
03325  */
03326 ptr< pi_band > pi_band::create(ptr< pi_pi > a__pi_pi__psp,
03327                 ptr< pi_pi > a__pi_pi__nsp,
03328                 ulint a__pi_pi__level,
03329                 ptr< pi_non_mem > a__pi_tpi__left,
03330                 ptr< pi_non_mem > a__pi_tpi__right,
03331                 ptr< pi_preg > a__pi_tpi__destination,
03332                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
03333 {
03334         return ptr< pi_band > ( new pi_band(a__pi_pi__psp,
03335                 a__pi_pi__nsp,
03336                 a__pi_pi__level,
03337                 a__pi_tpi__left,
03338                 a__pi_tpi__right,
03339                 a__pi_tpi__destination,
03340                 a__pi_tstpi__type) );
03341 }
03342 
03343 /*!
03344    Generated constructor for class pi_band.
03345    \author lsg
03346  */
03347 pi_band::pi_band (ptr< pi_pi > a__pi_pi__psp,
03348                 ptr< pi_pi > a__pi_pi__nsp,
03349                 ulint a__pi_pi__level,
03350                 ptr< pi_non_mem > a__pi_tpi__left,
03351                 ptr< pi_non_mem > a__pi_tpi__right,
03352                 ptr< pi_preg > a__pi_tpi__destination,
03353                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
03354         : pi_tstpi(a__pi_pi__psp,
03355                 a__pi_pi__nsp,
03356                 a__pi_pi__level,
03357                 a__pi_tpi__left,
03358                 a__pi_tpi__right,
03359                 a__pi_tpi__destination,
03360                 a__pi_tstpi__type)
03361 {}
03362 
03363 ptr< object::reflection_list > pi_band::reflection_get() const
03364 {
03365         if (!reflection) {
03366                 typedef class_reflection::field_metadata md;
03367                 typedef class_reflection::field_metadata_list mdlist;
03368                 ptr<mdlist> mdl = mdlist::create();
03369                 reflection = reflection_list::create( pi_tstpi::reflection_get() );
03370                 reflection->push_back( class_reflection::create( "pi_band", mdl ) );
03371         }
03372         return reflection;
03373 }
03374 
03375 ptr< object::field_list_list > pi_band::field_values_get() const
03376 {
03377         ptr < field_list_list > result = pi_tstpi::field_values_get();
03378         return result;
03379 }
03380 
03381 
03382 /*!
03383    Marking routine is used for garbage collection.
03384    \author lsg
03385  */
03386 void pi_band::gc_mark()
03387 {
03388         pi_tstpi::gc_mark();
03389 }
03390 
03391 // End of class pi_band.
03392 
03393 // ------------- Class pi_bor follows. -------------
03394 
03395 ptr< ::lestes::backend_v2::structs::pi_operands > pi_bor::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
03396 {
03397         return v->visit_pi_bor( this );
03398 }
03399 
03400 ulint pi_bor::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
03401 {
03402         return v->visit_pi_bor( this );
03403 }
03404 
03405 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_bor::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
03406 {
03407         return v->visit_pi_bor( this );
03408 }
03409 
03410 /*!
03411    This factory method for class pi_bor takes values of all fields as arguments.
03412    \author lsg
03413  */
03414 ptr< pi_bor > pi_bor::create(ptr< pi_pi > a__pi_pi__psp,
03415                 ptr< pi_pi > a__pi_pi__nsp,
03416                 ulint a__pi_pi__level,
03417                 ptr< pi_non_mem > a__pi_tpi__left,
03418                 ptr< pi_non_mem > a__pi_tpi__right,
03419                 ptr< pi_preg > a__pi_tpi__destination,
03420                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
03421 {
03422         return ptr< pi_bor > ( new pi_bor(a__pi_pi__psp,
03423                 a__pi_pi__nsp,
03424                 a__pi_pi__level,
03425                 a__pi_tpi__left,
03426                 a__pi_tpi__right,
03427                 a__pi_tpi__destination,
03428                 a__pi_tstpi__type) );
03429 }
03430 
03431 /*!
03432    Generated constructor for class pi_bor.
03433    \author lsg
03434  */
03435 pi_bor::pi_bor (ptr< pi_pi > a__pi_pi__psp,
03436                 ptr< pi_pi > a__pi_pi__nsp,
03437                 ulint a__pi_pi__level,
03438                 ptr< pi_non_mem > a__pi_tpi__left,
03439                 ptr< pi_non_mem > a__pi_tpi__right,
03440                 ptr< pi_preg > a__pi_tpi__destination,
03441                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
03442         : pi_tstpi(a__pi_pi__psp,
03443                 a__pi_pi__nsp,
03444                 a__pi_pi__level,
03445                 a__pi_tpi__left,
03446                 a__pi_tpi__right,
03447                 a__pi_tpi__destination,
03448                 a__pi_tstpi__type)
03449 {}
03450 
03451 ptr< object::reflection_list > pi_bor::reflection_get() const
03452 {
03453         if (!reflection) {
03454                 typedef class_reflection::field_metadata md;
03455                 typedef class_reflection::field_metadata_list mdlist;
03456                 ptr<mdlist> mdl = mdlist::create();
03457                 reflection = reflection_list::create( pi_tstpi::reflection_get() );
03458                 reflection->push_back( class_reflection::create( "pi_bor", mdl ) );
03459         }
03460         return reflection;
03461 }
03462 
03463 ptr< object::field_list_list > pi_bor::field_values_get() const
03464 {
03465         ptr < field_list_list > result = pi_tstpi::field_values_get();
03466         return result;
03467 }
03468 
03469 
03470 /*!
03471    Marking routine is used for garbage collection.
03472    \author lsg
03473  */
03474 void pi_bor::gc_mark()
03475 {
03476         pi_tstpi::gc_mark();
03477 }
03478 
03479 // End of class pi_bor.
03480 
03481 // ------------- Class pi_bxor follows. -------------
03482 
03483 ptr< ::lestes::backend_v2::structs::pi_operands > pi_bxor::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
03484 {
03485         return v->visit_pi_bxor( this );
03486 }
03487 
03488 ulint pi_bxor::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
03489 {
03490         return v->visit_pi_bxor( this );
03491 }
03492 
03493 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_bxor::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
03494 {
03495         return v->visit_pi_bxor( this );
03496 }
03497 
03498 /*!
03499    This factory method for class pi_bxor takes values of all fields as arguments.
03500    \author lsg
03501  */
03502 ptr< pi_bxor > pi_bxor::create(ptr< pi_pi > a__pi_pi__psp,
03503                 ptr< pi_pi > a__pi_pi__nsp,
03504                 ulint a__pi_pi__level,
03505                 ptr< pi_non_mem > a__pi_tpi__left,
03506                 ptr< pi_non_mem > a__pi_tpi__right,
03507                 ptr< pi_preg > a__pi_tpi__destination,
03508                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
03509 {
03510         return ptr< pi_bxor > ( new pi_bxor(a__pi_pi__psp,
03511                 a__pi_pi__nsp,
03512                 a__pi_pi__level,
03513                 a__pi_tpi__left,
03514                 a__pi_tpi__right,
03515                 a__pi_tpi__destination,
03516                 a__pi_tstpi__type) );
03517 }
03518 
03519 /*!
03520    Generated constructor for class pi_bxor.
03521    \author lsg
03522  */
03523 pi_bxor::pi_bxor (ptr< pi_pi > a__pi_pi__psp,
03524                 ptr< pi_pi > a__pi_pi__nsp,
03525                 ulint a__pi_pi__level,
03526                 ptr< pi_non_mem > a__pi_tpi__left,
03527                 ptr< pi_non_mem > a__pi_tpi__right,
03528                 ptr< pi_preg > a__pi_tpi__destination,
03529                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
03530         : pi_tstpi(a__pi_pi__psp,
03531                 a__pi_pi__nsp,
03532                 a__pi_pi__level,
03533                 a__pi_tpi__left,
03534                 a__pi_tpi__right,
03535                 a__pi_tpi__destination,
03536                 a__pi_tstpi__type)
03537 {}
03538 
03539 ptr< object::reflection_list > pi_bxor::reflection_get() const
03540 {
03541         if (!reflection) {
03542                 typedef class_reflection::field_metadata md;
03543                 typedef class_reflection::field_metadata_list mdlist;
03544                 ptr<mdlist> mdl = mdlist::create();
03545                 reflection = reflection_list::create( pi_tstpi::reflection_get() );
03546                 reflection->push_back( class_reflection::create( "pi_bxor", mdl ) );
03547         }
03548         return reflection;
03549 }
03550 
03551 ptr< object::field_list_list > pi_bxor::field_values_get() const
03552 {
03553         ptr < field_list_list > result = pi_tstpi::field_values_get();
03554         return result;
03555 }
03556 
03557 
03558 /*!
03559    Marking routine is used for garbage collection.
03560    \author lsg
03561  */
03562 void pi_bxor::gc_mark()
03563 {
03564         pi_tstpi::gc_mark();
03565 }
03566 
03567 // End of class pi_bxor.
03568 
03569 // ------------- Class pi_bnot follows. -------------
03570 
03571 ptr< ::lestes::backend_v2::structs::pi_operands > pi_bnot::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
03572 {
03573         return v->visit_pi_bnot( this );
03574 }
03575 
03576 ulint pi_bnot::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
03577 {
03578         return v->visit_pi_bnot( this );
03579 }
03580 
03581 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_bnot::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
03582 {
03583         return v->visit_pi_bnot( this );
03584 }
03585 
03586 /*!
03587    This factory method for class pi_bnot takes values of all fields as arguments.
03588    \author lsg
03589  */
03590 ptr< pi_bnot > pi_bnot::create(ptr< pi_pi > a__pi_pi__psp,
03591                 ptr< pi_pi > a__pi_pi__nsp,
03592                 ulint a__pi_pi__level,
03593                 ptr< pi_non_mem > a__pi_bpi__source,
03594                 ptr< pi_preg > a__pi_bpi__destination,
03595                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_bstpi__type)
03596 {
03597         return ptr< pi_bnot > ( new pi_bnot(a__pi_pi__psp,
03598                 a__pi_pi__nsp,
03599                 a__pi_pi__level,
03600                 a__pi_bpi__source,
03601                 a__pi_bpi__destination,
03602                 a__pi_bstpi__type) );
03603 }
03604 
03605 /*!
03606    Generated constructor for class pi_bnot.
03607    \author lsg
03608  */
03609 pi_bnot::pi_bnot (ptr< pi_pi > a__pi_pi__psp,
03610                 ptr< pi_pi > a__pi_pi__nsp,
03611                 ulint a__pi_pi__level,
03612                 ptr< pi_non_mem > a__pi_bpi__source,
03613                 ptr< pi_preg > a__pi_bpi__destination,
03614                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_bstpi__type)
03615         : pi_bstpi(a__pi_pi__psp,
03616                 a__pi_pi__nsp,
03617                 a__pi_pi__level,
03618                 a__pi_bpi__source,
03619                 a__pi_bpi__destination,
03620                 a__pi_bstpi__type)
03621 {}
03622 
03623 ptr< object::reflection_list > pi_bnot::reflection_get() const
03624 {
03625         if (!reflection) {
03626                 typedef class_reflection::field_metadata md;
03627                 typedef class_reflection::field_metadata_list mdlist;
03628                 ptr<mdlist> mdl = mdlist::create();
03629                 reflection = reflection_list::create( pi_bstpi::reflection_get() );
03630                 reflection->push_back( class_reflection::create( "pi_bnot", mdl ) );
03631         }
03632         return reflection;
03633 }
03634 
03635 ptr< object::field_list_list > pi_bnot::field_values_get() const
03636 {
03637         ptr < field_list_list > result = pi_bstpi::field_values_get();
03638         return result;
03639 }
03640 
03641 
03642 /*!
03643    Marking routine is used for garbage collection.
03644    \author lsg
03645  */
03646 void pi_bnot::gc_mark()
03647 {
03648         pi_bstpi::gc_mark();
03649 }
03650 
03651 // End of class pi_bnot.
03652 
03653 // ------------- Class pi_land follows. -------------
03654 
03655 ptr< ::lestes::backend_v2::structs::pi_operands > pi_land::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
03656 {
03657         return v->visit_pi_land( this );
03658 }
03659 
03660 ulint pi_land::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
03661 {
03662         return v->visit_pi_land( this );
03663 }
03664 
03665 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_land::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
03666 {
03667         return v->visit_pi_land( this );
03668 }
03669 
03670 /*!
03671    This factory method for class pi_land takes values of all fields as arguments.
03672    \author lsg
03673  */
03674 ptr< pi_land > pi_land::create(ptr< pi_pi > a__pi_pi__psp,
03675                 ptr< pi_pi > a__pi_pi__nsp,
03676                 ulint a__pi_pi__level,
03677                 ptr< pi_non_mem > a__pi_tpi__left,
03678                 ptr< pi_non_mem > a__pi_tpi__right,
03679                 ptr< pi_preg > a__pi_tpi__destination,
03680                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
03681 {
03682         return ptr< pi_land > ( new pi_land(a__pi_pi__psp,
03683                 a__pi_pi__nsp,
03684                 a__pi_pi__level,
03685                 a__pi_tpi__left,
03686                 a__pi_tpi__right,
03687                 a__pi_tpi__destination,
03688                 a__pi_tstpi__type) );
03689 }
03690 
03691 /*!
03692    Generated constructor for class pi_land.
03693    \author lsg
03694  */
03695 pi_land::pi_land (ptr< pi_pi > a__pi_pi__psp,
03696                 ptr< pi_pi > a__pi_pi__nsp,
03697                 ulint a__pi_pi__level,
03698                 ptr< pi_non_mem > a__pi_tpi__left,
03699                 ptr< pi_non_mem > a__pi_tpi__right,
03700                 ptr< pi_preg > a__pi_tpi__destination,
03701                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
03702         : pi_tstpi(a__pi_pi__psp,
03703                 a__pi_pi__nsp,
03704                 a__pi_pi__level,
03705                 a__pi_tpi__left,
03706                 a__pi_tpi__right,
03707                 a__pi_tpi__destination,
03708                 a__pi_tstpi__type)
03709 {}
03710 
03711 ptr< object::reflection_list > pi_land::reflection_get() const
03712 {
03713         if (!reflection) {
03714                 typedef class_reflection::field_metadata md;
03715                 typedef class_reflection::field_metadata_list mdlist;
03716                 ptr<mdlist> mdl = mdlist::create();
03717                 reflection = reflection_list::create( pi_tstpi::reflection_get() );
03718                 reflection->push_back( class_reflection::create( "pi_land", mdl ) );
03719         }
03720         return reflection;
03721 }
03722 
03723 ptr< object::field_list_list > pi_land::field_values_get() const
03724 {
03725         ptr < field_list_list > result = pi_tstpi::field_values_get();
03726         return result;
03727 }
03728 
03729 
03730 /*!
03731    Marking routine is used for garbage collection.
03732    \author lsg
03733  */
03734 void pi_land::gc_mark()
03735 {
03736         pi_tstpi::gc_mark();
03737 }
03738 
03739 // End of class pi_land.
03740 
03741 // ------------- Class pi_lor follows. -------------
03742 
03743 ptr< ::lestes::backend_v2::structs::pi_operands > pi_lor::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
03744 {
03745         return v->visit_pi_lor( this );
03746 }
03747 
03748 ulint pi_lor::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
03749 {
03750         return v->visit_pi_lor( this );
03751 }
03752 
03753 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_lor::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
03754 {
03755         return v->visit_pi_lor( this );
03756 }
03757 
03758 /*!
03759    This factory method for class pi_lor takes values of all fields as arguments.
03760    \author lsg
03761  */
03762 ptr< pi_lor > pi_lor::create(ptr< pi_pi > a__pi_pi__psp,
03763                 ptr< pi_pi > a__pi_pi__nsp,
03764                 ulint a__pi_pi__level,
03765                 ptr< pi_non_mem > a__pi_tpi__left,
03766                 ptr< pi_non_mem > a__pi_tpi__right,
03767                 ptr< pi_preg > a__pi_tpi__destination,
03768                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
03769 {
03770         return ptr< pi_lor > ( new pi_lor(a__pi_pi__psp,
03771                 a__pi_pi__nsp,
03772                 a__pi_pi__level,
03773                 a__pi_tpi__left,
03774                 a__pi_tpi__right,
03775                 a__pi_tpi__destination,
03776                 a__pi_tstpi__type) );
03777 }
03778 
03779 /*!
03780    Generated constructor for class pi_lor.
03781    \author lsg
03782  */
03783 pi_lor::pi_lor (ptr< pi_pi > a__pi_pi__psp,
03784                 ptr< pi_pi > a__pi_pi__nsp,
03785                 ulint a__pi_pi__level,
03786                 ptr< pi_non_mem > a__pi_tpi__left,
03787                 ptr< pi_non_mem > a__pi_tpi__right,
03788                 ptr< pi_preg > a__pi_tpi__destination,
03789                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
03790         : pi_tstpi(a__pi_pi__psp,
03791                 a__pi_pi__nsp,
03792                 a__pi_pi__level,
03793                 a__pi_tpi__left,
03794                 a__pi_tpi__right,
03795                 a__pi_tpi__destination,
03796                 a__pi_tstpi__type)
03797 {}
03798 
03799 ptr< object::reflection_list > pi_lor::reflection_get() const
03800 {
03801         if (!reflection) {
03802                 typedef class_reflection::field_metadata md;
03803                 typedef class_reflection::field_metadata_list mdlist;
03804                 ptr<mdlist> mdl = mdlist::create();
03805                 reflection = reflection_list::create( pi_tstpi::reflection_get() );
03806                 reflection->push_back( class_reflection::create( "pi_lor", mdl ) );
03807         }
03808         return reflection;
03809 }
03810 
03811 ptr< object::field_list_list > pi_lor::field_values_get() const
03812 {
03813         ptr < field_list_list > result = pi_tstpi::field_values_get();
03814         return result;
03815 }
03816 
03817 
03818 /*!
03819    Marking routine is used for garbage collection.
03820    \author lsg
03821  */
03822 void pi_lor::gc_mark()
03823 {
03824         pi_tstpi::gc_mark();
03825 }
03826 
03827 // End of class pi_lor.
03828 
03829 // ------------- Class pi_lxor follows. -------------
03830 
03831 ptr< ::lestes::backend_v2::structs::pi_operands > pi_lxor::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
03832 {
03833         return v->visit_pi_lxor( this );
03834 }
03835 
03836 ulint pi_lxor::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
03837 {
03838         return v->visit_pi_lxor( this );
03839 }
03840 
03841 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_lxor::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
03842 {
03843         return v->visit_pi_lxor( this );
03844 }
03845 
03846 /*!
03847    This factory method for class pi_lxor takes values of all fields as arguments.
03848    \author lsg
03849  */
03850 ptr< pi_lxor > pi_lxor::create(ptr< pi_pi > a__pi_pi__psp,
03851                 ptr< pi_pi > a__pi_pi__nsp,
03852                 ulint a__pi_pi__level,
03853                 ptr< pi_non_mem > a__pi_tpi__left,
03854                 ptr< pi_non_mem > a__pi_tpi__right,
03855                 ptr< pi_preg > a__pi_tpi__destination,
03856                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
03857 {
03858         return ptr< pi_lxor > ( new pi_lxor(a__pi_pi__psp,
03859                 a__pi_pi__nsp,
03860                 a__pi_pi__level,
03861                 a__pi_tpi__left,
03862                 a__pi_tpi__right,
03863                 a__pi_tpi__destination,
03864                 a__pi_tstpi__type) );
03865 }
03866 
03867 /*!
03868    Generated constructor for class pi_lxor.
03869    \author lsg
03870  */
03871 pi_lxor::pi_lxor (ptr< pi_pi > a__pi_pi__psp,
03872                 ptr< pi_pi > a__pi_pi__nsp,
03873                 ulint a__pi_pi__level,
03874                 ptr< pi_non_mem > a__pi_tpi__left,
03875                 ptr< pi_non_mem > a__pi_tpi__right,
03876                 ptr< pi_preg > a__pi_tpi__destination,
03877                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tstpi__type)
03878         : pi_tstpi(a__pi_pi__psp,
03879                 a__pi_pi__nsp,
03880                 a__pi_pi__level,
03881                 a__pi_tpi__left,
03882                 a__pi_tpi__right,
03883                 a__pi_tpi__destination,
03884                 a__pi_tstpi__type)
03885 {}
03886 
03887 ptr< object::reflection_list > pi_lxor::reflection_get() const
03888 {
03889         if (!reflection) {
03890                 typedef class_reflection::field_metadata md;
03891                 typedef class_reflection::field_metadata_list mdlist;
03892                 ptr<mdlist> mdl = mdlist::create();
03893                 reflection = reflection_list::create( pi_tstpi::reflection_get() );
03894                 reflection->push_back( class_reflection::create( "pi_lxor", mdl ) );
03895         }
03896         return reflection;
03897 }
03898 
03899 ptr< object::field_list_list > pi_lxor::field_values_get() const
03900 {
03901         ptr < field_list_list > result = pi_tstpi::field_values_get();
03902         return result;
03903 }
03904 
03905 
03906 /*!
03907    Marking routine is used for garbage collection.
03908    \author lsg
03909  */
03910 void pi_lxor::gc_mark()
03911 {
03912         pi_tstpi::gc_mark();
03913 }
03914 
03915 // End of class pi_lxor.
03916 
03917 // ------------- Class pi_lnot follows. -------------
03918 
03919 ptr< ::lestes::backend_v2::structs::pi_operands > pi_lnot::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
03920 {
03921         return v->visit_pi_lnot( this );
03922 }
03923 
03924 ulint pi_lnot::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
03925 {
03926         return v->visit_pi_lnot( this );
03927 }
03928 
03929 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_lnot::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
03930 {
03931         return v->visit_pi_lnot( this );
03932 }
03933 
03934 /*!
03935    This factory method for class pi_lnot takes values of all fields as arguments.
03936    \author lsg
03937  */
03938 ptr< pi_lnot > pi_lnot::create(ptr< pi_pi > a__pi_pi__psp,
03939                 ptr< pi_pi > a__pi_pi__nsp,
03940                 ulint a__pi_pi__level,
03941                 ptr< pi_non_mem > a__pi_bpi__source,
03942                 ptr< pi_preg > a__pi_bpi__destination,
03943                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_bstpi__type)
03944 {
03945         return ptr< pi_lnot > ( new pi_lnot(a__pi_pi__psp,
03946                 a__pi_pi__nsp,
03947                 a__pi_pi__level,
03948                 a__pi_bpi__source,
03949                 a__pi_bpi__destination,
03950                 a__pi_bstpi__type) );
03951 }
03952 
03953 /*!
03954    Generated constructor for class pi_lnot.
03955    \author lsg
03956  */
03957 pi_lnot::pi_lnot (ptr< pi_pi > a__pi_pi__psp,
03958                 ptr< pi_pi > a__pi_pi__nsp,
03959                 ulint a__pi_pi__level,
03960                 ptr< pi_non_mem > a__pi_bpi__source,
03961                 ptr< pi_preg > a__pi_bpi__destination,
03962                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_bstpi__type)
03963         : pi_bstpi(a__pi_pi__psp,
03964                 a__pi_pi__nsp,
03965                 a__pi_pi__level,
03966                 a__pi_bpi__source,
03967                 a__pi_bpi__destination,
03968                 a__pi_bstpi__type)
03969 {}
03970 
03971 ptr< object::reflection_list > pi_lnot::reflection_get() const
03972 {
03973         if (!reflection) {
03974                 typedef class_reflection::field_metadata md;
03975                 typedef class_reflection::field_metadata_list mdlist;
03976                 ptr<mdlist> mdl = mdlist::create();
03977                 reflection = reflection_list::create( pi_bstpi::reflection_get() );
03978                 reflection->push_back( class_reflection::create( "pi_lnot", mdl ) );
03979         }
03980         return reflection;
03981 }
03982 
03983 ptr< object::field_list_list > pi_lnot::field_values_get() const
03984 {
03985         ptr < field_list_list > result = pi_bstpi::field_values_get();
03986         return result;
03987 }
03988 
03989 
03990 /*!
03991    Marking routine is used for garbage collection.
03992    \author lsg
03993  */
03994 void pi_lnot::gc_mark()
03995 {
03996         pi_bstpi::gc_mark();
03997 }
03998 
03999 // End of class pi_lnot.
04000 
04001 // ------------- Class pi_cvt follows. -------------
04002 
04003 ptr< ::lestes::backend_v2::structs::pi_operands > pi_cvt::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
04004 {
04005         return v->visit_pi_cvt( this );
04006 }
04007 
04008 ulint pi_cvt::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
04009 {
04010         return v->visit_pi_cvt( this );
04011 }
04012 
04013 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_cvt::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
04014 {
04015         return v->visit_pi_cvt( this );
04016 }
04017 
04018 /*!
04019    This factory method for class pi_cvt takes values of all fields as arguments.
04020    \author lsg
04021  */
04022 ptr< pi_cvt > pi_cvt::create(ptr< pi_pi > a__pi_pi__psp,
04023                 ptr< pi_pi > a__pi_pi__nsp,
04024                 ulint a__pi_pi__level,
04025                 ptr< pi_non_mem > a__pi_bpi__source,
04026                 ptr< pi_preg > a__pi_bpi__destination,
04027                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_bdtpi__type1,
04028                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_bdtpi__type2)
04029 {
04030         return ptr< pi_cvt > ( new pi_cvt(a__pi_pi__psp,
04031                 a__pi_pi__nsp,
04032                 a__pi_pi__level,
04033                 a__pi_bpi__source,
04034                 a__pi_bpi__destination,
04035                 a__pi_bdtpi__type1,
04036                 a__pi_bdtpi__type2) );
04037 }
04038 
04039 /*!
04040    Generated constructor for class pi_cvt.
04041    \author lsg
04042  */
04043 pi_cvt::pi_cvt (ptr< pi_pi > a__pi_pi__psp,
04044                 ptr< pi_pi > a__pi_pi__nsp,
04045                 ulint a__pi_pi__level,
04046                 ptr< pi_non_mem > a__pi_bpi__source,
04047                 ptr< pi_preg > a__pi_bpi__destination,
04048                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_bdtpi__type1,
04049                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_bdtpi__type2)
04050         : pi_bdtpi(a__pi_pi__psp,
04051                 a__pi_pi__nsp,
04052                 a__pi_pi__level,
04053                 a__pi_bpi__source,
04054                 a__pi_bpi__destination,
04055                 a__pi_bdtpi__type1,
04056                 a__pi_bdtpi__type2)
04057 {}
04058 
04059 ptr< object::reflection_list > pi_cvt::reflection_get() const
04060 {
04061         if (!reflection) {
04062                 typedef class_reflection::field_metadata md;
04063                 typedef class_reflection::field_metadata_list mdlist;
04064                 ptr<mdlist> mdl = mdlist::create();
04065                 reflection = reflection_list::create( pi_bdtpi::reflection_get() );
04066                 reflection->push_back( class_reflection::create( "pi_cvt", mdl ) );
04067         }
04068         return reflection;
04069 }
04070 
04071 ptr< object::field_list_list > pi_cvt::field_values_get() const
04072 {
04073         ptr < field_list_list > result = pi_bdtpi::field_values_get();
04074         return result;
04075 }
04076 
04077 
04078 /*!
04079    Marking routine is used for garbage collection.
04080    \author lsg
04081  */
04082 void pi_cvt::gc_mark()
04083 {
04084         pi_bdtpi::gc_mark();
04085 }
04086 
04087 // End of class pi_cvt.
04088 
04089 // ------------- Class pi_cmp follows. -------------
04090 
04091 ptr< ::lestes::backend_v2::structs::pi_operands > pi_cmp::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
04092 {
04093         return v->visit_pi_cmp( this );
04094 }
04095 
04096 ulint pi_cmp::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
04097 {
04098         return v->visit_pi_cmp( this );
04099 }
04100 
04101 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_cmp::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
04102 {
04103         return v->visit_pi_cmp( this );
04104 }
04105 
04106 /*!
04107    This factory method for class pi_cmp takes values of all fields as arguments.
04108    \author lsg
04109  */
04110 ptr< pi_cmp > pi_cmp::create(ptr< pi_pi > a__pi_pi__psp,
04111                 ptr< pi_pi > a__pi_pi__nsp,
04112                 ulint a__pi_pi__level,
04113                 ptr< pi_non_mem > a__pi_tpi__left,
04114                 ptr< pi_non_mem > a__pi_tpi__right,
04115                 ptr< pi_preg > a__pi_tpi__destination,
04116                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type1,
04117                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type2)
04118 {
04119         return ptr< pi_cmp > ( new pi_cmp(a__pi_pi__psp,
04120                 a__pi_pi__nsp,
04121                 a__pi_pi__level,
04122                 a__pi_tpi__left,
04123                 a__pi_tpi__right,
04124                 a__pi_tpi__destination,
04125                 a__pi_tdtpi__type1,
04126                 a__pi_tdtpi__type2) );
04127 }
04128 
04129 /*!
04130    Generated constructor for class pi_cmp.
04131    \author lsg
04132  */
04133 pi_cmp::pi_cmp (ptr< pi_pi > a__pi_pi__psp,
04134                 ptr< pi_pi > a__pi_pi__nsp,
04135                 ulint a__pi_pi__level,
04136                 ptr< pi_non_mem > a__pi_tpi__left,
04137                 ptr< pi_non_mem > a__pi_tpi__right,
04138                 ptr< pi_preg > a__pi_tpi__destination,
04139                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type1,
04140                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type2)
04141         : pi_tdtpi(a__pi_pi__psp,
04142                 a__pi_pi__nsp,
04143                 a__pi_pi__level,
04144                 a__pi_tpi__left,
04145                 a__pi_tpi__right,
04146                 a__pi_tpi__destination,
04147                 a__pi_tdtpi__type1,
04148                 a__pi_tdtpi__type2)
04149 {}
04150 
04151 ptr< object::reflection_list > pi_cmp::reflection_get() const
04152 {
04153         if (!reflection) {
04154                 typedef class_reflection::field_metadata md;
04155                 typedef class_reflection::field_metadata_list mdlist;
04156                 ptr<mdlist> mdl = mdlist::create();
04157                 reflection = reflection_list::create( pi_tdtpi::reflection_get() );
04158                 reflection->push_back( class_reflection::create( "pi_cmp", mdl ) );
04159         }
04160         return reflection;
04161 }
04162 
04163 ptr< object::field_list_list > pi_cmp::field_values_get() const
04164 {
04165         ptr < field_list_list > result = pi_tdtpi::field_values_get();
04166         return result;
04167 }
04168 
04169 
04170 /*!
04171    Marking routine is used for garbage collection.
04172    \author lsg
04173  */
04174 void pi_cmp::gc_mark()
04175 {
04176         pi_tdtpi::gc_mark();
04177 }
04178 
04179 // End of class pi_cmp.
04180 
04181 // ------------- Class pi_mov follows. -------------
04182 
04183 ptr< ::lestes::backend_v2::structs::pi_operands > pi_mov::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
04184 {
04185         return v->visit_pi_mov( this );
04186 }
04187 
04188 ulint pi_mov::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
04189 {
04190         return v->visit_pi_mov( this );
04191 }
04192 
04193 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_mov::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
04194 {
04195         return v->visit_pi_mov( this );
04196 }
04197 
04198 /*!
04199    This factory method for class pi_mov takes values of all fields as arguments.
04200    \author lsg
04201  */
04202 ptr< pi_mov > pi_mov::create(ptr< pi_pi > a__pi_pi__psp,
04203                 ptr< pi_pi > a__pi_pi__nsp,
04204                 ulint a__pi_pi__level,
04205                 ptr< pi_operand > a__pi_abstract_move_st__destination,
04206                 ptr< pi_operand > a__pi_abstract_move_st__source,
04207                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_abstract_move_st__type)
04208 {
04209         return ptr< pi_mov > ( new pi_mov(a__pi_pi__psp,
04210                 a__pi_pi__nsp,
04211                 a__pi_pi__level,
04212                 a__pi_abstract_move_st__destination,
04213                 a__pi_abstract_move_st__source,
04214                 a__pi_abstract_move_st__type) );
04215 }
04216 
04217 /*!
04218    Generated constructor for class pi_mov.
04219    \author lsg
04220  */
04221 pi_mov::pi_mov (ptr< pi_pi > a__pi_pi__psp,
04222                 ptr< pi_pi > a__pi_pi__nsp,
04223                 ulint a__pi_pi__level,
04224                 ptr< pi_operand > a__pi_abstract_move_st__destination,
04225                 ptr< pi_operand > a__pi_abstract_move_st__source,
04226                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_abstract_move_st__type)
04227         : pi_abstract_move_st(a__pi_pi__psp,
04228                 a__pi_pi__nsp,
04229                 a__pi_pi__level,
04230                 a__pi_abstract_move_st__destination,
04231                 a__pi_abstract_move_st__source,
04232                 a__pi_abstract_move_st__type)
04233 {}
04234 
04235 ptr< object::reflection_list > pi_mov::reflection_get() const
04236 {
04237         if (!reflection) {
04238                 typedef class_reflection::field_metadata md;
04239                 typedef class_reflection::field_metadata_list mdlist;
04240                 ptr<mdlist> mdl = mdlist::create();
04241                 reflection = reflection_list::create( pi_abstract_move_st::reflection_get() );
04242                 reflection->push_back( class_reflection::create( "pi_mov", mdl ) );
04243         }
04244         return reflection;
04245 }
04246 
04247 ptr< object::field_list_list > pi_mov::field_values_get() const
04248 {
04249         ptr < field_list_list > result = pi_abstract_move_st::field_values_get();
04250         return result;
04251 }
04252 
04253 
04254 /*!
04255    Marking routine is used for garbage collection.
04256    \author lsg
04257  */
04258 void pi_mov::gc_mark()
04259 {
04260         pi_abstract_move_st::gc_mark();
04261 }
04262 
04263 // End of class pi_mov.
04264 
04265 // ------------- Class pi_ld follows. -------------
04266 
04267 ptr< ::lestes::backend_v2::structs::pi_operands > pi_ld::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
04268 {
04269         return v->visit_pi_ld( this );
04270 }
04271 
04272 ulint pi_ld::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
04273 {
04274         return v->visit_pi_ld( this );
04275 }
04276 
04277 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_ld::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
04278 {
04279         return v->visit_pi_ld( this );
04280 }
04281 
04282 /*!
04283    This factory method for class pi_ld takes values of all fields as arguments.
04284    \author lsg
04285  */
04286 ptr< pi_ld > pi_ld::create(ptr< pi_pi > a__pi_pi__psp,
04287                 ptr< pi_pi > a__pi_pi__nsp,
04288                 ulint a__pi_pi__level,
04289                 ptr< pi_operand > a__pi_abstract_move_st__destination,
04290                 ptr< pi_operand > a__pi_abstract_move_st__source,
04291                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_abstract_move_st__type)
04292 {
04293         return ptr< pi_ld > ( new pi_ld(a__pi_pi__psp,
04294                 a__pi_pi__nsp,
04295                 a__pi_pi__level,
04296                 a__pi_abstract_move_st__destination,
04297                 a__pi_abstract_move_st__source,
04298                 a__pi_abstract_move_st__type) );
04299 }
04300 
04301 /*!
04302    Generated constructor for class pi_ld.
04303    \author lsg
04304  */
04305 pi_ld::pi_ld (ptr< pi_pi > a__pi_pi__psp,
04306                 ptr< pi_pi > a__pi_pi__nsp,
04307                 ulint a__pi_pi__level,
04308                 ptr< pi_operand > a__pi_abstract_move_st__destination,
04309                 ptr< pi_operand > a__pi_abstract_move_st__source,
04310                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_abstract_move_st__type)
04311         : pi_abstract_move_st(a__pi_pi__psp,
04312                 a__pi_pi__nsp,
04313                 a__pi_pi__level,
04314                 a__pi_abstract_move_st__destination,
04315                 a__pi_abstract_move_st__source,
04316                 a__pi_abstract_move_st__type)
04317 {}
04318 
04319 ptr< object::reflection_list > pi_ld::reflection_get() const
04320 {
04321         if (!reflection) {
04322                 typedef class_reflection::field_metadata md;
04323                 typedef class_reflection::field_metadata_list mdlist;
04324                 ptr<mdlist> mdl = mdlist::create();
04325                 reflection = reflection_list::create( pi_abstract_move_st::reflection_get() );
04326                 reflection->push_back( class_reflection::create( "pi_ld", mdl ) );
04327         }
04328         return reflection;
04329 }
04330 
04331 ptr< object::field_list_list > pi_ld::field_values_get() const
04332 {
04333         ptr < field_list_list > result = pi_abstract_move_st::field_values_get();
04334         return result;
04335 }
04336 
04337 
04338 /*!
04339    Marking routine is used for garbage collection.
04340    \author lsg
04341  */
04342 void pi_ld::gc_mark()
04343 {
04344         pi_abstract_move_st::gc_mark();
04345 }
04346 
04347 // End of class pi_ld.
04348 
04349 // ------------- Class pi_lda follows. -------------
04350 
04351 ptr< ::lestes::backend_v2::structs::pi_operands > pi_lda::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
04352 {
04353         return v->visit_pi_lda( this );
04354 }
04355 
04356 ulint pi_lda::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
04357 {
04358         return v->visit_pi_lda( this );
04359 }
04360 
04361 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_lda::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
04362 {
04363         return v->visit_pi_lda( this );
04364 }
04365 
04366 /*!
04367    This factory method for class pi_lda takes values of all fields as arguments.
04368    \author lsg
04369  */
04370 ptr< pi_lda > pi_lda::create(ptr< pi_pi > a__pi_pi__psp,
04371                 ptr< pi_pi > a__pi_pi__nsp,
04372                 ulint a__pi_pi__level,
04373                 ptr< pi_operand > a__pi_abstract_move_dt__destination,
04374                 ptr< pi_operand > a__pi_abstract_move_dt__source,
04375                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_abstract_move_dt__type1,
04376                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_abstract_move_dt__type2)
04377 {
04378         return ptr< pi_lda > ( new pi_lda(a__pi_pi__psp,
04379                 a__pi_pi__nsp,
04380                 a__pi_pi__level,
04381                 a__pi_abstract_move_dt__destination,
04382                 a__pi_abstract_move_dt__source,
04383                 a__pi_abstract_move_dt__type1,
04384                 a__pi_abstract_move_dt__type2) );
04385 }
04386 
04387 /*!
04388    Generated constructor for class pi_lda.
04389    \author lsg
04390  */
04391 pi_lda::pi_lda (ptr< pi_pi > a__pi_pi__psp,
04392                 ptr< pi_pi > a__pi_pi__nsp,
04393                 ulint a__pi_pi__level,
04394                 ptr< pi_operand > a__pi_abstract_move_dt__destination,
04395                 ptr< pi_operand > a__pi_abstract_move_dt__source,
04396                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_abstract_move_dt__type1,
04397                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_abstract_move_dt__type2)
04398         : pi_abstract_move_dt(a__pi_pi__psp,
04399                 a__pi_pi__nsp,
04400                 a__pi_pi__level,
04401                 a__pi_abstract_move_dt__destination,
04402                 a__pi_abstract_move_dt__source,
04403                 a__pi_abstract_move_dt__type1,
04404                 a__pi_abstract_move_dt__type2)
04405 {}
04406 
04407 ptr< object::reflection_list > pi_lda::reflection_get() const
04408 {
04409         if (!reflection) {
04410                 typedef class_reflection::field_metadata md;
04411                 typedef class_reflection::field_metadata_list mdlist;
04412                 ptr<mdlist> mdl = mdlist::create();
04413                 reflection = reflection_list::create( pi_abstract_move_dt::reflection_get() );
04414                 reflection->push_back( class_reflection::create( "pi_lda", mdl ) );
04415         }
04416         return reflection;
04417 }
04418 
04419 ptr< object::field_list_list > pi_lda::field_values_get() const
04420 {
04421         ptr < field_list_list > result = pi_abstract_move_dt::field_values_get();
04422         return result;
04423 }
04424 
04425 
04426 /*!
04427    Marking routine is used for garbage collection.
04428    \author lsg
04429  */
04430 void pi_lda::gc_mark()
04431 {
04432         pi_abstract_move_dt::gc_mark();
04433 }
04434 
04435 // End of class pi_lda.
04436 
04437 // ------------- Class pi_ldi follows. -------------
04438 
04439 ptr< ::lestes::backend_v2::structs::pi_operands > pi_ldi::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
04440 {
04441         return v->visit_pi_ldi( this );
04442 }
04443 
04444 ulint pi_ldi::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
04445 {
04446         return v->visit_pi_ldi( this );
04447 }
04448 
04449 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_ldi::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
04450 {
04451         return v->visit_pi_ldi( this );
04452 }
04453 
04454 /*!
04455    This factory method for class pi_ldi takes values of all fields as arguments.
04456    \author lsg
04457  */
04458 ptr< pi_ldi > pi_ldi::create(ptr< pi_pi > a__pi_pi__psp,
04459                 ptr< pi_pi > a__pi_pi__nsp,
04460                 ulint a__pi_pi__level,
04461                 ptr< pi_operand > a__pi_abstract_move_st__destination,
04462                 ptr< pi_operand > a__pi_abstract_move_st__source,
04463                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_abstract_move_st__type)
04464 {
04465         return ptr< pi_ldi > ( new pi_ldi(a__pi_pi__psp,
04466                 a__pi_pi__nsp,
04467                 a__pi_pi__level,
04468                 a__pi_abstract_move_st__destination,
04469                 a__pi_abstract_move_st__source,
04470                 a__pi_abstract_move_st__type) );
04471 }
04472 
04473 /*!
04474    Generated constructor for class pi_ldi.
04475    \author lsg
04476  */
04477 pi_ldi::pi_ldi (ptr< pi_pi > a__pi_pi__psp,
04478                 ptr< pi_pi > a__pi_pi__nsp,
04479                 ulint a__pi_pi__level,
04480                 ptr< pi_operand > a__pi_abstract_move_st__destination,
04481                 ptr< pi_operand > a__pi_abstract_move_st__source,
04482                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_abstract_move_st__type)
04483         : pi_abstract_move_st(a__pi_pi__psp,
04484                 a__pi_pi__nsp,
04485                 a__pi_pi__level,
04486                 a__pi_abstract_move_st__destination,
04487                 a__pi_abstract_move_st__source,
04488                 a__pi_abstract_move_st__type)
04489 {}
04490 
04491 ptr< object::reflection_list > pi_ldi::reflection_get() const
04492 {
04493         if (!reflection) {
04494                 typedef class_reflection::field_metadata md;
04495                 typedef class_reflection::field_metadata_list mdlist;
04496                 ptr<mdlist> mdl = mdlist::create();
04497                 reflection = reflection_list::create( pi_abstract_move_st::reflection_get() );
04498                 reflection->push_back( class_reflection::create( "pi_ldi", mdl ) );
04499         }
04500         return reflection;
04501 }
04502 
04503 ptr< object::field_list_list > pi_ldi::field_values_get() const
04504 {
04505         ptr < field_list_list > result = pi_abstract_move_st::field_values_get();
04506         return result;
04507 }
04508 
04509 
04510 /*!
04511    Marking routine is used for garbage collection.
04512    \author lsg
04513  */
04514 void pi_ldi::gc_mark()
04515 {
04516         pi_abstract_move_st::gc_mark();
04517 }
04518 
04519 // End of class pi_ldi.
04520 
04521 // ------------- Class pi_ldp follows. -------------
04522 
04523 ptr< ::lestes::backend_v2::structs::pi_operands > pi_ldp::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
04524 {
04525         return v->visit_pi_ldp( this );
04526 }
04527 
04528 ulint pi_ldp::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
04529 {
04530         return v->visit_pi_ldp( this );
04531 }
04532 
04533 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_ldp::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
04534 {
04535         return v->visit_pi_ldp( this );
04536 }
04537 
04538 /*!
04539    This factory method for class pi_ldp takes values of all fields as arguments.
04540    \author lsg
04541  */
04542 ptr< pi_ldp > pi_ldp::create(ptr< pi_pi > a__pi_pi__psp,
04543                 ptr< pi_pi > a__pi_pi__nsp,
04544                 ulint a__pi_pi__level,
04545                 ptr< pi_operand > a__pi_indirect_load__value,
04546                 ptr< pi_mem_ptr_deref > a__pi_indirect_load__address,
04547                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_indirect_load__type1,
04548                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_indirect_load__type2)
04549 {
04550         return ptr< pi_ldp > ( new pi_ldp(a__pi_pi__psp,
04551                 a__pi_pi__nsp,
04552                 a__pi_pi__level,
04553                 a__pi_indirect_load__value,
04554                 a__pi_indirect_load__address,
04555                 a__pi_indirect_load__type1,
04556                 a__pi_indirect_load__type2) );
04557 }
04558 
04559 /*!
04560    Generated constructor for class pi_ldp.
04561    \author lsg
04562  */
04563 pi_ldp::pi_ldp (ptr< pi_pi > a__pi_pi__psp,
04564                 ptr< pi_pi > a__pi_pi__nsp,
04565                 ulint a__pi_pi__level,
04566                 ptr< pi_operand > a__pi_indirect_load__value,
04567                 ptr< pi_mem_ptr_deref > a__pi_indirect_load__address,
04568                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_indirect_load__type1,
04569                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_indirect_load__type2)
04570         : pi_indirect_load(a__pi_pi__psp,
04571                 a__pi_pi__nsp,
04572                 a__pi_pi__level,
04573                 a__pi_indirect_load__value,
04574                 a__pi_indirect_load__address,
04575                 a__pi_indirect_load__type1,
04576                 a__pi_indirect_load__type2)
04577 {}
04578 
04579 ptr< object::reflection_list > pi_ldp::reflection_get() const
04580 {
04581         if (!reflection) {
04582                 typedef class_reflection::field_metadata md;
04583                 typedef class_reflection::field_metadata_list mdlist;
04584                 ptr<mdlist> mdl = mdlist::create();
04585                 reflection = reflection_list::create( pi_indirect_load::reflection_get() );
04586                 reflection->push_back( class_reflection::create( "pi_ldp", mdl ) );
04587         }
04588         return reflection;
04589 }
04590 
04591 ptr< object::field_list_list > pi_ldp::field_values_get() const
04592 {
04593         ptr < field_list_list > result = pi_indirect_load::field_values_get();
04594         return result;
04595 }
04596 
04597 
04598 /*!
04599    Marking routine is used for garbage collection.
04600    \author lsg
04601  */
04602 void pi_ldp::gc_mark()
04603 {
04604         pi_indirect_load::gc_mark();
04605 }
04606 
04607 // End of class pi_ldp.
04608 
04609 // ------------- Class pi_ldv follows. -------------
04610 
04611 ptr< ::lestes::backend_v2::structs::pi_operands > pi_ldv::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
04612 {
04613         return v->visit_pi_ldv( this );
04614 }
04615 
04616 ulint pi_ldv::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
04617 {
04618         return v->visit_pi_ldv( this );
04619 }
04620 
04621 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_ldv::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
04622 {
04623         return v->visit_pi_ldv( this );
04624 }
04625 
04626 /*!
04627    This factory method for class pi_ldv takes values of all fields as arguments.
04628    \author lsg
04629  */
04630 ptr< pi_ldv > pi_ldv::create(ptr< pi_pi > a__pi_pi__psp,
04631                 ptr< pi_pi > a__pi_pi__nsp,
04632                 ulint a__pi_pi__level,
04633                 ptr< pi_operand > a__pi_abstract_move_st__destination,
04634                 ptr< pi_operand > a__pi_abstract_move_st__source,
04635                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_abstract_move_st__type)
04636 {
04637         return ptr< pi_ldv > ( new pi_ldv(a__pi_pi__psp,
04638                 a__pi_pi__nsp,
04639                 a__pi_pi__level,
04640                 a__pi_abstract_move_st__destination,
04641                 a__pi_abstract_move_st__source,
04642                 a__pi_abstract_move_st__type) );
04643 }
04644 
04645 /*!
04646    Generated constructor for class pi_ldv.
04647    \author lsg
04648  */
04649 pi_ldv::pi_ldv (ptr< pi_pi > a__pi_pi__psp,
04650                 ptr< pi_pi > a__pi_pi__nsp,
04651                 ulint a__pi_pi__level,
04652                 ptr< pi_operand > a__pi_abstract_move_st__destination,
04653                 ptr< pi_operand > a__pi_abstract_move_st__source,
04654                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_abstract_move_st__type)
04655         : pi_abstract_move_st(a__pi_pi__psp,
04656                 a__pi_pi__nsp,
04657                 a__pi_pi__level,
04658                 a__pi_abstract_move_st__destination,
04659                 a__pi_abstract_move_st__source,
04660                 a__pi_abstract_move_st__type)
04661 {}
04662 
04663 ptr< object::reflection_list > pi_ldv::reflection_get() const
04664 {
04665         if (!reflection) {
04666                 typedef class_reflection::field_metadata md;
04667                 typedef class_reflection::field_metadata_list mdlist;
04668                 ptr<mdlist> mdl = mdlist::create();
04669                 reflection = reflection_list::create( pi_abstract_move_st::reflection_get() );
04670                 reflection->push_back( class_reflection::create( "pi_ldv", mdl ) );
04671         }
04672         return reflection;
04673 }
04674 
04675 ptr< object::field_list_list > pi_ldv::field_values_get() const
04676 {
04677         ptr < field_list_list > result = pi_abstract_move_st::field_values_get();
04678         return result;
04679 }
04680 
04681 
04682 /*!
04683    Marking routine is used for garbage collection.
04684    \author lsg
04685  */
04686 void pi_ldv::gc_mark()
04687 {
04688         pi_abstract_move_st::gc_mark();
04689 }
04690 
04691 // End of class pi_ldv.
04692 
04693 // ------------- Class pi_ldpv follows. -------------
04694 
04695 ptr< ::lestes::backend_v2::structs::pi_operands > pi_ldpv::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
04696 {
04697         return v->visit_pi_ldpv( this );
04698 }
04699 
04700 ulint pi_ldpv::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
04701 {
04702         return v->visit_pi_ldpv( this );
04703 }
04704 
04705 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_ldpv::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
04706 {
04707         return v->visit_pi_ldpv( this );
04708 }
04709 
04710 /*!
04711    This factory method for class pi_ldpv takes values of all fields as arguments.
04712    \author lsg
04713  */
04714 ptr< pi_ldpv > pi_ldpv::create(ptr< pi_pi > a__pi_pi__psp,
04715                 ptr< pi_pi > a__pi_pi__nsp,
04716                 ulint a__pi_pi__level,
04717                 ptr< pi_operand > a__pi_indirect_load__value,
04718                 ptr< pi_mem_ptr_deref > a__pi_indirect_load__address,
04719                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_indirect_load__type1,
04720                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_indirect_load__type2)
04721 {
04722         return ptr< pi_ldpv > ( new pi_ldpv(a__pi_pi__psp,
04723                 a__pi_pi__nsp,
04724                 a__pi_pi__level,
04725                 a__pi_indirect_load__value,
04726                 a__pi_indirect_load__address,
04727                 a__pi_indirect_load__type1,
04728                 a__pi_indirect_load__type2) );
04729 }
04730 
04731 /*!
04732    Generated constructor for class pi_ldpv.
04733    \author lsg
04734  */
04735 pi_ldpv::pi_ldpv (ptr< pi_pi > a__pi_pi__psp,
04736                 ptr< pi_pi > a__pi_pi__nsp,
04737                 ulint a__pi_pi__level,
04738                 ptr< pi_operand > a__pi_indirect_load__value,
04739                 ptr< pi_mem_ptr_deref > a__pi_indirect_load__address,
04740                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_indirect_load__type1,
04741                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_indirect_load__type2)
04742         : pi_indirect_load(a__pi_pi__psp,
04743                 a__pi_pi__nsp,
04744                 a__pi_pi__level,
04745                 a__pi_indirect_load__value,
04746                 a__pi_indirect_load__address,
04747                 a__pi_indirect_load__type1,
04748                 a__pi_indirect_load__type2)
04749 {}
04750 
04751 ptr< object::reflection_list > pi_ldpv::reflection_get() const
04752 {
04753         if (!reflection) {
04754                 typedef class_reflection::field_metadata md;
04755                 typedef class_reflection::field_metadata_list mdlist;
04756                 ptr<mdlist> mdl = mdlist::create();
04757                 reflection = reflection_list::create( pi_indirect_load::reflection_get() );
04758                 reflection->push_back( class_reflection::create( "pi_ldpv", mdl ) );
04759         }
04760         return reflection;
04761 }
04762 
04763 ptr< object::field_list_list > pi_ldpv::field_values_get() const
04764 {
04765         ptr < field_list_list > result = pi_indirect_load::field_values_get();
04766         return result;
04767 }
04768 
04769 
04770 /*!
04771    Marking routine is used for garbage collection.
04772    \author lsg
04773  */
04774 void pi_ldpv::gc_mark()
04775 {
04776         pi_indirect_load::gc_mark();
04777 }
04778 
04779 // End of class pi_ldpv.
04780 
04781 // ------------- Class pi_st follows. -------------
04782 
04783 ptr< ::lestes::backend_v2::structs::pi_operands > pi_st::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
04784 {
04785         return v->visit_pi_st( this );
04786 }
04787 
04788 ulint pi_st::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
04789 {
04790         return v->visit_pi_st( this );
04791 }
04792 
04793 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_st::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
04794 {
04795         return v->visit_pi_st( this );
04796 }
04797 
04798 /*!
04799    This factory method for class pi_st takes values of all fields as arguments.
04800    \author lsg
04801  */
04802 ptr< pi_st > pi_st::create(ptr< pi_pi > a__pi_pi__psp,
04803                 ptr< pi_pi > a__pi_pi__nsp,
04804                 ulint a__pi_pi__level,
04805                 ptr< pi_operand > a__pi_abstract_move_st__destination,
04806                 ptr< pi_operand > a__pi_abstract_move_st__source,
04807                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_abstract_move_st__type)
04808 {
04809         return ptr< pi_st > ( new pi_st(a__pi_pi__psp,
04810                 a__pi_pi__nsp,
04811                 a__pi_pi__level,
04812                 a__pi_abstract_move_st__destination,
04813                 a__pi_abstract_move_st__source,
04814                 a__pi_abstract_move_st__type) );
04815 }
04816 
04817 /*!
04818    Generated constructor for class pi_st.
04819    \author lsg
04820  */
04821 pi_st::pi_st (ptr< pi_pi > a__pi_pi__psp,
04822                 ptr< pi_pi > a__pi_pi__nsp,
04823                 ulint a__pi_pi__level,
04824                 ptr< pi_operand > a__pi_abstract_move_st__destination,
04825                 ptr< pi_operand > a__pi_abstract_move_st__source,
04826                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_abstract_move_st__type)
04827         : pi_abstract_move_st(a__pi_pi__psp,
04828                 a__pi_pi__nsp,
04829                 a__pi_pi__level,
04830                 a__pi_abstract_move_st__destination,
04831                 a__pi_abstract_move_st__source,
04832                 a__pi_abstract_move_st__type)
04833 {}
04834 
04835 ptr< object::reflection_list > pi_st::reflection_get() const
04836 {
04837         if (!reflection) {
04838                 typedef class_reflection::field_metadata md;
04839                 typedef class_reflection::field_metadata_list mdlist;
04840                 ptr<mdlist> mdl = mdlist::create();
04841                 reflection = reflection_list::create( pi_abstract_move_st::reflection_get() );
04842                 reflection->push_back( class_reflection::create( "pi_st", mdl ) );
04843         }
04844         return reflection;
04845 }
04846 
04847 ptr< object::field_list_list > pi_st::field_values_get() const
04848 {
04849         ptr < field_list_list > result = pi_abstract_move_st::field_values_get();
04850         return result;
04851 }
04852 
04853 
04854 /*!
04855    Marking routine is used for garbage collection.
04856    \author lsg
04857  */
04858 void pi_st::gc_mark()
04859 {
04860         pi_abstract_move_st::gc_mark();
04861 }
04862 
04863 // End of class pi_st.
04864 
04865 // ------------- Class pi_sti follows. -------------
04866 
04867 ptr< ::lestes::backend_v2::structs::pi_operands > pi_sti::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
04868 {
04869         return v->visit_pi_sti( this );
04870 }
04871 
04872 ulint pi_sti::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
04873 {
04874         return v->visit_pi_sti( this );
04875 }
04876 
04877 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_sti::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
04878 {
04879         return v->visit_pi_sti( this );
04880 }
04881 
04882 /*!
04883    This factory method for class pi_sti takes values of all fields as arguments.
04884    \author lsg
04885  */
04886 ptr< pi_sti > pi_sti::create(ptr< pi_pi > a__pi_pi__psp,
04887                 ptr< pi_pi > a__pi_pi__nsp,
04888                 ulint a__pi_pi__level,
04889                 ptr< pi_operand > a__pi_abstract_move_st__destination,
04890                 ptr< pi_operand > a__pi_abstract_move_st__source,
04891                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_abstract_move_st__type)
04892 {
04893         return ptr< pi_sti > ( new pi_sti(a__pi_pi__psp,
04894                 a__pi_pi__nsp,
04895                 a__pi_pi__level,
04896                 a__pi_abstract_move_st__destination,
04897                 a__pi_abstract_move_st__source,
04898                 a__pi_abstract_move_st__type) );
04899 }
04900 
04901 /*!
04902    Generated constructor for class pi_sti.
04903    \author lsg
04904  */
04905 pi_sti::pi_sti (ptr< pi_pi > a__pi_pi__psp,
04906                 ptr< pi_pi > a__pi_pi__nsp,
04907                 ulint a__pi_pi__level,
04908                 ptr< pi_operand > a__pi_abstract_move_st__destination,
04909                 ptr< pi_operand > a__pi_abstract_move_st__source,
04910                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_abstract_move_st__type)
04911         : pi_abstract_move_st(a__pi_pi__psp,
04912                 a__pi_pi__nsp,
04913                 a__pi_pi__level,
04914                 a__pi_abstract_move_st__destination,
04915                 a__pi_abstract_move_st__source,
04916                 a__pi_abstract_move_st__type)
04917 {}
04918 
04919 ptr< object::reflection_list > pi_sti::reflection_get() const
04920 {
04921         if (!reflection) {
04922                 typedef class_reflection::field_metadata md;
04923                 typedef class_reflection::field_metadata_list mdlist;
04924                 ptr<mdlist> mdl = mdlist::create();
04925                 reflection = reflection_list::create( pi_abstract_move_st::reflection_get() );
04926                 reflection->push_back( class_reflection::create( "pi_sti", mdl ) );
04927         }
04928         return reflection;
04929 }
04930 
04931 ptr< object::field_list_list > pi_sti::field_values_get() const
04932 {
04933         ptr < field_list_list > result = pi_abstract_move_st::field_values_get();
04934         return result;
04935 }
04936 
04937 
04938 /*!
04939    Marking routine is used for garbage collection.
04940    \author lsg
04941  */
04942 void pi_sti::gc_mark()
04943 {
04944         pi_abstract_move_st::gc_mark();
04945 }
04946 
04947 // End of class pi_sti.
04948 
04949 // ------------- Class pi_stp follows. -------------
04950 
04951 ptr< ::lestes::backend_v2::structs::pi_operands > pi_stp::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
04952 {
04953         return v->visit_pi_stp( this );
04954 }
04955 
04956 ulint pi_stp::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
04957 {
04958         return v->visit_pi_stp( this );
04959 }
04960 
04961 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_stp::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
04962 {
04963         return v->visit_pi_stp( this );
04964 }
04965 
04966 /*!
04967    This factory method for class pi_stp takes values of all fields as arguments.
04968    \author lsg
04969  */
04970 ptr< pi_stp > pi_stp::create(ptr< pi_pi > a__pi_pi__psp,
04971                 ptr< pi_pi > a__pi_pi__nsp,
04972                 ulint a__pi_pi__level,
04973                 ptr< pi_mem_ptr_deref > a__pi_indirect_store__address,
04974                 ptr< pi_operand > a__pi_indirect_store__value,
04975                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_indirect_store__type1,
04976                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_indirect_store__type2)
04977 {
04978         return ptr< pi_stp > ( new pi_stp(a__pi_pi__psp,
04979                 a__pi_pi__nsp,
04980                 a__pi_pi__level,
04981                 a__pi_indirect_store__address,
04982                 a__pi_indirect_store__value,
04983                 a__pi_indirect_store__type1,
04984                 a__pi_indirect_store__type2) );
04985 }
04986 
04987 /*!
04988    Generated constructor for class pi_stp.
04989    \author lsg
04990  */
04991 pi_stp::pi_stp (ptr< pi_pi > a__pi_pi__psp,
04992                 ptr< pi_pi > a__pi_pi__nsp,
04993                 ulint a__pi_pi__level,
04994                 ptr< pi_mem_ptr_deref > a__pi_indirect_store__address,
04995                 ptr< pi_operand > a__pi_indirect_store__value,
04996                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_indirect_store__type1,
04997                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_indirect_store__type2)
04998         : pi_indirect_store(a__pi_pi__psp,
04999                 a__pi_pi__nsp,
05000                 a__pi_pi__level,
05001                 a__pi_indirect_store__address,
05002                 a__pi_indirect_store__value,
05003                 a__pi_indirect_store__type1,
05004                 a__pi_indirect_store__type2)
05005 {}
05006 
05007 ptr< object::reflection_list > pi_stp::reflection_get() const
05008 {
05009         if (!reflection) {
05010                 typedef class_reflection::field_metadata md;
05011                 typedef class_reflection::field_metadata_list mdlist;
05012                 ptr<mdlist> mdl = mdlist::create();
05013                 reflection = reflection_list::create( pi_indirect_store::reflection_get() );
05014                 reflection->push_back( class_reflection::create( "pi_stp", mdl ) );
05015         }
05016         return reflection;
05017 }
05018 
05019 ptr< object::field_list_list > pi_stp::field_values_get() const
05020 {
05021         ptr < field_list_list > result = pi_indirect_store::field_values_get();
05022         return result;
05023 }
05024 
05025 
05026 /*!
05027    Marking routine is used for garbage collection.
05028    \author lsg
05029  */
05030 void pi_stp::gc_mark()
05031 {
05032         pi_indirect_store::gc_mark();
05033 }
05034 
05035 // End of class pi_stp.
05036 
05037 // ------------- Class pi_stv follows. -------------
05038 
05039 ptr< ::lestes::backend_v2::structs::pi_operands > pi_stv::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
05040 {
05041         return v->visit_pi_stv( this );
05042 }
05043 
05044 ulint pi_stv::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
05045 {
05046         return v->visit_pi_stv( this );
05047 }
05048 
05049 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_stv::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
05050 {
05051         return v->visit_pi_stv( this );
05052 }
05053 
05054 /*!
05055    This factory method for class pi_stv takes values of all fields as arguments.
05056    \author lsg
05057  */
05058 ptr< pi_stv > pi_stv::create(ptr< pi_pi > a__pi_pi__psp,
05059                 ptr< pi_pi > a__pi_pi__nsp,
05060                 ulint a__pi_pi__level,
05061                 ptr< pi_operand > a__pi_abstract_move_st__destination,
05062                 ptr< pi_operand > a__pi_abstract_move_st__source,
05063                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_abstract_move_st__type)
05064 {
05065         return ptr< pi_stv > ( new pi_stv(a__pi_pi__psp,
05066                 a__pi_pi__nsp,
05067                 a__pi_pi__level,
05068                 a__pi_abstract_move_st__destination,
05069                 a__pi_abstract_move_st__source,
05070                 a__pi_abstract_move_st__type) );
05071 }
05072 
05073 /*!
05074    Generated constructor for class pi_stv.
05075    \author lsg
05076  */
05077 pi_stv::pi_stv (ptr< pi_pi > a__pi_pi__psp,
05078                 ptr< pi_pi > a__pi_pi__nsp,
05079                 ulint a__pi_pi__level,
05080                 ptr< pi_operand > a__pi_abstract_move_st__destination,
05081                 ptr< pi_operand > a__pi_abstract_move_st__source,
05082                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_abstract_move_st__type)
05083         : pi_abstract_move_st(a__pi_pi__psp,
05084                 a__pi_pi__nsp,
05085                 a__pi_pi__level,
05086                 a__pi_abstract_move_st__destination,
05087                 a__pi_abstract_move_st__source,
05088                 a__pi_abstract_move_st__type)
05089 {}
05090 
05091 ptr< object::reflection_list > pi_stv::reflection_get() const
05092 {
05093         if (!reflection) {
05094                 typedef class_reflection::field_metadata md;
05095                 typedef class_reflection::field_metadata_list mdlist;
05096                 ptr<mdlist> mdl = mdlist::create();
05097                 reflection = reflection_list::create( pi_abstract_move_st::reflection_get() );
05098                 reflection->push_back( class_reflection::create( "pi_stv", mdl ) );
05099         }
05100         return reflection;
05101 }
05102 
05103 ptr< object::field_list_list > pi_stv::field_values_get() const
05104 {
05105         ptr < field_list_list > result = pi_abstract_move_st::field_values_get();
05106         return result;
05107 }
05108 
05109 
05110 /*!
05111    Marking routine is used for garbage collection.
05112    \author lsg
05113  */
05114 void pi_stv::gc_mark()
05115 {
05116         pi_abstract_move_st::gc_mark();
05117 }
05118 
05119 // End of class pi_stv.
05120 
05121 // ------------- Class pi_stiv follows. -------------
05122 
05123 ptr< ::lestes::backend_v2::structs::pi_operands > pi_stiv::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
05124 {
05125         return v->visit_pi_stiv( this );
05126 }
05127 
05128 ulint pi_stiv::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
05129 {
05130         return v->visit_pi_stiv( this );
05131 }
05132 
05133 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_stiv::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
05134 {
05135         return v->visit_pi_stiv( this );
05136 }
05137 
05138 /*!
05139    This factory method for class pi_stiv takes values of all fields as arguments.
05140    \author lsg
05141  */
05142 ptr< pi_stiv > pi_stiv::create(ptr< pi_pi > a__pi_pi__psp,
05143                 ptr< pi_pi > a__pi_pi__nsp,
05144                 ulint a__pi_pi__level,
05145                 ptr< pi_operand > a__pi_abstract_move_st__destination,
05146                 ptr< pi_operand > a__pi_abstract_move_st__source,
05147                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_abstract_move_st__type)
05148 {
05149         return ptr< pi_stiv > ( new pi_stiv(a__pi_pi__psp,
05150                 a__pi_pi__nsp,
05151                 a__pi_pi__level,
05152                 a__pi_abstract_move_st__destination,
05153                 a__pi_abstract_move_st__source,
05154                 a__pi_abstract_move_st__type) );
05155 }
05156 
05157 /*!
05158    Generated constructor for class pi_stiv.
05159    \author lsg
05160  */
05161 pi_stiv::pi_stiv (ptr< pi_pi > a__pi_pi__psp,
05162                 ptr< pi_pi > a__pi_pi__nsp,
05163                 ulint a__pi_pi__level,
05164                 ptr< pi_operand > a__pi_abstract_move_st__destination,
05165                 ptr< pi_operand > a__pi_abstract_move_st__source,
05166                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_abstract_move_st__type)
05167         : pi_abstract_move_st(a__pi_pi__psp,
05168                 a__pi_pi__nsp,
05169                 a__pi_pi__level,
05170                 a__pi_abstract_move_st__destination,
05171                 a__pi_abstract_move_st__source,
05172                 a__pi_abstract_move_st__type)
05173 {}
05174 
05175 ptr< object::reflection_list > pi_stiv::reflection_get() const
05176 {
05177         if (!reflection) {
05178                 typedef class_reflection::field_metadata md;
05179                 typedef class_reflection::field_metadata_list mdlist;
05180                 ptr<mdlist> mdl = mdlist::create();
05181                 reflection = reflection_list::create( pi_abstract_move_st::reflection_get() );
05182                 reflection->push_back( class_reflection::create( "pi_stiv", mdl ) );
05183         }
05184         return reflection;
05185 }
05186 
05187 ptr< object::field_list_list > pi_stiv::field_values_get() const
05188 {
05189         ptr < field_list_list > result = pi_abstract_move_st::field_values_get();
05190         return result;
05191 }
05192 
05193 
05194 /*!
05195    Marking routine is used for garbage collection.
05196    \author lsg
05197  */
05198 void pi_stiv::gc_mark()
05199 {
05200         pi_abstract_move_st::gc_mark();
05201 }
05202 
05203 // End of class pi_stiv.
05204 
05205 // ------------- Class pi_stpv follows. -------------
05206 
05207 ptr< ::lestes::backend_v2::structs::pi_operands > pi_stpv::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
05208 {
05209         return v->visit_pi_stpv( this );
05210 }
05211 
05212 ulint pi_stpv::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
05213 {
05214         return v->visit_pi_stpv( this );
05215 }
05216 
05217 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_stpv::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
05218 {
05219         return v->visit_pi_stpv( this );
05220 }
05221 
05222 /*!
05223    This factory method for class pi_stpv takes values of all fields as arguments.
05224    \author lsg
05225  */
05226 ptr< pi_stpv > pi_stpv::create(ptr< pi_pi > a__pi_pi__psp,
05227                 ptr< pi_pi > a__pi_pi__nsp,
05228                 ulint a__pi_pi__level,
05229                 ptr< pi_mem_ptr_deref > a__pi_indirect_store__address,
05230                 ptr< pi_operand > a__pi_indirect_store__value,
05231                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_indirect_store__type1,
05232                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_indirect_store__type2)
05233 {
05234         return ptr< pi_stpv > ( new pi_stpv(a__pi_pi__psp,
05235                 a__pi_pi__nsp,
05236                 a__pi_pi__level,
05237                 a__pi_indirect_store__address,
05238                 a__pi_indirect_store__value,
05239                 a__pi_indirect_store__type1,
05240                 a__pi_indirect_store__type2) );
05241 }
05242 
05243 /*!
05244    Generated constructor for class pi_stpv.
05245    \author lsg
05246  */
05247 pi_stpv::pi_stpv (ptr< pi_pi > a__pi_pi__psp,
05248                 ptr< pi_pi > a__pi_pi__nsp,
05249                 ulint a__pi_pi__level,
05250                 ptr< pi_mem_ptr_deref > a__pi_indirect_store__address,
05251                 ptr< pi_operand > a__pi_indirect_store__value,
05252                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_indirect_store__type1,
05253                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_indirect_store__type2)
05254         : pi_indirect_store(a__pi_pi__psp,
05255                 a__pi_pi__nsp,
05256                 a__pi_pi__level,
05257                 a__pi_indirect_store__address,
05258                 a__pi_indirect_store__value,
05259                 a__pi_indirect_store__type1,
05260                 a__pi_indirect_store__type2)
05261 {}
05262 
05263 ptr< object::reflection_list > pi_stpv::reflection_get() const
05264 {
05265         if (!reflection) {
05266                 typedef class_reflection::field_metadata md;
05267                 typedef class_reflection::field_metadata_list mdlist;
05268                 ptr<mdlist> mdl = mdlist::create();
05269                 reflection = reflection_list::create( pi_indirect_store::reflection_get() );
05270                 reflection->push_back( class_reflection::create( "pi_stpv", mdl ) );
05271         }
05272         return reflection;
05273 }
05274 
05275 ptr< object::field_list_list > pi_stpv::field_values_get() const
05276 {
05277         ptr < field_list_list > result = pi_indirect_store::field_values_get();
05278         return result;
05279 }
05280 
05281 
05282 /*!
05283    Marking routine is used for garbage collection.
05284    \author lsg
05285  */
05286 void pi_stpv::gc_mark()
05287 {
05288         pi_indirect_store::gc_mark();
05289 }
05290 
05291 // End of class pi_stpv.
05292 
05293 // ------------- Class pi_call follows. -------------
05294 
05295 /*!
05296    \returns The value of pi_call::type.
05297    \author lsg
05298  */
05299 ptr< ::lestes::md::types::tm_data_type_base > pi_call::type_get() const
05300 {
05301         return type;
05302 }
05303 
05304 /*!
05305    \param[in] x The new value to set pi_call::type to.
05306    \author lsg
05307  */
05308 void pi_call::type_set(const ptr< ::lestes::md::types::tm_data_type_base > & x)
05309 {
05310         pi_call::type = x;
05311 }
05312 
05313 /*!
05314    \returns The value of pi_call::rv.
05315    \author lsg
05316  */
05317 ptr< pi_mem > pi_call::rv_get() const
05318 {
05319         return rv;
05320 }
05321 
05322 /*!
05323    \param[in] x The new value to set pi_call::rv to.
05324    \author lsg
05325  */
05326 void pi_call::rv_set(const ptr< pi_mem > & x)
05327 {
05328         pi_call::rv = x;
05329 }
05330 
05331 /*!
05332    \returns The value of pi_call::f.
05333    \author lsg
05334  */
05335 ptr< ::lestes::lang::cplus::sem::ss_function_declaration > pi_call::f_get() const
05336 {
05337         return f;
05338 }
05339 
05340 /*!
05341    \param[in] x The new value to set pi_call::f to.
05342    \author lsg
05343  */
05344 void pi_call::f_set(const ptr< ::lestes::lang::cplus::sem::ss_function_declaration > & x)
05345 {
05346         pi_call::f = x;
05347 }
05348 
05349 ptr< ::lestes::backend_v2::structs::pi_operands > pi_call::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
05350 {
05351         return v->visit_pi_call( this );
05352 }
05353 
05354 ulint pi_call::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
05355 {
05356         return v->visit_pi_call( this );
05357 }
05358 
05359 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_call::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
05360 {
05361         return v->visit_pi_call( this );
05362 }
05363 
05364 /*!
05365    This factory method for class pi_call takes values of all fields as arguments.
05366    \author lsg
05367  */
05368 ptr< pi_call > pi_call::create(ptr< pi_pi > a__pi_pi__psp,
05369                 ptr< pi_pi > a__pi_pi__nsp,
05370                 ulint a__pi_pi__level,
05371                 ptr< ::lestes::std::list< srp< pi_operand > > > a__pi_abstract_function_call__args,
05372                 ptr< pi_mem > a__pi_abstract_function_call__this_arg,
05373                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_call__type,
05374                 ptr< pi_mem > a__pi_call__rv,
05375                 ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__pi_call__f)
05376 {
05377         return ptr< pi_call > ( new pi_call(a__pi_pi__psp,
05378                 a__pi_pi__nsp,
05379                 a__pi_pi__level,
05380                 a__pi_abstract_function_call__args,
05381                 a__pi_abstract_function_call__this_arg,
05382                 a__pi_call__type,
05383                 a__pi_call__rv,
05384                 a__pi_call__f) );
05385 }
05386 
05387 /*!
05388    Generated constructor for class pi_call.
05389    \author lsg
05390  */
05391 pi_call::pi_call (ptr< pi_pi > a__pi_pi__psp,
05392                 ptr< pi_pi > a__pi_pi__nsp,
05393                 ulint a__pi_pi__level,
05394                 ptr< ::lestes::std::list< srp< pi_operand > > > a__pi_abstract_function_call__args,
05395                 ptr< pi_mem > a__pi_abstract_function_call__this_arg,
05396                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_call__type,
05397                 ptr< pi_mem > a__pi_call__rv,
05398                 ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__pi_call__f)
05399         : pi_abstract_function_call(a__pi_pi__psp,
05400                 a__pi_pi__nsp,
05401                 a__pi_pi__level,
05402                 a__pi_abstract_function_call__args,
05403                 a__pi_abstract_function_call__this_arg), type(checked(a__pi_call__type)), rv(a__pi_call__rv), f(checked(a__pi_call__f))
05404 {}
05405 
05406 ptr< object::reflection_list > pi_call::reflection_get() const
05407 {
05408         if (!reflection) {
05409                 typedef class_reflection::field_metadata md;
05410                 typedef class_reflection::field_metadata_list mdlist;
05411                 ptr<mdlist> mdl = mdlist::create();
05412                 mdl->push_back( md::create( "type", "tm_data_type_base" ) );
05413                 mdl->push_back( md::create( "rv", "pi_mem" ) );
05414                 mdl->push_back( md::create( "f", "ss_function_declaration" ) );
05415                 reflection = reflection_list::create( pi_abstract_function_call::reflection_get() );
05416                 reflection->push_back( class_reflection::create( "pi_call", mdl ) );
05417         }
05418         return reflection;
05419 }
05420 
05421 ptr< object::field_list_list > pi_call::field_values_get() const
05422 {
05423         ptr < field_list_list > result = pi_abstract_function_call::field_values_get();
05424         result->push_back( value_list::create() );
05425         result->back()->push_back( this->type );
05426         result->push_back( value_list::create() );
05427         result->back()->push_back( this->rv );
05428         result->push_back( value_list::create() );
05429         result->back()->push_back( this->f );
05430         return result;
05431 }
05432 
05433 
05434 /*!
05435    Marking routine is used for garbage collection.
05436    \author lsg
05437  */
05438 void pi_call::gc_mark()
05439 {
05440         pi_abstract_function_call::gc_mark();
05441 }
05442 
05443 // End of class pi_call.
05444 
05445 // ------------- Class pi_icall follows. -------------
05446 
05447 /*!
05448    \returns The value of pi_icall::type.
05449    \author lsg
05450  */
05451 ptr< ::lestes::md::types::tm_data_type_base > pi_icall::type_get() const
05452 {
05453         return type;
05454 }
05455 
05456 /*!
05457    \param[in] x The new value to set pi_icall::type to.
05458    \author lsg
05459  */
05460 void pi_icall::type_set(const ptr< ::lestes::md::types::tm_data_type_base > & x)
05461 {
05462         pi_icall::type = x;
05463 }
05464 
05465 /*!
05466    \returns The value of pi_icall::rv.
05467    \author lsg
05468  */
05469 ptr< pi_mem > pi_icall::rv_get() const
05470 {
05471         return rv;
05472 }
05473 
05474 /*!
05475    \param[in] x The new value to set pi_icall::rv to.
05476    \author lsg
05477  */
05478 void pi_icall::rv_set(const ptr< pi_mem > & x)
05479 {
05480         pi_icall::rv = x;
05481 }
05482 
05483 /*!
05484    \returns The value of pi_icall::f.
05485    \author lsg
05486  */
05487 ptr< pi_preg > pi_icall::f_get() const
05488 {
05489         return f;
05490 }
05491 
05492 /*!
05493    \param[in] x The new value to set pi_icall::f to.
05494    \author lsg
05495  */
05496 void pi_icall::f_set(const ptr< pi_preg > & x)
05497 {
05498         pi_icall::f = x;
05499 }
05500 
05501 ptr< ::lestes::backend_v2::structs::pi_operands > pi_icall::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
05502 {
05503         return v->visit_pi_icall( this );
05504 }
05505 
05506 ulint pi_icall::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
05507 {
05508         return v->visit_pi_icall( this );
05509 }
05510 
05511 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_icall::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
05512 {
05513         return v->visit_pi_icall( this );
05514 }
05515 
05516 /*!
05517    This factory method for class pi_icall takes values of all fields as arguments.
05518    \author lsg
05519  */
05520 ptr< pi_icall > pi_icall::create(ptr< pi_pi > a__pi_pi__psp,
05521                 ptr< pi_pi > a__pi_pi__nsp,
05522                 ulint a__pi_pi__level,
05523                 ptr< ::lestes::std::list< srp< pi_operand > > > a__pi_abstract_function_call__args,
05524                 ptr< pi_mem > a__pi_abstract_function_call__this_arg,
05525                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_icall__type,
05526                 ptr< pi_mem > a__pi_icall__rv,
05527                 ptr< pi_preg > a__pi_icall__f)
05528 {
05529         return ptr< pi_icall > ( new pi_icall(a__pi_pi__psp,
05530                 a__pi_pi__nsp,
05531                 a__pi_pi__level,
05532                 a__pi_abstract_function_call__args,
05533                 a__pi_abstract_function_call__this_arg,
05534                 a__pi_icall__type,
05535                 a__pi_icall__rv,
05536                 a__pi_icall__f) );
05537 }
05538 
05539 /*!
05540    Generated constructor for class pi_icall.
05541    \author lsg
05542  */
05543 pi_icall::pi_icall (ptr< pi_pi > a__pi_pi__psp,
05544                 ptr< pi_pi > a__pi_pi__nsp,
05545                 ulint a__pi_pi__level,
05546                 ptr< ::lestes::std::list< srp< pi_operand > > > a__pi_abstract_function_call__args,
05547                 ptr< pi_mem > a__pi_abstract_function_call__this_arg,
05548                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_icall__type,
05549                 ptr< pi_mem > a__pi_icall__rv,
05550                 ptr< pi_preg > a__pi_icall__f)
05551         : pi_abstract_function_call(a__pi_pi__psp,
05552                 a__pi_pi__nsp,
05553                 a__pi_pi__level,
05554                 a__pi_abstract_function_call__args,
05555                 a__pi_abstract_function_call__this_arg), type(checked(a__pi_icall__type)), rv(a__pi_icall__rv), f(checked(a__pi_icall__f))
05556 {}
05557 
05558 ptr< object::reflection_list > pi_icall::reflection_get() const
05559 {
05560         if (!reflection) {
05561                 typedef class_reflection::field_metadata md;
05562                 typedef class_reflection::field_metadata_list mdlist;
05563                 ptr<mdlist> mdl = mdlist::create();
05564                 mdl->push_back( md::create( "type", "tm_data_type_base" ) );
05565                 mdl->push_back( md::create( "rv", "pi_mem" ) );
05566                 mdl->push_back( md::create( "f", "pi_preg" ) );
05567                 reflection = reflection_list::create( pi_abstract_function_call::reflection_get() );
05568                 reflection->push_back( class_reflection::create( "pi_icall", mdl ) );
05569         }
05570         return reflection;
05571 }
05572 
05573 ptr< object::field_list_list > pi_icall::field_values_get() const
05574 {
05575         ptr < field_list_list > result = pi_abstract_function_call::field_values_get();
05576         result->push_back( value_list::create() );
05577         result->back()->push_back( this->type );
05578         result->push_back( value_list::create() );
05579         result->back()->push_back( this->rv );
05580         result->push_back( value_list::create() );
05581         result->back()->push_back( this->f );
05582         return result;
05583 }
05584 
05585 
05586 /*!
05587    Marking routine is used for garbage collection.
05588    \author lsg
05589  */
05590 void pi_icall::gc_mark()
05591 {
05592         pi_abstract_function_call::gc_mark();
05593 }
05594 
05595 // End of class pi_icall.
05596 
05597 // ------------- Class pi_callv follows. -------------
05598 
05599 /*!
05600    \returns The value of pi_callv::f.
05601    \author lsg
05602  */
05603 ptr< ::lestes::lang::cplus::sem::ss_function_declaration > pi_callv::f_get() const
05604 {
05605         return f;
05606 }
05607 
05608 /*!
05609    \param[in] x The new value to set pi_callv::f to.
05610    \author lsg
05611  */
05612 void pi_callv::f_set(const ptr< ::lestes::lang::cplus::sem::ss_function_declaration > & x)
05613 {
05614         pi_callv::f = x;
05615 }
05616 
05617 ptr< ::lestes::backend_v2::structs::pi_operands > pi_callv::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
05618 {
05619         return v->visit_pi_callv( this );
05620 }
05621 
05622 ulint pi_callv::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
05623 {
05624         return v->visit_pi_callv( this );
05625 }
05626 
05627 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_callv::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
05628 {
05629         return v->visit_pi_callv( this );
05630 }
05631 
05632 /*!
05633    This factory method for class pi_callv takes values of all fields as arguments.
05634    \author lsg
05635  */
05636 ptr< pi_callv > pi_callv::create(ptr< pi_pi > a__pi_pi__psp,
05637                 ptr< pi_pi > a__pi_pi__nsp,
05638                 ulint a__pi_pi__level,
05639                 ptr< ::lestes::std::list< srp< pi_operand > > > a__pi_abstract_function_call__args,
05640                 ptr< pi_mem > a__pi_abstract_function_call__this_arg,
05641                 ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__pi_callv__f)
05642 {
05643         return ptr< pi_callv > ( new pi_callv(a__pi_pi__psp,
05644                 a__pi_pi__nsp,
05645                 a__pi_pi__level,
05646                 a__pi_abstract_function_call__args,
05647                 a__pi_abstract_function_call__this_arg,
05648                 a__pi_callv__f) );
05649 }
05650 
05651 /*!
05652    Generated constructor for class pi_callv.
05653    \author lsg
05654  */
05655 pi_callv::pi_callv (ptr< pi_pi > a__pi_pi__psp,
05656                 ptr< pi_pi > a__pi_pi__nsp,
05657                 ulint a__pi_pi__level,
05658                 ptr< ::lestes::std::list< srp< pi_operand > > > a__pi_abstract_function_call__args,
05659                 ptr< pi_mem > a__pi_abstract_function_call__this_arg,
05660                 ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__pi_callv__f)
05661         : pi_abstract_function_call(a__pi_pi__psp,
05662                 a__pi_pi__nsp,
05663                 a__pi_pi__level,
05664                 a__pi_abstract_function_call__args,
05665                 a__pi_abstract_function_call__this_arg), f(checked(a__pi_callv__f))
05666 {}
05667 
05668 ptr< object::reflection_list > pi_callv::reflection_get() const
05669 {
05670         if (!reflection) {
05671                 typedef class_reflection::field_metadata md;
05672                 typedef class_reflection::field_metadata_list mdlist;
05673                 ptr<mdlist> mdl = mdlist::create();
05674                 mdl->push_back( md::create( "f", "ss_function_declaration" ) );
05675                 reflection = reflection_list::create( pi_abstract_function_call::reflection_get() );
05676                 reflection->push_back( class_reflection::create( "pi_callv", mdl ) );
05677         }
05678         return reflection;
05679 }
05680 
05681 ptr< object::field_list_list > pi_callv::field_values_get() const
05682 {
05683         ptr < field_list_list > result = pi_abstract_function_call::field_values_get();
05684         result->push_back( value_list::create() );
05685         result->back()->push_back( this->f );
05686         return result;
05687 }
05688 
05689 
05690 /*!
05691    Marking routine is used for garbage collection.
05692    \author lsg
05693  */
05694 void pi_callv::gc_mark()
05695 {
05696         pi_abstract_function_call::gc_mark();
05697 }
05698 
05699 // End of class pi_callv.
05700 
05701 // ------------- Class pi_icallv follows. -------------
05702 
05703 /*!
05704    \returns The value of pi_icallv::f.
05705    \author lsg
05706  */
05707 ptr< pi_preg > pi_icallv::f_get() const
05708 {
05709         return f;
05710 }
05711 
05712 /*!
05713    \param[in] x The new value to set pi_icallv::f to.
05714    \author lsg
05715  */
05716 void pi_icallv::f_set(const ptr< pi_preg > & x)
05717 {
05718         pi_icallv::f = x;
05719 }
05720 
05721 ptr< ::lestes::backend_v2::structs::pi_operands > pi_icallv::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
05722 {
05723         return v->visit_pi_icallv( this );
05724 }
05725 
05726 ulint pi_icallv::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
05727 {
05728         return v->visit_pi_icallv( this );
05729 }
05730 
05731 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_icallv::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
05732 {
05733         return v->visit_pi_icallv( this );
05734 }
05735 
05736 /*!
05737    This factory method for class pi_icallv takes values of all fields as arguments.
05738    \author lsg
05739  */
05740 ptr< pi_icallv > pi_icallv::create(ptr< pi_pi > a__pi_pi__psp,
05741                 ptr< pi_pi > a__pi_pi__nsp,
05742                 ulint a__pi_pi__level,
05743                 ptr< ::lestes::std::list< srp< pi_operand > > > a__pi_abstract_function_call__args,
05744                 ptr< pi_mem > a__pi_abstract_function_call__this_arg,
05745                 ptr< pi_preg > a__pi_icallv__f)
05746 {
05747         return ptr< pi_icallv > ( new pi_icallv(a__pi_pi__psp,
05748                 a__pi_pi__nsp,
05749                 a__pi_pi__level,
05750                 a__pi_abstract_function_call__args,
05751                 a__pi_abstract_function_call__this_arg,
05752                 a__pi_icallv__f) );
05753 }
05754 
05755 /*!
05756    Generated constructor for class pi_icallv.
05757    \author lsg
05758  */
05759 pi_icallv::pi_icallv (ptr< pi_pi > a__pi_pi__psp,
05760                 ptr< pi_pi > a__pi_pi__nsp,
05761                 ulint a__pi_pi__level,
05762                 ptr< ::lestes::std::list< srp< pi_operand > > > a__pi_abstract_function_call__args,
05763                 ptr< pi_mem > a__pi_abstract_function_call__this_arg,
05764                 ptr< pi_preg > a__pi_icallv__f)
05765         : pi_abstract_function_call(a__pi_pi__psp,
05766                 a__pi_pi__nsp,
05767                 a__pi_pi__level,
05768                 a__pi_abstract_function_call__args,
05769                 a__pi_abstract_function_call__this_arg), f(checked(a__pi_icallv__f))
05770 {}
05771 
05772 ptr< object::reflection_list > pi_icallv::reflection_get() const
05773 {
05774         if (!reflection) {
05775                 typedef class_reflection::field_metadata md;
05776                 typedef class_reflection::field_metadata_list mdlist;
05777                 ptr<mdlist> mdl = mdlist::create();
05778                 mdl->push_back( md::create( "f", "pi_preg" ) );
05779                 reflection = reflection_list::create( pi_abstract_function_call::reflection_get() );
05780                 reflection->push_back( class_reflection::create( "pi_icallv", mdl ) );
05781         }
05782         return reflection;
05783 }
05784 
05785 ptr< object::field_list_list > pi_icallv::field_values_get() const
05786 {
05787         ptr < field_list_list > result = pi_abstract_function_call::field_values_get();
05788         result->push_back( value_list::create() );
05789         result->back()->push_back( this->f );
05790         return result;
05791 }
05792 
05793 
05794 /*!
05795    Marking routine is used for garbage collection.
05796    \author lsg
05797  */
05798 void pi_icallv::gc_mark()
05799 {
05800         pi_abstract_function_call::gc_mark();
05801 }
05802 
05803 // End of class pi_icallv.
05804 
05805 // ------------- Class pi_ba follows. -------------
05806 
05807 ptr< ::lestes::backend_v2::structs::pi_operands > pi_ba::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
05808 {
05809         return v->visit_pi_ba( this );
05810 }
05811 
05812 ulint pi_ba::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
05813 {
05814         return v->visit_pi_ba( this );
05815 }
05816 
05817 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_ba::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
05818 {
05819         return v->visit_pi_ba( this );
05820 }
05821 
05822 /*!
05823    This factory method for class pi_ba takes values of all fields as arguments.
05824    \author lsg
05825  */
05826 ptr< pi_ba > pi_ba::create(ptr< pi_pi > a__pi_pi__psp,
05827                 ptr< pi_pi > a__pi_pi__nsp,
05828                 ulint a__pi_pi__level,
05829                 ptr< pi_sp > a__pi_ub_single_label_target__destination)
05830 {
05831         return ptr< pi_ba > ( new pi_ba(a__pi_pi__psp,
05832                 a__pi_pi__nsp,
05833                 a__pi_pi__level,
05834                 a__pi_ub_single_label_target__destination) );
05835 }
05836 
05837 /*!
05838    Generated constructor for class pi_ba.
05839    \author lsg
05840  */
05841 pi_ba::pi_ba (ptr< pi_pi > a__pi_pi__psp,
05842                 ptr< pi_pi > a__pi_pi__nsp,
05843                 ulint a__pi_pi__level,
05844                 ptr< pi_sp > a__pi_ub_single_label_target__destination)
05845         : pi_ub_single_label_target(a__pi_pi__psp,
05846                 a__pi_pi__nsp,
05847                 a__pi_pi__level,
05848                 a__pi_ub_single_label_target__destination)
05849 {}
05850 
05851 ptr< object::reflection_list > pi_ba::reflection_get() const
05852 {
05853         if (!reflection) {
05854                 typedef class_reflection::field_metadata md;
05855                 typedef class_reflection::field_metadata_list mdlist;
05856                 ptr<mdlist> mdl = mdlist::create();
05857                 reflection = reflection_list::create( pi_ub_single_label_target::reflection_get() );
05858                 reflection->push_back( class_reflection::create( "pi_ba", mdl ) );
05859         }
05860         return reflection;
05861 }
05862 
05863 ptr< object::field_list_list > pi_ba::field_values_get() const
05864 {
05865         ptr < field_list_list > result = pi_ub_single_label_target::field_values_get();
05866         return result;
05867 }
05868 
05869 
05870 /*!
05871    Marking routine is used for garbage collection.
05872    \author lsg
05873  */
05874 void pi_ba::gc_mark()
05875 {
05876         pi_ub_single_label_target::gc_mark();
05877 }
05878 
05879 // End of class pi_ba.
05880 
05881 // ------------- Class pi_bn follows. -------------
05882 
05883 ptr< ::lestes::backend_v2::structs::pi_operands > pi_bn::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
05884 {
05885         return v->visit_pi_bn( this );
05886 }
05887 
05888 ulint pi_bn::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
05889 {
05890         return v->visit_pi_bn( this );
05891 }
05892 
05893 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_bn::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
05894 {
05895         return v->visit_pi_bn( this );
05896 }
05897 
05898 /*!
05899    This factory method for class pi_bn takes values of all fields as arguments.
05900    \author lsg
05901  */
05902 ptr< pi_bn > pi_bn::create(ptr< pi_pi > a__pi_pi__psp,
05903                 ptr< pi_pi > a__pi_pi__nsp,
05904                 ulint a__pi_pi__level,
05905                 ptr< pi_sp > a__pi_ub_single_label_target__destination)
05906 {
05907         return ptr< pi_bn > ( new pi_bn(a__pi_pi__psp,
05908                 a__pi_pi__nsp,
05909                 a__pi_pi__level,
05910                 a__pi_ub_single_label_target__destination) );
05911 }
05912 
05913 /*!
05914    Generated constructor for class pi_bn.
05915    \author lsg
05916  */
05917 pi_bn::pi_bn (ptr< pi_pi > a__pi_pi__psp,
05918                 ptr< pi_pi > a__pi_pi__nsp,
05919                 ulint a__pi_pi__level,
05920                 ptr< pi_sp > a__pi_ub_single_label_target__destination)
05921         : pi_ub_single_label_target(a__pi_pi__psp,
05922                 a__pi_pi__nsp,
05923                 a__pi_pi__level,
05924                 a__pi_ub_single_label_target__destination)
05925 {}
05926 
05927 ptr< object::reflection_list > pi_bn::reflection_get() const
05928 {
05929         if (!reflection) {
05930                 typedef class_reflection::field_metadata md;
05931                 typedef class_reflection::field_metadata_list mdlist;
05932                 ptr<mdlist> mdl = mdlist::create();
05933                 reflection = reflection_list::create( pi_ub_single_label_target::reflection_get() );
05934                 reflection->push_back( class_reflection::create( "pi_bn", mdl ) );
05935         }
05936         return reflection;
05937 }
05938 
05939 ptr< object::field_list_list > pi_bn::field_values_get() const
05940 {
05941         ptr < field_list_list > result = pi_ub_single_label_target::field_values_get();
05942         return result;
05943 }
05944 
05945 
05946 /*!
05947    Marking routine is used for garbage collection.
05948    \author lsg
05949  */
05950 void pi_bn::gc_mark()
05951 {
05952         pi_ub_single_label_target::gc_mark();
05953 }
05954 
05955 // End of class pi_bn.
05956 
05957 // ------------- Class pi_bt follows. -------------
05958 
05959 ptr< ::lestes::backend_v2::structs::pi_operands > pi_bt::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
05960 {
05961         return v->visit_pi_bt( this );
05962 }
05963 
05964 ulint pi_bt::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
05965 {
05966         return v->visit_pi_bt( this );
05967 }
05968 
05969 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_bt::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
05970 {
05971         return v->visit_pi_bt( this );
05972 }
05973 
05974 /*!
05975    This factory method for class pi_bt takes values of all fields as arguments.
05976    \author lsg
05977  */
05978 ptr< pi_bt > pi_bt::create(ptr< pi_pi > a__pi_pi__psp,
05979                 ptr< pi_pi > a__pi_pi__nsp,
05980                 ulint a__pi_pi__level,
05981                 ptr< pi_preg > a__pi_conditional_branch__condition,
05982                 ptr< pi_sp > a__pi_cb_single_label_target__destination)
05983 {
05984         return ptr< pi_bt > ( new pi_bt(a__pi_pi__psp,
05985                 a__pi_pi__nsp,
05986                 a__pi_pi__level,
05987                 a__pi_conditional_branch__condition,
05988                 a__pi_cb_single_label_target__destination) );
05989 }
05990 
05991 /*!
05992    Generated constructor for class pi_bt.
05993    \author lsg
05994  */
05995 pi_bt::pi_bt (ptr< pi_pi > a__pi_pi__psp,
05996                 ptr< pi_pi > a__pi_pi__nsp,
05997                 ulint a__pi_pi__level,
05998                 ptr< pi_preg > a__pi_conditional_branch__condition,
05999                 ptr< pi_sp > a__pi_cb_single_label_target__destination)
06000         : pi_cb_single_label_target(a__pi_pi__psp,
06001                 a__pi_pi__nsp,
06002                 a__pi_pi__level,
06003                 a__pi_conditional_branch__condition,
06004                 a__pi_cb_single_label_target__destination)
06005 {}
06006 
06007 ptr< object::reflection_list > pi_bt::reflection_get() const
06008 {
06009         if (!reflection) {
06010                 typedef class_reflection::field_metadata md;
06011                 typedef class_reflection::field_metadata_list mdlist;
06012                 ptr<mdlist> mdl = mdlist::create();
06013                 reflection = reflection_list::create( pi_cb_single_label_target::reflection_get() );
06014                 reflection->push_back( class_reflection::create( "pi_bt", mdl ) );
06015         }
06016         return reflection;
06017 }
06018 
06019 ptr< object::field_list_list > pi_bt::field_values_get() const
06020 {
06021         ptr < field_list_list > result = pi_cb_single_label_target::field_values_get();
06022         return result;
06023 }
06024 
06025 
06026 /*!
06027    Marking routine is used for garbage collection.
06028    \author lsg
06029  */
06030 void pi_bt::gc_mark()
06031 {
06032         pi_cb_single_label_target::gc_mark();
06033 }
06034 
06035 // End of class pi_bt.
06036 
06037 // ------------- Class pi_bf follows. -------------
06038 
06039 ptr< ::lestes::backend_v2::structs::pi_operands > pi_bf::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
06040 {
06041         return v->visit_pi_bf( this );
06042 }
06043 
06044 ulint pi_bf::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
06045 {
06046         return v->visit_pi_bf( this );
06047 }
06048 
06049 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_bf::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
06050 {
06051         return v->visit_pi_bf( this );
06052 }
06053 
06054 /*!
06055    This factory method for class pi_bf takes values of all fields as arguments.
06056    \author lsg
06057  */
06058 ptr< pi_bf > pi_bf::create(ptr< pi_pi > a__pi_pi__psp,
06059                 ptr< pi_pi > a__pi_pi__nsp,
06060                 ulint a__pi_pi__level,
06061                 ptr< pi_preg > a__pi_conditional_branch__condition,
06062                 ptr< pi_sp > a__pi_cb_single_label_target__destination)
06063 {
06064         return ptr< pi_bf > ( new pi_bf(a__pi_pi__psp,
06065                 a__pi_pi__nsp,
06066                 a__pi_pi__level,
06067                 a__pi_conditional_branch__condition,
06068                 a__pi_cb_single_label_target__destination) );
06069 }
06070 
06071 /*!
06072    Generated constructor for class pi_bf.
06073    \author lsg
06074  */
06075 pi_bf::pi_bf (ptr< pi_pi > a__pi_pi__psp,
06076                 ptr< pi_pi > a__pi_pi__nsp,
06077                 ulint a__pi_pi__level,
06078                 ptr< pi_preg > a__pi_conditional_branch__condition,
06079                 ptr< pi_sp > a__pi_cb_single_label_target__destination)
06080         : pi_cb_single_label_target(a__pi_pi__psp,
06081                 a__pi_pi__nsp,
06082                 a__pi_pi__level,
06083                 a__pi_conditional_branch__condition,
06084                 a__pi_cb_single_label_target__destination)
06085 {}
06086 
06087 ptr< object::reflection_list > pi_bf::reflection_get() const
06088 {
06089         if (!reflection) {
06090                 typedef class_reflection::field_metadata md;
06091                 typedef class_reflection::field_metadata_list mdlist;
06092                 ptr<mdlist> mdl = mdlist::create();
06093                 reflection = reflection_list::create( pi_cb_single_label_target::reflection_get() );
06094                 reflection->push_back( class_reflection::create( "pi_bf", mdl ) );
06095         }
06096         return reflection;
06097 }
06098 
06099 ptr< object::field_list_list > pi_bf::field_values_get() const
06100 {
06101         ptr < field_list_list > result = pi_cb_single_label_target::field_values_get();
06102         return result;
06103 }
06104 
06105 
06106 /*!
06107    Marking routine is used for garbage collection.
06108    \author lsg
06109  */
06110 void pi_bf::gc_mark()
06111 {
06112         pi_cb_single_label_target::gc_mark();
06113 }
06114 
06115 // End of class pi_bf.
06116 
06117 // ------------- Class pi_bm follows. -------------
06118 
06119 ptr< ::lestes::backend_v2::structs::pi_operands > pi_bm::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
06120 {
06121         return v->visit_pi_bm( this );
06122 }
06123 
06124 ulint pi_bm::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
06125 {
06126         return v->visit_pi_bm( this );
06127 }
06128 
06129 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_bm::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
06130 {
06131         return v->visit_pi_bm( this );
06132 }
06133 
06134 /*!
06135    This factory method for class pi_bm takes values of all fields as arguments.
06136    \author lsg
06137  */
06138 ptr< pi_bm > pi_bm::create(ptr< pi_pi > a__pi_pi__psp,
06139                 ptr< pi_pi > a__pi_pi__nsp,
06140                 ulint a__pi_pi__level,
06141                 ptr< pi_preg > a__pi_branch_multiple__value,
06142                 ptr< ::lestes::std::map< srp< ::lestes::md::literals::literal_info_base >, srp< pi_sp > > > a__pi_branch_multiple_label_target__targets)
06143 {
06144         return ptr< pi_bm > ( new pi_bm(a__pi_pi__psp,
06145                 a__pi_pi__nsp,
06146                 a__pi_pi__level,
06147                 a__pi_branch_multiple__value,
06148                 a__pi_branch_multiple_label_target__targets) );
06149 }
06150 
06151 /*!
06152    Generated constructor for class pi_bm.
06153    \author lsg
06154  */
06155 pi_bm::pi_bm (ptr< pi_pi > a__pi_pi__psp,
06156                 ptr< pi_pi > a__pi_pi__nsp,
06157                 ulint a__pi_pi__level,
06158                 ptr< pi_preg > a__pi_branch_multiple__value,
06159                 ptr< ::lestes::std::map< srp< ::lestes::md::literals::literal_info_base >, srp< pi_sp > > > a__pi_branch_multiple_label_target__targets)
06160         : pi_branch_multiple_label_target(a__pi_pi__psp,
06161                 a__pi_pi__nsp,
06162                 a__pi_pi__level,
06163                 a__pi_branch_multiple__value,
06164                 a__pi_branch_multiple_label_target__targets)
06165 {}
06166 
06167 ptr< object::reflection_list > pi_bm::reflection_get() const
06168 {
06169         if (!reflection) {
06170                 typedef class_reflection::field_metadata md;
06171                 typedef class_reflection::field_metadata_list mdlist;
06172                 ptr<mdlist> mdl = mdlist::create();
06173                 reflection = reflection_list::create( pi_branch_multiple_label_target::reflection_get() );
06174                 reflection->push_back( class_reflection::create( "pi_bm", mdl ) );
06175         }
06176         return reflection;
06177 }
06178 
06179 ptr< object::field_list_list > pi_bm::field_values_get() const
06180 {
06181         ptr < field_list_list > result = pi_branch_multiple_label_target::field_values_get();
06182         return result;
06183 }
06184 
06185 
06186 /*!
06187    Marking routine is used for garbage collection.
06188    \author lsg
06189  */
06190 void pi_bm::gc_mark()
06191 {
06192         pi_branch_multiple_label_target::gc_mark();
06193 }
06194 
06195 // End of class pi_bm.
06196 
06197 // ------------- Class pi_bg follows. -------------
06198 
06199 ptr< ::lestes::backend_v2::structs::pi_operands > pi_bg::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
06200 {
06201         return v->visit_pi_bg( this );
06202 }
06203 
06204 ulint pi_bg::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
06205 {
06206         return v->visit_pi_bg( this );
06207 }
06208 
06209 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_bg::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
06210 {
06211         return v->visit_pi_bg( this );
06212 }
06213 
06214 /*!
06215    This factory method for class pi_bg takes values of all fields as arguments.
06216    \author lsg
06217  */
06218 ptr< pi_bg > pi_bg::create(ptr< pi_pi > a__pi_pi__psp,
06219                 ptr< pi_pi > a__pi_pi__nsp,
06220                 ulint a__pi_pi__level,
06221                 ptr< pi_preg > a__pi_conditional_branch__condition,
06222                 ptr< pi_sp > a__pi_cb_single_label_target__destination)
06223 {
06224         return ptr< pi_bg > ( new pi_bg(a__pi_pi__psp,
06225                 a__pi_pi__nsp,
06226                 a__pi_pi__level,
06227                 a__pi_conditional_branch__condition,
06228                 a__pi_cb_single_label_target__destination) );
06229 }
06230 
06231 /*!
06232    Generated constructor for class pi_bg.
06233    \author lsg
06234  */
06235 pi_bg::pi_bg (ptr< pi_pi > a__pi_pi__psp,
06236                 ptr< pi_pi > a__pi_pi__nsp,
06237                 ulint a__pi_pi__level,
06238                 ptr< pi_preg > a__pi_conditional_branch__condition,
06239                 ptr< pi_sp > a__pi_cb_single_label_target__destination)
06240         : pi_cb_single_label_target(a__pi_pi__psp,
06241                 a__pi_pi__nsp,
06242                 a__pi_pi__level,
06243                 a__pi_conditional_branch__condition,
06244                 a__pi_cb_single_label_target__destination)
06245 {}
06246 
06247 ptr< object::reflection_list > pi_bg::reflection_get() const
06248 {
06249         if (!reflection) {
06250                 typedef class_reflection::field_metadata md;
06251                 typedef class_reflection::field_metadata_list mdlist;
06252                 ptr<mdlist> mdl = mdlist::create();
06253                 reflection = reflection_list::create( pi_cb_single_label_target::reflection_get() );
06254                 reflection->push_back( class_reflection::create( "pi_bg", mdl ) );
06255         }
06256         return reflection;
06257 }
06258 
06259 ptr< object::field_list_list > pi_bg::field_values_get() const
06260 {
06261         ptr < field_list_list > result = pi_cb_single_label_target::field_values_get();
06262         return result;
06263 }
06264 
06265 
06266 /*!
06267    Marking routine is used for garbage collection.
06268    \author lsg
06269  */
06270 void pi_bg::gc_mark()
06271 {
06272         pi_cb_single_label_target::gc_mark();
06273 }
06274 
06275 // End of class pi_bg.
06276 
06277 // ------------- Class pi_bl follows. -------------
06278 
06279 ptr< ::lestes::backend_v2::structs::pi_operands > pi_bl::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
06280 {
06281         return v->visit_pi_bl( this );
06282 }
06283 
06284 ulint pi_bl::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
06285 {
06286         return v->visit_pi_bl( this );
06287 }
06288 
06289 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_bl::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
06290 {
06291         return v->visit_pi_bl( this );
06292 }
06293 
06294 /*!
06295    This factory method for class pi_bl takes values of all fields as arguments.
06296    \author lsg
06297  */
06298 ptr< pi_bl > pi_bl::create(ptr< pi_pi > a__pi_pi__psp,
06299                 ptr< pi_pi > a__pi_pi__nsp,
06300                 ulint a__pi_pi__level,
06301                 ptr< pi_preg > a__pi_conditional_branch__condition,
06302                 ptr< pi_sp > a__pi_cb_single_label_target__destination)
06303 {
06304         return ptr< pi_bl > ( new pi_bl(a__pi_pi__psp,
06305                 a__pi_pi__nsp,
06306                 a__pi_pi__level,
06307                 a__pi_conditional_branch__condition,
06308                 a__pi_cb_single_label_target__destination) );
06309 }
06310 
06311 /*!
06312    Generated constructor for class pi_bl.
06313    \author lsg
06314  */
06315 pi_bl::pi_bl (ptr< pi_pi > a__pi_pi__psp,
06316                 ptr< pi_pi > a__pi_pi__nsp,
06317                 ulint a__pi_pi__level,
06318                 ptr< pi_preg > a__pi_conditional_branch__condition,
06319                 ptr< pi_sp > a__pi_cb_single_label_target__destination)
06320         : pi_cb_single_label_target(a__pi_pi__psp,
06321                 a__pi_pi__nsp,
06322                 a__pi_pi__level,
06323                 a__pi_conditional_branch__condition,
06324                 a__pi_cb_single_label_target__destination)
06325 {}
06326 
06327 ptr< object::reflection_list > pi_bl::reflection_get() const
06328 {
06329         if (!reflection) {
06330                 typedef class_reflection::field_metadata md;
06331                 typedef class_reflection::field_metadata_list mdlist;
06332                 ptr<mdlist> mdl = mdlist::create();
06333                 reflection = reflection_list::create( pi_cb_single_label_target::reflection_get() );
06334                 reflection->push_back( class_reflection::create( "pi_bl", mdl ) );
06335         }
06336         return reflection;
06337 }
06338 
06339 ptr< object::field_list_list > pi_bl::field_values_get() const
06340 {
06341         ptr < field_list_list > result = pi_cb_single_label_target::field_values_get();
06342         return result;
06343 }
06344 
06345 
06346 /*!
06347    Marking routine is used for garbage collection.
06348    \author lsg
06349  */
06350 void pi_bl::gc_mark()
06351 {
06352         pi_cb_single_label_target::gc_mark();
06353 }
06354 
06355 // End of class pi_bl.
06356 
06357 // ------------- Class pi_be follows. -------------
06358 
06359 ptr< ::lestes::backend_v2::structs::pi_operands > pi_be::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
06360 {
06361         return v->visit_pi_be( this );
06362 }
06363 
06364 ulint pi_be::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
06365 {
06366         return v->visit_pi_be( this );
06367 }
06368 
06369 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_be::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
06370 {
06371         return v->visit_pi_be( this );
06372 }
06373 
06374 /*!
06375    This factory method for class pi_be takes values of all fields as arguments.
06376    \author lsg
06377  */
06378 ptr< pi_be > pi_be::create(ptr< pi_pi > a__pi_pi__psp,
06379                 ptr< pi_pi > a__pi_pi__nsp,
06380                 ulint a__pi_pi__level,
06381                 ptr< pi_preg > a__pi_conditional_branch__condition,
06382                 ptr< pi_sp > a__pi_cb_single_label_target__destination)
06383 {
06384         return ptr< pi_be > ( new pi_be(a__pi_pi__psp,
06385                 a__pi_pi__nsp,
06386                 a__pi_pi__level,
06387                 a__pi_conditional_branch__condition,
06388                 a__pi_cb_single_label_target__destination) );
06389 }
06390 
06391 /*!
06392    Generated constructor for class pi_be.
06393    \author lsg
06394  */
06395 pi_be::pi_be (ptr< pi_pi > a__pi_pi__psp,
06396                 ptr< pi_pi > a__pi_pi__nsp,
06397                 ulint a__pi_pi__level,
06398                 ptr< pi_preg > a__pi_conditional_branch__condition,
06399                 ptr< pi_sp > a__pi_cb_single_label_target__destination)
06400         : pi_cb_single_label_target(a__pi_pi__psp,
06401                 a__pi_pi__nsp,
06402                 a__pi_pi__level,
06403                 a__pi_conditional_branch__condition,
06404                 a__pi_cb_single_label_target__destination)
06405 {}
06406 
06407 ptr< object::reflection_list > pi_be::reflection_get() const
06408 {
06409         if (!reflection) {
06410                 typedef class_reflection::field_metadata md;
06411                 typedef class_reflection::field_metadata_list mdlist;
06412                 ptr<mdlist> mdl = mdlist::create();
06413                 reflection = reflection_list::create( pi_cb_single_label_target::reflection_get() );
06414                 reflection->push_back( class_reflection::create( "pi_be", mdl ) );
06415         }
06416         return reflection;
06417 }
06418 
06419 ptr< object::field_list_list > pi_be::field_values_get() const
06420 {
06421         ptr < field_list_list > result = pi_cb_single_label_target::field_values_get();
06422         return result;
06423 }
06424 
06425 
06426 /*!
06427    Marking routine is used for garbage collection.
06428    \author lsg
06429  */
06430 void pi_be::gc_mark()
06431 {
06432         pi_cb_single_label_target::gc_mark();
06433 }
06434 
06435 // End of class pi_be.
06436 
06437 // ------------- Class pi_bng follows. -------------
06438 
06439 ptr< ::lestes::backend_v2::structs::pi_operands > pi_bng::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
06440 {
06441         return v->visit_pi_bng( this );
06442 }
06443 
06444 ulint pi_bng::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
06445 {
06446         return v->visit_pi_bng( this );
06447 }
06448 
06449 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_bng::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
06450 {
06451         return v->visit_pi_bng( this );
06452 }
06453 
06454 /*!
06455    This factory method for class pi_bng takes values of all fields as arguments.
06456    \author lsg
06457  */
06458 ptr< pi_bng > pi_bng::create(ptr< pi_pi > a__pi_pi__psp,
06459                 ptr< pi_pi > a__pi_pi__nsp,
06460                 ulint a__pi_pi__level,
06461                 ptr< pi_preg > a__pi_conditional_branch__condition,
06462                 ptr< pi_sp > a__pi_cb_single_label_target__destination)
06463 {
06464         return ptr< pi_bng > ( new pi_bng(a__pi_pi__psp,
06465                 a__pi_pi__nsp,
06466                 a__pi_pi__level,
06467                 a__pi_conditional_branch__condition,
06468                 a__pi_cb_single_label_target__destination) );
06469 }
06470 
06471 /*!
06472    Generated constructor for class pi_bng.
06473    \author lsg
06474  */
06475 pi_bng::pi_bng (ptr< pi_pi > a__pi_pi__psp,
06476                 ptr< pi_pi > a__pi_pi__nsp,
06477                 ulint a__pi_pi__level,
06478                 ptr< pi_preg > a__pi_conditional_branch__condition,
06479                 ptr< pi_sp > a__pi_cb_single_label_target__destination)
06480         : pi_cb_single_label_target(a__pi_pi__psp,
06481                 a__pi_pi__nsp,
06482                 a__pi_pi__level,
06483                 a__pi_conditional_branch__condition,
06484                 a__pi_cb_single_label_target__destination)
06485 {}
06486 
06487 ptr< object::reflection_list > pi_bng::reflection_get() const
06488 {
06489         if (!reflection) {
06490                 typedef class_reflection::field_metadata md;
06491                 typedef class_reflection::field_metadata_list mdlist;
06492                 ptr<mdlist> mdl = mdlist::create();
06493                 reflection = reflection_list::create( pi_cb_single_label_target::reflection_get() );
06494                 reflection->push_back( class_reflection::create( "pi_bng", mdl ) );
06495         }
06496         return reflection;
06497 }
06498 
06499 ptr< object::field_list_list > pi_bng::field_values_get() const
06500 {
06501         ptr < field_list_list > result = pi_cb_single_label_target::field_values_get();
06502         return result;
06503 }
06504 
06505 
06506 /*!
06507    Marking routine is used for garbage collection.
06508    \author lsg
06509  */
06510 void pi_bng::gc_mark()
06511 {
06512         pi_cb_single_label_target::gc_mark();
06513 }
06514 
06515 // End of class pi_bng.
06516 
06517 // ------------- Class pi_bnl follows. -------------
06518 
06519 ptr< ::lestes::backend_v2::structs::pi_operands > pi_bnl::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
06520 {
06521         return v->visit_pi_bnl( this );
06522 }
06523 
06524 ulint pi_bnl::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
06525 {
06526         return v->visit_pi_bnl( this );
06527 }
06528 
06529 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_bnl::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
06530 {
06531         return v->visit_pi_bnl( this );
06532 }
06533 
06534 /*!
06535    This factory method for class pi_bnl takes values of all fields as arguments.
06536    \author lsg
06537  */
06538 ptr< pi_bnl > pi_bnl::create(ptr< pi_pi > a__pi_pi__psp,
06539                 ptr< pi_pi > a__pi_pi__nsp,
06540                 ulint a__pi_pi__level,
06541                 ptr< pi_preg > a__pi_conditional_branch__condition,
06542                 ptr< pi_sp > a__pi_cb_single_label_target__destination)
06543 {
06544         return ptr< pi_bnl > ( new pi_bnl(a__pi_pi__psp,
06545                 a__pi_pi__nsp,
06546                 a__pi_pi__level,
06547                 a__pi_conditional_branch__condition,
06548                 a__pi_cb_single_label_target__destination) );
06549 }
06550 
06551 /*!
06552    Generated constructor for class pi_bnl.
06553    \author lsg
06554  */
06555 pi_bnl::pi_bnl (ptr< pi_pi > a__pi_pi__psp,
06556                 ptr< pi_pi > a__pi_pi__nsp,
06557                 ulint a__pi_pi__level,
06558                 ptr< pi_preg > a__pi_conditional_branch__condition,
06559                 ptr< pi_sp > a__pi_cb_single_label_target__destination)
06560         : pi_cb_single_label_target(a__pi_pi__psp,
06561                 a__pi_pi__nsp,
06562                 a__pi_pi__level,
06563                 a__pi_conditional_branch__condition,
06564                 a__pi_cb_single_label_target__destination)
06565 {}
06566 
06567 ptr< object::reflection_list > pi_bnl::reflection_get() const
06568 {
06569         if (!reflection) {
06570                 typedef class_reflection::field_metadata md;
06571                 typedef class_reflection::field_metadata_list mdlist;
06572                 ptr<mdlist> mdl = mdlist::create();
06573                 reflection = reflection_list::create( pi_cb_single_label_target::reflection_get() );
06574                 reflection->push_back( class_reflection::create( "pi_bnl", mdl ) );
06575         }
06576         return reflection;
06577 }
06578 
06579 ptr< object::field_list_list > pi_bnl::field_values_get() const
06580 {
06581         ptr < field_list_list > result = pi_cb_single_label_target::field_values_get();
06582         return result;
06583 }
06584 
06585 
06586 /*!
06587    Marking routine is used for garbage collection.
06588    \author lsg
06589  */
06590 void pi_bnl::gc_mark()
06591 {
06592         pi_cb_single_label_target::gc_mark();
06593 }
06594 
06595 // End of class pi_bnl.
06596 
06597 // ------------- Class pi_bne follows. -------------
06598 
06599 ptr< ::lestes::backend_v2::structs::pi_operands > pi_bne::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
06600 {
06601         return v->visit_pi_bne( this );
06602 }
06603 
06604 ulint pi_bne::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
06605 {
06606         return v->visit_pi_bne( this );
06607 }
06608 
06609 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_bne::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
06610 {
06611         return v->visit_pi_bne( this );
06612 }
06613 
06614 /*!
06615    This factory method for class pi_bne takes values of all fields as arguments.
06616    \author lsg
06617  */
06618 ptr< pi_bne > pi_bne::create(ptr< pi_pi > a__pi_pi__psp,
06619                 ptr< pi_pi > a__pi_pi__nsp,
06620                 ulint a__pi_pi__level,
06621                 ptr< pi_preg > a__pi_conditional_branch__condition,
06622                 ptr< pi_sp > a__pi_cb_single_label_target__destination)
06623 {
06624         return ptr< pi_bne > ( new pi_bne(a__pi_pi__psp,
06625                 a__pi_pi__nsp,
06626                 a__pi_pi__level,
06627                 a__pi_conditional_branch__condition,
06628                 a__pi_cb_single_label_target__destination) );
06629 }
06630 
06631 /*!
06632    Generated constructor for class pi_bne.
06633    \author lsg
06634  */
06635 pi_bne::pi_bne (ptr< pi_pi > a__pi_pi__psp,
06636                 ptr< pi_pi > a__pi_pi__nsp,
06637                 ulint a__pi_pi__level,
06638                 ptr< pi_preg > a__pi_conditional_branch__condition,
06639                 ptr< pi_sp > a__pi_cb_single_label_target__destination)
06640         : pi_cb_single_label_target(a__pi_pi__psp,
06641                 a__pi_pi__nsp,
06642                 a__pi_pi__level,
06643                 a__pi_conditional_branch__condition,
06644                 a__pi_cb_single_label_target__destination)
06645 {}
06646 
06647 ptr< object::reflection_list > pi_bne::reflection_get() const
06648 {
06649         if (!reflection) {
06650                 typedef class_reflection::field_metadata md;
06651                 typedef class_reflection::field_metadata_list mdlist;
06652                 ptr<mdlist> mdl = mdlist::create();
06653                 reflection = reflection_list::create( pi_cb_single_label_target::reflection_get() );
06654                 reflection->push_back( class_reflection::create( "pi_bne", mdl ) );
06655         }
06656         return reflection;
06657 }
06658 
06659 ptr< object::field_list_list > pi_bne::field_values_get() const
06660 {
06661         ptr < field_list_list > result = pi_cb_single_label_target::field_values_get();
06662         return result;
06663 }
06664 
06665 
06666 /*!
06667    Marking routine is used for garbage collection.
06668    \author lsg
06669  */
06670 void pi_bne::gc_mark()
06671 {
06672         pi_cb_single_label_target::gc_mark();
06673 }
06674 
06675 // End of class pi_bne.
06676 
06677 // ------------- Class pi_iba follows. -------------
06678 
06679 ptr< ::lestes::backend_v2::structs::pi_operands > pi_iba::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
06680 {
06681         return v->visit_pi_iba( this );
06682 }
06683 
06684 ulint pi_iba::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
06685 {
06686         return v->visit_pi_iba( this );
06687 }
06688 
06689 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_iba::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
06690 {
06691         return v->visit_pi_iba( this );
06692 }
06693 
06694 /*!
06695    This factory method for class pi_iba takes values of all fields as arguments.
06696    \author lsg
06697  */
06698 ptr< pi_iba > pi_iba::create(ptr< pi_pi > a__pi_pi__psp,
06699                 ptr< pi_pi > a__pi_pi__nsp,
06700                 ulint a__pi_pi__level,
06701                 ptr< pi_preg > a__pi_ub_single_address_target__destination)
06702 {
06703         return ptr< pi_iba > ( new pi_iba(a__pi_pi__psp,
06704                 a__pi_pi__nsp,
06705                 a__pi_pi__level,
06706                 a__pi_ub_single_address_target__destination) );
06707 }
06708 
06709 /*!
06710    Generated constructor for class pi_iba.
06711    \author lsg
06712  */
06713 pi_iba::pi_iba (ptr< pi_pi > a__pi_pi__psp,
06714                 ptr< pi_pi > a__pi_pi__nsp,
06715                 ulint a__pi_pi__level,
06716                 ptr< pi_preg > a__pi_ub_single_address_target__destination)
06717         : pi_ub_single_address_target(a__pi_pi__psp,
06718                 a__pi_pi__nsp,
06719                 a__pi_pi__level,
06720                 a__pi_ub_single_address_target__destination)
06721 {}
06722 
06723 ptr< object::reflection_list > pi_iba::reflection_get() const
06724 {
06725         if (!reflection) {
06726                 typedef class_reflection::field_metadata md;
06727                 typedef class_reflection::field_metadata_list mdlist;
06728                 ptr<mdlist> mdl = mdlist::create();
06729                 reflection = reflection_list::create( pi_ub_single_address_target::reflection_get() );
06730                 reflection->push_back( class_reflection::create( "pi_iba", mdl ) );
06731         }
06732         return reflection;
06733 }
06734 
06735 ptr< object::field_list_list > pi_iba::field_values_get() const
06736 {
06737         ptr < field_list_list > result = pi_ub_single_address_target::field_values_get();
06738         return result;
06739 }
06740 
06741 
06742 /*!
06743    Marking routine is used for garbage collection.
06744    \author lsg
06745  */
06746 void pi_iba::gc_mark()
06747 {
06748         pi_ub_single_address_target::gc_mark();
06749 }
06750 
06751 // End of class pi_iba.
06752 
06753 // ------------- Class pi_ibn follows. -------------
06754 
06755 ptr< ::lestes::backend_v2::structs::pi_operands > pi_ibn::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
06756 {
06757         return v->visit_pi_ibn( this );
06758 }
06759 
06760 ulint pi_ibn::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
06761 {
06762         return v->visit_pi_ibn( this );
06763 }
06764 
06765 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_ibn::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
06766 {
06767         return v->visit_pi_ibn( this );
06768 }
06769 
06770 /*!
06771    This factory method for class pi_ibn takes values of all fields as arguments.
06772    \author lsg
06773  */
06774 ptr< pi_ibn > pi_ibn::create(ptr< pi_pi > a__pi_pi__psp,
06775                 ptr< pi_pi > a__pi_pi__nsp,
06776                 ulint a__pi_pi__level,
06777                 ptr< pi_preg > a__pi_ub_single_address_target__destination)
06778 {
06779         return ptr< pi_ibn > ( new pi_ibn(a__pi_pi__psp,
06780                 a__pi_pi__nsp,
06781                 a__pi_pi__level,
06782                 a__pi_ub_single_address_target__destination) );
06783 }
06784 
06785 /*!
06786    Generated constructor for class pi_ibn.
06787    \author lsg
06788  */
06789 pi_ibn::pi_ibn (ptr< pi_pi > a__pi_pi__psp,
06790                 ptr< pi_pi > a__pi_pi__nsp,
06791                 ulint a__pi_pi__level,
06792                 ptr< pi_preg > a__pi_ub_single_address_target__destination)
06793         : pi_ub_single_address_target(a__pi_pi__psp,
06794                 a__pi_pi__nsp,
06795                 a__pi_pi__level,
06796                 a__pi_ub_single_address_target__destination)
06797 {}
06798 
06799 ptr< object::reflection_list > pi_ibn::reflection_get() const
06800 {
06801         if (!reflection) {
06802                 typedef class_reflection::field_metadata md;
06803                 typedef class_reflection::field_metadata_list mdlist;
06804                 ptr<mdlist> mdl = mdlist::create();
06805                 reflection = reflection_list::create( pi_ub_single_address_target::reflection_get() );
06806                 reflection->push_back( class_reflection::create( "pi_ibn", mdl ) );
06807         }
06808         return reflection;
06809 }
06810 
06811 ptr< object::field_list_list > pi_ibn::field_values_get() const
06812 {
06813         ptr < field_list_list > result = pi_ub_single_address_target::field_values_get();
06814         return result;
06815 }
06816 
06817 
06818 /*!
06819    Marking routine is used for garbage collection.
06820    \author lsg
06821  */
06822 void pi_ibn::gc_mark()
06823 {
06824         pi_ub_single_address_target::gc_mark();
06825 }
06826 
06827 // End of class pi_ibn.
06828 
06829 // ------------- Class pi_ibm follows. -------------
06830 
06831 ptr< ::lestes::backend_v2::structs::pi_operands > pi_ibm::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
06832 {
06833         return v->visit_pi_ibm( this );
06834 }
06835 
06836 ulint pi_ibm::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
06837 {
06838         return v->visit_pi_ibm( this );
06839 }
06840 
06841 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_ibm::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
06842 {
06843         return v->visit_pi_ibm( this );
06844 }
06845 
06846 /*!
06847    This factory method for class pi_ibm takes values of all fields as arguments.
06848    \author lsg
06849  */
06850 ptr< pi_ibm > pi_ibm::create(ptr< pi_pi > a__pi_pi__psp,
06851                 ptr< pi_pi > a__pi_pi__nsp,
06852                 ulint a__pi_pi__level,
06853                 ptr< pi_preg > a__pi_branch_multiple__value,
06854                 ptr< ::lestes::std::map< srp< ::lestes::md::literals::literal_info_base >, srp< pi_preg > > > a__pi_branch_multiple_address_target__targets)
06855 {
06856         return ptr< pi_ibm > ( new pi_ibm(a__pi_pi__psp,
06857                 a__pi_pi__nsp,
06858                 a__pi_pi__level,
06859                 a__pi_branch_multiple__value,
06860                 a__pi_branch_multiple_address_target__targets) );
06861 }
06862 
06863 /*!
06864    Generated constructor for class pi_ibm.
06865    \author lsg
06866  */
06867 pi_ibm::pi_ibm (ptr< pi_pi > a__pi_pi__psp,
06868                 ptr< pi_pi > a__pi_pi__nsp,
06869                 ulint a__pi_pi__level,
06870                 ptr< pi_preg > a__pi_branch_multiple__value,
06871                 ptr< ::lestes::std::map< srp< ::lestes::md::literals::literal_info_base >, srp< pi_preg > > > a__pi_branch_multiple_address_target__targets)
06872         : pi_branch_multiple_address_target(a__pi_pi__psp,
06873                 a__pi_pi__nsp,
06874                 a__pi_pi__level,
06875                 a__pi_branch_multiple__value,
06876                 a__pi_branch_multiple_address_target__targets)
06877 {}
06878 
06879 ptr< object::reflection_list > pi_ibm::reflection_get() const
06880 {
06881         if (!reflection) {
06882                 typedef class_reflection::field_metadata md;
06883                 typedef class_reflection::field_metadata_list mdlist;
06884                 ptr<mdlist> mdl = mdlist::create();
06885                 reflection = reflection_list::create( pi_branch_multiple_address_target::reflection_get() );
06886                 reflection->push_back( class_reflection::create( "pi_ibm", mdl ) );
06887         }
06888         return reflection;
06889 }
06890 
06891 ptr< object::field_list_list > pi_ibm::field_values_get() const
06892 {
06893         ptr < field_list_list > result = pi_branch_multiple_address_target::field_values_get();
06894         return result;
06895 }
06896 
06897 
06898 /*!
06899    Marking routine is used for garbage collection.
06900    \author lsg
06901  */
06902 void pi_ibm::gc_mark()
06903 {
06904         pi_branch_multiple_address_target::gc_mark();
06905 }
06906 
06907 // End of class pi_ibm.
06908 
06909 // ------------- Class pi_ibg follows. -------------
06910 
06911 ptr< ::lestes::backend_v2::structs::pi_operands > pi_ibg::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
06912 {
06913         return v->visit_pi_ibg( this );
06914 }
06915 
06916 ulint pi_ibg::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
06917 {
06918         return v->visit_pi_ibg( this );
06919 }
06920 
06921 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_ibg::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
06922 {
06923         return v->visit_pi_ibg( this );
06924 }
06925 
06926 /*!
06927    This factory method for class pi_ibg takes values of all fields as arguments.
06928    \author lsg
06929  */
06930 ptr< pi_ibg > pi_ibg::create(ptr< pi_pi > a__pi_pi__psp,
06931                 ptr< pi_pi > a__pi_pi__nsp,
06932                 ulint a__pi_pi__level,
06933                 ptr< pi_preg > a__pi_conditional_branch__condition,
06934                 ptr< pi_preg > a__pi_cb_single_address_target__destination)
06935 {
06936         return ptr< pi_ibg > ( new pi_ibg(a__pi_pi__psp,
06937                 a__pi_pi__nsp,
06938                 a__pi_pi__level,
06939                 a__pi_conditional_branch__condition,
06940                 a__pi_cb_single_address_target__destination) );
06941 }
06942 
06943 /*!
06944    Generated constructor for class pi_ibg.
06945    \author lsg
06946  */
06947 pi_ibg::pi_ibg (ptr< pi_pi > a__pi_pi__psp,
06948                 ptr< pi_pi > a__pi_pi__nsp,
06949                 ulint a__pi_pi__level,
06950                 ptr< pi_preg > a__pi_conditional_branch__condition,
06951                 ptr< pi_preg > a__pi_cb_single_address_target__destination)
06952         : pi_cb_single_address_target(a__pi_pi__psp,
06953                 a__pi_pi__nsp,
06954                 a__pi_pi__level,
06955                 a__pi_conditional_branch__condition,
06956                 a__pi_cb_single_address_target__destination)
06957 {}
06958 
06959 ptr< object::reflection_list > pi_ibg::reflection_get() const
06960 {
06961         if (!reflection) {
06962                 typedef class_reflection::field_metadata md;
06963                 typedef class_reflection::field_metadata_list mdlist;
06964                 ptr<mdlist> mdl = mdlist::create();
06965                 reflection = reflection_list::create( pi_cb_single_address_target::reflection_get() );
06966                 reflection->push_back( class_reflection::create( "pi_ibg", mdl ) );
06967         }
06968         return reflection;
06969 }
06970 
06971 ptr< object::field_list_list > pi_ibg::field_values_get() const
06972 {
06973         ptr < field_list_list > result = pi_cb_single_address_target::field_values_get();
06974         return result;
06975 }
06976 
06977 
06978 /*!
06979    Marking routine is used for garbage collection.
06980    \author lsg
06981  */
06982 void pi_ibg::gc_mark()
06983 {
06984         pi_cb_single_address_target::gc_mark();
06985 }
06986 
06987 // End of class pi_ibg.
06988 
06989 // ------------- Class pi_ibl follows. -------------
06990 
06991 ptr< ::lestes::backend_v2::structs::pi_operands > pi_ibl::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
06992 {
06993         return v->visit_pi_ibl( this );
06994 }
06995 
06996 ulint pi_ibl::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
06997 {
06998         return v->visit_pi_ibl( this );
06999 }
07000 
07001 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_ibl::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
07002 {
07003         return v->visit_pi_ibl( this );
07004 }
07005 
07006 /*!
07007    This factory method for class pi_ibl takes values of all fields as arguments.
07008    \author lsg
07009  */
07010 ptr< pi_ibl > pi_ibl::create(ptr< pi_pi > a__pi_pi__psp,
07011                 ptr< pi_pi > a__pi_pi__nsp,
07012                 ulint a__pi_pi__level,
07013                 ptr< pi_preg > a__pi_conditional_branch__condition,
07014                 ptr< pi_preg > a__pi_cb_single_address_target__destination)
07015 {
07016         return ptr< pi_ibl > ( new pi_ibl(a__pi_pi__psp,
07017                 a__pi_pi__nsp,
07018                 a__pi_pi__level,
07019                 a__pi_conditional_branch__condition,
07020                 a__pi_cb_single_address_target__destination) );
07021 }
07022 
07023 /*!
07024    Generated constructor for class pi_ibl.
07025    \author lsg
07026  */
07027 pi_ibl::pi_ibl (ptr< pi_pi > a__pi_pi__psp,
07028                 ptr< pi_pi > a__pi_pi__nsp,
07029                 ulint a__pi_pi__level,
07030                 ptr< pi_preg > a__pi_conditional_branch__condition,
07031                 ptr< pi_preg > a__pi_cb_single_address_target__destination)
07032         : pi_cb_single_address_target(a__pi_pi__psp,
07033                 a__pi_pi__nsp,
07034                 a__pi_pi__level,
07035                 a__pi_conditional_branch__condition,
07036                 a__pi_cb_single_address_target__destination)
07037 {}
07038 
07039 ptr< object::reflection_list > pi_ibl::reflection_get() const
07040 {
07041         if (!reflection) {
07042                 typedef class_reflection::field_metadata md;
07043                 typedef class_reflection::field_metadata_list mdlist;
07044                 ptr<mdlist> mdl = mdlist::create();
07045                 reflection = reflection_list::create( pi_cb_single_address_target::reflection_get() );
07046                 reflection->push_back( class_reflection::create( "pi_ibl", mdl ) );
07047         }
07048         return reflection;
07049 }
07050 
07051 ptr< object::field_list_list > pi_ibl::field_values_get() const
07052 {
07053         ptr < field_list_list > result = pi_cb_single_address_target::field_values_get();
07054         return result;
07055 }
07056 
07057 
07058 /*!
07059    Marking routine is used for garbage collection.
07060    \author lsg
07061  */
07062 void pi_ibl::gc_mark()
07063 {
07064         pi_cb_single_address_target::gc_mark();
07065 }
07066 
07067 // End of class pi_ibl.
07068 
07069 // ------------- Class pi_ibe follows. -------------
07070 
07071 ptr< ::lestes::backend_v2::structs::pi_operands > pi_ibe::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
07072 {
07073         return v->visit_pi_ibe( this );
07074 }
07075 
07076 ulint pi_ibe::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
07077 {
07078         return v->visit_pi_ibe( this );
07079 }
07080 
07081 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_ibe::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
07082 {
07083         return v->visit_pi_ibe( this );
07084 }
07085 
07086 /*!
07087    This factory method for class pi_ibe takes values of all fields as arguments.
07088    \author lsg
07089  */
07090 ptr< pi_ibe > pi_ibe::create(ptr< pi_pi > a__pi_pi__psp,
07091                 ptr< pi_pi > a__pi_pi__nsp,
07092                 ulint a__pi_pi__level,
07093                 ptr< pi_preg > a__pi_conditional_branch__condition,
07094                 ptr< pi_preg > a__pi_cb_single_address_target__destination)
07095 {
07096         return ptr< pi_ibe > ( new pi_ibe(a__pi_pi__psp,
07097                 a__pi_pi__nsp,
07098                 a__pi_pi__level,
07099                 a__pi_conditional_branch__condition,
07100                 a__pi_cb_single_address_target__destination) );
07101 }
07102 
07103 /*!
07104    Generated constructor for class pi_ibe.
07105    \author lsg
07106  */
07107 pi_ibe::pi_ibe (ptr< pi_pi > a__pi_pi__psp,
07108                 ptr< pi_pi > a__pi_pi__nsp,
07109                 ulint a__pi_pi__level,
07110                 ptr< pi_preg > a__pi_conditional_branch__condition,
07111                 ptr< pi_preg > a__pi_cb_single_address_target__destination)
07112         : pi_cb_single_address_target(a__pi_pi__psp,
07113                 a__pi_pi__nsp,
07114                 a__pi_pi__level,
07115                 a__pi_conditional_branch__condition,
07116                 a__pi_cb_single_address_target__destination)
07117 {}
07118 
07119 ptr< object::reflection_list > pi_ibe::reflection_get() const
07120 {
07121         if (!reflection) {
07122                 typedef class_reflection::field_metadata md;
07123                 typedef class_reflection::field_metadata_list mdlist;
07124                 ptr<mdlist> mdl = mdlist::create();
07125                 reflection = reflection_list::create( pi_cb_single_address_target::reflection_get() );
07126                 reflection->push_back( class_reflection::create( "pi_ibe", mdl ) );
07127         }
07128         return reflection;
07129 }
07130 
07131 ptr< object::field_list_list > pi_ibe::field_values_get() const
07132 {
07133         ptr < field_list_list > result = pi_cb_single_address_target::field_values_get();
07134         return result;
07135 }
07136 
07137 
07138 /*!
07139    Marking routine is used for garbage collection.
07140    \author lsg
07141  */
07142 void pi_ibe::gc_mark()
07143 {
07144         pi_cb_single_address_target::gc_mark();
07145 }
07146 
07147 // End of class pi_ibe.
07148 
07149 // ------------- Class pi_ibng follows. -------------
07150 
07151 ptr< ::lestes::backend_v2::structs::pi_operands > pi_ibng::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
07152 {
07153         return v->visit_pi_ibng( this );
07154 }
07155 
07156 ulint pi_ibng::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
07157 {
07158         return v->visit_pi_ibng( this );
07159 }
07160 
07161 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_ibng::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
07162 {
07163         return v->visit_pi_ibng( this );
07164 }
07165 
07166 /*!
07167    This factory method for class pi_ibng takes values of all fields as arguments.
07168    \author lsg
07169  */
07170 ptr< pi_ibng > pi_ibng::create(ptr< pi_pi > a__pi_pi__psp,
07171                 ptr< pi_pi > a__pi_pi__nsp,
07172                 ulint a__pi_pi__level,
07173                 ptr< pi_preg > a__pi_conditional_branch__condition,
07174                 ptr< pi_preg > a__pi_cb_single_address_target__destination)
07175 {
07176         return ptr< pi_ibng > ( new pi_ibng(a__pi_pi__psp,
07177                 a__pi_pi__nsp,
07178                 a__pi_pi__level,
07179                 a__pi_conditional_branch__condition,
07180                 a__pi_cb_single_address_target__destination) );
07181 }
07182 
07183 /*!
07184    Generated constructor for class pi_ibng.
07185    \author lsg
07186  */
07187 pi_ibng::pi_ibng (ptr< pi_pi > a__pi_pi__psp,
07188                 ptr< pi_pi > a__pi_pi__nsp,
07189                 ulint a__pi_pi__level,
07190                 ptr< pi_preg > a__pi_conditional_branch__condition,
07191                 ptr< pi_preg > a__pi_cb_single_address_target__destination)
07192         : pi_cb_single_address_target(a__pi_pi__psp,
07193                 a__pi_pi__nsp,
07194                 a__pi_pi__level,
07195                 a__pi_conditional_branch__condition,
07196                 a__pi_cb_single_address_target__destination)
07197 {}
07198 
07199 ptr< object::reflection_list > pi_ibng::reflection_get() const
07200 {
07201         if (!reflection) {
07202                 typedef class_reflection::field_metadata md;
07203                 typedef class_reflection::field_metadata_list mdlist;
07204                 ptr<mdlist> mdl = mdlist::create();
07205                 reflection = reflection_list::create( pi_cb_single_address_target::reflection_get() );
07206                 reflection->push_back( class_reflection::create( "pi_ibng", mdl ) );
07207         }
07208         return reflection;
07209 }
07210 
07211 ptr< object::field_list_list > pi_ibng::field_values_get() const
07212 {
07213         ptr < field_list_list > result = pi_cb_single_address_target::field_values_get();
07214         return result;
07215 }
07216 
07217 
07218 /*!
07219    Marking routine is used for garbage collection.
07220    \author lsg
07221  */
07222 void pi_ibng::gc_mark()
07223 {
07224         pi_cb_single_address_target::gc_mark();
07225 }
07226 
07227 // End of class pi_ibng.
07228 
07229 // ------------- Class pi_ibnl follows. -------------
07230 
07231 ptr< ::lestes::backend_v2::structs::pi_operands > pi_ibnl::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
07232 {
07233         return v->visit_pi_ibnl( this );
07234 }
07235 
07236 ulint pi_ibnl::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
07237 {
07238         return v->visit_pi_ibnl( this );
07239 }
07240 
07241 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_ibnl::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
07242 {
07243         return v->visit_pi_ibnl( this );
07244 }
07245 
07246 /*!
07247    This factory method for class pi_ibnl takes values of all fields as arguments.
07248    \author lsg
07249  */
07250 ptr< pi_ibnl > pi_ibnl::create(ptr< pi_pi > a__pi_pi__psp,
07251                 ptr< pi_pi > a__pi_pi__nsp,
07252                 ulint a__pi_pi__level,
07253                 ptr< pi_preg > a__pi_conditional_branch__condition,
07254                 ptr< pi_preg > a__pi_cb_single_address_target__destination)
07255 {
07256         return ptr< pi_ibnl > ( new pi_ibnl(a__pi_pi__psp,
07257                 a__pi_pi__nsp,
07258                 a__pi_pi__level,
07259                 a__pi_conditional_branch__condition,
07260                 a__pi_cb_single_address_target__destination) );
07261 }
07262 
07263 /*!
07264    Generated constructor for class pi_ibnl.
07265    \author lsg
07266  */
07267 pi_ibnl::pi_ibnl (ptr< pi_pi > a__pi_pi__psp,
07268                 ptr< pi_pi > a__pi_pi__nsp,
07269                 ulint a__pi_pi__level,
07270                 ptr< pi_preg > a__pi_conditional_branch__condition,
07271                 ptr< pi_preg > a__pi_cb_single_address_target__destination)
07272         : pi_cb_single_address_target(a__pi_pi__psp,
07273                 a__pi_pi__nsp,
07274                 a__pi_pi__level,
07275                 a__pi_conditional_branch__condition,
07276                 a__pi_cb_single_address_target__destination)
07277 {}
07278 
07279 ptr< object::reflection_list > pi_ibnl::reflection_get() const
07280 {
07281         if (!reflection) {
07282                 typedef class_reflection::field_metadata md;
07283                 typedef class_reflection::field_metadata_list mdlist;
07284                 ptr<mdlist> mdl = mdlist::create();
07285                 reflection = reflection_list::create( pi_cb_single_address_target::reflection_get() );
07286                 reflection->push_back( class_reflection::create( "pi_ibnl", mdl ) );
07287         }
07288         return reflection;
07289 }
07290 
07291 ptr< object::field_list_list > pi_ibnl::field_values_get() const
07292 {
07293         ptr < field_list_list > result = pi_cb_single_address_target::field_values_get();
07294         return result;
07295 }
07296 
07297 
07298 /*!
07299    Marking routine is used for garbage collection.
07300    \author lsg
07301  */
07302 void pi_ibnl::gc_mark()
07303 {
07304         pi_cb_single_address_target::gc_mark();
07305 }
07306 
07307 // End of class pi_ibnl.
07308 
07309 // ------------- Class pi_ibne follows. -------------
07310 
07311 ptr< ::lestes::backend_v2::structs::pi_operands > pi_ibne::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
07312 {
07313         return v->visit_pi_ibne( this );
07314 }
07315 
07316 ulint pi_ibne::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
07317 {
07318         return v->visit_pi_ibne( this );
07319 }
07320 
07321 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_ibne::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
07322 {
07323         return v->visit_pi_ibne( this );
07324 }
07325 
07326 /*!
07327    This factory method for class pi_ibne takes values of all fields as arguments.
07328    \author lsg
07329  */
07330 ptr< pi_ibne > pi_ibne::create(ptr< pi_pi > a__pi_pi__psp,
07331                 ptr< pi_pi > a__pi_pi__nsp,
07332                 ulint a__pi_pi__level,
07333                 ptr< pi_preg > a__pi_conditional_branch__condition,
07334                 ptr< pi_preg > a__pi_cb_single_address_target__destination)
07335 {
07336         return ptr< pi_ibne > ( new pi_ibne(a__pi_pi__psp,
07337                 a__pi_pi__nsp,
07338                 a__pi_pi__level,
07339                 a__pi_conditional_branch__condition,
07340                 a__pi_cb_single_address_target__destination) );
07341 }
07342 
07343 /*!
07344    Generated constructor for class pi_ibne.
07345    \author lsg
07346  */
07347 pi_ibne::pi_ibne (ptr< pi_pi > a__pi_pi__psp,
07348                 ptr< pi_pi > a__pi_pi__nsp,
07349                 ulint a__pi_pi__level,
07350                 ptr< pi_preg > a__pi_conditional_branch__condition,
07351                 ptr< pi_preg > a__pi_cb_single_address_target__destination)
07352         : pi_cb_single_address_target(a__pi_pi__psp,
07353                 a__pi_pi__nsp,
07354                 a__pi_pi__level,
07355                 a__pi_conditional_branch__condition,
07356                 a__pi_cb_single_address_target__destination)
07357 {}
07358 
07359 ptr< object::reflection_list > pi_ibne::reflection_get() const
07360 {
07361         if (!reflection) {
07362                 typedef class_reflection::field_metadata md;
07363                 typedef class_reflection::field_metadata_list mdlist;
07364                 ptr<mdlist> mdl = mdlist::create();
07365                 reflection = reflection_list::create( pi_cb_single_address_target::reflection_get() );
07366                 reflection->push_back( class_reflection::create( "pi_ibne", mdl ) );
07367         }
07368         return reflection;
07369 }
07370 
07371 ptr< object::field_list_list > pi_ibne::field_values_get() const
07372 {
07373         ptr < field_list_list > result = pi_cb_single_address_target::field_values_get();
07374         return result;
07375 }
07376 
07377 
07378 /*!
07379    Marking routine is used for garbage collection.
07380    \author lsg
07381  */
07382 void pi_ibne::gc_mark()
07383 {
07384         pi_cb_single_address_target::gc_mark();
07385 }
07386 
07387 // End of class pi_ibne.
07388 
07389 // ------------- Class pi_leave follows. -------------
07390 
07391 /*!
07392    \returns The value of pi_leave::function.
07393    \author lsg
07394  */
07395 ptr< ::lestes::lang::cplus::sem::ss_function_declaration > pi_leave::function_get() const
07396 {
07397         return function;
07398 }
07399 
07400 /*!
07401    \param[in] x The new value to set pi_leave::function to.
07402    \author lsg
07403  */
07404 void pi_leave::function_set(const ptr< ::lestes::lang::cplus::sem::ss_function_declaration > & x)
07405 {
07406         pi_leave::function = x;
07407 }
07408 
07409 ptr< ::lestes::backend_v2::structs::pi_operands > pi_leave::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
07410 {
07411         return v->visit_pi_leave( this );
07412 }
07413 
07414 ulint pi_leave::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
07415 {
07416         return v->visit_pi_leave( this );
07417 }
07418 
07419 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_leave::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
07420 {
07421         return v->visit_pi_leave( this );
07422 }
07423 
07424 /*!
07425    This factory method for class pi_leave takes values of all fields as arguments.
07426    \author lsg
07427  */
07428 ptr< pi_leave > pi_leave::create(ptr< pi_pi > a__pi_pi__psp,
07429                 ptr< pi_pi > a__pi_pi__nsp,
07430                 ulint a__pi_pi__level,
07431                 ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__pi_leave__function)
07432 {
07433         return ptr< pi_leave > ( new pi_leave(a__pi_pi__psp,
07434                 a__pi_pi__nsp,
07435                 a__pi_pi__level,
07436                 a__pi_leave__function) );
07437 }
07438 
07439 /*!
07440    Generated constructor for class pi_leave.
07441    \author lsg
07442  */
07443 pi_leave::pi_leave (ptr< pi_pi > a__pi_pi__psp,
07444                 ptr< pi_pi > a__pi_pi__nsp,
07445                 ulint a__pi_pi__level,
07446                 ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__pi_leave__function)
07447         : pi_pi(a__pi_pi__psp,
07448                 a__pi_pi__nsp,
07449                 a__pi_pi__level), function(checked(a__pi_leave__function))
07450 {}
07451 
07452 ptr< object::reflection_list > pi_leave::reflection_get() const
07453 {
07454         if (!reflection) {
07455                 typedef class_reflection::field_metadata md;
07456                 typedef class_reflection::field_metadata_list mdlist;
07457                 ptr<mdlist> mdl = mdlist::create();
07458                 mdl->push_back( md::create( "function", "ss_function_declaration" ) );
07459                 reflection = reflection_list::create( pi_pi::reflection_get() );
07460                 reflection->push_back( class_reflection::create( "pi_leave", mdl ) );
07461         }
07462         return reflection;
07463 }
07464 
07465 ptr< object::field_list_list > pi_leave::field_values_get() const
07466 {
07467         ptr < field_list_list > result = pi_pi::field_values_get();
07468         result->push_back( value_list::create() );
07469         result->back()->push_back( this->function );
07470         return result;
07471 }
07472 
07473 
07474 /*!
07475    Marking routine is used for garbage collection.
07476    \author lsg
07477  */
07478 void pi_leave::gc_mark()
07479 {
07480         pi_pi::gc_mark();
07481 }
07482 
07483 // End of class pi_leave.
07484 
07485 // ------------- Class pi_sbg follows. -------------
07486 
07487 ptr< ::lestes::backend_v2::structs::pi_operands > pi_sbg::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
07488 {
07489         return v->visit_pi_sbg( this );
07490 }
07491 
07492 ulint pi_sbg::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
07493 {
07494         return v->visit_pi_sbg( this );
07495 }
07496 
07497 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_sbg::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
07498 {
07499         return v->visit_pi_sbg( this );
07500 }
07501 
07502 /*!
07503    This factory method for class pi_sbg takes values of all fields as arguments.
07504    \author lsg
07505  */
07506 ptr< pi_sbg > pi_sbg::create(ptr< pi_pi > a__pi_pi__psp,
07507                 ptr< pi_pi > a__pi_pi__nsp,
07508                 ulint a__pi_pi__level,
07509                 ptr< pi_non_mem > a__pi_tpi__left,
07510                 ptr< pi_non_mem > a__pi_tpi__right,
07511                 ptr< pi_preg > a__pi_tpi__destination,
07512                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type1,
07513                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type2)
07514 {
07515         return ptr< pi_sbg > ( new pi_sbg(a__pi_pi__psp,
07516                 a__pi_pi__nsp,
07517                 a__pi_pi__level,
07518                 a__pi_tpi__left,
07519                 a__pi_tpi__right,
07520                 a__pi_tpi__destination,
07521                 a__pi_tdtpi__type1,
07522                 a__pi_tdtpi__type2) );
07523 }
07524 
07525 /*!
07526    Generated constructor for class pi_sbg.
07527    \author lsg
07528  */
07529 pi_sbg::pi_sbg (ptr< pi_pi > a__pi_pi__psp,
07530                 ptr< pi_pi > a__pi_pi__nsp,
07531                 ulint a__pi_pi__level,
07532                 ptr< pi_non_mem > a__pi_tpi__left,
07533                 ptr< pi_non_mem > a__pi_tpi__right,
07534                 ptr< pi_preg > a__pi_tpi__destination,
07535                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type1,
07536                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type2)
07537         : pi_tdtpi(a__pi_pi__psp,
07538                 a__pi_pi__nsp,
07539                 a__pi_pi__level,
07540                 a__pi_tpi__left,
07541                 a__pi_tpi__right,
07542                 a__pi_tpi__destination,
07543                 a__pi_tdtpi__type1,
07544                 a__pi_tdtpi__type2)
07545 {}
07546 
07547 ptr< object::reflection_list > pi_sbg::reflection_get() const
07548 {
07549         if (!reflection) {
07550                 typedef class_reflection::field_metadata md;
07551                 typedef class_reflection::field_metadata_list mdlist;
07552                 ptr<mdlist> mdl = mdlist::create();
07553                 reflection = reflection_list::create( pi_tdtpi::reflection_get() );
07554                 reflection->push_back( class_reflection::create( "pi_sbg", mdl ) );
07555         }
07556         return reflection;
07557 }
07558 
07559 ptr< object::field_list_list > pi_sbg::field_values_get() const
07560 {
07561         ptr < field_list_list > result = pi_tdtpi::field_values_get();
07562         return result;
07563 }
07564 
07565 
07566 /*!
07567    Marking routine is used for garbage collection.
07568    \author lsg
07569  */
07570 void pi_sbg::gc_mark()
07571 {
07572         pi_tdtpi::gc_mark();
07573 }
07574 
07575 // End of class pi_sbg.
07576 
07577 // ------------- Class pi_sbl follows. -------------
07578 
07579 ptr< ::lestes::backend_v2::structs::pi_operands > pi_sbl::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
07580 {
07581         return v->visit_pi_sbl( this );
07582 }
07583 
07584 ulint pi_sbl::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
07585 {
07586         return v->visit_pi_sbl( this );
07587 }
07588 
07589 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_sbl::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
07590 {
07591         return v->visit_pi_sbl( this );
07592 }
07593 
07594 /*!
07595    This factory method for class pi_sbl takes values of all fields as arguments.
07596    \author lsg
07597  */
07598 ptr< pi_sbl > pi_sbl::create(ptr< pi_pi > a__pi_pi__psp,
07599                 ptr< pi_pi > a__pi_pi__nsp,
07600                 ulint a__pi_pi__level,
07601                 ptr< pi_non_mem > a__pi_tpi__left,
07602                 ptr< pi_non_mem > a__pi_tpi__right,
07603                 ptr< pi_preg > a__pi_tpi__destination,
07604                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type1,
07605                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type2)
07606 {
07607         return ptr< pi_sbl > ( new pi_sbl(a__pi_pi__psp,
07608                 a__pi_pi__nsp,
07609                 a__pi_pi__level,
07610                 a__pi_tpi__left,
07611                 a__pi_tpi__right,
07612                 a__pi_tpi__destination,
07613                 a__pi_tdtpi__type1,
07614                 a__pi_tdtpi__type2) );
07615 }
07616 
07617 /*!
07618    Generated constructor for class pi_sbl.
07619    \author lsg
07620  */
07621 pi_sbl::pi_sbl (ptr< pi_pi > a__pi_pi__psp,
07622                 ptr< pi_pi > a__pi_pi__nsp,
07623                 ulint a__pi_pi__level,
07624                 ptr< pi_non_mem > a__pi_tpi__left,
07625                 ptr< pi_non_mem > a__pi_tpi__right,
07626                 ptr< pi_preg > a__pi_tpi__destination,
07627                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type1,
07628                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type2)
07629         : pi_tdtpi(a__pi_pi__psp,
07630                 a__pi_pi__nsp,
07631                 a__pi_pi__level,
07632                 a__pi_tpi__left,
07633                 a__pi_tpi__right,
07634                 a__pi_tpi__destination,
07635                 a__pi_tdtpi__type1,
07636                 a__pi_tdtpi__type2)
07637 {}
07638 
07639 ptr< object::reflection_list > pi_sbl::reflection_get() const
07640 {
07641         if (!reflection) {
07642                 typedef class_reflection::field_metadata md;
07643                 typedef class_reflection::field_metadata_list mdlist;
07644                 ptr<mdlist> mdl = mdlist::create();
07645                 reflection = reflection_list::create( pi_tdtpi::reflection_get() );
07646                 reflection->push_back( class_reflection::create( "pi_sbl", mdl ) );
07647         }
07648         return reflection;
07649 }
07650 
07651 ptr< object::field_list_list > pi_sbl::field_values_get() const
07652 {
07653         ptr < field_list_list > result = pi_tdtpi::field_values_get();
07654         return result;
07655 }
07656 
07657 
07658 /*!
07659    Marking routine is used for garbage collection.
07660    \author lsg
07661  */
07662 void pi_sbl::gc_mark()
07663 {
07664         pi_tdtpi::gc_mark();
07665 }
07666 
07667 // End of class pi_sbl.
07668 
07669 // ------------- Class pi_sbe follows. -------------
07670 
07671 ptr< ::lestes::backend_v2::structs::pi_operands > pi_sbe::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
07672 {
07673         return v->visit_pi_sbe( this );
07674 }
07675 
07676 ulint pi_sbe::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
07677 {
07678         return v->visit_pi_sbe( this );
07679 }
07680 
07681 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_sbe::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
07682 {
07683         return v->visit_pi_sbe( this );
07684 }
07685 
07686 /*!
07687    This factory method for class pi_sbe takes values of all fields as arguments.
07688    \author lsg
07689  */
07690 ptr< pi_sbe > pi_sbe::create(ptr< pi_pi > a__pi_pi__psp,
07691                 ptr< pi_pi > a__pi_pi__nsp,
07692                 ulint a__pi_pi__level,
07693                 ptr< pi_non_mem > a__pi_tpi__left,
07694                 ptr< pi_non_mem > a__pi_tpi__right,
07695                 ptr< pi_preg > a__pi_tpi__destination,
07696                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type1,
07697                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type2)
07698 {
07699         return ptr< pi_sbe > ( new pi_sbe(a__pi_pi__psp,
07700                 a__pi_pi__nsp,
07701                 a__pi_pi__level,
07702                 a__pi_tpi__left,
07703                 a__pi_tpi__right,
07704                 a__pi_tpi__destination,
07705                 a__pi_tdtpi__type1,
07706                 a__pi_tdtpi__type2) );
07707 }
07708 
07709 /*!
07710    Generated constructor for class pi_sbe.
07711    \author lsg
07712  */
07713 pi_sbe::pi_sbe (ptr< pi_pi > a__pi_pi__psp,
07714                 ptr< pi_pi > a__pi_pi__nsp,
07715                 ulint a__pi_pi__level,
07716                 ptr< pi_non_mem > a__pi_tpi__left,
07717                 ptr< pi_non_mem > a__pi_tpi__right,
07718                 ptr< pi_preg > a__pi_tpi__destination,
07719                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type1,
07720                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type2)
07721         : pi_tdtpi(a__pi_pi__psp,
07722                 a__pi_pi__nsp,
07723                 a__pi_pi__level,
07724                 a__pi_tpi__left,
07725                 a__pi_tpi__right,
07726                 a__pi_tpi__destination,
07727                 a__pi_tdtpi__type1,
07728                 a__pi_tdtpi__type2)
07729 {}
07730 
07731 ptr< object::reflection_list > pi_sbe::reflection_get() const
07732 {
07733         if (!reflection) {
07734                 typedef class_reflection::field_metadata md;
07735                 typedef class_reflection::field_metadata_list mdlist;
07736                 ptr<mdlist> mdl = mdlist::create();
07737                 reflection = reflection_list::create( pi_tdtpi::reflection_get() );
07738                 reflection->push_back( class_reflection::create( "pi_sbe", mdl ) );
07739         }
07740         return reflection;
07741 }
07742 
07743 ptr< object::field_list_list > pi_sbe::field_values_get() const
07744 {
07745         ptr < field_list_list > result = pi_tdtpi::field_values_get();
07746         return result;
07747 }
07748 
07749 
07750 /*!
07751    Marking routine is used for garbage collection.
07752    \author lsg
07753  */
07754 void pi_sbe::gc_mark()
07755 {
07756         pi_tdtpi::gc_mark();
07757 }
07758 
07759 // End of class pi_sbe.
07760 
07761 // ------------- Class pi_sbng follows. -------------
07762 
07763 ptr< ::lestes::backend_v2::structs::pi_operands > pi_sbng::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
07764 {
07765         return v->visit_pi_sbng( this );
07766 }
07767 
07768 ulint pi_sbng::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
07769 {
07770         return v->visit_pi_sbng( this );
07771 }
07772 
07773 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_sbng::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
07774 {
07775         return v->visit_pi_sbng( this );
07776 }
07777 
07778 /*!
07779    This factory method for class pi_sbng takes values of all fields as arguments.
07780    \author lsg
07781  */
07782 ptr< pi_sbng > pi_sbng::create(ptr< pi_pi > a__pi_pi__psp,
07783                 ptr< pi_pi > a__pi_pi__nsp,
07784                 ulint a__pi_pi__level,
07785                 ptr< pi_non_mem > a__pi_tpi__left,
07786                 ptr< pi_non_mem > a__pi_tpi__right,
07787                 ptr< pi_preg > a__pi_tpi__destination,
07788                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type1,
07789                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type2)
07790 {
07791         return ptr< pi_sbng > ( new pi_sbng(a__pi_pi__psp,
07792                 a__pi_pi__nsp,
07793                 a__pi_pi__level,
07794                 a__pi_tpi__left,
07795                 a__pi_tpi__right,
07796                 a__pi_tpi__destination,
07797                 a__pi_tdtpi__type1,
07798                 a__pi_tdtpi__type2) );
07799 }
07800 
07801 /*!
07802    Generated constructor for class pi_sbng.
07803    \author lsg
07804  */
07805 pi_sbng::pi_sbng (ptr< pi_pi > a__pi_pi__psp,
07806                 ptr< pi_pi > a__pi_pi__nsp,
07807                 ulint a__pi_pi__level,
07808                 ptr< pi_non_mem > a__pi_tpi__left,
07809                 ptr< pi_non_mem > a__pi_tpi__right,
07810                 ptr< pi_preg > a__pi_tpi__destination,
07811                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type1,
07812                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type2)
07813         : pi_tdtpi(a__pi_pi__psp,
07814                 a__pi_pi__nsp,
07815                 a__pi_pi__level,
07816                 a__pi_tpi__left,
07817                 a__pi_tpi__right,
07818                 a__pi_tpi__destination,
07819                 a__pi_tdtpi__type1,
07820                 a__pi_tdtpi__type2)
07821 {}
07822 
07823 ptr< object::reflection_list > pi_sbng::reflection_get() const
07824 {
07825         if (!reflection) {
07826                 typedef class_reflection::field_metadata md;
07827                 typedef class_reflection::field_metadata_list mdlist;
07828                 ptr<mdlist> mdl = mdlist::create();
07829                 reflection = reflection_list::create( pi_tdtpi::reflection_get() );
07830                 reflection->push_back( class_reflection::create( "pi_sbng", mdl ) );
07831         }
07832         return reflection;
07833 }
07834 
07835 ptr< object::field_list_list > pi_sbng::field_values_get() const
07836 {
07837         ptr < field_list_list > result = pi_tdtpi::field_values_get();
07838         return result;
07839 }
07840 
07841 
07842 /*!
07843    Marking routine is used for garbage collection.
07844    \author lsg
07845  */
07846 void pi_sbng::gc_mark()
07847 {
07848         pi_tdtpi::gc_mark();
07849 }
07850 
07851 // End of class pi_sbng.
07852 
07853 // ------------- Class pi_sbnl follows. -------------
07854 
07855 ptr< ::lestes::backend_v2::structs::pi_operands > pi_sbnl::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
07856 {
07857         return v->visit_pi_sbnl( this );
07858 }
07859 
07860 ulint pi_sbnl::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
07861 {
07862         return v->visit_pi_sbnl( this );
07863 }
07864 
07865 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_sbnl::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
07866 {
07867         return v->visit_pi_sbnl( this );
07868 }
07869 
07870 /*!
07871    This factory method for class pi_sbnl takes values of all fields as arguments.
07872    \author lsg
07873  */
07874 ptr< pi_sbnl > pi_sbnl::create(ptr< pi_pi > a__pi_pi__psp,
07875                 ptr< pi_pi > a__pi_pi__nsp,
07876                 ulint a__pi_pi__level,
07877                 ptr< pi_non_mem > a__pi_tpi__left,
07878                 ptr< pi_non_mem > a__pi_tpi__right,
07879                 ptr< pi_preg > a__pi_tpi__destination,
07880                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type1,
07881                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type2)
07882 {
07883         return ptr< pi_sbnl > ( new pi_sbnl(a__pi_pi__psp,
07884                 a__pi_pi__nsp,
07885                 a__pi_pi__level,
07886                 a__pi_tpi__left,
07887                 a__pi_tpi__right,
07888                 a__pi_tpi__destination,
07889                 a__pi_tdtpi__type1,
07890                 a__pi_tdtpi__type2) );
07891 }
07892 
07893 /*!
07894    Generated constructor for class pi_sbnl.
07895    \author lsg
07896  */
07897 pi_sbnl::pi_sbnl (ptr< pi_pi > a__pi_pi__psp,
07898                 ptr< pi_pi > a__pi_pi__nsp,
07899                 ulint a__pi_pi__level,
07900                 ptr< pi_non_mem > a__pi_tpi__left,
07901                 ptr< pi_non_mem > a__pi_tpi__right,
07902                 ptr< pi_preg > a__pi_tpi__destination,
07903                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type1,
07904                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type2)
07905         : pi_tdtpi(a__pi_pi__psp,
07906                 a__pi_pi__nsp,
07907                 a__pi_pi__level,
07908                 a__pi_tpi__left,
07909                 a__pi_tpi__right,
07910                 a__pi_tpi__destination,
07911                 a__pi_tdtpi__type1,
07912                 a__pi_tdtpi__type2)
07913 {}
07914 
07915 ptr< object::reflection_list > pi_sbnl::reflection_get() const
07916 {
07917         if (!reflection) {
07918                 typedef class_reflection::field_metadata md;
07919                 typedef class_reflection::field_metadata_list mdlist;
07920                 ptr<mdlist> mdl = mdlist::create();
07921                 reflection = reflection_list::create( pi_tdtpi::reflection_get() );
07922                 reflection->push_back( class_reflection::create( "pi_sbnl", mdl ) );
07923         }
07924         return reflection;
07925 }
07926 
07927 ptr< object::field_list_list > pi_sbnl::field_values_get() const
07928 {
07929         ptr < field_list_list > result = pi_tdtpi::field_values_get();
07930         return result;
07931 }
07932 
07933 
07934 /*!
07935    Marking routine is used for garbage collection.
07936    \author lsg
07937  */
07938 void pi_sbnl::gc_mark()
07939 {
07940         pi_tdtpi::gc_mark();
07941 }
07942 
07943 // End of class pi_sbnl.
07944 
07945 // ------------- Class pi_sbne follows. -------------
07946 
07947 ptr< ::lestes::backend_v2::structs::pi_operands > pi_sbne::accept_visitor_pi_pi2pi_operands_gen_base( ptr< visitor_pi_pi2pi_operands_gen_base > v )
07948 {
07949         return v->visit_pi_sbne( this );
07950 }
07951 
07952 ulint pi_sbne::accept_visitor_pi_pi2ulint_gen_base( ptr< visitor_pi_pi2ulint_gen_base > v )
07953 {
07954         return v->visit_pi_sbne( this );
07955 }
07956 
07957 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > pi_sbne::accept_visitor_pi_pi2ge_pi_gen_base( ptr< visitor_pi_pi2ge_pi_gen_base > v )
07958 {
07959         return v->visit_pi_sbne( this );
07960 }
07961 
07962 /*!
07963    This factory method for class pi_sbne takes values of all fields as arguments.
07964    \author lsg
07965  */
07966 ptr< pi_sbne > pi_sbne::create(ptr< pi_pi > a__pi_pi__psp,
07967                 ptr< pi_pi > a__pi_pi__nsp,
07968                 ulint a__pi_pi__level,
07969                 ptr< pi_non_mem > a__pi_tpi__left,
07970                 ptr< pi_non_mem > a__pi_tpi__right,
07971                 ptr< pi_preg > a__pi_tpi__destination,
07972                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type1,
07973                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type2)
07974 {
07975         return ptr< pi_sbne > ( new pi_sbne(a__pi_pi__psp,
07976                 a__pi_pi__nsp,
07977                 a__pi_pi__level,
07978                 a__pi_tpi__left,
07979                 a__pi_tpi__right,
07980                 a__pi_tpi__destination,
07981                 a__pi_tdtpi__type1,
07982                 a__pi_tdtpi__type2) );
07983 }
07984 
07985 /*!
07986    Generated constructor for class pi_sbne.
07987    \author lsg
07988  */
07989 pi_sbne::pi_sbne (ptr< pi_pi > a__pi_pi__psp,
07990                 ptr< pi_pi > a__pi_pi__nsp,
07991                 ulint a__pi_pi__level,
07992                 ptr< pi_non_mem > a__pi_tpi__left,
07993                 ptr< pi_non_mem > a__pi_tpi__right,
07994                 ptr< pi_preg > a__pi_tpi__destination,
07995                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type1,
07996                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_tdtpi__type2)
07997         : pi_tdtpi(a__pi_pi__psp,
07998                 a__pi_pi__nsp,
07999                 a__pi_pi__level,
08000                 a__pi_tpi__left,
08001                 a__pi_tpi__right,
08002                 a__pi_tpi__destination,
08003                 a__pi_tdtpi__type1,
08004                 a__pi_tdtpi__type2)
08005 {}
08006 
08007 ptr< object::reflection_list > pi_sbne::reflection_get() const
08008 {
08009         if (!reflection) {
08010                 typedef class_reflection::field_metadata md;
08011                 typedef class_reflection::field_metadata_list mdlist;
08012                 ptr<mdlist> mdl = mdlist::create();
08013                 reflection = reflection_list::create( pi_tdtpi::reflection_get() );
08014                 reflection->push_back( class_reflection::create( "pi_sbne", mdl ) );
08015         }
08016         return reflection;
08017 }
08018 
08019 ptr< object::field_list_list > pi_sbne::field_values_get() const
08020 {
08021         ptr < field_list_list > result = pi_tdtpi::field_values_get();
08022         return result;
08023 }
08024 
08025 
08026 /*!
08027    Marking routine is used for garbage collection.
08028    \author lsg
08029  */
08030 void pi_sbne::gc_mark()
08031 {
08032         pi_tdtpi::gc_mark();
08033 }
08034 
08035 // End of class pi_sbne.
08036 
08037 // ------------- Class pi_operand follows. -------------
08038 
08039 /*!
08040    \returns The value of pi_operand::origin.
08041    \author lsg
08042  */
08043 ptr< pi_pi > pi_operand::origin_get() const
08044 {
08045         return origin;
08046 }
08047 
08048 /*!
08049    \param[in] x The new value to set pi_operand::origin to.
08050    \author lsg
08051  */
08052 void pi_operand::origin_set(const ptr< pi_pi > & x)
08053 {
08054         pi_operand::origin = x;
08055 }
08056 
08057 /*!
08058    \returns The value of pi_operand::type.
08059    \author lsg
08060  */
08061 ptr< ::lestes::md::types::tm_data_type_base > pi_operand::type_get() const
08062 {
08063         return type;
08064 }
08065 
08066 /*!
08067    \param[in] x The new value to set pi_operand::type to.
08068    \author lsg
08069  */
08070 void pi_operand::type_set(const ptr< ::lestes::md::types::tm_data_type_base > & x)
08071 {
08072         pi_operand::type = x;
08073 }
08074 
08075 /*!
08076    Generated constructor for class pi_operand.
08077    \author lsg
08078  */
08079 pi_operand::pi_operand (ptr< pi_pi > a__pi_operand__origin,
08080                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_operand__type)
08081         : ::lestes::intercode::pi_base(), origin(a__pi_operand__origin), type(checked(a__pi_operand__type))
08082 {}
08083 
08084 ptr< object::reflection_list > pi_operand::reflection_get() const
08085 {
08086         if (!reflection) {
08087                 typedef class_reflection::field_metadata md;
08088                 typedef class_reflection::field_metadata_list mdlist;
08089                 ptr<mdlist> mdl = mdlist::create();
08090                 mdl->push_back( md::create( "origin", "pi_pi" ) );
08091                 mdl->push_back( md::create( "type", "tm_data_type_base" ) );
08092                 reflection = reflection_list::create( ::lestes::intercode::pi_base::reflection_get() );
08093                 reflection->push_back( class_reflection::create( "pi_operand", mdl ) );
08094         }
08095         return reflection;
08096 }
08097 
08098 ptr< object::field_list_list > pi_operand::field_values_get() const
08099 {
08100         ptr < field_list_list > result = ::lestes::intercode::pi_base::field_values_get();
08101         result->push_back( value_list::create() );
08102         result->back()->push_back( this->origin );
08103         result->push_back( value_list::create() );
08104         result->back()->push_back( this->type );
08105         return result;
08106 }
08107 
08108 
08109 /*!
08110    Marking routine is used for garbage collection.
08111    \author lsg
08112  */
08113 void pi_operand::gc_mark()
08114 {
08115 	::lestes::intercode::pi_base::gc_mark();
08116 }
08117 
08118 // End of class pi_operand.
08119 
08120 // ------------- Class pi_non_mem follows. -------------
08121 
08122 /*!
08123    Generated constructor for class pi_non_mem.
08124    \author lsg
08125  */
08126 pi_non_mem::pi_non_mem (ptr< pi_pi > a__pi_operand__origin,
08127                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_operand__type)
08128         : pi_operand(a__pi_operand__origin,
08129                 a__pi_operand__type)
08130 {}
08131 
08132 ptr< object::reflection_list > pi_non_mem::reflection_get() const
08133 {
08134         if (!reflection) {
08135                 typedef class_reflection::field_metadata md;
08136                 typedef class_reflection::field_metadata_list mdlist;
08137                 ptr<mdlist> mdl = mdlist::create();
08138                 reflection = reflection_list::create( pi_operand::reflection_get() );
08139                 reflection->push_back( class_reflection::create( "pi_non_mem", mdl ) );
08140         }
08141         return reflection;
08142 }
08143 
08144 ptr< object::field_list_list > pi_non_mem::field_values_get() const
08145 {
08146         ptr < field_list_list > result = pi_operand::field_values_get();
08147         return result;
08148 }
08149 
08150 
08151 /*!
08152    Marking routine is used for garbage collection.
08153    \author lsg
08154  */
08155 void pi_non_mem::gc_mark()
08156 {
08157         pi_operand::gc_mark();
08158 }
08159 
08160 // End of class pi_non_mem.
08161 
08162 // ------------- Class pi_preg follows. -------------
08163 
08164 ptr< ::lestes::backend_v2::intercode::ge_operand > pi_preg::accept_visitor_pi_operand2ge_operand_gen_base( ptr< visitor_pi_operand2ge_operand_gen_base > v )
08165 {
08166         return v->visit_pi_preg( this );
08167 }
08168 
08169 /*!
08170    This factory method for class pi_preg takes values of all fields as arguments.
08171    \author lsg
08172  */
08173 ptr< pi_preg > pi_preg::create(ptr< pi_pi > a__pi_operand__origin,
08174                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_operand__type)
08175 {
08176         return ptr< pi_preg > ( new pi_preg(a__pi_operand__origin,
08177                 a__pi_operand__type) );
08178 }
08179 
08180 /*!
08181    Generated constructor for class pi_preg.
08182    \author lsg
08183  */
08184 pi_preg::pi_preg (ptr< pi_pi > a__pi_operand__origin,
08185                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_operand__type)
08186         : pi_non_mem(a__pi_operand__origin,
08187                 a__pi_operand__type)
08188 {}
08189 
08190 ptr< object::reflection_list > pi_preg::reflection_get() const
08191 {
08192         if (!reflection) {
08193                 typedef class_reflection::field_metadata md;
08194                 typedef class_reflection::field_metadata_list mdlist;
08195                 ptr<mdlist> mdl = mdlist::create();
08196                 reflection = reflection_list::create( pi_non_mem::reflection_get() );
08197                 reflection->push_back( class_reflection::create( "pi_preg", mdl ) );
08198         }
08199         return reflection;
08200 }
08201 
08202 ptr< object::field_list_list > pi_preg::field_values_get() const
08203 {
08204         ptr < field_list_list > result = pi_non_mem::field_values_get();
08205         return result;
08206 }
08207 
08208 
08209 /*!
08210    Marking routine is used for garbage collection.
08211    \author lsg
08212  */
08213 void pi_preg::gc_mark()
08214 {
08215         pi_non_mem::gc_mark();
08216 }
08217 
08218 // End of class pi_preg.
08219 
08220 // ------------- Class pi_lit follows. -------------
08221 
08222 /*!
08223    \returns The value of pi_lit::value.
08224    \author lsg
08225  */
08226 ptr< ::lestes::md::literals::literal_info_base > pi_lit::value_get() const
08227 {
08228         return value;
08229 }
08230 
08231 /*!
08232    \param[in] x The new value to set pi_lit::value to.
08233    \author lsg
08234  */
08235 void pi_lit::value_set(const ptr< ::lestes::md::literals::literal_info_base > & x)
08236 {
08237         pi_lit::value = x;
08238 }
08239 
08240 ptr< ::lestes::backend_v2::intercode::ge_operand > pi_lit::accept_visitor_pi_operand2ge_operand_gen_base( ptr< visitor_pi_operand2ge_operand_gen_base > v )
08241 {
08242         return v->visit_pi_lit( this );
08243 }
08244 
08245 /*!
08246    This factory method for class pi_lit takes values of all fields as arguments.
08247    \author lsg
08248  */
08249 ptr< pi_lit > pi_lit::create(ptr< pi_pi > a__pi_operand__origin,
08250                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_operand__type,
08251                 ptr< ::lestes::md::literals::literal_info_base > a__pi_lit__value)
08252 {
08253         return ptr< pi_lit > ( new pi_lit(a__pi_operand__origin,
08254                 a__pi_operand__type,
08255                 a__pi_lit__value) );
08256 }
08257 
08258 /*!
08259    Generated constructor for class pi_lit.
08260    \author lsg
08261  */
08262 pi_lit::pi_lit (ptr< pi_pi > a__pi_operand__origin,
08263                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_operand__type,
08264                 ptr< ::lestes::md::literals::literal_info_base > a__pi_lit__value)
08265         : pi_non_mem(a__pi_operand__origin,
08266                 a__pi_operand__type), value(checked(a__pi_lit__value))
08267 {}
08268 
08269 ptr< object::reflection_list > pi_lit::reflection_get() const
08270 {
08271         if (!reflection) {
08272                 typedef class_reflection::field_metadata md;
08273                 typedef class_reflection::field_metadata_list mdlist;
08274                 ptr<mdlist> mdl = mdlist::create();
08275                 mdl->push_back( md::create( "value", "literal_info_base" ) );
08276                 reflection = reflection_list::create( pi_non_mem::reflection_get() );
08277                 reflection->push_back( class_reflection::create( "pi_lit", mdl ) );
08278         }
08279         return reflection;
08280 }
08281 
08282 ptr< object::field_list_list > pi_lit::field_values_get() const
08283 {
08284         ptr < field_list_list > result = pi_non_mem::field_values_get();
08285         result->push_back( value_list::create() );
08286         result->back()->push_back( this->value );
08287         return result;
08288 }
08289 
08290 
08291 /*!
08292    Marking routine is used for garbage collection.
08293    \author lsg
08294  */
08295 void pi_lit::gc_mark()
08296 {
08297         pi_non_mem::gc_mark();
08298 }
08299 
08300 // End of class pi_lit.
08301 
08302 // ------------- Class pi_mem follows. -------------
08303 
08304 /*!
08305    \returns The value of pi_mem::factory.
08306    \author lsg
08307  */
08308 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > pi_mem::factory_get() const
08309 {
08310         return factory;
08311 }
08312 
08313 /*!
08314    \param[in] x The new value to set pi_mem::factory to.
08315    \author lsg
08316  */
08317 void pi_mem::factory_set(const ptr< ::lestes::backend_v2::intercode::pi_mem_factory > & x)
08318 {
08319         pi_mem::factory = x;
08320 }
08321 
08322 /*!
08323    Generated constructor for class pi_mem.
08324    \author lsg
08325  */
08326 pi_mem::pi_mem (ptr< pi_pi > a__pi_operand__origin,
08327                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_operand__type,
08328                 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__pi_mem__factory)
08329         : pi_operand(a__pi_operand__origin,
08330                 a__pi_operand__type), factory(a__pi_mem__factory)
08331 {}
08332 
08333 ptr< object::reflection_list > pi_mem::reflection_get() const
08334 {
08335         if (!reflection) {
08336                 typedef class_reflection::field_metadata md;
08337                 typedef class_reflection::field_metadata_list mdlist;
08338                 ptr<mdlist> mdl = mdlist::create();
08339                 mdl->push_back( md::create( "factory", "pi_mem_factory" ) );
08340                 reflection = reflection_list::create( pi_operand::reflection_get() );
08341                 reflection->push_back( class_reflection::create( "pi_mem", mdl ) );
08342         }
08343         return reflection;
08344 }
08345 
08346 ptr< object::field_list_list > pi_mem::field_values_get() const
08347 {
08348         ptr < field_list_list > result = pi_operand::field_values_get();
08349         result->push_back( value_list::create() );
08350         result->back()->push_back( this->factory );
08351         return result;
08352 }
08353 
08354 
08355 /*!
08356    Marking routine is used for garbage collection.
08357    \author lsg
08358  */
08359 void pi_mem::gc_mark()
08360 {
08361         pi_operand::gc_mark();
08362 }
08363 
08364 // End of class pi_mem.
08365 
08366 // ------------- Class pi_mem_decl follows. -------------
08367 
08368 ptr< ::lestes::backend_v2::intercode::ge_operand > pi_mem_decl::accept_visitor_pi_operand2ge_operand_gen_base( ptr< visitor_pi_operand2ge_operand_gen_base > v )
08369 {
08370         return v->visit_pi_mem_decl( this );
08371 }
08372 
08373 /*!
08374    This factory method for class pi_mem_decl takes values of all fields as arguments.
08375    \author lsg
08376  */
08377 ptr< pi_mem_decl > pi_mem_decl::create(ptr< pi_pi > a__pi_operand__origin,
08378                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_operand__type,
08379                 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__pi_mem__factory)
08380 {
08381         return ptr< pi_mem_decl > ( new pi_mem_decl(a__pi_operand__origin,
08382                 a__pi_operand__type,
08383                 a__pi_mem__factory) );
08384 }
08385 
08386 /*!
08387    Generated constructor for class pi_mem_decl.
08388    \author lsg
08389  */
08390 pi_mem_decl::pi_mem_decl (ptr< pi_pi > a__pi_operand__origin,
08391                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_operand__type,
08392                 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__pi_mem__factory)
08393         : pi_mem(a__pi_operand__origin,
08394                 a__pi_operand__type,
08395                 a__pi_mem__factory)
08396 {}
08397 
08398 ptr< object::reflection_list > pi_mem_decl::reflection_get() const
08399 {
08400         if (!reflection) {
08401                 typedef class_reflection::field_metadata md;
08402                 typedef class_reflection::field_metadata_list mdlist;
08403                 ptr<mdlist> mdl = mdlist::create();
08404                 reflection = reflection_list::create( pi_mem::reflection_get() );
08405                 reflection->push_back( class_reflection::create( "pi_mem_decl", mdl ) );
08406         }
08407         return reflection;
08408 }
08409 
08410 ptr< object::field_list_list > pi_mem_decl::field_values_get() const
08411 {
08412         ptr < field_list_list > result = pi_mem::field_values_get();
08413         return result;
08414 }
08415 
08416 
08417 /*!
08418    Marking routine is used for garbage collection.
08419    \author lsg
08420  */
08421 void pi_mem_decl::gc_mark()
08422 {
08423         pi_mem::gc_mark();
08424 }
08425 
08426 // End of class pi_mem_decl.
08427 
08428 // ------------- Class pi_mem_lit follows. -------------
08429 
08430 ptr< ::lestes::backend_v2::intercode::ge_operand > pi_mem_lit::accept_visitor_pi_operand2ge_operand_gen_base( ptr< visitor_pi_operand2ge_operand_gen_base > v )
08431 {
08432         return v->visit_pi_mem_lit( this );
08433 }
08434 
08435 /*!
08436    This factory method for class pi_mem_lit takes values of all fields as arguments.
08437    \author lsg
08438  */
08439 ptr< pi_mem_lit > pi_mem_lit::create(ptr< pi_pi > a__pi_operand__origin,
08440                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_operand__type,
08441                 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__pi_mem__factory)
08442 {
08443         return ptr< pi_mem_lit > ( new pi_mem_lit(a__pi_operand__origin,
08444                 a__pi_operand__type,
08445                 a__pi_mem__factory) );
08446 }
08447 
08448 /*!
08449    Generated constructor for class pi_mem_lit.
08450    \author lsg
08451  */
08452 pi_mem_lit::pi_mem_lit (ptr< pi_pi > a__pi_operand__origin,
08453                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_operand__type,
08454                 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__pi_mem__factory)
08455         : pi_mem(a__pi_operand__origin,
08456                 a__pi_operand__type,
08457                 a__pi_mem__factory)
08458 {}
08459 
08460 ptr< object::reflection_list > pi_mem_lit::reflection_get() const
08461 {
08462         if (!reflection) {
08463                 typedef class_reflection::field_metadata md;
08464                 typedef class_reflection::field_metadata_list mdlist;
08465                 ptr<mdlist> mdl = mdlist::create();
08466                 reflection = reflection_list::create( pi_mem::reflection_get() );
08467                 reflection->push_back( class_reflection::create( "pi_mem_lit", mdl ) );
08468         }
08469         return reflection;
08470 }
08471 
08472 ptr< object::field_list_list > pi_mem_lit::field_values_get() const
08473 {
08474         ptr < field_list_list > result = pi_mem::field_values_get();
08475         return result;
08476 }
08477 
08478 
08479 /*!
08480    Marking routine is used for garbage collection.
08481    \author lsg
08482  */
08483 void pi_mem_lit::gc_mark()
08484 {
08485         pi_mem::gc_mark();
08486 }
08487 
08488 // End of class pi_mem_lit.
08489 
08490 // ------------- Class pi_mem_member follows. -------------
08491 
08492 ptr< ::lestes::backend_v2::intercode::ge_operand > pi_mem_member::accept_visitor_pi_operand2ge_operand_gen_base( ptr< visitor_pi_operand2ge_operand_gen_base > v )
08493 {
08494         return v->visit_pi_mem_member( this );
08495 }
08496 
08497 /*!
08498    This factory method for class pi_mem_member takes values of all fields as arguments.
08499    \author lsg
08500  */
08501 ptr< pi_mem_member > pi_mem_member::create(ptr< pi_pi > a__pi_operand__origin,
08502                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_operand__type,
08503                 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__pi_mem__factory)
08504 {
08505         return ptr< pi_mem_member > ( new pi_mem_member(a__pi_operand__origin,
08506                 a__pi_operand__type,
08507                 a__pi_mem__factory) );
08508 }
08509 
08510 /*!
08511    Generated constructor for class pi_mem_member.
08512    \author lsg
08513  */
08514 pi_mem_member::pi_mem_member (ptr< pi_pi > a__pi_operand__origin,
08515                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_operand__type,
08516                 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__pi_mem__factory)
08517         : pi_mem(a__pi_operand__origin,
08518                 a__pi_operand__type,
08519                 a__pi_mem__factory)
08520 {}
08521 
08522 ptr< object::reflection_list > pi_mem_member::reflection_get() const
08523 {
08524         if (!reflection) {
08525                 typedef class_reflection::field_metadata md;
08526                 typedef class_reflection::field_metadata_list mdlist;
08527                 ptr<mdlist> mdl = mdlist::create();
08528                 reflection = reflection_list::create( pi_mem::reflection_get() );
08529                 reflection->push_back( class_reflection::create( "pi_mem_member", mdl ) );
08530         }
08531         return reflection;
08532 }
08533 
08534 ptr< object::field_list_list > pi_mem_member::field_values_get() const
08535 {
08536         ptr < field_list_list > result = pi_mem::field_values_get();
08537         return result;
08538 }
08539 
08540 
08541 /*!
08542    Marking routine is used for garbage collection.
08543    \author lsg
08544  */
08545 void pi_mem_member::gc_mark()
08546 {
08547         pi_mem::gc_mark();
08548 }
08549 
08550 // End of class pi_mem_member.
08551 
08552 // ------------- Class pi_mem_stack follows. -------------
08553 
08554 ptr< ::lestes::backend_v2::intercode::ge_operand > pi_mem_stack::accept_visitor_pi_operand2ge_operand_gen_base( ptr< visitor_pi_operand2ge_operand_gen_base > v )
08555 {
08556         return v->visit_pi_mem_stack( this );
08557 }
08558 
08559 /*!
08560    This factory method for class pi_mem_stack takes values of all fields as arguments.
08561    \author lsg
08562  */
08563 ptr< pi_mem_stack > pi_mem_stack::create(ptr< pi_pi > a__pi_operand__origin,
08564                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_operand__type,
08565                 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__pi_mem__factory)
08566 {
08567         return ptr< pi_mem_stack > ( new pi_mem_stack(a__pi_operand__origin,
08568                 a__pi_operand__type,
08569                 a__pi_mem__factory) );
08570 }
08571 
08572 /*!
08573    Generated constructor for class pi_mem_stack.
08574    \author lsg
08575  */
08576 pi_mem_stack::pi_mem_stack (ptr< pi_pi > a__pi_operand__origin,
08577                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_operand__type,
08578                 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__pi_mem__factory)
08579         : pi_mem(a__pi_operand__origin,
08580                 a__pi_operand__type,
08581                 a__pi_mem__factory)
08582 {}
08583 
08584 ptr< object::reflection_list > pi_mem_stack::reflection_get() const
08585 {
08586         if (!reflection) {
08587                 typedef class_reflection::field_metadata md;
08588                 typedef class_reflection::field_metadata_list mdlist;
08589                 ptr<mdlist> mdl = mdlist::create();
08590                 reflection = reflection_list::create( pi_mem::reflection_get() );
08591                 reflection->push_back( class_reflection::create( "pi_mem_stack", mdl ) );
08592         }
08593         return reflection;
08594 }
08595 
08596 ptr< object::field_list_list > pi_mem_stack::field_values_get() const
08597 {
08598         ptr < field_list_list > result = pi_mem::field_values_get();
08599         return result;
08600 }
08601 
08602 
08603 /*!
08604    Marking routine is used for garbage collection.
08605    \author lsg
08606  */
08607 void pi_mem_stack::gc_mark()
08608 {
08609         pi_mem::gc_mark();
08610 }
08611 
08612 // End of class pi_mem_stack.
08613 
08614 // ------------- Class pi_mem_preg follows. -------------
08615 
08616 ptr< ::lestes::backend_v2::intercode::ge_operand > pi_mem_preg::accept_visitor_pi_operand2ge_operand_gen_base( ptr< visitor_pi_operand2ge_operand_gen_base > v )
08617 {
08618         return v->visit_pi_mem_preg( this );
08619 }
08620 
08621 /*!
08622    This factory method for class pi_mem_preg takes values of all fields as arguments.
08623    \author lsg
08624  */
08625 ptr< pi_mem_preg > pi_mem_preg::create(ptr< pi_pi > a__pi_operand__origin,
08626                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_operand__type,
08627                 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__pi_mem__factory)
08628 {
08629         return ptr< pi_mem_preg > ( new pi_mem_preg(a__pi_operand__origin,
08630                 a__pi_operand__type,
08631                 a__pi_mem__factory) );
08632 }
08633 
08634 /*!
08635    Generated constructor for class pi_mem_preg.
08636    \author lsg
08637  */
08638 pi_mem_preg::pi_mem_preg (ptr< pi_pi > a__pi_operand__origin,
08639                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_operand__type,
08640                 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__pi_mem__factory)
08641         : pi_mem(a__pi_operand__origin,
08642                 a__pi_operand__type,
08643                 a__pi_mem__factory)
08644 {}
08645 
08646 ptr< object::reflection_list > pi_mem_preg::reflection_get() const
08647 {
08648         if (!reflection) {
08649                 typedef class_reflection::field_metadata md;
08650                 typedef class_reflection::field_metadata_list mdlist;
08651                 ptr<mdlist> mdl = mdlist::create();
08652                 reflection = reflection_list::create( pi_mem::reflection_get() );
08653                 reflection->push_back( class_reflection::create( "pi_mem_preg", mdl ) );
08654         }
08655         return reflection;
08656 }
08657 
08658 ptr< object::field_list_list > pi_mem_preg::field_values_get() const
08659 {
08660         ptr < field_list_list > result = pi_mem::field_values_get();
08661         return result;
08662 }
08663 
08664 
08665 /*!
08666    Marking routine is used for garbage collection.
08667    \author lsg
08668  */
08669 void pi_mem_preg::gc_mark()
08670 {
08671         pi_mem::gc_mark();
08672 }
08673 
08674 // End of class pi_mem_preg.
08675 
08676 // ------------- Class pi_mem_temp follows. -------------
08677 
08678 ptr< ::lestes::backend_v2::intercode::ge_operand > pi_mem_temp::accept_visitor_pi_operand2ge_operand_gen_base( ptr< visitor_pi_operand2ge_operand_gen_base > v )
08679 {
08680         return v->visit_pi_mem_temp( this );
08681 }
08682 
08683 /*!
08684    This factory method for class pi_mem_temp takes values of all fields as arguments.
08685    \author lsg
08686  */
08687 ptr< pi_mem_temp > pi_mem_temp::create(ptr< pi_pi > a__pi_operand__origin,
08688                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_operand__type,
08689                 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__pi_mem__factory)
08690 {
08691         return ptr< pi_mem_temp > ( new pi_mem_temp(a__pi_operand__origin,
08692                 a__pi_operand__type,
08693                 a__pi_mem__factory) );
08694 }
08695 
08696 /*!
08697    Generated constructor for class pi_mem_temp.
08698    \author lsg
08699  */
08700 pi_mem_temp::pi_mem_temp (ptr< pi_pi > a__pi_operand__origin,
08701                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_operand__type,
08702                 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__pi_mem__factory)
08703         : pi_mem(a__pi_operand__origin,
08704                 a__pi_operand__type,
08705                 a__pi_mem__factory)
08706 {}
08707 
08708 ptr< object::reflection_list > pi_mem_temp::reflection_get() const
08709 {
08710         if (!reflection) {
08711                 typedef class_reflection::field_metadata md;
08712                 typedef class_reflection::field_metadata_list mdlist;
08713                 ptr<mdlist> mdl = mdlist::create();
08714                 reflection = reflection_list::create( pi_mem::reflection_get() );
08715                 reflection->push_back( class_reflection::create( "pi_mem_temp", mdl ) );
08716         }
08717         return reflection;
08718 }
08719 
08720 ptr< object::field_list_list > pi_mem_temp::field_values_get() const
08721 {
08722         ptr < field_list_list > result = pi_mem::field_values_get();
08723         return result;
08724 }
08725 
08726 
08727 /*!
08728    Marking routine is used for garbage collection.
08729    \author lsg
08730  */
08731 void pi_mem_temp::gc_mark()
08732 {
08733         pi_mem::gc_mark();
08734 }
08735 
08736 // End of class pi_mem_temp.
08737 
08738 // ------------- Class pi_mem_ptr_deref follows. -------------
08739 
08740 ptr< ::lestes::backend_v2::intercode::ge_operand > pi_mem_ptr_deref::accept_visitor_pi_operand2ge_operand_gen_base( ptr< visitor_pi_operand2ge_operand_gen_base > v )
08741 {
08742         return v->visit_pi_mem_ptr_deref( this );
08743 }
08744 
08745 /*!
08746    This factory method for class pi_mem_ptr_deref takes values of all fields as arguments.
08747    \author lsg
08748  */
08749 ptr< pi_mem_ptr_deref > pi_mem_ptr_deref::create(ptr< pi_pi > a__pi_operand__origin,
08750                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_operand__type,
08751                 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__pi_mem__factory)
08752 {
08753         return ptr< pi_mem_ptr_deref > ( new pi_mem_ptr_deref(a__pi_operand__origin,
08754                 a__pi_operand__type,
08755                 a__pi_mem__factory) );
08756 }
08757 
08758 /*!
08759    Generated constructor for class pi_mem_ptr_deref.
08760    \author lsg
08761  */
08762 pi_mem_ptr_deref::pi_mem_ptr_deref (ptr< pi_pi > a__pi_operand__origin,
08763                 ptr< ::lestes::md::types::tm_data_type_base > a__pi_operand__type,
08764                 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__pi_mem__factory)
08765         : pi_mem(a__pi_operand__origin,
08766                 a__pi_operand__type,
08767                 a__pi_mem__factory)
08768 {}
08769 
08770 ptr< object::reflection_list > pi_mem_ptr_deref::reflection_get() const
08771 {
08772         if (!reflection) {
08773                 typedef class_reflection::field_metadata md;
08774                 typedef class_reflection::field_metadata_list mdlist;
08775                 ptr<mdlist> mdl = mdlist::create();
08776                 reflection = reflection_list::create( pi_mem::reflection_get() );
08777                 reflection->push_back( class_reflection::create( "pi_mem_ptr_deref", mdl ) );
08778         }
08779         return reflection;
08780 }
08781 
08782 ptr< object::field_list_list > pi_mem_ptr_deref::field_values_get() const
08783 {
08784         ptr < field_list_list > result = pi_mem::field_values_get();
08785         return result;
08786 }
08787 
08788 
08789 /*!
08790    Marking routine is used for garbage collection.
08791    \author lsg
08792  */
08793 void pi_mem_ptr_deref::gc_mark()
08794 {
08795         pi_mem::gc_mark();
08796 }
08797 
08798 // End of class pi_mem_ptr_deref.
08799 
08800 
08801 // static data members follow 
08802 ptr<object::reflection_list> pi_pi::reflection = reflection;
08803 ptr<object::reflection_list> pi_branch::reflection = reflection;
08804 ptr<object::reflection_list> pi_conditional_branch::reflection = reflection;
08805 ptr<object::reflection_list> pi_uconditional_branch::reflection = reflection;
08806 ptr<object::reflection_list> pi_branch_multiple::reflection = reflection;
08807 ptr<object::reflection_list> pi_cb_single_label_target::reflection = reflection;
08808 ptr<object::reflection_list> pi_cb_single_address_target::reflection = reflection;
08809 ptr<object::reflection_list> pi_ub_single_label_target::reflection = reflection;
08810 ptr<object::reflection_list> pi_ub_single_address_target::reflection = reflection;
08811 ptr<object::reflection_list> pi_branch_multiple_label_target::reflection = reflection;
08812 ptr<object::reflection_list> pi_branch_multiple_address_target::reflection = reflection;
08813 ptr<object::reflection_list> pi_bpi::reflection = reflection;
08814 ptr<object::reflection_list> pi_tpi::reflection = reflection;
08815 ptr<object::reflection_list> pi_abstract_function_call::reflection = reflection;
08816 ptr<object::reflection_list> pi_bdtpi::reflection = reflection;
08817 ptr<object::reflection_list> pi_abstract_move::reflection = reflection;
08818 ptr<object::reflection_list> pi_abstract_move_st::reflection = reflection;
08819 ptr<object::reflection_list> pi_abstract_move_dt::reflection = reflection;
08820 ptr<object::reflection_list> pi_indirect_store::reflection = reflection;
08821 ptr<object::reflection_list> pi_indirect_load::reflection = reflection;
08822 ptr<object::reflection_list> pi_bstpi::reflection = reflection;
08823 ptr<object::reflection_list> pi_tstpi::reflection = reflection;
08824 ptr<object::reflection_list> pi_tdtpi::reflection = reflection;
08825 ptr<object::reflection_list> pi_sp::reflection = reflection;
08826 ptr<object::reflection_list> pi_add::reflection = reflection;
08827 ptr<object::reflection_list> pi_sub::reflection = reflection;
08828 ptr<object::reflection_list> pi_mul::reflection = reflection;
08829 ptr<object::reflection_list> pi_div::reflection = reflection;
08830 ptr<object::reflection_list> pi_divrni::reflection = reflection;
08831 ptr<object::reflection_list> pi_divrpi::reflection = reflection;
08832 ptr<object::reflection_list> pi_divrz::reflection = reflection;
08833 ptr<object::reflection_list> pi_mod::reflection = reflection;
08834 ptr<object::reflection_list> pi_rem::reflection = reflection;
08835 ptr<object::reflection_list> pi_neg::reflection = reflection;
08836 ptr<object::reflection_list> pi_gat::reflection = reflection;
08837 ptr<object::reflection_list> pi_shl::reflection = reflection;
08838 ptr<object::reflection_list> pi_shr::reflection = reflection;
08839 ptr<object::reflection_list> pi_sal::reflection = reflection;
08840 ptr<object::reflection_list> pi_sar::reflection = reflection;
08841 ptr<object::reflection_list> pi_band::reflection = reflection;
08842 ptr<object::reflection_list> pi_bor::reflection = reflection;
08843 ptr<object::reflection_list> pi_bxor::reflection = reflection;
08844 ptr<object::reflection_list> pi_bnot::reflection = reflection;
08845 ptr<object::reflection_list> pi_land::reflection = reflection;
08846 ptr<object::reflection_list> pi_lor::reflection = reflection;
08847 ptr<object::reflection_list> pi_lxor::reflection = reflection;
08848 ptr<object::reflection_list> pi_lnot::reflection = reflection;
08849 ptr<object::reflection_list> pi_cvt::reflection = reflection;
08850 ptr<object::reflection_list> pi_cmp::reflection = reflection;
08851 ptr<object::reflection_list> pi_mov::reflection = reflection;
08852 ptr<object::reflection_list> pi_ld::reflection = reflection;
08853 ptr<object::reflection_list> pi_lda::reflection = reflection;
08854 ptr<object::reflection_list> pi_ldi::reflection = reflection;
08855 ptr<object::reflection_list> pi_ldp::reflection = reflection;
08856 ptr<object::reflection_list> pi_ldv::reflection = reflection;
08857 ptr<object::reflection_list> pi_ldpv::reflection = reflection;
08858 ptr<object::reflection_list> pi_st::reflection = reflection;
08859 ptr<object::reflection_list> pi_sti::reflection = reflection;
08860 ptr<object::reflection_list> pi_stp::reflection = reflection;
08861 ptr<object::reflection_list> pi_stv::reflection = reflection;
08862 ptr<object::reflection_list> pi_stiv::reflection = reflection;
08863 ptr<object::reflection_list> pi_stpv::reflection = reflection;
08864 ptr<object::reflection_list> pi_call::reflection = reflection;
08865 ptr<object::reflection_list> pi_icall::reflection = reflection;
08866 ptr<object::reflection_list> pi_callv::reflection = reflection;
08867 ptr<object::reflection_list> pi_icallv::reflection = reflection;
08868 ptr<object::reflection_list> pi_ba::reflection = reflection;
08869 ptr<object::reflection_list> pi_bn::reflection = reflection;
08870 ptr<object::reflection_list> pi_bt::reflection = reflection;
08871 ptr<object::reflection_list> pi_bf::reflection = reflection;
08872 ptr<object::reflection_list> pi_bm::reflection = reflection;
08873 ptr<object::reflection_list> pi_bg::reflection = reflection;
08874 ptr<object::reflection_list> pi_bl::reflection = reflection;
08875 ptr<object::reflection_list> pi_be::reflection = reflection;
08876 ptr<object::reflection_list> pi_bng::reflection = reflection;
08877 ptr<object::reflection_list> pi_bnl::reflection = reflection;
08878 ptr<object::reflection_list> pi_bne::reflection = reflection;
08879 ptr<object::reflection_list> pi_iba::reflection = reflection;
08880 ptr<object::reflection_list> pi_ibn::reflection = reflection;
08881 ptr<object::reflection_list> pi_ibm::reflection = reflection;
08882 ptr<object::reflection_list> pi_ibg::reflection = reflection;
08883 ptr<object::reflection_list> pi_ibl::reflection = reflection;
08884 ptr<object::reflection_list> pi_ibe::reflection = reflection;
08885 ptr<object::reflection_list> pi_ibng::reflection = reflection;
08886 ptr<object::reflection_list> pi_ibnl::reflection = reflection;
08887 ptr<object::reflection_list> pi_ibne::reflection = reflection;
08888 ptr<object::reflection_list> pi_leave::reflection = reflection;
08889 ptr<object::reflection_list> pi_sbg::reflection = reflection;
08890 ptr<object::reflection_list> pi_sbl::reflection = reflection;
08891 ptr<object::reflection_list> pi_sbe::reflection = reflection;
08892 ptr<object::reflection_list> pi_sbng::reflection = reflection;
08893 ptr<object::reflection_list> pi_sbnl::reflection = reflection;
08894 ptr<object::reflection_list> pi_sbne::reflection = reflection;
08895 ptr<object::reflection_list> pi_operand::reflection = reflection;
08896 ptr<object::reflection_list> pi_non_mem::reflection = reflection;
08897 ptr<object::reflection_list> pi_preg::reflection = reflection;
08898 ptr<object::reflection_list> pi_lit::reflection = reflection;
08899 ptr<object::reflection_list> pi_mem::reflection = reflection;
08900 ptr<object::reflection_list> pi_mem_decl::reflection = reflection;
08901 ptr<object::reflection_list> pi_mem_lit::reflection = reflection;
08902 ptr<object::reflection_list> pi_mem_member::reflection = reflection;
08903 ptr<object::reflection_list> pi_mem_stack::reflection = reflection;
08904 ptr<object::reflection_list> pi_mem_preg::reflection = reflection;
08905 ptr<object::reflection_list> pi_mem_temp::reflection = reflection;
08906 ptr<object::reflection_list> pi_mem_ptr_deref::reflection = reflection;
08907 
08908 end_package(intercode);
08909 end_package(backend_v2);
08910 end_package(lestes);
08911 

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