00001
00002
00003
00004
00005
00006
00007
00008
00009 #include <lestes/lang/cplus/sem/ss_declaration.g.hh>
00010
00011 #include <lestes/std/list.hh>
00012 #include <lestes/std/pair.hh>
00013 #include <lestes/std/reflect.hh>
00014
00015 #include <lestes/lang/cplus/sem/ss_decl2lstring_base.g.hh>
00016
00017 package(lestes);
00018 package(lang);
00019 package(cplus);
00020 package(sem);
00021
00022
00023
00024
00025
00026
00027
00028
00029 ptr< ss_decl2mangled_name > ss_decl2mangled_name::singleton_instance_get()
00030 {
00031 return singleton_instance;
00032 }
00033
00034
00035
00036
00037
00038 void ss_decl2mangled_name::singleton_instance_set(const ptr< ss_decl2mangled_name > & x)
00039 {
00040 ss_decl2mangled_name::singleton_instance = x;
00041 }
00042
00043
00044
00045
00046
00047 ulint ss_decl2mangled_name::level_get() const
00048 {
00049 return level;
00050 }
00051
00052
00053
00054
00055
00056 void ss_decl2mangled_name::level_set(ulint x)
00057 {
00058 ss_decl2mangled_name::level = x;
00059 }
00060
00061
00062
00063
00064
00065 lstring ss_decl2mangled_name::result_get() const
00066 {
00067 return result;
00068 }
00069
00070
00071
00072
00073
00074 void ss_decl2mangled_name::result_set(lstring x)
00075 {
00076 ss_decl2mangled_name::result = x;
00077 }
00078
00079
00080
00081
00082
00083 ptr< ::lestes::std::map< lstring, lstring > > ss_decl2mangled_name::substitutions_get() const
00084 {
00085 return substitutions;
00086 }
00087
00088
00089
00090
00091
00092 void ss_decl2mangled_name::substitutions_set(const ptr< ::lestes::std::map< lstring, lstring > > & x)
00093 {
00094 ss_decl2mangled_name::substitutions = x;
00095 }
00096
00097
00098
00099
00100
00101 ptr< ss_decl2mangled_name > ss_decl2mangled_name::create(ulint a__ss_decl2mangled_name__level,
00102 lstring a__ss_decl2mangled_name__result,
00103 ptr< ::lestes::std::map< lstring, lstring > > a__ss_decl2mangled_name__substitutions)
00104 {
00105 return ptr< ss_decl2mangled_name > ( new ss_decl2mangled_name(a__ss_decl2mangled_name__level,
00106 a__ss_decl2mangled_name__result,
00107 a__ss_decl2mangled_name__substitutions) );
00108 }
00109
00110
00111
00112
00113
00114 ptr< ss_decl2mangled_name > ss_decl2mangled_name::create()
00115 {
00116 return ptr< ss_decl2mangled_name > ( new ss_decl2mangled_name(0, "", ::lestes::std::map< lstring, lstring > ::create()) );
00117 }
00118
00119
00120
00121
00122
00123 ss_decl2mangled_name::ss_decl2mangled_name (ulint a__ss_decl2mangled_name__level,
00124 lstring a__ss_decl2mangled_name__result,
00125 ptr< ::lestes::std::map< lstring, lstring > > a__ss_decl2mangled_name__substitutions)
00126 : ss_declaration_visitor(), level(a__ss_decl2mangled_name__level), result(a__ss_decl2mangled_name__result), substitutions(checked(a__ss_decl2mangled_name__substitutions))
00127 {}
00128
00129 ptr< object::reflection_list > ss_decl2mangled_name::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", "ss_decl2mangled_name" ) );
00136 mdl->push_back( md::create( "level", "ulint" ) );
00137 mdl->push_back( md::create( "result", "lstring" ) );
00138 mdl->push_back( md::create( "substitutions", "map< lstring, lstring >" ) );
00139 reflection = reflection_list::create( ss_declaration_visitor::reflection_get() );
00140 reflection->push_back( class_reflection::create( "ss_decl2mangled_name", mdl ) );
00141 }
00142 return reflection;
00143 }
00144
00145 ptr< object::field_list_list > ss_decl2mangled_name::field_values_get() const
00146 {
00147 ptr < field_list_list > result = ss_declaration_visitor::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( objectize< ulint > ::create( this->level ) );
00152 result->push_back( value_list::create() );
00153 result->back()->push_back( objectize< lstring > ::create( this->result ) );
00154 result->push_back( value_list::create() );
00155 result->back()->push_back( this->substitutions );
00156 return result;
00157 }
00158
00159 lstring ss_decl2mangled_name::process( const ptr< ::lestes::lang::cplus::sem::ss_declaration > & o )
00160 {
00161 lassert2( o, "Cannot visit NULL object." );
00162 o->accept_ss_declaration_visitor( ptr< ss_declaration_visitor >(this) );
00163 return result_get();
00164 }
00165
00166
00167
00168
00169
00170
00171 void ss_decl2mangled_name::gc_mark()
00172 {
00173 ss_declaration_visitor::gc_mark();
00174 }
00175
00176
00177
00178
00179
00180 ptr< ss_decl2mangled_name > ss_decl2mangled_name::singleton_instance = singleton_instance;
00181 ptr<object::reflection_list> ss_decl2mangled_name::reflection = reflection;
00182
00183 end_package(sem);
00184 end_package(cplus);
00185 end_package(lang);
00186 end_package(lestes);
00187