Go to the documentation of this file.
18 #if U_SHOW_CPLUSPLUS_API
35 class RBBIRuleScanner;
37 class UnicodeSetStringSpan;
39 class RuleCharacterIterator;
287 static constexpr uint8_t kIsBogus = 1;
294 BMPSet *bmpSet =
nullptr;
296 int32_t bufferCapacity = 0;
307 char16_t *pat =
nullptr;
310 UVector* strings =
nullptr;
311 UnicodeSetStringSpan *stringSpan =
nullptr;
330 inline UBool isBogus(
void)
const;
388 #ifndef U_HIDE_INTERNAL_API
406 UnicodeSet(
const uint16_t buffer[], int32_t bufferLen,
407 ESerialization serialization,
UErrorCode &status);
421 #ifndef U_HIDE_INTERNAL_API
515 virtual int32_t hashCode(
void)
const;
544 inline USet *toUSet();
554 inline const USet * toUSet()
const;
569 inline UBool isFrozen()
const;
634 #ifndef U_HIDE_INTERNAL_API
708 UBool escapeUnprintable =
false)
const;
777 virtual int32_t size(
void)
const;
785 virtual UBool isEmpty(
void)
const;
907 int32_t span(
const char16_t *s, int32_t length,
USetSpanCondition spanCondition)
const;
940 int32_t spanBack(
const char16_t *s, int32_t length,
USetSpanCondition spanCondition)
const;
975 int32_t spanUTF8(
const char *s, int32_t length,
USetSpanCondition spanCondition)
const;
994 int32_t spanBackUTF8(
const char *s, int32_t length,
USetSpanCondition spanCondition)
const;
1029 int32_t start, int32_t limit,
1041 int32_t findCodePoint(
UChar32 c)
const;
1062 int32_t indexOf(
UChar32 c)
const;
1073 UChar32 charAt(int32_t index)
const;
1208 #ifndef U_HIDE_DRAFT_API
1220 #endif // U_HIDE_DRAFT_API
1408 virtual int32_t getRangeCount(
void)
const;
1417 virtual UChar32 getRangeStart(int32_t index)
const;
1426 virtual UChar32 getRangeEnd(int32_t index)
const;
1476 int32_t serialize(uint16_t *dest, int32_t destCapacity,
UErrorCode& ec)
const;
1513 friend class USetAccess;
1531 friend class RBBIRuleScanner;
1549 void applyPattern(RuleCharacterIterator& chars,
1561 static int32_t nextCapacity(int32_t minCapacity);
1563 bool ensureCapacity(int32_t newLen);
1565 bool ensureBufferCapacity(int32_t newLen);
1567 void swapBuffers(
void);
1570 UBool hasStrings()
const;
1571 int32_t stringsSize()
const;
1575 UBool escapeUnprintable)
const;
1578 UBool escapeUnprintable)
const;
1588 void exclusiveOr(
const UChar32* other, int32_t otherLen, int8_t polarity);
1590 void add(
const UChar32* other, int32_t otherLen, int8_t polarity);
1592 void retain(
const UChar32* other, int32_t otherLen, int8_t polarity);
1602 static UBool resemblesPropertyPattern(RuleCharacterIterator& chars,
1648 void applyPropertyPattern(RuleCharacterIterator& chars,
1658 typedef UBool (*Filter)(
UChar32 codePoint,
void* context);
1669 void applyFilter(Filter filter,
1675 void applyIntPropertyValue(
const UCPMap *map,
1685 void setPattern(
const char16_t *newPat, int32_t newPatLen);
1689 void releasePattern();
1691 friend class UnicodeSetIterator;
1700 inline UBool UnicodeSet::isFrozen()
const {
1705 return !containsNone(start, end);
1709 return !containsNone(s);
1713 return !containsNone(s);
1716 inline UBool UnicodeSet::isBogus()
const {
1717 return (
UBool)(fFlags & kIsBogus);
1725 return reinterpret_cast<const UnicodeSet *
>(uset);
1728 inline USet *UnicodeSet::toUSet() {
1729 return reinterpret_cast<USet *
>(
this);
1732 inline const USet *UnicodeSet::toUSet()
const {
1733 return reinterpret_cast<const USet *
>(
this);
1737 int32_t sLength=s.
length();
1740 }
else if(start>sLength) {
1743 return start+span(s.
getBuffer()+start, sLength-start, spanCondition);
1747 int32_t sLength=s.
length();
1750 }
else if(limit>sLength) {
1753 return spanBack(s.
getBuffer(), limit, spanCondition);
char16_t * getBuffer(int32_t minCapacity)
Get a read/write pointer to the internal buffer.
Basic definitions for ICU, for both C and C++ APIs.
A mutable set of Unicode characters and multicharacter strings.
int8_t UBool
The ICU boolean type, a signed-byte integer.
Replaceable is an abstract base class representing a string of characters that supports the replaceme...
U_EXPORT UBool operator==(const StringPiece &x, const StringPiece &y)
Global operator == for StringPiece.
virtual UBool matchesIndexValue(uint8_t v) const =0
Returns true if this matcher will match a character c, where c & 0xFF == v, at offset,...
UProperty
Selection constants for Unicode properties.
An interface that defines both lookup protocol and parsing of symbolic names.
USetSpanCondition
Argument values for whether span() and similar functions continue while the current character is cont...
int32_t length(void) const
Return the length of the UnicodeString object.
static UClassID getStaticClassID()
ICU "poor man's RTTI", returns a UClassID for this class.
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
int32_t UChar32
Define UChar32 as a type for single Unicode code points.
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
virtual UnicodeFilter * clone() const =0
Clones this object polymorphically.
uint32_t UCPMapValueFilter(const void *context, uint32_t value)
Callback function type: Modifies a map value.
UBool operator!=(const StringPiece &x, const StringPiece &y)
Global operator != for StringPiece.
struct UCPMap UCPMap
Abstract map from Unicode code points (U+0000..U+10FFFF) to integer values.
UMatchDegree
Constants returned by UnicodeMatcher::matches() indicating the degree of match.
virtual UBool contains(UChar32 c) const =0
Returns true for characters that are in the selected subset.
virtual UClassID getDynamicClassID(void) const =0
Returns a unique class ID polymorphically.
UnicodeFilter defines a protocol for selecting a subset of the full range (U+0000 to U+10FFFF) of Uni...
ParsePosition is a simple class used by Format and its subclasses to keep track of the current positi...
virtual UnicodeString & toPattern(UnicodeString &result, UBool escapeUnprintable=false) const =0
Returns a string representation of this matcher.
struct USet USet
USet is the C API type corresponding to C++ class UnicodeSet.
virtual UMatchDegree matches(const Replaceable &text, int32_t &offset, int32_t limit, UBool incremental)
Implement UnicodeMatcher API.
virtual void addMatchSetTo(UnicodeSet &toUnionTo) const =0
Union the set of all characters that may be matched by this object into the given set.
#define INITIAL_CAPACITY
The initial size of an array if it is unspecified.