00001 // This file is automatically generated, do not edit. 00002 00003 /*! 00004 \file 00005 \brief Parameter declaration type analysis. 00006 00007 Transformation of parameter declaration to SS type. 00008 00009 */ 00010 00011 #include <lestes/lang/cplus/sem/as_decl.g.hh> 00012 #include <lestes/lang/cplus/sem/ss_misc.g.hh> 00013 #include <lestes/lang/cplus/sem/ss_type.g.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/sa_param_declaration_type.g.hh> 00020 00021 package(lestes); 00022 package(lang); 00023 package(cplus); 00024 package(sem); 00025 00026 00027 // ------------- Class sa_param_declaration_type follows. ------------- 00028 00029 /*! 00030 \returns The value of sa_param_declaration_type::type. 00031 \author lsg 00032 */ 00033 ptr< ss_type > sa_param_declaration_type::type_get() const 00034 { 00035 return type; 00036 } 00037 00038 /*! 00039 This factory method for class sa_param_declaration_type takes values of all fields as arguments. 00040 \author lsg 00041 */ 00042 ptr< sa_param_declaration_type > sa_param_declaration_type::create(ptr< ss_type > a__sa_param_declaration_type__type) 00043 { 00044 return ptr< sa_param_declaration_type > ( new sa_param_declaration_type(a__sa_param_declaration_type__type) ); 00045 } 00046 00047 /*! 00048 This factory method for class sa_param_declaration_type uses initializers. 00049 \author lsg 00050 */ 00051 ptr< sa_param_declaration_type > sa_param_declaration_type::create() 00052 { 00053 return ptr< sa_param_declaration_type > ( new sa_param_declaration_type(NULL) ); 00054 } 00055 00056 /*! 00057 Generated constructor for class sa_param_declaration_type. 00058 \author lsg 00059 */ 00060 sa_param_declaration_type::sa_param_declaration_type (ptr< ss_type > a__sa_param_declaration_type__type) 00061 : object(), type(a__sa_param_declaration_type__type) 00062 {} 00063 00064 ptr< object::reflection_list > sa_param_declaration_type::reflection_get() const 00065 { 00066 if (!reflection) { 00067 typedef class_reflection::field_metadata md; 00068 typedef class_reflection::field_metadata_list mdlist; 00069 ptr<mdlist> mdl = mdlist::create(); 00070 mdl->push_back( md::create( "type", "ss_type" ) ); 00071 reflection = reflection_list::create( ::lestes::std::object::reflection_get() ); 00072 reflection->push_back( class_reflection::create( "sa_param_declaration_type", mdl ) ); 00073 } 00074 return reflection; 00075 } 00076 00077 ptr< object::field_list_list > sa_param_declaration_type::field_values_get() const 00078 { 00079 ptr < field_list_list > result = ::lestes::std::object::field_values_get(); 00080 result->push_back( value_list::create() ); 00081 result->back()->push_back( this->type ); 00082 return result; 00083 } 00084 00085 00086 /*! 00087 Marking routine is used for garbage collection. 00088 \author lsg 00089 */ 00090 void sa_param_declaration_type::gc_mark() 00091 { 00092 ::lestes::std::object::gc_mark(); 00093 } 00094 00095 // End of class sa_param_declaration_type. 00096 00097 00098 // static data members follow 00099 ptr<object::reflection_list> sa_param_declaration_type::reflection = reflection; 00100 00101 end_package(sem); 00102 end_package(cplus); 00103 end_package(lang); 00104 end_package(lestes); 00105
1.5.1-20070107