65 #define CONF_UNDER 256 66 #define CONF_PUNCTUATION 512 70 #define CONF_DQUOTE 1024 71 #define CONF_COMMENT 128 72 #define CONF_FCOMMENT 2048 74 #define CONF_HIGHBIT 4096 75 #define CONF_ALPHA (CONF_UPPER|CONF_LOWER) 76 #define CONF_ALPHA_NUMERIC (CONF_ALPHA|CONF_NUMBER|CONF_UNDER) 77 #define CONF_ALPHA_NUMERIC_PUNCT (CONF_ALPHA|CONF_NUMBER|CONF_UNDER| \ 80 #define KEYTYPES(c) CONF_type_default 81 #define IS_COMMENT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_COMMENT) 82 #define IS_FCOMMENT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_FCOMMENT) 83 #define IS_EOF(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_EOF) 84 #define IS_ESC(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_ESC) 85 #define IS_NUMBER(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_NUMBER) 86 #define IS_WS(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_WS) 87 #define IS_ALPHA_NUMERIC(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_ALPHA_NUMERIC) 88 #define IS_ALPHA_NUMERIC_PUNCT(c,a) \ 89 (KEYTYPES(c)[(a)&0xff]&CONF_ALPHA_NUMERIC_PUNCT) 90 #define IS_QUOTE(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_QUOTE) 91 #define IS_DQUOTE(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_DQUOTE) 92 #define IS_HIGHBIT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_HIGHBIT) 94 static const unsigned short CONF_type_default[256]={
95 0x0008,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
96 0x0000,0x0010,0x0010,0x0000,0x0000,0x0010,0x0000,0x0000,
97 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
98 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
99 0x0010,0x0200,0x0040,0x0080,0x0000,0x0200,0x0200,0x0040,
100 0x0000,0x0000,0x0200,0x0200,0x0200,0x0200,0x0200,0x0200,
101 0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,
102 0x0001,0x0001,0x0000,0x0200,0x0000,0x0000,0x0000,0x0200,
103 0x0200,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,
104 0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,
105 0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,0x0002,
106 0x0002,0x0002,0x0002,0x0000,0x0020,0x0000,0x0200,0x0100,
107 0x0040,0x0004,0x0004,0x0004,0x0004,0x0004,0x0004,0x0004,
108 0x0004,0x0004,0x0004,0x0004,0x0004,0x0004,0x0004,0x0004,
109 0x0004,0x0004,0x0004,0x0004,0x0004,0x0004,0x0004,0x0004,
110 0x0004,0x0004,0x0004,0x0000,0x0200,0x0000,0x0200,0x0000,
111 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
112 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
113 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
114 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
115 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
116 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
117 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
118 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
119 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
120 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
121 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
122 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
123 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
124 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
125 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
126 0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,