ss_decl_name2lstring_base.cc

Go to the documentation of this file.
00001 /*
00002    The lestes compiler suite
00003    Copyright (C) 2002, 2003, 2004, 2005 Miroslav Tichy
00004    Copyright (C) 2002, 2003, 2004, 2005 Petr Zika
00005    Copyright (C) 2002, 2003, 2004, 2005 Vojtech Hala
00006    Copyright (C) 2002, 2003, 2004, 2005 Jiri Kosina
00007    Copyright (C) 2002, 2003, 2004, 2005 Pavel Sanda
00008    Copyright (C) 2002, 2003, 2004, 2005 Jan Zouhar
00009    Copyright (C) 2002, 2003, 2004, 2005 Rudolf Thomas
00010 
00011    This program is free software; you can redistribute it and/or modify
00012    it under the terms of the GNU General Public License as published by
00013    the Free Software Foundation; version 2 of the License.
00014 
00015    This program is distributed in the hope that it will be useful,
00016    but WITHOUT ANY WARRANTY; without even the implied warranty of
00017    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018    GNU General Public License for more details.
00019 
00020    See the full text of the GNU General Public License version 2, and
00021    the limitations in the file doc/LICENSE.
00022 
00023    By accepting the license the licensee waives any and all claims
00024    against the copyright holder(s) related in whole or in part to the
00025    work, its use, and/or the inability to use it.
00026  
00027  */
00028 /*!
00029         \file
00030         \brief Visitors returning lstring for ss_decl_name.
00031         \author jaz
00032 */
00033 
00034 #include <lestes/lang/cplus/sem/ss_decl_name2lstring_base.g.hh>
00035 #include <lestes/lang/cplus/sem/ss_decl_name.g.hh>
00036 #include <sstream>
00037 
00038 package(lestes);
00039 package(lang);
00040 package(cplus);
00041 package(sem);
00042 
00043 ptr< ss_decl_name2mangled_name > ss_decl_name2mangled_name::instance(){
00044         if ( !singleton_instance ) {
00045                 singleton_instance = ss_decl_name2mangled_name::create();
00046         }
00047         return singleton_instance;
00048 }
00049 
00050 lstring ss_decl_name2mangled_name::visit_ss_dummy_name(ptr< ::lestes::lang::cplus::sem::ss_dummy_name > decl_name) { 
00051         lassert(decl_name);
00052         return lstring();
00053 }
00054 
00055 
00056 lstring ss_decl_name2mangled_name::visit_ss_ordinary_name(ptr< ::lestes::lang::cplus::sem::ss_ordinary_name > decl_name) {
00057         lassert(decl_name);
00058         
00059         ::std::ostringstream oss;
00060         
00061         ucn_string name = decl_name->name_get();
00062         lassert(name.length());
00063         
00064         oss << name;
00065         
00066         return oss.str();
00067 }
00068 
00069 lstring ss_decl_name2mangled_name::visit_ss_conversion_name(ptr< ::lestes::lang::cplus::sem::ss_conversion_name > decl_name) { 
00070         lassert(decl_name);
00071         return lstring("cv"); //TODO + type name
00072 }
00073 
00074 lstring ss_decl_name2mangled_name::visit_ss_operator_new(ptr< ::lestes::lang::cplus::sem::ss_operator_new > decl_name){ 
00075         lassert(decl_name);
00076         return lstring("nw");
00077 }
00078 
00079 lstring ss_decl_name2mangled_name::visit_ss_operator_delete(ptr< ::lestes::lang::cplus::sem::ss_operator_delete > decl_name){ 
00080         lassert(decl_name);
00081         return lstring("dl");
00082 }
00083 
00084 lstring ss_decl_name2mangled_name::visit_ss_operator_new_array(ptr< ::lestes::lang::cplus::sem::ss_operator_new_array > decl_name){ 
00085         lassert(decl_name);
00086         return lstring("na");
00087 }
00088 
00089 lstring ss_decl_name2mangled_name::visit_ss_operator_delete_array(ptr< ::lestes::lang::cplus::sem::ss_operator_delete_array > decl_name){ 
00090         lassert(decl_name);
00091         return lstring("da");
00092 }
00093 
00094 lstring ss_decl_name2mangled_name::visit_ss_operator_add(ptr< ::lestes::lang::cplus::sem::ss_operator_add > decl_name){ 
00095         lassert(decl_name);
00096         return lstring("pl");
00097 }
00098 
00099 lstring ss_decl_name2mangled_name::visit_ss_operator_sub(ptr< ::lestes::lang::cplus::sem::ss_operator_sub > decl_name){ 
00100         lassert(decl_name);
00101         return lstring("mi");
00102 }
00103 
00104 lstring ss_decl_name2mangled_name::visit_ss_operator_mul(ptr< ::lestes::lang::cplus::sem::ss_operator_mul > decl_name){ 
00105         lassert(decl_name);
00106         return lstring("ml");
00107 }
00108 
00109 lstring ss_decl_name2mangled_name::visit_ss_operator_div(ptr< ::lestes::lang::cplus::sem::ss_operator_div > decl_name){ 
00110         lassert(decl_name);
00111         return lstring("dv");
00112 }
00113 
00114 lstring ss_decl_name2mangled_name::visit_ss_operator_mod(ptr< ::lestes::lang::cplus::sem::ss_operator_mod > decl_name){ 
00115         lassert(decl_name);
00116         return lstring("rm");
00117 }
00118 
00119 lstring ss_decl_name2mangled_name::visit_ss_operator_bxor(ptr< ::lestes::lang::cplus::sem::ss_operator_bxor > decl_name){ 
00120         lassert(decl_name);
00121         return lstring("eo");
00122 }
00123 
00124 lstring ss_decl_name2mangled_name::visit_ss_operator_band(ptr< ::lestes::lang::cplus::sem::ss_operator_band > decl_name){ 
00125         lassert(decl_name);
00126         return lstring("an");
00127 }
00128 
00129 lstring ss_decl_name2mangled_name::visit_ss_operator_bor(ptr< ::lestes::lang::cplus::sem::ss_operator_bor > decl_name){ 
00130         lassert(decl_name);
00131         return lstring("or");
00132 }
00133 
00134 lstring ss_decl_name2mangled_name::visit_ss_operator_bnot(ptr< ::lestes::lang::cplus::sem::ss_operator_bnot > decl_name){ 
00135         lassert(decl_name);
00136         return lstring("co");
00137 }
00138 
00139 lstring ss_decl_name2mangled_name::visit_ss_operator_lnot(ptr< ::lestes::lang::cplus::sem::ss_operator_lnot > decl_name){ 
00140         lassert(decl_name);
00141         return lstring("nt");
00142 }
00143 
00144 lstring ss_decl_name2mangled_name::visit_ss_operator_assign(ptr< ::lestes::lang::cplus::sem::ss_operator_assign > decl_name){ 
00145         lassert(decl_name);
00146         return lstring("aS");
00147 }
00148 
00149 lstring ss_decl_name2mangled_name::visit_ss_operator_assign_add(ptr< ::lestes::lang::cplus::sem::ss_operator_assign_add > decl_name){ 
00150         lassert(decl_name);
00151         return lstring("pL");
00152 }
00153 
00154 lstring ss_decl_name2mangled_name::visit_ss_operator_assign_sub(ptr< ::lestes::lang::cplus::sem::ss_operator_assign_sub > decl_name){ 
00155         lassert(decl_name);
00156         return lstring("mI");
00157 }
00158 
00159 lstring ss_decl_name2mangled_name::visit_ss_operator_assign_mul(ptr< ::lestes::lang::cplus::sem::ss_operator_assign_mul > decl_name){ 
00160         lassert(decl_name);
00161         return lstring("mL");
00162 }
00163 
00164 lstring ss_decl_name2mangled_name::visit_ss_operator_assign_div(ptr< ::lestes::lang::cplus::sem::ss_operator_assign_div > decl_name){ 
00165         lassert(decl_name);
00166         return lstring("dV");
00167 }
00168 
00169 lstring ss_decl_name2mangled_name::visit_ss_operator_assign_mod(ptr< ::lestes::lang::cplus::sem::ss_operator_assign_mod > decl_name){ 
00170         lassert(decl_name);
00171         return lstring("rM");
00172 }
00173 
00174 lstring ss_decl_name2mangled_name::visit_ss_operator_assign_bxor(ptr< ::lestes::lang::cplus::sem::ss_operator_assign_bxor > decl_name){ 
00175         lassert(decl_name);
00176         return lstring("eO");
00177 }
00178 
00179 lstring ss_decl_name2mangled_name::visit_ss_operator_assign_band(ptr< ::lestes::lang::cplus::sem::ss_operator_assign_band > decl_name){ 
00180         lassert(decl_name);
00181         return lstring("aN");
00182 }
00183 
00184 lstring ss_decl_name2mangled_name::visit_ss_operator_assign_bor(ptr< ::lestes::lang::cplus::sem::ss_operator_assign_bor > decl_name){ 
00185         lassert(decl_name);
00186         return lstring("oR");
00187 }
00188 
00189 lstring ss_decl_name2mangled_name::visit_ss_operator_assign_shl(ptr< ::lestes::lang::cplus::sem::ss_operator_assign_shl > decl_name){ 
00190         lassert(decl_name);
00191         return lstring("lS");
00192 }
00193 
00194 lstring ss_decl_name2mangled_name::visit_ss_operator_assign_shr(ptr< ::lestes::lang::cplus::sem::ss_operator_assign_shr > decl_name){ 
00195         lassert(decl_name);
00196         return lstring("rS");
00197 }
00198 
00199 lstring ss_decl_name2mangled_name::visit_ss_operator_shr(ptr< ::lestes::lang::cplus::sem::ss_operator_shr > decl_name){ 
00200         lassert(decl_name);
00201         return lstring("rs");
00202 }
00203 
00204 lstring ss_decl_name2mangled_name::visit_ss_operator_shl(ptr< ::lestes::lang::cplus::sem::ss_operator_shl > decl_name){ 
00205         lassert(decl_name);
00206         return lstring("ls");
00207 }
00208 
00209 lstring ss_decl_name2mangled_name::visit_ss_operator_sbl(ptr< ::lestes::lang::cplus::sem::ss_operator_sbl > decl_name){ 
00210         lassert(decl_name);
00211         return lstring("lt");
00212 }
00213 
00214 lstring ss_decl_name2mangled_name::visit_ss_operator_sbg(ptr< ::lestes::lang::cplus::sem::ss_operator_sbg > decl_name){ 
00215         lassert(decl_name);
00216         return lstring("gt");
00217 }
00218 
00219 lstring ss_decl_name2mangled_name::visit_ss_operator_sbng(ptr< ::lestes::lang::cplus::sem::ss_operator_sbng > decl_name){ 
00220         lassert(decl_name);
00221         return lstring("le");
00222 }
00223 
00224 lstring ss_decl_name2mangled_name::visit_ss_operator_sbnl(ptr< ::lestes::lang::cplus::sem::ss_operator_sbnl > decl_name){ 
00225         lassert(decl_name);
00226         return lstring("ge");
00227 }
00228 
00229 lstring ss_decl_name2mangled_name::visit_ss_operator_sbe(ptr< ::lestes::lang::cplus::sem::ss_operator_sbe > decl_name){ 
00230         lassert(decl_name);
00231         return lstring("eq");
00232 }
00233 
00234 lstring ss_decl_name2mangled_name::visit_ss_operator_sbne(ptr< ::lestes::lang::cplus::sem::ss_operator_sbne > decl_name){ 
00235         lassert(decl_name);
00236         return lstring("ne");
00237 }
00238 
00239 lstring ss_decl_name2mangled_name::visit_ss_operator_land(ptr< ::lestes::lang::cplus::sem::ss_operator_land > decl_name){ 
00240         lassert(decl_name);
00241         return lstring("aa");
00242 }
00243 
00244 lstring ss_decl_name2mangled_name::visit_ss_operator_lor(ptr< ::lestes::lang::cplus::sem::ss_operator_lor > decl_name){ 
00245         lassert(decl_name);
00246         return lstring("oo");
00247 }
00248 
00249 lstring ss_decl_name2mangled_name::visit_ss_operator_inc(ptr< ::lestes::lang::cplus::sem::ss_operator_inc > decl_name){ 
00250         lassert(decl_name);
00251         return lstring("pp");
00252 }
00253 
00254 lstring ss_decl_name2mangled_name::visit_ss_operator_dec(ptr< ::lestes::lang::cplus::sem::ss_operator_dec > decl_name){ 
00255         lassert(decl_name);
00256         return lstring("mm");
00257 }
00258 
00259 lstring ss_decl_name2mangled_name::visit_ss_operator_comma(ptr< ::lestes::lang::cplus::sem::ss_operator_comma > decl_name){ 
00260         lassert(decl_name);
00261         return lstring("cm");
00262 }
00263 
00264 lstring ss_decl_name2mangled_name::visit_ss_operator_access(ptr< ::lestes::lang::cplus::sem::ss_operator_access > decl_name){ 
00265         lassert(decl_name);
00266         return lstring("pt");
00267 }
00268 
00269 lstring ss_decl_name2mangled_name::visit_ss_operator_access_member(ptr< ::lestes::lang::cplus::sem::ss_operator_access_member > decl_name){ 
00270         lassert(decl_name);
00271         return lstring("pm");
00272 }
00273 
00274 lstring ss_decl_name2mangled_name::visit_ss_operator_function_call(ptr< ::lestes::lang::cplus::sem::ss_operator_function_call > decl_name){ 
00275         lassert(decl_name);
00276         return lstring("cl");
00277 }
00278 
00279 lstring ss_decl_name2mangled_name::visit_ss_operator_array(ptr< ::lestes::lang::cplus::sem::ss_operator_array > decl_name){ 
00280         lassert(decl_name);
00281         return lstring("ix");
00282 }
00283 
00284 lstring ss_decl_name2mangled_name::visit_ss_operator_ternary(ptr< ::lestes::lang::cplus::sem::ss_operator_ternary > decl_name){ 
00285         lassert(decl_name);
00286         return lstring("qu");
00287 }
00288 
00289 
00290 
00291 end_package(sem);
00292 end_package(cplus);
00293 end_package(lang);
00294 end_package(lestes);
00295 

Generated on Mon Feb 12 18:23:20 2007 for lestes by doxygen 1.5.1-20070107