00001
00002
00003
00004
00005
00006
00007
00008 #ifndef MODIFY_EXPRESSION_H_
00009 #define MODIFY_EXPRESSION_H_
00010
00011 #include "expression.h"
00012
00013
00014 namespace il {
00015 class set_expression;
00016 class set_instruction;
00021 class modify_expression: public il::expression {
00022 friend class boost::serialization::access;
00023
00024 template<class Archive>
00025 void serialize(Archive & ar, const unsigned int version)
00026 {
00027 ar & boost::serialization::base_object<il::expression>(*this);
00028 ar & s;
00029 ar & is_initalizing;
00030 }
00031 private:
00032 set_instruction* s;
00033 bool is_initalizing;
00034 public:
00035 modify_expression();
00036 modify_expression(set_instruction* s, bool is_initalizing, location loc);
00037 virtual string to_string() const;
00038 virtual set_instruction* get_set_instruction();
00039 virtual ~modify_expression();
00040 bool is_initalizing_exp();
00041 };
00042
00043 }
00044
00045 #endif