/* Header : kind.h Author : Richard A. O'Keefe Updated: 09/01/00 Purpose: Specify character classification macros */ extern char kind[256]; extern char upcase[256]; #ifdef WIDE_CHARS #define is_digit(c) ((c) <= '9' && kind[c] < 10) #define is_hexit(c) ((c) <= 'f' && kind[c] < 16) #define is_alnum(c) ((c) >= 0xc0 || kind[c] < 18) #define is_token(c) ((c) < 127 && kind[c]== 18) #define is_white(c) ((c) <= ' ' && kind[c]== 19) #define is_alpha(c) ((c) >= 0xc0 || (unsigned)(kind[c]-10) < 7) #define to_upper(c) ((c) > 'z' ? (c) : (wchar)upcase[c]) #else #define is_digit(c) (kind[c] < 10) #define is_hexit(c) (kind[c] < 16) #define is_alnum(c) (kind[c] < 18) #define is_token(c) (kind[c]== 18) #define is_white(c) (kind[c]== 19) #define is_alpha(c) ((unsigned)(kind[c]-10) < 7) #define to_upper(c) (wchar)upcase[c] #endif extern void set_up_kind(void);