as_decl.g.cc

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

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