00001 #ifndef VARIABLE_EXPRESSION_H_
00002 #define VARIABLE_EXPRESSION_H_
00003
00004 #include "expression.h"
00005
00006
00007 namespace il
00008 {
00009 class variable;
00010
00014 class variable_expression: public expression
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::expression>(*this);
00022 ar & var;
00023 }
00024 private:
00025 variable *var;
00026 public:
00027 variable_expression();
00028 variable_expression(variable *v, location loc);
00029 virtual ~variable_expression();
00030 virtual string to_string() const;
00031 variable *get_variable();
00032 };
00033
00034 }
00035
00036 #endif