16f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/*
26f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org**********************************************************************
36f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*   Copyright (C) 1997-2013, International Business Machines
46f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*   Corporation and others.  All Rights Reserved.
56f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org**********************************************************************
66f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*
76f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* File UCHAR.H
86f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*
96f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Modification History:
106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*
116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*   Date        Name        Description
126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*   04/02/97    aliu        Creation.
136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*   03/29/99    helena      Updated for C APIs.
146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*   4/15/99     Madhu       Updated for C Implementation and Javadoc
156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*   5/20/99     Madhu       Added the function u_getVersion()
166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*   8/19/1999   srl         Upgraded scripts to Unicode 3.0
176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*   8/27/1999   schererm    UCharDirection constants: U_...
186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*   11/11/1999  weiv        added u_isalnum(), cleaned comments
196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*   01/11/2000  helena      Renamed u_getVersion to u_getUnicodeVersion().
206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org******************************************************************************
216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*/
226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef UCHAR_H
246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define UCHAR_H
256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/utypes.h"
276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_CDECL_BEGIN
296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/*==========================================================================*/
316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/* Unicode version number                                                   */
326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/*==========================================================================*/
336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Unicode version number, default for the current ICU version.
356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The actual Unicode Character Database (UCD) data is stored in uprops.dat
366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * and may be generated from UCD files from a different Unicode version.
376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Call u_getUnicodeVersion to get the actual Unicode version of the data.
386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_getUnicodeVersion
406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_UNICODE_VERSION "6.3"
436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * \file
466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * \brief C API: Unicode Properties
476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This C API provides low-level access to the Unicode Character Database.
496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * In addition to raw property values, some convenience functions calculate
506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * derived properties, for example for Java-style programming.
516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Unicode assigns each code point (not just assigned character) values for
536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * many properties.
546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Most of them are simple boolean flags, or constants from a small enumerated list.
556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * For some properties, values are strings or other relatively more complex types.
566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * For more information see
586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * "About the Unicode Character Database" (http://www.unicode.org/ucd/)
596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * and the ICU User Guide chapter on Properties (http://icu-project.org/userguide/properties.html).
606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Many functions are designed to match java.lang.Character functions.
626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * See the individual function documentation,
636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * and see the JDK 1.4 java.lang.Character documentation
646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * at http://java.sun.com/j2se/1.4/docs/api/java/lang/Character.html
656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * There are also functions that provide easy migration from C/POSIX functions
676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * like isblank(). Their use is generally discouraged because the C/POSIX
686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * standards do not define their semantics beyond the ASCII range, which means
696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * that different implementations exhibit very different behavior.
706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Instead, Unicode properties should be used directly.
716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * There are also only a few, broad C/POSIX character classes, and they tend
736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * to be used for conflicting purposes. For example, the "isalpha()" class
746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * is sometimes used to determine word boundaries, while a more sophisticated
756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * approach would at least distinguish initial letters from continuation
766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * characters (the latter including combining marks).
776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (In ICU, BreakIterator is the most sophisticated API for word boundaries.)
786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Another example: There is no "istitle()" class for titlecase characters.
796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * ICU 3.4 and later provides API access for all twelve C/POSIX character classes.
816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * ICU implements them according to the Standard Recommendations in
826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Annex C: Compatibility Properties of UTS #18 Unicode Regular Expressions
836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (http://www.unicode.org/reports/tr18/#Compatibility_Properties).
846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * API access for C/POSIX character classes is as follows:
866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - alpha:     u_isUAlphabetic(c) or u_hasBinaryProperty(c, UCHAR_ALPHABETIC)
876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - lower:     u_isULowercase(c) or u_hasBinaryProperty(c, UCHAR_LOWERCASE)
886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - upper:     u_isUUppercase(c) or u_hasBinaryProperty(c, UCHAR_UPPERCASE)
896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - punct:     u_ispunct(c)
906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - digit:     u_isdigit(c) or u_charType(c)==U_DECIMAL_DIGIT_NUMBER
916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - xdigit:    u_isxdigit(c) or u_hasBinaryProperty(c, UCHAR_POSIX_XDIGIT)
926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - alnum:     u_hasBinaryProperty(c, UCHAR_POSIX_ALNUM)
936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - space:     u_isUWhiteSpace(c) or u_hasBinaryProperty(c, UCHAR_WHITE_SPACE)
946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - blank:     u_isblank(c) or u_hasBinaryProperty(c, UCHAR_POSIX_BLANK)
956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - cntrl:     u_charType(c)==U_CONTROL_CHAR
966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - graph:     u_hasBinaryProperty(c, UCHAR_POSIX_GRAPH)
976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - print:     u_hasBinaryProperty(c, UCHAR_POSIX_PRINT)
986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Note: Some of the u_isxyz() functions in uchar.h predate, and do not match,
1006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * the Standard Recommendations in UTS #18. Instead, they match Java
1016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * functions according to their API documentation.
1026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
1036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * \htmlonly
1046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The C/POSIX character classes are also available in UnicodeSet patterns,
1056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * using patterns like [:graph:] or \p{graph}.
1066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * \endhtmlonly
1076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
1086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Note: There are several ICU whitespace functions.
1096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Comparison:
1106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - u_isUWhiteSpace=UCHAR_WHITE_SPACE: Unicode White_Space property;
1116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *       most of general categories "Z" (separators) + most whitespace ISO controls
1126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *       (including no-break spaces, but excluding IS1..IS4 and ZWSP)
1136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - u_isWhitespace: Java isWhitespace; Z + whitespace ISO controls but excluding no-break spaces
1146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - u_isJavaSpaceChar: Java isSpaceChar; just Z (including no-break spaces)
1156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - u_isspace: Z + whitespace ISO controls (including no-break spaces)
1166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - u_isblank: "horizontal spaces" = TAB + Zs - ZWSP
1176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
1186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
1206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Constants.
1216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
1226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** The lowest Unicode code point value. Code points are non-negative. @stable ICU 2.0 */
1246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define UCHAR_MIN_VALUE 0
1256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
1276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The highest Unicode code point value (scalar value) according to
1286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The Unicode Standard. This is a 21-bit value (20.1 bits, rounded up).
1296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * For a single character, UChar32 is a simple type that can hold any code point value.
1306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
1316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UChar32
1326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
1336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
1346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define UCHAR_MAX_VALUE 0x10ffff
1356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
1376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Get a single-bit bit set (a flag) from a bit number 0..31.
1386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.1
1396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
1406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_MASK(x) ((uint32_t)1<<(x))
1416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
1436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Selection constants for Unicode properties.
1446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * These constants are used in functions like u_hasBinaryProperty to select
1456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * one of the Unicode properties.
1466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
1476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The properties APIs are intended to reflect Unicode properties as defined
1486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * in the Unicode Character Database (UCD) and Unicode Technical Reports (UTR).
1496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * For details about the properties see http://www.unicode.org/ucd/ .
1506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * For names of Unicode properties see the UCD file PropertyAliases.txt.
1516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
1526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Important: If ICU is built with UCD files from Unicode versions below, e.g., 3.2,
1536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * then properties marked with "new in Unicode 3.2" are not or not fully available.
1546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Check u_getUnicodeVersion to be sure.
1556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
1566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_hasBinaryProperty
1576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_getIntPropertyValue
1586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_getUnicodeVersion
1596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.1
1606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
1616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef enum UProperty {
1626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /*
1636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Note: UProperty constants are parsed by preparseucd.py.
1646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * It matches lines like
1656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *     UCHAR_<Unicode property name>=<integer>,
1666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
1676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /*  Note: Place UCHAR_ALPHABETIC before UCHAR_BINARY_START so that
1696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    debuggers display UCHAR_ALPHABETIC as the symbolic name for 0,
1706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    rather than UCHAR_BINARY_START.  Likewise for other *_START
1716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    identifiers. */
1726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Alphabetic. Same as u_isUAlphabetic, different from u_isalpha.
1746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Lu+Ll+Lt+Lm+Lo+Nl+Other_Alphabetic @stable ICU 2.1 */
1756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_ALPHABETIC=0,
1766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** First constant for binary Unicode properties. @stable ICU 2.1 */
1776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_BINARY_START=UCHAR_ALPHABETIC,
1786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property ASCII_Hex_Digit. 0-9 A-F a-f @stable ICU 2.1 */
1796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_ASCII_HEX_DIGIT=1,
1806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Bidi_Control.
1816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Format controls which have specific functions
1826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        in the Bidi Algorithm. @stable ICU 2.1 */
1836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_BIDI_CONTROL=2,
1846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Bidi_Mirrored.
1856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Characters that may change display in RTL text.
1866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Same as u_isMirrored.
1876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        See Bidi Algorithm, UTR 9. @stable ICU 2.1 */
1886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_BIDI_MIRRORED=3,
1896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Dash. Variations of dashes. @stable ICU 2.1 */
1906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_DASH=4,
1916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Default_Ignorable_Code_Point (new in Unicode 3.2).
1926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Ignorable in most processing.
1936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        <2060..206F, FFF0..FFFB, E0000..E0FFF>+Other_Default_Ignorable_Code_Point+(Cf+Cc+Cs-White_Space) @stable ICU 2.1 */
1946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_DEFAULT_IGNORABLE_CODE_POINT=5,
1956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Deprecated (new in Unicode 3.2).
1966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        The usage of deprecated characters is strongly discouraged. @stable ICU 2.1 */
1976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_DEPRECATED=6,
1986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Diacritic. Characters that linguistically modify
1996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        the meaning of another character to which they apply. @stable ICU 2.1 */
2006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_DIACRITIC=7,
2016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Extender.
2026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Extend the value or shape of a preceding alphabetic character,
2036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        e.g., length and iteration marks. @stable ICU 2.1 */
2046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_EXTENDER=8,
2056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Full_Composition_Exclusion.
2066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        CompositionExclusions.txt+Singleton Decompositions+
2076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Non-Starter Decompositions. @stable ICU 2.1 */
2086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_FULL_COMPOSITION_EXCLUSION=9,
2096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Grapheme_Base (new in Unicode 3.2).
2106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        For programmatic determination of grapheme cluster boundaries.
2116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        [0..10FFFF]-Cc-Cf-Cs-Co-Cn-Zl-Zp-Grapheme_Link-Grapheme_Extend-CGJ @stable ICU 2.1 */
2126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_GRAPHEME_BASE=10,
2136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Grapheme_Extend (new in Unicode 3.2).
2146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        For programmatic determination of grapheme cluster boundaries.
2156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Me+Mn+Mc+Other_Grapheme_Extend-Grapheme_Link-CGJ @stable ICU 2.1 */
2166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_GRAPHEME_EXTEND=11,
2176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Grapheme_Link (new in Unicode 3.2).
2186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        For programmatic determination of grapheme cluster boundaries. @stable ICU 2.1 */
2196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_GRAPHEME_LINK=12,
2206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Hex_Digit.
2216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Characters commonly used for hexadecimal numbers. @stable ICU 2.1 */
2226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_HEX_DIGIT=13,
2236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Hyphen. Dashes used to mark connections
2246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        between pieces of words, plus the Katakana middle dot. @stable ICU 2.1 */
2256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_HYPHEN=14,
2266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property ID_Continue.
2276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Characters that can continue an identifier.
2286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        DerivedCoreProperties.txt also says "NOTE: Cf characters should be filtered out."
2296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        ID_Start+Mn+Mc+Nd+Pc @stable ICU 2.1 */
2306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_ID_CONTINUE=15,
2316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property ID_Start.
2326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Characters that can start an identifier.
2336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Lu+Ll+Lt+Lm+Lo+Nl @stable ICU 2.1 */
2346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_ID_START=16,
2356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Ideographic.
2366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        CJKV ideographs. @stable ICU 2.1 */
2376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_IDEOGRAPHIC=17,
2386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property IDS_Binary_Operator (new in Unicode 3.2).
2396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        For programmatic determination of
2406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Ideographic Description Sequences. @stable ICU 2.1 */
2416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_IDS_BINARY_OPERATOR=18,
2426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property IDS_Trinary_Operator (new in Unicode 3.2).
2436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        For programmatic determination of
2446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Ideographic Description Sequences. @stable ICU 2.1 */
2456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_IDS_TRINARY_OPERATOR=19,
2466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Join_Control.
2476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Format controls for cursive joining and ligation. @stable ICU 2.1 */
2486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_JOIN_CONTROL=20,
2496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Logical_Order_Exception (new in Unicode 3.2).
2506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Characters that do not use logical order and
2516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        require special handling in most processing. @stable ICU 2.1 */
2526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_LOGICAL_ORDER_EXCEPTION=21,
2536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Lowercase. Same as u_isULowercase, different from u_islower.
2546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Ll+Other_Lowercase @stable ICU 2.1 */
2556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_LOWERCASE=22,
2566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Math. Sm+Other_Math @stable ICU 2.1 */
2576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_MATH=23,
2586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Noncharacter_Code_Point.
2596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Code points that are explicitly defined as illegal
2606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        for the encoding of characters. @stable ICU 2.1 */
2616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_NONCHARACTER_CODE_POINT=24,
2626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Quotation_Mark. @stable ICU 2.1 */
2636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_QUOTATION_MARK=25,
2646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Radical (new in Unicode 3.2).
2656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        For programmatic determination of
2666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Ideographic Description Sequences. @stable ICU 2.1 */
2676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_RADICAL=26,
2686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Soft_Dotted (new in Unicode 3.2).
2696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Characters with a "soft dot", like i or j.
2706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        An accent placed on these characters causes
2716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        the dot to disappear. @stable ICU 2.1 */
2726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_SOFT_DOTTED=27,
2736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Terminal_Punctuation.
2746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Punctuation characters that generally mark
2756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        the end of textual units. @stable ICU 2.1 */
2766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_TERMINAL_PUNCTUATION=28,
2776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Unified_Ideograph (new in Unicode 3.2).
2786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        For programmatic determination of
2796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Ideographic Description Sequences. @stable ICU 2.1 */
2806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_UNIFIED_IDEOGRAPH=29,
2816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Uppercase. Same as u_isUUppercase, different from u_isupper.
2826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Lu+Other_Uppercase @stable ICU 2.1 */
2836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_UPPERCASE=30,
2846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property White_Space.
2856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Same as u_isUWhiteSpace, different from u_isspace and u_isWhitespace.
2866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Space characters+TAB+CR+LF-ZWSP-ZWNBSP @stable ICU 2.1 */
2876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_WHITE_SPACE=31,
2886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property XID_Continue.
2896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        ID_Continue modified to allow closure under
2906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        normalization forms NFKC and NFKD. @stable ICU 2.1 */
2916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_XID_CONTINUE=32,
2926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property XID_Start. ID_Start modified to allow
2936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        closure under normalization forms NFKC and NFKD. @stable ICU 2.1 */
2946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_XID_START=33,
2956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Case_Sensitive. Either the source of a case
2966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        mapping or _in_ the target of a case mapping. Not the same as
2976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        the general category Cased_Letter. @stable ICU 2.6 */
2986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org   UCHAR_CASE_SENSITIVE=34,
2996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property STerm (new in Unicode 4.0.1).
3006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Sentence Terminal. Used in UAX #29: Text Boundaries
3016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        (http://www.unicode.org/reports/tr29/)
3026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        @stable ICU 3.0 */
3036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_S_TERM=35,
3046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Variation_Selector (new in Unicode 4.0.1).
3056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Indicates all those characters that qualify as Variation Selectors.
3066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        For details on the behavior of these characters,
3076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        see StandardizedVariants.html and 15.6 Variation Selectors.
3086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        @stable ICU 3.0 */
3096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_VARIATION_SELECTOR=36,
3106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property NFD_Inert.
3116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        ICU-specific property for characters that are inert under NFD,
3126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        i.e., they do not interact with adjacent characters.
3136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        See the documentation for the Normalizer2 class and the
3146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Normalizer2::isInert() method.
3156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        @stable ICU 3.0 */
3166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_NFD_INERT=37,
3176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property NFKD_Inert.
3186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        ICU-specific property for characters that are inert under NFKD,
3196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        i.e., they do not interact with adjacent characters.
3206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        See the documentation for the Normalizer2 class and the
3216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Normalizer2::isInert() method.
3226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        @stable ICU 3.0 */
3236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_NFKD_INERT=38,
3246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property NFC_Inert.
3256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        ICU-specific property for characters that are inert under NFC,
3266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        i.e., they do not interact with adjacent characters.
3276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        See the documentation for the Normalizer2 class and the
3286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Normalizer2::isInert() method.
3296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        @stable ICU 3.0 */
3306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_NFC_INERT=39,
3316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property NFKC_Inert.
3326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        ICU-specific property for characters that are inert under NFKC,
3336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        i.e., they do not interact with adjacent characters.
3346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        See the documentation for the Normalizer2 class and the
3356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Normalizer2::isInert() method.
3366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        @stable ICU 3.0 */
3376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_NFKC_INERT=40,
3386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary Property Segment_Starter.
3396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        ICU-specific property for characters that are starters in terms of
3406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Unicode normalization and combining character sequences.
3416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        They have ccc=0 and do not occur in non-initial position of the
3426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        canonical decomposition of any character
3436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        (like a-umlaut in NFD and a Jamo T in an NFD(Hangul LVT)).
3446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        ICU uses this property for segmenting a string for generating a set of
3456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        canonically equivalent strings, e.g. for canonical closure while
3466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        processing collation tailoring rules.
3476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        @stable ICU 3.0 */
3486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_SEGMENT_STARTER=41,
3496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Pattern_Syntax (new in Unicode 4.1).
3506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        See UAX #31 Identifier and Pattern Syntax
3516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        (http://www.unicode.org/reports/tr31/)
3526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        @stable ICU 3.4 */
3536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_PATTERN_SYNTAX=42,
3546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Pattern_White_Space (new in Unicode 4.1).
3556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        See UAX #31 Identifier and Pattern Syntax
3566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        (http://www.unicode.org/reports/tr31/)
3576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        @stable ICU 3.4 */
3586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_PATTERN_WHITE_SPACE=43,
3596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property alnum (a C/POSIX character class).
3606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Implemented according to the UTS #18 Annex C Standard Recommendation.
3616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        See the uchar.h file documentation.
3626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        @stable ICU 3.4 */
3636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_POSIX_ALNUM=44,
3646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property blank (a C/POSIX character class).
3656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Implemented according to the UTS #18 Annex C Standard Recommendation.
3666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        See the uchar.h file documentation.
3676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        @stable ICU 3.4 */
3686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_POSIX_BLANK=45,
3696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property graph (a C/POSIX character class).
3706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Implemented according to the UTS #18 Annex C Standard Recommendation.
3716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        See the uchar.h file documentation.
3726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        @stable ICU 3.4 */
3736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_POSIX_GRAPH=46,
3746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property print (a C/POSIX character class).
3756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Implemented according to the UTS #18 Annex C Standard Recommendation.
3766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        See the uchar.h file documentation.
3776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        @stable ICU 3.4 */
3786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_POSIX_PRINT=47,
3796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property xdigit (a C/POSIX character class).
3806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Implemented according to the UTS #18 Annex C Standard Recommendation.
3816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        See the uchar.h file documentation.
3826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        @stable ICU 3.4 */
3836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_POSIX_XDIGIT=48,
3846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Cased. For Lowercase, Uppercase and Titlecase characters. @stable ICU 4.4 */
3856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_CASED=49,
3866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Case_Ignorable. Used in context-sensitive case mappings. @stable ICU 4.4 */
3876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_CASE_IGNORABLE=50,
3886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Changes_When_Lowercased. @stable ICU 4.4 */
3896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_CHANGES_WHEN_LOWERCASED=51,
3906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Changes_When_Uppercased. @stable ICU 4.4 */
3916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_CHANGES_WHEN_UPPERCASED=52,
3926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Changes_When_Titlecased. @stable ICU 4.4 */
3936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_CHANGES_WHEN_TITLECASED=53,
3946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Changes_When_Casefolded. @stable ICU 4.4 */
3956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_CHANGES_WHEN_CASEFOLDED=54,
3966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Changes_When_Casemapped. @stable ICU 4.4 */
3976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_CHANGES_WHEN_CASEMAPPED=55,
3986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Binary property Changes_When_NFKC_Casefolded. @stable ICU 4.4 */
3996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_CHANGES_WHEN_NFKC_CASEFOLDED=56,
4006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** One more than the last constant for binary Unicode properties. @stable ICU 2.1 */
4016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_BINARY_LIMIT=57,
4026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
4036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Enumerated property Bidi_Class.
4046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Same as u_charDirection, returns UCharDirection values. @stable ICU 2.2 */
4056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_BIDI_CLASS=0x1000,
4066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** First constant for enumerated/integer Unicode properties. @stable ICU 2.2 */
4076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_INT_START=UCHAR_BIDI_CLASS,
4086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Enumerated property Block.
4096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Same as ublock_getCode, returns UBlockCode values. @stable ICU 2.2 */
4106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_BLOCK=0x1001,
4116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Enumerated property Canonical_Combining_Class.
4126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Same as u_getCombiningClass, returns 8-bit numeric values. @stable ICU 2.2 */
4136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_CANONICAL_COMBINING_CLASS=0x1002,
4146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Enumerated property Decomposition_Type.
4156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Returns UDecompositionType values. @stable ICU 2.2 */
4166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_DECOMPOSITION_TYPE=0x1003,
4176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Enumerated property East_Asian_Width.
4186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        See http://www.unicode.org/reports/tr11/
4196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Returns UEastAsianWidth values. @stable ICU 2.2 */
4206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_EAST_ASIAN_WIDTH=0x1004,
4216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Enumerated property General_Category.
4226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Same as u_charType, returns UCharCategory values. @stable ICU 2.2 */
4236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_GENERAL_CATEGORY=0x1005,
4246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Enumerated property Joining_Group.
4256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Returns UJoiningGroup values. @stable ICU 2.2 */
4266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_JOINING_GROUP=0x1006,
4276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Enumerated property Joining_Type.
4286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Returns UJoiningType values. @stable ICU 2.2 */
4296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_JOINING_TYPE=0x1007,
4306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Enumerated property Line_Break.
4316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Returns ULineBreak values. @stable ICU 2.2 */
4326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_LINE_BREAK=0x1008,
4336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Enumerated property Numeric_Type.
4346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Returns UNumericType values. @stable ICU 2.2 */
4356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_NUMERIC_TYPE=0x1009,
4366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Enumerated property Script.
4376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Same as uscript_getScript, returns UScriptCode values. @stable ICU 2.2 */
4386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_SCRIPT=0x100A,
4396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Enumerated property Hangul_Syllable_Type, new in Unicode 4.
4406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Returns UHangulSyllableType values. @stable ICU 2.6 */
4416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_HANGUL_SYLLABLE_TYPE=0x100B,
4426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Enumerated property NFD_Quick_Check.
4436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Returns UNormalizationCheckResult values. @stable ICU 3.0 */
4446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_NFD_QUICK_CHECK=0x100C,
4456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Enumerated property NFKD_Quick_Check.
4466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Returns UNormalizationCheckResult values. @stable ICU 3.0 */
4476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_NFKD_QUICK_CHECK=0x100D,
4486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Enumerated property NFC_Quick_Check.
4496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Returns UNormalizationCheckResult values. @stable ICU 3.0 */
4506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_NFC_QUICK_CHECK=0x100E,
4516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Enumerated property NFKC_Quick_Check.
4526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Returns UNormalizationCheckResult values. @stable ICU 3.0 */
4536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_NFKC_QUICK_CHECK=0x100F,
4546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Enumerated property Lead_Canonical_Combining_Class.
4556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        ICU-specific property for the ccc of the first code point
4566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        of the decomposition, or lccc(c)=ccc(NFD(c)[0]).
4576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Useful for checking for canonically ordered text;
4586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        see UNORM_FCD and http://www.unicode.org/notes/tn5/#FCD .
4596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Returns 8-bit numeric values like UCHAR_CANONICAL_COMBINING_CLASS. @stable ICU 3.0 */
4606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_LEAD_CANONICAL_COMBINING_CLASS=0x1010,
4616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Enumerated property Trail_Canonical_Combining_Class.
4626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        ICU-specific property for the ccc of the last code point
4636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        of the decomposition, or tccc(c)=ccc(NFD(c)[last]).
4646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Useful for checking for canonically ordered text;
4656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        see UNORM_FCD and http://www.unicode.org/notes/tn5/#FCD .
4666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Returns 8-bit numeric values like UCHAR_CANONICAL_COMBINING_CLASS. @stable ICU 3.0 */
4676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_TRAIL_CANONICAL_COMBINING_CLASS=0x1011,
4686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Enumerated property Grapheme_Cluster_Break (new in Unicode 4.1).
4696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Used in UAX #29: Text Boundaries
4706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        (http://www.unicode.org/reports/tr29/)
4716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Returns UGraphemeClusterBreak values. @stable ICU 3.4 */
4726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_GRAPHEME_CLUSTER_BREAK=0x1012,
4736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Enumerated property Sentence_Break (new in Unicode 4.1).
4746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Used in UAX #29: Text Boundaries
4756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        (http://www.unicode.org/reports/tr29/)
4766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Returns USentenceBreak values. @stable ICU 3.4 */
4776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_SENTENCE_BREAK=0x1013,
4786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Enumerated property Word_Break (new in Unicode 4.1).
4796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Used in UAX #29: Text Boundaries
4806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        (http://www.unicode.org/reports/tr29/)
4816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Returns UWordBreakValues values. @stable ICU 3.4 */
4826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_WORD_BREAK=0x1014,
4836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Enumerated property Bidi_Paired_Bracket_Type (new in Unicode 6.3).
4846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Used in UAX #9: Unicode Bidirectional Algorithm
4856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        (http://www.unicode.org/reports/tr9/)
4866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Returns UBidiPairedBracketType values. @stable ICU 52 */
4876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_BIDI_PAIRED_BRACKET_TYPE=0x1015,
4886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** One more than the last constant for enumerated/integer Unicode properties. @stable ICU 2.2 */
4896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_INT_LIMIT=0x1016,
4906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
4916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Bitmask property General_Category_Mask.
4926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        This is the General_Category property returned as a bit mask.
4936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        When used in u_getIntPropertyValue(c), same as U_MASK(u_charType(c)),
4946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        returns bit masks for UCharCategory values where exactly one bit is set.
4956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        When used with u_getPropertyValueName() and u_getPropertyValueEnum(),
4966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        a multi-bit mask is used for sets of categories like "Letters".
4976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Mask values should be cast to uint32_t.
4986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        @stable ICU 2.4 */
4996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_GENERAL_CATEGORY_MASK=0x2000,
5006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** First constant for bit-mask Unicode properties. @stable ICU 2.4 */
5016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_MASK_START=UCHAR_GENERAL_CATEGORY_MASK,
5026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** One more than the last constant for bit-mask Unicode properties. @stable ICU 2.4 */
5036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_MASK_LIMIT=0x2001,
5046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
5056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Double property Numeric_Value.
5066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Corresponds to u_getNumericValue. @stable ICU 2.4 */
5076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_NUMERIC_VALUE=0x3000,
5086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** First constant for double Unicode properties. @stable ICU 2.4 */
5096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_DOUBLE_START=UCHAR_NUMERIC_VALUE,
5106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** One more than the last constant for double Unicode properties. @stable ICU 2.4 */
5116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_DOUBLE_LIMIT=0x3001,
5126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
5136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** String property Age.
5146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Corresponds to u_charAge. @stable ICU 2.4 */
5156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_AGE=0x4000,
5166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** First constant for string Unicode properties. @stable ICU 2.4 */
5176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_STRING_START=UCHAR_AGE,
5186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** String property Bidi_Mirroring_Glyph.
5196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Corresponds to u_charMirror. @stable ICU 2.4 */
5206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_BIDI_MIRRORING_GLYPH=0x4001,
5216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** String property Case_Folding.
5226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Corresponds to u_strFoldCase in ustring.h. @stable ICU 2.4 */
5236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_CASE_FOLDING=0x4002,
5246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef U_HIDE_DEPRECATED_API
5256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Deprecated string property ISO_Comment.
5266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Corresponds to u_getISOComment. @deprecated ICU 49 */
5276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_ISO_COMMENT=0x4003,
5286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif  /* U_HIDE_DEPRECATED_API */
5296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** String property Lowercase_Mapping.
5306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Corresponds to u_strToLower in ustring.h. @stable ICU 2.4 */
5316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_LOWERCASE_MAPPING=0x4004,
5326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** String property Name.
5336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Corresponds to u_charName. @stable ICU 2.4 */
5346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_NAME=0x4005,
5356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** String property Simple_Case_Folding.
5366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Corresponds to u_foldCase. @stable ICU 2.4 */
5376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_SIMPLE_CASE_FOLDING=0x4006,
5386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** String property Simple_Lowercase_Mapping.
5396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Corresponds to u_tolower. @stable ICU 2.4 */
5406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_SIMPLE_LOWERCASE_MAPPING=0x4007,
5416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** String property Simple_Titlecase_Mapping.
5426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Corresponds to u_totitle. @stable ICU 2.4 */
5436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_SIMPLE_TITLECASE_MAPPING=0x4008,
5446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** String property Simple_Uppercase_Mapping.
5456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Corresponds to u_toupper. @stable ICU 2.4 */
5466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_SIMPLE_UPPERCASE_MAPPING=0x4009,
5476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** String property Titlecase_Mapping.
5486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Corresponds to u_strToTitle in ustring.h. @stable ICU 2.4 */
5496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_TITLECASE_MAPPING=0x400A,
5506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef U_HIDE_DEPRECATED_API
5516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** String property Unicode_1_Name.
5526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        This property is of little practical value.
5536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Beginning with ICU 49, ICU APIs return an empty string for this property.
5546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Corresponds to u_charName(U_UNICODE_10_CHAR_NAME). @deprecated ICU 49 */
5556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_UNICODE_1_NAME=0x400B,
5566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif  /* U_HIDE_DEPRECATED_API */
5576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** String property Uppercase_Mapping.
5586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Corresponds to u_strToUpper in ustring.h. @stable ICU 2.4 */
5596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_UPPERCASE_MAPPING=0x400C,
5606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** String property Bidi_Paired_Bracket (new in Unicode 6.3).
5616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Corresponds to u_getBidiPairedBracket. @stable ICU 52 */
5626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_BIDI_PAIRED_BRACKET=0x400D,
5636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** One more than the last constant for string Unicode properties. @stable ICU 2.4 */
5646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_STRING_LIMIT=0x400E,
5656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
5666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Miscellaneous property Script_Extensions (new in Unicode 6.0).
5676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Some characters are commonly used in multiple scripts.
5686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        For more information, see UAX #24: http://www.unicode.org/reports/tr24/.
5696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        Corresponds to uscript_hasScript and uscript_getScriptExtensions in uscript.h.
5706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        @stable ICU 4.6 */
5716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_SCRIPT_EXTENSIONS=0x7000,
5726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** First constant for Unicode properties with unusual value types. @stable ICU 4.6 */
5736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_OTHER_PROPERTY_START=UCHAR_SCRIPT_EXTENSIONS,
5746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** One more than the last constant for Unicode properties with unusual value types.
5756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @stable ICU 4.6 */
5766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_OTHER_PROPERTY_LIMIT=0x7001,
5776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Represents a nonexistent or invalid property or property value. @stable ICU 2.4 */
5786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UCHAR_INVALID_CODE = -1
5796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org} UProperty;
5806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
5816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
5826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Data for enumerated Unicode general category types.
5836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * See http://www.unicode.org/Public/UNIDATA/UnicodeData.html .
5846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
5856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
5866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef enum UCharCategory
5876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
5886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /*
5896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Note: UCharCategory constants and their API comments are parsed by preparseucd.py.
5906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * It matches pairs of lines like
5916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *     / ** <Unicode 2-letter General_Category value> comment... * /
5926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *     U_<[A-Z_]+> = <integer>,
5936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
5946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
5956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Non-category for unassigned and non-character code points. @stable ICU 2.0 */
5966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_UNASSIGNED              = 0,
5976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Cn "Other, Not Assigned (no characters in [UnicodeData.txt] have this property)" (same as U_UNASSIGNED!) @stable ICU 2.0 */
5986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_GENERAL_OTHER_TYPES     = 0,
5996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Lu @stable ICU 2.0 */
6006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_UPPERCASE_LETTER        = 1,
6016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Ll @stable ICU 2.0 */
6026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LOWERCASE_LETTER        = 2,
6036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Lt @stable ICU 2.0 */
6046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_TITLECASE_LETTER        = 3,
6056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Lm @stable ICU 2.0 */
6066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_MODIFIER_LETTER         = 4,
6076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Lo @stable ICU 2.0 */
6086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_OTHER_LETTER            = 5,
6096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Mn @stable ICU 2.0 */
6106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_NON_SPACING_MARK        = 6,
6116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Me @stable ICU 2.0 */
6126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_ENCLOSING_MARK          = 7,
6136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Mc @stable ICU 2.0 */
6146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_COMBINING_SPACING_MARK  = 8,
6156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Nd @stable ICU 2.0 */
6166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_DECIMAL_DIGIT_NUMBER    = 9,
6176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Nl @stable ICU 2.0 */
6186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LETTER_NUMBER           = 10,
6196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** No @stable ICU 2.0 */
6206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_OTHER_NUMBER            = 11,
6216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Zs @stable ICU 2.0 */
6226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_SPACE_SEPARATOR         = 12,
6236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Zl @stable ICU 2.0 */
6246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LINE_SEPARATOR          = 13,
6256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Zp @stable ICU 2.0 */
6266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_PARAGRAPH_SEPARATOR     = 14,
6276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Cc @stable ICU 2.0 */
6286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_CONTROL_CHAR            = 15,
6296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Cf @stable ICU 2.0 */
6306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_FORMAT_CHAR             = 16,
6316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Co @stable ICU 2.0 */
6326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_PRIVATE_USE_CHAR        = 17,
6336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Cs @stable ICU 2.0 */
6346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_SURROGATE               = 18,
6356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Pd @stable ICU 2.0 */
6366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_DASH_PUNCTUATION        = 19,
6376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Ps @stable ICU 2.0 */
6386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_START_PUNCTUATION       = 20,
6396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Pe @stable ICU 2.0 */
6406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_END_PUNCTUATION         = 21,
6416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Pc @stable ICU 2.0 */
6426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_CONNECTOR_PUNCTUATION   = 22,
6436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Po @stable ICU 2.0 */
6446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_OTHER_PUNCTUATION       = 23,
6456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Sm @stable ICU 2.0 */
6466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_MATH_SYMBOL             = 24,
6476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Sc @stable ICU 2.0 */
6486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_CURRENCY_SYMBOL         = 25,
6496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Sk @stable ICU 2.0 */
6506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_MODIFIER_SYMBOL         = 26,
6516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** So @stable ICU 2.0 */
6526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_OTHER_SYMBOL            = 27,
6536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Pi @stable ICU 2.0 */
6546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_INITIAL_PUNCTUATION     = 28,
6556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Pf @stable ICU 2.0 */
6566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_FINAL_PUNCTUATION       = 29,
6576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** One higher than the last enum UCharCategory constant. @stable ICU 2.0 */
6586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_CHAR_CATEGORY_COUNT
6596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org} UCharCategory;
6606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
6616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
6626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * U_GC_XX_MASK constants are bit flags corresponding to Unicode
6636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * general category values.
6646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * For each category, the nth bit is set if the numeric value of the
6656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * corresponding UCharCategory constant is n.
6666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
6676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * There are also some U_GC_Y_MASK constants for groups of general categories
6686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * like L for all letter categories.
6696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
6706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_charType
6716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see U_GET_GC_MASK
6726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCharCategory
6736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.1
6746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
6756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_CN_MASK    U_MASK(U_GENERAL_OTHER_TYPES)
6766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
6776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_LU_MASK    U_MASK(U_UPPERCASE_LETTER)
6796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_LL_MASK    U_MASK(U_LOWERCASE_LETTER)
6816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_LT_MASK    U_MASK(U_TITLECASE_LETTER)
6836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_LM_MASK    U_MASK(U_MODIFIER_LETTER)
6856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_LO_MASK    U_MASK(U_OTHER_LETTER)
6876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
6886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_MN_MASK    U_MASK(U_NON_SPACING_MARK)
6906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_ME_MASK    U_MASK(U_ENCLOSING_MARK)
6926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_MC_MASK    U_MASK(U_COMBINING_SPACING_MARK)
6946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
6956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_ND_MASK    U_MASK(U_DECIMAL_DIGIT_NUMBER)
6976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_NL_MASK    U_MASK(U_LETTER_NUMBER)
6996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
7006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_NO_MASK    U_MASK(U_OTHER_NUMBER)
7016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
7026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
7036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_ZS_MASK    U_MASK(U_SPACE_SEPARATOR)
7046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
7056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_ZL_MASK    U_MASK(U_LINE_SEPARATOR)
7066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
7076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_ZP_MASK    U_MASK(U_PARAGRAPH_SEPARATOR)
7086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
7096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
7106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_CC_MASK    U_MASK(U_CONTROL_CHAR)
7116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
7126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_CF_MASK    U_MASK(U_FORMAT_CHAR)
7136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
7146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_CO_MASK    U_MASK(U_PRIVATE_USE_CHAR)
7156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
7166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_CS_MASK    U_MASK(U_SURROGATE)
7176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
7186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
7196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_PD_MASK    U_MASK(U_DASH_PUNCTUATION)
7206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
7216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_PS_MASK    U_MASK(U_START_PUNCTUATION)
7226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
7236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_PE_MASK    U_MASK(U_END_PUNCTUATION)
7246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
7256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_PC_MASK    U_MASK(U_CONNECTOR_PUNCTUATION)
7266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
7276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_PO_MASK    U_MASK(U_OTHER_PUNCTUATION)
7286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
7296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
7306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_SM_MASK    U_MASK(U_MATH_SYMBOL)
7316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
7326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_SC_MASK    U_MASK(U_CURRENCY_SYMBOL)
7336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
7346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_SK_MASK    U_MASK(U_MODIFIER_SYMBOL)
7356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
7366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_SO_MASK    U_MASK(U_OTHER_SYMBOL)
7376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
7386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
7396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_PI_MASK    U_MASK(U_INITIAL_PUNCTUATION)
7406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for a UCharCategory. @stable ICU 2.1 */
7416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_PF_MASK    U_MASK(U_FINAL_PUNCTUATION)
7426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
7436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
7446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for multiple UCharCategory bits (L Letters). @stable ICU 2.1 */
7456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_L_MASK \
7466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK|U_GC_LM_MASK|U_GC_LO_MASK)
7476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
7486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for multiple UCharCategory bits (LC Cased Letters). @stable ICU 2.1 */
7496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_LC_MASK \
7506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK)
7516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
7526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for multiple UCharCategory bits (M Marks). @stable ICU 2.1 */
7536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_M_MASK (U_GC_MN_MASK|U_GC_ME_MASK|U_GC_MC_MASK)
7546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
7556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for multiple UCharCategory bits (N Numbers). @stable ICU 2.1 */
7566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_N_MASK (U_GC_ND_MASK|U_GC_NL_MASK|U_GC_NO_MASK)
7576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
7586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for multiple UCharCategory bits (Z Separators). @stable ICU 2.1 */
7596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_Z_MASK (U_GC_ZS_MASK|U_GC_ZL_MASK|U_GC_ZP_MASK)
7606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
7616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for multiple UCharCategory bits (C Others). @stable ICU 2.1 */
7626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_C_MASK \
7636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            (U_GC_CN_MASK|U_GC_CC_MASK|U_GC_CF_MASK|U_GC_CO_MASK|U_GC_CS_MASK)
7646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
7656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for multiple UCharCategory bits (P Punctuation). @stable ICU 2.1 */
7666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_P_MASK \
7676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org            (U_GC_PD_MASK|U_GC_PS_MASK|U_GC_PE_MASK|U_GC_PC_MASK|U_GC_PO_MASK| \
7686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org             U_GC_PI_MASK|U_GC_PF_MASK)
7696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
7706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Mask constant for multiple UCharCategory bits (S Symbols). @stable ICU 2.1 */
7716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GC_S_MASK (U_GC_SM_MASK|U_GC_SC_MASK|U_GC_SK_MASK|U_GC_SO_MASK)
7726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
7736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
7746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This specifies the language directional property of a character set.
7756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
7766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
7776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef enum UCharDirection {
7786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /*
7796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Note: UCharDirection constants and their API comments are parsed by preparseucd.py.
7806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * It matches pairs of lines like
7816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *     / ** <Unicode 1..3-letter Bidi_Class value> comment... * /
7826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *     U_<[A-Z_]+> = <integer>,
7836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
7846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
7856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** L @stable ICU 2.0 */
7866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LEFT_TO_RIGHT               = 0,
7876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** R @stable ICU 2.0 */
7886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_RIGHT_TO_LEFT               = 1,
7896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** EN @stable ICU 2.0 */
7906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_EUROPEAN_NUMBER             = 2,
7916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** ES @stable ICU 2.0 */
7926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_EUROPEAN_NUMBER_SEPARATOR   = 3,
7936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** ET @stable ICU 2.0 */
7946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_EUROPEAN_NUMBER_TERMINATOR  = 4,
7956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** AN @stable ICU 2.0 */
7966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_ARABIC_NUMBER               = 5,
7976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** CS @stable ICU 2.0 */
7986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_COMMON_NUMBER_SEPARATOR     = 6,
7996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** B @stable ICU 2.0 */
8006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_BLOCK_SEPARATOR             = 7,
8016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** S @stable ICU 2.0 */
8026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_SEGMENT_SEPARATOR           = 8,
8036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** WS @stable ICU 2.0 */
8046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_WHITE_SPACE_NEUTRAL         = 9,
8056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** ON @stable ICU 2.0 */
8066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_OTHER_NEUTRAL               = 10,
8076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** LRE @stable ICU 2.0 */
8086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LEFT_TO_RIGHT_EMBEDDING     = 11,
8096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** LRO @stable ICU 2.0 */
8106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LEFT_TO_RIGHT_OVERRIDE      = 12,
8116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** AL @stable ICU 2.0 */
8126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_RIGHT_TO_LEFT_ARABIC        = 13,
8136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** RLE @stable ICU 2.0 */
8146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_RIGHT_TO_LEFT_EMBEDDING     = 14,
8156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** RLO @stable ICU 2.0 */
8166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_RIGHT_TO_LEFT_OVERRIDE      = 15,
8176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** PDF @stable ICU 2.0 */
8186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_POP_DIRECTIONAL_FORMAT      = 16,
8196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** NSM @stable ICU 2.0 */
8206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_DIR_NON_SPACING_MARK        = 17,
8216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** BN @stable ICU 2.0 */
8226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_BOUNDARY_NEUTRAL            = 18,
8236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** FSI @stable ICU 52 */
8246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_FIRST_STRONG_ISOLATE        = 19,
8256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** LRI @stable ICU 52 */
8266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LEFT_TO_RIGHT_ISOLATE       = 20,
8276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** RLI @stable ICU 52 */
8286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_RIGHT_TO_LEFT_ISOLATE       = 21,
8296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** PDI @stable ICU 52 */
8306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_POP_DIRECTIONAL_ISOLATE     = 22,
8316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
8326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_CHAR_DIRECTION_COUNT
8336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org} UCharDirection;
8346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
8356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
8366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Bidi Paired Bracket Type constants.
8376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
8386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_BIDI_PAIRED_BRACKET_TYPE
8396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 52
8406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
8416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef enum UBidiPairedBracketType {
8426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /*
8436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Note: UBidiPairedBracketType constants are parsed by preparseucd.py.
8446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * It matches lines like
8456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *     U_BPT_<Unicode Bidi_Paired_Bracket_Type value name>
8466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
8476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
8486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Not a paired bracket. @stable ICU 52 */
8496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_BPT_NONE,
8506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Open paired bracket. @stable ICU 52 */
8516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_BPT_OPEN,
8526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Close paired bracket. @stable ICU 52 */
8536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_BPT_CLOSE,
8546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 52 */
8556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_BPT_COUNT /* 3 */
8566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org} UBidiPairedBracketType;
8576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
8586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
8596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Constants for Unicode blocks, see the Unicode Data file Blocks.txt
8606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
8616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
8626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgenum UBlockCode {
8636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /*
8646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Note: UBlockCode constants are parsed by preparseucd.py.
8656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * It matches lines like
8666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *     UBLOCK_<Unicode Block value name> = <integer>,
8676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
8686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
8696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** New No_Block value in Unicode 4. @stable ICU 2.6 */
8706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_NO_BLOCK = 0, /*[none]*/ /* Special range indicating No_Block */
8716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
8726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
8736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_BASIC_LATIN = 1, /*[0000]*/
8746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
8756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
8766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_LATIN_1_SUPPLEMENT=2, /*[0080]*/
8776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
8786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
8796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_LATIN_EXTENDED_A =3, /*[0100]*/
8806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
8816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
8826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_LATIN_EXTENDED_B =4, /*[0180]*/
8836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
8846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
8856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_IPA_EXTENSIONS =5, /*[0250]*/
8866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
8876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
8886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_SPACING_MODIFIER_LETTERS =6, /*[02B0]*/
8896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
8906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
8916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_COMBINING_DIACRITICAL_MARKS =7, /*[0300]*/
8926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
8936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /**
8946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Unicode 3.2 renames this block to "Greek and Coptic".
8956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @stable ICU 2.0
8966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
8976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_GREEK =8, /*[0370]*/
8986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
8996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CYRILLIC =9, /*[0400]*/
9016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_ARMENIAN =10, /*[0530]*/
9046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_HEBREW =11, /*[0590]*/
9076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_ARABIC =12, /*[0600]*/
9106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_SYRIAC =13, /*[0700]*/
9136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_THAANA =14, /*[0780]*/
9166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_DEVANAGARI =15, /*[0900]*/
9196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_BENGALI =16, /*[0980]*/
9226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_GURMUKHI =17, /*[0A00]*/
9256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_GUJARATI =18, /*[0A80]*/
9286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_ORIYA =19, /*[0B00]*/
9316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_TAMIL =20, /*[0B80]*/
9346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_TELUGU =21, /*[0C00]*/
9376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_KANNADA =22, /*[0C80]*/
9406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_MALAYALAM =23, /*[0D00]*/
9436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_SINHALA =24, /*[0D80]*/
9466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_THAI =25, /*[0E00]*/
9496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_LAO =26, /*[0E80]*/
9526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_TIBETAN =27, /*[0F00]*/
9556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_MYANMAR =28, /*[1000]*/
9586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_GEORGIAN =29, /*[10A0]*/
9616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_HANGUL_JAMO =30, /*[1100]*/
9646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_ETHIOPIC =31, /*[1200]*/
9676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CHEROKEE =32, /*[13A0]*/
9706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS =33, /*[1400]*/
9736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_OGHAM =34, /*[1680]*/
9766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_RUNIC =35, /*[16A0]*/
9796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_KHMER =36, /*[1780]*/
9826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_MONGOLIAN =37, /*[1800]*/
9856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_LATIN_EXTENDED_ADDITIONAL =38, /*[1E00]*/
9886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_GREEK_EXTENDED =39, /*[1F00]*/
9916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_GENERAL_PUNCTUATION =40, /*[2000]*/
9946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS =41, /*[2070]*/
9976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
9986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
9996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CURRENCY_SYMBOLS =42, /*[20A0]*/
10006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /**
10026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Unicode 3.2 renames this block to "Combining Diacritical Marks for Symbols".
10036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @stable ICU 2.0
10046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
10056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_COMBINING_MARKS_FOR_SYMBOLS =43, /*[20D0]*/
10066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_LETTERLIKE_SYMBOLS =44, /*[2100]*/
10096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_NUMBER_FORMS =45, /*[2150]*/
10126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_ARROWS =46, /*[2190]*/
10156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_MATHEMATICAL_OPERATORS =47, /*[2200]*/
10186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_MISCELLANEOUS_TECHNICAL =48, /*[2300]*/
10216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CONTROL_PICTURES =49, /*[2400]*/
10246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_OPTICAL_CHARACTER_RECOGNITION =50, /*[2440]*/
10276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_ENCLOSED_ALPHANUMERICS =51, /*[2460]*/
10306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_BOX_DRAWING =52, /*[2500]*/
10336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_BLOCK_ELEMENTS =53, /*[2580]*/
10366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_GEOMETRIC_SHAPES =54, /*[25A0]*/
10396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_MISCELLANEOUS_SYMBOLS =55, /*[2600]*/
10426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_DINGBATS =56, /*[2700]*/
10456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_BRAILLE_PATTERNS =57, /*[2800]*/
10486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CJK_RADICALS_SUPPLEMENT =58, /*[2E80]*/
10516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_KANGXI_RADICALS =59, /*[2F00]*/
10546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS =60, /*[2FF0]*/
10576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION =61, /*[3000]*/
10606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_HIRAGANA =62, /*[3040]*/
10636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_KATAKANA =63, /*[30A0]*/
10666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_BOPOMOFO =64, /*[3100]*/
10696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_HANGUL_COMPATIBILITY_JAMO =65, /*[3130]*/
10726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_KANBUN =66, /*[3190]*/
10756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_BOPOMOFO_EXTENDED =67, /*[31A0]*/
10786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS =68, /*[3200]*/
10816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CJK_COMPATIBILITY =69, /*[3300]*/
10846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A =70, /*[3400]*/
10876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CJK_UNIFIED_IDEOGRAPHS =71, /*[4E00]*/
10906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_YI_SYLLABLES =72, /*[A000]*/
10936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_YI_RADICALS =73, /*[A490]*/
10966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
10976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
10986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_HANGUL_SYLLABLES =74, /*[AC00]*/
10996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
11016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_HIGH_SURROGATES =75, /*[D800]*/
11026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
11046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_HIGH_PRIVATE_USE_SURROGATES =76, /*[DB80]*/
11056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
11076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_LOW_SURROGATES =77, /*[DC00]*/
11086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /**
11106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Same as UBLOCK_PRIVATE_USE.
11116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Until Unicode 3.1.1, the corresponding block name was "Private Use",
11126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * and multiple code point ranges had this block.
11136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Unicode 3.2 renames the block for the BMP PUA to "Private Use Area" and
11146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * adds separate blocks for the supplementary PUAs.
11156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *
11166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @stable ICU 2.0
11176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
11186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_PRIVATE_USE_AREA =78, /*[E000]*/
11196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /**
11206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Same as UBLOCK_PRIVATE_USE_AREA.
11216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Until Unicode 3.1.1, the corresponding block name was "Private Use",
11226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * and multiple code point ranges had this block.
11236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Unicode 3.2 renames the block for the BMP PUA to "Private Use Area" and
11246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * adds separate blocks for the supplementary PUAs.
11256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *
11266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @stable ICU 2.0
11276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
11286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_PRIVATE_USE = UBLOCK_PRIVATE_USE_AREA,
11296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
11316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS =79, /*[F900]*/
11326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
11346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_ALPHABETIC_PRESENTATION_FORMS =80, /*[FB00]*/
11356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
11376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_ARABIC_PRESENTATION_FORMS_A =81, /*[FB50]*/
11386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
11406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_COMBINING_HALF_MARKS =82, /*[FE20]*/
11416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
11436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CJK_COMPATIBILITY_FORMS =83, /*[FE30]*/
11446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
11466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_SMALL_FORM_VARIANTS =84, /*[FE50]*/
11476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
11496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_ARABIC_PRESENTATION_FORMS_B =85, /*[FE70]*/
11506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
11526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_SPECIALS =86, /*[FFF0]*/
11536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
11556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS =87, /*[FF00]*/
11566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /* New blocks in Unicode 3.1 */
11586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
11606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_OLD_ITALIC = 88, /*[10300]*/
11616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
11626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_GOTHIC = 89, /*[10330]*/
11636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
11646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_DESERET = 90, /*[10400]*/
11656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
11666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_BYZANTINE_MUSICAL_SYMBOLS = 91, /*[1D000]*/
11676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
11686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_MUSICAL_SYMBOLS = 92, /*[1D100]*/
11696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
11706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS = 93, /*[1D400]*/
11716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
11726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B  = 94, /*[20000]*/
11736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
11746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT = 95, /*[2F800]*/
11756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
11766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_TAGS = 96, /*[E0000]*/
11776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /* New blocks in Unicode 3.2 */
11796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
11806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.0  */
11816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CYRILLIC_SUPPLEMENT = 97, /*[0500]*/
11826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /**
11836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Unicode 4.0.1 renames the "Cyrillic Supplementary" block to "Cyrillic Supplement".
11846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @stable ICU 2.2
11856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
11866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CYRILLIC_SUPPLEMENTARY = UBLOCK_CYRILLIC_SUPPLEMENT,
11876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.2 */
11886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_TAGALOG = 98, /*[1700]*/
11896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.2 */
11906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_HANUNOO = 99, /*[1720]*/
11916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.2 */
11926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_BUHID = 100, /*[1740]*/
11936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.2 */
11946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_TAGBANWA = 101, /*[1760]*/
11956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.2 */
11966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A = 102, /*[27C0]*/
11976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.2 */
11986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_SUPPLEMENTAL_ARROWS_A = 103, /*[27F0]*/
11996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.2 */
12006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_SUPPLEMENTAL_ARROWS_B = 104, /*[2900]*/
12016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.2 */
12026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = 105, /*[2980]*/
12036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.2 */
12046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_SUPPLEMENTAL_MATHEMATICAL_OPERATORS = 106, /*[2A00]*/
12056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.2 */
12066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_KATAKANA_PHONETIC_EXTENSIONS = 107, /*[31F0]*/
12076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.2 */
12086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_VARIATION_SELECTORS = 108, /*[FE00]*/
12096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.2 */
12106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_A = 109, /*[F0000]*/
12116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.2 */
12126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_B = 110, /*[100000]*/
12136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
12146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /* New blocks in Unicode 4 */
12156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
12166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.6 */
12176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_LIMBU = 111, /*[1900]*/
12186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.6 */
12196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_TAI_LE = 112, /*[1950]*/
12206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.6 */
12216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_KHMER_SYMBOLS = 113, /*[19E0]*/
12226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.6 */
12236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_PHONETIC_EXTENSIONS = 114, /*[1D00]*/
12246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.6 */
12256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS = 115, /*[2B00]*/
12266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.6 */
12276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_YIJING_HEXAGRAM_SYMBOLS = 116, /*[4DC0]*/
12286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.6 */
12296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_LINEAR_B_SYLLABARY = 117, /*[10000]*/
12306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.6 */
12316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_LINEAR_B_IDEOGRAMS = 118, /*[10080]*/
12326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.6 */
12336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_AEGEAN_NUMBERS = 119, /*[10100]*/
12346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.6 */
12356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_UGARITIC = 120, /*[10380]*/
12366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.6 */
12376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_SHAVIAN = 121, /*[10450]*/
12386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.6 */
12396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_OSMANYA = 122, /*[10480]*/
12406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.6 */
12416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CYPRIOT_SYLLABARY = 123, /*[10800]*/
12426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.6 */
12436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_TAI_XUAN_JING_SYMBOLS = 124, /*[1D300]*/
12446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.6 */
12456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_VARIATION_SELECTORS_SUPPLEMENT = 125, /*[E0100]*/
12466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
12476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /* New blocks in Unicode 4.1 */
12486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
12496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.4 */
12506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_ANCIENT_GREEK_MUSICAL_NOTATION = 126, /*[1D200]*/
12516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.4 */
12526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_ANCIENT_GREEK_NUMBERS = 127, /*[10140]*/
12536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.4 */
12546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_ARABIC_SUPPLEMENT = 128, /*[0750]*/
12556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.4 */
12566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_BUGINESE = 129, /*[1A00]*/
12576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.4 */
12586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CJK_STROKES = 130, /*[31C0]*/
12596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.4 */
12606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT = 131, /*[1DC0]*/
12616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.4 */
12626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_COPTIC = 132, /*[2C80]*/
12636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.4 */
12646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_ETHIOPIC_EXTENDED = 133, /*[2D80]*/
12656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.4 */
12666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_ETHIOPIC_SUPPLEMENT = 134, /*[1380]*/
12676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.4 */
12686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_GEORGIAN_SUPPLEMENT = 135, /*[2D00]*/
12696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.4 */
12706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_GLAGOLITIC = 136, /*[2C00]*/
12716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.4 */
12726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_KHAROSHTHI = 137, /*[10A00]*/
12736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.4 */
12746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_MODIFIER_TONE_LETTERS = 138, /*[A700]*/
12756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.4 */
12766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_NEW_TAI_LUE = 139, /*[1980]*/
12776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.4 */
12786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_OLD_PERSIAN = 140, /*[103A0]*/
12796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.4 */
12806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_PHONETIC_EXTENSIONS_SUPPLEMENT = 141, /*[1D80]*/
12816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.4 */
12826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_SUPPLEMENTAL_PUNCTUATION = 142, /*[2E00]*/
12836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.4 */
12846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_SYLOTI_NAGRI = 143, /*[A800]*/
12856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.4 */
12866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_TIFINAGH = 144, /*[2D30]*/
12876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.4 */
12886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_VERTICAL_FORMS = 145, /*[FE10]*/
12896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
12906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /* New blocks in Unicode 5.0 */
12916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
12926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.6 */
12936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_NKO = 146, /*[07C0]*/
12946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.6 */
12956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_BALINESE = 147, /*[1B00]*/
12966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.6 */
12976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_LATIN_EXTENDED_C = 148, /*[2C60]*/
12986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.6 */
12996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_LATIN_EXTENDED_D = 149, /*[A720]*/
13006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.6 */
13016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_PHAGS_PA = 150, /*[A840]*/
13026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.6 */
13036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_PHOENICIAN = 151, /*[10900]*/
13046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.6 */
13056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CUNEIFORM = 152, /*[12000]*/
13066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.6 */
13076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CUNEIFORM_NUMBERS_AND_PUNCTUATION = 153, /*[12400]*/
13086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 3.6 */
13096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_COUNTING_ROD_NUMERALS = 154, /*[1D360]*/
13106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
13116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /* New blocks in Unicode 5.1 */
13126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
13136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.0 */
13146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_SUNDANESE = 155, /*[1B80]*/
13156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.0 */
13166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_LEPCHA = 156, /*[1C00]*/
13176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.0 */
13186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_OL_CHIKI = 157, /*[1C50]*/
13196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.0 */
13206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CYRILLIC_EXTENDED_A = 158, /*[2DE0]*/
13216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.0 */
13226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_VAI = 159, /*[A500]*/
13236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.0 */
13246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CYRILLIC_EXTENDED_B = 160, /*[A640]*/
13256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.0 */
13266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_SAURASHTRA = 161, /*[A880]*/
13276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.0 */
13286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_KAYAH_LI = 162, /*[A900]*/
13296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.0 */
13306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_REJANG = 163, /*[A930]*/
13316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.0 */
13326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CHAM = 164, /*[AA00]*/
13336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.0 */
13346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_ANCIENT_SYMBOLS = 165, /*[10190]*/
13356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.0 */
13366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_PHAISTOS_DISC = 166, /*[101D0]*/
13376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.0 */
13386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_LYCIAN = 167, /*[10280]*/
13396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.0 */
13406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CARIAN = 168, /*[102A0]*/
13416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.0 */
13426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_LYDIAN = 169, /*[10920]*/
13436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.0 */
13446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_MAHJONG_TILES = 170, /*[1F000]*/
13456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.0 */
13466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_DOMINO_TILES = 171, /*[1F030]*/
13476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
13486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /* New blocks in Unicode 5.2 */
13496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
13506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
13516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_SAMARITAN = 172, /*[0800]*/
13526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
13536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED = 173, /*[18B0]*/
13546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
13556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_TAI_THAM = 174, /*[1A20]*/
13566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
13576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_VEDIC_EXTENSIONS = 175, /*[1CD0]*/
13586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
13596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_LISU = 176, /*[A4D0]*/
13606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
13616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_BAMUM = 177, /*[A6A0]*/
13626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
13636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_COMMON_INDIC_NUMBER_FORMS = 178, /*[A830]*/
13646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
13656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_DEVANAGARI_EXTENDED = 179, /*[A8E0]*/
13666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
13676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_HANGUL_JAMO_EXTENDED_A = 180, /*[A960]*/
13686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
13696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_JAVANESE = 181, /*[A980]*/
13706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
13716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_MYANMAR_EXTENDED_A = 182, /*[AA60]*/
13726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
13736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_TAI_VIET = 183, /*[AA80]*/
13746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
13756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_MEETEI_MAYEK = 184, /*[ABC0]*/
13766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
13776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_HANGUL_JAMO_EXTENDED_B = 185, /*[D7B0]*/
13786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
13796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_IMPERIAL_ARAMAIC = 186, /*[10840]*/
13806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
13816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_OLD_SOUTH_ARABIAN = 187, /*[10A60]*/
13826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
13836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_AVESTAN = 188, /*[10B00]*/
13846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
13856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_INSCRIPTIONAL_PARTHIAN = 189, /*[10B40]*/
13866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
13876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_INSCRIPTIONAL_PAHLAVI = 190, /*[10B60]*/
13886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
13896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_OLD_TURKIC = 191, /*[10C00]*/
13906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
13916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_RUMI_NUMERAL_SYMBOLS = 192, /*[10E60]*/
13926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
13936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_KAITHI = 193, /*[11080]*/
13946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
13956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_EGYPTIAN_HIEROGLYPHS = 194, /*[13000]*/
13966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
13976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_ENCLOSED_ALPHANUMERIC_SUPPLEMENT = 195, /*[1F100]*/
13986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
13996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT = 196, /*[1F200]*/
14006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.4 */
14016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C = 197, /*[2A700]*/
14026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
14036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /* New blocks in Unicode 6.0 */
14046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
14056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.6 */
14066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_MANDAIC = 198, /*[0840]*/
14076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.6 */
14086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_BATAK = 199, /*[1BC0]*/
14096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.6 */
14106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_ETHIOPIC_EXTENDED_A = 200, /*[AB00]*/
14116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.6 */
14126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_BRAHMI = 201, /*[11000]*/
14136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.6 */
14146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_BAMUM_SUPPLEMENT = 202, /*[16800]*/
14156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.6 */
14166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_KANA_SUPPLEMENT = 203, /*[1B000]*/
14176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.6 */
14186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_PLAYING_CARDS = 204, /*[1F0A0]*/
14196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.6 */
14206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS = 205, /*[1F300]*/
14216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.6 */
14226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_EMOTICONS = 206, /*[1F600]*/
14236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.6 */
14246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_TRANSPORT_AND_MAP_SYMBOLS = 207, /*[1F680]*/
14256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.6 */
14266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_ALCHEMICAL_SYMBOLS = 208, /*[1F700]*/
14276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 4.6 */
14286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D = 209, /*[2B740]*/
14296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
14306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /* New blocks in Unicode 6.1 */
14316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
14326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 49 */
14336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_ARABIC_EXTENDED_A = 210, /*[08A0]*/
14346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 49 */
14356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS = 211, /*[1EE00]*/
14366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 49 */
14376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_CHAKMA = 212, /*[11100]*/
14386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 49 */
14396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_MEETEI_MAYEK_EXTENSIONS = 213, /*[AAE0]*/
14406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 49 */
14416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_MEROITIC_CURSIVE = 214, /*[109A0]*/
14426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 49 */
14436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_MEROITIC_HIEROGLYPHS = 215, /*[10980]*/
14446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 49 */
14456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_MIAO = 216, /*[16F00]*/
14466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 49 */
14476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_SHARADA = 217, /*[11180]*/
14486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 49 */
14496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_SORA_SOMPENG = 218, /*[110D0]*/
14506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 49 */
14516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_SUNDANESE_SUPPLEMENT = 219, /*[1CC0]*/
14526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 49 */
14536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_TAKRI = 220, /*[11680]*/
14546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
14556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
14566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_COUNT = 221,
14576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
14586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
14596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    UBLOCK_INVALID_CODE=-1
14606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
14616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
14626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** @stable ICU 2.0 */
14636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef enum UBlockCode UBlockCode;
14646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
14656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
14666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * East Asian Width constants.
14676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
14686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_EAST_ASIAN_WIDTH
14696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_getIntPropertyValue
14706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.2
14716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
14726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef enum UEastAsianWidth {
14736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /*
14746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Note: UEastAsianWidth constants are parsed by preparseucd.py.
14756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * It matches lines like
14766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *     U_EA_<Unicode East_Asian_Width value name>
14776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
14786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
14796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_EA_NEUTRAL,   /*[N]*/
14806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_EA_AMBIGUOUS, /*[A]*/
14816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_EA_HALFWIDTH, /*[H]*/
14826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_EA_FULLWIDTH, /*[F]*/
14836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_EA_NARROW,    /*[Na]*/
14846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_EA_WIDE,      /*[W]*/
14856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_EA_COUNT
14866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org} UEastAsianWidth;
14876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
14886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
14896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Selector constants for u_charName().
14906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * u_charName() returns the "modern" name of a
14916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Unicode character; or the name that was defined in
14926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Unicode version 1.0, before the Unicode standard merged
14936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * with ISO-10646; or an "extended" name that gives each
14946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Unicode code point a unique name.
14956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
14966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_charName
14976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
14986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
14996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef enum UCharNameChoice {
15006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Unicode character name (Name property). @stable ICU 2.0 */
15016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_UNICODE_CHAR_NAME,
15026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef U_HIDE_DEPRECATED_API
15036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /**
15046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * The Unicode_1_Name property value which is of little practical value.
15056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Beginning with ICU 49, ICU APIs return an empty string for this name choice.
15066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * @deprecated ICU 49
15076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
15086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_UNICODE_10_CHAR_NAME,
15096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif  /* U_HIDE_DEPRECATED_API */
15106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Standard or synthetic character name. @stable ICU 2.0 */
15116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_EXTENDED_CHAR_NAME = U_UNICODE_CHAR_NAME+2,
15126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Corrected name from NameAliases.txt. @stable ICU 4.4 */
15136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_CHAR_NAME_ALIAS,
15146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** @stable ICU 2.0 */
15156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_CHAR_NAME_CHOICE_COUNT
15166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org} UCharNameChoice;
15176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
15186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
15196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Selector constants for u_getPropertyName() and
15206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * u_getPropertyValueName().  These selectors are used to choose which
15216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * name is returned for a given property or value.  All properties and
15226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * values have a long name.  Most have a short name, but some do not.
15236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Unicode allows for additional names, beyond the long and short
15246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * name, which would be indicated by U_LONG_PROPERTY_NAME + i, where
15256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * i=1, 2,...
15266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
15276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_getPropertyName()
15286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_getPropertyValueName()
15296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.4
15306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
15316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef enum UPropertyNameChoice {
15326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_SHORT_PROPERTY_NAME,
15336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LONG_PROPERTY_NAME,
15346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_PROPERTY_NAME_CHOICE_COUNT
15356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org} UPropertyNameChoice;
15366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
15376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
15386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Decomposition Type constants.
15396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
15406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_DECOMPOSITION_TYPE
15416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.2
15426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
15436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef enum UDecompositionType {
15446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /*
15456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Note: UDecompositionType constants are parsed by preparseucd.py.
15466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * It matches lines like
15476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *     U_DT_<Unicode Decomposition_Type value name>
15486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
15496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
15506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_DT_NONE,              /*[none]*/
15516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_DT_CANONICAL,         /*[can]*/
15526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_DT_COMPAT,            /*[com]*/
15536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_DT_CIRCLE,            /*[enc]*/
15546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_DT_FINAL,             /*[fin]*/
15556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_DT_FONT,              /*[font]*/
15566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_DT_FRACTION,          /*[fra]*/
15576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_DT_INITIAL,           /*[init]*/
15586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_DT_ISOLATED,          /*[iso]*/
15596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_DT_MEDIAL,            /*[med]*/
15606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_DT_NARROW,            /*[nar]*/
15616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_DT_NOBREAK,           /*[nb]*/
15626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_DT_SMALL,             /*[sml]*/
15636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_DT_SQUARE,            /*[sqr]*/
15646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_DT_SUB,               /*[sub]*/
15656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_DT_SUPER,             /*[sup]*/
15666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_DT_VERTICAL,          /*[vert]*/
15676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_DT_WIDE,              /*[wide]*/
15686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_DT_COUNT /* 18 */
15696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org} UDecompositionType;
15706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
15716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
15726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Joining Type constants.
15736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
15746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_JOINING_TYPE
15756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.2
15766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
15776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef enum UJoiningType {
15786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /*
15796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Note: UJoiningType constants are parsed by preparseucd.py.
15806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * It matches lines like
15816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *     U_JT_<Unicode Joining_Type value name>
15826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
15836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
15846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JT_NON_JOINING,       /*[U]*/
15856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JT_JOIN_CAUSING,      /*[C]*/
15866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JT_DUAL_JOINING,      /*[D]*/
15876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JT_LEFT_JOINING,      /*[L]*/
15886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JT_RIGHT_JOINING,     /*[R]*/
15896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JT_TRANSPARENT,       /*[T]*/
15906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JT_COUNT /* 6 */
15916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org} UJoiningType;
15926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
15936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
15946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Joining Group constants.
15956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
15966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_JOINING_GROUP
15976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.2
15986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
15996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef enum UJoiningGroup {
16006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /*
16016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Note: UJoiningGroup constants are parsed by preparseucd.py.
16026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * It matches lines like
16036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *     U_JG_<Unicode Joining_Group value name>
16046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
16056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
16066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_NO_JOINING_GROUP,
16076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_AIN,
16086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_ALAPH,
16096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_ALEF,
16106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_BEH,
16116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_BETH,
16126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_DAL,
16136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_DALATH_RISH,
16146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_E,
16156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_FEH,
16166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_FINAL_SEMKATH,
16176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_GAF,
16186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_GAMAL,
16196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_HAH,
16206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_TEH_MARBUTA_GOAL,  /**< @stable ICU 4.6 */
16216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_HAMZA_ON_HEH_GOAL=U_JG_TEH_MARBUTA_GOAL,
16226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_HE,
16236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_HEH,
16246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_HEH_GOAL,
16256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_HETH,
16266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_KAF,
16276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_KAPH,
16286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_KNOTTED_HEH,
16296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_LAM,
16306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_LAMADH,
16316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_MEEM,
16326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_MIM,
16336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_NOON,
16346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_NUN,
16356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_PE,
16366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_QAF,
16376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_QAPH,
16386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_REH,
16396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_REVERSED_PE,
16406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_SAD,
16416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_SADHE,
16426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_SEEN,
16436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_SEMKATH,
16446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_SHIN,
16456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_SWASH_KAF,
16466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_SYRIAC_WAW,
16476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_TAH,
16486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_TAW,
16496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_TEH_MARBUTA,
16506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_TETH,
16516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_WAW,
16526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_YEH,
16536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_YEH_BARREE,
16546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_YEH_WITH_TAIL,
16556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_YUDH,
16566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_YUDH_HE,
16576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_ZAIN,
16586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_FE,        /**< @stable ICU 2.6 */
16596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_KHAPH,     /**< @stable ICU 2.6 */
16606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_ZHAIN,     /**< @stable ICU 2.6 */
16616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_BURUSHASKI_YEH_BARREE, /**< @stable ICU 4.0 */
16626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_FARSI_YEH, /**< @stable ICU 4.4 */
16636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_NYA,       /**< @stable ICU 4.4 */
16646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_ROHINGYA_YEH,  /**< @stable ICU 49 */
16656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_JG_COUNT
16666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org} UJoiningGroup;
16676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
16686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
16696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Grapheme Cluster Break constants.
16706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
16716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_GRAPHEME_CLUSTER_BREAK
16726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 3.4
16736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
16746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef enum UGraphemeClusterBreak {
16756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /*
16766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Note: UGraphemeClusterBreak constants are parsed by preparseucd.py.
16776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * It matches lines like
16786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *     U_GCB_<Unicode Grapheme_Cluster_Break value name>
16796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
16806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
16816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_GCB_OTHER = 0,            /*[XX]*/
16826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_GCB_CONTROL = 1,          /*[CN]*/
16836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_GCB_CR = 2,               /*[CR]*/
16846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_GCB_EXTEND = 3,           /*[EX]*/
16856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_GCB_L = 4,                /*[L]*/
16866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_GCB_LF = 5,               /*[LF]*/
16876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_GCB_LV = 6,               /*[LV]*/
16886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_GCB_LVT = 7,              /*[LVT]*/
16896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_GCB_T = 8,                /*[T]*/
16906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_GCB_V = 9,                /*[V]*/
16916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_GCB_SPACING_MARK = 10,    /*[SM]*/ /* from here on: new in Unicode 5.1/ICU 4.0 */
16926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_GCB_PREPEND = 11,         /*[PP]*/
16936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_GCB_REGIONAL_INDICATOR = 12,  /*[RI]*/ /* new in Unicode 6.2/ICU 50 */
16946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_GCB_COUNT = 13
16956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org} UGraphemeClusterBreak;
16966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
16976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
16986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Word Break constants.
16996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (UWordBreak is a pre-existing enum type in ubrk.h for word break status tags.)
17006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
17016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_WORD_BREAK
17026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 3.4
17036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
17046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef enum UWordBreakValues {
17056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /*
17066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Note: UWordBreakValues constants are parsed by preparseucd.py.
17076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * It matches lines like
17086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *     U_WB_<Unicode Word_Break value name>
17096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
17106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
17116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_WB_OTHER = 0,             /*[XX]*/
17126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_WB_ALETTER = 1,           /*[LE]*/
17136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_WB_FORMAT = 2,            /*[FO]*/
17146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_WB_KATAKANA = 3,          /*[KA]*/
17156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_WB_MIDLETTER = 4,         /*[ML]*/
17166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_WB_MIDNUM = 5,            /*[MN]*/
17176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_WB_NUMERIC = 6,           /*[NU]*/
17186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_WB_EXTENDNUMLET = 7,      /*[EX]*/
17196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_WB_CR = 8,                /*[CR]*/ /* from here on: new in Unicode 5.1/ICU 4.0 */
17206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_WB_EXTEND = 9,            /*[Extend]*/
17216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_WB_LF = 10,               /*[LF]*/
17226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_WB_MIDNUMLET =11,         /*[MB]*/
17236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_WB_NEWLINE =12,           /*[NL]*/
17246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_WB_REGIONAL_INDICATOR = 13,   /*[RI]*/ /* new in Unicode 6.2/ICU 50 */
17256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_WB_HEBREW_LETTER = 14,    /*[HL]*/ /* from here on: new in Unicode 6.3/ICU 52 */
17266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_WB_SINGLE_QUOTE = 15,     /*[SQ]*/
17276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_WB_DOUBLE_QUOTE = 16,     /*[DQ]*/
17286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_WB_COUNT = 17
17296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org} UWordBreakValues;
17306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
17316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
17326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Sentence Break constants.
17336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
17346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_SENTENCE_BREAK
17356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 3.4
17366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
17376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef enum USentenceBreak {
17386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /*
17396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Note: USentenceBreak constants are parsed by preparseucd.py.
17406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * It matches lines like
17416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *     U_SB_<Unicode Sentence_Break value name>
17426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
17436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
17446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_SB_OTHER = 0,             /*[XX]*/
17456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_SB_ATERM = 1,             /*[AT]*/
17466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_SB_CLOSE = 2,             /*[CL]*/
17476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_SB_FORMAT = 3,            /*[FO]*/
17486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_SB_LOWER = 4,             /*[LO]*/
17496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_SB_NUMERIC = 5,           /*[NU]*/
17506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_SB_OLETTER = 6,           /*[LE]*/
17516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_SB_SEP = 7,               /*[SE]*/
17526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_SB_SP = 8,                /*[SP]*/
17536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_SB_STERM = 9,             /*[ST]*/
17546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_SB_UPPER = 10,            /*[UP]*/
17556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_SB_CR = 11,               /*[CR]*/ /* from here on: new in Unicode 5.1/ICU 4.0 */
17566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_SB_EXTEND = 12,           /*[EX]*/
17576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_SB_LF = 13,               /*[LF]*/
17586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_SB_SCONTINUE = 14,        /*[SC]*/
17596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_SB_COUNT = 15
17606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org} USentenceBreak;
17616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
17626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
17636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Line Break constants.
17646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
17656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_LINE_BREAK
17666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.2
17676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
17686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef enum ULineBreak {
17696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /*
17706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Note: ULineBreak constants are parsed by preparseucd.py.
17716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * It matches lines like
17726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *     U_LB_<Unicode Line_Break value name>
17736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
17746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
17756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_UNKNOWN = 0,           /*[XX]*/
17766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_AMBIGUOUS = 1,         /*[AI]*/
17776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_ALPHABETIC = 2,        /*[AL]*/
17786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_BREAK_BOTH = 3,        /*[B2]*/
17796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_BREAK_AFTER = 4,       /*[BA]*/
17806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_BREAK_BEFORE = 5,      /*[BB]*/
17816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_MANDATORY_BREAK = 6,   /*[BK]*/
17826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_CONTINGENT_BREAK = 7,  /*[CB]*/
17836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_CLOSE_PUNCTUATION = 8, /*[CL]*/
17846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_COMBINING_MARK = 9,    /*[CM]*/
17856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_CARRIAGE_RETURN = 10,   /*[CR]*/
17866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_EXCLAMATION = 11,       /*[EX]*/
17876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_GLUE = 12,              /*[GL]*/
17886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_HYPHEN = 13,            /*[HY]*/
17896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_IDEOGRAPHIC = 14,       /*[ID]*/
17906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /** Renamed from the misspelled "inseperable" in Unicode 4.0.1/ICU 3.0 @stable ICU 3.0 */
17916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_INSEPARABLE = 15,       /*[IN]*/
17926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_INSEPERABLE = U_LB_INSEPARABLE,
17936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_INFIX_NUMERIC = 16,     /*[IS]*/
17946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_LINE_FEED = 17,         /*[LF]*/
17956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_NONSTARTER = 18,        /*[NS]*/
17966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_NUMERIC = 19,           /*[NU]*/
17976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_OPEN_PUNCTUATION = 20,  /*[OP]*/
17986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_POSTFIX_NUMERIC = 21,   /*[PO]*/
17996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_PREFIX_NUMERIC = 22,    /*[PR]*/
18006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_QUOTATION = 23,         /*[QU]*/
18016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_COMPLEX_CONTEXT = 24,   /*[SA]*/
18026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_SURROGATE = 25,         /*[SG]*/
18036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_SPACE = 26,             /*[SP]*/
18046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_BREAK_SYMBOLS = 27,     /*[SY]*/
18056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_ZWSPACE = 28,           /*[ZW]*/
18066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_NEXT_LINE = 29,         /*[NL]*/ /* from here on: new in Unicode 4/ICU 2.6 */
18076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_WORD_JOINER = 30,       /*[WJ]*/
18086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_H2 = 31,                /*[H2]*/ /* from here on: new in Unicode 4.1/ICU 3.4 */
18096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_H3 = 32,                /*[H3]*/
18106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_JL = 33,                /*[JL]*/
18116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_JT = 34,                /*[JT]*/
18126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_JV = 35,                /*[JV]*/
18136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_CLOSE_PARENTHESIS = 36, /*[CP]*/ /* new in Unicode 5.2/ICU 4.4 */
18146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_CONDITIONAL_JAPANESE_STARTER = 37,/*[CJ]*/ /* new in Unicode 6.1/ICU 49 */
18156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_HEBREW_LETTER = 38,     /*[HL]*/ /* new in Unicode 6.1/ICU 49 */
18166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_REGIONAL_INDICATOR = 39,/*[RI]*/ /* new in Unicode 6.2/ICU 50 */
18176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_LB_COUNT = 40
18186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org} ULineBreak;
18196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
18206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
18216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Numeric Type constants.
18226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
18236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_NUMERIC_TYPE
18246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.2
18256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
18266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef enum UNumericType {
18276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /*
18286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Note: UNumericType constants are parsed by preparseucd.py.
18296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * It matches lines like
18306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *     U_NT_<Unicode Numeric_Type value name>
18316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
18326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
18336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_NT_NONE,              /*[None]*/
18346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_NT_DECIMAL,           /*[de]*/
18356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_NT_DIGIT,             /*[di]*/
18366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_NT_NUMERIC,           /*[nu]*/
18376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_NT_COUNT
18386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org} UNumericType;
18396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
18406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
18416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Hangul Syllable Type constants.
18426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
18436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_HANGUL_SYLLABLE_TYPE
18446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.6
18456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
18466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef enum UHangulSyllableType {
18476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /*
18486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Note: UHangulSyllableType constants are parsed by preparseucd.py.
18496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * It matches lines like
18506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     *     U_HST_<Unicode Hangul_Syllable_Type value name>
18516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     */
18526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
18536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_HST_NOT_APPLICABLE,   /*[NA]*/
18546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_HST_LEADING_JAMO,     /*[L]*/
18556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_HST_VOWEL_JAMO,       /*[V]*/
18566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_HST_TRAILING_JAMO,    /*[T]*/
18576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_HST_LV_SYLLABLE,      /*[LV]*/
18586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_HST_LVT_SYLLABLE,     /*[LVT]*/
18596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    U_HST_COUNT
18606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org} UHangulSyllableType;
18616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
18626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
18636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Check a binary Unicode property for a code point.
18646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
18656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Unicode, especially in version 3.2, defines many more properties than the
18666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * original set in UnicodeData.txt.
18676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
18686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The properties APIs are intended to reflect Unicode properties as defined
18696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * in the Unicode Character Database (UCD) and Unicode Technical Reports (UTR).
18706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * For details about the properties see http://www.unicode.org/ucd/ .
18716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * For names of Unicode properties see the UCD file PropertyAliases.txt.
18726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
18736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Important: If ICU is built with UCD files from Unicode versions below 3.2,
18746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * then properties marked with "new in Unicode 3.2" are not or not fully available.
18756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
18766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c Code point to test.
18776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param which UProperty selector constant, identifies which binary property to check.
18786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *        Must be UCHAR_BINARY_START<=which<UCHAR_BINARY_LIMIT.
18796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE or FALSE according to the binary Unicode property value for c.
18806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         Also FALSE if 'which' is out of bounds or if the Unicode version
18816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         does not have data for the property at all, or not for this code point.
18826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
18836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UProperty
18846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_getIntPropertyValue
18856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_getUnicodeVersion
18866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.1
18876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
18886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
18896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_hasBinaryProperty(UChar32 c, UProperty which);
18906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
18916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
18926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Check if a code point has the Alphabetic Unicode property.
18936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as u_hasBinaryProperty(c, UCHAR_ALPHABETIC).
18946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This is different from u_isalpha!
18956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c Code point to test
18966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return true if the code point has the Alphabetic Unicode property, false otherwise
18976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
18986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_ALPHABETIC
18996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isalpha
19006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_hasBinaryProperty
19016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.1
19026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
19036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
19046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_isUAlphabetic(UChar32 c);
19056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
19066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
19076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Check if a code point has the Lowercase Unicode property.
19086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as u_hasBinaryProperty(c, UCHAR_LOWERCASE).
19096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This is different from u_islower!
19106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c Code point to test
19116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return true if the code point has the Lowercase Unicode property, false otherwise
19126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
19136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_LOWERCASE
19146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_islower
19156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_hasBinaryProperty
19166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.1
19176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
19186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
19196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_isULowercase(UChar32 c);
19206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
19216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
19226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Check if a code point has the Uppercase Unicode property.
19236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as u_hasBinaryProperty(c, UCHAR_UPPERCASE).
19246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This is different from u_isupper!
19256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c Code point to test
19266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return true if the code point has the Uppercase Unicode property, false otherwise
19276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
19286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_UPPERCASE
19296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isupper
19306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_hasBinaryProperty
19316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.1
19326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
19336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
19346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_isUUppercase(UChar32 c);
19356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
19366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
19376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Check if a code point has the White_Space Unicode property.
19386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as u_hasBinaryProperty(c, UCHAR_WHITE_SPACE).
19396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This is different from both u_isspace and u_isWhitespace!
19406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
19416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Note: There are several ICU whitespace functions; please see the uchar.h
19426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * file documentation for a detailed comparison.
19436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
19446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c Code point to test
19456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return true if the code point has the White_Space Unicode property, false otherwise.
19466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
19476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_WHITE_SPACE
19486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isWhitespace
19496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isspace
19506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isJavaSpaceChar
19516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_hasBinaryProperty
19526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.1
19536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
19546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
19556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_isUWhiteSpace(UChar32 c);
19566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
19576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
19586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Get the property value for an enumerated or integer Unicode property for a code point.
19596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Also returns binary and mask property values.
19606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
19616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Unicode, especially in version 3.2, defines many more properties than the
19626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * original set in UnicodeData.txt.
19636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
19646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The properties APIs are intended to reflect Unicode properties as defined
19656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * in the Unicode Character Database (UCD) and Unicode Technical Reports (UTR).
19666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * For details about the properties see http://www.unicode.org/ .
19676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * For names of Unicode properties see the UCD file PropertyAliases.txt.
19686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
19696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Sample usage:
19706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * UEastAsianWidth ea=(UEastAsianWidth)u_getIntPropertyValue(c, UCHAR_EAST_ASIAN_WIDTH);
19716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * UBool b=(UBool)u_getIntPropertyValue(c, UCHAR_IDEOGRAPHIC);
19726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
19736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c Code point to test.
19746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param which UProperty selector constant, identifies which property to check.
19756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *        Must be UCHAR_BINARY_START<=which<UCHAR_BINARY_LIMIT
19766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *        or UCHAR_INT_START<=which<UCHAR_INT_LIMIT
19776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *        or UCHAR_MASK_START<=which<UCHAR_MASK_LIMIT.
19786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return Numeric value that is directly the property value or,
19796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         for enumerated properties, corresponds to the numeric value of the enumerated
19806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         constant of the respective property value enumeration type
19816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         (cast to enum type if necessary).
19826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         Returns 0 or 1 (for FALSE/TRUE) for binary Unicode properties.
19836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         Returns a bit-mask for mask properties.
19846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         Returns 0 if 'which' is out of bounds or if the Unicode version
19856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         does not have data for the property at all, or not for this code point.
19866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
19876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UProperty
19886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_hasBinaryProperty
19896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_getIntPropertyMinValue
19906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_getIntPropertyMaxValue
19916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_getUnicodeVersion
19926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.2
19936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
19946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE int32_t U_EXPORT2
19956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_getIntPropertyValue(UChar32 c, UProperty which);
19966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
19976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
19986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Get the minimum value for an enumerated/integer/binary Unicode property.
19996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Can be used together with u_getIntPropertyMaxValue
20006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * to allocate arrays of UnicodeSet or similar.
20016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
20026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param which UProperty selector constant, identifies which binary property to check.
20036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *        Must be UCHAR_BINARY_START<=which<UCHAR_BINARY_LIMIT
20046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *        or UCHAR_INT_START<=which<UCHAR_INT_LIMIT.
20056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return Minimum value returned by u_getIntPropertyValue for a Unicode property.
20066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         0 if the property selector is out of range.
20076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
20086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UProperty
20096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_hasBinaryProperty
20106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_getUnicodeVersion
20116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_getIntPropertyMaxValue
20126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_getIntPropertyValue
20136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.2
20146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
20156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE int32_t U_EXPORT2
20166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_getIntPropertyMinValue(UProperty which);
20176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
20186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
20196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Get the maximum value for an enumerated/integer/binary Unicode property.
20206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Can be used together with u_getIntPropertyMinValue
20216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * to allocate arrays of UnicodeSet or similar.
20226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
20236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Examples for min/max values (for Unicode 3.2):
20246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
20256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - UCHAR_BIDI_CLASS:    0/18 (U_LEFT_TO_RIGHT/U_BOUNDARY_NEUTRAL)
20266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - UCHAR_SCRIPT:        0/45 (USCRIPT_COMMON/USCRIPT_TAGBANWA)
20276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - UCHAR_IDEOGRAPHIC:   0/1  (FALSE/TRUE)
20286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
20296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * For undefined UProperty constant values, min/max values will be 0/-1.
20306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
20316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param which UProperty selector constant, identifies which binary property to check.
20326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *        Must be UCHAR_BINARY_START<=which<UCHAR_BINARY_LIMIT
20336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *        or UCHAR_INT_START<=which<UCHAR_INT_LIMIT.
20346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return Maximum value returned by u_getIntPropertyValue for a Unicode property.
20356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         <=0 if the property selector is out of range.
20366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
20376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UProperty
20386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_hasBinaryProperty
20396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_getUnicodeVersion
20406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_getIntPropertyMaxValue
20416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_getIntPropertyValue
20426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.2
20436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
20446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE int32_t U_EXPORT2
20456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_getIntPropertyMaxValue(UProperty which);
20466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
20476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
20486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Get the numeric value for a Unicode code point as defined in the
20496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Unicode Character Database.
20506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
20516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * A "double" return type is necessary because
20526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * some numeric values are fractions, negative, or too large for int32_t.
20536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
20546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * For characters without any numeric values in the Unicode Character Database,
20556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * this function will return U_NO_NUMERIC_VALUE.
20566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Note: This is different from the Unicode Standard which specifies NaN as the default value.
20576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (NaN is not available on all platforms.)
20586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
20596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Similar to java.lang.Character.getNumericValue(), but u_getNumericValue()
20606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * also supports negative values, large values, and fractions,
20616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * while Java's getNumericValue() returns values 10..35 for ASCII letters.
20626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
20636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c Code point to get the numeric value for.
20646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return Numeric value of c, or U_NO_NUMERIC_VALUE if none is defined.
20656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
20666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see U_NO_NUMERIC_VALUE
20676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.2
20686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
20696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE double U_EXPORT2
20706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_getNumericValue(UChar32 c);
20716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
20726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
20736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Special value that is returned by u_getNumericValue when
20746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * no numeric value is defined for a code point.
20756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
20766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_getNumericValue
20776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.2
20786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
20796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_NO_NUMERIC_VALUE ((double)-123456789.)
20806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
20816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
20826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Determines whether the specified code point has the general category "Ll"
20836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (lowercase letter).
20846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
20856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as java.lang.Character.isLowerCase().
20866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
20876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This misses some characters that are also lowercase but
20886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * have a different general category value.
20896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * In order to include those, use UCHAR_LOWERCASE.
20906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
20916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * In addition to being equivalent to a Java function, this also serves
20926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * as a C/POSIX migration function.
20936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * See the comments about C/POSIX character classification functions in the
20946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * documentation at the top of this header file.
20956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
20966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
20976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the code point is an Ll lowercase letter
20986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
20996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_LOWERCASE
21006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isupper
21016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_istitle
21026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
21036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
21046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
21056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_islower(UChar32 c);
21066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
21076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
21086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Determines whether the specified code point has the general category "Lu"
21096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (uppercase letter).
21106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
21116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as java.lang.Character.isUpperCase().
21126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
21136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This misses some characters that are also uppercase but
21146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * have a different general category value.
21156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * In order to include those, use UCHAR_UPPERCASE.
21166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
21176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * In addition to being equivalent to a Java function, this also serves
21186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * as a C/POSIX migration function.
21196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * See the comments about C/POSIX character classification functions in the
21206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * documentation at the top of this header file.
21216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
21226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
21236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the code point is an Lu uppercase letter
21246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
21256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_UPPERCASE
21266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_islower
21276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_istitle
21286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_tolower
21296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
21306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
21316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
21326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_isupper(UChar32 c);
21336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
21346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
21356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Determines whether the specified code point is a titlecase letter.
21366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * True for general category "Lt" (titlecase letter).
21376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
21386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as java.lang.Character.isTitleCase().
21396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
21406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
21416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the code point is an Lt titlecase letter
21426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
21436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isupper
21446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_islower
21456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_totitle
21466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
21476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
21486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
21496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_istitle(UChar32 c);
21506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
21516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
21526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Determines whether the specified code point is a digit character according to Java.
21536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * True for characters with general category "Nd" (decimal digit numbers).
21546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Beginning with Unicode 4, this is the same as
21556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * testing for the Numeric_Type of Decimal.
21566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
21576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as java.lang.Character.isDigit().
21586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
21596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * In addition to being equivalent to a Java function, this also serves
21606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * as a C/POSIX migration function.
21616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * See the comments about C/POSIX character classification functions in the
21626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * documentation at the top of this header file.
21636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
21646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
21656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the code point is a digit character according to Character.isDigit()
21666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
21676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
21686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
21696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
21706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_isdigit(UChar32 c);
21716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
21726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
21736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Determines whether the specified code point is a letter character.
21746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * True for general categories "L" (letters).
21756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
21766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as java.lang.Character.isLetter().
21776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
21786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * In addition to being equivalent to a Java function, this also serves
21796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * as a C/POSIX migration function.
21806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * See the comments about C/POSIX character classification functions in the
21816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * documentation at the top of this header file.
21826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
21836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
21846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the code point is a letter character
21856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
21866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isdigit
21876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isalnum
21886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
21896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
21906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
21916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_isalpha(UChar32 c);
21926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
21936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
21946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Determines whether the specified code point is an alphanumeric character
21956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (letter or digit) according to Java.
21966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * True for characters with general categories
21976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * "L" (letters) and "Nd" (decimal digit numbers).
21986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
21996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as java.lang.Character.isLetterOrDigit().
22006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
22016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * In addition to being equivalent to a Java function, this also serves
22026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * as a C/POSIX migration function.
22036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * See the comments about C/POSIX character classification functions in the
22046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * documentation at the top of this header file.
22056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
22066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
22076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the code point is an alphanumeric character according to Character.isLetterOrDigit()
22086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
22096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
22106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
22116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
22126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_isalnum(UChar32 c);
22136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
22146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
22156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Determines whether the specified code point is a hexadecimal digit.
22166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This is equivalent to u_digit(c, 16)>=0.
22176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * True for characters with general category "Nd" (decimal digit numbers)
22186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * as well as Latin letters a-f and A-F in both ASCII and Fullwidth ASCII.
22196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (That is, for letters with code points
22206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 0041..0046, 0061..0066, FF21..FF26, FF41..FF46.)
22216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
22226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * In order to narrow the definition of hexadecimal digits to only ASCII
22236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * characters, use (c<=0x7f && u_isxdigit(c)).
22246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
22256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This is a C/POSIX migration function.
22266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * See the comments about C/POSIX character classification functions in the
22276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * documentation at the top of this header file.
22286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
22296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
22306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the code point is a hexadecimal digit
22316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
22326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.6
22336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
22346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
22356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_isxdigit(UChar32 c);
22366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
22376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
22386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Determines whether the specified code point is a punctuation character.
22396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * True for characters with general categories "P" (punctuation).
22406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
22416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This is a C/POSIX migration function.
22426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * See the comments about C/POSIX character classification functions in the
22436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * documentation at the top of this header file.
22446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
22456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
22466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the code point is a punctuation character
22476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
22486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.6
22496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
22506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
22516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_ispunct(UChar32 c);
22526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
22536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
22546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Determines whether the specified code point is a "graphic" character
22556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (printable, excluding spaces).
22566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * TRUE for all characters except those with general categories
22576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * "Cc" (control codes), "Cf" (format controls), "Cs" (surrogates),
22586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * "Cn" (unassigned), and "Z" (separators).
22596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
22606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This is a C/POSIX migration function.
22616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * See the comments about C/POSIX character classification functions in the
22626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * documentation at the top of this header file.
22636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
22646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
22656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the code point is a "graphic" character
22666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
22676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.6
22686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
22696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
22706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_isgraph(UChar32 c);
22716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
22726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
22736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Determines whether the specified code point is a "blank" or "horizontal space",
22746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * a character that visibly separates words on a line.
22756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The following are equivalent definitions:
22766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
22776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * TRUE for Unicode White_Space characters except for "vertical space controls"
22786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * where "vertical space controls" are the following characters:
22796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * U+000A (LF) U+000B (VT) U+000C (FF) U+000D (CR) U+0085 (NEL) U+2028 (LS) U+2029 (PS)
22806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
22816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * same as
22826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
22836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * TRUE for U+0009 (TAB) and characters with general category "Zs" (space separators)
22846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * except Zero Width Space (ZWSP, U+200B).
22856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
22866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Note: There are several ICU whitespace functions; please see the uchar.h
22876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * file documentation for a detailed comparison.
22886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
22896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This is a C/POSIX migration function.
22906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * See the comments about C/POSIX character classification functions in the
22916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * documentation at the top of this header file.
22926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
22936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
22946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the code point is a "blank"
22956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
22966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.6
22976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
22986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
22996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_isblank(UChar32 c);
23006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
23016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
23026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Determines whether the specified code point is "defined",
23036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * which usually means that it is assigned a character.
23046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * True for general categories other than "Cn" (other, not assigned),
23056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * i.e., true for all code points mentioned in UnicodeData.txt.
23066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
23076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Note that non-character code points (e.g., U+FDD0) are not "defined"
23086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (they are Cn), but surrogate code points are "defined" (Cs).
23096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
23106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as java.lang.Character.isDefined().
23116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
23126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
23136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the code point is assigned a character
23146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
23156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isdigit
23166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isalpha
23176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isalnum
23186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isupper
23196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_islower
23206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_istitle
23216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
23226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
23236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
23246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_isdefined(UChar32 c);
23256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
23266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
23276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Determines if the specified character is a space character or not.
23286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
23296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Note: There are several ICU whitespace functions; please see the uchar.h
23306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * file documentation for a detailed comparison.
23316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
23326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This is a C/POSIX migration function.
23336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * See the comments about C/POSIX character classification functions in the
23346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * documentation at the top of this header file.
23356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
23366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c    the character to be tested
23376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return  true if the character is a space character; false otherwise.
23386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
23396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isJavaSpaceChar
23406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isWhitespace
23416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isUWhiteSpace
23426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
23436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
23446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
23456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_isspace(UChar32 c);
23466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
23476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
23486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Determine if the specified code point is a space character according to Java.
23496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * True for characters with general categories "Z" (separators),
23506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * which does not include control codes (e.g., TAB or Line Feed).
23516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
23526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as java.lang.Character.isSpaceChar().
23536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
23546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Note: There are several ICU whitespace functions; please see the uchar.h
23556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * file documentation for a detailed comparison.
23566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
23576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
23586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the code point is a space character according to Character.isSpaceChar()
23596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
23606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isspace
23616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isWhitespace
23626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isUWhiteSpace
23636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.6
23646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
23656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
23666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_isJavaSpaceChar(UChar32 c);
23676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
23686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
23696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Determines if the specified code point is a whitespace character according to Java/ICU.
23706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * A character is considered to be a Java whitespace character if and only
23716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * if it satisfies one of the following criteria:
23726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
23736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - It is a Unicode Separator character (categories "Z" = "Zs" or "Zl" or "Zp"), but is not
23746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *      also a non-breaking space (U+00A0 NBSP or U+2007 Figure Space or U+202F Narrow NBSP).
23756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - It is U+0009 HORIZONTAL TABULATION.
23766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - It is U+000A LINE FEED.
23776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - It is U+000B VERTICAL TABULATION.
23786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - It is U+000C FORM FEED.
23796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - It is U+000D CARRIAGE RETURN.
23806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - It is U+001C FILE SEPARATOR.
23816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - It is U+001D GROUP SEPARATOR.
23826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - It is U+001E RECORD SEPARATOR.
23836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - It is U+001F UNIT SEPARATOR.
23846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
23856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This API tries to sync with the semantics of Java's
23866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * java.lang.Character.isWhitespace(), but it may not return
23876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * the exact same results because of the Unicode version
23886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * difference.
23896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
23906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Note: Unicode 4.0.1 changed U+200B ZERO WIDTH SPACE from a Space Separator (Zs)
23916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * to a Format Control (Cf). Since then, isWhitespace(0x200b) returns false.
23926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * See http://www.unicode.org/versions/Unicode4.0.1/
23936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
23946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Note: There are several ICU whitespace functions; please see the uchar.h
23956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * file documentation for a detailed comparison.
23966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
23976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
23986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the code point is a whitespace character according to Java/ICU
23996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
24006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isspace
24016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isJavaSpaceChar
24026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isUWhiteSpace
24036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
24046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
24056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
24066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_isWhitespace(UChar32 c);
24076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
24086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
24096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Determines whether the specified code point is a control character
24106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (as defined by this function).
24116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * A control character is one of the following:
24126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - ISO 8-bit control character (U+0000..U+001f and U+007f..U+009f)
24136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - U_CONTROL_CHAR (Cc)
24146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - U_FORMAT_CHAR (Cf)
24156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - U_LINE_SEPARATOR (Zl)
24166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * - U_PARAGRAPH_SEPARATOR (Zp)
24176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
24186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This is a C/POSIX migration function.
24196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * See the comments about C/POSIX character classification functions in the
24206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * documentation at the top of this header file.
24216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
24226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
24236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the code point is a control character
24246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
24256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_DEFAULT_IGNORABLE_CODE_POINT
24266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isprint
24276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
24286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
24296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
24306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_iscntrl(UChar32 c);
24316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
24326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
24336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Determines whether the specified code point is an ISO control code.
24346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * True for U+0000..U+001f and U+007f..U+009f (general category "Cc").
24356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
24366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as java.lang.Character.isISOControl().
24376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
24386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
24396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the code point is an ISO control code
24406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
24416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_iscntrl
24426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.6
24436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
24446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
24456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_isISOControl(UChar32 c);
24466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
24476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
24486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Determines whether the specified code point is a printable character.
24496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * True for general categories <em>other</em> than "C" (controls).
24506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
24516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This is a C/POSIX migration function.
24526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * See the comments about C/POSIX character classification functions in the
24536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * documentation at the top of this header file.
24546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
24556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
24566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the code point is a printable character
24576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
24586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_DEFAULT_IGNORABLE_CODE_POINT
24596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_iscntrl
24606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
24616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
24626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
24636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_isprint(UChar32 c);
24646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
24656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
24666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Determines whether the specified code point is a base character.
24676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * True for general categories "L" (letters), "N" (numbers),
24686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * "Mc" (spacing combining marks), and "Me" (enclosing marks).
24696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
24706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Note that this is different from the Unicode definition in
24716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * chapter 3.5, conformance clause D13,
24726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * which defines base characters to be all characters (not Cn)
24736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * that do not graphically combine with preceding characters (M)
24746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * and that are neither control (Cc) or format (Cf) characters.
24756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
24766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
24776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the code point is a base character according to this function
24786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
24796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isalpha
24806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isdigit
24816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
24826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
24836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
24846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_isbase(UChar32 c);
24856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
24866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
24876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Returns the bidirectional category value for the code point,
24886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * which is used in the Unicode bidirectional algorithm
24896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (UAX #9 http://www.unicode.org/reports/tr9/).
24906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Note that some <em>unassigned</em> code points have bidi values
24916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * of R or AL because they are in blocks that are reserved
24926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * for Right-To-Left scripts.
24936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
24946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as java.lang.Character.getDirectionality()
24956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
24966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
24976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the bidirectional category (UCharDirection) value
24986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
24996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCharDirection
25006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
25016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
25026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UCharDirection U_EXPORT2
25036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_charDirection(UChar32 c);
25046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
25056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
25066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Determines whether the code point has the Bidi_Mirrored property.
25076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This property is set for characters that are commonly used in
25086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Right-To-Left contexts and need to be displayed with a "mirrored"
25096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * glyph.
25106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
25116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as java.lang.Character.isMirrored().
25126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as UCHAR_BIDI_MIRRORED
25136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
25146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
25156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the character has the Bidi_Mirrored property
25166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
25176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_BIDI_MIRRORED
25186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
25196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
25206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
25216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_isMirrored(UChar32 c);
25226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
25236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
25246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Maps the specified character to a "mirror-image" character.
25256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * For characters with the Bidi_Mirrored property, implementations
25266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * sometimes need a "poor man's" mapping to another Unicode
25276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * character (code point) such that the default glyph may serve
25286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * as the mirror-image of the default glyph of the specified
25296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * character. This is useful for text conversion to and from
25306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * codepages with visual order, and for displays without glyph
25316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * selection capabilities.
25326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
25336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be mapped
25346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return another Unicode code point that may serve as a mirror-image
25356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         substitute, or c itself if there is no such mapping or c
25366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         does not have the Bidi_Mirrored property
25376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
25386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_BIDI_MIRRORED
25396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isMirrored
25406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
25416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
25426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UChar32 U_EXPORT2
25436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_charMirror(UChar32 c);
25446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
25456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
25466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Maps the specified character to its paired bracket character.
25476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * For Bidi_Paired_Bracket_Type!=None, this is the same as u_charMirror().
25486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Otherwise c itself is returned.
25496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * See http://www.unicode.org/reports/tr9/
25506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
25516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be mapped
25526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the paired bracket code point,
25536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         or c itself if there is no such mapping
25546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         (Bidi_Paired_Bracket_Type=None)
25556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
25566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_BIDI_PAIRED_BRACKET
25576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_BIDI_PAIRED_BRACKET_TYPE
25586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_charMirror
25596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 52
25606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
25616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UChar32 U_EXPORT2
25626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_getBidiPairedBracket(UChar32 c);
25636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
25646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
25656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Returns the general category value for the code point.
25666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
25676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as java.lang.Character.getType().
25686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
25696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
25706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the general category (UCharCategory) value
25716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
25726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCharCategory
25736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
25746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
25756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE int8_t U_EXPORT2
25766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_charType(UChar32 c);
25776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
25786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
25796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Get a single-bit bit set for the general category of a character.
25806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This bit set can be compared bitwise with U_GC_SM_MASK, U_GC_L_MASK, etc.
25816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as U_MASK(u_charType(c)).
25826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
25836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
25846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return a single-bit mask corresponding to the general category (UCharCategory) value
25856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
25866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_charType
25876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCharCategory
25886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see U_GC_CN_MASK
25896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.1
25906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
25916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_GET_GC_MASK(c) U_MASK(u_charType(c))
25926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
25936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
25946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Callback from u_enumCharTypes(), is called for each contiguous range
25956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * of code points c (where start<=c<limit)
25966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * with the same Unicode general category ("character type").
25976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
25986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The callback function can stop the enumeration by returning FALSE.
25996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
26006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param context an opaque pointer, as passed into utrie_enum()
26016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param start the first code point in a contiguous range with value
26026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param limit one past the last code point in a contiguous range with value
26036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param type the general category for all code points in [start..limit[
26046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return FALSE to stop the enumeration
26056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
26066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.1
26076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCharCategory
26086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_enumCharTypes
26096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
26106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef UBool U_CALLCONV
26116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgUCharEnumTypeRange(const void *context, UChar32 start, UChar32 limit, UCharCategory type);
26126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
26136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
26146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Enumerate efficiently all code points with their Unicode general categories.
26156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
26166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This is useful for building data structures (e.g., UnicodeSet's),
26176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * for enumerating all assigned code points (type!=U_UNASSIGNED), etc.
26186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
26196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * For each contiguous range of code points with a given general category ("character type"),
26206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * the UCharEnumTypeRange function is called.
26216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Adjacent ranges have different types.
26226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The Unicode Standard guarantees that the numeric value of the type is 0..31.
26236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
26246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param enumRange a pointer to a function that is called for each contiguous range
26256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *                  of code points with the same general category
26266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param context an opaque pointer that is passed on to the callback function
26276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
26286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.1
26296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCharCategory
26306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCharEnumTypeRange
26316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
26326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE void U_EXPORT2
26336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_enumCharTypes(UCharEnumTypeRange *enumRange, const void *context);
26346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
26356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#if !UCONFIG_NO_NORMALIZATION
26366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
26376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
26386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Returns the combining class of the code point as specified in UnicodeData.txt.
26396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
26406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point of the character
26416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the combining class of the character
26426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
26436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
26446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE uint8_t U_EXPORT2
26456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_getCombiningClass(UChar32 c);
26466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
26476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
26486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
26496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
26506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Returns the decimal digit value of a decimal digit character.
26516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Such characters have the general category "Nd" (decimal digit numbers)
26526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * and a Numeric_Type of Decimal.
26536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
26546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Unlike ICU releases before 2.6, no digit values are returned for any
26556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Han characters because Han number characters are often used with a special
26566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Chinese-style number format (with characters for powers of 10 in between)
26576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * instead of in decimal-positional notation.
26586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Unicode 4 explicitly assigns Han number characters the Numeric_Type
26596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Numeric instead of Decimal.
26606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * See Jitterbug 1483 for more details.
26616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
26626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Use u_getIntPropertyValue(c, UCHAR_NUMERIC_TYPE) and u_getNumericValue()
26636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * for complete numeric Unicode properties.
26646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
26656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point for which to get the decimal digit value
26666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the decimal digit value of c,
26676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         or -1 if c is not a decimal digit character
26686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
26696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_getNumericValue
26706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
26716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
26726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE int32_t U_EXPORT2
26736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_charDigitValue(UChar32 c);
26746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
26756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
26766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Returns the Unicode allocation block that contains the character.
26776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
26786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
26796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the block value (UBlockCode) for c
26806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
26816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UBlockCode
26826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
26836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
26846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBlockCode U_EXPORT2
26856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgublock_getCode(UChar32 c);
26866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
26876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
26886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Retrieve the name of a Unicode character.
26896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Depending on <code>nameChoice</code>, the character name written
26906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * into the buffer is the "modern" name or the name that was defined
26916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * in Unicode version 1.0.
26926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The name contains only "invariant" characters
26936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * like A-Z, 0-9, space, and '-'.
26946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Unicode 1.0 names are only retrieved if they are different from the modern
26956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * names and if the data file contains the data for them. gennames may or may
26966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * not be called with a command line option to include 1.0 names in unames.dat.
26976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
26986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param code The character (code point) for which to get the name.
26996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *             It must be <code>0<=code<=0x10ffff</code>.
27006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param nameChoice Selector for which name to get.
27016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param buffer Destination address for copying the name.
27026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *               The name will always be zero-terminated.
27036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *               If there is no name, then the buffer will be set to the empty string.
27046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param bufferLength <code>==sizeof(buffer)</code>
27056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param pErrorCode Pointer to a UErrorCode variable;
27066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *        check for <code>U_SUCCESS()</code> after <code>u_charName()</code>
27076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *        returns.
27086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return The length of the name, or 0 if there is no name for this character.
27096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         If the bufferLength is less than or equal to the length, then the buffer
27106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         contains the truncated name and the returned length indicates the full
27116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         length of the name.
27126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         The length does not include the zero-termination.
27136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
27146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCharNameChoice
27156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_charFromName
27166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_enumCharNames
27176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
27186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
27196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE int32_t U_EXPORT2
27206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_charName(UChar32 code, UCharNameChoice nameChoice,
27216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org           char *buffer, int32_t bufferLength,
27226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org           UErrorCode *pErrorCode);
27236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
27246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef U_HIDE_DEPRECATED_API
27256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
27266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Returns an empty string.
27276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Used to return the ISO 10646 comment for a character.
27286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The Unicode ISO_Comment property is deprecated and has no values.
27296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
27306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c The character (code point) for which to get the ISO comment.
27316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *             It must be <code>0<=c<=0x10ffff</code>.
27326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param dest Destination address for copying the comment.
27336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *             The comment will be zero-terminated if possible.
27346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *             If there is no comment, then the buffer will be set to the empty string.
27356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param destCapacity <code>==sizeof(dest)</code>
27366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param pErrorCode Pointer to a UErrorCode variable;
27376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *        check for <code>U_SUCCESS()</code> after <code>u_getISOComment()</code>
27386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *        returns.
27396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return 0
27406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
27416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @deprecated ICU 49
27426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
27436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE int32_t U_EXPORT2
27446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_getISOComment(UChar32 c,
27456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                char *dest, int32_t destCapacity,
27466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                UErrorCode *pErrorCode);
27476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif  /* U_HIDE_DEPRECATED_API */
27486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
27496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
27506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Find a Unicode character by its name and return its code point value.
27516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The name is matched exactly and completely.
27526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * If the name does not correspond to a code point, <i>pErrorCode</i>
27536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * is set to <code>U_INVALID_CHAR_FOUND</code>.
27546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * A Unicode 1.0 name is matched only if it differs from the modern name.
27556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Unicode names are all uppercase. Extended names are lowercase followed
27566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * by an uppercase hexadecimal number, and within angle brackets.
27576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
27586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param nameChoice Selector for which name to match.
27596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param name The name to match.
27606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param pErrorCode Pointer to a UErrorCode variable
27616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return The Unicode value of the code point with the given name,
27626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         or an undefined value if there is no such code point.
27636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
27646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCharNameChoice
27656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_charName
27666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_enumCharNames
27676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 1.7
27686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
27696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UChar32 U_EXPORT2
27706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_charFromName(UCharNameChoice nameChoice,
27716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org               const char *name,
27726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org               UErrorCode *pErrorCode);
27736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
27746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
27756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Type of a callback function for u_enumCharNames() that gets called
27766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * for each Unicode character with the code point value and
27776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * the character name.
27786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * If such a function returns FALSE, then the enumeration is stopped.
27796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
27806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param context The context pointer that was passed to u_enumCharNames().
27816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param code The Unicode code point for the character with this name.
27826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param nameChoice Selector for which kind of names is enumerated.
27836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param name The character's name, zero-terminated.
27846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param length The length of the name.
27856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the enumeration should continue, FALSE to stop it.
27866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
27876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCharNameChoice
27886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_enumCharNames
27896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 1.7
27906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
27916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef UBool U_CALLCONV UEnumCharNamesFn(void *context,
27926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                               UChar32 code,
27936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                               UCharNameChoice nameChoice,
27946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                               const char *name,
27956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                               int32_t length);
27966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
27976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
27986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Enumerate all assigned Unicode characters between the start and limit
27996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * code points (start inclusive, limit exclusive) and call a function
28006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * for each, passing the code point value and the character name.
28016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * For Unicode 1.0 names, only those are enumerated that differ from the
28026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * modern names.
28036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
28046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param start The first code point in the enumeration range.
28056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param limit One more than the last code point in the enumeration range
28066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *              (the first one after the range).
28076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param fn The function that is to be called for each character name.
28086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param context An arbitrary pointer that is passed to the function.
28096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param nameChoice Selector for which kind of names to enumerate.
28106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param pErrorCode Pointer to a UErrorCode variable
28116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
28126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCharNameChoice
28136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UEnumCharNamesFn
28146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_charName
28156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_charFromName
28166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 1.7
28176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
28186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE void U_EXPORT2
28196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_enumCharNames(UChar32 start, UChar32 limit,
28206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                UEnumCharNamesFn *fn,
28216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                void *context,
28226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                UCharNameChoice nameChoice,
28236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                UErrorCode *pErrorCode);
28246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
28256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
28266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Return the Unicode name for a given property, as given in the
28276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Unicode database file PropertyAliases.txt.
28286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
28296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * In addition, this function maps the property
28306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * UCHAR_GENERAL_CATEGORY_MASK to the synthetic names "gcm" /
28316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * "General_Category_Mask".  These names are not in
28326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * PropertyAliases.txt.
28336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
28346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param property UProperty selector other than UCHAR_INVALID_CODE.
28356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         If out of range, NULL is returned.
28366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
28376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param nameChoice selector for which name to get.  If out of range,
28386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         NULL is returned.  All properties have a long name.  Most
28396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         have a short name, but some do not.  Unicode allows for
28406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         additional names; if present these will be returned by
28416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         U_LONG_PROPERTY_NAME + i, where i=1, 2,...
28426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
28436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return a pointer to the name, or NULL if either the
28446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         property or the nameChoice is out of range.  If a given
28456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         nameChoice returns NULL, then all larger values of
28466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         nameChoice will return NULL, with one exception: if NULL is
28476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         returned for U_SHORT_PROPERTY_NAME, then
28486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         U_LONG_PROPERTY_NAME (and higher) may still return a
28496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         non-NULL value.  The returned pointer is valid until
28506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         u_cleanup() is called.
28516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
28526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UProperty
28536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UPropertyNameChoice
28546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.4
28556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
28566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE const char* U_EXPORT2
28576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_getPropertyName(UProperty property,
28586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                  UPropertyNameChoice nameChoice);
28596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
28606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
28616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Return the UProperty enum for a given property name, as specified
28626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * in the Unicode database file PropertyAliases.txt.  Short, long, and
28636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * any other variants are recognized.
28646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
28656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * In addition, this function maps the synthetic names "gcm" /
28666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * "General_Category_Mask" to the property
28676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * UCHAR_GENERAL_CATEGORY_MASK.  These names are not in
28686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * PropertyAliases.txt.
28696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
28706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param alias the property name to be matched.  The name is compared
28716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         using "loose matching" as described in PropertyAliases.txt.
28726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
28736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return a UProperty enum, or UCHAR_INVALID_CODE if the given name
28746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         does not match any property.
28756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
28766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UProperty
28776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.4
28786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
28796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UProperty U_EXPORT2
28806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_getPropertyEnum(const char* alias);
28816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
28826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
28836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Return the Unicode name for a given property value, as given in the
28846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Unicode database file PropertyValueAliases.txt.
28856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
28866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Note: Some of the names in PropertyValueAliases.txt can only be
28876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * retrieved using UCHAR_GENERAL_CATEGORY_MASK, not
28886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * UCHAR_GENERAL_CATEGORY.  These include: "C" / "Other", "L" /
28896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * "Letter", "LC" / "Cased_Letter", "M" / "Mark", "N" / "Number", "P"
28906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * / "Punctuation", "S" / "Symbol", and "Z" / "Separator".
28916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
28926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param property UProperty selector constant.
28936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *        Must be UCHAR_BINARY_START<=which<UCHAR_BINARY_LIMIT
28946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *        or UCHAR_INT_START<=which<UCHAR_INT_LIMIT
28956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *        or UCHAR_MASK_START<=which<UCHAR_MASK_LIMIT.
28966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *        If out of range, NULL is returned.
28976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
28986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param value selector for a value for the given property.  If out
28996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         of range, NULL is returned.  In general, valid values range
29006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         from 0 up to some maximum.  There are a few exceptions:
29016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         (1.) UCHAR_BLOCK values begin at the non-zero value
29026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         UBLOCK_BASIC_LATIN.  (2.)  UCHAR_CANONICAL_COMBINING_CLASS
29036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         values are not contiguous and range from 0..240.  (3.)
29046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         UCHAR_GENERAL_CATEGORY_MASK values are not values of
29056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         UCharCategory, but rather mask values produced by
29066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         U_GET_GC_MASK().  This allows grouped categories such as
29076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         [:L:] to be represented.  Mask values range
29086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         non-contiguously from 1..U_GC_P_MASK.
29096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
29106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param nameChoice selector for which name to get.  If out of range,
29116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         NULL is returned.  All values have a long name.  Most have
29126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         a short name, but some do not.  Unicode allows for
29136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         additional names; if present these will be returned by
29146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         U_LONG_PROPERTY_NAME + i, where i=1, 2,...
29156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
29166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return a pointer to the name, or NULL if either the
29176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         property or the nameChoice is out of range.  If a given
29186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         nameChoice returns NULL, then all larger values of
29196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         nameChoice will return NULL, with one exception: if NULL is
29206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         returned for U_SHORT_PROPERTY_NAME, then
29216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         U_LONG_PROPERTY_NAME (and higher) may still return a
29226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         non-NULL value.  The returned pointer is valid until
29236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         u_cleanup() is called.
29246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
29256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UProperty
29266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UPropertyNameChoice
29276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.4
29286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
29296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE const char* U_EXPORT2
29306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_getPropertyValueName(UProperty property,
29316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                       int32_t value,
29326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                       UPropertyNameChoice nameChoice);
29336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
29346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
29356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Return the property value integer for a given value name, as
29366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * specified in the Unicode database file PropertyValueAliases.txt.
29376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Short, long, and any other variants are recognized.
29386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
29396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Note: Some of the names in PropertyValueAliases.txt will only be
29406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * recognized with UCHAR_GENERAL_CATEGORY_MASK, not
29416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * UCHAR_GENERAL_CATEGORY.  These include: "C" / "Other", "L" /
29426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * "Letter", "LC" / "Cased_Letter", "M" / "Mark", "N" / "Number", "P"
29436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * / "Punctuation", "S" / "Symbol", and "Z" / "Separator".
29446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
29456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param property UProperty selector constant.
29466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *        Must be UCHAR_BINARY_START<=which<UCHAR_BINARY_LIMIT
29476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *        or UCHAR_INT_START<=which<UCHAR_INT_LIMIT
29486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *        or UCHAR_MASK_START<=which<UCHAR_MASK_LIMIT.
29496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *        If out of range, UCHAR_INVALID_CODE is returned.
29506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
29516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param alias the value name to be matched.  The name is compared
29526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         using "loose matching" as described in
29536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         PropertyValueAliases.txt.
29546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
29556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return a value integer or UCHAR_INVALID_CODE if the given name
29566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         does not match any value of the given property, or if the
29576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         property is invalid.  Note: UCHAR_GENERAL_CATEGORY_MASK values
29586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         are not values of UCharCategory, but rather mask values
29596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         produced by U_GET_GC_MASK().  This allows grouped
29606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         categories such as [:L:] to be represented.
29616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
29626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UProperty
29636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.4
29646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
29656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE int32_t U_EXPORT2
29666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_getPropertyValueEnum(UProperty property,
29676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                       const char* alias);
29686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
29696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
29706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Determines if the specified character is permissible as the
29716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * first character in an identifier according to Unicode
29726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (The Unicode Standard, Version 3.0, chapter 5.16 Identifiers).
29736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * True for characters with general categories "L" (letters) and "Nl" (letter numbers).
29746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
29756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as java.lang.Character.isUnicodeIdentifierStart().
29766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as UCHAR_ID_START
29776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
29786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
29796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the code point may start an identifier
29806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
29816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_ID_START
29826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isalpha
29836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isIDPart
29846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
29856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
29866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
29876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_isIDStart(UChar32 c);
29886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
29896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
29906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Determines if the specified character is permissible
29916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * in an identifier according to Java.
29926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * True for characters with general categories "L" (letters),
29936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * "Nl" (letter numbers), "Nd" (decimal digits),
29946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * "Mc" and "Mn" (combining marks), "Pc" (connecting punctuation), and
29956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * u_isIDIgnorable(c).
29966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
29976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as java.lang.Character.isUnicodeIdentifierPart().
29986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Almost the same as Unicode's ID_Continue (UCHAR_ID_CONTINUE)
29996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * except that Unicode recommends to ignore Cf which is less than
30006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * u_isIDIgnorable(c).
30016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
30026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
30036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the code point may occur in an identifier according to Java
30046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
30056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_ID_CONTINUE
30066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isIDStart
30076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isIDIgnorable
30086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
30096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
30106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
30116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_isIDPart(UChar32 c);
30126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
30136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
30146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Determines if the specified character should be regarded
30156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * as an ignorable character in an identifier,
30166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * according to Java.
30176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * True for characters with general category "Cf" (format controls) as well as
30186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * non-whitespace ISO controls
30196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (U+0000..U+0008, U+000E..U+001B, U+007F..U+009F).
30206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
30216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as java.lang.Character.isIdentifierIgnorable().
30226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
30236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Note that Unicode just recommends to ignore Cf (format controls).
30246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
30256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
30266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the code point is ignorable in identifiers according to Java
30276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
30286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see UCHAR_DEFAULT_IGNORABLE_CODE_POINT
30296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isIDStart
30306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see u_isIDPart
30316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
30326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
30336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
30346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_isIDIgnorable(UChar32 c);
30356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
30366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
30376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Determines if the specified character is permissible as the
30386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * first character in a Java identifier.
30396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * In addition to u_isIDStart(c), true for characters with
30406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * general categories "Sc" (currency symbols) and "Pc" (connecting punctuation).
30416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
30426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as java.lang.Character.isJavaIdentifierStart().
30436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
30446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
30456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the code point may start a Java identifier
30466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
30476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see     u_isJavaIDPart
30486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see     u_isalpha
30496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see     u_isIDStart
30506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
30516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
30526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
30536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_isJavaIDStart(UChar32 c);
30546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
30556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
30566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Determines if the specified character is permissible
30576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * in a Java identifier.
30586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * In addition to u_isIDPart(c), true for characters with
30596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * general category "Sc" (currency symbols).
30606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
30616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as java.lang.Character.isJavaIdentifierPart().
30626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
30636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be tested
30646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return TRUE if the code point may occur in a Java identifier
30656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
30666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see     u_isIDIgnorable
30676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see     u_isJavaIDStart
30686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see     u_isalpha
30696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see     u_isdigit
30706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see     u_isIDPart
30716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
30726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
30736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UBool U_EXPORT2
30746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_isJavaIDPart(UChar32 c);
30756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
30766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
30776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The given character is mapped to its lowercase equivalent according to
30786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * UnicodeData.txt; if the character has no lowercase equivalent, the character
30796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * itself is returned.
30806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
30816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as java.lang.Character.toLowerCase().
30826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
30836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This function only returns the simple, single-code point case mapping.
30846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Full case mappings should be used whenever possible because they produce
30856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * better results by working on whole strings.
30866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * They take into account the string context and the language and can map
30876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * to a result string with a different length as appropriate.
30886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Full case mappings are applied by the string case mapping functions,
30896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * see ustring.h and the UnicodeString class.
30906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * See also the User Guide chapter on C/POSIX migration:
30916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * http://icu-project.org/userguide/posix.html#case_mappings
30926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
30936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be mapped
30946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the Simple_Lowercase_Mapping of the code point, if any;
30956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         otherwise the code point itself.
30966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
30976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
30986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UChar32 U_EXPORT2
30996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_tolower(UChar32 c);
31006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
31016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
31026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The given character is mapped to its uppercase equivalent according to UnicodeData.txt;
31036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * if the character has no uppercase equivalent, the character itself is
31046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * returned.
31056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
31066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as java.lang.Character.toUpperCase().
31076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
31086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This function only returns the simple, single-code point case mapping.
31096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Full case mappings should be used whenever possible because they produce
31106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * better results by working on whole strings.
31116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * They take into account the string context and the language and can map
31126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * to a result string with a different length as appropriate.
31136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Full case mappings are applied by the string case mapping functions,
31146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * see ustring.h and the UnicodeString class.
31156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * See also the User Guide chapter on C/POSIX migration:
31166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * http://icu-project.org/userguide/posix.html#case_mappings
31176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
31186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be mapped
31196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the Simple_Uppercase_Mapping of the code point, if any;
31206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         otherwise the code point itself.
31216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
31226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
31236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UChar32 U_EXPORT2
31246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_toupper(UChar32 c);
31256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
31266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
31276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The given character is mapped to its titlecase equivalent
31286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * according to UnicodeData.txt;
31296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * if none is defined, the character itself is returned.
31306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
31316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as java.lang.Character.toTitleCase().
31326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
31336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This function only returns the simple, single-code point case mapping.
31346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Full case mappings should be used whenever possible because they produce
31356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * better results by working on whole strings.
31366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * They take into account the string context and the language and can map
31376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * to a result string with a different length as appropriate.
31386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Full case mappings are applied by the string case mapping functions,
31396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * see ustring.h and the UnicodeString class.
31406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * See also the User Guide chapter on C/POSIX migration:
31416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * http://icu-project.org/userguide/posix.html#case_mappings
31426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
31436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be mapped
31446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the Simple_Titlecase_Mapping of the code point, if any;
31456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         otherwise the code point itself.
31466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
31476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
31486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UChar32 U_EXPORT2
31496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_totitle(UChar32 c);
31506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
31516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** Option value for case folding: use default mappings defined in CaseFolding.txt. @stable ICU 2.0 */
31526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_FOLD_CASE_DEFAULT 0
31536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
31546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
31556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Option value for case folding:
31566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
31576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Use the modified set of mappings provided in CaseFolding.txt to handle dotted I
31586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * and dotless i appropriately for Turkic languages (tr, az).
31596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
31606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Before Unicode 3.2, CaseFolding.txt contains mappings marked with 'I' that
31616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * are to be included for default mappings and
31626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * excluded for the Turkic-specific mappings.
31636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
31646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Unicode 3.2 CaseFolding.txt instead contains mappings marked with 'T' that
31656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * are to be excluded for default mappings and
31666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * included for the Turkic-specific mappings.
31676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
31686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
31696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
31706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define U_FOLD_CASE_EXCLUDE_SPECIAL_I 1
31716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
31726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
31736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The given character is mapped to its case folding equivalent according to
31746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * UnicodeData.txt and CaseFolding.txt;
31756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * if the character has no case folding equivalent, the character
31766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * itself is returned.
31776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
31786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This function only returns the simple, single-code point case mapping.
31796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Full case mappings should be used whenever possible because they produce
31806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * better results by working on whole strings.
31816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * They take into account the string context and the language and can map
31826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * to a result string with a different length as appropriate.
31836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Full case mappings are applied by the string case mapping functions,
31846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * see ustring.h and the UnicodeString class.
31856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * See also the User Guide chapter on C/POSIX migration:
31866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * http://icu-project.org/userguide/posix.html#case_mappings
31876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
31886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c the code point to be mapped
31896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param options Either U_FOLD_CASE_DEFAULT or U_FOLD_CASE_EXCLUDE_SPECIAL_I
31906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the Simple_Case_Folding of the code point, if any;
31916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         otherwise the code point itself.
31926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
31936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
31946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UChar32 U_EXPORT2
31956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_foldCase(UChar32 c, uint32_t options);
31966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
31976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
31986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Returns the decimal digit value of the code point in the
31996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * specified radix.
32006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
32016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * If the radix is not in the range <code>2<=radix<=36</code> or if the
32026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * value of <code>c</code> is not a valid digit in the specified
32036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * radix, <code>-1</code> is returned. A character is a valid digit
32046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * if at least one of the following is true:
32056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <ul>
32066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <li>The character has a decimal digit value.
32076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *     Such characters have the general category "Nd" (decimal digit numbers)
32086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *     and a Numeric_Type of Decimal.
32096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *     In this case the value is the character's decimal digit value.</li>
32106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <li>The character is one of the uppercase Latin letters
32116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *     <code>'A'</code> through <code>'Z'</code>.
32126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *     In this case the value is <code>c-'A'+10</code>.</li>
32136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <li>The character is one of the lowercase Latin letters
32146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *     <code>'a'</code> through <code>'z'</code>.
32156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *     In this case the value is <code>ch-'a'+10</code>.</li>
32166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <li>Latin letters from both the ASCII range (0061..007A, 0041..005A)
32176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *     as well as from the Fullwidth ASCII range (FF41..FF5A, FF21..FF3A)
32186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *     are recognized.</li>
32196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * </ul>
32206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
32216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as java.lang.Character.digit().
32226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
32236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param   ch      the code point to be tested.
32246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param   radix   the radix.
32256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return  the numeric value represented by the character in the
32266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *          specified radix,
32276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *          or -1 if there is no value or if the value exceeds the radix.
32286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
32296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see     UCHAR_NUMERIC_TYPE
32306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see     u_forDigit
32316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see     u_charDigitValue
32326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see     u_isdigit
32336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
32346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
32356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE int32_t U_EXPORT2
32366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_digit(UChar32 ch, int8_t radix);
32376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
32386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
32396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Determines the character representation for a specific digit in
32406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * the specified radix. If the value of <code>radix</code> is not a
32416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * valid radix, or the value of <code>digit</code> is not a valid
32426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * digit in the specified radix, the null character
32436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (<code>U+0000</code>) is returned.
32446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <p>
32456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The <code>radix</code> argument is valid if it is greater than or
32466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * equal to 2 and less than or equal to 36.
32476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The <code>digit</code> argument is valid if
32486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <code>0 <= digit < radix</code>.
32496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <p>
32506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * If the digit is less than 10, then
32516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <code>'0' + digit</code> is returned. Otherwise, the value
32526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <code>'a' + digit - 10</code> is returned.
32536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
32546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Same as java.lang.Character.forDigit().
32556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
32566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param   digit   the number to convert to a character.
32576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param   radix   the radix.
32586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return  the <code>char</code> representation of the specified digit
32596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *          in the specified radix.
32606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
32616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see     u_digit
32626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see     u_charDigitValue
32636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @see     u_isdigit
32646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
32656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
32666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE UChar32 U_EXPORT2
32676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_forDigit(int32_t digit, int8_t radix);
32686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
32696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
32706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Get the "age" of the code point.
32716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The "age" is the Unicode version when the code point was first
32726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * designated (as a non-character or for Private Use)
32736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * or assigned a character.
32746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This can be useful to avoid emitting code points to receiving
32756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * processes that do not accept newer characters.
32766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The data is from the UCD file DerivedAge.txt.
32776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
32786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c The code point.
32796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param versionArray The Unicode version number array, to be filled in.
32806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
32816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.1
32826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
32836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE void U_EXPORT2
32846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_charAge(UChar32 c, UVersionInfo versionArray);
32856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
32866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
32876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Gets the Unicode version information.
32886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The version array is filled in with the version information
32896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * for the Unicode standard that is currently used by ICU.
32906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * For example, Unicode version 3.1.1 is represented as an array with
32916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * the values { 3, 1, 1, 0 }.
32926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
32936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param versionArray an output array that will be filled in with
32946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *                     the Unicode version number
32956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0
32966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
32976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE void U_EXPORT2
32986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_getUnicodeVersion(UVersionInfo versionArray);
32996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
33006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#if !UCONFIG_NO_NORMALIZATION
33016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
33026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Get the FC_NFKC_Closure property string for a character.
33036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * See Unicode Standard Annex #15 for details, search for "FC_NFKC_Closure"
33046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * or for "FNC": http://www.unicode.org/reports/tr15/
33056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
33066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param c The character (code point) for which to get the FC_NFKC_Closure string.
33076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *             It must be <code>0<=c<=0x10ffff</code>.
33086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param dest Destination address for copying the string.
33096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *             The string will be zero-terminated if possible.
33106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *             If there is no FC_NFKC_Closure string,
33116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *             then the buffer will be set to the empty string.
33126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param destCapacity <code>==sizeof(dest)</code>
33136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param pErrorCode Pointer to a UErrorCode variable.
33146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return The length of the string, or 0 if there is no FC_NFKC_Closure string for this character.
33156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         If the destCapacity is less than or equal to the length, then the buffer
33166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         contains the truncated name and the returned length indicates the full
33176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         length of the name.
33186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *         The length does not include the zero-termination.
33196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *
33206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.2
33216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */
33226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_STABLE int32_t U_EXPORT2
33236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgu_getFC_NFKC_Closure(UChar32 c, UChar *dest, int32_t destCapacity, UErrorCode *pErrorCode);
33246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
33256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
33266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
33276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
33286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_CDECL_END
33296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
33306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif /*_UCHAR*/
33316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/*eof*/
3332