asm_generator_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__tasm__asm_generator_base_g_hh__included
00009 #define lestes__md__tasm__asm_generator_base_g_hh__included
00010 
00011 #include <lestes/std/vector.hh>
00012 #include <lestes/md/common.hh>
00013 #include <iosfwd>
00014 
00015 #include <lestes/std/objectize_macros.hh>
00016 package(lestes);
00017 package(std);
00018 class object;
00019 end_package(std);
00020 end_package(lestes);
00021 
00022 package(lestes);
00023 package(backend_v2);
00024 package(structs);
00025 class func_data;
00026 end_package(structs);
00027 end_package(backend_v2);
00028 end_package(lestes);
00029 
00030 package(lestes);
00031 package(md);
00032 package(tasm);
00033 
00034 
00035 class asm_generator_base;
00036 
00037 
00038 /*! \brief Performs asm code generation of a translation unit.
00039 
00040 Note: A concrete derived class is target dependent and it is placed in 
00041 /target/machine/${TARGET_CPU}/lestes/md/tasm/ directory. 
00042 */
00043 class asm_generator_base : public ::lestes::std::object {
00044 public:
00045         //! The method output_get returns the value of the field asm_generator_base::output.
00046         ::std::ostream& output_get() const;
00047 
00048         // WARNING: Detailed doxygen description for method
00049         // should be near it's implementation, not in XML file.
00050 
00051         /*! \brief Generates translation unit prologue.
00052 
00053         It generates asm file headers, data sections and declarations 
00054         */
00055         virtual void generate_tu_prologue() abstract;
00056 
00057         // WARNING: Detailed doxygen description for method
00058         // should be near it's implementation, not in XML file.
00059 
00060         /*! \brief Generates translation unit's body.
00061 
00062         \param tu_data A list of tu's functions.
00063                         
00064         */
00065         virtual void generate_tu_body(ptr<vector<srp< ::lestes::backend_v2::structs::func_data> > > tu_data) abstract;
00066 
00067         //! Generates translation unit epilogue.
00068         virtual void generate_tu_epilogue() abstract;
00069 
00070         
00071 
00072         //! for purposes of dumping
00073         virtual ptr<reflection_list> reflection_get() const;
00074         //! for purposes of dumping
00075         virtual ptr<field_list_list> field_values_get() const;
00076         
00077 protected:
00078         //! Generated constructor for class asm_generator_base.
00079         asm_generator_base (
00080                 ::std::ostream& a__asm_generator_base__output);
00081 
00082         //! Marking routine for class asm_generator_base. 
00083         virtual void gc_mark();
00084 
00085 private:
00086         //! An output stream.
00087         ::std::ostream& output;
00088         static ptr<reflection_list> reflection;
00089         
00090 }; // asm_generator_base
00091 
00092 
00093 end_package(tasm);
00094 end_package(md);
00095 end_package(lestes);
00096 
00097 #endif // lestes__md__tasm__asm_generator_base_g_hh__included

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