Imported Upstream version 2.8.0
[platform/upstream/libxml2.git] / include / libxml / 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
51 /**
52  * Range checking routine
53  */
54 XMLPUBFUN int XMLCALL
55                 xmlCharInRange(unsigned int val, const xmlChRangeGroup *group);
56
57
58 /**
59  * xmlIsBaseChar_ch:
60  * @c: char to validate
61  *
62  * Automatically generated by genChRanges.py
63  */
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
70 /**
71  * xmlIsBaseCharQ:
72  * @c: char to validate
73  *
74  * Automatically generated by genChRanges.py
75  */
76 #define xmlIsBaseCharQ(c)       (((c) < 0x100) ? \
77                                  xmlIsBaseChar_ch((c)) : \
78                                  xmlCharInRange((c), &xmlIsBaseCharGroup))
79
80 XMLPUBVAR const xmlChRangeGroup xmlIsBaseCharGroup;
81
82 /**
83  * xmlIsBlank_ch:
84  * @c: char to validate
85  *
86  * Automatically generated by genChRanges.py
87  */
88 #define xmlIsBlank_ch(c)        (((c) == 0x20) || \
89                                  ((0x9 <= (c)) && ((c) <= 0xa)) || \
90                                  ((c) == 0xd))
91
92 /**
93  * xmlIsBlankQ:
94  * @c: char to validate
95  *
96  * Automatically generated by genChRanges.py
97  */
98 #define xmlIsBlankQ(c)          (((c) < 0x100) ? \
99                                  xmlIsBlank_ch((c)) : 0)
100
101
102 /**
103  * xmlIsChar_ch:
104  * @c: char to validate
105  *
106  * Automatically generated by genChRanges.py
107  */
108 #define xmlIsChar_ch(c)         (((0x9 <= (c)) && ((c) <= 0xa)) || \
109                                  ((c) == 0xd) || \
110                                   (0x20 <= (c)))
111
112 /**
113  * xmlIsCharQ:
114  * @c: char to validate
115  *
116  * Automatically generated by genChRanges.py
117  */
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
126 /**
127  * xmlIsCombiningQ:
128  * @c: char to validate
129  *
130  * Automatically generated by genChRanges.py
131  */
132 #define xmlIsCombiningQ(c)      (((c) < 0x100) ? \
133                                  0 : \
134                                  xmlCharInRange((c), &xmlIsCombiningGroup))
135
136 XMLPUBVAR const xmlChRangeGroup xmlIsCombiningGroup;
137
138 /**
139  * xmlIsDigit_ch:
140  * @c: char to validate
141  *
142  * Automatically generated by genChRanges.py
143  */
144 #define xmlIsDigit_ch(c)        (((0x30 <= (c)) && ((c) <= 0x39)))
145
146 /**
147  * xmlIsDigitQ:
148  * @c: char to validate
149  *
150  * Automatically generated by genChRanges.py
151  */
152 #define xmlIsDigitQ(c)          (((c) < 0x100) ? \
153                                  xmlIsDigit_ch((c)) : \
154                                  xmlCharInRange((c), &xmlIsDigitGroup))
155
156 XMLPUBVAR const xmlChRangeGroup xmlIsDigitGroup;
157
158 /**
159  * xmlIsExtender_ch:
160  * @c: char to validate
161  *
162  * Automatically generated by genChRanges.py
163  */
164 #define xmlIsExtender_ch(c)     (((c) == 0xb7))
165
166 /**
167  * xmlIsExtenderQ:
168  * @c: char to validate
169  *
170  * Automatically generated by genChRanges.py
171  */
172 #define xmlIsExtenderQ(c)       (((c) < 0x100) ? \
173                                  xmlIsExtender_ch((c)) : \
174                                  xmlCharInRange((c), &xmlIsExtenderGroup))
175
176 XMLPUBVAR const xmlChRangeGroup xmlIsExtenderGroup;
177
178 /**
179  * xmlIsIdeographicQ:
180  * @c: char to validate
181  *
182  * Automatically generated by genChRanges.py
183  */
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
193 /**
194  * xmlIsPubidChar_ch:
195  * @c: char to validate
196  *
197  * Automatically generated by genChRanges.py
198  */
199 #define xmlIsPubidChar_ch(c)    (xmlIsPubidChar_tab[(c)])
200
201 /**
202  * xmlIsPubidCharQ:
203  * @c: char to validate
204  *
205  * Automatically generated by genChRanges.py
206  */
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__ */