Changeset 731 for to-imperative/trunk/runtime/rf_word.ih
- Timestamp:
- May 16, 2003, 11:47:17 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
to-imperative/trunk/runtime/rf_word.ih
r705 r731 42 42 mbstate_t ps; 43 43 size_t len = mbsrtowcs(null, &s, 0, &ps); 44 if (len == (size_t)(-1)) throw_sys_error(errno);44 // if (len == (size_t)(-1)) throw_sys_error(errno); 45 45 Header* h = static_cast<Header*>( 46 46 allocator.allocate(sizeof(Header) + len * sizeof(wchar_t))); … … 58 58 if (_locale != null) setlocale(LC_CTYPE, saved_locale); 59 59 } 60 60 61 61 inline Word::Word (Word const& _word) : 62 62 Term (term_sym, type_word) … … 66 66 h->ref_count++; 67 67 } 68 68 69 69 inline Word::~Word () 70 { 70 { 71 71 Header* h = static_cast<Header*>(ptr_data2); 72 72 if (--(h->ref_count) == 0) allocator.deallocate(h); … … 85 85 } 86 86 87 inline size_t Word::get_len () { 88 return static_cast<Header*>(ptr_data2)->length; 89 } 90 91 inline int Word::is_number () { 92 int res = 1; 93 size_t i = 0; 94 Header* h = static_cast<Header*>(ptr_data2); 95 96 if ((h->content[i]) == '-') res = -1; //если отрицательное число 97 if ((h->content[i]) == '+') res = 1; //если положительное с "+" число 98 if (res) i = 1; 99 for (; i < h->length; i++) 100 if (iswdigit(h->content[i]) == 0) { 101 res = 0; break; 102 } 103 return res; 104 } 105 #if 0 87 106 Expr Word::create_expr (wchar_t const* _wstr) 88 {107 { 89 108 Expr e = Term::create_expr(1); 90 109 Term* p = e.get_first(); … … 100 119 return e; 101 120 } 102 121 #endif 103 122 } 104 123
Note: See TracChangeset
for help on using the changeset viewer.