String iterator using ICU as a backend. More...
Public Member Functions | |
virtual void | SetString (const char *s) |
Set a new iteration string. | |
virtual size_t | SetCurPosition (size_t pos) |
Change the current string cursor. | |
virtual size_t | Next (IterType what) |
Advance the cursor by one iteration unit. | |
virtual size_t | Prev (IterType what) |
Move the cursor back by one iteration unit. | |
Private Attributes | |
icu::BreakIterator * | char_itr |
ICU iterator for characters. | |
icu::BreakIterator * | word_itr |
ICU iterator for words. | |
const char * | string |
Iteration string in UTF-8. | |
SmallVector< UChar, 32 > | utf16_str |
UTF-16 copy of the string. | |
SmallVector< size_t, 32 > | utf16_to_utf8 |
Mapping from UTF-16 code point position to index in the UTF-8 source string. |
String iterator using ICU as a backend.
Definition at line 661 of file string.cpp.
virtual size_t IcuStringIterator::Next | ( | IterType | what | ) | [inline, virtual] |
Advance the cursor by one iteration unit.
Implements StringIterator.
Definition at line 742 of file string.cpp.
References char_itr, StringIterator::END, IsWhitespace(), StringIterator::ITER_CHARACTER, StringIterator::ITER_WORD, utf16_str, utf16_to_utf8, Utf16DecodeChar(), and word_itr.
virtual size_t IcuStringIterator::Prev | ( | IterType | what | ) | [inline, virtual] |
Move the cursor back by one iteration unit.
Implements StringIterator.
Definition at line 767 of file string.cpp.
References char_itr, StringIterator::END, IsWhitespace(), StringIterator::ITER_CHARACTER, StringIterator::ITER_WORD, utf16_str, utf16_to_utf8, Utf16DecodeChar(), and word_itr.
virtual size_t IcuStringIterator::SetCurPosition | ( | size_t | pos | ) | [inline, virtual] |
Change the current string cursor.
p | New cursor position. |
Implements StringIterator.
Definition at line 724 of file string.cpp.
References char_itr, SmallVector< T, S >::Length(), and utf16_to_utf8.
virtual void IcuStringIterator::SetString | ( | const char * | s | ) | [inline, virtual] |
Set a new iteration string.
Must also be called if the string contents changed. The cursor is reset to the start of the string.
s | New string. |
Implements StringIterator.
Definition at line 687 of file string.cpp.
References SmallVector< T, S >::Append(), SmallVector< T, S >::Begin(), char_itr, SmallVector< T, S >::Clear(), SmallVector< T, S >::Length(), string, utf16_str, utf16_to_utf8, and word_itr.