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