webkit
2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
|
#include <chariter.h>
Public Types | |
enum | EOrigin { kStart, kCurrent, kEnd, kStart, kCurrent, kEnd } |
enum | EOrigin { kStart, kCurrent, kEnd, kStart, kCurrent, kEnd } |
Public Types inherited from ForwardCharacterIterator | |
enum | { DONE = 0xffff } |
enum | { DONE = 0xffff } |
Protected Attributes | |
int32_t | textLength |
int32_t | pos |
int32_t | begin |
int32_t | end |
Abstract class that defines an API for iteration on text objects. This is an interface for forward and backward iteration and random access into a text object.
The API provides backward compatibility to the Java and older ICU CharacterIterator classes but extends them significantly:
See ForwardCharacterIterator for examples for using the new forward iteration functions. For backward iteration, there is also a hasPrevious() function that can be used analogously to hasNext(). The old functions work as before and are shown below.
Examples for some of the new functions:
Forward iteration with hasNext():
Forward iteration more similar to loops with the old forward iteration, showing a way to convert simple for() loops:
Backward iteration with setToEnd() and hasPrevious():
Backward iteration with a more traditional for() loop:
Example for random access:
Examples, especially for the old API:
Function processing characters, in this example simple output
Traverse the text from start to finish
Traverse the text backwards, from end to start
Traverse both forward and backward from a given position in the text. Calls to notBoundary() in this example represents some additional stopping criteria.
{for (c = iter.setIndex(pos);c != CharacterIterator.DONE && (Unicode::isLetter(c) || Unicode::isDigit(c));c = iter.next()) {}for (c = iter.setIndex(pos);c != CharacterIterator.DONE && (Unicode::isLetter(c) || Unicode::isDigit(c));c = iter.previous()) {}processChar(c);}}
Creating a StringCharacterIterator and calling the test functions
void CharacterIterator_Example( void ){cout << endl << "===== CharacterIterator_Example: =====" << endl;StringCharacterIterator iterator(text);cout << "----- traverseForward: -----------" << endl;traverseForward( iterator );cout << endl << endl << "----- traverseBackward: ----------" << endl;traverseBackward( iterator );cout << endl << endl << "----- traverseOut: ---------------" << endl;traverseOut( iterator, 7 );cout << endl << endl << "-----" << endl;}
ICU 2.0
|
virtual |
Destructor. ICU 2.0
|
protected |
Empty constructor. ICU 2.0
|
protected |
Constructor, just setting the length field in this base class. ICU 2.0
Constructor, just setting the length and position fields in this base class. ICU 2.0
|
protected |
Constructor, just setting the length, start, end, and position fields in this base class. ICU 2.0
|
protected |
Copy constructor.
that | The CharacterIterator to be copied ICU 2.0 |
|
virtual |
Destructor. ICU 2.0
|
protected |
Empty constructor. ICU 2.0
|
protected |
Constructor, just setting the length field in this base class. ICU 2.0
Constructor, just setting the length and position fields in this base class. ICU 2.0
|
protected |
Constructor, just setting the length, start, end, and position fields in this base class. ICU 2.0
|
protected |
Copy constructor.
that | The CharacterIterator to be copied ICU 2.0 |
|
pure virtual |
Returns a pointer to a new CharacterIterator of the same concrete class as this one, and referring to the same character in the same text-storage object as this one. The caller is responsible for deleting the new clone.
|
pure virtual |
Returns a pointer to a new CharacterIterator of the same concrete class as this one, and referring to the same character in the same text-storage object as this one. The caller is responsible for deleting the new clone.
Returns the code unit the iterator currently refers to.
Returns the code unit the iterator currently refers to.
Returns the code point the iterator currently refers to.
Returns the code point the iterator currently refers to.
Sets the iterator to refer to the first code unit in its iteration range, and returns that code unit. This can be used to begin an iteration with next().
Sets the iterator to refer to the first code unit in its iteration range, and returns that code unit. This can be used to begin an iteration with next().
Sets the iterator to refer to the first code point in its iteration range, and returns that code unit, This can be used to begin an iteration with next32(). Note that an iteration with next32PostInc(), beginning with, e.g., setToStart() or firstPostInc(), is more efficient.
Sets the iterator to refer to the first code point in its iteration range, and returns that code unit, This can be used to begin an iteration with next32(). Note that an iteration with next32PostInc(), beginning with, e.g., setToStart() or firstPostInc(), is more efficient.
Sets the iterator to refer to the first code point in its iteration range, returns that code point, and moves the position to the second code point. This is an alternative to setToStart() for forward iteration with next32PostInc().
Sets the iterator to refer to the first code point in its iteration range, returns that code point, and moves the position to the second code point. This is an alternative to setToStart() for forward iteration with next32PostInc().
Sets the iterator to refer to the first code unit in its iteration range, returns that code unit, and moves the position to the second code unit. This is an alternative to setToStart() for forward iteration with nextPostInc().
Sets the iterator to refer to the first code unit in its iteration range, returns that code unit, and moves the position to the second code unit. This is an alternative to setToStart() for forward iteration with nextPostInc().
Returns the numeric index in the underlying text-storage object of the character the iterator currently refers to (i.e., the character returned by current()).
Returns the numeric index in the underlying text-storage object of the character the iterator currently refers to (i.e., the character returned by current()).
Returns the length of the entire text in the underlying text-storage object.
|
inline |
Returns the length of the entire text in the underlying text-storage object.
|
pure virtual |
Copies the text under iteration into the UnicodeString referred to by "result".
result | Receives a copy of the text under iteration. ICU 2.0 |
|
pure virtual |
Copies the text under iteration into the UnicodeString referred to by "result".
result | Receives a copy of the text under iteration. ICU 2.0 |
|
pure virtual |
Returns FALSE if there are no more code units or code points before the current position in the iteration range. This is used with previous() or previous32() in backward iteration.
|
pure virtual |
Returns FALSE if there are no more code units or code points before the current position in the iteration range. This is used with previous() or previous32() in backward iteration.
Sets the iterator to refer to the last code unit in its iteration range, and returns that code unit. This can be used to begin an iteration with previous().
Sets the iterator to refer to the last code unit in its iteration range, and returns that code unit. This can be used to begin an iteration with previous().
Sets the iterator to refer to the last code point in its iteration range, and returns that code unit. This can be used to begin an iteration with previous32().
Sets the iterator to refer to the last code point in its iteration range, and returns that code unit. This can be used to begin an iteration with previous32().
Moves the current position relative to the start or end of the iteration range, or relative to the current position itself. The movement is expressed in numbers of code units forward or backward by specifying a positive or negative delta.
delta | the position relative to origin. A positive delta means forward; a negative delta means backward. |
origin | Origin enumeration {kStart, kCurrent, kEnd} |
Moves the current position relative to the start or end of the iteration range, or relative to the current position itself. The movement is expressed in numbers of code units forward or backward by specifying a positive or negative delta.
delta | the position relative to origin. A positive delta means forward; a negative delta means backward. |
origin | Origin enumeration {kStart, kCurrent, kEnd} |
Moves the current position relative to the start or end of the iteration range, or relative to the current position itself. The movement is expressed in numbers of code points forward or backward by specifying a positive or negative delta.
delta | the position relative to origin. A positive delta means forward; a negative delta means backward. |
origin | Origin enumeration {kStart, kCurrent, kEnd} |
Moves the current position relative to the start or end of the iteration range, or relative to the current position itself. The movement is expressed in numbers of code points forward or backward by specifying a positive or negative delta.
delta | the position relative to origin. A positive delta means forward; a negative delta means backward. |
origin | Origin enumeration {kStart, kCurrent, kEnd} |
Advances to the next code unit in the iteration range (toward endIndex()), and returns that code unit. If there are no more code units to return, returns DONE.
Advances to the next code unit in the iteration range (toward endIndex()), and returns that code unit. If there are no more code units to return, returns DONE.
Advances to the next code point in the iteration range (toward endIndex()), and returns that code point. If there are no more code points to return, returns DONE. Note that iteration with "pre-increment" semantics is less efficient than iteration with "post-increment" semantics that is provided by next32PostInc().
Advances to the next code point in the iteration range (toward endIndex()), and returns that code point. If there are no more code points to return, returns DONE. Note that iteration with "pre-increment" semantics is less efficient than iteration with "post-increment" semantics that is provided by next32PostInc().
|
protected |
Assignment operator. Sets this CharacterIterator to have the same behavior, as the one passed in.
that | The CharacterIterator passed in. |
|
protected |
Assignment operator. Sets this CharacterIterator to have the same behavior, as the one passed in.
that | The CharacterIterator passed in. |
Advances to the previous code unit in the iteration range (toward startIndex()), and returns that code unit. If there are no more code units to return, returns DONE.
Advances to the previous code unit in the iteration range (toward startIndex()), and returns that code unit. If there are no more code units to return, returns DONE.
Advances to the previous code point in the iteration range (toward startIndex()), and returns that code point. If there are no more code points to return, returns DONE.
Advances to the previous code point in the iteration range (toward startIndex()), and returns that code point. If there are no more code points to return, returns DONE.
Sets the iterator to refer to the "position"-th code unit in the text-storage object the iterator refers to, and returns that code unit.
position | the "position"-th code unit in the text-storage object |
Sets the iterator to refer to the "position"-th code unit in the text-storage object the iterator refers to, and returns that code unit.
position | the "position"-th code unit in the text-storage object |
Sets the iterator to refer to the beginning of the code point that contains the "position"-th code unit in the text-storage object the iterator refers to, and returns that code point. The current position is adjusted to the beginning of the code point (its first code unit).
position | the "position"-th code unit in the text-storage object |
Sets the iterator to refer to the beginning of the code point that contains the "position"-th code unit in the text-storage object the iterator refers to, and returns that code point. The current position is adjusted to the beginning of the code point (its first code unit).
position | the "position"-th code unit in the text-storage object |
|
inline |
Sets the iterator to the end of its iteration range, just behind the last code unit or code point. This can be used to begin a backward iteration with previous() or previous32().
|
inline |
Sets the iterator to the end of its iteration range, just behind the last code unit or code point. This can be used to begin a backward iteration with previous() or previous32().
|
inline |
Sets the iterator to refer to the first code unit or code point in its iteration range. This can be used to begin a forward iteration with nextPostInc() or next32PostInc().
|
inline |
Sets the iterator to refer to the first code unit or code point in its iteration range. This can be used to begin a forward iteration with nextPostInc() or next32PostInc().
Returns the numeric index in the underlying text-storage object of the character returned by first(). Since it's possible to create an iterator that iterates across only part of a text-storage object, this number isn't necessarily 0.
Returns the numeric index in the underlying text-storage object of the character returned by first(). Since it's possible to create an iterator that iterates across only part of a text-storage object, this number isn't necessarily 0.
|
protected |
Base class field for the start of the iteration range. ICU 2.0
|
protected |
Base class field for the end of the iteration range. ICU 2.0
|
protected |
Base class text length field. Necessary this for correct getText() and hashCode(). ICU 2.0