sa_deconstruct_spse.g.hh

Go to the documentation of this file.
00001 // This file is automatically generated, do not edit.
00002 
00003 #ifndef lestes__lang__cplus__sem__sa_deconstruct_spse_g_hh__included
00004 #define lestes__lang__cplus__sem__sa_deconstruct_spse_g_hh__included
00005 
00006 #include <lestes/common.hh>
00007 #include <lestes/std/list.hh>
00008 #include <lestes/lang/cplus/sem/as_visitor.v.g.hh>
00009 #include <lestes/lang/cplus/sem/ss_declaration_visitor.v.g.hh>
00010 
00011 #include <lestes/std/objectize_macros.hh>
00012 package(lestes);
00013 package(lang);
00014 package(cplus);
00015 package(sem);
00016 
00017 enum ss_decl_enum {
00018         INJECTED_CLASS_DECLARATION,
00019         STRUCTURE_DECLARATION,
00020         NAMESPACE_DEFINITION,
00021         OBJECT_DECLARATION,
00022         BITFIELD_DECLARATION,
00023         PARAMETER_DECLARATION,
00024         ENUMERATOR_DECLARATION,
00025         ENUM_DEFINITION,
00026         TYPEDEF_DEFINITION,
00027         USING_DECLARATION,
00028         COMPOUND_STMT_DECLARATION,
00029         FAKE_DECLARATION,
00030         FUNCTION_DECLARATION,
00031         METHOD_DECLARATION,
00032         BUILTIN_OPERATOR_DECLARATION
00033 };
00034 
00035 
00036 class ss_expression;
00037 class ss_decl_seq;
00038 class ss_sp;
00039 class or_or_functional;
00040 class ss_declaration_visitor;
00041 class ss_decl_to_enum;
00042 class sa_deconstruct_spse;
00043 
00044 
00045 class ss_decl_to_enum : public ss_declaration_visitor {
00046 public:
00047         //! The method result_get returns the value of the field ss_decl_to_enum::result.
00048         ss_decl_enum result_get() const;
00049 
00050         //! The method result_set sets the field ss_decl_to_enum::result to the given value.
00051         void result_set(ss_decl_enum);
00052 
00053         virtual void visit_ss_namespace_definition(ptr< ::lestes::lang::cplus::sem::ss_namespace_definition > );
00054 
00055         virtual void visit_ss_object_declaration(ptr< ::lestes::lang::cplus::sem::ss_object_declaration > );
00056 
00057         virtual void visit_ss_bitfield_declaration(ptr< ::lestes::lang::cplus::sem::ss_bitfield_declaration > );
00058 
00059         virtual void visit_ss_parameter_declaration(ptr< ::lestes::lang::cplus::sem::ss_parameter_declaration > );
00060 
00061         virtual void visit_ss_fake_declaration(ptr< ::lestes::lang::cplus::sem::ss_fake_declaration > );
00062 
00063         virtual void visit_ss_injected_class_declaration(ptr< ::lestes::lang::cplus::sem::ss_injected_class_declaration > );
00064 
00065         virtual void visit_ss_enum_definition(ptr< ::lestes::lang::cplus::sem::ss_enum_definition > );
00066 
00067         virtual void visit_ss_typedef_definition(ptr< ::lestes::lang::cplus::sem::ss_typedef_definition > );
00068 
00069         virtual void visit_ss_enumerator_declaration(ptr< ::lestes::lang::cplus::sem::ss_enumerator_declaration > );
00070 
00071         virtual void visit_ss_structure_declaration(ptr< ::lestes::lang::cplus::sem::ss_structure_declaration > );
00072 
00073         virtual void visit_ss_function_declaration(ptr< ::lestes::lang::cplus::sem::ss_function_declaration > );
00074 
00075         virtual void visit_ss_method_declaration(ptr< ::lestes::lang::cplus::sem::ss_method_declaration > );
00076 
00077         virtual void visit_ss_using_declaration(ptr< ::lestes::lang::cplus::sem::ss_using_declaration > );
00078 
00079         virtual void visit_ss_compound_stmt_declaration(ptr< ::lestes::lang::cplus::sem::ss_compound_stmt_declaration > );
00080 
00081         virtual void visit_ss_builtin_operator_declaration(ptr< ::lestes::lang::cplus::sem::ss_builtin_operator_declaration > );
00082 
00083         
00084         //! First generated factory method for class ss_decl_to_enum.
00085         static ptr< ss_decl_to_enum > create (
00086                 ss_decl_enum a__ss_decl_to_enum__result);
00087 
00088         //! Second generated factory method for class ss_decl_to_enum.
00089         static ptr< ss_decl_to_enum > create (
00090                 );
00091 
00092         
00093 
00094         //! for purposes of dumping
00095         virtual ptr<reflection_list> reflection_get() const;
00096         //! for purposes of dumping
00097         virtual ptr<field_list_list> field_values_get() const;
00098         
00099 protected:
00100         //! Generated constructor for class ss_decl_to_enum.
00101         ss_decl_to_enum (
00102                 ss_decl_enum a__ss_decl_to_enum__result);
00103 
00104         //! Marking routine for class ss_decl_to_enum. 
00105         virtual void gc_mark();
00106 
00107 private:
00108         ss_decl_enum result;
00109         static ptr<reflection_list> reflection;
00110         
00111 }; // ss_decl_to_enum
00112 
00113 
00114 class sa_deconstruct_spse : public as_expr_visitor {
00115 public:
00116         //! The method result_get returns the value of the field sa_deconstruct_spse::result.
00117         ptr< or_or_functional > result_get() const;
00118 
00119         //! The method result_set sets the field sa_deconstruct_spse::result to the given value.
00120         void result_set(const ptr< or_or_functional > &);
00121 
00122         template <typename AS, typename OP> void construct_bin_op(ptr< AS > as);
00123 
00124         template <typename AS, typename OP> void construct_unary_op_nocreate(ptr< AS > as);
00125 
00126         template <typename AS, typename OP> void construct_unary_op_create(ptr< AS > as);
00127 
00128         virtual void visit_as_empty_expression(ptr< ::lestes::lang::cplus::sem::as_empty_expression > );
00129 
00130         virtual void visit_as_expression_qmark(ptr< ::lestes::lang::cplus::sem::as_expression_qmark > );
00131 
00132         virtual void visit_as_expression_comma(ptr< ::lestes::lang::cplus::sem::as_expression_comma > );
00133 
00134         virtual void visit_as_expression_equal(ptr< ::lestes::lang::cplus::sem::as_expression_equal > );
00135 
00136         virtual void visit_as_expression_plus_equal(ptr< ::lestes::lang::cplus::sem::as_expression_plus_equal > );
00137 
00138         virtual void visit_as_expression_minus_equal(ptr< ::lestes::lang::cplus::sem::as_expression_minus_equal > );
00139 
00140         virtual void visit_as_expression_star_equal(ptr< ::lestes::lang::cplus::sem::as_expression_star_equal > );
00141 
00142         virtual void visit_as_expression_slash_equal(ptr< ::lestes::lang::cplus::sem::as_expression_slash_equal > );
00143 
00144         virtual void visit_as_expression_percent_equal(ptr< ::lestes::lang::cplus::sem::as_expression_percent_equal > );
00145 
00146         virtual void visit_as_expression_hat_equal(ptr< ::lestes::lang::cplus::sem::as_expression_hat_equal > );
00147 
00148         virtual void visit_as_expression_amp_equal(ptr< ::lestes::lang::cplus::sem::as_expression_amp_equal > );
00149 
00150         virtual void visit_as_expression_vbar_equal(ptr< ::lestes::lang::cplus::sem::as_expression_vbar_equal > );
00151 
00152         virtual void visit_as_expression_less_less_equal(ptr< ::lestes::lang::cplus::sem::as_expression_less_less_equal > );
00153 
00154         virtual void visit_as_expression_greater_greater_equal(ptr< ::lestes::lang::cplus::sem::as_expression_greater_greater_equal > );
00155 
00156         virtual void visit_as_expression_equal_equal(ptr< ::lestes::lang::cplus::sem::as_expression_equal_equal > );
00157 
00158         virtual void visit_as_expression_exclam_equal(ptr< ::lestes::lang::cplus::sem::as_expression_exclam_equal > );
00159 
00160         virtual void visit_as_expression_less_equal(ptr< ::lestes::lang::cplus::sem::as_expression_less_equal > );
00161 
00162         virtual void visit_as_expression_greater_equal(ptr< ::lestes::lang::cplus::sem::as_expression_greater_equal > );
00163 
00164         virtual void visit_as_expression_less(ptr< ::lestes::lang::cplus::sem::as_expression_less > );
00165 
00166         virtual void visit_as_expression_greater(ptr< ::lestes::lang::cplus::sem::as_expression_greater > );
00167 
00168         virtual void visit_as_expression_vbar_vbar(ptr< ::lestes::lang::cplus::sem::as_expression_vbar_vbar > );
00169 
00170         virtual void visit_as_expression_amp_amp(ptr< ::lestes::lang::cplus::sem::as_expression_amp_amp > );
00171 
00172         virtual void visit_as_expression_vbar(ptr< ::lestes::lang::cplus::sem::as_expression_vbar > );
00173 
00174         virtual void visit_as_expression_amp(ptr< ::lestes::lang::cplus::sem::as_expression_amp > );
00175 
00176         virtual void visit_as_expression_hat(ptr< ::lestes::lang::cplus::sem::as_expression_hat > );
00177 
00178         virtual void visit_as_expression_less_less(ptr< ::lestes::lang::cplus::sem::as_expression_less_less > );
00179 
00180         virtual void visit_as_expression_greater_greater(ptr< ::lestes::lang::cplus::sem::as_expression_greater_greater > );
00181 
00182         virtual void visit_as_expression_plus(ptr< ::lestes::lang::cplus::sem::as_expression_plus > );
00183 
00184         virtual void visit_as_expression_minus(ptr< ::lestes::lang::cplus::sem::as_expression_minus > );
00185 
00186         virtual void visit_as_expression_star(ptr< ::lestes::lang::cplus::sem::as_expression_star > );
00187 
00188         virtual void visit_as_expression_slash(ptr< ::lestes::lang::cplus::sem::as_expression_slash > );
00189 
00190         virtual void visit_as_expression_percent(ptr< ::lestes::lang::cplus::sem::as_expression_percent > );
00191 
00192         virtual void visit_as_expression_dot_star(ptr< ::lestes::lang::cplus::sem::as_expression_dot_star > );
00193 
00194         virtual void visit_as_expression_minus_greater_star(ptr< ::lestes::lang::cplus::sem::as_expression_minus_greater_star > );
00195 
00196         virtual void visit_as_expression_brackets(ptr< ::lestes::lang::cplus::sem::as_expression_brackets > );
00197 
00198         virtual void visit_as_expression_plus_plus_pre(ptr< ::lestes::lang::cplus::sem::as_expression_plus_plus_pre > );
00199 
00200         virtual void visit_as_expression_plus_plus_post(ptr< ::lestes::lang::cplus::sem::as_expression_plus_plus_post > );
00201 
00202         virtual void visit_as_expression_minus_minus_pre(ptr< ::lestes::lang::cplus::sem::as_expression_minus_minus_pre > );
00203 
00204         virtual void visit_as_expression_minus_minus_post(ptr< ::lestes::lang::cplus::sem::as_expression_minus_minus_post > );
00205 
00206         virtual void visit_as_expression_unary_amp(ptr< ::lestes::lang::cplus::sem::as_expression_unary_amp > );
00207 
00208         virtual void visit_as_expression_unary_plus(ptr< ::lestes::lang::cplus::sem::as_expression_unary_plus > );
00209 
00210         virtual void visit_as_expression_unary_minus(ptr< ::lestes::lang::cplus::sem::as_expression_unary_minus > );
00211 
00212         virtual void visit_as_expression_unary_star(ptr< ::lestes::lang::cplus::sem::as_expression_unary_star > );
00213 
00214         virtual void visit_as_expression_tilde(ptr< ::lestes::lang::cplus::sem::as_expression_tilde > );
00215 
00216         virtual void visit_as_expression_exclam(ptr< ::lestes::lang::cplus::sem::as_expression_exclam > );
00217 
00218         virtual void visit_as_expression_sizeof_expr(ptr< ::lestes::lang::cplus::sem::as_expression_sizeof_expr > );
00219 
00220         virtual void visit_as_expression_typeid_expr(ptr< ::lestes::lang::cplus::sem::as_expression_typeid_expr > );
00221 
00222         virtual void visit_as_expression_delete_base(ptr< ::lestes::lang::cplus::sem::as_expression_delete_base > );
00223 
00224         virtual void visit_as_expression_delete(ptr< ::lestes::lang::cplus::sem::as_expression_delete > );
00225 
00226         virtual void visit_as_expression_delete_array(ptr< ::lestes::lang::cplus::sem::as_expression_delete_array > );
00227 
00228         virtual void visit_as_expression_throw(ptr< ::lestes::lang::cplus::sem::as_expression_throw > );
00229 
00230         virtual void visit_as_expression_sizeof_type(ptr< ::lestes::lang::cplus::sem::as_expression_sizeof_type > );
00231 
00232         virtual void visit_as_expression_typeid_type(ptr< ::lestes::lang::cplus::sem::as_expression_typeid_type > );
00233 
00234         virtual void visit_as_expression_new(ptr< ::lestes::lang::cplus::sem::as_expression_new > );
00235 
00236         virtual void visit_as_this_expression(ptr< ::lestes::lang::cplus::sem::as_this_expression > );
00237 
00238         virtual void visit_as_literal(ptr< ::lestes::lang::cplus::sem::as_literal > );
00239 
00240         virtual void visit_as_name_expression(ptr< ::lestes::lang::cplus::sem::as_name_expression > );
00241 
00242         virtual void visit_as_expression_reinterpret_cast(ptr< ::lestes::lang::cplus::sem::as_expression_reinterpret_cast > );
00243 
00244         virtual void visit_as_expression_dynamic_cast(ptr< ::lestes::lang::cplus::sem::as_expression_dynamic_cast > );
00245 
00246         virtual void visit_as_expression_static_cast(ptr< ::lestes::lang::cplus::sem::as_expression_static_cast > );
00247 
00248         virtual void visit_as_expression_const_cast(ptr< ::lestes::lang::cplus::sem::as_expression_const_cast > );
00249 
00250         virtual void visit_as_expression_old_style_cast(ptr< ::lestes::lang::cplus::sem::as_expression_old_style_cast > );
00251 
00252         virtual void visit_as_expression_functional_style_cast(ptr< ::lestes::lang::cplus::sem::as_expression_functional_style_cast > );
00253 
00254         virtual void visit_as_expression_member_access_dot(ptr< ::lestes::lang::cplus::sem::as_expression_member_access_dot > );
00255 
00256         virtual void visit_as_expression_member_access_arrow(ptr< ::lestes::lang::cplus::sem::as_expression_member_access_arrow > );
00257 
00258         virtual void visit_as_expression_pseudo_destruct_dot(ptr< ::lestes::lang::cplus::sem::as_expression_pseudo_destruct_dot > );
00259 
00260         virtual void visit_as_expression_pseudo_destruct_arrow(ptr< ::lestes::lang::cplus::sem::as_expression_pseudo_destruct_arrow > );
00261 
00262         virtual void visit_as_expression_function_call(ptr< ::lestes::lang::cplus::sem::as_expression_function_call > );
00263 
00264         virtual void visit_as_constant_expression(ptr< ::lestes::lang::cplus::sem::as_constant_expression > );
00265 
00266         
00267         //! First generated factory method for class sa_deconstruct_spse.
00268         static ptr< sa_deconstruct_spse > create (
00269                 ptr< or_or_functional > a__sa_deconstruct_spse__result);
00270 
00271         //! Second generated factory method for class sa_deconstruct_spse.
00272         static ptr< sa_deconstruct_spse > create (
00273                 );
00274 
00275         
00276         //! "visit-return" method
00277         ptr< or_or_functional > process( const ptr< ::lestes::lang::cplus::sem::as_expression > & );
00278 
00279         //! for purposes of dumping
00280         virtual ptr<reflection_list> reflection_get() const;
00281         //! for purposes of dumping
00282         virtual ptr<field_list_list> field_values_get() const;
00283         
00284 protected:
00285         //! Generated constructor for class sa_deconstruct_spse.
00286         sa_deconstruct_spse (
00287                 ptr< or_or_functional > a__sa_deconstruct_spse__result);
00288 
00289         //! Marking routine for class sa_deconstruct_spse. 
00290         virtual void gc_mark();
00291 
00292 private:
00293         srp< or_or_functional > result;
00294         static ptr<reflection_list> reflection;
00295         
00296 }; // sa_deconstruct_spse
00297 
00298 
00299 end_package(sem);
00300 end_package(cplus);
00301 end_package(lang);
00302 end_package(lestes);
00303 
00304 package(lestes);
00305 package(std);
00306 specialize_objectize_for_enum( ::lestes::lang::cplus::sem::ss_decl_enum );
00307 end_package(std);
00308 end_package(lestes);
00309 
00310 #endif // lestes__lang__cplus__sem__sa_deconstruct_spse_g_hh__included

Generated on Mon Feb 12 18:27:07 2007 for lestes by doxygen 1.5.1-20070107