00001
00002
00003
00004
00005
00006
00007
00008 #ifndef DROPVARIABLE_H_
00009 #define DROPVARIABLE_H_
00010 #include "Instruction.h"
00011
00012 namespace sail{
00013
00023 class DropVariable: public Instruction {
00024
00025 friend class boost::serialization::access;
00026
00027 template<class Archive>
00028 void serialize(Archive & ar, const unsigned int version)
00029 {
00030 ar & boost::serialization::base_object<sail::Instruction>(*this);
00031 ar & var;
00032 ar & temp;
00033 }
00034 private:
00035 Variable* var;
00036
00037
00038
00039
00040
00041 bool temp;
00042
00043 public:
00044 DropVariable();
00045 DropVariable(Variable* temp, bool is_temp);
00046 Variable* get_var();
00047 bool is_temp();
00048 virtual bool is_removable();
00049 virtual string to_string() const;
00050 virtual string to_string(bool pretty_print) const;
00051 virtual ~DropVariable();
00052 };
00053 }
00054
00055 #endif