00001 // This file is automatically generated, do not edit. 00002 00003 /*! 00004 \file 00005 \brief Function operator recognition visitor. 00006 Visitor recognizing declarator operator. 00007 */ 00008 00009 #include <lestes/lang/cplus/sem/as_decl.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/as_declarator_op2op_func.g.hh> 00016 00017 package(lestes); 00018 package(lang); 00019 package(cplus); 00020 package(sem); 00021 00022 00023 // ------------- Class as_declarator_op2op_func follows. ------------- 00024 00025 /*! 00026 \returns The value of as_declarator_op2op_func::function. 00027 \author lsg 00028 */ 00029 ptr< ::lestes::lang::cplus::sem::as_declarator_op_func > as_declarator_op2op_func::function_get() const 00030 { 00031 return function; 00032 } 00033 00034 /*! 00035 Static field as_declarator_op2op_func::the_instance. 00036 \author lsg 00037 */ 00038 ptr< as_declarator_op2op_func > as_declarator_op2op_func::the_instance = the_instance; 00039 00040 /*! 00041 Generated instance() method for singleton class as_declarator_op2op_func. 00042 \author lsg 00043 */ 00044 ptr< as_declarator_op2op_func > as_declarator_op2op_func::instance() 00045 { 00046 return the_instance ? the_instance : the_instance = new as_declarator_op2op_func(NULL); 00047 } 00048 00049 /*! 00050 Generated constructor for class as_declarator_op2op_func. 00051 \author lsg 00052 */ 00053 as_declarator_op2op_func::as_declarator_op2op_func (ptr< ::lestes::lang::cplus::sem::as_declarator_op_func > a__as_declarator_op2op_func__function) 00054 : as_declarator_op_default_visitor(), function(a__as_declarator_op2op_func__function) 00055 {} 00056 00057 ptr< object::reflection_list > as_declarator_op2op_func::reflection_get() const 00058 { 00059 if (!reflection) { 00060 typedef class_reflection::field_metadata md; 00061 typedef class_reflection::field_metadata_list mdlist; 00062 ptr<mdlist> mdl = mdlist::create(); 00063 mdl->push_back( md::create( "function", "as_declarator_op_func" ) ); 00064 reflection = reflection_list::create( as_declarator_op_default_visitor::reflection_get() ); 00065 reflection->push_back( class_reflection::create( "as_declarator_op2op_func", mdl ) ); 00066 } 00067 return reflection; 00068 } 00069 00070 ptr< object::field_list_list > as_declarator_op2op_func::field_values_get() const 00071 { 00072 ptr < field_list_list > result = as_declarator_op_default_visitor::field_values_get(); 00073 result->push_back( value_list::create() ); 00074 result->back()->push_back( this->function ); 00075 return result; 00076 } 00077 00078 ptr< ::lestes::lang::cplus::sem::as_declarator_op_func > as_declarator_op2op_func::process( const ptr< ::lestes::lang::cplus::sem::as_declarator_op > & o ) 00079 { 00080 lassert2( o, "Cannot visit NULL object." ); 00081 o->accept_as_declarator_op_visitor( ptr< as_declarator_op_visitor >(this) ); 00082 return function_get(); 00083 } 00084 00085 00086 /*! 00087 Marking routine is used for garbage collection. 00088 \author lsg 00089 */ 00090 void as_declarator_op2op_func::gc_mark() 00091 { 00092 as_declarator_op_default_visitor::gc_mark(); 00093 } 00094 00095 // End of class as_declarator_op2op_func. 00096 00097 00098 // static data members follow 00099 ptr<object::reflection_list> as_declarator_op2op_func::reflection = reflection; 00100 00101 end_package(sem); 00102 end_package(cplus); 00103 end_package(lang); 00104 end_package(lestes); 00105
1.5.1-20070107