00001
00002
00003 #ifndef lestes__lang__cplus__sem__lex_literal_to_ss_literal_info_g_hh__included
00004 #define lestes__lang__cplus__sem__lex_literal_to_ss_literal_info_g_hh__included
00005
00006 #include <lestes/common.hh>
00007 #include <lestes/lang/cplus/lex/lex_literal_visitor.v.g.hh>
00008
00009 #include <lestes/std/objectize_macros.hh>
00010 package(lestes);
00011 package(std);
00012 class object;
00013 end_package(std);
00014 end_package(lestes);
00015
00016 package(lestes);
00017 package(lang);
00018 package(cplus);
00019 package(lex);
00020 class lex_literal_visitor;
00021 end_package(lex);
00022 end_package(cplus);
00023 end_package(lang);
00024 end_package(lestes);
00025
00026 package(lestes);
00027 package(lang);
00028 package(cplus);
00029 package(lex);
00030 class cpp_token;
00031 end_package(lex);
00032 end_package(cplus);
00033 end_package(lang);
00034 end_package(lestes);
00035
00036 package(lestes);
00037 package(lang);
00038 package(cplus);
00039 package(lex);
00040 class lex_literal;
00041 end_package(lex);
00042 end_package(cplus);
00043 end_package(lang);
00044 end_package(lestes);
00045
00046 package(lestes);
00047 package(lang);
00048 package(cplus);
00049 package(sem);
00050 class ss_literal_info;
00051 end_package(sem);
00052 end_package(cplus);
00053 end_package(lang);
00054 end_package(lestes);
00055
00056 package(lestes);
00057 package(lang);
00058 package(cplus);
00059 package(sem);
00060
00061
00062 class lex_literal_to_ss_literal_info;
00063
00064
00065
00066
00067
00068
00069 class lex_literal_to_ss_literal_info : public ::lestes::lang::cplus::lex::lex_literal_visitor {
00070 public:
00071
00072 ptr< ::lestes::lang::cplus::lex::cpp_token > token_get() const;
00073
00074
00075 void token_set(const ptr< ::lestes::lang::cplus::lex::cpp_token > &);
00076
00077
00078 ptr< ::lestes::lang::cplus::sem::ss_literal_info > result_get() const;
00079
00080
00081 void result_set(const ptr< ::lestes::lang::cplus::sem::ss_literal_info > &);
00082
00083 static ptr< ::lestes::lang::cplus::sem::ss_literal_info > process_token(ptr< ::lestes::lang::cplus::lex::cpp_token > tok);
00084
00085 virtual void visit_lex_integral_literal(ptr< ::lestes::lang::cplus::lex::lex_integral_literal > );
00086
00087 virtual void visit_lex_floating_literal(ptr< ::lestes::lang::cplus::lex::lex_floating_literal > );
00088
00089 virtual void visit_lex_character_literal(ptr< ::lestes::lang::cplus::lex::lex_character_literal > );
00090
00091 virtual void visit_lex_string_literal(ptr< ::lestes::lang::cplus::lex::lex_string_literal > );
00092
00093 virtual void visit_lex_boolean_literal(ptr< ::lestes::lang::cplus::lex::lex_boolean_literal > );
00094
00095
00096
00097 static ptr< lex_literal_to_ss_literal_info > create (
00098 ptr< ::lestes::lang::cplus::lex::cpp_token > a__lex_literal_to_ss_literal_info__token,
00099 ptr< ::lestes::lang::cplus::sem::ss_literal_info > a__lex_literal_to_ss_literal_info__result);
00100
00101
00102 static ptr< lex_literal_to_ss_literal_info > create (
00103 ptr< ::lestes::lang::cplus::lex::cpp_token > a__lex_literal_to_ss_literal_info__token);
00104
00105
00106
00107 ptr< ::lestes::lang::cplus::sem::ss_literal_info > process( const ptr< ::lestes::lang::cplus::lex::lex_literal > & );
00108
00109
00110 virtual ptr<reflection_list> reflection_get() const;
00111
00112 virtual ptr<field_list_list> field_values_get() const;
00113
00114 protected:
00115
00116 lex_literal_to_ss_literal_info (
00117 ptr< ::lestes::lang::cplus::lex::cpp_token > a__lex_literal_to_ss_literal_info__token,
00118 ptr< ::lestes::lang::cplus::sem::ss_literal_info > a__lex_literal_to_ss_literal_info__result);
00119
00120
00121 virtual void gc_mark();
00122
00123 private:
00124 srp< ::lestes::lang::cplus::lex::cpp_token > token;
00125 srp< ::lestes::lang::cplus::sem::ss_literal_info > result;
00126 static ptr<reflection_list> reflection;
00127
00128 };
00129
00130
00131 end_package(sem);
00132 end_package(cplus);
00133 end_package(lang);
00134 end_package(lestes);
00135
00136 #endif // lestes__lang__cplus__sem__lex_literal_to_ss_literal_info_g_hh__included