00001
00002
00003
00004
00005
00006
00007
00008 #ifndef lestes__backend_v2__intercode__visitor_pi_pi2id_g_hh__included
00009 #define lestes__backend_v2__intercode__visitor_pi_pi2id_g_hh__included
00010
00011 #include <lestes/backend_v2/common.hh>
00012 #include <lestes/backend_v2/intercode/pi_visitor_bases.v.g.hh>
00013
00014 #include <lestes/std/objectize_macros.hh>
00015 package(lestes);
00016 package(backend_v2);
00017 package(intercode);
00018
00019
00020 class visitor_pi_pi2id;
00021
00022
00023
00024 class visitor_pi_pi2id : public visitor_pi_pi2ulint_gen_base {
00025 public:
00026 enum kind_type {
00027 PI_SP,
00028 PI_ADD,
00029 PI_SUB,
00030 PI_MUL,
00031 PI_DIV,
00032 PI_DIVRNI,
00033 PI_DIVRPI,
00034 PI_DIVRZ,
00035 PI_MOD,
00036 PI_REM,
00037 PI_NEG,
00038 PI_GAT,
00039 PI_SHL,
00040 PI_SHR,
00041 PI_SAL,
00042 PI_SAR,
00043 PI_BAND,
00044 PI_BOR,
00045 PI_BXOR,
00046 PI_BNOT,
00047 PI_LAND,
00048 PI_LOR,
00049 PI_LXOR,
00050 PI_LNOT,
00051 PI_MOV,
00052 PI_CMP,
00053 PI_CVT,
00054 PI_LD,
00055 PI_LDA,
00056 PI_LDI,
00057 PI_LDP,
00058 PI_LDV,
00059 PI_LDPV,
00060 PI_ST,
00061 PI_STI,
00062 PI_STP,
00063 PI_STV,
00064 PI_STIV,
00065 PI_STPV,
00066 PI_CALL,
00067 PI_ICALL,
00068 PI_CALLV,
00069 PI_ICALLV,
00070 PI_BA,
00071 PI_BN,
00072 PI_BT,
00073 PI_BF,
00074 PI_BM,
00075 PI_BG,
00076 PI_BL,
00077 PI_BE,
00078 PI_BNG,
00079 PI_BNL,
00080 PI_BNE,
00081 PI_IBA,
00082 PI_IBN,
00083 PI_IBM,
00084 PI_IBG,
00085 PI_IBL,
00086 PI_IBE,
00087 PI_IBNG,
00088 PI_IBNL,
00089 PI_IBNE,
00090 PI_SBG,
00091 PI_SBL,
00092 PI_SBE,
00093 PI_SBNG,
00094 PI_SBNL,
00095 PI_SBNE,
00096 PI_LEAVE
00097 };
00098
00099 virtual ulint visit_pi_sp(ptr< ::lestes::backend_v2::intercode::pi_sp > );
00100
00101 virtual ulint visit_pi_add(ptr< ::lestes::backend_v2::intercode::pi_add > );
00102
00103 virtual ulint visit_pi_sub(ptr< ::lestes::backend_v2::intercode::pi_sub > );
00104
00105 virtual ulint visit_pi_mul(ptr< ::lestes::backend_v2::intercode::pi_mul > );
00106
00107 virtual ulint visit_pi_div(ptr< ::lestes::backend_v2::intercode::pi_div > );
00108
00109 virtual ulint visit_pi_divrni(ptr< ::lestes::backend_v2::intercode::pi_divrni > );
00110
00111 virtual ulint visit_pi_divrpi(ptr< ::lestes::backend_v2::intercode::pi_divrpi > );
00112
00113 virtual ulint visit_pi_divrz(ptr< ::lestes::backend_v2::intercode::pi_divrz > );
00114
00115 virtual ulint visit_pi_mod(ptr< ::lestes::backend_v2::intercode::pi_mod > );
00116
00117 virtual ulint visit_pi_rem(ptr< ::lestes::backend_v2::intercode::pi_rem > );
00118
00119 virtual ulint visit_pi_neg(ptr< ::lestes::backend_v2::intercode::pi_neg > );
00120
00121 virtual ulint visit_pi_gat(ptr< ::lestes::backend_v2::intercode::pi_gat > );
00122
00123 virtual ulint visit_pi_shl(ptr< ::lestes::backend_v2::intercode::pi_shl > );
00124
00125 virtual ulint visit_pi_shr(ptr< ::lestes::backend_v2::intercode::pi_shr > );
00126
00127 virtual ulint visit_pi_sal(ptr< ::lestes::backend_v2::intercode::pi_sal > );
00128
00129 virtual ulint visit_pi_sar(ptr< ::lestes::backend_v2::intercode::pi_sar > );
00130
00131 virtual ulint visit_pi_band(ptr< ::lestes::backend_v2::intercode::pi_band > );
00132
00133 virtual ulint visit_pi_bor(ptr< ::lestes::backend_v2::intercode::pi_bor > );
00134
00135 virtual ulint visit_pi_bxor(ptr< ::lestes::backend_v2::intercode::pi_bxor > );
00136
00137 virtual ulint visit_pi_bnot(ptr< ::lestes::backend_v2::intercode::pi_bnot > );
00138
00139 virtual ulint visit_pi_land(ptr< ::lestes::backend_v2::intercode::pi_land > );
00140
00141 virtual ulint visit_pi_lor(ptr< ::lestes::backend_v2::intercode::pi_lor > );
00142
00143 virtual ulint visit_pi_lxor(ptr< ::lestes::backend_v2::intercode::pi_lxor > );
00144
00145 virtual ulint visit_pi_lnot(ptr< ::lestes::backend_v2::intercode::pi_lnot > );
00146
00147 virtual ulint visit_pi_cvt(ptr< ::lestes::backend_v2::intercode::pi_cvt > );
00148
00149 virtual ulint visit_pi_cmp(ptr< ::lestes::backend_v2::intercode::pi_cmp > );
00150
00151 virtual ulint visit_pi_mov(ptr< ::lestes::backend_v2::intercode::pi_mov > );
00152
00153 virtual ulint visit_pi_ld(ptr< ::lestes::backend_v2::intercode::pi_ld > );
00154
00155 virtual ulint visit_pi_lda(ptr< ::lestes::backend_v2::intercode::pi_lda > );
00156
00157 virtual ulint visit_pi_ldi(ptr< ::lestes::backend_v2::intercode::pi_ldi > );
00158
00159 virtual ulint visit_pi_ldp(ptr< ::lestes::backend_v2::intercode::pi_ldp > );
00160
00161 virtual ulint visit_pi_ldv(ptr< ::lestes::backend_v2::intercode::pi_ldv > );
00162
00163 virtual ulint visit_pi_ldpv(ptr< ::lestes::backend_v2::intercode::pi_ldpv > );
00164
00165 virtual ulint visit_pi_st(ptr< ::lestes::backend_v2::intercode::pi_st > );
00166
00167 virtual ulint visit_pi_sti(ptr< ::lestes::backend_v2::intercode::pi_sti > );
00168
00169 virtual ulint visit_pi_stp(ptr< ::lestes::backend_v2::intercode::pi_stp > );
00170
00171 virtual ulint visit_pi_stv(ptr< ::lestes::backend_v2::intercode::pi_stv > );
00172
00173 virtual ulint visit_pi_stiv(ptr< ::lestes::backend_v2::intercode::pi_stiv > );
00174
00175 virtual ulint visit_pi_stpv(ptr< ::lestes::backend_v2::intercode::pi_stpv > );
00176
00177 virtual ulint visit_pi_call(ptr< ::lestes::backend_v2::intercode::pi_call > );
00178
00179 virtual ulint visit_pi_icall(ptr< ::lestes::backend_v2::intercode::pi_icall > );
00180
00181 virtual ulint visit_pi_callv(ptr< ::lestes::backend_v2::intercode::pi_callv > );
00182
00183 virtual ulint visit_pi_icallv(ptr< ::lestes::backend_v2::intercode::pi_icallv > );
00184
00185 virtual ulint visit_pi_ba(ptr< ::lestes::backend_v2::intercode::pi_ba > );
00186
00187 virtual ulint visit_pi_bn(ptr< ::lestes::backend_v2::intercode::pi_bn > );
00188
00189 virtual ulint visit_pi_bt(ptr< ::lestes::backend_v2::intercode::pi_bt > );
00190
00191 virtual ulint visit_pi_bf(ptr< ::lestes::backend_v2::intercode::pi_bf > );
00192
00193 virtual ulint visit_pi_bm(ptr< ::lestes::backend_v2::intercode::pi_bm > );
00194
00195 virtual ulint visit_pi_bg(ptr< ::lestes::backend_v2::intercode::pi_bg > );
00196
00197 virtual ulint visit_pi_bl(ptr< ::lestes::backend_v2::intercode::pi_bl > );
00198
00199 virtual ulint visit_pi_be(ptr< ::lestes::backend_v2::intercode::pi_be > );
00200
00201 virtual ulint visit_pi_bng(ptr< ::lestes::backend_v2::intercode::pi_bng > );
00202
00203 virtual ulint visit_pi_bnl(ptr< ::lestes::backend_v2::intercode::pi_bnl > );
00204
00205 virtual ulint visit_pi_bne(ptr< ::lestes::backend_v2::intercode::pi_bne > );
00206
00207 virtual ulint visit_pi_iba(ptr< ::lestes::backend_v2::intercode::pi_iba > );
00208
00209 virtual ulint visit_pi_ibn(ptr< ::lestes::backend_v2::intercode::pi_ibn > );
00210
00211 virtual ulint visit_pi_ibm(ptr< ::lestes::backend_v2::intercode::pi_ibm > );
00212
00213 virtual ulint visit_pi_ibg(ptr< ::lestes::backend_v2::intercode::pi_ibg > );
00214
00215 virtual ulint visit_pi_ibl(ptr< ::lestes::backend_v2::intercode::pi_ibl > );
00216
00217 virtual ulint visit_pi_ibe(ptr< ::lestes::backend_v2::intercode::pi_ibe > );
00218
00219 virtual ulint visit_pi_ibng(ptr< ::lestes::backend_v2::intercode::pi_ibng > );
00220
00221 virtual ulint visit_pi_ibnl(ptr< ::lestes::backend_v2::intercode::pi_ibnl > );
00222
00223 virtual ulint visit_pi_ibne(ptr< ::lestes::backend_v2::intercode::pi_ibne > );
00224
00225 virtual ulint visit_pi_leave(ptr< ::lestes::backend_v2::intercode::pi_leave > );
00226
00227 virtual ulint visit_pi_sbg(ptr< ::lestes::backend_v2::intercode::pi_sbg > );
00228
00229 virtual ulint visit_pi_sbl(ptr< ::lestes::backend_v2::intercode::pi_sbl > );
00230
00231 virtual ulint visit_pi_sbe(ptr< ::lestes::backend_v2::intercode::pi_sbe > );
00232
00233 virtual ulint visit_pi_sbng(ptr< ::lestes::backend_v2::intercode::pi_sbng > );
00234
00235 virtual ulint visit_pi_sbnl(ptr< ::lestes::backend_v2::intercode::pi_sbnl > );
00236
00237 virtual ulint visit_pi_sbne(ptr< ::lestes::backend_v2::intercode::pi_sbne > );
00238
00239
00240
00241 static ptr< visitor_pi_pi2id > create (
00242 );
00243
00244
00245
00246
00247 virtual ptr<reflection_list> reflection_get() const;
00248
00249 virtual ptr<field_list_list> field_values_get() const;
00250
00251 protected:
00252
00253 visitor_pi_pi2id (
00254 );
00255
00256
00257 virtual void gc_mark();
00258
00259 private:
00260 static ptr<reflection_list> reflection;
00261
00262 };
00263
00264
00265 end_package(intercode);
00266 end_package(backend_v2);
00267 end_package(lestes);
00268
00269 package(lestes);
00270 package(std);
00271 specialize_objectize_for_enum( ::lestes::backend_v2::intercode::visitor_pi_pi2id::kind_type );
00272 end_package(std);
00273 end_package(lestes);
00274
00275 #endif // lestes__backend_v2__intercode__visitor_pi_pi2id_g_hh__included