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 #include <lestes/lang/cplus/sem/ss_decl_name.g.hh>
00029 #include <lestes/lang/cplus/sem/ss_decl_name_matcher.g.hh>
00030 #include <lestes/lang/cplus/sem/ss_type_builtin.g.hh>
00031 #include <lestes/std/source_location.hh>
00032
00033 package(lestes);
00034 package(lang);
00035 package(cplus);
00036 package(sem);
00037
00038 int run_test()
00039 {
00040 ptr<source_location> l = source_location::create(file_info::create("",NULL),1,1);
00041 ptr<source_location> ll = source_location::create(file_info::create("",NULL),2,3);
00042
00043 ptr<ss_decl_name> nvoid1 = ss_conversion_name::create( l, ss_void::instance() );
00044 ptr<ss_decl_name> nvoid2 = ss_conversion_name::create( ll, ss_void::instance() );
00045 ptr<ss_decl_name> nsint = ss_conversion_name::create( ll, ss_type_sint::instance() );
00046
00047 ptr<ss_decl_name> dummy = ss_dummy_name::create( ll );
00048
00049 ptr<ss_decl_name> ord1 = ss_ordinary_name::create( l, "name" );
00050 ptr<ss_decl_name> ord2 = ss_ordinary_name::create( ll, "name" );
00051 ptr<ss_decl_name> ordx = ss_ordinary_name::create( ll, "x" );
00052
00053 ptr<ss_decl_name> nopbe1 = ss_operator_sbe::create( l );
00054 ptr<ss_decl_name> nopbe2 = ss_operator_sbe::create( ll );
00055 ptr<ss_decl_name> nopbg = ss_operator_sbg::create( ll );
00056
00057 lassert( nvoid1->matches(nvoid2) );
00058 lassert( nvoid2->matches(nvoid1) );
00059 lassert( !nvoid1->matches(nsint) );
00060
00061 lassert( !dummy->matches(dummy) );
00062
00063 lassert( ord1->matches(ord2) );
00064 lassert( ord2->matches(ord1) );
00065 lassert( ordx->matches(ordx) );
00066 lassert( !ord1->matches(ordx) );
00067
00068 lassert( nopbe1->matches(nopbe2) );
00069 lassert( nopbe2->matches(nopbe1) );
00070 lassert( !nopbe2->matches(nopbg) );
00071
00072 lassert( !dummy->matches(nopbg) );
00073 lassert( !ord1->matches(nsint) );
00074 lassert( !nopbe1->matches(nvoid1) );
00075
00076 return 0;
00077 }
00078
00079 end_package(sem);
00080 end_package(cplus);
00081 end_package(lang);
00082 end_package(lestes);
00083
00084 int main()
00085 {
00086 return ::lestes::lang::cplus::sem::run_test();
00087 }