or_or.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__or_or_g_hh__included
00004 #define lestes__lang__cplus__sem__or_or_g_hh__included
00005 
00006 #include <lestes/common.hh>
00007 #include <lestes/std/list.hh>
00008 #include <lestes/std/set.hh>
00009 #include <lestes/lang/cplus/sem/ss_declaration_visitor.v.g.hh>
00010 #include <lestes/lang/cplus/sem/ss_decl_name_visitor.v.g.hh>
00011 #include <lestes/lang/cplus/sem/ss_expression.g.hh>
00012 #include <lestes/lang/cplus/sem/or_visitor.v.g.hh>
00013 
00014 #include <lestes/std/objectize_macros.hh>
00015 package(lestes);
00016 package(std);
00017 class object;
00018 end_package(std);
00019 end_package(lestes);
00020 
00021 package(lestes);
00022 package(std);
00023 class source_location;
00024 end_package(std);
00025 end_package(lestes);
00026 
00027 package(lestes);
00028 package(lang);
00029 package(cplus);
00030 package(sem);
00031 
00032 
00033 class ss_declaration;
00034 class ss_expression;
00035 class ss_type;
00036 class ss_builtin_operator_declaration;
00037 class ss_function_declaration;
00038 class ss_sp;
00039 class ss_declaration_time;
00040 class ss_literal_info;
00041 class cpp_token;
00042 class or_or_functional;
00043 class or_or_functional_visitor;
00044 class or_or_functional_concrete;
00045 class or_or_functional_comma;
00046 class or_or_functional_addrof;
00047 class or_or_functional_literal;
00048 class or_or_functional_func_decl_set;
00049 class or_or_functional_decl;
00050 class or_or_functional_ambiguous;
00051 class or_or_functional_noviable;
00052 class or_or_functional_this;
00053 class or_declaration_helper;
00054 class or_builtin_operator_expression_creator;
00055 class or_funcall_creator;
00056 class or_funcall_creator_context;
00057 
00058 
00059 /*! \brief Base abstract class for functionals, representing function call
00060 
00061         This class represents the creator of the ss_expression descendants. It is used 
00062                                 in the process of "lazy creation" of ss_expressions in overload resolution and
00063                                 as->ss expression transformations. Every instance of this functional represents
00064                                 the ss_expression to be created later (using operator() of the functional).
00065                                 
00066 */
00067 class or_or_functional : public ::lestes::std::object {
00068 public:
00069         //! The method type_get returns the value of the field or_or_functional::type.
00070         ptr< ss_type > type_get() const;
00071 
00072         //! The method type_set sets the field or_or_functional::type to the given value.
00073         void type_set(const ptr< ss_type > &);
00074 
00075         // WARNING: Detailed doxygen description for method
00076         // should be near it's implementation, not in XML file.
00077 
00078         //! Operator, which constructs the actual expression (and invokes creation of subexpressions, calling recusrively operator() on them.
00079         virtual ptr< ss_expression > operator()(ptr< ss_sp > psp, ptr< ss_sp > nsp, ptr< ::lestes::std::source_location > location, ptr< ::lestes::std::list< srp< ss_sp > > > sp_list) abstract;
00080 
00081         virtual void accept_or_or_functional_visitor( ptr< or_or_functional_visitor > v ) abstract;
00082         
00083 
00084         //! for purposes of dumping
00085         virtual ptr<reflection_list> reflection_get() const;
00086         //! for purposes of dumping
00087         virtual ptr<field_list_list> field_values_get() const;
00088         
00089 protected:
00090         //! Generated constructor for class or_or_functional.
00091         or_or_functional (
00092                 ptr< ss_type > a__or_or_functional__type);
00093 
00094         //! Marking routine for class or_or_functional. 
00095         virtual void gc_mark();
00096 
00097 private:
00098         srp< ss_type > type;
00099         static ptr<reflection_list> reflection;
00100         
00101 }; // or_or_functional
00102 
00103 
00104 //! This is the concrete implementation of functional creating the ss_expression for the non-ambiguous case
00105 class or_or_functional_concrete : public or_or_functional {
00106 public:
00107         //! The method args_get returns the value of the field or_or_functional_concrete::args.
00108         ptr< ::lestes::std::list< srp< or_or_functional > > > args_get() const;
00109 
00110         //! The method args_set sets the field or_or_functional_concrete::args to the given value.
00111         void args_set(const ptr< ::lestes::std::list< srp< or_or_functional > > > & );
00112 
00113         //! The method declaration_get returns the value of the field or_or_functional_concrete::declaration.
00114         ptr< ss_declaration > declaration_get() const;
00115 
00116         //! The method declaration_set sets the field or_or_functional_concrete::declaration to the given value.
00117         void declaration_set(const ptr< ss_declaration > &);
00118 
00119         virtual ptr< ss_expression > operator()(ptr< ss_sp > psp, ptr< ss_sp > nsp, ptr< ::lestes::std::source_location > location, ptr< ::lestes::std::list< srp< ss_sp > > > sp_list);
00120 
00121         virtual void accept_or_or_functional_visitor( ptr< or_or_functional_visitor > v );
00122         
00123         //! First generated factory method for class or_or_functional_concrete.
00124         static ptr< or_or_functional_concrete > create (
00125                 ptr< ss_type > a__or_or_functional__type,
00126                 ptr< ::lestes::std::list< srp< or_or_functional > > > a__or_or_functional_concrete__args,
00127                 ptr< ss_declaration > a__or_or_functional_concrete__declaration);
00128 
00129         
00130 
00131         //! for purposes of dumping
00132         virtual ptr<reflection_list> reflection_get() const;
00133         //! for purposes of dumping
00134         virtual ptr<field_list_list> field_values_get() const;
00135         
00136 protected:
00137         //! Generated constructor for class or_or_functional_concrete.
00138         or_or_functional_concrete (
00139                 ptr< ss_type > a__or_or_functional__type,
00140                 ptr< ::lestes::std::list< srp< or_or_functional > > > a__or_or_functional_concrete__args,
00141                 ptr< ss_declaration > a__or_or_functional_concrete__declaration);
00142 
00143         //! Marking routine for class or_or_functional_concrete. 
00144         virtual void gc_mark();
00145 
00146 private:
00147         srp< ::lestes::std::list< srp< or_or_functional > > >  args;
00148         srp< ss_declaration > declaration;
00149         static ptr<reflection_list> reflection;
00150         
00151 }; // or_or_functional_concrete
00152 
00153 
00154 //! This is the concrete implementation of functional creating the ss_expression for the comma case (this has to be handled separately, as comma can be used for infinitely many types.
00155 class or_or_functional_comma : public or_or_functional {
00156 public:
00157         //! The method args_get returns the value of the field or_or_functional_comma::args.
00158         ptr< ::lestes::std::list< srp< or_or_functional > > > args_get() const;
00159 
00160         //! The method args_set sets the field or_or_functional_comma::args to the given value.
00161         void args_set(const ptr< ::lestes::std::list< srp< or_or_functional > > > & );
00162 
00163         virtual ptr< ss_expression > operator()(ptr< ss_sp > psp, ptr< ss_sp > nsp, ptr< ::lestes::std::source_location > location, ptr< ::lestes::std::list< srp< ss_sp > > > sp_list);
00164 
00165         virtual void accept_or_or_functional_visitor( ptr< or_or_functional_visitor > v );
00166         
00167         //! First generated factory method for class or_or_functional_comma.
00168         static ptr< or_or_functional_comma > create (
00169                 ptr< ss_type > a__or_or_functional__type,
00170                 ptr< ::lestes::std::list< srp< or_or_functional > > > a__or_or_functional_comma__args);
00171 
00172         
00173 
00174         //! for purposes of dumping
00175         virtual ptr<reflection_list> reflection_get() const;
00176         //! for purposes of dumping
00177         virtual ptr<field_list_list> field_values_get() const;
00178         
00179 protected:
00180         //! Generated constructor for class or_or_functional_comma.
00181         or_or_functional_comma (
00182                 ptr< ss_type > a__or_or_functional__type,
00183                 ptr< ::lestes::std::list< srp< or_or_functional > > > a__or_or_functional_comma__args);
00184 
00185         //! Marking routine for class or_or_functional_comma. 
00186         virtual void gc_mark();
00187 
00188 private:
00189         srp< ::lestes::std::list< srp< or_or_functional > > >  args;
00190         static ptr<reflection_list> reflection;
00191         
00192 }; // or_or_functional_comma
00193 
00194 
00195 //! This is the concrete implementation of functional creating the ss_expression for the address_of case (this has to be handled separately, as unary and can be used for infinitely many types.
00196 class or_or_functional_addrof : public or_or_functional {
00197 public:
00198         //! The method args_get returns the value of the field or_or_functional_addrof::args.
00199         ptr< ::lestes::std::list< srp< or_or_functional > > > args_get() const;
00200 
00201         //! The method args_set sets the field or_or_functional_addrof::args to the given value.
00202         void args_set(const ptr< ::lestes::std::list< srp< or_or_functional > > > & );
00203 
00204         virtual ptr< ss_expression > operator()(ptr< ss_sp > psp, ptr< ss_sp > nsp, ptr< ::lestes::std::source_location > location, ptr< ::lestes::std::list< srp< ss_sp > > > sp_list);
00205 
00206         virtual void accept_or_or_functional_visitor( ptr< or_or_functional_visitor > v );
00207         
00208         //! First generated factory method for class or_or_functional_addrof.
00209         static ptr< or_or_functional_addrof > create (
00210                 ptr< ss_type > a__or_or_functional__type,
00211                 ptr< ::lestes::std::list< srp< or_or_functional > > > a__or_or_functional_addrof__args);
00212 
00213         
00214 
00215         //! for purposes of dumping
00216         virtual ptr<reflection_list> reflection_get() const;
00217         //! for purposes of dumping
00218         virtual ptr<field_list_list> field_values_get() const;
00219         
00220 protected:
00221         //! Generated constructor for class or_or_functional_addrof.
00222         or_or_functional_addrof (
00223                 ptr< ss_type > a__or_or_functional__type,
00224                 ptr< ::lestes::std::list< srp< or_or_functional > > > a__or_or_functional_addrof__args);
00225 
00226         //! Marking routine for class or_or_functional_addrof. 
00227         virtual void gc_mark();
00228 
00229 private:
00230         srp< ::lestes::std::list< srp< or_or_functional > > >  args;
00231         static ptr<reflection_list> reflection;
00232         
00233 }; // or_or_functional_addrof
00234 
00235 
00236 //! This is the concrete implementation of functional creating the ss_expression for the literal case
00237 class or_or_functional_literal : public or_or_functional {
00238 public:
00239         //! The method literal_get returns the value of the field or_or_functional_literal::literal.
00240         ptr< ss_literal_info > literal_get() const;
00241 
00242         //! The method literal_set sets the field or_or_functional_literal::literal to the given value.
00243         void literal_set(const ptr< ss_literal_info > &);
00244 
00245         virtual ptr< ss_expression > operator()(ptr< ss_sp > psp, ptr< ss_sp > nsp, ptr< ::lestes::std::source_location > location, ptr< ::lestes::std::list< srp< ss_sp > > > sp_list);
00246 
00247         virtual void accept_or_or_functional_visitor( ptr< or_or_functional_visitor > v );
00248         
00249         //! First generated factory method for class or_or_functional_literal.
00250         static ptr< or_or_functional_literal > create (
00251                 ptr< ss_type > a__or_or_functional__type,
00252                 ptr< ss_literal_info > a__or_or_functional_literal__literal);
00253 
00254         
00255 
00256         //! for purposes of dumping
00257         virtual ptr<reflection_list> reflection_get() const;
00258         //! for purposes of dumping
00259         virtual ptr<field_list_list> field_values_get() const;
00260         
00261 protected:
00262         //! Generated constructor for class or_or_functional_literal.
00263         or_or_functional_literal (
00264                 ptr< ss_type > a__or_or_functional__type,
00265                 ptr< ss_literal_info > a__or_or_functional_literal__literal);
00266 
00267         //! Marking routine for class or_or_functional_literal. 
00268         virtual void gc_mark();
00269 
00270 private:
00271         srp< ss_literal_info > literal;
00272         static ptr<reflection_list> reflection;
00273         
00274 }; // or_or_functional_literal
00275 
00276 
00277 //! This functional holds list of function declarations, from which later the correct one, for creation ss_?funcall is chosen (this is used in sa_deconstruct_spse::visit_as_name_expression()
00278 class or_or_functional_func_decl_set : public or_or_functional {
00279 public:
00280         //! The method declarations_get returns the value of the field or_or_functional_func_decl_set::declarations.
00281         ptr< ::lestes::std::set< srp< ss_declaration > > > declarations_get() const;
00282 
00283         //! The method declarations_set sets the field or_or_functional_func_decl_set::declarations to the given value.
00284         void declarations_set(const ptr< ::lestes::std::set< srp< ss_declaration > > > & );
00285 
00286         virtual ptr< ss_expression > operator()(ptr< ss_sp > psp, ptr< ss_sp > nsp, ptr< ::lestes::std::source_location > location, ptr< ::lestes::std::list< srp< ss_sp > > > sp_list);
00287 
00288         virtual void accept_or_or_functional_visitor( ptr< or_or_functional_visitor > v );
00289         
00290         //! First generated factory method for class or_or_functional_func_decl_set.
00291         static ptr< or_or_functional_func_decl_set > create (
00292                 ptr< ss_type > a__or_or_functional__type,
00293                 ptr< ::lestes::std::set< srp< ss_declaration > > > a__or_or_functional_func_decl_set__declarations);
00294 
00295         
00296 
00297         //! for purposes of dumping
00298         virtual ptr<reflection_list> reflection_get() const;
00299         //! for purposes of dumping
00300         virtual ptr<field_list_list> field_values_get() const;
00301         
00302 protected:
00303         //! Generated constructor for class or_or_functional_func_decl_set.
00304         or_or_functional_func_decl_set (
00305                 ptr< ss_type > a__or_or_functional__type,
00306                 ptr< ::lestes::std::set< srp< ss_declaration > > > a__or_or_functional_func_decl_set__declarations);
00307 
00308         //! Marking routine for class or_or_functional_func_decl_set. 
00309         virtual void gc_mark();
00310 
00311 private:
00312         srp< ::lestes::std::set< srp< ss_declaration > > >  declarations;
00313         static ptr<reflection_list> reflection;
00314         
00315 }; // or_or_functional_func_decl_set
00316 
00317 
00318 //! This is the functional resembling the or_or_functional_func_decl_set. The difference is that this is for the case where only one (but we generally don't know what is the declaration of) declaration is returned. (this is used in sa_deconstruct_spse::visit_as_name_expression() and then for decission in sa_deconstruct_spse::visit_as_expression_function_call()
00319 class or_or_functional_decl : public or_or_functional {
00320 public:
00321         //! The method declaration_get returns the value of the field or_or_functional_decl::declaration.
00322         ptr< ss_declaration > declaration_get() const;
00323 
00324         //! The method declaration_set sets the field or_or_functional_decl::declaration to the given value.
00325         void declaration_set(const ptr< ss_declaration > &);
00326 
00327         virtual ptr< ss_expression > operator()(ptr< ss_sp > psp, ptr< ss_sp > nsp, ptr< ::lestes::std::source_location > location, ptr< ::lestes::std::list< srp< ss_sp > > > sp_list);
00328 
00329         virtual void accept_or_or_functional_visitor( ptr< or_or_functional_visitor > v );
00330         
00331         //! First generated factory method for class or_or_functional_decl.
00332         static ptr< or_or_functional_decl > create (
00333                 ptr< ss_type > a__or_or_functional__type,
00334                 ptr< ss_declaration > a__or_or_functional_decl__declaration);
00335 
00336         
00337 
00338         //! for purposes of dumping
00339         virtual ptr<reflection_list> reflection_get() const;
00340         //! for purposes of dumping
00341         virtual ptr<field_list_list> field_values_get() const;
00342         
00343 protected:
00344         //! Generated constructor for class or_or_functional_decl.
00345         or_or_functional_decl (
00346                 ptr< ss_type > a__or_or_functional__type,
00347                 ptr< ss_declaration > a__or_or_functional_decl__declaration);
00348 
00349         //! Marking routine for class or_or_functional_decl. 
00350         virtual void gc_mark();
00351 
00352 private:
00353         srp< ss_declaration > declaration;
00354         static ptr<reflection_list> reflection;
00355         
00356 }; // or_or_functional_decl
00357 
00358 
00359 //! This is the concrete implementation of functional creating the ss_expression for the ambiguous case
00360 class or_or_functional_ambiguous : public or_or_functional {
00361 public:
00362         //! The method viables_get returns the value of the field or_or_functional_ambiguous::viables.
00363         ptr< ::lestes::std::set< srp< ss_function_declaration > > > viables_get() const;
00364 
00365         //! The method viables_set sets the field or_or_functional_ambiguous::viables to the given value.
00366         void viables_set(const ptr< ::lestes::std::set< srp< ss_function_declaration > > > & );
00367 
00368         virtual ptr< ss_expression > operator()(ptr< ss_sp > psp, ptr< ss_sp > nsp, ptr< ::lestes::std::source_location > location, ptr< ::lestes::std::list< srp< ss_sp > > > sp_list);
00369 
00370         virtual void accept_or_or_functional_visitor( ptr< or_or_functional_visitor > v );
00371         
00372         //! First generated factory method for class or_or_functional_ambiguous.
00373         static ptr< or_or_functional_ambiguous > create (
00374                 ptr< ss_type > a__or_or_functional__type,
00375                 ptr< ::lestes::std::set< srp< ss_function_declaration > > > a__or_or_functional_ambiguous__viables);
00376 
00377         
00378 
00379         //! for purposes of dumping
00380         virtual ptr<reflection_list> reflection_get() const;
00381         //! for purposes of dumping
00382         virtual ptr<field_list_list> field_values_get() const;
00383         
00384 protected:
00385         //! Generated constructor for class or_or_functional_ambiguous.
00386         or_or_functional_ambiguous (
00387                 ptr< ss_type > a__or_or_functional__type,
00388                 ptr< ::lestes::std::set< srp< ss_function_declaration > > > a__or_or_functional_ambiguous__viables);
00389 
00390         //! Marking routine for class or_or_functional_ambiguous. 
00391         virtual void gc_mark();
00392 
00393 private:
00394         srp< ::lestes::std::set< srp< ss_function_declaration > > >  viables;
00395         static ptr<reflection_list> reflection;
00396         
00397 }; // or_or_functional_ambiguous
00398 
00399 
00400 //! This is the concrete implementation of functional creating the ss_expression for the no-viables-found case
00401 class or_or_functional_noviable : public or_or_functional {
00402 public:
00403         virtual ptr< ss_expression > operator()(ptr< ss_sp > psp, ptr< ss_sp > nsp, ptr< ::lestes::std::source_location > location, ptr< ::lestes::std::list< srp< ss_sp > > > sp_list);
00404 
00405         virtual void accept_or_or_functional_visitor( ptr< or_or_functional_visitor > v );
00406         
00407         //! First generated factory method for class or_or_functional_noviable.
00408         static ptr< or_or_functional_noviable > create (
00409                 ptr< ss_type > a__or_or_functional__type);
00410 
00411         
00412 
00413         //! for purposes of dumping
00414         virtual ptr<reflection_list> reflection_get() const;
00415         //! for purposes of dumping
00416         virtual ptr<field_list_list> field_values_get() const;
00417         
00418 protected:
00419         //! Generated constructor for class or_or_functional_noviable.
00420         or_or_functional_noviable (
00421                 ptr< ss_type > a__or_or_functional__type);
00422 
00423         //! Marking routine for class or_or_functional_noviable. 
00424         virtual void gc_mark();
00425 
00426 private:
00427         static ptr<reflection_list> reflection;
00428         
00429 }; // or_or_functional_noviable
00430 
00431 
00432 //! This is the concrete implementation of functional creating the ss_expression for the case of operator 'this'
00433 class or_or_functional_this : public or_or_functional {
00434 public:
00435         virtual ptr< ss_expression > operator()(ptr< ss_sp > psp, ptr< ss_sp > nsp, ptr< ::lestes::std::source_location > location, ptr< ::lestes::std::list< srp< ss_sp > > > sp_list);
00436 
00437         virtual void accept_or_or_functional_visitor( ptr< or_or_functional_visitor > v );
00438         
00439         //! First generated factory method for class or_or_functional_this.
00440         static ptr< or_or_functional_this > create (
00441                 ptr< ss_type > a__or_or_functional__type);
00442 
00443         
00444 
00445         //! for purposes of dumping
00446         virtual ptr<reflection_list> reflection_get() const;
00447         //! for purposes of dumping
00448         virtual ptr<field_list_list> field_values_get() const;
00449         
00450 protected:
00451         //! Generated constructor for class or_or_functional_this.
00452         or_or_functional_this (
00453                 ptr< ss_type > a__or_or_functional__type);
00454 
00455         //! Marking routine for class or_or_functional_this. 
00456         virtual void gc_mark();
00457 
00458 private:
00459         static ptr<reflection_list> reflection;
00460         
00461 }; // or_or_functional_this
00462 
00463 
00464 //! This is declaration over ss_declaration, which helps us distinguish in which case we are (function/method/builtin operator).
00465 class or_declaration_helper : public ss_declaration_visitor {
00466 public:
00467         //! The method declaration_get returns the value of the field or_declaration_helper::declaration.
00468         ptr< ss_declaration > declaration_get() const;
00469 
00470         //! The method declaration_set sets the field or_declaration_helper::declaration to the given value.
00471         void declaration_set(const ptr< ss_declaration > &);
00472 
00473         //! The method psp_get returns the value of the field or_declaration_helper::psp.
00474         ptr< ss_sp > psp_get() const;
00475 
00476         //! The method psp_set sets the field or_declaration_helper::psp to the given value.
00477         void psp_set(const ptr< ss_sp > &);
00478 
00479         //! The method nsp_get returns the value of the field or_declaration_helper::nsp.
00480         ptr< ss_sp > nsp_get() const;
00481 
00482         //! The method nsp_set sets the field or_declaration_helper::nsp to the given value.
00483         void nsp_set(const ptr< ss_sp > &);
00484 
00485         //! The method arguments_get returns the value of the field or_declaration_helper::arguments.
00486         ptr< ::lestes::std::list< srp< or_or_functional > > > arguments_get() const;
00487 
00488         //! The method arguments_set sets the field or_declaration_helper::arguments to the given value.
00489         void arguments_set(const ptr< ::lestes::std::list< srp< or_or_functional > > > & );
00490 
00491         //! The method location_get returns the value of the field or_declaration_helper::location.
00492         ptr< ::lestes::std::source_location > location_get() const;
00493 
00494         //! The method location_set sets the field or_declaration_helper::location to the given value.
00495         void location_set(const ptr< ::lestes::std::source_location > &);
00496 
00497         //! The method sp_list_get returns the value of the field or_declaration_helper::sp_list.
00498         ptr< ::lestes::std::list< srp< ss_sp > > > sp_list_get() const;
00499 
00500         //! The method sp_list_set sets the field or_declaration_helper::sp_list to the given value.
00501         void sp_list_set(const ptr< ::lestes::std::list< srp< ss_sp > > > & );
00502 
00503         //! The method result_get returns the value of the field or_declaration_helper::result.
00504         ptr< ss_expression > result_get() const;
00505 
00506         //! The method result_set sets the field or_declaration_helper::result to the given value.
00507         void result_set(const ptr< ss_expression > &);
00508 
00509         virtual void visit_ss_namespace_definition(ptr< ::lestes::lang::cplus::sem::ss_namespace_definition > );
00510 
00511         virtual void visit_ss_object_declaration(ptr< ::lestes::lang::cplus::sem::ss_object_declaration > );
00512 
00513         virtual void visit_ss_bitfield_declaration(ptr< ::lestes::lang::cplus::sem::ss_bitfield_declaration > );
00514 
00515         virtual void visit_ss_parameter_declaration(ptr< ::lestes::lang::cplus::sem::ss_parameter_declaration > );
00516 
00517         virtual void visit_ss_fake_declaration(ptr< ::lestes::lang::cplus::sem::ss_fake_declaration > );
00518 
00519         virtual void visit_ss_injected_class_declaration(ptr< ::lestes::lang::cplus::sem::ss_injected_class_declaration > );
00520 
00521         virtual void visit_ss_enum_definition(ptr< ::lestes::lang::cplus::sem::ss_enum_definition > );
00522 
00523         virtual void visit_ss_typedef_definition(ptr< ::lestes::lang::cplus::sem::ss_typedef_definition > );
00524 
00525         virtual void visit_ss_enumerator_declaration(ptr< ::lestes::lang::cplus::sem::ss_enumerator_declaration > );
00526 
00527         virtual void visit_ss_structure_declaration(ptr< ::lestes::lang::cplus::sem::ss_structure_declaration > );
00528 
00529         virtual void visit_ss_function_declaration(ptr< ::lestes::lang::cplus::sem::ss_function_declaration > );
00530 
00531         virtual void visit_ss_method_declaration(ptr< ::lestes::lang::cplus::sem::ss_method_declaration > );
00532 
00533         virtual void visit_ss_using_declaration(ptr< ::lestes::lang::cplus::sem::ss_using_declaration > );
00534 
00535         virtual void visit_ss_compound_stmt_declaration(ptr< ::lestes::lang::cplus::sem::ss_compound_stmt_declaration > );
00536 
00537         virtual void visit_ss_builtin_operator_declaration(ptr< ::lestes::lang::cplus::sem::ss_builtin_operator_declaration > );
00538 
00539         
00540         //! First generated factory method for class or_declaration_helper.
00541         static ptr< or_declaration_helper > create (
00542                 ptr< ss_declaration > a__or_declaration_helper__declaration,
00543                 ptr< ss_sp > a__or_declaration_helper__psp,
00544                 ptr< ss_sp > a__or_declaration_helper__nsp,
00545                 ptr< ::lestes::std::list< srp< or_or_functional > > > a__or_declaration_helper__arguments,
00546                 ptr< ::lestes::std::source_location > a__or_declaration_helper__location,
00547                 ptr< ::lestes::std::list< srp< ss_sp > > > a__or_declaration_helper__sp_list,
00548                 ptr< ss_expression > a__or_declaration_helper__result);
00549 
00550         //! Second generated factory method for class or_declaration_helper.
00551         static ptr< or_declaration_helper > create (
00552                 ptr< ss_declaration > a__or_declaration_helper__declaration,
00553                 ptr< ss_sp > a__or_declaration_helper__psp,
00554                 ptr< ss_sp > a__or_declaration_helper__nsp,
00555                 ptr< ::lestes::std::list< srp< or_or_functional > > > a__or_declaration_helper__arguments,
00556                 ptr< ::lestes::std::source_location > a__or_declaration_helper__location,
00557                 ptr< ::lestes::std::list< srp< ss_sp > > > a__or_declaration_helper__sp_list);
00558 
00559         
00560 
00561         //! for purposes of dumping
00562         virtual ptr<reflection_list> reflection_get() const;
00563         //! for purposes of dumping
00564         virtual ptr<field_list_list> field_values_get() const;
00565         
00566 protected:
00567         //! Generated constructor for class or_declaration_helper.
00568         or_declaration_helper (
00569                 ptr< ss_declaration > a__or_declaration_helper__declaration,
00570                 ptr< ss_sp > a__or_declaration_helper__psp,
00571                 ptr< ss_sp > a__or_declaration_helper__nsp,
00572                 ptr< ::lestes::std::list< srp< or_or_functional > > > a__or_declaration_helper__arguments,
00573                 ptr< ::lestes::std::source_location > a__or_declaration_helper__location,
00574                 ptr< ::lestes::std::list< srp< ss_sp > > > a__or_declaration_helper__sp_list,
00575                 ptr< ss_expression > a__or_declaration_helper__result);
00576 
00577         //! Marking routine for class or_declaration_helper. 
00578         virtual void gc_mark();
00579 
00580 private:
00581         srp< ss_declaration > declaration;
00582         srp< ss_sp > psp;
00583         srp< ss_sp > nsp;
00584         srp< ::lestes::std::list< srp< or_or_functional > > >  arguments;
00585         srp< ::lestes::std::source_location > location;
00586         srp< ::lestes::std::list< srp< ss_sp > > >  sp_list;
00587         srp< ss_expression > result;
00588         static ptr<reflection_list> reflection;
00589         
00590 }; // or_declaration_helper
00591 
00592 
00593 //! This class contains methods for the actual creation of ss_expression for builtin operator
00594 class or_builtin_operator_expression_creator : public ss_decl_name_visitor {
00595 public:
00596         //! The method declaration_get returns the value of the field or_builtin_operator_expression_creator::declaration.
00597         ptr< ss_builtin_operator_declaration > declaration_get() const;
00598 
00599         //! The method declaration_set sets the field or_builtin_operator_expression_creator::declaration to the given value.
00600         void declaration_set(const ptr< ss_builtin_operator_declaration > &);
00601 
00602         //! The method psp_get returns the value of the field or_builtin_operator_expression_creator::psp.
00603         ptr< ss_sp > psp_get() const;
00604 
00605         //! The method psp_set sets the field or_builtin_operator_expression_creator::psp to the given value.
00606         void psp_set(const ptr< ss_sp > &);
00607 
00608         //! The method nsp_get returns the value of the field or_builtin_operator_expression_creator::nsp.
00609         ptr< ss_sp > nsp_get() const;
00610 
00611         //! The method nsp_set sets the field or_builtin_operator_expression_creator::nsp to the given value.
00612         void nsp_set(const ptr< ss_sp > &);
00613 
00614         //! The method arguments_get returns the value of the field or_builtin_operator_expression_creator::arguments.
00615         ptr< ::lestes::std::list< srp< or_or_functional > > > arguments_get() const;
00616 
00617         //! The method arguments_set sets the field or_builtin_operator_expression_creator::arguments to the given value.
00618         void arguments_set(const ptr< ::lestes::std::list< srp< or_or_functional > > > & );
00619 
00620         //! The method location_get returns the value of the field or_builtin_operator_expression_creator::location.
00621         ptr< ::lestes::std::source_location > location_get() const;
00622 
00623         //! The method location_set sets the field or_builtin_operator_expression_creator::location to the given value.
00624         void location_set(const ptr< ::lestes::std::source_location > &);
00625 
00626         //! The method sp_list_get returns the value of the field or_builtin_operator_expression_creator::sp_list.
00627         ptr< ::lestes::std::list< srp< ss_sp > > > sp_list_get() const;
00628 
00629         //! The method sp_list_set sets the field or_builtin_operator_expression_creator::sp_list to the given value.
00630         void sp_list_set(const ptr< ::lestes::std::list< srp< ss_sp > > > & );
00631 
00632         //! The method result_get returns the value of the field or_builtin_operator_expression_creator::result.
00633         ptr< ss_expression > result_get() const;
00634 
00635         //! The method result_set sets the field or_builtin_operator_expression_creator::result to the given value.
00636         void result_set(const ptr< ss_expression > &);
00637 
00638         template <typename SS> void construct_bin_op_nosideeff();
00639 
00640         template <typename SS> void construct_bin_op_nosideeff_arith();
00641 
00642         template <typename SS> void construct_bin_op_nosideeff_newsp();
00643 
00644         template <typename SS> void construct_un_op_nosideeff();
00645 
00646         template <typename SS> void construct_op_crement();
00647 
00648         template <typename SS> void construct_op_equal_sideeff();
00649 
00650         virtual void visit_ss_ordinary_name(ptr< ::lestes::lang::cplus::sem::ss_ordinary_name > );
00651 
00652         virtual void visit_ss_conversion_name(ptr< ::lestes::lang::cplus::sem::ss_conversion_name > );
00653 
00654         virtual void visit_ss_dummy_name(ptr< ::lestes::lang::cplus::sem::ss_dummy_name > );
00655 
00656         virtual void visit_ss_operator_new(ptr< ::lestes::lang::cplus::sem::ss_operator_new > );
00657 
00658         virtual void visit_ss_operator_delete(ptr< ::lestes::lang::cplus::sem::ss_operator_delete > );
00659 
00660         virtual void visit_ss_operator_new_array(ptr< ::lestes::lang::cplus::sem::ss_operator_new_array > );
00661 
00662         virtual void visit_ss_operator_delete_array(ptr< ::lestes::lang::cplus::sem::ss_operator_delete_array > );
00663 
00664         virtual void visit_ss_operator_add(ptr< ::lestes::lang::cplus::sem::ss_operator_add > );
00665 
00666         virtual void visit_ss_operator_sub(ptr< ::lestes::lang::cplus::sem::ss_operator_sub > );
00667 
00668         virtual void visit_ss_operator_mul(ptr< ::lestes::lang::cplus::sem::ss_operator_mul > );
00669 
00670         virtual void visit_ss_operator_div(ptr< ::lestes::lang::cplus::sem::ss_operator_div > );
00671 
00672         virtual void visit_ss_operator_mod(ptr< ::lestes::lang::cplus::sem::ss_operator_mod > );
00673 
00674         virtual void visit_ss_operator_bxor(ptr< ::lestes::lang::cplus::sem::ss_operator_bxor > );
00675 
00676         virtual void visit_ss_operator_band(ptr< ::lestes::lang::cplus::sem::ss_operator_band > );
00677 
00678         virtual void visit_ss_operator_bor(ptr< ::lestes::lang::cplus::sem::ss_operator_bor > );
00679 
00680         virtual void visit_ss_operator_bnot(ptr< ::lestes::lang::cplus::sem::ss_operator_bnot > );
00681 
00682         virtual void visit_ss_operator_lnot(ptr< ::lestes::lang::cplus::sem::ss_operator_lnot > );
00683 
00684         virtual void visit_ss_operator_assign(ptr< ::lestes::lang::cplus::sem::ss_operator_assign > );
00685 
00686         virtual void visit_ss_operator_assign_add(ptr< ::lestes::lang::cplus::sem::ss_operator_assign_add > );
00687 
00688         virtual void visit_ss_operator_assign_sub(ptr< ::lestes::lang::cplus::sem::ss_operator_assign_sub > );
00689 
00690         virtual void visit_ss_operator_assign_mul(ptr< ::lestes::lang::cplus::sem::ss_operator_assign_mul > );
00691 
00692         virtual void visit_ss_operator_assign_div(ptr< ::lestes::lang::cplus::sem::ss_operator_assign_div > );
00693 
00694         virtual void visit_ss_operator_assign_mod(ptr< ::lestes::lang::cplus::sem::ss_operator_assign_mod > );
00695 
00696         virtual void visit_ss_operator_assign_bxor(ptr< ::lestes::lang::cplus::sem::ss_operator_assign_bxor > );
00697 
00698         virtual void visit_ss_operator_assign_band(ptr< ::lestes::lang::cplus::sem::ss_operator_assign_band > );
00699 
00700         virtual void visit_ss_operator_assign_bor(ptr< ::lestes::lang::cplus::sem::ss_operator_assign_bor > );
00701 
00702         virtual void visit_ss_operator_assign_shl(ptr< ::lestes::lang::cplus::sem::ss_operator_assign_shl > );
00703 
00704         virtual void visit_ss_operator_assign_shr(ptr< ::lestes::lang::cplus::sem::ss_operator_assign_shr > );
00705 
00706         virtual void visit_ss_operator_shr(ptr< ::lestes::lang::cplus::sem::ss_operator_shr > );
00707 
00708         virtual void visit_ss_operator_shl(ptr< ::lestes::lang::cplus::sem::ss_operator_shl > );
00709 
00710         virtual void visit_ss_operator_sbl(ptr< ::lestes::lang::cplus::sem::ss_operator_sbl > );
00711 
00712         virtual void visit_ss_operator_sbg(ptr< ::lestes::lang::cplus::sem::ss_operator_sbg > );
00713 
00714         virtual void visit_ss_operator_sbng(ptr< ::lestes::lang::cplus::sem::ss_operator_sbng > );
00715 
00716         virtual void visit_ss_operator_sbnl(ptr< ::lestes::lang::cplus::sem::ss_operator_sbnl > );
00717 
00718         virtual void visit_ss_operator_sbe(ptr< ::lestes::lang::cplus::sem::ss_operator_sbe > );
00719 
00720         virtual void visit_ss_operator_sbne(ptr< ::lestes::lang::cplus::sem::ss_operator_sbne > );
00721 
00722         virtual void visit_ss_operator_land(ptr< ::lestes::lang::cplus::sem::ss_operator_land > );
00723 
00724         virtual void visit_ss_operator_lor(ptr< ::lestes::lang::cplus::sem::ss_operator_lor > );
00725 
00726         virtual void visit_ss_operator_inc(ptr< ::lestes::lang::cplus::sem::ss_operator_inc > );
00727 
00728         virtual void visit_ss_operator_dec(ptr< ::lestes::lang::cplus::sem::ss_operator_dec > );
00729 
00730         virtual void visit_ss_operator_comma(ptr< ::lestes::lang::cplus::sem::ss_operator_comma > );
00731 
00732         virtual void visit_ss_operator_access(ptr< ::lestes::lang::cplus::sem::ss_operator_access > );
00733 
00734         virtual void visit_ss_operator_access_member(ptr< ::lestes::lang::cplus::sem::ss_operator_access_member > );
00735 
00736         virtual void visit_ss_operator_function_call(ptr< ::lestes::lang::cplus::sem::ss_operator_function_call > );
00737 
00738         virtual void visit_ss_operator_array(ptr< ::lestes::lang::cplus::sem::ss_operator_array > );
00739 
00740         virtual void visit_ss_operator_ternary(ptr< ::lestes::lang::cplus::sem::ss_operator_ternary > );
00741 
00742         
00743         //! First generated factory method for class or_builtin_operator_expression_creator.
00744         static ptr< or_builtin_operator_expression_creator > create (
00745                 ptr< ss_builtin_operator_declaration > a__or_builtin_operator_expression_creator__declaration,
00746                 ptr< ss_sp > a__or_builtin_operator_expression_creator__psp,
00747                 ptr< ss_sp > a__or_builtin_operator_expression_creator__nsp,
00748                 ptr< ::lestes::std::list< srp< or_or_functional > > > a__or_builtin_operator_expression_creator__arguments,
00749                 ptr< ::lestes::std::source_location > a__or_builtin_operator_expression_creator__location,
00750                 ptr< ::lestes::std::list< srp< ss_sp > > > a__or_builtin_operator_expression_creator__sp_list,
00751                 ptr< ss_expression > a__or_builtin_operator_expression_creator__result);
00752 
00753         //! Second generated factory method for class or_builtin_operator_expression_creator.
00754         static ptr< or_builtin_operator_expression_creator > create (
00755                 ptr< ss_builtin_operator_declaration > a__or_builtin_operator_expression_creator__declaration,
00756                 ptr< ss_sp > a__or_builtin_operator_expression_creator__psp,
00757                 ptr< ss_sp > a__or_builtin_operator_expression_creator__nsp,
00758                 ptr< ::lestes::std::list< srp< or_or_functional > > > a__or_builtin_operator_expression_creator__arguments,
00759                 ptr< ::lestes::std::source_location > a__or_builtin_operator_expression_creator__location,
00760                 ptr< ::lestes::std::list< srp< ss_sp > > > a__or_builtin_operator_expression_creator__sp_list);
00761 
00762         
00763 
00764         //! for purposes of dumping
00765         virtual ptr<reflection_list> reflection_get() const;
00766         //! for purposes of dumping
00767         virtual ptr<field_list_list> field_values_get() const;
00768         
00769 protected:
00770         //! Generated constructor for class or_builtin_operator_expression_creator.
00771         or_builtin_operator_expression_creator (
00772                 ptr< ss_builtin_operator_declaration > a__or_builtin_operator_expression_creator__declaration,
00773                 ptr< ss_sp > a__or_builtin_operator_expression_creator__psp,
00774                 ptr< ss_sp > a__or_builtin_operator_expression_creator__nsp,
00775                 ptr< ::lestes::std::list< srp< or_or_functional > > > a__or_builtin_operator_expression_creator__arguments,
00776                 ptr< ::lestes::std::source_location > a__or_builtin_operator_expression_creator__location,
00777                 ptr< ::lestes::std::list< srp< ss_sp > > > a__or_builtin_operator_expression_creator__sp_list,
00778                 ptr< ss_expression > a__or_builtin_operator_expression_creator__result);
00779 
00780         //! Marking routine for class or_builtin_operator_expression_creator. 
00781         virtual void gc_mark();
00782 
00783 private:
00784         srp< ss_builtin_operator_declaration > declaration;
00785         srp< ss_sp > psp;
00786         srp< ss_sp > nsp;
00787         srp< ::lestes::std::list< srp< or_or_functional > > >  arguments;
00788         srp< ::lestes::std::source_location > location;
00789         srp< ::lestes::std::list< srp< ss_sp > > >  sp_list;
00790         srp< ss_expression > result;
00791         static ptr<reflection_list> reflection;
00792         
00793 }; // or_builtin_operator_expression_creator
00794 
00795 
00796 //! This class contains methods for the actual creation of ss_expression for function call
00797 class or_funcall_creator : public ss_declaration_visitor {
00798 public:
00799         //! The method declaration_get returns the value of the field or_funcall_creator::declaration.
00800         ptr< ss_function_declaration > declaration_get() const;
00801 
00802         //! The method declaration_set sets the field or_funcall_creator::declaration to the given value.
00803         void declaration_set(const ptr< ss_function_declaration > &);
00804 
00805         //! The method psp_get returns the value of the field or_funcall_creator::psp.
00806         ptr< ss_sp > psp_get() const;
00807 
00808         //! The method psp_set sets the field or_funcall_creator::psp to the given value.
00809         void psp_set(const ptr< ss_sp > &);
00810 
00811         //! The method nsp_get returns the value of the field or_funcall_creator::nsp.
00812         ptr< ss_sp > nsp_get() const;
00813 
00814         //! The method nsp_set sets the field or_funcall_creator::nsp to the given value.
00815         void nsp_set(const ptr< ss_sp > &);
00816 
00817         //! The method arguments_get returns the value of the field or_funcall_creator::arguments.
00818         ptr< ::lestes::std::list< srp< or_or_functional > > > arguments_get() const;
00819 
00820         //! The method arguments_set sets the field or_funcall_creator::arguments to the given value.
00821         void arguments_set(const ptr< ::lestes::std::list< srp< or_or_functional > > > & );
00822 
00823         //! The method location_get returns the value of the field or_funcall_creator::location.
00824         ptr< ::lestes::std::source_location > location_get() const;
00825 
00826         //! The method location_set sets the field or_funcall_creator::location to the given value.
00827         void location_set(const ptr< ::lestes::std::source_location > &);
00828 
00829         //! The method sp_list_get returns the value of the field or_funcall_creator::sp_list.
00830         ptr< ::lestes::std::list< srp< ss_sp > > > sp_list_get() const;
00831 
00832         //! The method sp_list_set sets the field or_funcall_creator::sp_list to the given value.
00833         void sp_list_set(const ptr< ::lestes::std::list< srp< ss_sp > > > & );
00834 
00835         //! The method result_get returns the value of the field or_funcall_creator::result.
00836         ptr< ss_expression > result_get() const;
00837 
00838         //! The method result_set sets the field or_funcall_creator::result to the given value.
00839         void result_set(const ptr< ss_expression > &);
00840 
00841         template <typename SS> void construct_bin_op_nosideeff();
00842 
00843         template <typename SS> void construct_un_op_nosideeff();
00844 
00845         template <typename SS> void construct_op_equal_sideeff();
00846 
00847         virtual void visit_ss_namespace_definition(ptr< ::lestes::lang::cplus::sem::ss_namespace_definition > );
00848 
00849         virtual void visit_ss_object_declaration(ptr< ::lestes::lang::cplus::sem::ss_object_declaration > );
00850 
00851         virtual void visit_ss_bitfield_declaration(ptr< ::lestes::lang::cplus::sem::ss_bitfield_declaration > );
00852 
00853         virtual void visit_ss_parameter_declaration(ptr< ::lestes::lang::cplus::sem::ss_parameter_declaration > );
00854 
00855         virtual void visit_ss_fake_declaration(ptr< ::lestes::lang::cplus::sem::ss_fake_declaration > );
00856 
00857         virtual void visit_ss_injected_class_declaration(ptr< ::lestes::lang::cplus::sem::ss_injected_class_declaration > );
00858 
00859         virtual void visit_ss_enum_definition(ptr< ::lestes::lang::cplus::sem::ss_enum_definition > );
00860 
00861         virtual void visit_ss_typedef_definition(ptr< ::lestes::lang::cplus::sem::ss_typedef_definition > );
00862 
00863         virtual void visit_ss_enumerator_declaration(ptr< ::lestes::lang::cplus::sem::ss_enumerator_declaration > );
00864 
00865         virtual void visit_ss_structure_declaration(ptr< ::lestes::lang::cplus::sem::ss_structure_declaration > );
00866 
00867         virtual void visit_ss_function_declaration(ptr< ::lestes::lang::cplus::sem::ss_function_declaration > );
00868 
00869         virtual void visit_ss_method_declaration(ptr< ::lestes::lang::cplus::sem::ss_method_declaration > );
00870 
00871         virtual void visit_ss_using_declaration(ptr< ::lestes::lang::cplus::sem::ss_using_declaration > );
00872 
00873         virtual void visit_ss_compound_stmt_declaration(ptr< ::lestes::lang::cplus::sem::ss_compound_stmt_declaration > );
00874 
00875         virtual void visit_ss_builtin_operator_declaration(ptr< ::lestes::lang::cplus::sem::ss_builtin_operator_declaration > );
00876 
00877         
00878         //! First generated factory method for class or_funcall_creator.
00879         static ptr< or_funcall_creator > create (
00880                 ptr< ss_function_declaration > a__or_funcall_creator__declaration,
00881                 ptr< ss_sp > a__or_funcall_creator__psp,
00882                 ptr< ss_sp > a__or_funcall_creator__nsp,
00883                 ptr< ::lestes::std::list< srp< or_or_functional > > > a__or_funcall_creator__arguments,
00884                 ptr< ::lestes::std::source_location > a__or_funcall_creator__location,
00885                 ptr< ::lestes::std::list< srp< ss_sp > > > a__or_funcall_creator__sp_list,
00886                 ptr< ss_expression > a__or_funcall_creator__result);
00887 
00888         //! Second generated factory method for class or_funcall_creator.
00889         static ptr< or_funcall_creator > create (
00890                 ptr< ss_function_declaration > a__or_funcall_creator__declaration,
00891                 ptr< ss_sp > a__or_funcall_creator__psp,
00892                 ptr< ss_sp > a__or_funcall_creator__nsp,
00893                 ptr< ::lestes::std::list< srp< or_or_functional > > > a__or_funcall_creator__arguments,
00894                 ptr< ::lestes::std::source_location > a__or_funcall_creator__location,
00895                 ptr< ::lestes::std::list< srp< ss_sp > > > a__or_funcall_creator__sp_list);
00896 
00897         
00898 
00899         //! for purposes of dumping
00900         virtual ptr<reflection_list> reflection_get() const;
00901         //! for purposes of dumping
00902         virtual ptr<field_list_list> field_values_get() const;
00903         
00904 protected:
00905         //! Generated constructor for class or_funcall_creator.
00906         or_funcall_creator (
00907                 ptr< ss_function_declaration > a__or_funcall_creator__declaration,
00908                 ptr< ss_sp > a__or_funcall_creator__psp,
00909                 ptr< ss_sp > a__or_funcall_creator__nsp,
00910                 ptr< ::lestes::std::list< srp< or_or_functional > > > a__or_funcall_creator__arguments,
00911                 ptr< ::lestes::std::source_location > a__or_funcall_creator__location,
00912                 ptr< ::lestes::std::list< srp< ss_sp > > > a__or_funcall_creator__sp_list,
00913                 ptr< ss_expression > a__or_funcall_creator__result);
00914 
00915         //! Marking routine for class or_funcall_creator. 
00916         virtual void gc_mark();
00917 
00918 private:
00919         srp< ss_function_declaration > declaration;
00920         srp< ss_sp > psp;
00921         srp< ss_sp > nsp;
00922         srp< ::lestes::std::list< srp< or_or_functional > > >  arguments;
00923         srp< ::lestes::std::source_location > location;
00924         srp< ::lestes::std::list< srp< ss_sp > > >  sp_list;
00925         srp< ss_expression > result;
00926         static ptr<reflection_list> reflection;
00927         
00928 }; // or_funcall_creator
00929 
00930 
00931 //! TODO: does this have any use??
00932 class or_funcall_creator_context : public ::lestes::std::object {
00933 public:
00934         //! The method declaration_get returns the value of the field or_funcall_creator_context::declaration.
00935         ptr< ss_function_declaration > declaration_get() const;
00936 
00937         //! The method declaration_set sets the field or_funcall_creator_context::declaration to the given value.
00938         void declaration_set(const ptr< ss_function_declaration > &);
00939 
00940         //! The method object_expression_get returns the value of the field or_funcall_creator_context::object_expression.
00941         ptr< ss_expression > object_expression_get() const;
00942 
00943         //! The method object_expression_set sets the field or_funcall_creator_context::object_expression to the given value.
00944         void object_expression_set(const ptr< ss_expression > &);
00945 
00946         
00947         //! First generated factory method for class or_funcall_creator_context.
00948         static ptr< or_funcall_creator_context > create (
00949                 ptr< ss_function_declaration > a__or_funcall_creator_context__declaration,
00950                 ptr< ss_expression > a__or_funcall_creator_context__object_expression);
00951 
00952         
00953 
00954         //! for purposes of dumping
00955         virtual ptr<reflection_list> reflection_get() const;
00956         //! for purposes of dumping
00957         virtual ptr<field_list_list> field_values_get() const;
00958         
00959 protected:
00960         //! Generated constructor for class or_funcall_creator_context.
00961         or_funcall_creator_context (
00962                 ptr< ss_function_declaration > a__or_funcall_creator_context__declaration,
00963                 ptr< ss_expression > a__or_funcall_creator_context__object_expression);
00964 
00965         //! Marking routine for class or_funcall_creator_context. 
00966         virtual void gc_mark();
00967 
00968 private:
00969         srp< ss_function_declaration > declaration;
00970         srp< ss_expression > object_expression;
00971         static ptr<reflection_list> reflection;
00972         
00973 }; // or_funcall_creator_context
00974 
00975 
00976 
00977 
00978         
00979 end_package(sem);
00980 end_package(cplus);
00981 end_package(lang);
00982 end_package(lestes);
00983 
00984 #endif // lestes__lang__cplus__sem__or_or_g_hh__included

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