ss_decl2lstring_base.g.hh

Go to the documentation of this file.
00001 // This file is automatically generated, do not edit.
00002 
00003 /*!
00004         \file
00005         \brief Visitors returning lstring for ss_declaration.
00006         \author jaz
00007 */
00008 
00009 #ifndef lestes__lang__cplus__sem__ss_decl2lstring_base_g_hh__included
00010 #define lestes__lang__cplus__sem__ss_decl2lstring_base_g_hh__included
00011 
00012 #include <lestes/common.hh>
00013 #include <lestes/std/map.hh>
00014 #include <lestes/lang/cplus/sem/ss_declaration_visitor.v.g.hh>
00015 
00016 #include <lestes/std/objectize_macros.hh>
00017 package(lestes);
00018 package(lang);
00019 package(cplus);
00020 package(sem);
00021 
00022 
00023 class ss_decl2mangled_name;
00024 
00025 
00026 //! Visitor that returns string representation of ss_declaration as defined by GNU GCC mangling rules.
00027 class ss_decl2mangled_name : public ss_declaration_visitor {
00028 public:
00029         //! The method singleton_instance_get returns the value of the field ss_decl2mangled_name::singleton_instance.
00030         static ptr< ss_decl2mangled_name > singleton_instance_get();
00031 
00032         //! The method singleton_instance_set sets the field ss_decl2mangled_name::singleton_instance to the given value.
00033         static void singleton_instance_set(const ptr< ss_decl2mangled_name > &);
00034 
00035         //! The method level_get returns the value of the field ss_decl2mangled_name::level.
00036         ulint level_get() const;
00037 
00038         //! The method level_set sets the field ss_decl2mangled_name::level to the given value.
00039         void level_set(ulint);
00040 
00041         //! The method result_get returns the value of the field ss_decl2mangled_name::result.
00042         lstring result_get() const;
00043 
00044         //! The method result_set sets the field ss_decl2mangled_name::result to the given value.
00045         void result_set(lstring);
00046 
00047         //! The method substitutions_get returns the value of the field ss_decl2mangled_name::substitutions.
00048         ptr< ::lestes::std::map< lstring, lstring > > substitutions_get() const;
00049 
00050         //! The method substitutions_set sets the field ss_decl2mangled_name::substitutions to the given value.
00051         void substitutions_set(const ptr< ::lestes::std::map< lstring, lstring > > & );
00052 
00053         //! Gets substitution for a mangled string.
00054         lstring get_substitution(lstring mangled_name);
00055 
00056         static ptr< ss_decl2mangled_name > instance();
00057 
00058         void init();
00059 
00060         virtual void visit_ss_namespace_definition(ptr< ::lestes::lang::cplus::sem::ss_namespace_definition > );
00061 
00062         virtual void visit_ss_object_declaration(ptr< ::lestes::lang::cplus::sem::ss_object_declaration > );
00063 
00064         virtual void visit_ss_bitfield_declaration(ptr< ::lestes::lang::cplus::sem::ss_bitfield_declaration > );
00065 
00066         virtual void visit_ss_parameter_declaration(ptr< ::lestes::lang::cplus::sem::ss_parameter_declaration > );
00067 
00068         virtual void visit_ss_fake_declaration(ptr< ::lestes::lang::cplus::sem::ss_fake_declaration > );
00069 
00070         virtual void visit_ss_injected_class_declaration(ptr< ::lestes::lang::cplus::sem::ss_injected_class_declaration > );
00071 
00072         virtual void visit_ss_enum_definition(ptr< ::lestes::lang::cplus::sem::ss_enum_definition > );
00073 
00074         virtual void visit_ss_typedef_definition(ptr< ::lestes::lang::cplus::sem::ss_typedef_definition > );
00075 
00076         virtual void visit_ss_enumerator_declaration(ptr< ::lestes::lang::cplus::sem::ss_enumerator_declaration > );
00077 
00078         virtual void visit_ss_structure_declaration(ptr< ::lestes::lang::cplus::sem::ss_structure_declaration > );
00079 
00080         virtual void visit_ss_function_declaration(ptr< ::lestes::lang::cplus::sem::ss_function_declaration > );
00081 
00082         virtual void visit_ss_method_declaration(ptr< ::lestes::lang::cplus::sem::ss_method_declaration > );
00083 
00084         virtual void visit_ss_using_declaration(ptr< ::lestes::lang::cplus::sem::ss_using_declaration > );
00085 
00086         virtual void visit_ss_compound_stmt_declaration(ptr< ::lestes::lang::cplus::sem::ss_compound_stmt_declaration > );
00087 
00088         virtual void visit_ss_builtin_operator_declaration(ptr< ::lestes::lang::cplus::sem::ss_builtin_operator_declaration > );
00089 
00090         
00091         //! First generated factory method for class ss_decl2mangled_name.
00092         static ptr< ss_decl2mangled_name > create (
00093                 ulint a__ss_decl2mangled_name__level,
00094                 lstring a__ss_decl2mangled_name__result,
00095                 ptr< ::lestes::std::map< lstring, lstring > > a__ss_decl2mangled_name__substitutions);
00096 
00097         //! Second generated factory method for class ss_decl2mangled_name.
00098         static ptr< ss_decl2mangled_name > create (
00099                 );
00100 
00101         
00102         //! "visit-return" method
00103         lstring process( const ptr< ::lestes::lang::cplus::sem::ss_declaration > & );
00104 
00105         //! for purposes of dumping
00106         virtual ptr<reflection_list> reflection_get() const;
00107         //! for purposes of dumping
00108         virtual ptr<field_list_list> field_values_get() const;
00109         
00110 protected:
00111         //! Generated constructor for class ss_decl2mangled_name.
00112         ss_decl2mangled_name (
00113                 ulint a__ss_decl2mangled_name__level,
00114                 lstring a__ss_decl2mangled_name__result,
00115                 ptr< ::lestes::std::map< lstring, lstring > > a__ss_decl2mangled_name__substitutions);
00116 
00117         //! Marking routine for class ss_decl2mangled_name. 
00118         virtual void gc_mark();
00119 
00120 private:
00121         static ptr< ss_decl2mangled_name > singleton_instance;
00122         ulint level;
00123         lstring result;
00124         srp< ::lestes::std::map< lstring, lstring > >  substitutions;
00125         static ptr<reflection_list> reflection;
00126         
00127 }; // ss_decl2mangled_name
00128 
00129 
00130 end_package(sem);
00131 end_package(cplus);
00132 end_package(lang);
00133 end_package(lestes);
00134 
00135 #endif // lestes__lang__cplus__sem__ss_decl2lstring_base_g_hh__included

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