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