00001 // This file is automatically generated, do not edit. 00002 00003 #include <lestes/intercode/intercode.g.hh> 00004 #include <lestes/lang/cplus/sem/as_expr.g.hh> 00005 #include <lestes/lang/cplus/sem/ss_misc.g.hh> 00006 #include <lestes/lang/cplus/sem/ss_expression.g.hh> 00007 #include <lestes/lang/cplus/sem/or_or.g.hh> 00008 00009 #include <lestes/std/list.hh> 00010 #include <lestes/std/pair.hh> 00011 #include <lestes/std/reflect.hh> 00012 00013 #include <lestes/lang/cplus/sem/sa_deconstruct_spse.g.hh> 00014 00015 package(lestes); 00016 package(lang); 00017 package(cplus); 00018 package(sem); 00019 00020 00021 // ------------- Class ss_decl_to_enum follows. ------------- 00022 00023 /*! 00024 \returns The value of ss_decl_to_enum::result. 00025 \author lsg 00026 */ 00027 ss_decl_enum ss_decl_to_enum::result_get() const 00028 { 00029 return result; 00030 } 00031 00032 /*! 00033 \param[in] x The new value to set ss_decl_to_enum::result to. 00034 \author lsg 00035 */ 00036 void ss_decl_to_enum::result_set(ss_decl_enum x) 00037 { 00038 ss_decl_to_enum::result = x; 00039 } 00040 00041 /*! 00042 This factory method for class ss_decl_to_enum takes values of all fields as arguments. 00043 \author lsg 00044 */ 00045 ptr< ss_decl_to_enum > ss_decl_to_enum::create(ss_decl_enum a__ss_decl_to_enum__result) 00046 { 00047 return ptr< ss_decl_to_enum > ( new ss_decl_to_enum(a__ss_decl_to_enum__result) ); 00048 } 00049 00050 /*! 00051 This factory method for class ss_decl_to_enum uses initializers. 00052 \author lsg 00053 */ 00054 ptr< ss_decl_to_enum > ss_decl_to_enum::create() 00055 { 00056 return ptr< ss_decl_to_enum > ( new ss_decl_to_enum(FAKE_DECLARATION) ); 00057 } 00058 00059 /*! 00060 Generated constructor for class ss_decl_to_enum. 00061 \author lsg 00062 */ 00063 ss_decl_to_enum::ss_decl_to_enum (ss_decl_enum a__ss_decl_to_enum__result) 00064 : ss_declaration_visitor(), result(a__ss_decl_to_enum__result) 00065 {} 00066 00067 ptr< object::reflection_list > ss_decl_to_enum::reflection_get() const 00068 { 00069 if (!reflection) { 00070 typedef class_reflection::field_metadata md; 00071 typedef class_reflection::field_metadata_list mdlist; 00072 ptr<mdlist> mdl = mdlist::create(); 00073 mdl->push_back( md::create( "result", "ss_decl_enum" ) ); 00074 reflection = reflection_list::create( ss_declaration_visitor::reflection_get() ); 00075 reflection->push_back( class_reflection::create( "ss_decl_to_enum", mdl ) ); 00076 } 00077 return reflection; 00078 } 00079 00080 ptr< object::field_list_list > ss_decl_to_enum::field_values_get() const 00081 { 00082 ptr < field_list_list > result = ss_declaration_visitor::field_values_get(); 00083 result->push_back( value_list::create() ); 00084 result->back()->push_back( objectize< ss_decl_enum > ::create( this->result ) ); 00085 return result; 00086 } 00087 00088 00089 /*! 00090 Marking routine is used for garbage collection. 00091 \author lsg 00092 */ 00093 void ss_decl_to_enum::gc_mark() 00094 { 00095 ss_declaration_visitor::gc_mark(); 00096 } 00097 00098 // End of class ss_decl_to_enum. 00099 00100 // ------------- Class sa_deconstruct_spse follows. ------------- 00101 00102 /*! 00103 \returns The value of sa_deconstruct_spse::result. 00104 \author lsg 00105 */ 00106 ptr< or_or_functional > sa_deconstruct_spse::result_get() const 00107 { 00108 return result; 00109 } 00110 00111 /*! 00112 \param[in] x The new value to set sa_deconstruct_spse::result to. 00113 \author lsg 00114 */ 00115 void sa_deconstruct_spse::result_set(const ptr< or_or_functional > & x) 00116 { 00117 sa_deconstruct_spse::result = x; 00118 } 00119 00120 /*! 00121 This factory method for class sa_deconstruct_spse takes values of all fields as arguments. 00122 \author lsg 00123 */ 00124 ptr< sa_deconstruct_spse > sa_deconstruct_spse::create(ptr< or_or_functional > a__sa_deconstruct_spse__result) 00125 { 00126 return ptr< sa_deconstruct_spse > ( new sa_deconstruct_spse(a__sa_deconstruct_spse__result) ); 00127 } 00128 00129 /*! 00130 This factory method for class sa_deconstruct_spse uses initializers. 00131 \author lsg 00132 */ 00133 ptr< sa_deconstruct_spse > sa_deconstruct_spse::create() 00134 { 00135 return ptr< sa_deconstruct_spse > ( new sa_deconstruct_spse(NULL) ); 00136 } 00137 00138 /*! 00139 Generated constructor for class sa_deconstruct_spse. 00140 \author lsg 00141 */ 00142 sa_deconstruct_spse::sa_deconstruct_spse (ptr< or_or_functional > a__sa_deconstruct_spse__result) 00143 : as_expr_visitor(), result(a__sa_deconstruct_spse__result) 00144 {} 00145 00146 ptr< object::reflection_list > sa_deconstruct_spse::reflection_get() const 00147 { 00148 if (!reflection) { 00149 typedef class_reflection::field_metadata md; 00150 typedef class_reflection::field_metadata_list mdlist; 00151 ptr<mdlist> mdl = mdlist::create(); 00152 mdl->push_back( md::create( "result", "or_or_functional" ) ); 00153 reflection = reflection_list::create( as_expr_visitor::reflection_get() ); 00154 reflection->push_back( class_reflection::create( "sa_deconstruct_spse", mdl ) ); 00155 } 00156 return reflection; 00157 } 00158 00159 ptr< object::field_list_list > sa_deconstruct_spse::field_values_get() const 00160 { 00161 ptr < field_list_list > result = as_expr_visitor::field_values_get(); 00162 result->push_back( value_list::create() ); 00163 result->back()->push_back( this->result ); 00164 return result; 00165 } 00166 00167 ptr< or_or_functional > sa_deconstruct_spse::process( const ptr< ::lestes::lang::cplus::sem::as_expression > & o ) 00168 { 00169 lassert2( o, "Cannot visit NULL object." ); 00170 o->accept_as_expr_visitor( ptr< as_expr_visitor >(this) ); 00171 return result_get(); 00172 } 00173 00174 00175 /*! 00176 Marking routine is used for garbage collection. 00177 \author lsg 00178 */ 00179 void sa_deconstruct_spse::gc_mark() 00180 { 00181 as_expr_visitor::gc_mark(); 00182 } 00183 00184 // End of class sa_deconstruct_spse. 00185 00186 00187 // static data members follow 00188 ptr<object::reflection_list> ss_decl_to_enum::reflection = reflection; 00189 ptr<object::reflection_list> sa_deconstruct_spse::reflection = reflection; 00190 00191 end_package(sem); 00192 end_package(cplus); 00193 end_package(lang); 00194 end_package(lestes); 00195
1.5.1-20070107