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