00001 #ifndef INTEGER_CONST_EXP_H_
00002 #define INTEGER_CONST_EXP_H_
00003
00004 #include "const_expression.h"
00005
00006 namespace il
00007 {
00008
00012 class integer_const_exp : public il::const_expression
00013 {
00014 friend class boost::serialization::access;
00015
00016 template<class Archive>
00017 void serialize(Archive & ar, const unsigned int version)
00018 {
00019 ar & boost::serialization::base_object<il::const_expression>(*this);
00020 ar & int_const;
00021 ar & is_signed;
00022 ar & is_char;
00023 }
00024 private:
00025 long int int_const;
00026 bool is_signed;
00027 bool is_char;
00028 public:
00029 integer_const_exp();
00030 integer_const_exp(long int int_const, type* t, location loc);
00031 virtual string to_string() const;
00032 long int get_integer();
00033 bool isSigned();
00034 bool isChar();
00035 virtual ~integer_const_exp();
00036 };
00037
00038 }
00039
00040 #endif