00001
00002
00003 #include <lestes/lang/cplus/sem/as_decl.g.hh>
00004 #include <lestes/lang/cplus/sem/ss_type.g.hh>
00005 #include <lestes/lang/cplus/sem/ss_misc.g.hh>
00006
00007 #include <lestes/std/list.hh>
00008 #include <lestes/std/pair.hh>
00009 #include <lestes/std/reflect.hh>
00010
00011 #include <lestes/lang/cplus/sem/as_class_key_to_ss_struct_base.g.hh>
00012
00013 package(lestes);
00014 package(lang);
00015 package(cplus);
00016 package(sem);
00017
00018
00019
00020
00021
00022
00023
00024
00025 ptr< ::lestes::lang::cplus::sem::ss_decl_seq > as_class_key_to_ss_struct_base::decl_seq_get() const
00026 {
00027 return decl_seq;
00028 }
00029
00030
00031
00032
00033
00034 void as_class_key_to_ss_struct_base::decl_seq_set(const ptr< ::lestes::lang::cplus::sem::ss_decl_seq > & x)
00035 {
00036 as_class_key_to_ss_struct_base::decl_seq = x;
00037 }
00038
00039
00040
00041
00042
00043 ptr< ::lestes::std::list< srp< ::lestes::lang::cplus::sem::ss_base_specifier > > > as_class_key_to_ss_struct_base::bases_get() const
00044 {
00045 return bases;
00046 }
00047
00048
00049
00050
00051
00052 void as_class_key_to_ss_struct_base::bases_set(const ptr< ::lestes::std::list< srp< ::lestes::lang::cplus::sem::ss_base_specifier > > > & x)
00053 {
00054 as_class_key_to_ss_struct_base::bases = x;
00055 }
00056
00057
00058
00059
00060
00061 ptr< ::lestes::lang::cplus::sem::ss_struct_base > as_class_key_to_ss_struct_base::struct_base_get() const
00062 {
00063 return struct_base;
00064 }
00065
00066
00067
00068
00069
00070 void as_class_key_to_ss_struct_base::struct_base_set(const ptr< ::lestes::lang::cplus::sem::ss_struct_base > & x)
00071 {
00072 as_class_key_to_ss_struct_base::struct_base = x;
00073 }
00074
00075
00076
00077
00078
00079 ptr< as_class_key_to_ss_struct_base > as_class_key_to_ss_struct_base::create(ptr< ::lestes::lang::cplus::sem::ss_decl_seq > a__as_class_key_to_ss_struct_base__decl_seq,
00080 ptr< ::lestes::std::list< srp< ::lestes::lang::cplus::sem::ss_base_specifier > > > a__as_class_key_to_ss_struct_base__bases,
00081 ptr< ::lestes::lang::cplus::sem::ss_struct_base > a__as_class_key_to_ss_struct_base__struct_base)
00082 {
00083 return ptr< as_class_key_to_ss_struct_base > ( new as_class_key_to_ss_struct_base(a__as_class_key_to_ss_struct_base__decl_seq,
00084 a__as_class_key_to_ss_struct_base__bases,
00085 a__as_class_key_to_ss_struct_base__struct_base) );
00086 }
00087
00088
00089
00090
00091
00092 ptr< as_class_key_to_ss_struct_base > as_class_key_to_ss_struct_base::create(ptr< ::lestes::lang::cplus::sem::ss_decl_seq > a__as_class_key_to_ss_struct_base__decl_seq,
00093 ptr< ::lestes::std::list< srp< ::lestes::lang::cplus::sem::ss_base_specifier > > > a__as_class_key_to_ss_struct_base__bases)
00094 {
00095 return ptr< as_class_key_to_ss_struct_base > ( new as_class_key_to_ss_struct_base(a__as_class_key_to_ss_struct_base__decl_seq, a__as_class_key_to_ss_struct_base__bases, NULL) );
00096 }
00097
00098
00099
00100
00101
00102 as_class_key_to_ss_struct_base::as_class_key_to_ss_struct_base (ptr< ::lestes::lang::cplus::sem::ss_decl_seq > a__as_class_key_to_ss_struct_base__decl_seq,
00103 ptr< ::lestes::std::list< srp< ::lestes::lang::cplus::sem::ss_base_specifier > > > a__as_class_key_to_ss_struct_base__bases,
00104 ptr< ::lestes::lang::cplus::sem::ss_struct_base > a__as_class_key_to_ss_struct_base__struct_base)
00105 : as_class_key_visitor(), decl_seq(checked(a__as_class_key_to_ss_struct_base__decl_seq)), bases(checked(a__as_class_key_to_ss_struct_base__bases)), struct_base(a__as_class_key_to_ss_struct_base__struct_base)
00106 {}
00107
00108 ptr< object::reflection_list > as_class_key_to_ss_struct_base::reflection_get() const
00109 {
00110 if (!reflection) {
00111 typedef class_reflection::field_metadata md;
00112 typedef class_reflection::field_metadata_list mdlist;
00113 ptr<mdlist> mdl = mdlist::create();
00114 mdl->push_back( md::create( "decl_seq", "ss_decl_seq" ) );
00115 mdl->push_back( md::create( "bases", "list< srp< ::lestes::lang::cplus::sem::ss_base_specifier > >" ) );
00116 mdl->push_back( md::create( "struct_base", "ss_struct_base" ) );
00117 reflection = reflection_list::create( as_class_key_visitor::reflection_get() );
00118 reflection->push_back( class_reflection::create( "as_class_key_to_ss_struct_base", mdl ) );
00119 }
00120 return reflection;
00121 }
00122
00123 ptr< object::field_list_list > as_class_key_to_ss_struct_base::field_values_get() const
00124 {
00125 ptr < field_list_list > result = as_class_key_visitor::field_values_get();
00126 result->push_back( value_list::create() );
00127 result->back()->push_back( this->decl_seq );
00128 result->push_back( value_list::create() );
00129 result->back()->push_back( this->bases );
00130 result->push_back( value_list::create() );
00131 result->back()->push_back( this->struct_base );
00132 return result;
00133 }
00134
00135 ptr< ::lestes::lang::cplus::sem::ss_struct_base > as_class_key_to_ss_struct_base::process( const ptr< ::lestes::lang::cplus::sem::as_class_key > & o )
00136 {
00137 lassert2( o, "Cannot visit NULL object." );
00138 o->accept_as_class_key_visitor( ptr< as_class_key_visitor >(this) );
00139 return struct_base_get();
00140 }
00141
00142
00143
00144
00145
00146
00147 void as_class_key_to_ss_struct_base::gc_mark()
00148 {
00149 as_class_key_visitor::gc_mark();
00150 }
00151
00152
00153
00154
00155
00156 ptr<object::reflection_list> as_class_key_to_ss_struct_base::reflection = reflection;
00157
00158 end_package(sem);
00159 end_package(cplus);
00160 end_package(lang);
00161 end_package(lestes);
00162