00001
00002
00003
00004
00005
00006
00007
00008
00009 #include <lestes/backend_v2/intercode/pi.g.hh>
00010 #include <lestes/lang/cplus/sem/ss_declaration.g.hh>
00011
00012 #include <lestes/std/list.hh>
00013 #include <lestes/std/pair.hh>
00014 #include <lestes/std/reflect.hh>
00015
00016 #include <lestes/md/symbols/symbol_register.g.hh>
00017
00018 package(lestes);
00019 package(md);
00020 package(symbols);
00021
00022
00023
00024
00025
00026
00027
00028
00029 ptr< symbol_register > symbol_register::singleton_instance_get()
00030 {
00031 return singleton_instance;
00032 }
00033
00034
00035
00036
00037
00038 void symbol_register::singleton_instance_set(const ptr< symbol_register > & x)
00039 {
00040 symbol_register::singleton_instance = x;
00041 }
00042
00043
00044
00045
00046
00047 ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > symbol_register::externals_get() const
00048 {
00049 return externals;
00050 }
00051
00052
00053
00054
00055
00056 void symbol_register::externals_set(const ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > & x)
00057 {
00058 symbol_register::externals = x;
00059 }
00060
00061
00062
00063
00064
00065 ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > symbol_register::globals_get() const
00066 {
00067 return globals;
00068 }
00069
00070
00071
00072
00073
00074 void symbol_register::globals_set(const ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > & x)
00075 {
00076 symbol_register::globals = x;
00077 }
00078
00079
00080
00081
00082
00083 ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > symbol_register::internals_get() const
00084 {
00085 return internals;
00086 }
00087
00088
00089
00090
00091
00092 void symbol_register::internals_set(const ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > & x)
00093 {
00094 symbol_register::internals = x;
00095 }
00096
00097
00098
00099
00100
00101 ptr< symbol_register > symbol_register::create(ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > a__symbol_register__externals,
00102 ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > a__symbol_register__globals,
00103 ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > a__symbol_register__internals)
00104 {
00105 return ptr< symbol_register > ( new symbol_register(a__symbol_register__externals,
00106 a__symbol_register__globals,
00107 a__symbol_register__internals) );
00108 }
00109
00110
00111
00112
00113
00114 ptr< symbol_register > symbol_register::create()
00115 {
00116 return ptr< symbol_register > ( new symbol_register(::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > ::create(), ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > ::create(), ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > ::create()) );
00117 }
00118
00119
00120
00121
00122
00123 symbol_register::symbol_register (ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > a__symbol_register__externals,
00124 ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > a__symbol_register__globals,
00125 ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > a__symbol_register__internals)
00126 : symbol_register_base(), externals(checked(a__symbol_register__externals)), globals(checked(a__symbol_register__globals)), internals(checked(a__symbol_register__internals))
00127 {}
00128
00129 ptr< object::reflection_list > symbol_register::reflection_get() const
00130 {
00131 if (!reflection) {
00132 typedef class_reflection::field_metadata md;
00133 typedef class_reflection::field_metadata_list mdlist;
00134 ptr<mdlist> mdl = mdlist::create();
00135 mdl->push_back( md::create( "singleton_instance", "symbol_register" ) );
00136 mdl->push_back( md::create( "externals", "set< srp< ::lestes::lang::cplus::sem::ss_declaration > >" ) );
00137 mdl->push_back( md::create( "globals", "set< srp< ::lestes::lang::cplus::sem::ss_declaration > >" ) );
00138 mdl->push_back( md::create( "internals", "set< srp< ::lestes::lang::cplus::sem::ss_declaration > >" ) );
00139 reflection = reflection_list::create( symbol_register_base::reflection_get() );
00140 reflection->push_back( class_reflection::create( "symbol_register", mdl ) );
00141 }
00142 return reflection;
00143 }
00144
00145 ptr< object::field_list_list > symbol_register::field_values_get() const
00146 {
00147 ptr < field_list_list > result = symbol_register_base::field_values_get();
00148 result->push_back( value_list::create() );
00149 result->back()->push_back( this->singleton_instance );
00150 result->push_back( value_list::create() );
00151 result->back()->push_back( this->externals );
00152 result->push_back( value_list::create() );
00153 result->back()->push_back( this->globals );
00154 result->push_back( value_list::create() );
00155 result->back()->push_back( this->internals );
00156 return result;
00157 }
00158
00159
00160
00161
00162
00163
00164 void symbol_register::gc_mark()
00165 {
00166 symbol_register_base::gc_mark();
00167 }
00168
00169
00170
00171
00172
00173 ptr< symbol_register > symbol_register::singleton_instance = NULL;
00174 ptr<object::reflection_list> symbol_register::reflection = reflection;
00175
00176 end_package(symbols);
00177 end_package(md);
00178 end_package(lestes);
00179