16f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/*
26f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*******************************************************************************
36f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Copyright (C) 2010-2013, International Business Machines Corporation and
46f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* others. All Rights Reserved.
56f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*******************************************************************************
66f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*
76f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*
86f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* File NUMSYS.H
96f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*
106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Modification History:*
116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*   Date        Name        Description
126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*
136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org********************************************************************************
146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*/
156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef NUMSYS
176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define NUMSYS
186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/utypes.h"
206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * \def NUMSYS_NAME_CAPACITY
236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Size of a numbering system name.
246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal
256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define NUMSYS_NAME_CAPACITY 8
276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * \file
316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * \brief C++ API: NumberingSystem object
326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#if !UCONFIG_NO_FORMATTING
356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/format.h"
386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/uobject.h"
396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_NAMESPACE_BEGIN
416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Defines numbering systems. A numbering system describes the scheme by which
446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * numbers are to be presented to the end user.  In its simplest form, a numbering
456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * system describes the set of digit characters that are to be used to display
466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * numbers, such as Western digits, Thai digits, Arabic-Indic digits, etc., in a
476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * positional numbering system with a specified radix (typically 10).
486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * More complicated numbering systems are algorithmic in nature, and require use
496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * of an RBNF formatter ( rule based number formatter ), in order to calculate
506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * the characters to be displayed for a given number.  Examples of algorithmic
516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * numbering systems include Roman numerals, Chinese numerals, and Hebrew numerals.
526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Formatting rules for many commonly used numbering systems are included in
536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * the ICU package, based on the numbering system rules defined in CLDR.
546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Alternate numbering systems can be specified to a locale by using the
556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * numbers locale keyword.
566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgclass U_I18N_API NumberingSystem : public UObject {
596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgpublic:
606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /**
626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Default Constructor.
636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *
646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @stable ICU 4.2
656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    NumberingSystem();
676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /**
696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Copy constructor.
706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @stable ICU 4.2
716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    NumberingSystem(const NumberingSystem& other);
736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /**
756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Destructor.
766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @stable ICU 4.2
776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    virtual ~NumberingSystem();
796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /**
816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Create the default numbering system associated with the specified locale.
826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @param inLocale The given locale.
836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @param status ICU status
846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @stable ICU 4.2
856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    static NumberingSystem* U_EXPORT2 createInstance(const Locale & inLocale, UErrorCode& status);
876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /**
896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Create the default numbering system associated with the default locale.
906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @stable ICU 4.2
916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    static NumberingSystem* U_EXPORT2 createInstance(UErrorCode& status);
936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /**
956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Create a numbering system using the specified radix, type, and description.
966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @param radix         The radix (base) for this numbering system.
976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @param isAlgorithmic TRUE if the numbering system is algorithmic rather than numeric.
986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @param description   The string representing the set of digits used in a numeric system, or the name of the RBNF
996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *                      ruleset to be used in an algorithmic system.
1006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @param status ICU status
1016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @stable ICU 4.2
1026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
1036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    static NumberingSystem* U_EXPORT2 createInstance(int32_t radix, UBool isAlgorithmic, const UnicodeString& description, UErrorCode& status );
1046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /**
1066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Return a StringEnumeration over all the names of numbering systems known to ICU.
1076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @stable ICU 4.2
1086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
1096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     static StringEnumeration * U_EXPORT2 getAvailableNames(UErrorCode& status);
1116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /**
1136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Create a numbering system from one of the predefined numbering systems specified
1146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * by CLDR and known to ICU, such as "latn", "arabext", or "hanidec"; the full list
1156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * is returned by unumsys_openAvailableNames. Note that some of the names listed at
1166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * http://unicode.org/repos/cldr/tags/latest/common/bcp47/number.xml - e.g.
1176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * default, native, traditional, finance - do not identify specific numbering systems,
1186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * but rather key values that may only be used as part of a locale, which in turn
1196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * defines how they are mapped to a specific numbering system such as "latn" or "hant".
1206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @param name   The name of the numbering system.
1216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @param status ICU status
1226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @stable ICU 4.2
1236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
1246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    static NumberingSystem* U_EXPORT2 createInstanceByName(const char* name, UErrorCode& status);
1256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /**
1286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Returns the radix of this numbering system. Simple positional numbering systems
1296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * typically have radix 10, but might have a radix of e.g. 16 for hexadecimal. The
1306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * radix is less well-defined for non-positional algorithmic systems.
1316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @stable ICU 4.2
1326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
1336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    int32_t getRadix() const;
1346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /**
1366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Returns the name of this numbering system if it was created using one of the predefined names
1376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * known to ICU.  Otherwise, returns NULL.
1386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @stable ICU 4.6
1396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
1406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    const char * getName() const;
1416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /**
1436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Returns the description string of this numbering system. For simple
1446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * positional systems this is the ordered string of digits (with length matching
1456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * the radix), e.g. "\u3007\u4E00\u4E8C\u4E09\u56DB\u4E94\u516D\u4E03\u516B\u4E5D"
1466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * for "hanidec"; it would be "0123456789ABCDEF" for hexadecimal. For
1476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * algorithmic systems this is the name of the RBNF ruleset used for formatting,
1486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * e.g. "zh/SpelloutRules/%spellout-cardinal" for "hans" or "%greek-upper" for
1496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * "grek".
1506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @stable ICU 4.2
1516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
1526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    virtual UnicodeString getDescription() const;
1536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /**
1576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Returns TRUE if the given numbering system is algorithmic
1586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *
1596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @return         TRUE if the numbering system is algorithmic.
1606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *                 Otherwise, return FALSE.
1616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @stable ICU 4.2
1626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
1636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBool isAlgorithmic() const;
1646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /**
1666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * ICU "poor man's RTTI", returns a UClassID for this class.
1676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *
1686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @stable ICU 4.2
1696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *
1706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    */
1716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    static UClassID U_EXPORT2 getStaticClassID(void);
1726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /**
1746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * ICU "poor man's RTTI", returns a UClassID for the actual class.
1756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *
1766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @stable ICU 4.2
1776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
1786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    virtual UClassID getDynamicClassID() const;
1796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgprivate:
1826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UnicodeString   desc;
1836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    int32_t         radix;
1846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBool           algorithmic;
1856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    char            name[NUMSYS_NAME_CAPACITY+1];
1866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    void setRadix(int32_t radix);
1886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    void setAlgorithmic(UBool algorithmic);
1906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    void setDesc(UnicodeString desc);
1926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    void setName(const char* name);
1946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    static UBool isValidDigitString(const UnicodeString &str);
1966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBool hasContiguousDecimalDigits() const;
1986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
1996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_NAMESPACE_END
2016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif /* #if !UCONFIG_NO_FORMATTING */
2036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif // _NUMSYS
2056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org//eof
206