X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/374ca955a76ecab1204ca8bfa63ff9238d998416..08b89b0a244153b9f5bbb2f49c55ab0f7298122e:/icuSources/i18n/nfrs.h diff --git a/icuSources/i18n/nfrs.h b/icuSources/i18n/nfrs.h index d28fde1d..4753d399 100644 --- a/icuSources/i18n/nfrs.h +++ b/icuSources/i18n/nfrs.h @@ -1,6 +1,6 @@ /* ****************************************************************************** -* Copyright (C) 1997-2004, International Business Machines +* Copyright (C) 1997-2012, International Business Machines * Corporation and others. All Rights Reserved. ****************************************************************************** * file name: nfrs.h @@ -40,6 +40,16 @@ class NFRuleSet : public UMemory { UBool operator!=(const NFRuleSet& rhs) const { return !operator==(rhs); } UBool isPublic() const { return fIsPublic; } + + UBool isParseable() const { return fIsParseable; } + + UBool isDecimalFormatRuleParseable() const { + UnicodeString numberingYear = UNICODE_STRING_SIMPLE("spellout-numbering-year"); + UnicodeString ordinal = UNICODE_STRING_SIMPLE("spellout-ordinal"); + + return ( name.indexOf(numberingYear) == -1 && name.indexOf(ordinal) == -1 ); + } + UBool isFractionRuleSet() const { return fIsFractionRuleSet; } void getName(UnicodeString& result) const { result.setTo(name); } @@ -48,7 +58,7 @@ class NFRuleSet : public UMemory { void format(int64_t number, UnicodeString& toAppendTo, int32_t pos) const; void format(double number, UnicodeString& toAppendTo, int32_t pos) const; - UBool parse(const UnicodeString& text, ParsePosition& pos, double upperBound, Formattable& result) const; + UBool parse(const UnicodeString& text, ParsePosition& pos, double upperBound, Formattable& result, UBool lenient=FALSE) const; void appendRules(UnicodeString& result) const; // toString @@ -64,6 +74,7 @@ class NFRuleSet : public UMemory { NFRule *fractionRules[3]; UBool fIsFractionRuleSet; UBool fIsPublic; + UBool fIsParseable; int32_t fRecursionCount; NFRuleSet(const NFRuleSet &other); // forbid copying of this class @@ -79,9 +90,9 @@ int64_t util64_pow(int32_t radix, uint32_t exponent); // convert n to digit string in buffer, return length of string uint32_t util64_tou(int64_t n, UChar* buffer, uint32_t buflen, uint32_t radix = 10, UBool raw = FALSE); -int64_t util64_utoi(const UChar* str, uint32_t radix = 10); #ifdef RBNF_DEBUG +int64_t util64_utoi(const UChar* str, uint32_t radix = 10); uint32_t util64_toa(int64_t n, char* buffer, uint32_t buflen, uint32_t radix = 10, UBool raw = FALSE); int64_t util64_atoi(const char* str, uint32_t radix); #endif