Index: icu46/source/i18n/quant.h |
=================================================================== |
--- icu46/source/i18n/quant.h (revision 0) |
+++ icu46/source/i18n/quant.h (revision 0) |
@@ -0,0 +1,128 @@ |
+/* |
+ ********************************************************************** |
+ * Copyright (C) 2001-2007, International Business Machines Corporation |
+ * and others. All Rights Reserved. |
+ ********************************************************************** |
+ * Date Name Description |
+ * 07/26/01 aliu Creation. |
+ ********************************************************************** |
+ */ |
+#ifndef QUANT_H |
+#define QUANT_H |
+ |
+#include "unicode/utypes.h" |
+ |
+#if !UCONFIG_NO_TRANSLITERATION |
+ |
+#include "unicode/unifunct.h" |
+#include "unicode/unimatch.h" |
+ |
+U_NAMESPACE_BEGIN |
+ |
+class Quantifier : public UnicodeFunctor, public UnicodeMatcher { |
+ |
+ public: |
+ |
+ enum { MAX = 0x7FFFFFFF }; |
+ |
+ Quantifier(UnicodeFunctor *adoptedMatcher, |
+ uint32_t minCount, uint32_t maxCount); |
+ |
+ Quantifier(const Quantifier& o); |
+ |
+ virtual ~Quantifier(); |
+ |
+ /** |
+ * UnicodeFunctor API. Cast 'this' to a UnicodeMatcher* pointer |
+ * and return the pointer. |
+ * @return the UnicodeMatcher pointer. |
+ */ |
+ virtual UnicodeMatcher* toMatcher() const; |
+ |
+ /** |
+ * Implement UnicodeFunctor |
+ * @return a copy of the object. |
+ */ |
+ virtual UnicodeFunctor* clone() const; |
+ |
+ /** |
+ * Implement UnicodeMatcher |
+ * @param text the text to be matched |
+ * @param offset on input, the index into text at which to begin |
+ * matching. On output, the limit of the matched text. The |
+ * number of matched characters is the output value of offset |
+ * minus the input value. Offset should always point to the |
+ * HIGH SURROGATE (leading code unit) of a pair of surrogates, |
+ * both on entry and upon return. |
+ * @param limit the limit index of text to be matched. Greater |
+ * than offset for a forward direction match, less than offset for |
+ * a backward direction match. The last character to be |
+ * considered for matching will be text.charAt(limit-1) in the |
+ * forward direction or text.charAt(limit+1) in the backward |
+ * direction. |
+ * @param incremental if TRUE, then assume further characters may |
+ * be inserted at limit and check for partial matching. Otherwise |
+ * assume the text as given is complete. |
+ * @return a match degree value indicating a full match, a partial |
+ * match, or a mismatch. If incremental is FALSE then |
+ * U_PARTIAL_MATCH should never be returned. |
+ */ |
+ virtual UMatchDegree matches(const Replaceable& text, |
+ int32_t& offset, |
+ int32_t limit, |
+ UBool incremental); |
+ |
+ /** |
+ * Implement UnicodeMatcher |
+ * @param result Output param to receive the pattern. |
+ * @param escapeUnprintable if True then escape the unprintable characters. |
+ * @return A reference to 'result'. |
+ */ |
+ virtual UnicodeString& toPattern(UnicodeString& result, |
+ UBool escapeUnprintable = FALSE) const; |
+ |
+ /** |
+ * Implement UnicodeMatcher |
+ * @param v the given index value. |
+ * @return true if this rule matches the given index value. |
+ */ |
+ virtual UBool matchesIndexValue(uint8_t v) const; |
+ |
+ /** |
+ * Implement UnicodeMatcher |
+ */ |
+ virtual void addMatchSetTo(UnicodeSet& toUnionTo) const; |
+ |
+ /** |
+ * UnicodeFunctor API |
+ */ |
+ virtual void setData(const TransliterationRuleData*); |
+ |
+ /** |
+ * ICU "poor man's RTTI", returns a UClassID for the actual class. |
+ * |
+ * @draft ICU 2.2 |
+ */ |
+ virtual UClassID getDynamicClassID() const; |
+ |
+ /** |
+ * ICU "poor man's RTTI", returns a UClassID for this class. |
+ * |
+ * @draft ICU 2.2 |
+ */ |
+ static UClassID U_EXPORT2 getStaticClassID(); |
+ |
+ private: |
+ |
+ UnicodeFunctor* matcher; // owned |
+ |
+ uint32_t minCount; |
+ |
+ uint32_t maxCount; |
+}; |
+ |
+U_NAMESPACE_END |
+ |
+#endif /* #if !UCONFIG_NO_TRANSLITERATION */ |
+ |
+#endif |
Property changes on: icu46/source/i18n/quant.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |