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