/* ******************************************************************************* * * Copyright (C) 1998-1999, International Business Machines * Corporation and others. All Rights Reserved. * ******************************************************************************* * * File uscanset.h * * Modification History: * * Date Name Description * 12/03/98 stephen Creation. * 03/12/99 stephen Modified for new C API. ******************************************************************************* */ #ifndef USCANSET_H #define USCANSET_H #include "unicode/utypes.h" /** * Simple struct for a scanset pair, ie a-z or A-Z */ struct u_scanf_scanset_pair { UChar start; UChar end; }; typedef struct u_scanf_scanset_pair u_scanf_scanset_pair; #define U_SCANF_MAX_SCANSET_SIZE 512 /** * Struct representing a scanset */ struct u_scanf_scanset { UBool is_inclusive; /* false if '^' is given */ UChar singles [U_SCANF_MAX_SCANSET_SIZE]; u_scanf_scanset_pair pairs [U_SCANF_MAX_SCANSET_SIZE]; int32_t single_count; /* count of single chars in set */ int32_t pair_count; /* count of pairs in set */ }; typedef struct u_scanf_scanset u_scanf_scanset; /** * Init a u_scanf_scanset. * @param scanset A pointer to the u_scanf_scanset to init. * @param s A pointer to the first character in the scanset * @param len On input, a pointer to the length of s. On output, * a pointer to the number of characters parsed, excluding the final ']' * @return TRUE if successful, FALSE otherwise. */ UBool u_scanf_scanset_init(u_scanf_scanset *scanset, const UChar *s, int32_t *len); /** * Determine if a UChar is in a u_scanf_scanset * @param scanset A pointer to a u_scanf_scanset * @param c The UChar to test. * @return TRUE if the UChar is in the scanset, FALSE otherwise */ UBool u_scanf_scanset_in(u_scanf_scanset *scanset, UChar c); #endif