// $Source$ // $Revision$ // $Date$ // $Author$ #ifndef __rf_short_int_ih__ #define __rf_short_int_ih__ #include "rf_short_int.hh" #include "rf_term.ih" namespace rftype { using namespace rfrt; inline Int32::Int32(intptr_t _n) : Term(type_int32) { int_data2 = _n; } inline Int32::Int32(char const* _str) : Term(type_int32) { int_data2 = strtol(_str, null, 10); } inline intptr_t Int32::to_int() const { return int_data2; } inline int Int32::cmp (size_t _n) const { if (uint_data2 > _n) return 1; if (uint_data2 < _n) return -1; return 0; } inline Expr Int32::create_expr (intptr_t _n) { Expr e = Term::create_flat_expr(1); new(e.get_first()) Int32(_n); return e; } inline Expr Int32::create_expr (char const* _str) { return Int32::create_expr(strtol(_str, null, 10)); } inline Expr Int32::create_expr (pxx::WString& _str) { wchar_t const* s = _str.get_data(); return Int32::create_expr(wcstol(s, null, 10)); } inline size_t Int32::get_char_len() const { intptr_t n = int_data2; uintptr_t k = 0; if (!n) k = 1; else { if (n < 0) k++; while (n) { n /= 10; k++; }; }; return k; }; } #endif // __rf_short_int_ih__