00001 // This file is automatically generated, do not edit. 00002 00003 /*! 00004 \file 00005 \brief Void specifier recognition. 00006 Visitor recognizing void simple type declaration specifier. 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_declaration_specifier2is_void.g.hh> 00016 00017 package(lestes); 00018 package(lang); 00019 package(cplus); 00020 package(sem); 00021 00022 00023 // ------------- Class as_declaration_specifier2is_void follows. ------------- 00024 00025 /*! 00026 \returns The value of as_declaration_specifier2is_void::void_flag. 00027 \author lsg 00028 */ 00029 bool as_declaration_specifier2is_void::void_flag_get() const 00030 { 00031 return void_flag; 00032 } 00033 00034 /*! 00035 This factory method for class as_declaration_specifier2is_void takes values of all fields as arguments. 00036 \author lsg 00037 */ 00038 ptr< as_declaration_specifier2is_void > as_declaration_specifier2is_void::create(bool a__as_declaration_specifier2is_void__void_flag) 00039 { 00040 return ptr< as_declaration_specifier2is_void > ( new as_declaration_specifier2is_void(a__as_declaration_specifier2is_void__void_flag) ); 00041 } 00042 00043 /*! 00044 This factory method for class as_declaration_specifier2is_void uses initializers. 00045 \author lsg 00046 */ 00047 ptr< as_declaration_specifier2is_void > as_declaration_specifier2is_void::create() 00048 { 00049 return ptr< as_declaration_specifier2is_void > ( new as_declaration_specifier2is_void(false) ); 00050 } 00051 00052 /*! 00053 Generated constructor for class as_declaration_specifier2is_void. 00054 \author lsg 00055 */ 00056 as_declaration_specifier2is_void::as_declaration_specifier2is_void (bool a__as_declaration_specifier2is_void__void_flag) 00057 : as_declaration_specifier2is_void_base(), void_flag(a__as_declaration_specifier2is_void__void_flag) 00058 {} 00059 00060 ptr< object::reflection_list > as_declaration_specifier2is_void::reflection_get() const 00061 { 00062 if (!reflection) { 00063 typedef class_reflection::field_metadata md; 00064 typedef class_reflection::field_metadata_list mdlist; 00065 ptr<mdlist> mdl = mdlist::create(); 00066 mdl->push_back( md::create( "void_flag", "bool" ) ); 00067 reflection = reflection_list::create( as_declaration_specifier2is_void_base::reflection_get() ); 00068 reflection->push_back( class_reflection::create( "as_declaration_specifier2is_void", mdl ) ); 00069 } 00070 return reflection; 00071 } 00072 00073 ptr< object::field_list_list > as_declaration_specifier2is_void::field_values_get() const 00074 { 00075 ptr < field_list_list > result = as_declaration_specifier2is_void_base::field_values_get(); 00076 result->push_back( value_list::create() ); 00077 result->back()->push_back( objectize< bool > ::create( this->void_flag ) ); 00078 return result; 00079 } 00080 00081 bool as_declaration_specifier2is_void::process( const ptr< ::lestes::lang::cplus::sem::as_declaration_specifier > & o ) 00082 { 00083 lassert2( o, "Cannot visit NULL object." ); 00084 o->accept_as_declaration_specifier_visitor( ptr< as_declaration_specifier_visitor >(this) ); 00085 return void_flag_get(); 00086 } 00087 00088 00089 /*! 00090 Marking routine is used for garbage collection. 00091 \author lsg 00092 */ 00093 void as_declaration_specifier2is_void::gc_mark() 00094 { 00095 as_declaration_specifier2is_void_base::gc_mark(); 00096 } 00097 00098 // End of class as_declaration_specifier2is_void. 00099 00100 00101 // static data members follow 00102 ptr<object::reflection_list> as_declaration_specifier2is_void::reflection = reflection; 00103 00104 end_package(sem); 00105 end_package(cplus); 00106 end_package(lang); 00107 end_package(lestes); 00108
1.5.1-20070107