1 #include <URI/CharClass.d>
2 #include <__oo2c.h>
3 #include <setjmp.h>
4
URI_CharClass__IsAlpha(OOC_CHAR8 ch)5 OOC_CHAR8 URI_CharClass__IsAlpha(OOC_CHAR8 ch) {
6 register OOC_INT64 i0,i1;
7
8 i0 = ch;
9 i0 = _cap(i0);
10 i1 = (OOC_UINT8)65u<=(OOC_UINT8)i0;
11 if (i1) goto l3;
12 i0=0u;
13 goto l4;
14 l3:
15 i0 = (OOC_UINT8)i0<=(OOC_UINT8)90u;
16
17 l4:
18 return i0;
19 ;
20 }
21
URI_CharClass__SkipAlpha(const OOC_CHAR8 str[],OOC_LEN str_0d,OOC_INT16 * pos)22 OOC_CHAR8 URI_CharClass__SkipAlpha(const OOC_CHAR8 str[], OOC_LEN str_0d, OOC_INT16 *pos) {
23 register OOC_INT64 i0,i1;
24
25 i0 = *pos;
26 i1 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index(i0, str_0d, OOC_UINT16, 2211)));
27 i1 = (OOC_UINT8)65u<=(OOC_UINT8)(_cap(i1));
28 if (i1) goto l3;
29 i1=0u;
30 goto l5;
31 l3:
32 i1 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index(i0, str_0d, OOC_UINT16, 2230)));
33 i1 = (OOC_UINT8)(_cap(i1))<=(OOC_UINT8)90u;
34
35 l5:
36 if (i1) goto l7;
37 return 0u;
38 goto l8;
39 l7:
40 *pos = (i0+1);
41 return 1u;
42 l8:
43 _failed_function(2111); return 0;
44 ;
45 }
46
URI_CharClass__IsDigit(OOC_CHAR8 ch)47 OOC_CHAR8 URI_CharClass__IsDigit(OOC_CHAR8 ch) {
48 register OOC_INT64 i0,i1;
49
50 i0 = ch;
51 i1 = (OOC_UINT8)48u<=(OOC_UINT8)i0;
52 if (i1) goto l3;
53 i0=0u;
54 goto l4;
55 l3:
56 i0 = (OOC_UINT8)i0<=(OOC_UINT8)57u;
57
58 l4:
59 return i0;
60 ;
61 }
62
URI_CharClass__SkipDigit(const OOC_CHAR8 str[],OOC_LEN str_0d,OOC_INT16 * pos)63 OOC_CHAR8 URI_CharClass__SkipDigit(const OOC_CHAR8 str[], OOC_LEN str_0d, OOC_INT16 *pos) {
64 register OOC_INT64 i0,i1;
65
66 i0 = *pos;
67 i1 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index(i0, str_0d, OOC_UINT16, 2545)));
68 i1 = (OOC_UINT8)48u<=(OOC_UINT8)i1;
69 if (i1) goto l3;
70 i1=0u;
71 goto l5;
72 l3:
73 i1 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index(i0, str_0d, OOC_UINT16, 2558)));
74 i1 = (OOC_UINT8)i1<=(OOC_UINT8)57u;
75
76 l5:
77 if (i1) goto l7;
78 return 0u;
79 goto l8;
80 l7:
81 *pos = (i0+1);
82 return 1u;
83 l8:
84 _failed_function(2450); return 0;
85 ;
86 }
87
URI_CharClass__IsAlphaNum(OOC_CHAR8 ch)88 OOC_CHAR8 URI_CharClass__IsAlphaNum(OOC_CHAR8 ch) {
89 register OOC_INT64 i0,i1;
90
91 i0 = ch;
92 i1 = URI_CharClass__IsAlpha(i0);
93 if (i1) goto l3;
94 i0 = URI_CharClass__IsDigit(i0);
95
96 goto l4;
97 l3:
98 i0=1u;
99 l4:
100 return i0;
101 ;
102 }
103
URI_CharClass__SkipAlphaNum(const OOC_CHAR8 str[],OOC_LEN str_0d,OOC_INT16 * pos)104 OOC_CHAR8 URI_CharClass__SkipAlphaNum(const OOC_CHAR8 str[], OOC_LEN str_0d, OOC_INT16 *pos) {
105 register OOC_INT64 i0;
106
107 i0 = URI_CharClass__SkipAlpha((void*)(OOC_INT64)str, str_0d, (void*)(OOC_INT64)pos);
108 if (i0) goto l3;
109 i0 = URI_CharClass__SkipDigit((void*)(OOC_INT64)str, str_0d, (void*)(OOC_INT64)pos);
110
111 goto l4;
112 l3:
113 i0=1u;
114 l4:
115 return i0;
116 ;
117 }
118
URI_CharClass__IsMember(OOC_CHAR8 ch,const OOC_CHAR8 set__ref[],OOC_LEN set_0d)119 OOC_CHAR8 URI_CharClass__IsMember(OOC_CHAR8 ch, const OOC_CHAR8 set__ref[], OOC_LEN set_0d) {
120 register OOC_INT64 i0,i1,i2;
121 OOC_ALLOCATE_VPAR(set,OOC_CHAR8 ,set_0d)
122
123 OOC_INITIALIZE_VPAR(set__ref,set,OOC_CHAR8 ,set_0d)
124 i0 = *(OOC_UINT8*)((OOC_INT64)set+(_check_index(0, set_0d, OOC_UINT16, 3060)));
125 i0 = i0!=0u;
126 if (i0) goto l3;
127 i0=0u;
128 goto l5;
129 l3:
130 i0 = *(OOC_UINT8*)((OOC_INT64)set+(_check_index(0, set_0d, OOC_UINT16, 3076)));
131 i1 = ch;
132 i0 = i0!=i1;
133
134 l5:
135 if (i0) goto l7;
136 i0=0;
137 goto l17;
138 l7:
139 i0 = ch;
140 i1=0;
141 l8_loop:
142 i1 = i1+1;
143 i2 = *(OOC_UINT8*)((OOC_INT64)set+(_check_index(i1, set_0d, OOC_UINT16, 3060)));
144 i2 = i2!=0u;
145 if (i2) goto l11;
146 i2=0u;
147 goto l13;
148 l11:
149 i2 = *(OOC_UINT8*)((OOC_INT64)set+(_check_index(i1, set_0d, OOC_UINT16, 3076)));
150 i2 = i2!=i0;
151
152 l13:
153 if (i2) goto l8_loop;
154 l16:
155 i0=i1;
156 l17:
157 i0 = *(OOC_UINT8*)((OOC_INT64)set+(_check_index(i0, set_0d, OOC_UINT16, 3127)));
158 return (i0!=0u);
159 ;
160 }
161
URI_CharClass__IsReserved(OOC_CHAR8 ch)162 OOC_CHAR8 URI_CharClass__IsReserved(OOC_CHAR8 ch) {
163 register OOC_INT64 i0;
164
165 i0 = ch;
166 i0 = URI_CharClass__IsMember(i0, (OOC_CHAR8*)";/?:@&=+$,[]", 13);
167 return i0;
168 ;
169 }
170
URI_CharClass__SkipReserved(const OOC_CHAR8 str[],OOC_LEN str_0d,OOC_INT16 * pos)171 OOC_CHAR8 URI_CharClass__SkipReserved(const OOC_CHAR8 str[], OOC_LEN str_0d, OOC_INT16 *pos) {
172 register OOC_INT64 i0,i1;
173
174 i0 = *pos;
175 i1 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index(i0, str_0d, OOC_UINT16, 3369)));
176 i1 = URI_CharClass__IsMember(i1, (OOC_CHAR8*)";/?:@&=+$,[]", 13);
177 if (i1) goto l3;
178 return 0u;
179 goto l4;
180 l3:
181 *pos = (i0+1);
182 return 1u;
183 l4:
184 _failed_function(3269); return 0;
185 ;
186 }
187
URI_CharClass__IsMark(OOC_CHAR8 ch)188 OOC_CHAR8 URI_CharClass__IsMark(OOC_CHAR8 ch) {
189 register OOC_INT64 i0;
190
191 i0 = ch;
192 switch (i0) {
193 case 45u:
194 case 95u:
195 case 46u:
196 case 33u:
197 case 126u:
198 case 42u:
199 case 39u:
200 case 40u:
201 case 41u:
202 return 1u;
203 goto l4;
204 default:
205 return 0u;
206 goto l4;
207 }
208 l4:
209 _failed_function(3493); return 0;
210 ;
211 }
212
URI_CharClass__SkipMark(const OOC_CHAR8 str[],OOC_LEN str_0d,OOC_INT16 * pos)213 OOC_CHAR8 URI_CharClass__SkipMark(const OOC_CHAR8 str[], OOC_LEN str_0d, OOC_INT16 *pos) {
214 register OOC_INT64 i0,i1;
215
216 i0 = *pos;
217 i1 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index(i0, str_0d, OOC_UINT16, 3769)));
218 i1 = URI_CharClass__IsMark(i1);
219 if (i1) goto l3;
220 return 0u;
221 goto l4;
222 l3:
223 *pos = (i0+1);
224 return 1u;
225 l4:
226 _failed_function(3675); return 0;
227 ;
228 }
229
URI_CharClass__IsUnreserved(OOC_CHAR8 ch)230 OOC_CHAR8 URI_CharClass__IsUnreserved(OOC_CHAR8 ch) {
231 register OOC_INT64 i0,i1;
232
233 i0 = ch;
234 i1 = URI_CharClass__IsAlphaNum(i0);
235 if (i1) goto l3;
236 i0 = URI_CharClass__IsMark(i0);
237
238 goto l4;
239 l3:
240 i0=1u;
241 l4:
242 return i0;
243 ;
244 }
245
URI_CharClass__SkipUnreserved(const OOC_CHAR8 str[],OOC_LEN str_0d,OOC_INT16 * pos)246 OOC_CHAR8 URI_CharClass__SkipUnreserved(const OOC_CHAR8 str[], OOC_LEN str_0d, OOC_INT16 *pos) {
247 register OOC_INT64 i0;
248
249 i0 = URI_CharClass__SkipAlphaNum((void*)(OOC_INT64)str, str_0d, (void*)(OOC_INT64)pos);
250 if (i0) goto l3;
251 i0 = URI_CharClass__SkipMark((void*)(OOC_INT64)str, str_0d, (void*)(OOC_INT64)pos);
252
253 goto l4;
254 l3:
255 i0=1u;
256 l4:
257 return i0;
258 ;
259 }
260
URI_CharClass__SkipEscaped(const OOC_CHAR8 str[],OOC_LEN str_0d,OOC_INT16 * pos)261 OOC_CHAR8 URI_CharClass__SkipEscaped(const OOC_CHAR8 str[], OOC_LEN str_0d, OOC_INT16 *pos) {
262 register OOC_INT64 i0,i1;
263 auto OOC_CHAR8 URI_CharClass__SkipEscaped_SkipHex(OOC_CHAR8 ch);
264
265 OOC_CHAR8 URI_CharClass__SkipEscaped_SkipHex(OOC_CHAR8 ch) {
266 register OOC_INT64 i0,i1;
267
268 i0 = ch;
269 i1 = (OOC_UINT8)48u<=(OOC_UINT8)i0;
270 if (i1) goto l3;
271 i1=0u;
272 goto l5;
273 l3:
274 i1 = (OOC_UINT8)i0<=(OOC_UINT8)57u;
275
276 l5:
277 if (i1) goto l11;
278 i0 = _cap(i0);
279 i1 = (OOC_UINT8)65u<=(OOC_UINT8)i0;
280 if (i1) goto l9;
281 i0=0u;
282 goto l12;
283 l9:
284 i0 = (OOC_UINT8)i0<=(OOC_UINT8)70u;
285
286 goto l12;
287 l11:
288 i0=1u;
289 l12:
290 return i0;
291 ;
292 }
293
294
295 i0 = *pos;
296 i1 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index(i0, str_0d, OOC_UINT16, 4405)));
297 i1 = i1==37u;
298 if (i1) goto l3;
299 i1=0u;
300 goto l5;
301 l3:
302 i1 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index((i0+1), str_0d, OOC_UINT16, 4432)));
303 i1 = URI_CharClass__SkipEscaped_SkipHex(i1);
304
305 l5:
306 if (i1) goto l7;
307 i1=0u;
308 goto l9;
309 l7:
310 i1 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index((i0+2), str_0d, OOC_UINT16, 4455)));
311 i1 = URI_CharClass__SkipEscaped_SkipHex(i1);
312
313 l9:
314 if (i1) goto l11;
315 return 0u;
316 goto l12;
317 l11:
318 *pos = (i0+3);
319 return 1u;
320 l12:
321 _failed_function(4168); return 0;
322 ;
323 }
324
URI_CharClass__SkipPChar(const OOC_CHAR8 str[],OOC_LEN str_0d,OOC_INT16 * pos)325 OOC_CHAR8 URI_CharClass__SkipPChar(const OOC_CHAR8 str[], OOC_LEN str_0d, OOC_INT16 *pos) {
326 register OOC_INT64 i0,i1;
327
328 i0 = *pos;
329 i1 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index(i0, str_0d, OOC_UINT16, 4670)));
330 i1 = URI_CharClass__IsMember(i1, (OOC_CHAR8*)":@&=+$,", 8);
331 if (i1) goto l7;
332 i0 = URI_CharClass__SkipUnreserved((void*)(OOC_INT64)str, str_0d, (void*)(OOC_INT64)pos);
333 if (i0) goto l5;
334 i0 = URI_CharClass__SkipEscaped((void*)(OOC_INT64)str, str_0d, (void*)(OOC_INT64)pos);
335
336 goto l6;
337 l5:
338 i0=1u;
339 l6:
340 return i0;
341 goto l8;
342 l7:
343 *pos = (i0+1);
344 return 1u;
345 l8:
346 _failed_function(4573); return 0;
347 ;
348 }
349
URI_CharClass__SkipURIC(const OOC_CHAR8 str[],OOC_LEN str_0d,OOC_INT16 * pos)350 OOC_CHAR8 URI_CharClass__SkipURIC(const OOC_CHAR8 str[], OOC_LEN str_0d, OOC_INT16 *pos) {
351 register OOC_INT64 i0;
352
353 i0 = URI_CharClass__SkipUnreserved((void*)(OOC_INT64)str, str_0d, (void*)(OOC_INT64)pos);
354 if (i0) goto l3;
355 i0 = URI_CharClass__SkipReserved((void*)(OOC_INT64)str, str_0d, (void*)(OOC_INT64)pos);
356
357 goto l5;
358 l3:
359 i0=1u;
360 l5:
361 if (i0) goto l7;
362 i0 = URI_CharClass__SkipEscaped((void*)(OOC_INT64)str, str_0d, (void*)(OOC_INT64)pos);
363
364 goto l8;
365 l7:
366 i0=1u;
367 l8:
368 return i0;
369 ;
370 }
371
URI_CharClass__SkipMember(const OOC_CHAR8 str[],OOC_LEN str_0d,OOC_INT16 * pos,const OOC_CHAR8 set__ref[],OOC_LEN set_0d)372 OOC_CHAR8 URI_CharClass__SkipMember(const OOC_CHAR8 str[], OOC_LEN str_0d, OOC_INT16 *pos, const OOC_CHAR8 set__ref[], OOC_LEN set_0d) {
373 register OOC_INT64 i0,i1;
374 OOC_ALLOCATE_VPAR(set,OOC_CHAR8 ,set_0d)
375
376 OOC_INITIALIZE_VPAR(set__ref,set,OOC_CHAR8 ,set_0d)
377 i0 = *pos;
378 i1 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index(i0, str_0d, OOC_UINT16, 5200)));
379 i1 = URI_CharClass__IsMember(i1, (void*)(OOC_INT64)set, set_0d);
380 if (i1) goto l3;
381 return 0u;
382 goto l4;
383 l3:
384 *pos = (i0+1);
385 return 1u;
386 l4:
387 _failed_function(5059); return 0;
388 ;
389 }
390
URI_CharClass__SkipAuthChar(const OOC_CHAR8 str[],OOC_LEN str_0d,OOC_INT16 * pos)391 OOC_CHAR8 URI_CharClass__SkipAuthChar(const OOC_CHAR8 str[], OOC_LEN str_0d, OOC_INT16 *pos) {
392 register OOC_INT64 i0;
393
394 i0 = URI_CharClass__SkipUnreserved((void*)(OOC_INT64)str, str_0d, (void*)(OOC_INT64)pos);
395 if (i0) goto l3;
396 i0 = URI_CharClass__SkipEscaped((void*)(OOC_INT64)str, str_0d, (void*)(OOC_INT64)pos);
397
398 goto l5;
399 l3:
400 i0=1u;
401 l5:
402 if (i0) goto l7;
403 i0 = URI_CharClass__SkipMember((void*)(OOC_INT64)str, str_0d, (void*)(OOC_INT64)pos, (OOC_CHAR8*)"$,;:@&=+", 9);
404
405 goto l8;
406 l7:
407 i0=1u;
408 l8:
409 return i0;
410 ;
411 }
412
OOC_URI_CharClass_init(void)413 void OOC_URI_CharClass_init(void) {
414
415 return;
416 ;
417 }
418
OOC_URI_CharClass_destroy(void)419 void OOC_URI_CharClass_destroy(void) {
420 }
421
422 /* --- */
423