ss_expr_unary_op.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_expr_unary_op_g_hh__included
00013 #define lestes__lang__cplus__sem__ss_expr_unary_op_g_hh__included
00014 
00015 #include <lestes/common.hh>
00016 #include <lestes/lang/cplus/sem/ss_expression.g.hh>
00017 
00018 #include <lestes/std/objectize_macros.hh>
00019 package(lestes);
00020 package(lang);
00021 package(cplus);
00022 package(sem);
00023 
00024 
00025 class ss_se;
00026 class ss_expression;
00027 class ss_type;
00028 class ss_unary_expr;
00029 class ss_dereference;
00030 class ss_conversion;
00031 class ss_array_to_pointer;
00032 class ss_bind_reference;
00033 class ss_bind_to_temporary;
00034 class ss_get;
00035 class ss_vol_get;
00036 class ss_gat;
00037 class ss_neg;
00038 class ss_lnot;
00039 class ss_bnot;
00040 class ss_address_of;
00041 
00042 
00043 //! Base class for function call expressions
00044 class ss_unary_expr : public ss_expression {
00045 public:
00046         //! The method expr_get returns the value of the field ss_unary_expr::expr.
00047         ptr< ss_expression > expr_get() const;
00048 
00049         //! The method expr_set sets the field ss_unary_expr::expr to the given value.
00050         void expr_set(const ptr< ss_expression > &);
00051 
00052         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v ) abstract;
00053         
00054 
00055         //! for purposes of dumping
00056         virtual ptr<reflection_list> reflection_get() const;
00057         //! for purposes of dumping
00058         virtual ptr<field_list_list> field_values_get() const;
00059         
00060 protected:
00061         //! Generated constructor for class ss_unary_expr.
00062         ss_unary_expr (
00063                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00064                 ptr< ss_type > a__ss_expression__type,
00065                 ptr< ss_sp > a__ss_expression__psp,
00066                 ptr< ss_sp > a__ss_expression__nsp,
00067                 ptr< ss_expression > a__ss_unary_expr__expr);
00068 
00069         //! Marking routine for class ss_unary_expr. 
00070         virtual void gc_mark();
00071 
00072 private:
00073         srp< ss_expression > expr;
00074         static ptr<reflection_list> reflection;
00075         
00076 }; // ss_unary_expr
00077 
00078 
00079 //! Class for dereference operator (*)
00080 class ss_dereference : public ss_unary_expr {
00081 public:
00082         //! return true
00083         virtual bool is_lvalue();
00084 
00085         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v );
00086         
00087         //! First generated factory method for class ss_dereference.
00088         static ptr< ss_dereference > create (
00089                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00090                 ptr< ss_type > a__ss_expression__type,
00091                 ptr< ss_sp > a__ss_expression__psp,
00092                 ptr< ss_sp > a__ss_expression__nsp,
00093                 ptr< ss_expression > a__ss_unary_expr__expr);
00094 
00095         
00096 
00097         //! for purposes of dumping
00098         virtual ptr<reflection_list> reflection_get() const;
00099         //! for purposes of dumping
00100         virtual ptr<field_list_list> field_values_get() const;
00101         
00102 protected:
00103         //! Generated constructor for class ss_dereference.
00104         ss_dereference (
00105                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00106                 ptr< ss_type > a__ss_expression__type,
00107                 ptr< ss_sp > a__ss_expression__psp,
00108                 ptr< ss_sp > a__ss_expression__nsp,
00109                 ptr< ss_expression > a__ss_unary_expr__expr);
00110 
00111         //! Marking routine for class ss_dereference. 
00112         virtual void gc_mark();
00113 
00114 private:
00115         static ptr<reflection_list> reflection;
00116         
00117 }; // ss_dereference
00118 
00119 
00120 //! Class for conversion operator
00121 class ss_conversion : public ss_unary_expr {
00122 public:
00123         //! The method src_type_get returns the value of the field ss_conversion::src_type.
00124         ptr< ss_type > src_type_get() const;
00125 
00126         //! The method src_type_set sets the field ss_conversion::src_type to the given value.
00127         void src_type_set(const ptr< ss_type > &);
00128 
00129         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v );
00130         
00131         //! First generated factory method for class ss_conversion.
00132         static ptr< ss_conversion > create (
00133                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00134                 ptr< ss_type > a__ss_expression__type,
00135                 ptr< ss_sp > a__ss_expression__psp,
00136                 ptr< ss_sp > a__ss_expression__nsp,
00137                 ptr< ss_expression > a__ss_unary_expr__expr,
00138                 ptr< ss_type > a__ss_conversion__src_type);
00139 
00140         
00141 
00142         //! for purposes of dumping
00143         virtual ptr<reflection_list> reflection_get() const;
00144         //! for purposes of dumping
00145         virtual ptr<field_list_list> field_values_get() const;
00146         
00147 protected:
00148         //! Generated constructor for class ss_conversion.
00149         ss_conversion (
00150                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00151                 ptr< ss_type > a__ss_expression__type,
00152                 ptr< ss_sp > a__ss_expression__psp,
00153                 ptr< ss_sp > a__ss_expression__nsp,
00154                 ptr< ss_expression > a__ss_unary_expr__expr,
00155                 ptr< ss_type > a__ss_conversion__src_type);
00156 
00157         //! Marking routine for class ss_conversion. 
00158         virtual void gc_mark();
00159 
00160 private:
00161         srp< ss_type > src_type;
00162         static ptr<reflection_list> reflection;
00163         
00164 }; // ss_conversion
00165 
00166 
00167 /*! \brief Class for conversion operator for the array to pointer case
00168 
00169 Detailed doxygen documentation
00170 */
00171 class ss_array_to_pointer : public ss_unary_expr {
00172 public:
00173         //! The method src_type_get returns the value of the field ss_array_to_pointer::src_type.
00174         ptr< ss_type > src_type_get() const;
00175 
00176         //! The method src_type_set sets the field ss_array_to_pointer::src_type to the given value.
00177         void src_type_set(const ptr< ss_type > &);
00178 
00179         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v );
00180         
00181         //! First generated factory method for class ss_array_to_pointer.
00182         static ptr< ss_array_to_pointer > create (
00183                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00184                 ptr< ss_type > a__ss_expression__type,
00185                 ptr< ss_sp > a__ss_expression__psp,
00186                 ptr< ss_sp > a__ss_expression__nsp,
00187                 ptr< ss_expression > a__ss_unary_expr__expr,
00188                 ptr< ss_type > a__ss_array_to_pointer__src_type);
00189 
00190         
00191 
00192         //! for purposes of dumping
00193         virtual ptr<reflection_list> reflection_get() const;
00194         //! for purposes of dumping
00195         virtual ptr<field_list_list> field_values_get() const;
00196         
00197 protected:
00198         //! Generated constructor for class ss_array_to_pointer.
00199         ss_array_to_pointer (
00200                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00201                 ptr< ss_type > a__ss_expression__type,
00202                 ptr< ss_sp > a__ss_expression__psp,
00203                 ptr< ss_sp > a__ss_expression__nsp,
00204                 ptr< ss_expression > a__ss_unary_expr__expr,
00205                 ptr< ss_type > a__ss_array_to_pointer__src_type);
00206 
00207         //! Marking routine for class ss_array_to_pointer. 
00208         virtual void gc_mark();
00209 
00210 private:
00211         srp< ss_type > src_type;
00212         static ptr<reflection_list> reflection;
00213         
00214 }; // ss_array_to_pointer
00215 
00216 
00217 /*! \brief Class for reference binding  
00218 
00219         This is conversion operator used to represent reference binding
00220                         from lvalue to reference.
00221 */
00222 class ss_bind_reference : public ss_unary_expr {
00223 public:
00224         //! The method src_type_get returns the value of the field ss_bind_reference::src_type.
00225         ptr< ss_type > src_type_get() const;
00226 
00227         //! The method src_type_set sets the field ss_bind_reference::src_type to the given value.
00228         void src_type_set(const ptr< ss_type > &);
00229 
00230         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v );
00231         
00232         //! First generated factory method for class ss_bind_reference.
00233         static ptr< ss_bind_reference > create (
00234                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00235                 ptr< ss_type > a__ss_expression__type,
00236                 ptr< ss_sp > a__ss_expression__psp,
00237                 ptr< ss_sp > a__ss_expression__nsp,
00238                 ptr< ss_expression > a__ss_unary_expr__expr,
00239                 ptr< ss_type > a__ss_bind_reference__src_type);
00240 
00241         
00242 
00243         //! for purposes of dumping
00244         virtual ptr<reflection_list> reflection_get() const;
00245         //! for purposes of dumping
00246         virtual ptr<field_list_list> field_values_get() const;
00247         
00248 protected:
00249         //! Generated constructor for class ss_bind_reference.
00250         ss_bind_reference (
00251                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00252                 ptr< ss_type > a__ss_expression__type,
00253                 ptr< ss_sp > a__ss_expression__psp,
00254                 ptr< ss_sp > a__ss_expression__nsp,
00255                 ptr< ss_expression > a__ss_unary_expr__expr,
00256                 ptr< ss_type > a__ss_bind_reference__src_type);
00257 
00258         //! Marking routine for class ss_bind_reference. 
00259         virtual void gc_mark();
00260 
00261 private:
00262         srp< ss_type > src_type;
00263         static ptr<reflection_list> reflection;
00264         
00265 }; // ss_bind_reference
00266 
00267 
00268 /*! \brief Class for pruposes of reference binding 
00269 
00270         This is conversion operator used to represent reference binding
00271                         from rvalue to const reference.
00272 */
00273 class ss_bind_to_temporary : public ss_unary_expr {
00274 public:
00275         //! The method src_type_get returns the value of the field ss_bind_to_temporary::src_type.
00276         ptr< ss_type > src_type_get() const;
00277 
00278         //! The method src_type_set sets the field ss_bind_to_temporary::src_type to the given value.
00279         void src_type_set(const ptr< ss_type > &);
00280 
00281         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v );
00282         
00283         //! First generated factory method for class ss_bind_to_temporary.
00284         static ptr< ss_bind_to_temporary > create (
00285                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00286                 ptr< ss_type > a__ss_expression__type,
00287                 ptr< ss_sp > a__ss_expression__psp,
00288                 ptr< ss_sp > a__ss_expression__nsp,
00289                 ptr< ss_expression > a__ss_unary_expr__expr,
00290                 ptr< ss_type > a__ss_bind_to_temporary__src_type);
00291 
00292         
00293 
00294         //! for purposes of dumping
00295         virtual ptr<reflection_list> reflection_get() const;
00296         //! for purposes of dumping
00297         virtual ptr<field_list_list> field_values_get() const;
00298         
00299 protected:
00300         //! Generated constructor for class ss_bind_to_temporary.
00301         ss_bind_to_temporary (
00302                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00303                 ptr< ss_type > a__ss_expression__type,
00304                 ptr< ss_sp > a__ss_expression__psp,
00305                 ptr< ss_sp > a__ss_expression__nsp,
00306                 ptr< ss_expression > a__ss_unary_expr__expr,
00307                 ptr< ss_type > a__ss_bind_to_temporary__src_type);
00308 
00309         //! Marking routine for class ss_bind_to_temporary. 
00310         virtual void gc_mark();
00311 
00312 private:
00313         srp< ss_type > src_type;
00314         static ptr<reflection_list> reflection;
00315         
00316 }; // ss_bind_to_temporary
00317 
00318 
00319 //! Class representing lvalue to rvalue conversion
00320 class ss_get : public ss_unary_expr {
00321 public:
00322         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v );
00323         
00324         //! First generated factory method for class ss_get.
00325         static ptr< ss_get > create (
00326                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00327                 ptr< ss_type > a__ss_expression__type,
00328                 ptr< ss_sp > a__ss_expression__psp,
00329                 ptr< ss_sp > a__ss_expression__nsp,
00330                 ptr< ss_expression > a__ss_unary_expr__expr);
00331 
00332         
00333 
00334         //! for purposes of dumping
00335         virtual ptr<reflection_list> reflection_get() const;
00336         //! for purposes of dumping
00337         virtual ptr<field_list_list> field_values_get() const;
00338         
00339 protected:
00340         //! Generated constructor for class ss_get.
00341         ss_get (
00342                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00343                 ptr< ss_type > a__ss_expression__type,
00344                 ptr< ss_sp > a__ss_expression__psp,
00345                 ptr< ss_sp > a__ss_expression__nsp,
00346                 ptr< ss_expression > a__ss_unary_expr__expr);
00347 
00348         //! Marking routine for class ss_get. 
00349         virtual void gc_mark();
00350 
00351 private:
00352         static ptr<reflection_list> reflection;
00353         
00354 }; // ss_get
00355 
00356 
00357 //! Class representing lvalue to rvalue conversion (from volatile variable object)
00358 class ss_vol_get : public ss_get {
00359 public:
00360         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v );
00361         
00362         //! First generated factory method for class ss_vol_get.
00363         static ptr< ss_vol_get > create (
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_expression > a__ss_unary_expr__expr);
00369 
00370         
00371 
00372         //! for purposes of dumping
00373         virtual ptr<reflection_list> reflection_get() const;
00374         //! for purposes of dumping
00375         virtual ptr<field_list_list> field_values_get() const;
00376         
00377 protected:
00378         //! Generated constructor for class ss_vol_get.
00379         ss_vol_get (
00380                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00381                 ptr< ss_type > a__ss_expression__type,
00382                 ptr< ss_sp > a__ss_expression__psp,
00383                 ptr< ss_sp > a__ss_expression__nsp,
00384                 ptr< ss_expression > a__ss_unary_expr__expr);
00385 
00386         //! Marking routine for class ss_vol_get. 
00387         virtual void gc_mark();
00388 
00389 private:
00390         static ptr<reflection_list> reflection;
00391         
00392 }; // ss_vol_get
00393 
00394 
00395 //! Class for unary operator plus/gation (+)
00396 class ss_gat : public ss_unary_expr {
00397 public:
00398         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v );
00399         
00400         //! First generated factory method for class ss_gat.
00401         static ptr< ss_gat > create (
00402                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00403                 ptr< ss_type > a__ss_expression__type,
00404                 ptr< ss_sp > a__ss_expression__psp,
00405                 ptr< ss_sp > a__ss_expression__nsp,
00406                 ptr< ss_expression > a__ss_unary_expr__expr);
00407 
00408         
00409 
00410         //! for purposes of dumping
00411         virtual ptr<reflection_list> reflection_get() const;
00412         //! for purposes of dumping
00413         virtual ptr<field_list_list> field_values_get() const;
00414         
00415 protected:
00416         //! Generated constructor for class ss_gat.
00417         ss_gat (
00418                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00419                 ptr< ss_type > a__ss_expression__type,
00420                 ptr< ss_sp > a__ss_expression__psp,
00421                 ptr< ss_sp > a__ss_expression__nsp,
00422                 ptr< ss_expression > a__ss_unary_expr__expr);
00423 
00424         //! Marking routine for class ss_gat. 
00425         virtual void gc_mark();
00426 
00427 private:
00428         static ptr<reflection_list> reflection;
00429         
00430 }; // ss_gat
00431 
00432 
00433 //! Class for unary operator minus/negation (-)
00434 class ss_neg : public ss_unary_expr {
00435 public:
00436         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v );
00437         
00438         //! First generated factory method for class ss_neg.
00439         static ptr< ss_neg > create (
00440                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00441                 ptr< ss_type > a__ss_expression__type,
00442                 ptr< ss_sp > a__ss_expression__psp,
00443                 ptr< ss_sp > a__ss_expression__nsp,
00444                 ptr< ss_expression > a__ss_unary_expr__expr);
00445 
00446         
00447 
00448         //! for purposes of dumping
00449         virtual ptr<reflection_list> reflection_get() const;
00450         //! for purposes of dumping
00451         virtual ptr<field_list_list> field_values_get() const;
00452         
00453 protected:
00454         //! Generated constructor for class ss_neg.
00455         ss_neg (
00456                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00457                 ptr< ss_type > a__ss_expression__type,
00458                 ptr< ss_sp > a__ss_expression__psp,
00459                 ptr< ss_sp > a__ss_expression__nsp,
00460                 ptr< ss_expression > a__ss_unary_expr__expr);
00461 
00462         //! Marking routine for class ss_neg. 
00463         virtual void gc_mark();
00464 
00465 private:
00466         static ptr<reflection_list> reflection;
00467         
00468 }; // ss_neg
00469 
00470 
00471 //! Class for unary operator of logical negation (!)
00472 class ss_lnot : public ss_unary_expr {
00473 public:
00474         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v );
00475         
00476         //! First generated factory method for class ss_lnot.
00477         static ptr< ss_lnot > create (
00478                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00479                 ptr< ss_type > a__ss_expression__type,
00480                 ptr< ss_sp > a__ss_expression__psp,
00481                 ptr< ss_sp > a__ss_expression__nsp,
00482                 ptr< ss_expression > a__ss_unary_expr__expr);
00483 
00484         
00485 
00486         //! for purposes of dumping
00487         virtual ptr<reflection_list> reflection_get() const;
00488         //! for purposes of dumping
00489         virtual ptr<field_list_list> field_values_get() const;
00490         
00491 protected:
00492         //! Generated constructor for class ss_lnot.
00493         ss_lnot (
00494                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00495                 ptr< ss_type > a__ss_expression__type,
00496                 ptr< ss_sp > a__ss_expression__psp,
00497                 ptr< ss_sp > a__ss_expression__nsp,
00498                 ptr< ss_expression > a__ss_unary_expr__expr);
00499 
00500         //! Marking routine for class ss_lnot. 
00501         virtual void gc_mark();
00502 
00503 private:
00504         static ptr<reflection_list> reflection;
00505         
00506 }; // ss_lnot
00507 
00508 
00509 //! Class for unary operator of binary negation/complement (~)
00510 class ss_bnot : public ss_unary_expr {
00511 public:
00512         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v );
00513         
00514         //! First generated factory method for class ss_bnot.
00515         static ptr< ss_bnot > create (
00516                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00517                 ptr< ss_type > a__ss_expression__type,
00518                 ptr< ss_sp > a__ss_expression__psp,
00519                 ptr< ss_sp > a__ss_expression__nsp,
00520                 ptr< ss_expression > a__ss_unary_expr__expr);
00521 
00522         
00523 
00524         //! for purposes of dumping
00525         virtual ptr<reflection_list> reflection_get() const;
00526         //! for purposes of dumping
00527         virtual ptr<field_list_list> field_values_get() const;
00528         
00529 protected:
00530         //! Generated constructor for class ss_bnot.
00531         ss_bnot (
00532                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00533                 ptr< ss_type > a__ss_expression__type,
00534                 ptr< ss_sp > a__ss_expression__psp,
00535                 ptr< ss_sp > a__ss_expression__nsp,
00536                 ptr< ss_expression > a__ss_unary_expr__expr);
00537 
00538         //! Marking routine for class ss_bnot. 
00539         virtual void gc_mark();
00540 
00541 private:
00542         static ptr<reflection_list> reflection;
00543         
00544 }; // ss_bnot
00545 
00546 
00547 /*! \brief  Class for reference operator (&)
00548 
00549 Dont mistake with var_ref. Here any lvalue can be referenced.
00550                 Also dont mistake with ss_reference, which is type (eg. difference
00551                 between fundecl(paramdecl &a) X funcall(&argdecl) ).
00552             
00553 */
00554 class ss_address_of : public ss_unary_expr {
00555 public:
00556         //! return true
00557         virtual bool is_lvalue();
00558 
00559         virtual void accept_ss_expression_visitor( ptr< ss_expression_visitor > v );
00560         
00561         //! First generated factory method for class ss_address_of.
00562         static ptr< ss_address_of > create (
00563                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00564                 ptr< ss_type > a__ss_expression__type,
00565                 ptr< ss_sp > a__ss_expression__psp,
00566                 ptr< ss_sp > a__ss_expression__nsp,
00567                 ptr< ss_expression > a__ss_unary_expr__expr);
00568 
00569         
00570 
00571         //! for purposes of dumping
00572         virtual ptr<reflection_list> reflection_get() const;
00573         //! for purposes of dumping
00574         virtual ptr<field_list_list> field_values_get() const;
00575         
00576 protected:
00577         //! Generated constructor for class ss_address_of.
00578         ss_address_of (
00579                 ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00580                 ptr< ss_type > a__ss_expression__type,
00581                 ptr< ss_sp > a__ss_expression__psp,
00582                 ptr< ss_sp > a__ss_expression__nsp,
00583                 ptr< ss_expression > a__ss_unary_expr__expr);
00584 
00585         //! Marking routine for class ss_address_of. 
00586         virtual void gc_mark();
00587 
00588 private:
00589         static ptr<reflection_list> reflection;
00590         
00591 }; // ss_address_of
00592 
00593 
00594 end_package(sem);
00595 end_package(cplus);
00596 end_package(lang);
00597 end_package(lestes);
00598 
00599 #endif // lestes__lang__cplus__sem__ss_expr_unary_op_g_hh__included

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