private RuleStatus CalcStatus(int current, int next) { if (current == BreakIterator.Done || next == BreakIterator.Done) { return(ICU4N.Text.RuleStatus.WordNone); } int begin = m_start + current; int end = m_start + next; int codepoint; for (int i = begin; i < end; i += UTF16.GetCharCount(codepoint)) { codepoint = UTF16.CharAt(m_text, 0, end, begin); if (UChar.IsDigit(codepoint)) { return(ICU4N.Text.RuleStatus.WordNumber); } else if (UChar.IsLetter(codepoint)) { // TODO: try to separately specify ideographic, kana? // [currently all bundled as letter for this case] return(ICU4N.Text.RuleStatus.WordLetter); } } return(ICU4N.Text.RuleStatus.WordNone); }