00001
00002
00003 #ifndef lestes__lang__cplus__sem__sa_namespace_g_hh__included
00004 #define lestes__lang__cplus__sem__sa_namespace_g_hh__included
00005
00006 #include <lestes/common.hh>
00007 #include <lestes/lang/cplus/sem/ss_declaration_visitor.v.g.hh>
00008
00009 #include <lestes/std/objectize_macros.hh>
00010 package(lestes);
00011 package(std);
00012 class object;
00013 end_package(std);
00014 end_package(lestes);
00015
00016 package(lestes);
00017 package(std);
00018 class source_location;
00019 end_package(std);
00020 end_package(lestes);
00021
00022 package(lestes);
00023 package(lang);
00024 package(cplus);
00025 package(sem);
00026
00027
00028 class as_name;
00029 class ss_declaration_default_visitor;
00030 class sa_namespace_definition;
00031
00032
00033 class sa_namespace_definition : public ss_declaration_default_visitor {
00034 public:
00035
00036 bool result_get() const;
00037
00038
00039 void result_set(bool);
00040
00041 void process_named(ptr< as_name > name);
00042
00043 void process_unnamed(ptr< ::lestes::std::source_location > location);
00044
00045 void process_end();
00046
00047 virtual void default_action(ptr< ::lestes::lang::cplus::sem::ss_declaration > );
00048
00049 virtual void visit_ss_namespace_definition(ptr< ::lestes::lang::cplus::sem::ss_namespace_definition > );
00050
00051
00052
00053 static ptr< sa_namespace_definition > instance ();
00054
00055
00056
00057 bool error_check( const ptr< ::lestes::lang::cplus::sem::ss_declaration > & );
00058
00059
00060 virtual ptr<reflection_list> reflection_get() const;
00061
00062 virtual ptr<field_list_list> field_values_get() const;
00063
00064 protected:
00065
00066 sa_namespace_definition (
00067 bool a__sa_namespace_definition__result);
00068
00069
00070 virtual void gc_mark();
00071
00072 private:
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082 bool result;
00083 static ptr<reflection_list> reflection;
00084 static ptr<sa_namespace_definition> the_instance;
00085
00086 };
00087
00088
00089 end_package(sem);
00090 end_package(cplus);
00091 end_package(lang);
00092 end_package(lestes);
00093
00094 #endif // lestes__lang__cplus__sem__sa_namespace_g_hh__included