sl@0: /* sl@0: ******************************************************************************* sl@0: * sl@0: * Copyright (C) 2004-2005, International Business Machines sl@0: * Corporation and others. All Rights Reserved. sl@0: * sl@0: ******************************************************************************* sl@0: * file name: uset_imp.h sl@0: * encoding: US-ASCII sl@0: * tab size: 8 (not used) sl@0: * indentation:4 sl@0: * sl@0: * created on: 2004sep07 sl@0: * created by: Markus W. Scherer sl@0: * sl@0: * Internal USet definitions. sl@0: */ sl@0: sl@0: #ifndef __USET_IMP_H__ sl@0: #define __USET_IMP_H__ sl@0: sl@0: #include "unicode/utypes.h" sl@0: #include "unicode/uset.h" sl@0: sl@0: U_CDECL_BEGIN sl@0: sl@0: typedef void U_CALLCONV sl@0: USetAdd(USet *set, UChar32 c); sl@0: sl@0: typedef void U_CALLCONV sl@0: USetAddRange(USet *set, UChar32 start, UChar32 end); sl@0: sl@0: typedef void U_CALLCONV sl@0: USetAddString(USet *set, const UChar *str, int32_t length); sl@0: sl@0: typedef void U_CALLCONV sl@0: USetRemove(USet *set, UChar32 c); sl@0: sl@0: /** sl@0: * Interface for adding items to a USet, to keep low-level code from sl@0: * statically depending on the USet implementation. sl@0: * Calls will look like sa->add(sa->set, c); sl@0: */ sl@0: struct USetAdder { sl@0: USet *set; sl@0: USetAdd *add; sl@0: USetAddRange *addRange; sl@0: USetAddString *addString; sl@0: USetRemove *remove; sl@0: }; sl@0: typedef struct USetAdder USetAdder; sl@0: sl@0: U_CDECL_END sl@0: sl@0: /** sl@0: * Get the set of "white space" characters in the sense of ICU rule sl@0: * parsers. Caller must close/delete result. sl@0: * Equivalent to the set of characters with the Pattern_White_Space Unicode property. sl@0: * Stable set of characters, won't change. sl@0: * See UAX #31 Identifier and Pattern Syntax: http://www.unicode.org/reports/tr31/ sl@0: * @internal sl@0: */ sl@0: U_CAPI USet* U_EXPORT2 sl@0: uprv_openRuleWhiteSpaceSet(UErrorCode* ec); sl@0: sl@0: #endif sl@0: