00001
00002
00003 #include <lestes/lang/cplus/lex/lex_literal.g.hh>
00004 #include <lestes/lang/cplus/lex/cpp_token.hh>
00005 #include <lestes/lang/cplus/sem/ss_literal_info.g.hh>
00006
00007 #include <lestes/std/list.hh>
00008 #include <lestes/std/pair.hh>
00009 #include <lestes/std/reflect.hh>
00010
00011 #include <lestes/lang/cplus/sem/lex_literal_to_ss_literal_info.g.hh>
00012
00013 package(lestes);
00014 package(lang);
00015 package(cplus);
00016 package(sem);
00017
00018
00019
00020
00021
00022
00023
00024
00025 ptr< ::lestes::lang::cplus::lex::cpp_token > lex_literal_to_ss_literal_info::token_get() const
00026 {
00027 return token;
00028 }
00029
00030
00031
00032
00033
00034 void lex_literal_to_ss_literal_info::token_set(const ptr< ::lestes::lang::cplus::lex::cpp_token > & x)
00035 {
00036 lex_literal_to_ss_literal_info::token = x;
00037 }
00038
00039
00040
00041
00042
00043 ptr< ::lestes::lang::cplus::sem::ss_literal_info > lex_literal_to_ss_literal_info::result_get() const
00044 {
00045 return result;
00046 }
00047
00048
00049
00050
00051
00052 void lex_literal_to_ss_literal_info::result_set(const ptr< ::lestes::lang::cplus::sem::ss_literal_info > & x)
00053 {
00054 lex_literal_to_ss_literal_info::result = x;
00055 }
00056
00057
00058
00059
00060
00061 ptr< lex_literal_to_ss_literal_info > lex_literal_to_ss_literal_info::create(ptr< ::lestes::lang::cplus::lex::cpp_token > a__lex_literal_to_ss_literal_info__token,
00062 ptr< ::lestes::lang::cplus::sem::ss_literal_info > a__lex_literal_to_ss_literal_info__result)
00063 {
00064 return ptr< lex_literal_to_ss_literal_info > ( new lex_literal_to_ss_literal_info(a__lex_literal_to_ss_literal_info__token,
00065 a__lex_literal_to_ss_literal_info__result) );
00066 }
00067
00068
00069
00070
00071
00072 ptr< lex_literal_to_ss_literal_info > lex_literal_to_ss_literal_info::create(ptr< ::lestes::lang::cplus::lex::cpp_token > a__lex_literal_to_ss_literal_info__token)
00073 {
00074 return ptr< lex_literal_to_ss_literal_info > ( new lex_literal_to_ss_literal_info(a__lex_literal_to_ss_literal_info__token, NULL) );
00075 }
00076
00077
00078
00079
00080
00081 lex_literal_to_ss_literal_info::lex_literal_to_ss_literal_info (ptr< ::lestes::lang::cplus::lex::cpp_token > a__lex_literal_to_ss_literal_info__token,
00082 ptr< ::lestes::lang::cplus::sem::ss_literal_info > a__lex_literal_to_ss_literal_info__result)
00083 : lex_literal_visitor(), token(checked(a__lex_literal_to_ss_literal_info__token)), result(a__lex_literal_to_ss_literal_info__result)
00084 {}
00085
00086 ptr< object::reflection_list > lex_literal_to_ss_literal_info::reflection_get() const
00087 {
00088 if (!reflection) {
00089 typedef class_reflection::field_metadata md;
00090 typedef class_reflection::field_metadata_list mdlist;
00091 ptr<mdlist> mdl = mdlist::create();
00092 mdl->push_back( md::create( "token", "cpp_token" ) );
00093 mdl->push_back( md::create( "result", "ss_literal_info" ) );
00094 reflection = reflection_list::create( ::lestes::lang::cplus::lex::lex_literal_visitor::reflection_get() );
00095 reflection->push_back( class_reflection::create( "lex_literal_to_ss_literal_info", mdl ) );
00096 }
00097 return reflection;
00098 }
00099
00100 ptr< object::field_list_list > lex_literal_to_ss_literal_info::field_values_get() const
00101 {
00102 ptr < field_list_list > result = ::lestes::lang::cplus::lex::lex_literal_visitor::field_values_get();
00103 result->push_back( value_list::create() );
00104 result->back()->push_back( this->token );
00105 result->push_back( value_list::create() );
00106 result->back()->push_back( this->result );
00107 return result;
00108 }
00109
00110 ptr< ::lestes::lang::cplus::sem::ss_literal_info > lex_literal_to_ss_literal_info::process( const ptr< ::lestes::lang::cplus::lex::lex_literal > & o )
00111 {
00112 lassert2( o, "Cannot visit NULL object." );
00113 o->accept_lex_literal_visitor( ptr< lex_literal_visitor >(this) );
00114 return result_get();
00115 }
00116
00117
00118
00119
00120
00121
00122 void lex_literal_to_ss_literal_info::gc_mark()
00123 {
00124 ::lestes::lang::cplus::lex::lex_literal_visitor::gc_mark();
00125 }
00126
00127
00128
00129
00130
00131 ptr<object::reflection_list> lex_literal_to_ss_literal_info::reflection = reflection;
00132
00133 end_package(sem);
00134 end_package(cplus);
00135 end_package(lang);
00136 end_package(lestes);
00137