00001
00002
00003
00004
00005
00006
00007
00008 #ifndef lestes__backend_v2__intercode__visitor_pi_pi2pi_operands_g_hh__included
00009 #define lestes__backend_v2__intercode__visitor_pi_pi2pi_operands_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(structs);
00018 class pi_operands;
00019 end_package(structs);
00020 end_package(backend_v2);
00021 end_package(lestes);
00022
00023 package(lestes);
00024 package(backend_v2);
00025 package(intercode);
00026
00027
00028 class pi_tstpi;
00029 class pi_bdtpi;
00030 class pi_bstpi;
00031 class pi_abstract_move_st;
00032 class pi_abstract_move_dt;
00033 class pi_s2tstpi;
00034 class pi_sp;
00035 class pi_call;
00036 class pi_icall;
00037 class pi_callv;
00038 class pi_icallv;
00039 class pi_cb_single_label_target;
00040 class pi_cb_single_address_target;
00041 class pi_ub_single_label_target;
00042 class pi_ub_single_address_target;
00043 class pi_branch_multiple_label_target;
00044 class pi_branch_multiple_address_target;
00045 class visitor_pi_pi2pi_operands;
00046
00047
00048
00049 class visitor_pi_pi2pi_operands : public visitor_pi_pi2pi_operands_base {
00050 public:
00051 virtual ptr< ::lestes::backend_v2::structs::pi_operands > visit_pi_sp(ptr< ::lestes::backend_v2::intercode::pi_sp > );
00052
00053 virtual ptr< ::lestes::backend_v2::structs::pi_operands > visit_pi_call(ptr< ::lestes::backend_v2::intercode::pi_call > );
00054
00055 virtual ptr< ::lestes::backend_v2::structs::pi_operands > visit_pi_icall(ptr< ::lestes::backend_v2::intercode::pi_icall > );
00056
00057 virtual ptr< ::lestes::backend_v2::structs::pi_operands > visit_pi_callv(ptr< ::lestes::backend_v2::intercode::pi_callv > );
00058
00059 virtual ptr< ::lestes::backend_v2::structs::pi_operands > visit_pi_icallv(ptr< ::lestes::backend_v2::intercode::pi_icallv > );
00060
00061 virtual ptr< ::lestes::backend_v2::structs::pi_operands > visit_pi_leave(ptr< ::lestes::backend_v2::intercode::pi_leave > );
00062
00063 virtual ptr< ::lestes::backend_v2::structs::pi_operands > tstpi_operands_get(ptr< ::lestes::backend_v2::intercode::pi_tstpi > );
00064
00065 virtual ptr< ::lestes::backend_v2::structs::pi_operands > tdtpi_operands_get(ptr< ::lestes::backend_v2::intercode::pi_tdtpi > );
00066
00067 virtual ptr< ::lestes::backend_v2::structs::pi_operands > bstpi_operands_get(ptr< ::lestes::backend_v2::intercode::pi_bstpi > );
00068
00069 virtual ptr< ::lestes::backend_v2::structs::pi_operands > bdtpi_operands_get(ptr< ::lestes::backend_v2::intercode::pi_bdtpi > );
00070
00071 virtual ptr< ::lestes::backend_v2::structs::pi_operands > st_move_operands_get(ptr< ::lestes::backend_v2::intercode::pi_abstract_move_st > );
00072
00073 virtual ptr< ::lestes::backend_v2::structs::pi_operands > dt_move_operands_get(ptr< ::lestes::backend_v2::intercode::pi_abstract_move_dt > );
00074
00075 virtual ptr< ::lestes::backend_v2::structs::pi_operands > sbp_operands_get(ptr< ::lestes::backend_v2::intercode::pi_indirect_store > );
00076
00077 virtual ptr< ::lestes::backend_v2::structs::pi_operands > lbp_operands_get(ptr< ::lestes::backend_v2::intercode::pi_indirect_load > );
00078
00079 virtual ptr< ::lestes::backend_v2::structs::pi_operands > cb_sl_operands_get(ptr< ::lestes::backend_v2::intercode::pi_cb_single_label_target > );
00080
00081 virtual ptr< ::lestes::backend_v2::structs::pi_operands > cb_sa_operands_get(ptr< ::lestes::backend_v2::intercode::pi_cb_single_address_target > );
00082
00083 virtual ptr< ::lestes::backend_v2::structs::pi_operands > ub_sl_operands_get(ptr< ::lestes::backend_v2::intercode::pi_ub_single_label_target > );
00084
00085 virtual ptr< ::lestes::backend_v2::structs::pi_operands > ub_sa_operands_get(ptr< ::lestes::backend_v2::intercode::pi_ub_single_address_target > );
00086
00087 virtual ptr< ::lestes::backend_v2::structs::pi_operands > bm_l_operands_get(ptr< ::lestes::backend_v2::intercode::pi_branch_multiple_label_target > );
00088
00089 virtual ptr< ::lestes::backend_v2::structs::pi_operands > bm_a_operands_get(ptr< ::lestes::backend_v2::intercode::pi_branch_multiple_address_target > );
00090
00091
00092
00093 static ptr< visitor_pi_pi2pi_operands > create (
00094 );
00095
00096
00097
00098
00099 virtual ptr<reflection_list> reflection_get() const;
00100
00101 virtual ptr<field_list_list> field_values_get() const;
00102
00103 protected:
00104
00105 visitor_pi_pi2pi_operands (
00106 );
00107
00108
00109 virtual void gc_mark();
00110
00111 private:
00112 static ptr<reflection_list> reflection;
00113
00114 };
00115
00116
00117 end_package(intercode);
00118 end_package(backend_v2);
00119 end_package(lestes);
00120
00121 #endif // lestes__backend_v2__intercode__visitor_pi_pi2pi_operands_g_hh__included