00001 #ifndef CAST_EXPRESSION_H_
00002 #define CAST_EXPRESSION_H_
00003
00004 #include "expression.h"
00005 #include "location.h"
00006
00007 namespace il
00008 {
00009
00013 class cast_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 & exp;
00022 }
00023
00024 private:
00025 expression* exp;
00026
00027 public:
00028 cast_expression();
00029 cast_expression(expression* exp, type* t, location loc);
00030 virtual string to_string() const;
00031 virtual ~cast_expression();
00032 virtual expression* get_inner_expression();
00033 };
00034
00035 }
00036
00037 #endif