ss_expression.g.hh

Go to the documentation of this file.
00001 // This file is automatically generated, do not edit.
00002 
00003 /*!
00004         \file
00005         \brief Intercode structure for project Lestes
00006         
00007             This file describes a set of classes and data types used for intercode layer -ss-.
00008             It is an output from a XSLT template which generates C++ code.
00009         
00010 */
00011 
00012 #ifndef lestes__lang__cplus__sem__ss_expression_g_hh__included
00013 #define lestes__lang__cplus__sem__ss_expression_g_hh__included
00014 
00015 #include <lestes/common.hh>
00016 #include <lestes/intercode/intercode.g.hh>
00017 
00018 #include <lestes/std/objectize_macros.hh>
00019 package(lestes);
00020 package(lang);
00021 package(cplus);
00022 package(lex);
00023 class token_value;
00024 end_package(lex);
00025 end_package(cplus);
00026 end_package(lang);
00027 end_package(lestes);
00028 
00029 package(lestes);
00030 package(backend_v2);
00031 package(intercode);
00032 class pi_preg;
00033 end_package(intercode);
00034 end_package(backend_v2);
00035 end_package(lestes);
00036 
00037 package(lestes);
00038 package(backend_v2);
00039 package(intercode);
00040 class pi_operand;
00041 end_package(intercode);
00042 end_package(backend_v2);
00043 end_package(lestes);
00044 
00045 package(lestes);
00046 package(lang);
00047 package(cplus);
00048 package(sem);
00049 
00050 
00051 
00052         
00053 
00054 
00055 
00056 class ss_sp;
00057 class ss_declaration;
00058 class ss_statement;
00059 class ss_type;
00060 class as_name;
00061 class ss_decl_seq;
00062 class ss_literal_info;
00063 class ss_declaration_time;
00064 class ss_expr2pi_base;
00065 class ::lestes::backend_v2::intercode::pi_preg;
00066 class ss_expression;
00067 class ss_expression_visitor;
00068 class ss_this_expr;
00069 class ss_literal;
00070 class ss_ternary;
00071 class ss_var_ref_abstract;
00072 class ss_var_ref_by_qname;
00073 class ss_var_ref;
00074 class ss_throw;
00075 class ss_member_ptr;
00076 class ss_ptr_member_ptr;
00077 class ss_access;
00078 class ss_ptr_access;
00079 class ss_binary_expr;
00080 
00081 
00082 //! Base class for expressions
00083 class ss_expression : public ::lestes::intercode::ss_base_with_location {
00084 public:
00085         //! The method type_get returns the value of the field ss_expression::type.
00086         ptr< ss_type > type_get() const;
00087 
00088         //! The method type_set sets the field ss_expression::type to the given value.
00089         void type_set(const ptr< ss_type > &);
00090 
00091         //! The method psp_get returns the value of the field ss_expression::psp.
00092         ptr< ss_sp > psp_get() const;
00093 
00094         //! The method psp_set sets the field ss_expression::psp to the given value.
00095         void psp_set(const ptr< ss_sp > &);
00096 
00097         //! The method nsp_get returns the value of the field ss_expression::nsp.
00098         ptr< ss_sp > nsp_get() const;
00099 
00100         //! The method nsp_set sets the field ss_expression::nsp to the given value.
00101         void nsp_set(const ptr< ss_sp > &);
00102 
00103         //! return false
00104         virtual bool is_lvalue();
00105 
00106         virtual int get_value();
00107 
00108         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v ) abstract;
00109         
00110 
00111         //! for purposes of dumping
00112         virtual ptr<reflection_list> reflection_get() const;
00113         //! for purposes of dumping
00114         virtual ptr<field_list_list> field_values_get() const;
00115         
00116 protected:
00117         //! Generated constructor for class ss_expression.
00118         ss_expression (
00119                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00120                 ptr< ss_type > a__ss_expression__type,
00121                 ptr< ss_sp > a__ss_expression__psp,
00122                 ptr< ss_sp > a__ss_expression__nsp);
00123 
00124         //! Marking routine for class ss_expression. 
00125         virtual void gc_mark();
00126 
00127 private:
00128         srp< ss_type > type;
00129         srp< ss_sp > psp;
00130         srp< ss_sp > nsp;
00131         static ptr<reflection_list> reflection;
00132         
00133 }; // ss_expression
00134 
00135 
00136 //! Class for this pointer
00137 class ss_this_expr : public ss_expression {
00138 public:
00139         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v );
00140         
00141         //! First generated factory method for class ss_this_expr.
00142         static ptr< ss_this_expr > create (
00143                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00144                 ptr< ss_type > a__ss_expression__type,
00145                 ptr< ss_sp > a__ss_expression__psp,
00146                 ptr< ss_sp > a__ss_expression__nsp);
00147 
00148         
00149 
00150         //! for purposes of dumping
00151         virtual ptr<reflection_list> reflection_get() const;
00152         //! for purposes of dumping
00153         virtual ptr<field_list_list> field_values_get() const;
00154         
00155 protected:
00156         //! Generated constructor for class ss_this_expr.
00157         ss_this_expr (
00158                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00159                 ptr< ss_type > a__ss_expression__type,
00160                 ptr< ss_sp > a__ss_expression__psp,
00161                 ptr< ss_sp > a__ss_expression__nsp);
00162 
00163         //! Marking routine for class ss_this_expr. 
00164         virtual void gc_mark();
00165 
00166 private:
00167         static ptr<reflection_list> reflection;
00168         
00169 }; // ss_this_expr
00170 
00171 
00172 //! Class for literal value
00173 class ss_literal : public ss_expression {
00174 public:
00175         //! The method value_get returns the value of the field ss_literal::value.
00176         ptr< ss_literal_info > value_get() const;
00177 
00178         //! The method value_set sets the field ss_literal::value to the given value.
00179         void value_set(const ptr< ss_literal_info > &);
00180 
00181         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v );
00182         
00183         //! First generated factory method for class ss_literal.
00184         static ptr< ss_literal > create (
00185                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00186                 ptr< ss_type > a__ss_expression__type,
00187                 ptr< ss_sp > a__ss_expression__psp,
00188                 ptr< ss_sp > a__ss_expression__nsp,
00189                 ptr< ss_literal_info > a__ss_literal__value);
00190 
00191         
00192 
00193         //! for purposes of dumping
00194         virtual ptr<reflection_list> reflection_get() const;
00195         //! for purposes of dumping
00196         virtual ptr<field_list_list> field_values_get() const;
00197         
00198 protected:
00199         //! Generated constructor for class ss_literal.
00200         ss_literal (
00201                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00202                 ptr< ss_type > a__ss_expression__type,
00203                 ptr< ss_sp > a__ss_expression__psp,
00204                 ptr< ss_sp > a__ss_expression__nsp,
00205                 ptr< ss_literal_info > a__ss_literal__value);
00206 
00207         //! Marking routine for class ss_literal. 
00208         virtual void gc_mark();
00209 
00210 private:
00211         srp< ss_literal_info > value;
00212         static ptr<reflection_list> reflection;
00213         
00214 }; // ss_literal
00215 
00216 
00217 //! Class for ternary ?: operator expression
00218 class ss_ternary : public ss_expression {
00219 public:
00220         //! The method condition_get returns the value of the field ss_ternary::condition.
00221         ptr< ss_expression > condition_get() const;
00222 
00223         //! The method condition_set sets the field ss_ternary::condition to the given value.
00224         void condition_set(const ptr< ss_expression > &);
00225 
00226         //! The method true_expr_get returns the value of the field ss_ternary::true_expr.
00227         ptr< ss_expression > true_expr_get() const;
00228 
00229         //! The method true_expr_set sets the field ss_ternary::true_expr to the given value.
00230         void true_expr_set(const ptr< ss_expression > &);
00231 
00232         //! The method false_expr_get returns the value of the field ss_ternary::false_expr.
00233         ptr< ss_expression > false_expr_get() const;
00234 
00235         //! The method false_expr_set sets the field ss_ternary::false_expr to the given value.
00236         void false_expr_set(const ptr< ss_expression > &);
00237 
00238         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v );
00239         
00240         //! First generated factory method for class ss_ternary.
00241         static ptr< ss_ternary > create (
00242                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00243                 ptr< ss_type > a__ss_expression__type,
00244                 ptr< ss_sp > a__ss_expression__psp,
00245                 ptr< ss_sp > a__ss_expression__nsp,
00246                 ptr< ss_expression > a__ss_ternary__condition,
00247                 ptr< ss_expression > a__ss_ternary__true_expr,
00248                 ptr< ss_expression > a__ss_ternary__false_expr);
00249 
00250         
00251 
00252         //! for purposes of dumping
00253         virtual ptr<reflection_list> reflection_get() const;
00254         //! for purposes of dumping
00255         virtual ptr<field_list_list> field_values_get() const;
00256         
00257 protected:
00258         //! Generated constructor for class ss_ternary.
00259         ss_ternary (
00260                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00261                 ptr< ss_type > a__ss_expression__type,
00262                 ptr< ss_sp > a__ss_expression__psp,
00263                 ptr< ss_sp > a__ss_expression__nsp,
00264                 ptr< ss_expression > a__ss_ternary__condition,
00265                 ptr< ss_expression > a__ss_ternary__true_expr,
00266                 ptr< ss_expression > a__ss_ternary__false_expr);
00267 
00268         //! Marking routine for class ss_ternary. 
00269         virtual void gc_mark();
00270 
00271 private:
00272         srp< ss_expression > condition;
00273         srp< ss_expression > true_expr;
00274         srp< ss_expression > false_expr;
00275         static ptr<reflection_list> reflection;
00276         
00277 }; // ss_ternary
00278 
00279 
00280 /*! \brief Abstract class for variable references. 
00281 
00282 var_ref is usually accessed via GET (rvalue conversion). Referenced type is ss_reference.
00283 */
00284 class ss_var_ref_abstract : public ss_expression {
00285 public:
00286         //! return true
00287         virtual bool is_lvalue();
00288 
00289         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v ) abstract;
00290         
00291 
00292         //! for purposes of dumping
00293         virtual ptr<reflection_list> reflection_get() const;
00294         //! for purposes of dumping
00295         virtual ptr<field_list_list> field_values_get() const;
00296         
00297 protected:
00298         //! Generated constructor for class ss_var_ref_abstract.
00299         ss_var_ref_abstract (
00300                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00301                 ptr< ss_type > a__ss_expression__type,
00302                 ptr< ss_sp > a__ss_expression__psp,
00303                 ptr< ss_sp > a__ss_expression__nsp);
00304 
00305         //! Marking routine for class ss_var_ref_abstract. 
00306         virtual void gc_mark();
00307 
00308 private:
00309         static ptr<reflection_list> reflection;
00310         
00311 }; // ss_var_ref_abstract
00312 
00313 
00314 /*! \brief Class for variable references by qualified name. 
00315 
00316 
00317                 This class is for accessing variables in templates ( X::static_variable ).
00318                 Since there is no implementation of templates now, processing with this
00319                 class will cause lassert.
00320             
00321 */
00322 class ss_var_ref_by_qname : public ss_var_ref_abstract {
00323 public:
00324         //! The method contained_in_get returns the value of the field ss_var_ref_by_qname::contained_in.
00325         ptr< ss_decl_seq > contained_in_get() const;
00326 
00327         //! The method contained_in_set sets the field ss_var_ref_by_qname::contained_in to the given value.
00328         void contained_in_set(const ptr< ss_decl_seq > &);
00329 
00330         //! The method decl_time_get returns the value of the field ss_var_ref_by_qname::decl_time.
00331         ptr< ss_declaration_time > decl_time_get() const;
00332 
00333         //! The method decl_time_set sets the field ss_var_ref_by_qname::decl_time to the given value.
00334         void decl_time_set(const ptr< ss_declaration_time > &);
00335 
00336         //! The method qualified_name_get returns the value of the field ss_var_ref_by_qname::qualified_name.
00337         ptr< as_name > qualified_name_get() const;
00338 
00339         //! The method qualified_name_set sets the field ss_var_ref_by_qname::qualified_name to the given value.
00340         void qualified_name_set(const ptr< as_name > &);
00341 
00342         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v );
00343         
00344         //! First generated factory method for class ss_var_ref_by_qname.
00345         static ptr< ss_var_ref_by_qname > create (
00346                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00347                 ptr< ss_type > a__ss_expression__type,
00348                 ptr< ss_sp > a__ss_expression__psp,
00349                 ptr< ss_sp > a__ss_expression__nsp,
00350                 ptr< ss_decl_seq > a__ss_var_ref_by_qname__contained_in,
00351                 ptr< ss_declaration_time > a__ss_var_ref_by_qname__decl_time,
00352                 ptr< as_name > a__ss_var_ref_by_qname__qualified_name);
00353 
00354         
00355 
00356         //! for purposes of dumping
00357         virtual ptr<reflection_list> reflection_get() const;
00358         //! for purposes of dumping
00359         virtual ptr<field_list_list> field_values_get() const;
00360         
00361 protected:
00362         //! Generated constructor for class ss_var_ref_by_qname.
00363         ss_var_ref_by_qname (
00364                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00365                 ptr< ss_type > a__ss_expression__type,
00366                 ptr< ss_sp > a__ss_expression__psp,
00367                 ptr< ss_sp > a__ss_expression__nsp,
00368                 ptr< ss_decl_seq > a__ss_var_ref_by_qname__contained_in,
00369                 ptr< ss_declaration_time > a__ss_var_ref_by_qname__decl_time,
00370                 ptr< as_name > a__ss_var_ref_by_qname__qualified_name);
00371 
00372         //! Marking routine for class ss_var_ref_by_qname. 
00373         virtual void gc_mark();
00374 
00375 private:
00376         srp< ss_decl_seq > contained_in;
00377         srp< ss_declaration_time > decl_time;
00378         /*! \brief This field represents qualified name.
00379 
00380         
00381                         Since we dont know the type before template initialization happens, there is
00382                         no obvious standard ss_type representing this name. To convert
00383                         current as type to ss type, we will wait for instantiation.
00384                 
00385         */
00386         srp< as_name > qualified_name;
00387         static ptr<reflection_list> reflection;
00388         
00389 }; // ss_var_ref_by_qname
00390 
00391 
00392 /*! \brief Class for variable reference. 
00393 
00394 var_ref is usually accessed via GET (rvalue conversion). Referenced type is ss_reference.
00395 */
00396 class ss_var_ref : public ss_var_ref_abstract {
00397 public:
00398         //! The method var_decl_get returns the value of the field ss_var_ref::var_decl.
00399         ptr< ss_declaration > var_decl_get() const;
00400 
00401         //! The method var_decl_set sets the field ss_var_ref::var_decl to the given value.
00402         void var_decl_set(const ptr< ss_declaration > &);
00403 
00404         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v );
00405         
00406         //! First generated factory method for class ss_var_ref.
00407         static ptr< ss_var_ref > create (
00408                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00409                 ptr< ss_type > a__ss_expression__type,
00410                 ptr< ss_sp > a__ss_expression__psp,
00411                 ptr< ss_sp > a__ss_expression__nsp,
00412                 ptr< ss_declaration > a__ss_var_ref__var_decl);
00413 
00414         
00415 
00416         //! for purposes of dumping
00417         virtual ptr<reflection_list> reflection_get() const;
00418         //! for purposes of dumping
00419         virtual ptr<field_list_list> field_values_get() const;
00420         
00421 protected:
00422         //! Generated constructor for class ss_var_ref.
00423         ss_var_ref (
00424                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00425                 ptr< ss_type > a__ss_expression__type,
00426                 ptr< ss_sp > a__ss_expression__psp,
00427                 ptr< ss_sp > a__ss_expression__nsp,
00428                 ptr< ss_declaration > a__ss_var_ref__var_decl);
00429 
00430         //! Marking routine for class ss_var_ref. 
00431         virtual void gc_mark();
00432 
00433 private:
00434         //! The variable declaration
00435         srp< ss_declaration > var_decl;
00436         static ptr<reflection_list> reflection;
00437         
00438 }; // ss_var_ref
00439 
00440 
00441 /*! \brief Class for throw expression
00442 
00443 See throw_expression, ISO standard, chapter 15 
00444 */
00445 class ss_throw : public ss_expression {
00446 public:
00447         //! The method type_get returns the value of the field ss_throw::type.
00448         ptr< ss_type > type_get() const;
00449 
00450         //! The method type_set sets the field ss_throw::type to the given value.
00451         void type_set(const ptr< ss_type > &);
00452 
00453         //! The method value_get returns the value of the field ss_throw::value.
00454         ptr< ss_expression > value_get() const;
00455 
00456         //! The method value_set sets the field ss_throw::value to the given value.
00457         void value_set(const ptr< ss_expression > &);
00458 
00459         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v );
00460         
00461         //! First generated factory method for class ss_throw.
00462         static ptr< ss_throw > create (
00463                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00464                 ptr< ss_type > a__ss_expression__type,
00465                 ptr< ss_sp > a__ss_expression__psp,
00466                 ptr< ss_sp > a__ss_expression__nsp,
00467                 ptr< ss_type > a__ss_throw__type,
00468                 ptr< ss_expression > a__ss_throw__value);
00469 
00470         
00471 
00472         //! for purposes of dumping
00473         virtual ptr<reflection_list> reflection_get() const;
00474         //! for purposes of dumping
00475         virtual ptr<field_list_list> field_values_get() const;
00476         
00477 protected:
00478         //! Generated constructor for class ss_throw.
00479         ss_throw (
00480                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00481                 ptr< ss_type > a__ss_expression__type,
00482                 ptr< ss_sp > a__ss_expression__psp,
00483                 ptr< ss_sp > a__ss_expression__nsp,
00484                 ptr< ss_type > a__ss_throw__type,
00485                 ptr< ss_expression > a__ss_throw__value);
00486 
00487         //! Marking routine for class ss_throw. 
00488         virtual void gc_mark();
00489 
00490 private:
00491         srp< ss_type > type;
00492         srp< ss_expression > value;
00493         static ptr<reflection_list> reflection;
00494         
00495 }; // ss_throw
00496 
00497 
00498 //! Class for pointer to member operator .*
00499 class ss_member_ptr : public ss_expression {
00500 public:
00501         //! The method object_get returns the value of the field ss_member_ptr::object.
00502         ptr< ss_expression > object_get() const;
00503 
00504         //! The method object_set sets the field ss_member_ptr::object to the given value.
00505         void object_set(const ptr< ss_expression > &);
00506 
00507         //! The method member_ptr_get returns the value of the field ss_member_ptr::member_ptr.
00508         ptr< ss_expression > member_ptr_get() const;
00509 
00510         //! The method member_ptr_set sets the field ss_member_ptr::member_ptr to the given value.
00511         void member_ptr_set(const ptr< ss_expression > &);
00512 
00513         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v );
00514         
00515         //! First generated factory method for class ss_member_ptr.
00516         static ptr< ss_member_ptr > create (
00517                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00518                 ptr< ss_type > a__ss_expression__type,
00519                 ptr< ss_sp > a__ss_expression__psp,
00520                 ptr< ss_sp > a__ss_expression__nsp,
00521                 ptr< ss_expression > a__ss_member_ptr__object,
00522                 ptr< ss_expression > a__ss_member_ptr__member_ptr);
00523 
00524         
00525 
00526         //! for purposes of dumping
00527         virtual ptr<reflection_list> reflection_get() const;
00528         //! for purposes of dumping
00529         virtual ptr<field_list_list> field_values_get() const;
00530         
00531 protected:
00532         //! Generated constructor for class ss_member_ptr.
00533         ss_member_ptr (
00534                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00535                 ptr< ss_type > a__ss_expression__type,
00536                 ptr< ss_sp > a__ss_expression__psp,
00537                 ptr< ss_sp > a__ss_expression__nsp,
00538                 ptr< ss_expression > a__ss_member_ptr__object,
00539                 ptr< ss_expression > a__ss_member_ptr__member_ptr);
00540 
00541         //! Marking routine for class ss_member_ptr. 
00542         virtual void gc_mark();
00543 
00544 private:
00545         srp< ss_expression > object;
00546         srp< ss_expression > member_ptr;
00547         static ptr<reflection_list> reflection;
00548         
00549 }; // ss_member_ptr
00550 
00551 
00552 //! Class for pointer to member operator ->*
00553 class ss_ptr_member_ptr : public ss_expression {
00554 public:
00555         //! The method object_ptr_get returns the value of the field ss_ptr_member_ptr::object_ptr.
00556         ptr< ss_expression > object_ptr_get() const;
00557 
00558         //! The method object_ptr_set sets the field ss_ptr_member_ptr::object_ptr to the given value.
00559         void object_ptr_set(const ptr< ss_expression > &);
00560 
00561         //! The method member_ptr_get returns the value of the field ss_ptr_member_ptr::member_ptr.
00562         ptr< ss_expression > member_ptr_get() const;
00563 
00564         //! The method member_ptr_set sets the field ss_ptr_member_ptr::member_ptr to the given value.
00565         void member_ptr_set(const ptr< ss_expression > &);
00566 
00567         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v );
00568         
00569         //! First generated factory method for class ss_ptr_member_ptr.
00570         static ptr< ss_ptr_member_ptr > create (
00571                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00572                 ptr< ss_type > a__ss_expression__type,
00573                 ptr< ss_sp > a__ss_expression__psp,
00574                 ptr< ss_sp > a__ss_expression__nsp,
00575                 ptr< ss_expression > a__ss_ptr_member_ptr__object_ptr,
00576                 ptr< ss_expression > a__ss_ptr_member_ptr__member_ptr);
00577 
00578         
00579 
00580         //! for purposes of dumping
00581         virtual ptr<reflection_list> reflection_get() const;
00582         //! for purposes of dumping
00583         virtual ptr<field_list_list> field_values_get() const;
00584         
00585 protected:
00586         //! Generated constructor for class ss_ptr_member_ptr.
00587         ss_ptr_member_ptr (
00588                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00589                 ptr< ss_type > a__ss_expression__type,
00590                 ptr< ss_sp > a__ss_expression__psp,
00591                 ptr< ss_sp > a__ss_expression__nsp,
00592                 ptr< ss_expression > a__ss_ptr_member_ptr__object_ptr,
00593                 ptr< ss_expression > a__ss_ptr_member_ptr__member_ptr);
00594 
00595         //! Marking routine for class ss_ptr_member_ptr. 
00596         virtual void gc_mark();
00597 
00598 private:
00599         srp< ss_expression > object_ptr;
00600         srp< ss_expression > member_ptr;
00601         static ptr<reflection_list> reflection;
00602         
00603 }; // ss_ptr_member_ptr
00604 
00605 
00606 //! Class for member access (.)
00607 class ss_access : public ss_expression {
00608 public:
00609         //! The method object_get returns the value of the field ss_access::object.
00610         ptr< ss_expression > object_get() const;
00611 
00612         //! The method object_set sets the field ss_access::object to the given value.
00613         void object_set(const ptr< ss_expression > &);
00614 
00615         //! The method member_get returns the value of the field ss_access::member.
00616         ptr< ss_declaration > member_get() const;
00617 
00618         //! The method member_set sets the field ss_access::member to the given value.
00619         void member_set(const ptr< ss_declaration > &);
00620 
00621         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v );
00622         
00623         //! First generated factory method for class ss_access.
00624         static ptr< ss_access > create (
00625                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00626                 ptr< ss_type > a__ss_expression__type,
00627                 ptr< ss_sp > a__ss_expression__psp,
00628                 ptr< ss_sp > a__ss_expression__nsp,
00629                 ptr< ss_expression > a__ss_access__object,
00630                 ptr< ss_declaration > a__ss_access__member);
00631 
00632         
00633 
00634         //! for purposes of dumping
00635         virtual ptr<reflection_list> reflection_get() const;
00636         //! for purposes of dumping
00637         virtual ptr<field_list_list> field_values_get() const;
00638         
00639 protected:
00640         //! Generated constructor for class ss_access.
00641         ss_access (
00642                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00643                 ptr< ss_type > a__ss_expression__type,
00644                 ptr< ss_sp > a__ss_expression__psp,
00645                 ptr< ss_sp > a__ss_expression__nsp,
00646                 ptr< ss_expression > a__ss_access__object,
00647                 ptr< ss_declaration > a__ss_access__member);
00648 
00649         //! Marking routine for class ss_access. 
00650         virtual void gc_mark();
00651 
00652 private:
00653         srp< ss_expression > object;
00654         srp< ss_declaration > member;
00655         static ptr<reflection_list> reflection;
00656         
00657 }; // ss_access
00658 
00659 
00660 //! Class for member access via pointer (->)
00661 class ss_ptr_access : public ss_expression {
00662 public:
00663         //! The method object_ptr_get returns the value of the field ss_ptr_access::object_ptr.
00664         ptr< ss_expression > object_ptr_get() const;
00665 
00666         //! The method object_ptr_set sets the field ss_ptr_access::object_ptr to the given value.
00667         void object_ptr_set(const ptr< ss_expression > &);
00668 
00669         //! The method member_get returns the value of the field ss_ptr_access::member.
00670         ptr< ss_declaration > member_get() const;
00671 
00672         //! The method member_set sets the field ss_ptr_access::member to the given value.
00673         void member_set(const ptr< ss_declaration > &);
00674 
00675         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v );
00676         
00677         //! First generated factory method for class ss_ptr_access.
00678         static ptr< ss_ptr_access > create (
00679                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00680                 ptr< ss_type > a__ss_expression__type,
00681                 ptr< ss_sp > a__ss_expression__psp,
00682                 ptr< ss_sp > a__ss_expression__nsp,
00683                 ptr< ss_expression > a__ss_ptr_access__object_ptr,
00684                 ptr< ss_declaration > a__ss_ptr_access__member);
00685 
00686         
00687 
00688         //! for purposes of dumping
00689         virtual ptr<reflection_list> reflection_get() const;
00690         //! for purposes of dumping
00691         virtual ptr<field_list_list> field_values_get() const;
00692         
00693 protected:
00694         //! Generated constructor for class ss_ptr_access.
00695         ss_ptr_access (
00696                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00697                 ptr< ss_type > a__ss_expression__type,
00698                 ptr< ss_sp > a__ss_expression__psp,
00699                 ptr< ss_sp > a__ss_expression__nsp,
00700                 ptr< ss_expression > a__ss_ptr_access__object_ptr,
00701                 ptr< ss_declaration > a__ss_ptr_access__member);
00702 
00703         //! Marking routine for class ss_ptr_access. 
00704         virtual void gc_mark();
00705 
00706 private:
00707         srp< ss_expression > object_ptr;
00708         srp< ss_declaration > member;
00709         static ptr<reflection_list> reflection;
00710         
00711 }; // ss_ptr_access
00712 
00713 
00714 //! Base class for built-in binary operators
00715 class ss_binary_expr : public ss_expression {
00716 public:
00717         //! The method left_get returns the value of the field ss_binary_expr::left.
00718         ptr< ss_expression > left_get() const;
00719 
00720         //! The method left_set sets the field ss_binary_expr::left to the given value.
00721         void left_set(const ptr< ss_expression > &);
00722 
00723         //! The method right_get returns the value of the field ss_binary_expr::right.
00724         ptr< ss_expression > right_get() const;
00725 
00726         //! The method right_set sets the field ss_binary_expr::right to the given value.
00727         void right_set(const ptr< ss_expression > &);
00728 
00729         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v ) abstract;
00730         
00731 
00732         //! for purposes of dumping
00733         virtual ptr<reflection_list> reflection_get() const;
00734         //! for purposes of dumping
00735         virtual ptr<field_list_list> field_values_get() const;
00736         
00737 protected:
00738         //! Generated constructor for class ss_binary_expr.
00739         ss_binary_expr (
00740                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00741                 ptr< ss_type > a__ss_expression__type,
00742                 ptr< ss_sp > a__ss_expression__psp,
00743                 ptr< ss_sp > a__ss_expression__nsp,
00744                 ptr< ss_expression > a__ss_binary_expr__left,
00745                 ptr< ss_expression > a__ss_binary_expr__right);
00746 
00747         //! Marking routine for class ss_binary_expr. 
00748         virtual void gc_mark();
00749 
00750 private:
00751         srp< ss_expression > left;
00752         srp< ss_expression > right;
00753         static ptr<reflection_list> reflection;
00754         
00755 }; // ss_binary_expr
00756 
00757 
00758 end_package(sem);
00759 end_package(cplus);
00760 end_package(lang);
00761 end_package(lestes);
00762 
00763 #endif // lestes__lang__cplus__sem__ss_expression_g_hh__included

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