00001
00002
00003 #ifndef lestes__lang__cplus__sem__as_id_to_declaration_set_g_hh__included
00004 #define lestes__lang__cplus__sem__as_id_to_declaration_set_g_hh__included
00005
00006 #include <lestes/common.hh>
00007 #include <lestes/std/set.hh>
00008 #include <lestes/lang/cplus/sem/as_id_visitor.v.g.hh>
00009
00010 #include <lestes/std/objectize_macros.hh>
00011 package(lestes);
00012 package(std);
00013 class object;
00014 end_package(std);
00015 end_package(lestes);
00016
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(lang);
00029 package(cplus);
00030 package(sem);
00031
00032
00033 class as_id_to_declaration_set;
00034
00035
00036
00037
00038
00039
00040 class as_id_to_declaration_set : public as_id_visitor {
00041 public:
00042
00043 ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > declarations_get() const;
00044
00045
00046 void declarations_set(const ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > & );
00047
00048 virtual void visit_as_template_id(ptr< ::lestes::lang::cplus::sem::as_template_id > );
00049
00050 virtual void visit_as_identifier(ptr< ::lestes::lang::cplus::sem::as_identifier > );
00051
00052 virtual void visit_as_destructor_id_token(ptr< ::lestes::lang::cplus::sem::as_destructor_id_token > );
00053
00054 virtual void visit_as_destructor_id_template(ptr< ::lestes::lang::cplus::sem::as_destructor_id_template > );
00055
00056 virtual void visit_as_constructor_id(ptr< ::lestes::lang::cplus::sem::as_constructor_id > );
00057
00058 virtual void visit_as_op_function_id(ptr< ::lestes::lang::cplus::sem::as_op_function_id > );
00059
00060 virtual void visit_as_conv_function_id(ptr< ::lestes::lang::cplus::sem::as_conv_function_id > );
00061
00062 virtual void visit_as_empty_id(ptr< ::lestes::lang::cplus::sem::as_empty_id > );
00063
00064 virtual void visit_as_global_namespace_fake_id(ptr< ::lestes::lang::cplus::sem::as_global_namespace_fake_id > );
00065
00066
00067
00068 static ptr< as_id_to_declaration_set > instance ();
00069
00070
00071
00072 ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > process( const ptr< ::lestes::lang::cplus::sem::as_id > & );
00073
00074
00075 virtual ptr<reflection_list> reflection_get() const;
00076
00077 virtual ptr<field_list_list> field_values_get() const;
00078
00079 protected:
00080
00081 as_id_to_declaration_set (
00082 ptr< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > a__as_id_to_declaration_set__declarations);
00083
00084
00085 virtual void gc_mark();
00086
00087 private:
00088 srp< ::lestes::std::set< srp< ::lestes::lang::cplus::sem::ss_declaration > > > declarations;
00089 static ptr<reflection_list> reflection;
00090 static ptr<as_id_to_declaration_set> the_instance;
00091
00092 };
00093
00094
00095 end_package(sem);
00096 end_package(cplus);
00097 end_package(lang);
00098 end_package(lestes);
00099
00100 #endif // lestes__lang__cplus__sem__as_id_to_declaration_set_g_hh__included