00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef lestes__lang__cplus__sem__as_declarator_op2ss_type_g_hh__included
00010 #define lestes__lang__cplus__sem__as_declarator_op2ss_type_g_hh__included
00011
00012 #include <lestes/common.hh>
00013 #include <lestes/std/list.hh>
00014 #include <lestes/lang/cplus/sem/as_declarator_op_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 class ss_type;
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 class as_declarator_op;
00032 end_package(sem);
00033 end_package(cplus);
00034 end_package(lang);
00035 end_package(lestes);
00036
00037 package(lestes);
00038 package(lang);
00039 package(cplus);
00040 package(sem);
00041
00042
00043 class as_declarator_op2ss_type;
00044
00045
00046
00047
00048
00049
00050 class as_declarator_op2ss_type : public as_declarator_op_visitor {
00051 public:
00052
00053 ptr< ::lestes::lang::cplus::sem::ss_type > type_get() const;
00054
00055
00056 void type_set(const ptr< ::lestes::lang::cplus::sem::ss_type > &);
00057
00058
00059 void process(ptr< ::lestes::lang::cplus::sem::as_declarator_op > dop);
00060
00061 virtual void visit_as_ptr_op_star(ptr< ::lestes::lang::cplus::sem::as_ptr_op_star > );
00062
00063 virtual void visit_as_ptr_op_amp(ptr< ::lestes::lang::cplus::sem::as_ptr_op_amp > );
00064
00065 virtual void visit_as_ptr_op_member_ptr(ptr< ::lestes::lang::cplus::sem::as_ptr_op_member_ptr > );
00066
00067 virtual void visit_as_declarator_op_func(ptr< ::lestes::lang::cplus::sem::as_declarator_op_func > );
00068
00069 virtual void visit_as_declarator_op_array(ptr< ::lestes::lang::cplus::sem::as_declarator_op_array > );
00070
00071 virtual void visit_as_declarator_op_non_constant_array(ptr< ::lestes::lang::cplus::sem::as_declarator_op_non_constant_array > );
00072
00073
00074
00075 static ptr< as_declarator_op2ss_type > create (
00076 ptr< ::lestes::lang::cplus::sem::ss_type > a__as_declarator_op2ss_type__type);
00077
00078
00079
00080
00081 virtual ptr<reflection_list> reflection_get() const;
00082
00083 virtual ptr<field_list_list> field_values_get() const;
00084
00085 protected:
00086
00087 as_declarator_op2ss_type (
00088 ptr< ::lestes::lang::cplus::sem::ss_type > a__as_declarator_op2ss_type__type);
00089
00090
00091 virtual void gc_mark();
00092
00093 private:
00094
00095
00096
00097
00098 srp< ::lestes::lang::cplus::sem::ss_type > type;
00099 static ptr<reflection_list> reflection;
00100
00101 };
00102
00103
00104 end_package(sem);
00105 end_package(cplus);
00106 end_package(lang);
00107 end_package(lestes);
00108
00109 #endif // lestes__lang__cplus__sem__as_declarator_op2ss_type_g_hh__included