symbol_register.g.hh

Go to the documentation of this file.
00001 // This file is automatically generated, do not edit.
00002 
00003 /*!
00004         \file
00005         \brief Symbol register.
00006         \author jaz
00007 */
00008 
00009 #ifndef lestes__md__symbols__symbol_register_g_hh__included
00010 #define lestes__md__symbols__symbol_register_g_hh__included
00011 
00012 #include <lestes/md/common.hh>
00013 #include <lestes/std/set.hh>
00014 #include <lestes/md/symbols/symbol_register_base.g.hh>
00015 
00016 #include <lestes/std/objectize_macros.hh>
00017 package(lestes);
00018 package(lang);
00019 package(cplus);
00020 package(sem);
00021 class ss_declaration;
00022 end_package(sem);
00023 end_package(cplus);
00024 end_package(lang);
00025 end_package(lestes);
00026 
00027 package(lestes);
00028 package(md);
00029 package(symbols);
00030 
00031 
00032 class symbol_register;
00033 
00034 
00035 /*! \brief Register of global symbols.
00036 
00037 Holds list of global symbols (functions, variables) defined within translation unit.
00038 Global asm symbol declarations are generated from it during asm code generation phase.
00039                         
00040 */
00041 class symbol_register : public symbol_register_base {
00042 public:
00043         //! The method singleton_instance_get returns the value of the field symbol_register::singleton_instance.
00044         static ptr< symbol_register > singleton_instance_get();
00045 
00046         //! The method singleton_instance_set sets the field symbol_register::singleton_instance to the given value.
00047         static void singleton_instance_set(const ptr< symbol_register > &);
00048 
00049         //! The method externals_get returns the value of the field symbol_register::externals.
00050         ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > externals_get() const;
00051 
00052         //! The method externals_set sets the field symbol_register::externals to the given value.
00053         void externals_set(const ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > & );
00054 
00055         //! The method globals_get returns the value of the field symbol_register::globals.
00056         ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > globals_get() const;
00057 
00058         //! The method globals_set sets the field symbol_register::globals to the given value.
00059         void globals_set(const ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > & );
00060 
00061         //! The method internals_get returns the value of the field symbol_register::internals.
00062         ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > internals_get() const;
00063 
00064         //! The method internals_set sets the field symbol_register::internals to the given value.
00065         void internals_set(const ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > & );
00066 
00067         static ptr< symbol_register > instance();
00068 
00069         //! Registers an external symbol.
00070         void register_external(ptr< ::lestes::lang::cplus::sem::ss_declaration > symbol);
00071 
00072         //! Registers a global symbol.
00073         void register_global(ptr< ::lestes::lang::cplus::sem::ss_declaration > symbol);
00074 
00075         //! Registers an internal symbol.
00076         void register_internal(ptr< ::lestes::lang::cplus::sem::ss_declaration > symbol);
00077 
00078         //! Registers a symbol.
00079         virtual void register_symbol(ptr< ::lestes::lang::cplus::sem::ss_declaration > symbol);
00080 
00081         //! Emits global delarations for registered symbols.
00082         void emit_global_declarations(::std::ostream& output);
00083 
00084         
00085         //! First generated factory method for class symbol_register.
00086         static ptr< symbol_register > create (
00087                 ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > a__symbol_register__externals,
00088                 ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > a__symbol_register__globals,
00089                 ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > a__symbol_register__internals);
00090 
00091         //! Second generated factory method for class symbol_register.
00092         static ptr< symbol_register > create (
00093                 );
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 symbol_register.
00104         symbol_register (
00105                 ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > a__symbol_register__externals,
00106                 ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > a__symbol_register__globals,
00107                 ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > a__symbol_register__internals);
00108 
00109         //! Marking routine for class symbol_register. 
00110         virtual void gc_mark();
00111 
00112 private:
00113         static ptr< symbol_register > singleton_instance;
00114         //! Registered external symbols.
00115         srp< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > >  externals;
00116         //! Registered global symbols.
00117         srp< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > >  globals;
00118         //! Registered internal symbols.
00119         srp< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > >  internals;
00120         static ptr<reflection_list> reflection;
00121         
00122 }; // symbol_register
00123 
00124 
00125 end_package(symbols);
00126 end_package(md);
00127 end_package(lestes);
00128 
00129 #endif // lestes__md__symbols__symbol_register_g_hh__included

Generated on Mon Feb 12 18:23:36 2007 for lestes by doxygen 1.5.1-20070107