00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #include <lestes/common.hh>
00035 #include <lestes/std/file_info.hh>
00036 #include <lestes/std/source_location.hh>
00037 #include <lestes/lang/cplus/sem/sa_decl_spec.g.hh>
00038 #include <lestes/lang/cplus/sem/sa_declarator.g.hh>
00039 #include <lestes/lang/cplus/sem/as_decl.g.hh>
00040 #include <lestes/lang/cplus/sem/as_other.g.hh>
00041 #include <lestes/lang/cplus/sem/ss_type.g.hh>
00042 #include <lestes/lang/cplus/sem/ss_type_builtin.g.hh>
00043 #include <lestes/lang/cplus/sem/ss_statement.g.hh>
00044 #include <lestes/lang/cplus/sem/ss_misc.g.hh>
00045
00046 package(lestes);
00047 package(lang);
00048 package(cplus);
00049 package(sem);
00050
00051 using namespace ::std;
00052
00053
00054
00055
00056
00057
00058 void sa_declarator_test(void)
00059 {
00060 ptr<file_info> fi = file_info::create("abc",NULL);
00061 ptr<source_location> loc = source_location::create(fi,1,1);
00062
00063 #if 0
00064 ptr<ss_sp> psp = ss_sp::create(
00065 loc,
00066 NULL,
00067 NULL,
00068 ::lestes::std::list< srp< ss_se > >::create(),
00069 ::lestes::std::list< srp< ss_se > >::create(),
00070 NULL,
00071 0
00072 );
00073
00074 ptr<ss_sp> nsp = ss_sp::create(
00075 loc,
00076 NULL,
00077 NULL,
00078 ::lestes::std::list< srp< ss_se > >::create(),
00079 ::lestes::std::list< srp< ss_se > >::create(),
00080 NULL,
00081 0
00082 );
00083
00084 ptr<ss_compound_stmt> containing_compound =
00085 ss_compound_stmt::create(
00086 loc,
00087 ::lestes::std::list< srp< ss_label > >::create(),
00088 NULL,
00089 psp,
00090 nsp,
00091 ::lestes::std::list< srp< ss_sp > >::create(),
00092 NULL,
00093 ::lestes::std::list< srp< ss_statement > >::create()
00094 );
00095
00096 ptr<ss_decl_seq> containing_scope = ss_decl_seq::create(
00097 loc,
00098 ::lestes::std::list< srp< ss_declaration > >::create(),
00099 NULL,
00100 containing_compound,
00101 ::lestes::std::list< srp< ss_using_directive > >::create(),
00102 NULL
00103 );
00104 #endif
00105
00106 ptr<ss_compound_stmt> containing_compound = ss_compound_stmt::root_instance();
00107 ptr<ss_decl_seq> containing_scope = ss_decl_seq::root_instance();
00108
00109 typedef sa_declarator_context::as_decl_spec_list_type ds_list_type;
00110
00111 ptr<ds_list_type> dsl = ds_list_type::create();
00112 ptr<sa_decl_spec_context> sadsc =
00113 sa_decl_spec_context::create(declaration_context::CTX_NAMESPACE);
00114 ptr<sa_decl_spec> sads = sa_decl_spec::create(sadsc);
00115 dsl->push_back(as_int_simple_type_specifier::create(loc));
00116 sads->process(dsl);
00117
00118 typedef ::lestes::std::list< srp<as_cv_qualifier> > as_cv_qualifier_list;
00119 ptr<as_cv_qualifier_list> ascvql = as_cv_qualifier_list::create();
00120 ascvql->push_back(as_cv_qualifier_const::create(loc));
00121
00122 ptr<as_ptr_op_star> aspos = as_ptr_op_star::create(loc,ascvql);
00123
00124 typedef ::lestes::std::list< srp<as_declarator_op> > as_declarator_op_list;
00125 ptr<as_declarator_op_list> asdol = as_declarator_op_list::create();
00126 asdol->push_back(aspos);
00127
00128 ptr<as_name> asn = as_name::create(
00129 loc,
00130 as_name::create(loc, NULL,as_global_namespace_fake_id::create(loc),false),
00131 as_global_namespace_fake_id::create(loc),
00132 true);
00133
00134 ptr<as_declarator> asd = as_declarator::create(
00135 loc,
00136 asn,
00137 asdol
00138 );
00139
00140 ptr<sa_declarator_context> sadc =
00141 sa_declarator_context::create(
00142 declaration_context::CTX_NAMESPACE,
00143 containing_scope,
00144 sads);
00145 ptr<sa_declarator> sad = sa_declarator::create(sadc);
00146 sad->process(asd);
00147
00148 }
00149
00150 end_package(sem);
00151 end_package(cplus);
00152 end_package(lang);
00153 end_package(lestes);
00154
00155
00156
00157
00158
00159
00160 int main(void)
00161 {
00162 ::lestes::lang::cplus::sem::sa_declarator_test();
00163 return 0;
00164 }
00165