00001 #ifndef EXPRESSION_INSTRUCTION_H_
00002 #define EXPRESSION_INSTRUCTION_H_
00003
00004 #include "instruction.h"
00005
00006
00007 namespace il
00008 {
00009 class expression;
00010
00014 class expression_instruction : public il::instruction
00015 {
00016 friend class boost::serialization::access;
00017
00018 template<class Archive>
00019 void serialize(Archive & ar, const unsigned int version)
00020 {
00021 ar & boost::serialization::base_object<il::instruction>(*this);
00022 ar & exp;
00023 }
00024
00025 private:
00026 expression* exp;
00027
00028 public:
00029 expression_instruction();
00030 expression_instruction(expression* exp);
00031 virtual string to_string() const;
00032 expression* get_expression();
00033 virtual void print();
00034 virtual ~expression_instruction();
00035 };
00036
00037 }
00038
00039 #endif