OLD | NEW |
(Empty) | |
| 1 /* |
| 2 ******************************************************************************* |
| 3 * Copyright (C) 1997-2014, International Business Machines Corporation and * |
| 4 * others. All Rights Reserved. * |
| 5 ******************************************************************************* |
| 6 */ |
| 7 #ifndef _DECIMAL_FORMAT_PATTERN |
| 8 #define _DECIMAL_FORMAT_PATTERN |
| 9 |
| 10 #include "unicode/utypes.h" |
| 11 |
| 12 #if !UCONFIG_NO_FORMATTING |
| 13 |
| 14 #include "unicode/uobject.h" |
| 15 #include "unicode/unistr.h" |
| 16 #include "digitlst.h" |
| 17 |
| 18 U_NAMESPACE_BEGIN |
| 19 |
| 20 // currency sign count |
| 21 enum CurrencySignCount { |
| 22 fgCurrencySignCountZero, |
| 23 fgCurrencySignCountInSymbolFormat, |
| 24 fgCurrencySignCountInISOFormat, |
| 25 fgCurrencySignCountInPluralFormat |
| 26 }; |
| 27 |
| 28 class DecimalFormatSymbols; |
| 29 |
| 30 struct DecimalFormatPattern : UMemory { |
| 31 enum EPadPosition { |
| 32 kPadBeforePrefix, |
| 33 kPadAfterPrefix, |
| 34 kPadBeforeSuffix, |
| 35 kPadAfterSuffix |
| 36 }; |
| 37 |
| 38 DecimalFormatPattern(); |
| 39 |
| 40 int32_t fMinimumIntegerDigits; |
| 41 int32_t fMaximumIntegerDigits; |
| 42 int32_t fMinimumFractionDigits; |
| 43 int32_t fMaximumFractionDigits; |
| 44 UBool fUseSignificantDigits; |
| 45 int32_t fMinimumSignificantDigits; |
| 46 int32_t fMaximumSignificantDigits; |
| 47 UBool fUseExponentialNotation; |
| 48 int32_t fMinExponentDigits; |
| 49 UBool fExponentSignAlwaysShown; |
| 50 int32_t fCurrencySignCount; |
| 51 UBool fGroupingUsed; |
| 52 int32_t fGroupingSize; |
| 53 int32_t fGroupingSize2; |
| 54 int32_t fMultiplier; |
| 55 UBool fDecimalSeparatorAlwaysShown; |
| 56 int32_t fFormatWidth; |
| 57 UBool fRoundingIncrementUsed; |
| 58 DigitList fRoundingIncrement; |
| 59 UChar32 fPad; |
| 60 UBool fNegPatternsBogus; |
| 61 UBool fPosPatternsBogus; |
| 62 UnicodeString fNegPrefixPattern; |
| 63 UnicodeString fNegSuffixPattern; |
| 64 UnicodeString fPosPrefixPattern; |
| 65 UnicodeString fPosSuffixPattern; |
| 66 EPadPosition fPadPosition; |
| 67 }; |
| 68 |
| 69 class DecimalFormatPatternParser : UMemory { |
| 70 public: |
| 71 DecimalFormatPatternParser(); |
| 72 void useSymbols(const DecimalFormatSymbols& symbols); |
| 73 |
| 74 void applyPatternWithoutExpandAffix( |
| 75 const UnicodeString& pattern, |
| 76 DecimalFormatPattern& out, |
| 77 UParseError& parseError, |
| 78 UErrorCode& status); |
| 79 private: |
| 80 DecimalFormatPatternParser(const DecimalFormatPatternParser&); |
| 81 DecimalFormatPatternParser& operator=(DecimalFormatPatternParser& rhs); |
| 82 UChar32 fZeroDigit; |
| 83 UChar32 fSigDigit; |
| 84 UnicodeString fGroupingSeparator; |
| 85 UnicodeString fDecimalSeparator; |
| 86 UnicodeString fPercent; |
| 87 UnicodeString fPerMill; |
| 88 UnicodeString fDigit; |
| 89 UnicodeString fSeparator; |
| 90 UnicodeString fExponent; |
| 91 UnicodeString fPlus; |
| 92 UnicodeString fMinus; |
| 93 UnicodeString fPadEscape; |
| 94 }; |
| 95 |
| 96 U_NAMESPACE_END |
| 97 |
| 98 #endif /* !UCONFIG_NO_FORMATTING */ |
| 99 #endif |
OLD | NEW |