LTKCPP-- LLRP Toolkit C Plus Plus Library
chvalid.h
1 /*
2  * Summary: Unicode character range checking
3  * Description: this module exports interfaces for the character
4  * range validation APIs
5  *
6  * This file is automatically generated from the cvs source
7  * definition files using the genChRanges.py Python script
8  *
9  * Generation date: Mon Mar 27 11:09:48 2006
10  * Sources: chvalid.def
11  * Author: William Brack <wbrack@mmm.com.hk>
12  */
13 
14 #ifndef __XML_CHVALID_H__
15 #define __XML_CHVALID_H__
16 
17 #include <libxml/xmlversion.h>
18 #include <libxml/xmlstring.h>
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
24 /*
25  * Define our typedefs and structures
26  *
27  */
28 typedef struct _xmlChSRange xmlChSRange;
29 typedef xmlChSRange *xmlChSRangePtr;
30 struct _xmlChSRange {
31  unsigned short low;
32  unsigned short high;
33 };
34 
35 typedef struct _xmlChLRange xmlChLRange;
36 typedef xmlChLRange *xmlChLRangePtr;
37 struct _xmlChLRange {
38  unsigned int low;
39  unsigned int high;
40 };
41 
42 typedef struct _xmlChRangeGroup xmlChRangeGroup;
43 typedef xmlChRangeGroup *xmlChRangeGroupPtr;
44 struct _xmlChRangeGroup {
45  int nbShortRange;
46  int nbLongRange;
47  const xmlChSRange *shortRange; /* points to an array of ranges */
48  const xmlChLRange *longRange;
49 };
50 
54 XMLPUBFUN int XMLCALL
55  xmlCharInRange(unsigned int val, const xmlChRangeGroup *group);
56 
57 
64 #define xmlIsBaseChar_ch(c) (((0x41 <= (c)) && ((c) <= 0x5a)) || \
65  ((0x61 <= (c)) && ((c) <= 0x7a)) || \
66  ((0xc0 <= (c)) && ((c) <= 0xd6)) || \
67  ((0xd8 <= (c)) && ((c) <= 0xf6)) || \
68  (0xf8 <= (c)))
69 
76 #define xmlIsBaseCharQ(c) (((c) < 0x100) ? \
77  xmlIsBaseChar_ch((c)) : \
78  xmlCharInRange((c), &xmlIsBaseCharGroup))
79 
80 XMLPUBVAR const xmlChRangeGroup xmlIsBaseCharGroup;
81 
88 #define xmlIsBlank_ch(c) (((c) == 0x20) || \
89  ((0x9 <= (c)) && ((c) <= 0xa)) || \
90  ((c) == 0xd))
91 
98 #define xmlIsBlankQ(c) (((c) < 0x100) ? \
99  xmlIsBlank_ch((c)) : 0)
100 
101 
108 #define xmlIsChar_ch(c) (((0x9 <= (c)) && ((c) <= 0xa)) || \
109  ((c) == 0xd) || \
110  (0x20 <= (c)))
111 
118 #define xmlIsCharQ(c) (((c) < 0x100) ? \
119  xmlIsChar_ch((c)) :\
120  (((0x100 <= (c)) && ((c) <= 0xd7ff)) || \
121  ((0xe000 <= (c)) && ((c) <= 0xfffd)) || \
122  ((0x10000 <= (c)) && ((c) <= 0x10ffff))))
123 
124 XMLPUBVAR const xmlChRangeGroup xmlIsCharGroup;
125 
132 #define xmlIsCombiningQ(c) (((c) < 0x100) ? \
133  0 : \
134  xmlCharInRange((c), &xmlIsCombiningGroup))
135 
136 XMLPUBVAR const xmlChRangeGroup xmlIsCombiningGroup;
137 
144 #define xmlIsDigit_ch(c) (((0x30 <= (c)) && ((c) <= 0x39)))
145 
152 #define xmlIsDigitQ(c) (((c) < 0x100) ? \
153  xmlIsDigit_ch((c)) : \
154  xmlCharInRange((c), &xmlIsDigitGroup))
155 
156 XMLPUBVAR const xmlChRangeGroup xmlIsDigitGroup;
157 
164 #define xmlIsExtender_ch(c) (((c) == 0xb7))
165 
172 #define xmlIsExtenderQ(c) (((c) < 0x100) ? \
173  xmlIsExtender_ch((c)) : \
174  xmlCharInRange((c), &xmlIsExtenderGroup))
175 
176 XMLPUBVAR const xmlChRangeGroup xmlIsExtenderGroup;
177 
184 #define xmlIsIdeographicQ(c) (((c) < 0x100) ? \
185  0 :\
186  (((0x4e00 <= (c)) && ((c) <= 0x9fa5)) || \
187  ((c) == 0x3007) || \
188  ((0x3021 <= (c)) && ((c) <= 0x3029))))
189 
190 XMLPUBVAR const xmlChRangeGroup xmlIsIdeographicGroup;
191 XMLPUBVAR const unsigned char xmlIsPubidChar_tab[256];
192 
199 #define xmlIsPubidChar_ch(c) (xmlIsPubidChar_tab[(c)])
200 
207 #define xmlIsPubidCharQ(c) (((c) < 0x100) ? \
208  xmlIsPubidChar_ch((c)) : 0)
209 
210 XMLPUBFUN int XMLCALL
211  xmlIsBaseChar(unsigned int ch);
212 XMLPUBFUN int XMLCALL
213  xmlIsBlank(unsigned int ch);
214 XMLPUBFUN int XMLCALL
215  xmlIsChar(unsigned int ch);
216 XMLPUBFUN int XMLCALL
217  xmlIsCombining(unsigned int ch);
218 XMLPUBFUN int XMLCALL
219  xmlIsDigit(unsigned int ch);
220 XMLPUBFUN int XMLCALL
221  xmlIsExtender(unsigned int ch);
222 XMLPUBFUN int XMLCALL
223  xmlIsIdeographic(unsigned int ch);
224 XMLPUBFUN int XMLCALL
225  xmlIsPubidChar(unsigned int ch);
226 
227 #ifdef __cplusplus
228 }
229 #endif
230 #endif /* __XML_CHVALID_H__ */