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