literal_info_base.g.hh

Go to the documentation of this file.
00001 // This file is automatically generated, do not edit.
00002 
00003 /*!
00004         \file
00005         \author jaz
00006 */
00007 
00008 #ifndef lestes__md__literals__literal_info_base_g_hh__included
00009 #define lestes__md__literals__literal_info_base_g_hh__included
00010 
00011 #include <lestes/std/list.hh>
00012 #include <lestes/md/common.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(md);
00023 package(types);
00024 class tm_data_type_base;
00025 end_package(types);
00026 end_package(md);
00027 end_package(lestes);
00028 
00029 package(lestes);
00030 package(md);
00031 package(literals);
00032 
00033 
00034 class literal_info_base;
00035 class li_simple_base;
00036 class li_compound_base;
00037 
00038 
00039 //! Informations about literal - type and value.
00040 class literal_info_base : public ::lestes::std::object {
00041 public:
00042         enum kind_type {
00043                 COMPOUND,
00044                 SIMPLE
00045         };
00046 
00047         //! The method type_get returns the value of the field literal_info_base::type.
00048         ptr< ::lestes::md::types::tm_data_type_base > type_get() const;
00049 
00050         //! The method type_set sets the field literal_info_base::type to the given value.
00051         void type_set(const ptr< ::lestes::md::types::tm_data_type_base > &);
00052 
00053         //! Returns asm string representing value of the literal.
00054         virtual lstring get_asm_definition_val() abstract;
00055 
00056         //! Returnd asm string representing datatype of the literal.
00057         virtual lstring get_asm_definition_type() abstract;
00058 
00059         //! Returns kind of the literal.
00060         virtual kind_type kind_get() abstract;
00061 
00062         
00063 
00064         //! for purposes of dumping
00065         virtual ptr<reflection_list> reflection_get() const;
00066         //! for purposes of dumping
00067         virtual ptr<field_list_list> field_values_get() const;
00068         
00069 protected:
00070         //! Generated constructor for class literal_info_base.
00071         literal_info_base (
00072                 ptr< ::lestes::md::types::tm_data_type_base > a__literal_info_base__type);
00073 
00074         //! Marking routine for class literal_info_base. 
00075         virtual void gc_mark();
00076 
00077 private:
00078         //! Data type of the literal.
00079         srp< ::lestes::md::types::tm_data_type_base > type;
00080         static ptr<reflection_list> reflection;
00081         
00082 }; // literal_info_base
00083 
00084 
00085 /*! \brief Simple literal.
00086 
00087 Its datatype is simple type ( e.g. integer(1), double(2.45e3) ).
00088                 
00089 Note: A concrete implementation is target-machine dependent and it is placed in /target/machine/${TARGET_CPU}/lestes/md/literals/ directory.            
00090 
00091 */
00092 class li_simple_base : public literal_info_base {
00093 public:
00094         //! The method data_get returns the value of the field li_simple_base::data.
00095         ucn_string data_get() const;
00096 
00097         //! The method data_set sets the field li_simple_base::data to the given value.
00098         void data_set(ucn_string);
00099 
00100         virtual lstring get_asm_definition_val() abstract;
00101 
00102         virtual lstring get_asm_definition_type() abstract;
00103 
00104         virtual kind_type kind_get();
00105 
00106         
00107 
00108         //! for purposes of dumping
00109         virtual ptr<reflection_list> reflection_get() const;
00110         //! for purposes of dumping
00111         virtual ptr<field_list_list> field_values_get() const;
00112         
00113 protected:
00114         //! Generated constructor for class li_simple_base.
00115         li_simple_base (
00116                 ptr< ::lestes::md::types::tm_data_type_base > a__literal_info_base__type,
00117                 ucn_string a__li_simple_base__data);
00118 
00119         //! Marking routine for class li_simple_base. 
00120         virtual void gc_mark();
00121 
00122 private:
00123         //! Value of the literal.
00124         ucn_string data;
00125         static ptr<reflection_list> reflection;
00126         
00127 }; // li_simple_base
00128 
00129 
00130 /*! \brief Compound literal.
00131 
00132 It is composed of several literals (e.g. string "Hello" is composed of 'h','e','l','l','o' literals).
00133                 
00134 Note: A concrete implementation is target-machine dependent and it is placed in /target/machine/${TARGET_CPU}/lestes/md/literals/ directory.
00135 */
00136 class li_compound_base : public literal_info_base {
00137 public:
00138         //! The method items_get returns the value of the field li_compound_base::items.
00139         ptr< ::lestes::std::list< srp< literal_info_base > > > items_get() const;
00140 
00141         //! The method items_set sets the field li_compound_base::items to the given value.
00142         void items_set(const ptr< ::lestes::std::list< srp< literal_info_base > > > & );
00143 
00144         virtual lstring get_asm_definition_val() abstract;
00145 
00146         virtual lstring get_asm_definition_type() abstract;
00147 
00148         virtual kind_type kind_get();
00149 
00150         
00151 
00152         //! for purposes of dumping
00153         virtual ptr<reflection_list> reflection_get() const;
00154         //! for purposes of dumping
00155         virtual ptr<field_list_list> field_values_get() const;
00156         
00157 protected:
00158         //! Generated constructor for class li_compound_base.
00159         li_compound_base (
00160                 ptr< ::lestes::md::types::tm_data_type_base > a__literal_info_base__type,
00161                 ptr< ::lestes::std::list< srp< literal_info_base > > > a__li_compound_base__items);
00162 
00163         //! Marking routine for class li_compound_base. 
00164         virtual void gc_mark();
00165 
00166 private:
00167         //! List of literals composing the compound literal.
00168         srp< ::lestes::std::list< srp< literal_info_base > > >  items;
00169         static ptr<reflection_list> reflection;
00170         
00171 }; // li_compound_base
00172 
00173 
00174 end_package(literals);
00175 end_package(md);
00176 end_package(lestes);
00177 
00178 package(lestes);
00179 package(std);
00180 specialize_objectize_for_enum( ::lestes::md::literals::literal_info_base::kind_type );
00181 end_package(std);
00182 end_package(lestes);
00183 
00184 #endif // lestes__md__literals__literal_info_base_g_hh__included

Generated on Mon Feb 12 18:22:38 2007 for lestes by doxygen 1.5.1-20070107