1 #include <XML/Parser.d>
2 #include <__oo2c.h>
3 #include <setjmp.h>
4 
XML_Parser__IsCharUCS4(OOC_INT32 ch)5 static OOC_CHAR8 XML_Parser__IsCharUCS4(OOC_INT32 ch) {
6   register OOC_INT64 i0,i1;
7 
8   i0 = ch;
9   i1 = 32<=i0;
10   if (i1) goto l3;
11   i1=0u;
12   goto l5;
13 l3:
14   i1 = i0<=55295;
15 
16 l5:
17   if (i1) goto l7;
18   i1 = i0==9;
19 
20   goto l9;
21 l7:
22   i1=1u;
23 l9:
24   if (i1) goto l11;
25   i1 = i0==10;
26 
27   goto l13;
28 l11:
29   i1=1u;
30 l13:
31   if (i1) goto l15;
32   i1 = i0==13;
33 
34   goto l17;
35 l15:
36   i1=1u;
37 l17:
38   if (i1) goto l23;
39   i1 = 57344<=i0;
40   if (i1) goto l21;
41   i1=0u;
42   goto l25;
43 l21:
44   i1 = i0<=65533;
45 
46   goto l25;
47 l23:
48   i1=1u;
49 l25:
50   if (i1) goto l31;
51   i1 = 65536<=i0;
52   if (i1) goto l29;
53   i0=0u;
54   goto l32;
55 l29:
56   i0 = i0<=1114111;
57 
58   goto l32;
59 l31:
60   i0=1u;
61 l32:
62   return i0;
63   ;
64 }
65 
XML_Parser__IsDigit(OOC_CHAR16 ch)66 static OOC_CHAR8 XML_Parser__IsDigit(OOC_CHAR16 ch) {
67   register OOC_INT64 i0,i1;
68 
69   i0 = ch;
70   i1 = (OOC_UINT16)i0<(OOC_UINT16)256u;
71   if (i1) goto l6;
72   switch (i0) {
73   case 1632u ... 1641u:
74   case 1776u ... 1785u:
75   case 2406u ... 2415u:
76   case 2534u ... 2543u:
77   case 2662u ... 2671u:
78   case 2790u ... 2799u:
79   case 2918u ... 2927u:
80   case 3047u ... 3055u:
81   case 3174u ... 3183u:
82   case 3302u ... 3311u:
83   case 3430u ... 3439u:
84   case 3664u ... 3673u:
85   case 3792u ... 3801u:
86   case 3872u ... 3881u:
87     return 1u;
88     goto l11;
89   default:
90     return 0u;
91     goto l11;
92   }
93 l6:
94   i1 = (OOC_UINT16)48u<=(OOC_UINT16)i0;
95   if (i1) goto l9;
96   i0=0u;
97   goto l10;
98 l9:
99   i0 = (OOC_UINT16)i0<=(OOC_UINT16)57u;
100 
101 l10:
102   return i0;
103 l11:
104   _failed_function(9290); return 0;
105   ;
106 }
107 
XML_Parser__IsBaseChar(OOC_CHAR16 ch)108 static OOC_CHAR8 XML_Parser__IsBaseChar(OOC_CHAR16 ch) {
109   register OOC_INT64 i0,i1;
110 
111   i0 = ch;
112   i1 = (OOC_UINT16)i0<(OOC_UINT16)256u;
113   if (i1) goto l41;
114   i1 = (OOC_UINT16)i0<(OOC_UINT16)1024u;
115   if (i1) goto l36;
116   i1 = (OOC_UINT16)i0<(OOC_UINT16)2048u;
117   if (i1) goto l31;
118   i1 = (OOC_UINT16)i0<(OOC_UINT16)3072u;
119   if (i1) goto l26;
120   i1 = (OOC_UINT16)i0<(OOC_UINT16)4096u;
121   if (i1) goto l21;
122   i1 = (OOC_UINT16)i0<(OOC_UINT16)5120u;
123   if (i1) goto l16;
124   switch (i0) {
125   case 7680u ... 7835u:
126   case 7840u ... 7929u:
127   case 7936u ... 7957u:
128   case 7960u ... 7965u:
129   case 7968u ... 8005u:
130   case 8008u ... 8013u:
131   case 8016u ... 8023u:
132   case 8025u:
133   case 8027u:
134   case 8029u:
135   case 8031u ... 8061u:
136   case 8064u ... 8116u:
137   case 8118u ... 8124u:
138   case 8126u:
139   case 8130u ... 8132u:
140   case 8134u ... 8140u:
141   case 8144u ... 8147u:
142   case 8150u ... 8155u:
143   case 8160u ... 8172u:
144   case 8178u ... 8180u:
145   case 8182u ... 8188u:
146   case 8486u:
147   case 8490u ... 8491u:
148   case 8494u:
149   case 8576u ... 8578u:
150   case 12353u ... 12436u:
151   case 12449u ... 12538u:
152   case 12549u ... 12588u:
153   case 44032u ... 55203u:
154     return 1u;
155     goto l45;
156   default:
157     return 0u;
158     goto l45;
159   }
160 l16:
161   switch (i0) {
162   case 4256u ... 4293u:
163   case 4304u ... 4342u:
164   case 4352u:
165   case 4354u ... 4355u:
166   case 4357u ... 4359u:
167   case 4361u:
168   case 4363u ... 4364u:
169   case 4366u ... 4370u:
170   case 4412u:
171   case 4414u:
172   case 4416u:
173   case 4428u:
174   case 4430u:
175   case 4432u:
176   case 4436u ... 4437u:
177   case 4441u:
178   case 4447u ... 4449u:
179   case 4451u:
180   case 4453u:
181   case 4455u:
182   case 4457u:
183   case 4461u ... 4462u:
184   case 4466u ... 4467u:
185   case 4469u:
186   case 4510u:
187   case 4520u:
188   case 4523u:
189   case 4526u ... 4527u:
190   case 4535u ... 4536u:
191   case 4538u:
192   case 4540u ... 4546u:
193   case 4587u:
194   case 4592u:
195   case 4601u:
196     return 1u;
197     goto l45;
198   default:
199     return 0u;
200     goto l45;
201   }
202 l21:
203   switch (i0) {
204   case 3077u ... 3084u:
205   case 3086u ... 3088u:
206   case 3090u ... 3112u:
207   case 3114u ... 3123u:
208   case 3125u ... 3129u:
209   case 3168u ... 3169u:
210   case 3205u ... 3212u:
211   case 3214u ... 3216u:
212   case 3218u ... 3240u:
213   case 3242u ... 3251u:
214   case 3253u ... 3257u:
215   case 3294u:
216   case 3296u ... 3297u:
217   case 3333u ... 3340u:
218   case 3342u ... 3344u:
219   case 3346u ... 3368u:
220   case 3370u ... 3385u:
221   case 3424u ... 3425u:
222   case 3585u ... 3630u:
223   case 3632u:
224   case 3634u ... 3635u:
225   case 3648u ... 3653u:
226   case 3713u ... 3714u:
227   case 3716u:
228   case 3719u ... 3720u:
229   case 3722u:
230   case 3725u:
231   case 3732u ... 3735u:
232   case 3737u ... 3743u:
233   case 3745u ... 3747u:
234   case 3749u:
235   case 3751u:
236   case 3754u ... 3755u:
237   case 3757u ... 3758u:
238   case 3760u:
239   case 3762u ... 3763u:
240   case 3773u:
241   case 3776u ... 3780u:
242   case 3904u ... 3911u:
243   case 3913u ... 3945u:
244     return 1u;
245     goto l45;
246   default:
247     return 0u;
248     goto l45;
249   }
250 l26:
251   switch (i0) {
252   case 2309u ... 2361u:
253   case 2365u:
254   case 2392u ... 2401u:
255   case 2437u ... 2444u:
256   case 2447u ... 2448u:
257   case 2451u ... 2472u:
258   case 2474u ... 2480u:
259   case 2482u:
260   case 2486u ... 2489u:
261   case 2524u ... 2525u:
262   case 2527u ... 2529u:
263   case 2544u ... 2545u:
264   case 2565u ... 2570u:
265   case 2575u ... 2576u:
266   case 2579u ... 2600u:
267   case 2602u ... 2608u:
268   case 2610u ... 2611u:
269   case 2613u ... 2614u:
270   case 2616u ... 2617u:
271   case 2649u ... 2652u:
272   case 2654u:
273   case 2674u ... 2676u:
274   case 2693u ... 2699u:
275   case 2701u:
276   case 2703u ... 2705u:
277   case 2707u ... 2728u:
278   case 2730u ... 2736u:
279   case 2738u ... 2739u:
280   case 2741u ... 2745u:
281   case 2749u:
282   case 2784u:
283   case 2821u ... 2828u:
284   case 2831u ... 2832u:
285   case 2835u ... 2856u:
286   case 2858u ... 2864u:
287   case 2866u ... 2867u:
288   case 2870u ... 2873u:
289   case 2877u:
290   case 2908u ... 2909u:
291   case 2911u ... 2913u:
292   case 2949u ... 2954u:
293   case 2958u ... 2960u:
294   case 2962u ... 2965u:
295   case 2969u ... 2970u:
296   case 2972u:
297   case 2974u ... 2975u:
298   case 2979u ... 2980u:
299   case 2984u ... 2986u:
300   case 2990u ... 2997u:
301   case 2999u ... 3001u:
302     return 1u;
303     goto l45;
304   default:
305     return 0u;
306     goto l45;
307   }
308 l31:
309   switch (i0) {
310   case 1025u ... 1036u:
311   case 1038u ... 1103u:
312   case 1105u ... 1116u:
313   case 1118u ... 1153u:
314   case 1168u ... 1220u:
315   case 1223u ... 1224u:
316   case 1227u ... 1228u:
317   case 1232u ... 1259u:
318   case 1262u ... 1269u:
319   case 1272u ... 1273u:
320   case 1329u ... 1366u:
321   case 1369u:
322   case 1377u ... 1414u:
323   case 1488u ... 1514u:
324   case 1520u ... 1522u:
325   case 1569u ... 1594u:
326   case 1601u ... 1610u:
327   case 1649u ... 1719u:
328   case 1722u ... 1726u:
329   case 1728u ... 1742u:
330   case 1744u ... 1747u:
331   case 1749u:
332   case 1765u ... 1766u:
333     return 1u;
334     goto l45;
335   default:
336     return 0u;
337     goto l45;
338   }
339 l36:
340   switch (i0) {
341   case 256u ... 305u:
342   case 308u ... 318u:
343   case 321u ... 328u:
344   case 330u ... 382u:
345   case 384u ... 451u:
346   case 461u ... 496u:
347   case 500u ... 501u:
348   case 506u ... 535u:
349   case 592u ... 680u:
350   case 699u ... 705u:
351   case 902u:
352   case 904u ... 906u:
353   case 908u:
354   case 910u ... 929u:
355   case 931u ... 974u:
356   case 976u ... 982u:
357   case 986u:
358   case 988u:
359   case 990u:
360   case 992u:
361   case 994u ... 1011u:
362     return 1u;
363     goto l45;
364   default:
365     return 0u;
366     goto l45;
367   }
368 l41:
369   switch (i0) {
370   case 65u ... 90u:
371   case 97u ... 122u:
372   case 192u ... 214u:
373   case 216u ... 246u:
374   case 248u ... 255u:
375     return 1u;
376     goto l45;
377   default:
378     return 0u;
379     goto l45;
380   }
381 l45:
382   _failed_function(9776); return 0;
383   ;
384 }
385 
XML_Parser__IsIdeographic(OOC_CHAR16 ch)386 static OOC_CHAR8 XML_Parser__IsIdeographic(OOC_CHAR16 ch) {
387   register OOC_INT64 i0,i1;
388 
389   i0 = ch;
390   i1 = (OOC_UINT16)19968u<=(OOC_UINT16)i0;
391   if (i1) goto l3;
392   i1=0u;
393   goto l5;
394 l3:
395   i1 = (OOC_UINT16)i0<=(OOC_UINT16)40869u;
396 
397 l5:
398   if (i1) goto l7;
399   i1 = i0==12295u;
400 
401   goto l9;
402 l7:
403   i1=1u;
404 l9:
405   if (i1) goto l15;
406   i1 = (OOC_UINT16)12321u<=(OOC_UINT16)i0;
407   if (i1) goto l13;
408   i0=0u;
409   goto l16;
410 l13:
411   i0 = (OOC_UINT16)i0<=(OOC_UINT16)12329u;
412 
413   goto l16;
414 l15:
415   i0=1u;
416 l16:
417   return i0;
418   ;
419 }
420 
XML_Parser__IsCombiningChar(OOC_CHAR16 ch)421 static OOC_CHAR8 XML_Parser__IsCombiningChar(OOC_CHAR16 ch) {
422   register OOC_INT64 i0,i1;
423 
424   i0 = ch;
425   i1 = (OOC_UINT16)i0<(OOC_UINT16)768u;
426   if (i1) goto l31;
427   i1 = (OOC_UINT16)i0<(OOC_UINT16)2560u;
428   if (i1) goto l26;
429   i1 = (OOC_UINT16)i0<(OOC_UINT16)3328u;
430   if (i1) goto l21;
431   i1 = (OOC_UINT16)i0<(OOC_UINT16)4096u;
432   if (i1) goto l16;
433   i1 = (OOC_UINT16)i0<(OOC_UINT16)8192u;
434   if (i1) goto l14;
435   switch (i0) {
436   case 8400u ... 8412u:
437   case 8417u:
438   case 12330u ... 12335u:
439   case 12441u:
440   case 12442u:
441     return 1u;
442     goto l32;
443   default:
444     return 0u;
445     goto l32;
446   }
447 l14:
448   return 0u;
449   goto l32;
450 l16:
451   switch (i0) {
452   case 3330u ... 3331u:
453   case 3390u ... 3395u:
454   case 3398u ... 3400u:
455   case 3402u ... 3405u:
456   case 3415u:
457   case 3633u:
458   case 3636u ... 3642u:
459   case 3655u ... 3662u:
460   case 3761u:
461   case 3764u ... 3769u:
462   case 3771u ... 3772u:
463   case 3784u ... 3789u:
464   case 3864u ... 3865u:
465   case 3893u:
466   case 3895u:
467   case 3897u:
468   case 3902u:
469   case 3903u:
470   case 3953u ... 3972u:
471   case 3974u ... 3979u:
472   case 3984u ... 3989u:
473   case 3991u:
474   case 3993u ... 4013u:
475   case 4017u ... 4023u:
476   case 4025u:
477     return 1u;
478     goto l32;
479   default:
480     return 0u;
481     goto l32;
482   }
483 l21:
484   switch (i0) {
485   case 2562u:
486   case 2620u:
487   case 2622u:
488   case 2623u:
489   case 2624u ... 2626u:
490   case 2631u ... 2632u:
491   case 2635u ... 2637u:
492   case 2672u ... 2673u:
493   case 2689u ... 2691u:
494   case 2748u:
495   case 2750u ... 2757u:
496   case 2759u ... 2761u:
497   case 2763u ... 2765u:
498   case 2817u ... 2819u:
499   case 2876u:
500   case 2878u ... 2883u:
501   case 2887u ... 2888u:
502   case 2891u ... 2893u:
503   case 2902u ... 2903u:
504   case 2946u ... 2947u:
505   case 3006u ... 3010u:
506   case 3014u ... 3016u:
507   case 3018u ... 3021u:
508   case 3031u:
509   case 3073u ... 3075u:
510   case 3134u ... 3140u:
511   case 3142u ... 3144u:
512   case 3146u ... 3149u:
513   case 3157u ... 3158u:
514   case 3202u ... 3203u:
515   case 3262u ... 3268u:
516   case 3270u ... 3272u:
517   case 3274u ... 3277u:
518   case 3285u ... 3286u:
519     return 1u;
520     goto l32;
521   default:
522     return 0u;
523     goto l32;
524   }
525 l26:
526   switch (i0) {
527   case 768u ... 837u:
528   case 864u ... 865u:
529   case 1155u ... 1158u:
530   case 1425u ... 1441u:
531   case 1443u ... 1465u:
532   case 1467u ... 1469u:
533   case 1471u:
534   case 1473u ... 1474u:
535   case 1476u:
536   case 1611u ... 1618u:
537   case 1648u:
538   case 1750u ... 1756u:
539   case 1757u ... 1759u:
540   case 1760u ... 1764u:
541   case 1767u ... 1768u:
542   case 1770u ... 1773u:
543   case 2305u ... 2307u:
544   case 2364u:
545   case 2366u ... 2380u:
546   case 2381u:
547   case 2385u ... 2388u:
548   case 2402u ... 2403u:
549   case 2433u ... 2435u:
550   case 2492u:
551   case 2494u:
552   case 2495u:
553   case 2496u ... 2500u:
554   case 2503u ... 2504u:
555   case 2507u ... 2509u:
556   case 2519u:
557   case 2530u ... 2531u:
558     return 1u;
559     goto l32;
560   default:
561     return 0u;
562     goto l32;
563   }
564 l31:
565   return 0u;
566 l32:
567   _failed_function(13952); return 0;
568   ;
569 }
570 
XML_Parser__IsExtender(OOC_CHAR16 ch)571 static OOC_CHAR8 XML_Parser__IsExtender(OOC_CHAR16 ch) {
572   register OOC_INT64 i0,i1;
573 
574   i0 = ch;
575   i1 = i0==183u;
576   if (i1) goto l10;
577   i1 = (OOC_UINT16)i0>=(OOC_UINT16)720u;
578   if (i1) goto l5;
579   return 0u;
580   goto l11;
581 l5:
582   switch (i0) {
583   case 720u:
584   case 721u:
585   case 903u:
586   case 1600u:
587   case 3654u:
588   case 3782u:
589   case 12293u:
590   case 12337u ... 12341u:
591   case 12445u ... 12446u:
592   case 12540u ... 12542u:
593     return 1u;
594     goto l11;
595   default:
596     return 0u;
597     goto l11;
598   }
599 l10:
600   return 1u;
601 l11:
602   _failed_function(15990); return 0;
603   ;
604 }
605 
XML_Parser__IsLetter(OOC_CHAR16 ch)606 static OOC_CHAR8 XML_Parser__IsLetter(OOC_CHAR16 ch) {
607   register OOC_INT64 i0,i1;
608 
609   i0 = ch;
610   i1 = XML_Parser__IsBaseChar(i0);
611   if (i1) goto l3;
612   i0 = XML_Parser__IsIdeographic(i0);
613 
614   goto l4;
615 l3:
616   i0=1u;
617 l4:
618   return i0;
619   ;
620 }
621 
XML_Parser__IsNameChar(OOC_CHAR16 ch)622 OOC_CHAR8 XML_Parser__IsNameChar(OOC_CHAR16 ch) {
623   register OOC_INT64 i0,i1;
624 
625   i0 = ch;
626   i1 = XML_Parser__IsLetter(i0);
627   if (i1) goto l3;
628   i1 = XML_Parser__IsDigit(i0);
629 
630   goto l5;
631 l3:
632   i1=1u;
633 l5:
634   if (i1) goto l7;
635   i1 = i0==46u;
636 
637   goto l9;
638 l7:
639   i1=1u;
640 l9:
641   if (i1) goto l11;
642   i1 = i0==45u;
643 
644   goto l13;
645 l11:
646   i1=1u;
647 l13:
648   if (i1) goto l15;
649   i1 = i0==95u;
650 
651   goto l17;
652 l15:
653   i1=1u;
654 l17:
655   if (i1) goto l19;
656   i1 = i0==58u;
657 
658   goto l21;
659 l19:
660   i1=1u;
661 l21:
662   if (i1) goto l23;
663   i1 = XML_Parser__IsCombiningChar(i0);
664 
665   goto l25;
666 l23:
667   i1=1u;
668 l25:
669   if (i1) goto l27;
670   i0 = XML_Parser__IsExtender(i0);
671 
672   goto l28;
673 l27:
674   i0=1u;
675 l28:
676   return i0;
677   ;
678 }
679 
XML_Parser__IsNameChar0(OOC_CHAR16 ch)680 OOC_CHAR8 XML_Parser__IsNameChar0(OOC_CHAR16 ch) {
681   register OOC_INT64 i0,i1;
682 
683   i0 = ch;
684   i1 = XML_Parser__IsLetter(i0);
685   if (i1) goto l3;
686   i1 = i0==95u;
687 
688   goto l5;
689 l3:
690   i1=1u;
691 l5:
692   if (i1) goto l7;
693   i0 = i0==58u;
694 
695   goto l8;
696 l7:
697   i0=1u;
698 l8:
699   return i0;
700   ;
701 }
702 
XML_Parser__IsPubidChar(OOC_CHAR16 ch)703 static OOC_CHAR8 XML_Parser__IsPubidChar(OOC_CHAR16 ch) {
704   register OOC_INT64 i0,i1,i2;
705 
706   i0 = ch;
707   i1 = _cap(i0);
708   i2 = (OOC_UINT16)65u<=(OOC_UINT16)i1;
709   if (i2) goto l3;
710   i1=0u;
711   goto l5;
712 l3:
713   i1 = (OOC_UINT16)i1<=(OOC_UINT16)90u;
714 
715 l5:
716   if (i1) goto l11;
717   i1 = (OOC_UINT16)48u<=(OOC_UINT16)i0;
718   if (i1) goto l9;
719   i1=0u;
720   goto l13;
721 l9:
722   i1 = (OOC_UINT16)i0<=(OOC_UINT16)57u;
723 
724   goto l13;
725 l11:
726   i1=1u;
727 l13:
728   if (i1) goto l15;
729   i1 = i0==32u;
730 
731   goto l17;
732 l15:
733   i1=1u;
734 l17:
735   if (i1) goto l19;
736   i1 = i0==13u;
737 
738   goto l21;
739 l19:
740   i1=1u;
741 l21:
742   if (i1) goto l23;
743   i1 = i0==10u;
744 
745   goto l25;
746 l23:
747   i1=1u;
748 l25:
749   if (i1) goto l44;
750   i1 = *(OOC_UINT16*)((OOC_INT64)XML_Parser__suplPubidChar+(_check_index(0, 32, OOC_UINT32, 17141))*2);
751   i1 = i1!=0u;
752   if (i1) goto l29;
753   i1=0u;
754   goto l31;
755 l29:
756   i1 = *(OOC_UINT16*)((OOC_INT64)XML_Parser__suplPubidChar+(_check_index(0, 32, OOC_UINT32, 17167))*2);
757   i1 = i1!=i0;
758 
759 l31:
760   if (i1) goto l33;
761   i0=0;
762   goto l43;
763 l33:
764   i1=0;
765 l34_loop:
766   i1 = i1+1;
767   i2 = *(OOC_UINT16*)((OOC_INT64)XML_Parser__suplPubidChar+(_check_index(i1, 32, OOC_UINT32, 17141))*2);
768   i2 = i2!=0u;
769   if (i2) goto l37;
770   i2=0u;
771   goto l39;
772 l37:
773   i2 = *(OOC_UINT16*)((OOC_INT64)XML_Parser__suplPubidChar+(_check_index(i1, 32, OOC_UINT32, 17167))*2);
774   i2 = i2!=i0;
775 
776 l39:
777   if (i2) goto l34_loop;
778 l42:
779   i0=i1;
780 l43:
781   i0 = *(OOC_UINT16*)((OOC_INT64)XML_Parser__suplPubidChar+(_check_index(i0, 32, OOC_UINT32, 17234))*2);
782   return (i0!=0u);
783   goto l45;
784 l44:
785   return 1u;
786 l45:
787   _failed_function(16859); return 0;
788   ;
789 }
790 
XML_Parser__IsVersionNumChar(OOC_CHAR16 ch)791 static OOC_CHAR8 XML_Parser__IsVersionNumChar(OOC_CHAR16 ch) {
792   register OOC_INT64 i0,i1,i2;
793 
794   i0 = ch;
795   i1 = _cap(i0);
796   i2 = (OOC_UINT16)65u<=(OOC_UINT16)i1;
797   if (i2) goto l3;
798   i1=0u;
799   goto l5;
800 l3:
801   i1 = (OOC_UINT16)i1<=(OOC_UINT16)90u;
802 
803 l5:
804   if (i1) goto l11;
805   i1 = (OOC_UINT16)48u<=(OOC_UINT16)i0;
806   if (i1) goto l9;
807   i1=0u;
808   goto l13;
809 l9:
810   i1 = (OOC_UINT16)i0<=(OOC_UINT16)57u;
811 
812   goto l13;
813 l11:
814   i1=1u;
815 l13:
816   if (i1) goto l15;
817   i1 = i0==95u;
818 
819   goto l17;
820 l15:
821   i1=1u;
822 l17:
823   if (i1) goto l19;
824   i1 = i0==46u;
825 
826   goto l21;
827 l19:
828   i1=1u;
829 l21:
830   if (i1) goto l23;
831   i1 = i0==58u;
832 
833   goto l25;
834 l23:
835   i1=1u;
836 l25:
837   if (i1) goto l27;
838   i0 = i0==45u;
839 
840   goto l28;
841 l27:
842   i0=1u;
843 l28:
844   return i0;
845   ;
846 }
847 
XML_Parser__IsEncNameChar(OOC_CHAR16 ch,OOC_CHAR8 first)848 static OOC_CHAR8 XML_Parser__IsEncNameChar(OOC_CHAR16 ch, OOC_CHAR8 first) {
849   register OOC_INT64 i0,i1,i2;
850 
851   i0 = ch;
852   i1 = _cap(i0);
853   i2 = (OOC_UINT16)65u<=(OOC_UINT16)i1;
854   if (i2) goto l3;
855   i1=0u;
856   goto l5;
857 l3:
858   i1 = (OOC_UINT16)i1<=(OOC_UINT16)90u;
859 
860 l5:
861   if (i1) goto l27;
862   i1 = first;
863   i1 = !i1;
864   if (i1) goto l9;
865   return 0u;
866   goto l28;
867 l9:
868   i1 = (OOC_UINT16)48u<=(OOC_UINT16)i0;
869   if (i1) goto l12;
870   i1=0u;
871   goto l14;
872 l12:
873   i1 = (OOC_UINT16)i0<=(OOC_UINT16)57u;
874 
875 l14:
876   if (i1) goto l16;
877   i1 = i0==46u;
878 
879   goto l18;
880 l16:
881   i1=1u;
882 l18:
883   if (i1) goto l20;
884   i1 = i0==95u;
885 
886   goto l22;
887 l20:
888   i1=1u;
889 l22:
890   if (i1) goto l24;
891   i0 = i0==45u;
892 
893   goto l25;
894 l24:
895   i0=1u;
896 l25:
897   return i0;
898   goto l28;
899 l27:
900   return 1u;
901 l28:
902   _failed_function(17526); return 0;
903   ;
904 }
905 
XML_Parser__SetBaseURI(Msg__Msg err,const OOC_CHAR8 name__ref[],OOC_LEN name_0d,URI__URI uri)906 static void XML_Parser__SetBaseURI(Msg__Msg err, const OOC_CHAR8 name__ref[], OOC_LEN name_0d, URI__URI uri) {
907   register OOC_INT64 i0,i1;
908   OOC_ALLOCATE_VPAR(name,OOC_CHAR8 ,name_0d)
909   Object__String str;
910   Object__String8 str8;
911   Object__CharsLatin1 chars;
912 
913   OOC_INITIALIZE_VPAR(name__ref,name,OOC_CHAR8 ,name_0d)
914   i0 = (OOC_INT64)uri;
915   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 18090)))), URI__URIDesc_ToString)),URI__URIDesc_ToString)((URI__URI)i0);
916   str = (Object__String)i0;
917   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 18118)))), Object__StringDesc_ToString8)),Object__StringDesc_ToString8)((Object__String)i0, 63u);
918   str8 = (Object__String8)i0;
919   i0 = (OOC_INT64)Object__String8Desc_CharsLatin1((Object__String8)i0);
920   chars = (Object__CharsLatin1)i0;
921   i1 = OOC_ARRAY_LENGTH((_check_pointer(i0, 18220)), 0);
922   i0 = (OOC_INT64)Msg__GetStringPtr((void*)(_check_pointer(i0, 18220)), i1);
923   i1 = (OOC_INT64)err;
924   OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 18175)))), Msg__MsgDesc_SetStringAttrib)),Msg__MsgDesc_SetStringAttrib)((Msg__Msg)i1, (void*)(OOC_INT64)name, name_0d, (Msg__StringPtr)i0);
925   return;
926   ;
927 }
928 
XML_Parser__ErrorListenerDesc_Error(XML_Parser__ErrorListener el,XML_Error__Context context,OOC_INT32 code,OOC_CHAR8 fatalError,const struct XML_Locator__Position * pos__ref)929 Msg__Msg XML_Parser__ErrorListenerDesc_Error(XML_Parser__ErrorListener el, XML_Error__Context context, OOC_INT32 code, OOC_CHAR8 fatalError, const struct XML_Locator__Position *pos__ref) {
930   register OOC_INT64 i0,i1,i2,i3;
931   OOC_ALLOCATE_VPAR(pos,XML_Locator__Position ,1)
932   XML_Parser__Parser p;
933   Msg__Msg err;
934 
935   OOC_INITIALIZE_VPAR(pos__ref,pos,XML_Locator__Position ,32)
936   i0 = (OOC_INT64)el;
937   i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 18516));
938   p = (XML_Parser__Parser)i0;
939   i1 = (OOC_INT64)context;
940   i2 = code;
941   i1 = (OOC_INT64)XML_Error__New((XML_Error__Context)i1, i2);
942   err = (Msg__Msg)i1;
943   i2 = *(OOC_INT32*)(OOC_INT64)pos;
944   i3 = XML_Error__errMsgCharPosBase;
945   OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 18566)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i1, (OOC_CHAR8*)"char", 5, (i2+i3));
946   i2 = *(OOC_INT32*)((OOC_INT64)pos+4);
947   i3 = XML_Error__errMsgLineBase;
948   OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 18638)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i1, (OOC_CHAR8*)"line", 5, (i2+i3));
949   i2 = *(OOC_INT32*)((OOC_INT64)pos+8);
950   i3 = XML_Error__errMsgColumnBase;
951   OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 18702)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i1, (OOC_CHAR8*)"column", 7, (i2+i3));
952   i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 18797))+104);
953   i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 18808))+72);
954   XML_Parser__SetBaseURI((Msg__Msg)i1, (OOC_CHAR8*)"baseURI", 8, (URI__URI)i2);
955   i2 = (OOC_INT64)*(OOC_INT64*)((OOC_INT64)pos+24);
956   i3 = i2!=0;
957   if (!i3) goto l3;
958   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 18974))+8);
959   i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 18974))+8);
960   i3 = OOC_ARRAY_LENGTH((_check_pointer(i3, 18980)), 0);
961   i2 = (OOC_INT64)Msg__GetLStringPtr((void*)(_check_pointer(i2, 18980)), i3);
962   OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 18870)))), Msg__MsgDesc_SetLStringAttrib)),Msg__MsgDesc_SetLStringAttrib)((Msg__Msg)i1, (OOC_CHAR8*)"entity_name", 12, (Msg__LStringPtr)i2);
963 l3:
964   i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 18998));
965   i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 18998));
966   OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 19007)))), Msg__MsgListDesc_Append)),Msg__MsgListDesc_Append)((Msg__MsgList)i3, (Msg__Msg)i1);
967   i2 = fatalError;
968   if (i2) goto l6;
969   i2=0u;
970   goto l8;
971 l6:
972   i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 19058))+72);
973   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 19045))+80);
974   i2 = i3==i2;
975 
976 l8:
977   if (!i2) goto l10;
978   i2 = (OOC_INT64)XML_Builder__New();
979   *(OOC_INT64*)((_check_pointer(i0, 19088))+80) = i2;
980 l10:
981   return (Msg__Msg)i1;
982   ;
983 }
984 
XML_Parser__ParserDesc_ParseDocument(XML_Parser__Parser p)985 void XML_Parser__ParserDesc_ParseDocument(XML_Parser__Parser p) {
986   register OOC_INT64 i0,i1,i2,i3,i4;
987   XML_UnicodeBuffer__CharArray chars;
988   XML_DTD__Builder dtd;
989   OOC_INT32 cpos;
990   OOC_INT32 cstart;
991   OOC_INT32 cdelta;
992   auto void XML_Parser__ParserDesc_ParseDocument_DecLength(struct XML_Locator__Position *pos, RT0__Struct pos__tag, OOC_INT32 len);
993   auto void XML_Parser__ParserDesc_ParseDocument_StorePosition(struct XML_Locator__Position *pos, RT0__Struct pos__tag);
994   auto void XML_Parser__ParserDesc_ParseDocument_ResetLocator(void);
995   auto void XML_Parser__ParserDesc_ParseDocument_SetFileEntity(XML_DTD__ExternalEntity _new);
996   auto void XML_Parser__ParserDesc_ParseDocument_ErrPosNF(OOC_INT32 code, struct XML_Locator__Position *pos, RT0__Struct pos__tag);
997   auto void XML_Parser__ParserDesc_ParseDocument_ErrPos(OOC_INT32 code, struct XML_Locator__Position *pos, RT0__Struct pos__tag);
998   auto void XML_Parser__ParserDesc_ParseDocument_WriteBuffer(const OOC_CHAR8 msg__ref[], OOC_LEN msg_0d);
999   auto void XML_Parser__ParserDesc_ParseDocument_ErrNF(OOC_INT32 code);
1000   auto void XML_Parser__ParserDesc_ParseDocument_Err(OOC_INT32 code);
1001   auto XML_UnicodeBuffer__CharArray XML_Parser__ParserDesc_ParseDocument_Clone(XML_UnicodeBuffer__CharArray string);
1002   auto XML_UnicodeBuffer__CharArray XML_Parser__ParserDesc_ParseDocument_GetString(OOC_INT32 start, OOC_INT32 end);
1003   auto XML_UnicodeBuffer__Input XML_Parser__ParserDesc_ParseDocument_GetBuffer(XML_DTD__ExternalEntity entity);
1004   auto void XML_Parser__ParserDesc_ParseDocument_CheckInvalidChars(void);
1005   auto XML_UnicodeBuffer__CharArray XML_Parser__ParserDesc_ParseDocument_Internalize(XML_DTD__ExternalEntity entity);
1006   auto void XML_Parser__ParserDesc_ParseDocument_PushEntity(XML_DTD__Entity entity, OOC_CHAR8 syncEntity);
1007   auto void XML_Parser__ParserDesc_ParseDocument_PopEntity(void);
1008   auto void XML_Parser__ParserDesc_ParseDocument_NextBlock(void);
1009   auto void XML_Parser__ParserDesc_ParseDocument_DiscardPreviousInput(void);
1010   auto void XML_Parser__ParserDesc_ParseDocument_EndOfLine(void);
1011   auto void XML_Parser__ParserDesc_ParseDocument_Tab(void);
1012   auto OOC_CHAR8 XML_Parser__ParserDesc_ParseDocument_LookingAtS(void);
1013   auto OOC_CHAR8 XML_Parser__ParserDesc_ParseDocument_LookingAtSnoPE(void);
1014   auto OOC_CHAR8 XML_Parser__ParserDesc_ParseDocument_LookingAt(const OOC_CHAR8 str__ref[], OOC_LEN str_0d, OOC_INT8 followedBy);
1015   auto void XML_Parser__ParserDesc_ParseDocument_NextChar(void);
1016   auto XML_UnicodeBuffer__CharArray XML_Parser__ParserDesc_ParseDocument_Nmtoken(OOC_CHAR8 checkForQName, OOC_CHAR8 noColon);
1017   auto XML_UnicodeBuffer__CharArray XML_Parser__ParserDesc_ParseDocument_Name(OOC_CHAR8 noColon);
1018   auto void XML_Parser__ParserDesc_ParseDocument_CheckChar(OOC_CHAR8 ch);
1019   auto void XML_Parser__ParserDesc_ParseDocument_XMLDecl(XML_DTD__ExternalEntity entity);
1020   auto void XML_Parser__ParserDesc_ParseDocument_extSubsetDecl(void);
1021   auto void XML_Parser__ParserDesc_ParseDocument_SkippedEntity(XML_UnicodeBuffer__CharArray name);
1022   auto void XML_Parser__ParserDesc_ParseDocument_PEReference(OOC_CHAR8 declSep);
1023   auto void XML_Parser__ParserDesc_ParseDocument_OptS(OOC_CHAR8 noPE);
1024   auto void XML_Parser__ParserDesc_ParseDocument_S(void);
1025   auto void XML_Parser__ParserDesc_ParseDocument_SnoPE(void);
1026   auto void XML_Parser__ParserDesc_ParseDocument_ControlChar(OOC_CHAR16 eolReplacement);
1027   auto XML_UnicodeBuffer__CharArray XML_Parser__ParserDesc_ParseDocument_String(OOC_INT8 type);
1028   auto void XML_Parser__ParserDesc_ParseDocument_Eq(void);
1029   auto void XML_Parser__ParserDesc_ParseDocument_XMLDecl(XML_DTD__ExternalEntity entity);
1030   auto XML_DTD__Entity XML_Parser__ParserDesc_ParseDocument_CurrentEntity(void);
1031   auto void XML_Parser__ParserDesc_ParseDocument_CheckCurrentEntity(XML_DTD__Entity reference);
1032   auto void XML_Parser__ParserDesc_ParseDocument_PI(void);
1033   auto void XML_Parser__ParserDesc_ParseDocument_Comment(void);
1034   auto void XML_Parser__ParserDesc_ParseDocument_CDSect(void);
1035   auto void XML_Parser__ParserDesc_ParseDocument_CharRef(void);
1036   auto XML_DTD__EntityRef XML_Parser__ParserDesc_ParseDocument_EntityRef(OOC_CHAR8 enforceDecl, OOC_CHAR8 permitExternal);
1037   auto XML_DTD__AttValue XML_Parser__ParserDesc_ParseDocument_AttValue(OOC_CHAR8 isAttDecl);
1038   auto void XML_Parser__ParserDesc_ParseDocument_Expand(XML_DTD__AttValue attValue);
1039   auto void XML_Parser__ParserDesc_ParseDocument_element(void);
1040   auto void XML_Parser__ParserDesc_ParseDocument_content(void);
1041   auto void XML_Parser__ParserDesc_ParseDocument_element(void);
1042   auto void XML_Parser__ParserDesc_ParseDocument_MiscRep(void);
1043   auto void XML_Parser__ParserDesc_ParseDocument_ExternalID(OOC_CHAR8 optionJustPubid, XML_UnicodeBuffer__CharArray *_public, XML_UnicodeBuffer__CharArray *system, URI__URI *baseURI);
1044   auto void XML_Parser__ParserDesc_ParseDocument_markupdecl(void);
1045   auto void XML_Parser__ParserDesc_ParseDocument_extSubsetDecl(void);
1046   auto void XML_Parser__ParserDesc_ParseDocument_prolog(void);
1047 
1048     void XML_Parser__ParserDesc_ParseDocument_DecLength(struct XML_Locator__Position *pos, RT0__Struct pos__tag, OOC_INT32 len) {
1049       register OOC_INT64 i0,i1,i2;
1050 
1051       i0 = *(OOC_INT32*)(OOC_INT64)pos;
1052       i1 = len;
1053       *(OOC_INT32*)(OOC_INT64)pos = (i0-i1);
1054       i0 = (OOC_INT64)pos+8;
1055       i2 = *(OOC_INT32*)i0;
1056       *(OOC_INT32*)i0 = (i2-i1);
1057       return;
1058       ;
1059     }
1060 
1061 
1062     void XML_Parser__ParserDesc_ParseDocument_StorePosition(struct XML_Locator__Position *pos, RT0__Struct pos__tag) {
1063       register OOC_INT64 i0,i1,i2,i3,i4,i5;
1064       OOC_INT32 i;
1065 
1066       i0 = (OOC_INT64)p;
1067       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 21555))+64);
1068       i1 = i1!=(OOC_INT64)0;
1069       if (i1) goto l3;
1070       i1=0u;
1071       goto l5;
1072 l3:
1073       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 21579))+64);
1074       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 21583))+40);
1075       i2 = (OOC_INT64)chars;
1076       i1 = i2==i1;
1077 
1078 l5:
1079       if (i1) goto l23;
1080       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 21911))+64);
1081       i1 = i1==(OOC_INT64)0;
1082       if (i1) goto l18;
1083       i1 = *(OOC_INT32*)((_check_pointer(i0, 21974))+160);
1084       i1 = i1-1;
1085       i = i1;
1086       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 22008))+152);
1087       i2 = _check_pointer(i2, 22017);
1088       i3 = OOC_ARRAY_LENGTH(i2, 0);
1089       i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 22034))+64);
1090       i2 = (OOC_INT64)*(OOC_INT64*)(i2+((_check_index(i1, i3, OOC_UINT32, 22017))*40));
1091       i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 22038))+40);
1092       i2 = i2!=i3;
1093       if (!i2) goto l19;
1094 l12_loop:
1095       i1 = i1-1;
1096       i = i1;
1097       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 22008))+152);
1098       i2 = _check_pointer(i2, 22017);
1099       i3 = OOC_ARRAY_LENGTH(i2, 0);
1100       i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 22034))+64);
1101       i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 22038))+40);
1102       i2 = (OOC_INT64)*(OOC_INT64*)(i2+((_check_index(i1, i3, OOC_UINT32, 22017))*40));
1103       i2 = i2!=i4;
1104       if (i2) goto l12_loop;
1105       goto l19;
1106 l18:
1107       i = 0;
1108       i1=0;
1109 l19:
1110       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 22124))+152);
1111       i2 = _check_pointer(i2, 22133);
1112       i3 = OOC_ARRAY_LENGTH(i2, 0);
1113       i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 22147))+152);
1114       i4 = _check_pointer(i4, 22156);
1115       i5 = OOC_ARRAY_LENGTH(i4, 0);
1116       i4 = (OOC_INT64)*(OOC_INT64*)((i4+((_check_index(i1, i5, OOC_UINT32, 22156))*40))+32);
1117       i2 = *(OOC_INT32*)((i2+((_check_index(i1, i3, OOC_UINT32, 22133))*40))+8);
1118       i3 = *(OOC_INT32*)((_check_pointer(i4, 22163))+48);
1119       *(OOC_INT32*)(OOC_INT64)pos = (i2+i3);
1120       i2 = *(OOC_INT32*)((_check_pointer(i0, 22203))+164);
1121       *(OOC_INT32*)((OOC_INT64)pos+4) = i2;
1122       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 22239))+152);
1123       i2 = _check_pointer(i2, 22248);
1124       i3 = OOC_ARRAY_LENGTH(i2, 0);
1125       i2 = *(OOC_INT32*)((i2+((_check_index(i1, i3, OOC_UINT32, 22248))*40))+8);
1126       i3 = *(OOC_INT32*)((_check_pointer(i0, 22288))+168);
1127       i4 = *(OOC_INT32*)((_check_pointer(i0, 22303))+172);
1128       *(OOC_INT32*)((OOC_INT64)pos+8) = ((i2-i3)+i4);
1129       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 22331))+152);
1130       i2 = _check_pointer(i2, 22340);
1131       i3 = OOC_ARRAY_LENGTH(i2, 0);
1132       i2 = (OOC_INT64)*(OOC_INT64*)((i2+((_check_index(i1, i3, OOC_UINT32, 22340))*40))+24);
1133       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 22351))+8);
1134       i2 = i2!=(OOC_INT64)0;
1135       if (!i2) goto l24;
1136       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 22417))+152);
1137       i2 = _check_pointer(i2, 22426);
1138       i3 = OOC_ARRAY_LENGTH(i2, 0);
1139       i2 = (OOC_INT64)*(OOC_INT64*)((i2+((_check_index(i1, i3, OOC_UINT32, 22426))*40))+24);
1140       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 22437))+8);
1141       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 22417))+152);
1142       i0 = _check_pointer(i0, 22426);
1143       i3 = OOC_ARRAY_LENGTH(i0, 0);
1144       i0 = (OOC_INT64)*(OOC_INT64*)((i0+((_check_index(i1, i3, OOC_UINT32, 22426))*40))+24);
1145       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 22437))+8);
1146       i1 = OOC_ARRAY_LENGTH((_check_pointer(i2, 22443)), 0);
1147       i0 = LongStrings__Length((void*)(_check_pointer(i0, 22443)), i1);
1148       XML_Parser__ParserDesc_ParseDocument_DecLength((void*)(OOC_INT64)pos, (RT0__Struct)((OOC_INT64)pos__tag), (i0+2));
1149       goto l24;
1150 l23:
1151       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 21629))+64);
1152       i1 = *(OOC_INT32*)((_check_pointer(i1, 21633))+48);
1153       i2 = cpos;
1154       *(OOC_INT32*)(OOC_INT64)pos = (i2+i1);
1155       i1 = *(OOC_INT32*)((_check_pointer(i0, 21673))+164);
1156       *(OOC_INT32*)((OOC_INT64)pos+4) = i1;
1157       i1 = *(OOC_INT32*)((_check_pointer(i0, 21714))+168);
1158       i0 = *(OOC_INT32*)((_check_pointer(i0, 21729))+172);
1159       *(OOC_INT32*)((OOC_INT64)pos+8) = ((i2-i1)+i0);
1160 l24:
1161       return;
1162       ;
1163     }
1164 
1165 
1166     void XML_Parser__ParserDesc_ParseDocument_ResetLocator(void) {
1167       register OOC_INT64 i0;
1168 
1169       i0 = (OOC_INT64)p;
1170       *(OOC_INT32*)((_check_pointer(i0, 22540))+164) = 0;
1171       *(OOC_INT32*)((_check_pointer(i0, 22564))+168) = 0;
1172       *(OOC_INT32*)((_check_pointer(i0, 22591))+172) = 0;
1173       cpos = 0;
1174       cdelta = 0;
1175       cstart = 0;
1176       return;
1177       ;
1178     }
1179 
1180 
1181     void XML_Parser__ParserDesc_ParseDocument_SetFileEntity(XML_DTD__ExternalEntity _new) {
1182       register OOC_INT64 i0,i1;
1183 
1184       i0 = (OOC_INT64)p;
1185       i1 = (OOC_INT64)_new;
1186       *(OOC_INT64*)((_check_pointer(i0, 22760))+104) = i1;
1187       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 22788))+8);
1188       *(OOC_INT64*)((_check_pointer(i0, 22791))+16) = i1;
1189       return;
1190       ;
1191     }
1192 
1193 
1194     void XML_Parser__ParserDesc_ParseDocument_ErrPosNF(OOC_INT32 code, struct XML_Locator__Position *pos, RT0__Struct pos__tag) {
1195       register OOC_INT64 i0,i1,i2,i3;
1196       OOC_INT32 i;
1197 
1198       i0 = (OOC_INT64)p;
1199       i1 = (OOC_INT64)XML_Parser__parserContext;
1200       i2 = code;
1201       i1 = (OOC_INT64)XML_Error__New((XML_Error__Context)i1, i2);
1202       *(OOC_INT64*)((_check_pointer(i0, 22948))+176) = i1;
1203       i0 = (OOC_INT64)p;
1204       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 23003))+176);
1205       i2 = *(OOC_INT32*)(OOC_INT64)pos;
1206       i3 = XML_Error__errMsgCharPosBase;
1207       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 23003))+176);
1208       OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 23014)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i0, (OOC_CHAR8*)"char", 5, (i2+i3));
1209       i0 = (OOC_INT64)p;
1210       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 23086))+176);
1211       i2 = *(OOC_INT32*)((OOC_INT64)pos+4);
1212       i3 = XML_Error__errMsgLineBase;
1213       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 23086))+176);
1214       OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 23097)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i0, (OOC_CHAR8*)"line", 5, (i2+i3));
1215       i0 = (OOC_INT64)p;
1216       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 23161))+176);
1217       i2 = *(OOC_INT32*)((OOC_INT64)pos+8);
1218       i3 = XML_Error__errMsgColumnBase;
1219       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 23161))+176);
1220       OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 23172)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i0, (OOC_CHAR8*)"column", 7, (i2+i3));
1221       i0 = (OOC_INT64)p;
1222       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 23277))+104);
1223       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 23288))+72);
1224       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 23253))+176);
1225       XML_Parser__SetBaseURI((Msg__Msg)i0, (OOC_CHAR8*)"baseURI", 8, (URI__URI)i1);
1226       i0 = (OOC_INT64)p;
1227       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 23318))+64);
1228       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 23322))+40);
1229       i2 = (OOC_INT64)chars;
1230       i1 = i2!=i1;
1231       if (!i1) goto l4;
1232       i1 = *(OOC_INT32*)((_check_pointer(i0, 23350))+160);
1233       i1 = i1-1;
1234       i = i1;
1235       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 23472))+152);
1236       i2 = _check_pointer(i2, 23481);
1237       i3 = OOC_ARRAY_LENGTH(i2, 0);
1238       i2 = (OOC_INT64)*(OOC_INT64*)((i2+((_check_index(i1, i3, OOC_UINT32, 23481))*40))+24);
1239       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 23492))+8);
1240       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 23472))+152);
1241       i0 = _check_pointer(i0, 23481);
1242       i3 = OOC_ARRAY_LENGTH(i0, 0);
1243       i0 = (OOC_INT64)*(OOC_INT64*)((i0+((_check_index(i1, i3, OOC_UINT32, 23481))*40))+24);
1244       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 23492))+8);
1245       i1 = OOC_ARRAY_LENGTH((_check_pointer(i2, 23498)), 0);
1246       i0 = (OOC_INT64)Msg__GetLStringPtr((void*)(_check_pointer(i0, 23498)), i1);
1247       i1 = (OOC_INT64)p;
1248       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 23375))+176);
1249       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 23375))+176);
1250       OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 23386)))), Msg__MsgDesc_SetLStringAttrib)),Msg__MsgDesc_SetLStringAttrib)((Msg__Msg)i1, (OOC_CHAR8*)"entity_name", 12, (Msg__LStringPtr)i0);
1251 l4:
1252       i0 = (OOC_INT64)p;
1253       i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 23520));
1254       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 23540))+176);
1255       i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 23520));
1256       OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 23529)))), Msg__MsgListDesc_Append)),Msg__MsgListDesc_Append)((Msg__MsgList)i0, (Msg__Msg)i2);
1257       return;
1258       ;
1259     }
1260 
1261 
1262     void XML_Parser__ParserDesc_ParseDocument_ErrPos(OOC_INT32 code, struct XML_Locator__Position *pos, RT0__Struct pos__tag) {
1263       register OOC_INT64 i0,i1,i2;
1264 
1265       i0 = code;
1266       XML_Parser__ParserDesc_ParseDocument_ErrPosNF(i0, (void*)(OOC_INT64)pos, (RT0__Struct)((OOC_INT64)pos__tag));
1267       i0 = (OOC_INT64)p;
1268       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 23689))+80);
1269       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 23702))+72);
1270       i1 = i1==i2;
1271       if (!i1) goto l4;
1272       i1 = (OOC_INT64)XML_Builder__New();
1273       *(OOC_INT64*)((_check_pointer(i0, 23734))+80) = i1;
1274 l4:
1275       return;
1276       ;
1277     }
1278 
1279 
1280     void XML_Parser__ParserDesc_ParseDocument_WriteBuffer(const OOC_CHAR8 msg__ref[], OOC_LEN msg_0d) {
1281       register OOC_INT64 i0,i1,i2,i3,i4;
1282       OOC_ALLOCATE_VPAR(msg,OOC_CHAR8 ,msg_0d)
1283       OOC_INT32 end;
1284       OOC_INT32 i;
1285 
1286       i0 = cpos;
1287       i1 = i0+80;
1288       OOC_INITIALIZE_VPAR(msg__ref,msg,OOC_CHAR8 ,msg_0d)
1289       end = i1;
1290       i = i0;
1291       Out__Ln();
1292       Out__String((OOC_CHAR8*)"### buffer contents ", 21);
1293       Out__String((void*)(OOC_INT64)msg, msg_0d);
1294       Out__String((OOC_CHAR8*)" ###", 5);
1295       Out__Ln();
1296       i2 = (OOC_INT64)chars;
1297       i2 = _check_pointer(i2, 24063);
1298       i3 = OOC_ARRAY_LENGTH(i2, 0);
1299       i2 = *(OOC_UINT16*)(i2+(_check_index(i0, i3, OOC_UINT32, 24063))*2);
1300       i2 = (OOC_UINT16)i2<(OOC_UINT16)65534u;
1301       if (i2) goto l3;
1302       i2=0u;
1303       goto l5;
1304 l3:
1305       i2 = i0<=i1;
1306 
1307 l5:
1308       if (!i2) goto l20;
1309 l7_loop:
1310       i2 = (OOC_INT64)chars;
1311       i3 = _check_pointer(i2, 24120);
1312       i4 = OOC_ARRAY_LENGTH(i3, 0);
1313       i3 = *(OOC_UINT16*)(i3+(_check_index(i0, i4, OOC_UINT32, 24120))*2);
1314       i3 = (OOC_UINT16)i3>(OOC_UINT16)255u;
1315       if (i3) goto l10;
1316       i2 = _check_pointer(i2, 24205);
1317       i3 = OOC_ARRAY_LENGTH(i2, 0);
1318       i2 = *(OOC_UINT16*)(i2+(_check_index(i0, i3, OOC_UINT32, 24205))*2);
1319       Out__Char(i2);
1320       goto l11;
1321 l10:
1322       Out__Char(63u);
1323 l11:
1324       i0 = i0+1;
1325       i = i0;
1326       i2 = (OOC_INT64)chars;
1327       i2 = _check_pointer(i2, 24063);
1328       i3 = OOC_ARRAY_LENGTH(i2, 0);
1329       i2 = *(OOC_UINT16*)(i2+(_check_index(i0, i3, OOC_UINT32, 24063))*2);
1330       i2 = (OOC_UINT16)i2<(OOC_UINT16)65534u;
1331       if (i2) goto l14;
1332       i2=0u;
1333       goto l16;
1334 l14:
1335       i2 = i0<=i1;
1336 
1337 l16:
1338       if (i2) goto l7_loop;
1339 l20:
1340       Out__Ln();
1341       return;
1342       ;
1343     }
1344 
1345 
1346     void XML_Parser__ParserDesc_ParseDocument_ErrNF(OOC_INT32 code) {
1347       register OOC_INT64 i0,i1,i2;
1348 
1349       i0 = (OOC_INT64)p;
1350       i1 = _check_pointer(i0, 24423);
1351       i1 = (OOC_INT64)&_td_XML_Locator__Position;
1352       XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)((_check_pointer(i0, 24423))+24), (RT0__Struct)i1);
1353       i0 = (OOC_INT64)p;
1354       i2 = _check_pointer(i0, 24459);
1355       i2 = code;
1356       XML_Parser__ParserDesc_ParseDocument_ErrPosNF(i2, (void*)((_check_pointer(i0, 24459))+24), (RT0__Struct)i1);
1357       return;
1358       ;
1359     }
1360 
1361 
1362     void XML_Parser__ParserDesc_ParseDocument_Err(OOC_INT32 code) {
1363       register OOC_INT64 i0,i1,i2;
1364 
1365       i0 = code;
1366       XML_Parser__ParserDesc_ParseDocument_ErrNF(i0);
1367       i0 = (OOC_INT64)p;
1368       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 24566))+80);
1369       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 24579))+72);
1370       i1 = i1==i2;
1371       if (!i1) goto l4;
1372       i1 = (OOC_INT64)XML_Builder__New();
1373       *(OOC_INT64*)((_check_pointer(i0, 24611))+80) = i1;
1374 l4:
1375       return;
1376       ;
1377     }
1378 
1379 
1380     XML_UnicodeBuffer__CharArray XML_Parser__ParserDesc_ParseDocument_Clone(XML_UnicodeBuffer__CharArray string) {
1381       register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7;
1382       XML_UnicodeBuffer__CharArray clone;
1383       OOC_INT32 i;
1384 
1385       i0 = (OOC_INT64)string;
1386       i1 = OOC_ARRAY_LENGTH((_check_pointer(i0, 24888)), 0);
1387       i1 = (OOC_INT64)RT0__NewObject(_td_XML_UnicodeBuffer__CharArray.baseTypes[0], i1);
1388       clone = (XML_UnicodeBuffer__CharArray)i1;
1389       i = 0;
1390       i2 = OOC_ARRAY_LENGTH((_check_pointer(i0, 24924)), 0);
1391       i3 = 0<i2;
1392       if (!i3) goto l8;
1393       i3=0;
1394 l3_loop:
1395       i4 = _check_pointer(i1, 24945);
1396       i5 = OOC_ARRAY_LENGTH(i4, 0);
1397       i6 = _check_pointer(i0, 24958);
1398       i7 = OOC_ARRAY_LENGTH(i6, 0);
1399       i6 = *(OOC_UINT16*)(i6+(_check_index(i3, i7, OOC_UINT32, 24958))*2);
1400       *(OOC_UINT16*)(i4+(_check_index(i3, i5, OOC_UINT32, 24945))*2) = i6;
1401       i3 = i3+1;
1402       i = i3;
1403       i4 = i3<i2;
1404       if (i4) goto l3_loop;
1405 l8:
1406       return (XML_UnicodeBuffer__CharArray)i1;
1407       ;
1408     }
1409 
1410 
1411     XML_UnicodeBuffer__CharArray XML_Parser__ParserDesc_ParseDocument_GetString(OOC_INT32 start, OOC_INT32 end) {
1412       register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8;
1413       XML_UnicodeBuffer__CharArray string;
1414       OOC_INT32 i;
1415 
1416       i0 = end;
1417       i1 = start;
1418       i2 = (OOC_INT64)RT0__NewObject(_td_XML_UnicodeBuffer__CharArray.baseTypes[0], ((i0-i1)+1));
1419       string = (XML_UnicodeBuffer__CharArray)i2;
1420       i = 0;
1421       i3 = i1!=i0;
1422       if (i3) goto l3;
1423       i0=0;
1424       goto l9;
1425 l3:
1426       i3 = (OOC_INT64)chars;
1427       i4=i1;i1=0;
1428 l4_loop:
1429       i5 = _check_pointer(i2, 25227);
1430       i6 = OOC_ARRAY_LENGTH(i5, 0);
1431       i7 = _check_pointer(i3, 25239);
1432       i8 = OOC_ARRAY_LENGTH(i7, 0);
1433       i7 = *(OOC_UINT16*)(i7+(_check_index(i4, i8, OOC_UINT32, 25239))*2);
1434       *(OOC_UINT16*)(i5+(_check_index(i1, i6, OOC_UINT32, 25227))*2) = i7;
1435       i4 = i4+1;
1436       start = i4;
1437       i1 = i1+1;
1438       i = i1;
1439       i5 = i4!=i0;
1440       if (i5) goto l4_loop;
1441 l8:
1442       i0=i1;
1443 l9:
1444       i1 = _check_pointer(i2, 25300);
1445       i3 = OOC_ARRAY_LENGTH(i1, 0);
1446       *(OOC_UINT16*)(i1+(_check_index(i0, i3, OOC_UINT32, 25300))*2) = 0u;
1447       return (XML_UnicodeBuffer__CharArray)i2;
1448       ;
1449     }
1450 
1451 
1452     XML_UnicodeBuffer__Input XML_Parser__ParserDesc_ParseDocument_GetBuffer(XML_DTD__ExternalEntity entity) {
1453       register OOC_INT64 i0,i1,i2;
1454       IO__ByteChannel ch;
1455       XML_UnicodeBuffer__Input in;
1456 
1457       i0 = (OOC_INT64)entity;
1458       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 25521))+72);
1459       i1 = i1==(OOC_INT64)0;
1460       if (i1) goto l3;
1461       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 25593))+72);
1462       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 25593))+72);
1463       i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 25602)))), URI__URIDesc_GetChannel)),URI__URIDesc_GetChannel)((URI__URI)i2, 2);
1464       ch = (IO__ByteChannel)i1;
1465       i2 = (OOC_INT64)p;
1466       i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 25674));
1467       i1 = (OOC_INT64)XML_UnicodeBuffer__NewInput((IO__ByteChannel)i1, (XML_UnicodeCodec__Factory)(OOC_INT64)0, (Msg__MsgList)i2);
1468       in = (XML_UnicodeBuffer__Input)i1;
1469       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 25721))+16);
1470       XML_DTD__ExternalEntityDesc_SetCodecFactory((XML_DTD__ExternalEntity)i0, (XML_UnicodeCodec__Factory)i2);
1471       return (XML_UnicodeBuffer__Input)i1;
1472       goto l4;
1473 l3:
1474       return (XML_UnicodeBuffer__Input)(OOC_INT64)0;
1475 l4:
1476       _failed_function(25365); return 0;
1477       ;
1478     }
1479 
1480 
1481     void XML_Parser__ParserDesc_ParseDocument_CheckInvalidChars(void) {
1482       register OOC_INT64 i0,i1,i2;
1483 
1484       i0 = (OOC_INT64)p;
1485       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 25840))+64);
1486       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 25844))+24);
1487       i0 = *(OOC_INT32*)(_check_pointer(i0, 25851));
1488       i0 = i0!=0;
1489       if (!i0) goto l4;
1490       XML_Parser__ParserDesc_ParseDocument_Err(27);
1491       i0 = (OOC_INT64)p;
1492       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 25957))+104);
1493       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 25937))+176);
1494       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 25968))+72);
1495       XML_Parser__SetBaseURI((Msg__Msg)i0, (OOC_CHAR8*)"uri", 4, (URI__URI)i1);
1496       i0 = (OOC_INT64)p;
1497       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 26029))+64);
1498       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 26033))+24);
1499       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 25988))+176);
1500       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 25988))+176);
1501       i1 = *(OOC_INT32*)(_check_pointer(i1, 26040));
1502       OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 25999)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i0, (OOC_CHAR8*)"encodings", 10, i1);
1503 l4:
1504       return;
1505       ;
1506     }
1507 
1508 
1509     XML_UnicodeBuffer__CharArray XML_Parser__ParserDesc_ParseDocument_Internalize(XML_DTD__ExternalEntity entity) {
1510       register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8;
1511       XML_UnicodeBuffer__Input in;
1512       OOC_INT32 len;
1513       OOC_INT32 i;
1514       OOC_INT32 delta;
1515       XML_UnicodeBuffer__CharArray str;
1516 
1517       i0 = (OOC_INT64)entity;
1518       i1 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_GetBuffer((XML_DTD__ExternalEntity)i0);
1519       in = (XML_UnicodeBuffer__Input)i1;
1520       i2 = i1!=(OOC_INT64)0;
1521       if (i2) goto l3;
1522       i1 = (OOC_INT64)RT0__NewObject(_td_XML_UnicodeBuffer__CharArray.baseTypes[0], 2);
1523       str = (XML_UnicodeBuffer__CharArray)i1;
1524       len = 0;
1525       i2=0;
1526       goto l36;
1527 l3:
1528       i2 = XML_UnicodeBuffer__InputDesc_NextBlock((XML_UnicodeBuffer__Input)i1);
1529       if (!i2) goto l10;
1530 l5_loop:
1531       i2 = XML_UnicodeBuffer__InputDesc_NextBlock((XML_UnicodeBuffer__Input)i1);
1532       if (i2) goto l5_loop;
1533 l10:
1534       i2 = *(OOC_INT32*)((_check_pointer(i1, 26434))+52);
1535       len = i2;
1536       i = 0;
1537       delta = 0;
1538       i3 = 0!=i2;
1539       if (i3) goto l13;
1540       i3=0;
1541       goto l27;
1542 l13:
1543       i3=0;i4=0;
1544 l14_loop:
1545       i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 26521))+40);
1546       i5 = _check_pointer(i5, 26528);
1547       i6 = OOC_ARRAY_LENGTH(i5, 0);
1548       i5 = *(OOC_UINT16*)(i5+(_check_index(i3, i6, OOC_UINT32, 26528))*2);
1549       switch (i5) {
1550       case 13u:
1551         i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 26571))+40);
1552         i5 = _check_pointer(i5, 26578);
1553         i6 = OOC_ARRAY_LENGTH(i5, 0);
1554         *(OOC_UINT16*)(i5+(_check_index((i3-i4), i6, OOC_UINT32, 26578))*2) = 10u;
1555         i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 26619))+40);
1556         i5 = _check_pointer(i5, 26626);
1557         i6 = OOC_ARRAY_LENGTH(i5, 0);
1558         i7 = i3+1;
1559         i5 = *(OOC_UINT16*)(i5+(_check_index(i7, i6, OOC_UINT32, 26626))*2);
1560         i5 = i5==10u;
1561         if (i5) goto l19;
1562         {register OOC_INT64 h0=i3;i3=i4;i4=h0;}
1563         goto l22;
1564 l19:
1565         i3 = i4+1;
1566         delta = i3;
1567         i4=i7;
1568         goto l22;
1569       default:
1570         i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 26729))+40);
1571         i5 = _check_pointer(i5, 26736);
1572         i6 = OOC_ARRAY_LENGTH(i5, 0);
1573         i7 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 26751))+40);
1574         i7 = _check_pointer(i7, 26758);
1575         i8 = OOC_ARRAY_LENGTH(i7, 0);
1576         i7 = *(OOC_UINT16*)(i7+(_check_index(i3, i8, OOC_UINT32, 26758))*2);
1577         *(OOC_UINT16*)(i5+(_check_index((i3-i4), i6, OOC_UINT32, 26736))*2) = i7;
1578         {register OOC_INT64 h0=i3;i3=i4;i4=h0;}
1579         goto l22;
1580       }
1581 l22:
1582       i4 = i4+1;
1583       i = i4;
1584       i5 = i4!=i2;
1585       if (!i5) goto l27;
1586       {register OOC_INT64 h0=i3;i3=i4;i4=h0;}
1587       goto l14_loop;
1588 l27:
1589       i2 = i2-i3;
1590       len = i2;
1591       i3 = (OOC_INT64)RT0__NewObject(_td_XML_UnicodeBuffer__CharArray.baseTypes[0], (i2+2));
1592       str = (XML_UnicodeBuffer__CharArray)i3;
1593       i = 0;
1594       i4 = 0<i2;
1595       if (!i4) goto l35;
1596       i4=0;
1597 l30_loop:
1598       i5 = _check_pointer(i3, 26905);
1599       i6 = OOC_ARRAY_LENGTH(i5, 0);
1600       i7 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 26914))+40);
1601       i7 = _check_pointer(i7, 26921);
1602       i8 = OOC_ARRAY_LENGTH(i7, 0);
1603       i7 = *(OOC_UINT16*)(i7+(_check_index(i4, i8, OOC_UINT32, 26921))*2);
1604       *(OOC_UINT16*)(i5+(_check_index(i4, i6, OOC_UINT32, 26905))*2) = i7;
1605       i4 = i4+1;
1606       i = i4;
1607       i5 = i4<i2;
1608       if (i5) goto l30_loop;
1609 l35:
1610       XML_Parser__ParserDesc_ParseDocument_CheckInvalidChars();
1611       XML_UnicodeBuffer__InputDesc_Close((XML_UnicodeBuffer__Input)i1);
1612       i1=i3;
1613 l36:
1614       i0 = *(OOC_INT8*)((_check_pointer(i0, 27061))+16);
1615       switch (i0) {
1616       case 2:
1617         i0 = _check_pointer(i1, 27117);
1618         i3 = OOC_ARRAY_LENGTH(i0, 0);
1619         *(OOC_UINT16*)(i0+(_check_index(i2, i3, OOC_UINT32, 27117))*2) = 65535u;
1620         goto l41;
1621       case 3:
1622         i0 = _check_pointer(i1, 27191);
1623         i3 = OOC_ARRAY_LENGTH(i0, 0);
1624         *(OOC_UINT16*)(i0+(_check_index(i2, i3, OOC_UINT32, 27191))*2) = 65534u;
1625         goto l41;
1626       default:
1627         _failed_case(i0, 27050);
1628         goto l41;
1629       }
1630 l41:
1631       return (XML_UnicodeBuffer__CharArray)i1;
1632       ;
1633     }
1634 
1635 
1636     void XML_Parser__ParserDesc_ParseDocument_PushEntity(XML_DTD__Entity entity, OOC_CHAR8 syncEntity) {
1637       register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8;
1638       XML_Parser__PEInfoList newList;
1639       OOC_INT32 i;
1640 
1641       i0 = (OOC_INT64)entity;
1642       i1 = i0!=(OOC_INT64)0;
1643       if (!i1) goto l3;
1644       *(OOC_UINT8*)((_check_pointer(i0, 27685))+33) = 1u;
1645 l3:
1646       i1 = (OOC_INT64)p;
1647       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 27755))+152);
1648       i3 = *(OOC_INT32*)((_check_pointer(i1, 27734))+160);
1649       i2 = OOC_ARRAY_LENGTH((_check_pointer(i2, 27764)), 0);
1650       i2 = i3==i2;
1651       if (!i2) goto l14;
1652       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 27801))+152);
1653       i2 = OOC_ARRAY_LENGTH((_check_pointer(i2, 27810)), 0);
1654       i2 = (OOC_INT64)RT0__NewObject(_td_XML_Parser__PEInfoList.baseTypes[0], (i2+4));
1655       newList = (XML_Parser__PEInfoList)i2;
1656       i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 27855))+152);
1657       i = 0;
1658       i3 = OOC_ARRAY_LENGTH((_check_pointer(i3, 27864)), 0);
1659       i4 = 0<i3;
1660       if (!i4) goto l13;
1661       i4=0;
1662 l8_loop:
1663       i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 27897))+152);
1664       i5 = _check_pointer(i5, 27906);
1665       i6 = OOC_ARRAY_LENGTH(i5, 0);
1666       i7 = _check_pointer(i2, 27889);
1667       i8 = OOC_ARRAY_LENGTH(i7, 0);
1668       _copy_block((i5+((_check_index(i4, i6, OOC_UINT32, 27906))*40)),(i7+((_check_index(i4, i8, OOC_UINT32, 27889))*40)),40);
1669       i4 = i4+1;
1670       i = i4;
1671       i5 = i4<i3;
1672       if (i5) goto l8_loop;
1673 l13:
1674       *(OOC_INT64*)((_check_pointer(i1, 27932))+152) = i2;
1675 l14:
1676       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 27971))+152);
1677       i2 = _check_pointer(i2, 27980);
1678       i3 = *(OOC_INT32*)((_check_pointer(i1, 27982))+160);
1679       i4 = OOC_ARRAY_LENGTH(i2, 0);
1680       *(OOC_INT64*)((i2+((_check_index(i3, i4, OOC_UINT32, 27980))*40))+24) = i0;
1681       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 28022))+152);
1682       i2 = _check_pointer(i2, 28031);
1683       i3 = *(OOC_INT32*)((_check_pointer(i1, 28033))+160);
1684       i4 = OOC_ARRAY_LENGTH(i2, 0);
1685       i5 = (OOC_INT64)chars;
1686       *(OOC_INT64*)(i2+((_check_index(i3, i4, OOC_UINT32, 28031))*40)) = i5;
1687       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 28074))+152);
1688       i2 = _check_pointer(i2, 28083);
1689       i3 = *(OOC_INT32*)((_check_pointer(i1, 28085))+160);
1690       i4 = OOC_ARRAY_LENGTH(i2, 0);
1691       i5 = cpos;
1692       *(OOC_INT32*)((i2+((_check_index(i3, i4, OOC_UINT32, 28083))*40))+8) = i5;
1693       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 28124))+152);
1694       i2 = _check_pointer(i2, 28133);
1695       i3 = *(OOC_INT32*)((_check_pointer(i1, 28135))+160);
1696       i4 = OOC_ARRAY_LENGTH(i2, 0);
1697       i5 = *(OOC_INT32*)((_check_pointer(i1, 28166))+164);
1698       *(OOC_INT32*)((i2+((_check_index(i3, i4, OOC_UINT32, 28133))*40))+12) = i5;
1699       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 28185))+152);
1700       i2 = _check_pointer(i2, 28194);
1701       i3 = *(OOC_INT32*)((_check_pointer(i1, 28196))+160);
1702       i4 = OOC_ARRAY_LENGTH(i2, 0);
1703       i5 = *(OOC_INT32*)((_check_pointer(i1, 28230))+168);
1704       *(OOC_INT32*)((i2+((_check_index(i3, i4, OOC_UINT32, 28194))*40))+16) = i5;
1705       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 28252))+152);
1706       i2 = _check_pointer(i2, 28261);
1707       i3 = *(OOC_INT32*)((_check_pointer(i1, 28263))+160);
1708       i4 = OOC_ARRAY_LENGTH(i2, 0);
1709       i5 = *(OOC_INT32*)((_check_pointer(i1, 28297))+172);
1710       *(OOC_INT32*)((i2+((_check_index(i3, i4, OOC_UINT32, 28261))*40))+20) = i5;
1711       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 28319))+152);
1712       i2 = _check_pointer(i2, 28328);
1713       i3 = *(OOC_INT32*)((_check_pointer(i1, 28330))+160);
1714       i4 = OOC_ARRAY_LENGTH(i2, 0);
1715       i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 28352))+64);
1716       *(OOC_INT64*)((i2+((_check_index(i3, i4, OOC_UINT32, 28328))*40))+32) = i5;
1717       i2 = *(OOC_INT32*)((_check_pointer(i1, 28370))+160);
1718       *(OOC_INT32*)((_check_pointer(i1, 28370))+160) = (i2+1);
1719       i2 = syncEntity;
1720       if (i2) goto l17;
1721       i3=0u;
1722       goto l19;
1723 l17:
1724       i3 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 28422)))), &_td_XML_DTD__ExternalEntityDesc);
1725 
1726 l19:
1727       if (i3) goto l47;
1728       i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 29081)))), &_td_XML_DTD__ExternalEntityDesc);
1729       if (i1) goto l23;
1730       i1=0u;
1731       goto l25;
1732 l23:
1733       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 29113))+24);
1734       i1 = i1==(OOC_INT64)0;
1735 
1736 l25:
1737       if (!i1) goto l27;
1738       i1 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Internalize((XML_DTD__ExternalEntity)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 29197)))), &_td_XML_DTD__ExternalEntityDesc, 29197)));
1739       XML_DTD__EntityDesc_SetEntityValue((XML_DTD__Entity)i0, (XML_UnicodeBuffer__CharArray)i1);
1740 l27:
1741       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 29258))+24);
1742       i1 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Clone((XML_UnicodeBuffer__CharArray)i1);
1743       chars = (XML_UnicodeBuffer__CharArray)i1;
1744       i3 = *(OOC_INT8*)((_check_pointer(i0, 29302))+16);
1745       switch (i3) {
1746       case 0:
1747       case 2:
1748         i2 = _check_pointer(i1, 29391);
1749         i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 29402)), 0);
1750         i3 = OOC_ARRAY_LENGTH(i2, 0);
1751         *(OOC_UINT16*)(i2+(_check_index((i1-2), i3, OOC_UINT32, 29391))*2) = 65535u;
1752         goto l39;
1753       case 1:
1754       case 3:
1755         i3 = _check_pointer(i1, 29511);
1756         i4 = OOC_ARRAY_LENGTH((_check_pointer(i1, 29522)), 0);
1757         i5 = OOC_ARRAY_LENGTH(i3, 0);
1758         *(OOC_UINT16*)(i3+(_check_index((i4-2), i5, OOC_UINT32, 29511))*2) = 65534u;
1759         i3 = (OOC_INT64)p;
1760         i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 29916))+128);
1761         i3 = i3==(OOC_INT64)0;
1762         if (!i3) goto l39;
1763         i3 = _check_pointer(i1, 29963);
1764         i4 = OOC_ARRAY_LENGTH((_check_pointer(i1, 29974)), 0);
1765         i5 = OOC_ARRAY_LENGTH(i3, 0);
1766         *(OOC_UINT16*)(i3+(_check_index((i4-2), i5, OOC_UINT32, 29963))*2) = 32u;
1767         if (i2) goto l35;
1768         i2 = _check_pointer(i1, 30111);
1769         i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 30122)), 0);
1770         i3 = OOC_ARRAY_LENGTH(i2, 0);
1771         *(OOC_UINT16*)(i2+(_check_index((i1-1), i3, OOC_UINT32, 30111))*2) = 65534u;
1772         goto l39;
1773 l35:
1774         i2 = _check_pointer(i1, 30038);
1775         i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 30049)), 0);
1776         i3 = OOC_ARRAY_LENGTH(i2, 0);
1777         *(OOC_UINT16*)(i2+(_check_index((i1-1), i3, OOC_UINT32, 30038))*2) = 65535u;
1778         goto l39;
1779       default:
1780         _failed_case(i3, 29291);
1781         goto l39;
1782       }
1783 l39:
1784       i1 = *(OOC_INT8*)((_check_pointer(i0, 30218))+16);
1785       i1 = i1==0;
1786       if (i1) goto l42;
1787       i1 = *(OOC_INT8*)((_check_pointer(i0, 30275))+16);
1788       i1 = i1==1;
1789 
1790       goto l44;
1791 l42:
1792       i1=1u;
1793 l44:
1794       if (!i1) goto l52;
1795       i1 = (OOC_INT64)p;
1796       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 30329))+8);
1797       *(OOC_INT64*)((_check_pointer(i1, 30332))+24) = (_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 30365)))), &_td_XML_DTD__InternalEntityDesc, 30365));
1798       goto l52;
1799 l47:
1800       i2 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_GetBuffer((XML_DTD__ExternalEntity)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 28534)))), &_td_XML_DTD__ExternalEntityDesc, 28534)));
1801       *(OOC_INT64*)((_check_pointer(i1, 28504))+64) = i2;
1802       XML_Parser__ParserDesc_ParseDocument_SetFileEntity((XML_DTD__ExternalEntity)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 28586)))), &_td_XML_DTD__ExternalEntityDesc, 28586)));
1803       XML_Parser__ParserDesc_ParseDocument_ResetLocator();
1804       i0 = (OOC_INT64)p;
1805       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 28639))+64);
1806       i1 = i1==(OOC_INT64)0;
1807       if (i1) goto l50;
1808       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 28803))+64);
1809       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 28807))+40);
1810       chars = (XML_UnicodeBuffer__CharArray)i0;
1811       goto l52;
1812 l50:
1813       i0 = (OOC_INT64)RT0__NewObject(_td_XML_UnicodeBuffer__CharArray.baseTypes[0], 2);
1814       chars = (XML_UnicodeBuffer__CharArray)i0;
1815       i0 = _check_pointer(i0, 28746);
1816       i1 = OOC_ARRAY_LENGTH(i0, 0);
1817       *(OOC_UINT16*)(i0+(_check_index(0, i1, OOC_UINT8, 28746))*2) = 65535u;
1818 l52:
1819       cpos = 0;
1820       cdelta = 0;
1821       cstart = 0;
1822       return;
1823       ;
1824     }
1825 
1826 
1827     void XML_Parser__ParserDesc_ParseDocument_PopEntity(void) {
1828       register OOC_INT64 i0,i1,i2,i3,i4;
1829       OOC_INT32 i;
1830 
1831       i0 = (OOC_INT64)p;
1832       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 30557))+128);
1833       i0 = i0!=(OOC_INT64)0;
1834       if (!i0) goto l3;
1835       i0 = (OOC_INT64)dtd;
1836       i1 = cdelta;
1837       i2 = cpos;
1838       i3 = cstart;
1839       i4 = (OOC_INT64)chars;
1840       i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 30759)))), XML_DTD__BuilderDesc_NewCharacters)),XML_DTD__BuilderDesc_NewCharacters)((XML_DTD__Builder)i0, (XML_UnicodeBuffer__CharArray)i4, i3, (i2-i1), 1u);
1841       i1 = (OOC_INT64)p;
1842       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 30729))+128);
1843       XML_DTD__AttValueDesc_Append((XML_DTD__AttValue)i1, (XML_DTD__Fragment)i0);
1844 l3:
1845       i0 = (OOC_INT64)p;
1846       i1 = *(OOC_INT32*)((_check_pointer(i0, 30841))+160);
1847       *(OOC_INT32*)((_check_pointer(i0, 30841))+160) = (i1-1);
1848       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 30867))+64);
1849       i1 = i1!=(OOC_INT64)0;
1850       if (i1) goto l6;
1851       i0=0u;
1852       goto l8;
1853 l6:
1854       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 30891))+152);
1855       i1 = _check_pointer(i1, 30900);
1856       i2 = *(OOC_INT32*)((_check_pointer(i0, 30902))+160);
1857       i3 = OOC_ARRAY_LENGTH(i1, 0);
1858       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 30883))+64);
1859       i1 = (OOC_INT64)*(OOC_INT64*)((i1+((_check_index(i2, i3, OOC_UINT32, 30900))*40))+32);
1860       i0 = i0!=i1;
1861 
1862 l8:
1863       if (!i0) goto l10;
1864       XML_Parser__ParserDesc_ParseDocument_CheckInvalidChars();
1865       i0 = (OOC_INT64)p;
1866       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 30962))+64);
1867       XML_UnicodeBuffer__InputDesc_Close((XML_UnicodeBuffer__Input)i0);
1868 l10:
1869       i0 = (OOC_INT64)p;
1870       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31056))+152);
1871       i1 = _check_pointer(i1, 31065);
1872       i2 = *(OOC_INT32*)((_check_pointer(i0, 31067))+160);
1873       i3 = OOC_ARRAY_LENGTH(i1, 0);
1874       i1 = (OOC_INT64)*(OOC_INT64*)(i1+((_check_index(i2, i3, OOC_UINT32, 31065))*40));
1875       chars = (XML_UnicodeBuffer__CharArray)i1;
1876       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31107))+152);
1877       i1 = _check_pointer(i1, 31116);
1878       i2 = *(OOC_INT32*)((_check_pointer(i0, 31118))+160);
1879       i3 = OOC_ARRAY_LENGTH(i1, 0);
1880       i1 = *(OOC_INT32*)((i1+((_check_index(i2, i3, OOC_UINT32, 31116))*40))+8);
1881       cpos = i1;
1882       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31164))+152);
1883       i1 = _check_pointer(i1, 31173);
1884       i2 = *(OOC_INT32*)((_check_pointer(i0, 31175))+160);
1885       i3 = OOC_ARRAY_LENGTH(i1, 0);
1886       i1 = *(OOC_INT32*)((i1+((_check_index(i2, i3, OOC_UINT32, 31173))*40))+12);
1887       *(OOC_INT32*)((_check_pointer(i0, 31149))+164) = i1;
1888       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31228))+152);
1889       i1 = _check_pointer(i1, 31237);
1890       i2 = *(OOC_INT32*)((_check_pointer(i0, 31239))+160);
1891       i3 = OOC_ARRAY_LENGTH(i1, 0);
1892       i1 = *(OOC_INT32*)((i1+((_check_index(i2, i3, OOC_UINT32, 31237))*40))+16);
1893       *(OOC_INT32*)((_check_pointer(i0, 31210))+168) = i1;
1894       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31295))+152);
1895       i1 = _check_pointer(i1, 31304);
1896       i2 = *(OOC_INT32*)((_check_pointer(i0, 31306))+160);
1897       i3 = OOC_ARRAY_LENGTH(i1, 0);
1898       i1 = *(OOC_INT32*)((i1+((_check_index(i2, i3, OOC_UINT32, 31304))*40))+20);
1899       *(OOC_INT32*)((_check_pointer(i0, 31277))+172) = i1;
1900       i1 = *(OOC_INT32*)((_check_pointer(i0, 31349))+160);
1901       i1 = i1-1;
1902       i = i1;
1903       i2 = i1>=0;
1904       if (i2) goto l13;
1905       i2=0u;
1906       goto l15;
1907 l13:
1908       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31391))+152);
1909       i2 = _check_pointer(i2, 31400);
1910       i3 = OOC_ARRAY_LENGTH(i2, 0);
1911       i2 = (OOC_INT64)*(OOC_INT64*)((i2+((_check_index(i1, i3, OOC_UINT32, 31400))*40))+24);
1912       i2 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 31412)))), &_td_XML_DTD__ExternalEntityDesc));
1913 
1914 l15:
1915       if (!i2) goto l27;
1916 l18_loop:
1917       i1 = i1-1;
1918       i = i1;
1919       i2 = i1>=0;
1920       if (i2) goto l21;
1921       i2=0u;
1922       goto l23;
1923 l21:
1924       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31391))+152);
1925       i2 = _check_pointer(i2, 31400);
1926       i3 = OOC_ARRAY_LENGTH(i2, 0);
1927       i2 = (OOC_INT64)*(OOC_INT64*)((i2+((_check_index(i1, i3, OOC_UINT32, 31400))*40))+24);
1928       i2 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 31412)))), &_td_XML_DTD__ExternalEntityDesc));
1929 
1930 l23:
1931       if (i2) goto l18_loop;
1932 l27:
1933       i2 = i1>=0;
1934       if (i2) goto l30;
1935       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31589))+96);
1936       XML_Parser__ParserDesc_ParseDocument_SetFileEntity((XML_DTD__ExternalEntity)i0);
1937       goto l31;
1938 l30:
1939       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31512))+152);
1940       i0 = _check_pointer(i0, 31521);
1941       i2 = OOC_ARRAY_LENGTH(i0, 0);
1942       i0 = (OOC_INT64)*(OOC_INT64*)((i0+((_check_index(i1, i2, OOC_UINT32, 31521))*40))+24);
1943       XML_Parser__ParserDesc_ParseDocument_SetFileEntity((XML_DTD__ExternalEntity)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 31537)))), &_td_XML_DTD__ExternalEntityDesc, 31537)));
1944 l31:
1945       i0 = (OOC_INT64)p;
1946       i2 = *(OOC_INT32*)((_check_pointer(i0, 31640))+160);
1947       i1 = i1!=(i2-1);
1948       if (i1) goto l34;
1949       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31881))+8);
1950       *(OOC_INT64*)((_check_pointer(i1, 31884))+24) = (OOC_INT64)0;
1951       goto l35;
1952 l34:
1953       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31741))+8);
1954       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31767))+152);
1955       i2 = _check_pointer(i2, 31776);
1956       i3 = *(OOC_INT32*)((_check_pointer(i0, 31778))+160);
1957       i4 = OOC_ARRAY_LENGTH(i2, 0);
1958       i2 = (OOC_INT64)*(OOC_INT64*)((i2+((_check_index((i3-1), i4, OOC_UINT32, 31776))*40))+24);
1959       *(OOC_INT64*)((_check_pointer(i1, 31744))+24) = (_type_guard(i2, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 31806)))), &_td_XML_DTD__InternalEntityDesc, 31806));
1960 l35:
1961       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31944))+152);
1962       i1 = _check_pointer(i1, 31953);
1963       i2 = *(OOC_INT32*)((_check_pointer(i0, 31955))+160);
1964       i3 = OOC_ARRAY_LENGTH(i1, 0);
1965       i1 = (OOC_INT64)*(OOC_INT64*)((i1+((_check_index(i2, i3, OOC_UINT32, 31953))*40))+32);
1966       *(OOC_INT64*)((_check_pointer(i0, 31935))+64) = i1;
1967       i1 = cpos;
1968       cstart = i1;
1969       cdelta = 0;
1970       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 32027))+152);
1971       i1 = _check_pointer(i1, 32036);
1972       i2 = *(OOC_INT32*)((_check_pointer(i0, 32038))+160);
1973       i3 = OOC_ARRAY_LENGTH(i1, 0);
1974       i1 = (OOC_INT64)*(OOC_INT64*)((i1+((_check_index(i2, i3, OOC_UINT32, 32036))*40))+24);
1975       i1 = i1!=(OOC_INT64)0;
1976       if (!i1) goto l38;
1977       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 32081))+152);
1978       i1 = _check_pointer(i1, 32090);
1979       i0 = *(OOC_INT32*)((_check_pointer(i0, 32092))+160);
1980       i2 = OOC_ARRAY_LENGTH(i1, 0);
1981       i0 = (OOC_INT64)*(OOC_INT64*)((i1+((_check_index(i0, i2, OOC_UINT32, 32090))*40))+24);
1982       *(OOC_UINT8*)((_check_pointer(i0, 32113))+33) = 0u;
1983 l38:
1984       return;
1985       ;
1986     }
1987 
1988 
1989     void XML_Parser__ParserDesc_ParseDocument_NextBlock(void) {
1990       register OOC_INT64 i0,i1,i2,i3;
1991       OOC_INT32 oldOffset;
1992       OOC_CHAR8 res;
1993 
1994       i0 = (OOC_INT64)chars;
1995       i1 = _check_pointer(i0, 32297);
1996       i2 = OOC_ARRAY_LENGTH(i1, 0);
1997       i3 = cpos;
1998       i1 = *(OOC_UINT16*)(i1+(_check_index(i3, i2, OOC_UINT32, 32297))*2);
1999       _assert((i1==65534u), 127, 32284);
2000       i1 = (OOC_INT64)p;
2001       i2 = *(OOC_INT32*)((_check_pointer(i1, 32336))+160);
2002       i2 = i2!=0;
2003       if (i2) goto l3;
2004       i2=0u;
2005       goto l5;
2006 l3:
2007       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 32358))+64);
2008       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 32362))+40);
2009       i2 = i2!=i0;
2010 
2011 l5:
2012       if (i2) goto l7;
2013       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 32884))+64);
2014       i0 = *(OOC_INT32*)((_check_pointer(i0, 32888))+48);
2015       oldOffset = i0;
2016       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 32922))+64);
2017       i1 = XML_UnicodeBuffer__InputDesc_NextBlock((XML_UnicodeBuffer__Input)i1);
2018       res = i1;
2019       i1 = (OOC_INT64)p;
2020       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 32959))+64);
2021       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 32963))+40);
2022       chars = (XML_UnicodeBuffer__CharArray)i2;
2023       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 32992))+64);
2024       i2 = *(OOC_INT32*)((_check_pointer(i2, 32996))+48);
2025       i3 = cpos;
2026       cpos = (i3-(i2-i0));
2027       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 33047))+64);
2028       i2 = *(OOC_INT32*)((_check_pointer(i2, 33051))+48);
2029       i3 = cstart;
2030       cstart = (i3-(i2-i0));
2031       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 33110))+64);
2032       i2 = *(OOC_INT32*)((_check_pointer(i2, 33114))+48);
2033       i3 = *(OOC_INT32*)((_check_pointer(i1, 33094))+168);
2034       *(OOC_INT32*)((_check_pointer(i1, 33094))+168) = (i3-(i2-i0));
2035       goto l11;
2036 l7:
2037       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 32500))+128);
2038       i1 = i1==(OOC_INT64)0;
2039       if (!i1) goto l10;
2040       i1 = _check_pointer(i0, 32553);
2041       i2 = OOC_ARRAY_LENGTH((_check_pointer(i0, 32564)), 0);
2042       i3 = OOC_ARRAY_LENGTH(i1, 0);
2043       i1 = *(OOC_UINT16*)(i1+(_check_index((i2-2), i3, OOC_UINT32, 32553))*2);
2044       _assert((i1==32u), 127, 32540);
2045       i1 = _check_pointer(i0, 32593);
2046       i0 = OOC_ARRAY_LENGTH((_check_pointer(i0, 32604)), 0);
2047       i2 = OOC_ARRAY_LENGTH(i1, 0);
2048       *(OOC_UINT16*)(i1+(_check_index((i0-2), i2, OOC_UINT32, 32593))*2) = 65534u;
2049 l10:
2050       XML_Parser__ParserDesc_ParseDocument_PopEntity();
2051 l11:
2052       return;
2053       ;
2054     }
2055 
2056 
2057     void XML_Parser__ParserDesc_ParseDocument_DiscardPreviousInput(void) {
2058       register OOC_INT64 i0,i1,i2;
2059 
2060       i0 = (OOC_INT64)p;
2061       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 33230))+64);
2062       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 33234))+40);
2063       i2 = (OOC_INT64)chars;
2064       i1 = i1==i2;
2065       if (!i1) goto l4;
2066       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 33265))+64);
2067       i1 = cpos;
2068       *(OOC_INT32*)((_check_pointer(i0, 33269))+56) = i1;
2069       cstart = i1;
2070 l4:
2071       return;
2072       ;
2073     }
2074 
2075 
2076     void XML_Parser__ParserDesc_ParseDocument_EndOfLine(void) {
2077       register OOC_INT64 i0,i1,i2;
2078 
2079       i0 = (OOC_INT64)p;
2080       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 33508))+64);
2081       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 33512))+40);
2082       i2 = (OOC_INT64)chars;
2083       i1 = i2==i1;
2084       if (!i1) goto l4;
2085       i1 = *(OOC_INT32*)((_check_pointer(i0, 33540))+164);
2086       *(OOC_INT32*)((_check_pointer(i0, 33540))+164) = (i1+1);
2087       i1 = cpos;
2088       *(OOC_INT32*)((_check_pointer(i0, 33562))+168) = i1;
2089       *(OOC_INT32*)((_check_pointer(i0, 33594))+172) = 0;
2090 l4:
2091       return;
2092       ;
2093     }
2094 
2095 
2096     void XML_Parser__ParserDesc_ParseDocument_Tab(void) {
2097       register OOC_INT64 i0,i1,i2,i3;
2098       OOC_INT32 currColumn;
2099 
2100       i0 = (OOC_INT64)p;
2101       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 33813))+64);
2102       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 33817))+40);
2103       i2 = (OOC_INT64)chars;
2104       i1 = i2==i1;
2105       if (!i1) goto l4;
2106       i1 = *(OOC_INT32*)((_check_pointer(i0, 33859))+168);
2107       i2 = cpos;
2108       i3 = *(OOC_INT32*)((_check_pointer(i0, 33874))+172);
2109       i1 = (i2-i1)+i3;
2110       currColumn = i1;
2111       i2 = *(OOC_INT32*)((_check_pointer(i0, 33903))+172);
2112       *(OOC_INT32*)((_check_pointer(i0, 33903))+172) = (i2+((8-(_mod(i1,8)))-1));
2113 l4:
2114       return;
2115       ;
2116     }
2117 
2118 
2119     OOC_CHAR8 XML_Parser__ParserDesc_ParseDocument_LookingAtS(void) {
2120       register OOC_INT64 i0,i1,i2,i3,i4;
2121 
2122       i0 = (OOC_INT64)chars;
2123       i1 = _check_pointer(i0, 34090);
2124       i2 = OOC_ARRAY_LENGTH(i1, 0);
2125       i3 = cpos;
2126       i1 = *(OOC_UINT16*)(i1+(_check_index(i3, i2, OOC_UINT32, 34090))*2);
2127       i1 = (OOC_UINT16)i1<=(OOC_UINT16)32u;
2128       if (i1) goto l23;
2129       i1 = (OOC_INT64)p;
2130       i2 = *(OOC_UINT8*)((_check_pointer(i1, 34144))+119);
2131       if (i2) goto l5;
2132       i2 = *(OOC_UINT8*)((_check_pointer(i1, 34167))+120);
2133 
2134       goto l7;
2135 l5:
2136       i2=1u;
2137 l7:
2138       if (i2) goto l9;
2139       i2=0u;
2140       goto l11;
2141 l9:
2142       i2 = _check_pointer(i0, 34207);
2143       i4 = OOC_ARRAY_LENGTH(i2, 0);
2144       i2 = *(OOC_UINT16*)(i2+(_check_index(i3, i4, OOC_UINT32, 34207))*2);
2145       i2 = i2==37u;
2146 
2147 l11:
2148       if (i2) goto l13;
2149       return 0u;
2150       goto l24;
2151 l13:
2152       i2 = _check_pointer(i0, 34242);
2153       i3 = i3+1;
2154       i4 = OOC_ARRAY_LENGTH(i2, 0);
2155       i2 = *(OOC_UINT16*)(i2+(_check_index(i3, i4, OOC_UINT32, 34242))*2);
2156       i2 = i2==65534u;
2157       if (i2) goto l16;
2158       i0 = _check_pointer(i0, 34584);
2159       i1 = OOC_ARRAY_LENGTH(i0, 0);
2160       i0 = *(OOC_UINT16*)(i0+(_check_index(i3, i1, OOC_UINT32, 34584))*2);
2161       i0 = XML_Parser__IsNameChar(i0);
2162       return i0;
2163       goto l24;
2164 l16:
2165       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 34298))+64);
2166       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 34302))+40);
2167       i0 = i0==i1;
2168       if (i0) goto l19;
2169       return 0u;
2170       goto l24;
2171 l19:
2172       cpos = i3;
2173       XML_Parser__ParserDesc_ParseDocument_NextBlock();
2174       i0 = cpos;
2175       i0 = i0-1;
2176       cpos = i0;
2177       i1 = (OOC_INT64)chars;
2178       i1 = _check_pointer(i1, 34478);
2179       i2 = OOC_ARRAY_LENGTH(i1, 0);
2180       i0 = *(OOC_UINT16*)(i1+(_check_index((i0+1), i2, OOC_UINT32, 34478))*2);
2181       i0 = XML_Parser__IsNameChar(i0);
2182       return i0;
2183       goto l24;
2184 l23:
2185       return 1u;
2186 l24:
2187       _failed_function(33992); return 0;
2188       ;
2189     }
2190 
2191 
2192     OOC_CHAR8 XML_Parser__ParserDesc_ParseDocument_LookingAtSnoPE(void) {
2193       register OOC_INT64 i0,i1,i2;
2194 
2195       i0 = (OOC_INT64)chars;
2196       i0 = _check_pointer(i0, 34772);
2197       i1 = OOC_ARRAY_LENGTH(i0, 0);
2198       i2 = cpos;
2199       i0 = *(OOC_UINT16*)(i0+(_check_index(i2, i1, OOC_UINT32, 34772))*2);
2200       return ((OOC_UINT16)i0<=(OOC_UINT16)32u);
2201       ;
2202     }
2203 
2204 
2205     OOC_CHAR8 XML_Parser__ParserDesc_ParseDocument_LookingAt(const OOC_CHAR8 str__ref[], OOC_LEN str_0d, OOC_INT8 followedBy) {
2206       register OOC_INT64 i0,i1,i2,i3,i4,i5;
2207       OOC_ALLOCATE_VPAR(str,OOC_CHAR8 ,str_0d)
2208       OOC_INT32 i;
2209 
2210       OOC_INITIALIZE_VPAR(str__ref,str,OOC_CHAR8 ,str_0d)
2211       i = 0;
2212       i0 = followedBy;
2213       i1=0;
2214 l1_loop:
2215       i2 = (OOC_INT64)chars;
2216       i3 = _check_pointer(i2, 35663);
2217       i4 = OOC_ARRAY_LENGTH(i3, 0);
2218       i5 = cpos;
2219       i3 = *(OOC_UINT16*)(i3+(_check_index(i5, i4, OOC_UINT32, 35663))*2);
2220       i3 = i3==65534u;
2221       if (i3) goto l17;
2222       i3 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index(i1, str_0d, OOC_UINT32, 35973)));
2223       i3 = i3==0u;
2224       if (i3) goto l10;
2225       i2 = _check_pointer(i2, 36214);
2226       i3 = OOC_ARRAY_LENGTH(i2, 0);
2227       i4 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index(i1, str_0d, OOC_UINT32, 36203)));
2228       i2 = *(OOC_UINT16*)(i2+(_check_index(i5, i3, OOC_UINT32, 36214))*2);
2229       i2 = i4==i2;
2230       if (!i2) goto l7;
2231       goto l8;
2232 l7:
2233       cpos = (i5-i1);
2234       return 0u;
2235 
2236       goto l1_loop;
2237 l8:
2238       i1 = i1+1;
2239       i = i1;
2240       cpos = (i5+1);
2241 
2242       goto l1_loop;
2243 l10:
2244       i3 = i5-i1;
2245       cpos = i3;
2246       switch (i0) {
2247       case 1:
2248         i2 = _check_pointer(i2, 36110);
2249         i4 = OOC_ARRAY_LENGTH(i2, 0);
2250         i2 = *(OOC_UINT16*)(i2+(_check_index((i3+i1), i4, OOC_UINT32, 36110))*2);
2251         i2 = XML_Parser__IsNameChar(i2);
2252         return (!i2);
2253         goto l1_loop;
2254       case 0:
2255         return 1u;
2256         goto l1_loop;
2257       default:
2258         _failed_case(i0, 36023);
2259         goto l1_loop;
2260       }
2261 l17:
2262       i3 = (OOC_INT64)p;
2263       i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 35718))+64);
2264       i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 35722))+40);
2265       i2 = i2==i3;
2266       if (!i2) goto l19;
2267       goto l20;
2268 l19:
2269       cpos = (i5-i1);
2270       i2 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index(i1, str_0d, OOC_UINT32, 35931)));
2271       return (i2==0u);
2272       goto l1_loop;
2273 l20:
2274       XML_Parser__ParserDesc_ParseDocument_NextBlock();
2275       goto l1_loop;
2276 l24:
2277       ;
2278     }
2279 
2280 
2281     void XML_Parser__ParserDesc_ParseDocument_NextChar(void) {
2282       register OOC_INT64 i0,i1,i2,i3;
2283 
2284       i0 = (OOC_INT64)chars;
2285       i1 = _check_pointer(i0, 36427);
2286       i2 = OOC_ARRAY_LENGTH(i1, 0);
2287       i3 = cpos;
2288       i1 = *(OOC_UINT16*)(i1+(_check_index(i3, i2, OOC_UINT32, 36427))*2);
2289       i1 = i1!=65535u;
2290       if (!i1) goto l6;
2291       i1 = i3+1;
2292       cpos = i1;
2293       i0 = _check_pointer(i0, 36496);
2294       i2 = OOC_ARRAY_LENGTH(i0, 0);
2295       i0 = *(OOC_UINT16*)(i0+(_check_index(i1, i2, OOC_UINT32, 36496))*2);
2296       i0 = i0==65534u;
2297       if (!i0) goto l6;
2298       XML_Parser__ParserDesc_ParseDocument_NextBlock();
2299 l6:
2300       return;
2301       ;
2302     }
2303 
2304 
2305     XML_UnicodeBuffer__CharArray XML_Parser__ParserDesc_ParseDocument_Nmtoken(OOC_CHAR8 checkForQName, OOC_CHAR8 noColon) {
2306       register OOC_INT64 i0,i1,i2,i3,i4,i5,i6;
2307       OOC_INT32 colon;
2308       XML_UnicodeBuffer__CharArray string;
2309 
2310       i0 = (OOC_INT64)chars;
2311       i0 = _check_pointer(i0, 36816);
2312       i1 = OOC_ARRAY_LENGTH(i0, 0);
2313       i2 = cpos;
2314       i0 = *(OOC_UINT16*)(i0+(_check_index(i2, i1, OOC_UINT32, 36816))*2);
2315       i0 = XML_Parser__IsNameChar(i0);
2316       if (i0) goto l3;
2317       XML_Parser__ParserDesc_ParseDocument_Err(11);
2318       XML_Parser__ParserDesc_ParseDocument_NextChar();
2319       i0 = (OOC_INT64)XML_Parser__noName;
2320       return (XML_UnicodeBuffer__CharArray)i0;
2321       goto l50;
2322 l3:
2323       i0 = cpos;
2324       cstart = i0;
2325       i1 = (OOC_INT64)chars;
2326       i1 = _check_pointer(i1, 36870);
2327       i2 = OOC_ARRAY_LENGTH(i1, 0);
2328       i1 = *(OOC_UINT16*)(i1+(_check_index(i0, i2, OOC_UINT32, 36870))*2);
2329       i1 = i1==58u;
2330       if (i1) goto l6;
2331       colon = (-1);
2332       i0=(-1);
2333       goto l14;
2334 l6:
2335       colon = i0;
2336       i1 = checkForQName;
2337       if (!i1) goto l14;
2338       i1 = noColon;
2339       if (i1) goto l11;
2340       XML_Parser__ParserDesc_ParseDocument_Err(31);
2341       goto l14;
2342 l11:
2343       XML_Parser__ParserDesc_ParseDocument_Err(30);
2344 l14:
2345       i1 = cpos;
2346       cpos = (i1+1);
2347       i1 = noColon;
2348       i2 = checkForQName;
2349 
2350 l15_loop:
2351       i3 = (OOC_INT64)chars;
2352       i4 = _check_pointer(i3, 37277);
2353       i5 = OOC_ARRAY_LENGTH(i4, 0);
2354       i6 = cpos;
2355       i4 = *(OOC_UINT16*)(i4+(_check_index(i6, i5, OOC_UINT32, 37277))*2);
2356       i4 = i4==65534u;
2357       if (i4) goto l36;
2358       i4 = _check_pointer(i3, 37556);
2359       i5 = OOC_ARRAY_LENGTH(i4, 0);
2360       i4 = *(OOC_UINT16*)(i4+(_check_index(i6, i5, OOC_UINT32, 37556))*2);
2361       i4 = i4==58u;
2362       if (i4) goto l20;
2363       i4=0u;
2364       goto l22;
2365 l20:
2366       i4=i2;
2367 l22:
2368       if (i4) goto l28;
2369       i3 = _check_pointer(i3, 37895);
2370       i4 = OOC_ARRAY_LENGTH(i3, 0);
2371       i3 = *(OOC_UINT16*)(i3+(_check_index(i6, i4, OOC_UINT32, 37895))*2);
2372       i3 = XML_Parser__IsNameChar(i3);
2373       if (!i3) goto l25;
2374       goto l26;
2375 l25:
2376       i0 = cpos;
2377       i1 = cstart;
2378       i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_GetString(i1, i0);
2379       string = (XML_UnicodeBuffer__CharArray)i0;
2380 
2381       goto l43;
2382 l26:
2383       i3 = cpos;
2384       cpos = (i3+1);
2385       goto l15_loop;
2386 l28:
2387       if (i1) goto l33;
2388       i0 = i0>=0;
2389       if (i0) goto l31;
2390       goto l34;
2391 l31:
2392       XML_Parser__ParserDesc_ParseDocument_Err(31);
2393       goto l34;
2394 l33:
2395       XML_Parser__ParserDesc_ParseDocument_Err(30);
2396 l34:
2397       i0 = cpos;
2398       colon = i0;
2399       cpos = (i0+1);
2400 
2401       goto l15_loop;
2402 l36:
2403       i4 = (OOC_INT64)p;
2404       i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 37334))+64);
2405       i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 37338))+40);
2406       i3 = i3!=i4;
2407       if (i3) goto l40;
2408       XML_Parser__ParserDesc_ParseDocument_NextBlock();
2409       goto l15_loop;
2410 l40:
2411       i0 = cstart;
2412       i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_GetString(i0, i6);
2413       string = (XML_UnicodeBuffer__CharArray)i0;
2414       XML_Parser__ParserDesc_ParseDocument_NextBlock();
2415 
2416 l43:
2417       if (i2) goto l45;
2418       i1=0u;
2419       goto l47;
2420 l45:
2421       i1 = _check_pointer(i0, 38072);
2422       i2 = OOC_ARRAY_LENGTH((_check_pointer(i0, 38084)), 0);
2423       i3 = OOC_ARRAY_LENGTH(i1, 0);
2424       i1 = *(OOC_UINT16*)(i1+(_check_index((i2-2), i3, OOC_UINT32, 38072))*2);
2425       i1 = i1==58u;
2426 
2427 l47:
2428       if (!i1) goto l49;
2429       XML_Parser__ParserDesc_ParseDocument_Err(31);
2430 l49:
2431       return (XML_UnicodeBuffer__CharArray)i0;
2432 l50:
2433       _failed_function(36603); return 0;
2434       ;
2435     }
2436 
2437 
2438     XML_UnicodeBuffer__CharArray XML_Parser__ParserDesc_ParseDocument_Name(OOC_CHAR8 noColon) {
2439       register OOC_INT64 i0,i1,i2;
2440 
2441       i0 = (OOC_INT64)chars;
2442       i0 = _check_pointer(i0, 38474);
2443       i1 = OOC_ARRAY_LENGTH(i0, 0);
2444       i2 = cpos;
2445       i0 = *(OOC_UINT16*)(i0+(_check_index(i2, i1, OOC_UINT32, 38474))*2);
2446       i0 = XML_Parser__IsNameChar0(i0);
2447       if (i0) goto l3;
2448       XML_Parser__ParserDesc_ParseDocument_Err(10);
2449       XML_Parser__ParserDesc_ParseDocument_NextChar();
2450       i0 = (OOC_INT64)XML_Parser__noName;
2451       return (XML_UnicodeBuffer__CharArray)i0;
2452       goto l4;
2453 l3:
2454       i0 = (OOC_INT64)p;
2455       i0 = *(OOC_UINT8*)((_check_pointer(i0, 38512))+113);
2456       i1 = noColon;
2457       i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Nmtoken(i0, i1);
2458       return (XML_UnicodeBuffer__CharArray)i0;
2459 l4:
2460       _failed_function(38338); return 0;
2461       ;
2462     }
2463 
2464 
2465     void XML_Parser__ParserDesc_ParseDocument_CheckChar(OOC_CHAR8 ch) {
2466       register OOC_INT64 i0,i1,i2,i3;
2467       OOC_CHAR8 str[2];
2468 
2469       i0 = (OOC_INT64)chars;
2470       i0 = _check_pointer(i0, 38858);
2471       i1 = OOC_ARRAY_LENGTH(i0, 0);
2472       i2 = cpos;
2473       i0 = *(OOC_UINT16*)(i0+(_check_index(i2, i1, OOC_UINT32, 38858))*2);
2474       i1 = ch;
2475       i0 = i0!=i1;
2476       if (!i0) goto l3;
2477       XML_Parser__ParserDesc_ParseDocument_Err(12);
2478       _copy_8((const void*)(OOC_CHAR8*)"X",(void*)(OOC_INT64)str,2);
2479       *(OOC_UINT8*)((OOC_INT64)str+(_check_index(0, 2, OOC_UINT8, 38935))) = i1;
2480       i0 = (OOC_INT64)Msg__GetStringPtr((void*)(OOC_INT64)str, 2);
2481       i1 = (OOC_INT64)p;
2482       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 38955))+176);
2483       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 38955))+176);
2484       OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 38966)))), Msg__MsgDesc_SetStringAttrib)),Msg__MsgDesc_SetStringAttrib)((Msg__Msg)i1, (OOC_CHAR8*)"symbol", 7, (Msg__StringPtr)i0);
2485 l3:
2486       i0 = (OOC_INT64)chars;
2487       i1 = _check_pointer(i0, 39045);
2488       i2 = OOC_ARRAY_LENGTH(i1, 0);
2489       i3 = cpos;
2490       i1 = *(OOC_UINT16*)(i1+(_check_index(i3, i2, OOC_UINT32, 39045))*2);
2491       i1 = i1!=65535u;
2492       if (!i1) goto l9;
2493       i1 = i3+1;
2494       cpos = i1;
2495       i0 = _check_pointer(i0, 39114);
2496       i2 = OOC_ARRAY_LENGTH(i0, 0);
2497       i0 = *(OOC_UINT16*)(i0+(_check_index(i1, i2, OOC_UINT32, 39114))*2);
2498       i0 = i0==65534u;
2499       if (!i0) goto l9;
2500       XML_Parser__ParserDesc_ParseDocument_NextBlock();
2501 l9:
2502       return;
2503       ;
2504     }
2505 
2506 
2507     void XML_Parser__ParserDesc_ParseDocument_SkippedEntity(XML_UnicodeBuffer__CharArray name) {
2508       register OOC_INT64 i0,i1;
2509 
2510       i0 = (OOC_INT64)p;
2511       *(OOC_UINT8*)((_check_pointer(i0, 39459))+116) = 0u;
2512       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 39498))+96);
2513       i1 = *(OOC_INT8*)((_check_pointer(i1, 39514))+96);
2514       i1 = i1!=0;
2515       if (!i1) goto l3;
2516       *(OOC_UINT8*)((_check_pointer(i0, 39562))+115) = 0u;
2517 l3:
2518       return;
2519       ;
2520     }
2521 
2522 
2523     void XML_Parser__ParserDesc_ParseDocument_PEReference(OOC_CHAR8 declSep) {
2524       register OOC_INT64 i0,i1,i2,i3,i4,i5;
2525       OOC_INT32 oldCStart;
2526       XML_UnicodeBuffer__CharArray name;
2527       XML_DTD__Declaration decl;
2528       XML_DTD__Entity entity;
2529       OOC_CHAR8 inInternalSubset;
2530       OOC_CHAR8 oldFlag;
2531 
2532       i0 = declSep;
2533       i1 = !i0;
2534       if (i1) goto l3;
2535       i1=0u;
2536       goto l9;
2537 l3:
2538       i1 = (OOC_INT64)p;
2539       i2 = *(OOC_UINT8*)((_check_pointer(i1, 39923))+119);
2540       i2 = !i2;
2541       if (i2) goto l6;
2542       i1=0u;
2543       goto l9;
2544 l6:
2545       i1 = *(OOC_UINT8*)((_check_pointer(i1, 39946))+120);
2546       i1 = !i1;
2547 
2548 l9:
2549       if (!i1) goto l11;
2550       XML_Parser__ParserDesc_ParseDocument_Err(115);
2551 l11:
2552       XML_Parser__ParserDesc_ParseDocument_CheckChar(37u);
2553       i1 = (OOC_INT64)p;
2554       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 40065))+64);
2555       i1 = *(OOC_INT32*)((_check_pointer(i1, 40069))+48);
2556       i2 = cstart;
2557       i1 = i2+i1;
2558       oldCStart = i1;
2559       i2 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Name(1u);
2560       name = (XML_UnicodeBuffer__CharArray)i2;
2561       i3 = (OOC_INT64)p;
2562       i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 40141))+64);
2563       i3 = *(OOC_INT32*)((_check_pointer(i3, 40145))+48);
2564       cstart = (i1-i3);
2565       XML_Parser__ParserDesc_ParseDocument_CheckChar(59u);
2566       i1 = (OOC_INT64)dtd;
2567       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 40203))+16);
2568       i1 = (OOC_INT64)XML_DTD__NamespaceDesc_Get((XML_DTD__Namespace)i1, (XML_UnicodeBuffer__CharArray)i2);
2569       decl = (XML_DTD__Declaration)i1;
2570       i3 = i1==(OOC_INT64)0;
2571       if (i3) goto l48;
2572       i1 = _type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 40608)))), &_td_XML_DTD__EntityDesc, 40608);
2573       entity = (XML_DTD__Entity)i1;
2574       if (i0) goto l19;
2575       i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 41950)))), &_td_XML_DTD__ExternalEntityDesc);
2576       if (!i0) goto l18;
2577       i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Internalize((XML_DTD__ExternalEntity)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 42038)))), &_td_XML_DTD__ExternalEntityDesc, 42038)));
2578       XML_DTD__EntityDesc_SetEntityValue((XML_DTD__Entity)i1, (XML_UnicodeBuffer__CharArray)i0);
2579 l18:
2580       XML_Parser__ParserDesc_ParseDocument_PushEntity((XML_DTD__Entity)i1, 0u);
2581       goto l61;
2582 l19:
2583       i0 = (OOC_INT64)p;
2584       i3 = *(OOC_UINT8*)((_check_pointer(i0, 40808))+112);
2585       if (i3) goto l22;
2586       i3 = *(OOC_INT8*)((_check_pointer(i1, 40851))+16);
2587       i3 = i3==1;
2588 
2589       goto l24;
2590 l22:
2591       i3=1u;
2592 l24:
2593       if (i3) goto l26;
2594       XML_Parser__ParserDesc_ParseDocument_SkippedEntity((XML_UnicodeBuffer__CharArray)i2);
2595       goto l61;
2596 l26:
2597       i2 = *(OOC_UINT8*)((_check_pointer(i0, 40929))+119);
2598       if (i2) goto l29;
2599       i0 = *(OOC_UINT8*)((_check_pointer(i0, 40952))+120);
2600 
2601       goto l30;
2602 l29:
2603       i0=1u;
2604 l30:
2605       i0 = !i0;
2606       inInternalSubset = i0;
2607       XML_Parser__ParserDesc_ParseDocument_PushEntity((XML_DTD__Entity)i1, i0);
2608       i2 = (OOC_INT64)p;
2609       i3 = *(OOC_UINT8*)((_check_pointer(i2, 41127))+120);
2610       oldFlag = i3;
2611       i4 = *(OOC_INT8*)((_check_pointer(i1, 41169))+16);
2612       i4 = i4==3;
2613       if (!i4) goto l36;
2614       *(OOC_UINT8*)((_check_pointer(i2, 41227))+120) = 1u;
2615       i2 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"<?xml", 6, 1);
2616       if (!i2) goto l36;
2617       XML_Parser__ParserDesc_ParseDocument_XMLDecl((XML_DTD__ExternalEntity)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 41352)))), &_td_XML_DTD__ExternalEntityDesc, 41352)));
2618 l36:
2619       XML_Parser__ParserDesc_ParseDocument_extSubsetDecl();
2620       i2 = (OOC_INT64)chars;
2621       i2 = _check_pointer(i2, 41465);
2622       i4 = OOC_ARRAY_LENGTH(i2, 0);
2623       i5 = cpos;
2624       i2 = *(OOC_UINT16*)(i2+(_check_index(i5, i4, OOC_UINT32, 41465))*2);
2625       i2 = i2!=65535u;
2626       if (!i2) goto l39;
2627       XML_Parser__ParserDesc_ParseDocument_Err(28);
2628 l39:
2629       i1 = *(OOC_INT8*)((_check_pointer(i1, 41588))+16);
2630       i1 = i1==3;
2631       if (!i1) goto l43;
2632       i1 = (OOC_INT64)p;
2633       *(OOC_UINT8*)((_check_pointer(i1, 41646))+120) = i3;
2634 l43:
2635       if (!i0) goto l61;
2636       XML_Parser__ParserDesc_ParseDocument_PopEntity();
2637       goto l61;
2638 l48:
2639       i0 = (OOC_INT64)p;
2640       i1 = *(OOC_UINT8*)((_check_pointer(i0, 40318))+114);
2641       if (i1) goto l55;
2642       i1 = *(OOC_UINT8*)((_check_pointer(i0, 40347))+115);
2643       if (i1) goto l53;
2644       i0=0u;
2645       goto l57;
2646 l53:
2647       i0 = *(OOC_UINT8*)((_check_pointer(i0, 40372))+112);
2648 
2649       goto l57;
2650 l55:
2651       i0=1u;
2652 l57:
2653       if (i0) goto l59;
2654       XML_Parser__ParserDesc_ParseDocument_SkippedEntity((XML_UnicodeBuffer__CharArray)i2);
2655       goto l61;
2656 l59:
2657       XML_Parser__ParserDesc_ParseDocument_Err(211);
2658       i0 = OOC_ARRAY_LENGTH((_check_pointer(i2, 40510)), 0);
2659       i0 = (OOC_INT64)Msg__GetLStringPtr((void*)(_check_pointer(i2, 40510)), i0);
2660       i1 = (OOC_INT64)p;
2661       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 40448))+176);
2662       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 40448))+176);
2663       OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 40459)))), Msg__MsgDesc_SetLStringAttrib)),Msg__MsgDesc_SetLStringAttrib)((Msg__Msg)i1, (OOC_CHAR8*)"name", 5, (Msg__LStringPtr)i0);
2664 l61:
2665       return;
2666       ;
2667     }
2668 
2669 
2670     void XML_Parser__ParserDesc_ParseDocument_OptS(OOC_CHAR8 noPE) {
2671       register OOC_INT64 i0,i1,i2,i3,i4,i5;
2672 
2673       i0 = noPE;
2674       i1 = !i0;
2675 l1_loop:
2676       i2 = (OOC_INT64)chars;
2677       i3 = _check_pointer(i2, 42601);
2678       i4 = OOC_ARRAY_LENGTH(i3, 0);
2679       i5 = cpos;
2680       i3 = *(OOC_UINT16*)(i3+(_check_index(i5, i4, OOC_UINT32, 42601))*2);
2681       switch (i3) {
2682       case 65534u:
2683         XML_Parser__ParserDesc_ParseDocument_NextBlock();
2684         goto l1_loop;
2685       case 32u:
2686         cpos = (i5+1);
2687         goto l1_loop;
2688       case 10u:
2689         cpos = (i5+1);
2690         XML_Parser__ParserDesc_ParseDocument_EndOfLine();
2691         goto l1_loop;
2692       case 13u:
2693         i3 = i5+1;
2694         cpos = i3;
2695         i2 = _check_pointer(i2, 42808);
2696         i4 = OOC_ARRAY_LENGTH(i2, 0);
2697         i2 = *(OOC_UINT16*)(i2+(_check_index(i3, i4, OOC_UINT32, 42808))*2);
2698         i2 = i2==65534u;
2699         if (!i2) goto l9;
2700         XML_Parser__ParserDesc_ParseDocument_NextBlock();
2701 l9:
2702         i2 = (OOC_INT64)chars;
2703         i2 = _check_pointer(i2, 42896);
2704         i3 = OOC_ARRAY_LENGTH(i2, 0);
2705         i4 = cpos;
2706         i2 = *(OOC_UINT16*)(i2+(_check_index(i4, i3, OOC_UINT32, 42896))*2);
2707         i2 = i2==10u;
2708         if (i2) goto l11;
2709         goto l12;
2710 l11:
2711         cpos = (i4+1);
2712 l12:
2713         XML_Parser__ParserDesc_ParseDocument_EndOfLine();
2714         goto l1_loop;
2715       case 9u:
2716         XML_Parser__ParserDesc_ParseDocument_Tab();
2717         i2 = cpos;
2718         cpos = (i2+1);
2719         goto l1_loop;
2720       case 37u:
2721         if (!i1) goto l25;
2722         XML_Parser__ParserDesc_ParseDocument_PEReference(0u);
2723         XML_Parser__ParserDesc_ParseDocument_OptS(i0);
2724         goto l1_loop;
2725       default:
2726         i2 = _check_pointer(i2, 43198);
2727         i3 = OOC_ARRAY_LENGTH(i2, 0);
2728         i2 = *(OOC_UINT16*)(i2+(_check_index(i5, i3, OOC_UINT32, 43198))*2);
2729         i2 = (OOC_UINT16)i2<(OOC_UINT16)32u;
2730         if (!i2) goto l25;
2731         XML_Parser__ParserDesc_ParseDocument_Err(1);
2732         i2 = cpos;
2733         cpos = (i2+1);
2734         goto l1_loop;
2735       }
2736 l25:
2737       return;
2738       ;
2739     }
2740 
2741 
2742     void XML_Parser__ParserDesc_ParseDocument_S(void) {
2743       register OOC_INT64 i0;
2744 
2745       i0 = XML_Parser__ParserDesc_ParseDocument_LookingAtS();
2746       if (i0) goto l3;
2747       XML_Parser__ParserDesc_ParseDocument_Err(9);
2748       goto l4;
2749 l3:
2750       XML_Parser__ParserDesc_ParseDocument_OptS(0u);
2751 l4:
2752       return;
2753       ;
2754     }
2755 
2756 
2757     void XML_Parser__ParserDesc_ParseDocument_SnoPE(void) {
2758       register OOC_INT64 i0;
2759 
2760       i0 = XML_Parser__ParserDesc_ParseDocument_LookingAtSnoPE();
2761       if (i0) goto l3;
2762       XML_Parser__ParserDesc_ParseDocument_Err(9);
2763       goto l4;
2764 l3:
2765       XML_Parser__ParserDesc_ParseDocument_OptS(1u);
2766 l4:
2767       return;
2768       ;
2769     }
2770 
2771 
2772     void XML_Parser__ParserDesc_ParseDocument_ControlChar(OOC_CHAR16 eolReplacement) {
2773       register OOC_INT64 i0,i1,i2,i3,i4,i5;
2774       OOC_INT32 cend;
2775 
2776       i0 = (OOC_INT64)chars;
2777       i1 = _check_pointer(i0, 44240);
2778       i2 = OOC_ARRAY_LENGTH(i1, 0);
2779       i3 = cpos;
2780       i1 = *(OOC_UINT16*)(i1+(_check_index(i3, i2, OOC_UINT32, 44240))*2);
2781       i1 = (OOC_UINT16)i1<(OOC_UINT16)32u;
2782       if (i1) goto l3;
2783       i1 = _check_pointer(i0, 44263);
2784       i2 = OOC_ARRAY_LENGTH(i1, 0);
2785       i1 = *(OOC_UINT16*)(i1+(_check_index(i3, i2, OOC_UINT32, 44263))*2);
2786       i1 = i1==65534u;
2787 
2788       goto l4;
2789 l3:
2790       i1=1u;
2791 l4:
2792       i2 = cdelta;
2793       i2 = i3-i2;
2794       _assert(i1, 127, 44226);
2795       cend = i2;
2796       i1 = _check_pointer(i0, 44335);
2797       i4 = OOC_ARRAY_LENGTH(i1, 0);
2798       i1 = *(OOC_UINT16*)(i1+(_check_index(i3, i4, OOC_UINT32, 44335))*2);
2799       switch (i1) {
2800       case 65534u:
2801         XML_Parser__ParserDesc_ParseDocument_NextBlock();
2802         goto l30;
2803       case 32u:
2804         i0 = _check_pointer(i0, 44415);
2805         i1 = OOC_ARRAY_LENGTH(i0, 0);
2806         *(OOC_UINT16*)(i0+(_check_index(i2, i1, OOC_UINT32, 44415))*2) = 32u;
2807         cpos = (i3+1);
2808         goto l30;
2809       case 10u:
2810         i1 = (OOC_INT64)p;
2811         i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 44480))+64);
2812         i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 44484))+40);
2813         i1 = i0==i1;
2814         if (i1) goto l11;
2815         i1 = _check_pointer(i0, 44705);
2816         i4 = OOC_ARRAY_LENGTH(i1, 0);
2817         i0 = _check_pointer(i0, 44720);
2818         i5 = OOC_ARRAY_LENGTH(i0, 0);
2819         i0 = *(OOC_UINT16*)(i0+(_check_index(i3, i5, OOC_UINT32, 44720))*2);
2820         *(OOC_UINT16*)(i1+(_check_index(i2, i4, OOC_UINT32, 44705))*2) = i0;
2821         cpos = (i3+1);
2822         goto l30;
2823 l11:
2824         i0 = _check_pointer(i0, 44513);
2825         i1 = OOC_ARRAY_LENGTH(i0, 0);
2826         i4 = eolReplacement;
2827         *(OOC_UINT16*)(i0+(_check_index(i2, i1, OOC_UINT32, 44513))*2) = i4;
2828         cpos = (i3+1);
2829         XML_Parser__ParserDesc_ParseDocument_EndOfLine();
2830         goto l30;
2831       case 13u:
2832         i1 = (OOC_INT64)p;
2833         i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 44790))+64);
2834         i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 44794))+40);
2835         i1 = i0==i1;
2836         if (i1) goto l16;
2837         i1 = _check_pointer(i0, 45218);
2838         i4 = OOC_ARRAY_LENGTH(i1, 0);
2839         i0 = _check_pointer(i0, 45233);
2840         i5 = OOC_ARRAY_LENGTH(i0, 0);
2841         i0 = *(OOC_UINT16*)(i0+(_check_index(i3, i5, OOC_UINT32, 45233))*2);
2842         *(OOC_UINT16*)(i1+(_check_index(i2, i4, OOC_UINT32, 45218))*2) = i0;
2843         cpos = (i3+1);
2844         goto l30;
2845 l16:
2846         i1 = _check_pointer(i0, 44823);
2847         i4 = OOC_ARRAY_LENGTH(i1, 0);
2848         i5 = eolReplacement;
2849         *(OOC_UINT16*)(i1+(_check_index(i2, i4, OOC_UINT32, 44823))*2) = i5;
2850         i1 = i3+1;
2851         cpos = i1;
2852         i0 = _check_pointer(i0, 44890);
2853         i2 = OOC_ARRAY_LENGTH(i0, 0);
2854         i0 = *(OOC_UINT16*)(i0+(_check_index(i1, i2, OOC_UINT32, 44890))*2);
2855         i0 = i0==65534u;
2856         if (!i0) goto l19;
2857         XML_Parser__ParserDesc_ParseDocument_NextBlock();
2858 l19:
2859         i0 = (OOC_INT64)chars;
2860         i0 = _check_pointer(i0, 44978);
2861         i1 = OOC_ARRAY_LENGTH(i0, 0);
2862         i2 = cpos;
2863         i0 = *(OOC_UINT16*)(i0+(_check_index(i2, i1, OOC_UINT32, 44978))*2);
2864         i0 = i0==10u;
2865         if (!i0) goto l22;
2866         i0 = cdelta;
2867         cpos = (i2+1);
2868         cdelta = (i0+1);
2869 l22:
2870         XML_Parser__ParserDesc_ParseDocument_EndOfLine();
2871         goto l30;
2872       case 9u:
2873         i1 = eolReplacement;
2874         i1 = i1==32u;
2875         if (i1) goto l27;
2876         i0 = _check_pointer(i0, 45378);
2877         i1 = OOC_ARRAY_LENGTH(i0, 0);
2878         *(OOC_UINT16*)(i0+(_check_index(i2, i1, OOC_UINT32, 45378))*2) = 9u;
2879         goto l28;
2880 l27:
2881         i0 = _check_pointer(i0, 45336);
2882         i1 = OOC_ARRAY_LENGTH(i0, 0);
2883         *(OOC_UINT16*)(i0+(_check_index(i2, i1, OOC_UINT32, 45336))*2) = 32u;
2884 l28:
2885         XML_Parser__ParserDesc_ParseDocument_Tab();
2886         i0 = cpos;
2887         cpos = (i0+1);
2888         goto l30;
2889       default:
2890         i0 = _check_pointer(i0, 45458);
2891         i1 = OOC_ARRAY_LENGTH(i0, 0);
2892         *(OOC_UINT16*)(i0+(_check_index(i2, i1, OOC_UINT32, 45458))*2) = 65533u;
2893         XML_Parser__ParserDesc_ParseDocument_Err(1);
2894         i0 = cpos;
2895         cpos = (i0+1);
2896         goto l30;
2897       }
2898 l30:
2899       return;
2900       ;
2901     }
2902 
2903 
2904     XML_UnicodeBuffer__CharArray XML_Parser__ParserDesc_ParseDocument_String(OOC_INT8 type) {
2905       register OOC_INT64 i0,i1,i2,i3,i4,i5,i6;
2906       struct XML_Locator__Position pos;
2907       OOC_CHAR16 endChar;
2908       XML_UnicodeBuffer__CharArray string;
2909       auto void XML_Parser__ParserDesc_ParseDocument_String_NormalizeWhitespace(void);
2910 
2911         void XML_Parser__ParserDesc_ParseDocument_String_NormalizeWhitespace(void) {
2912           register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10;
2913           OOC_INT32 i;
2914           OOC_INT32 delta;
2915 
2916           i0 = cpos;
2917           i1 = cdelta;
2918           i2 = i0-i1;
2919           i3 = cstart;
2920           i4 = i3!=i2;
2921           if (i4) goto l3;
2922           i4=0u;
2923           goto l5;
2924 l3:
2925           i4 = (OOC_INT64)chars;
2926           i4 = _check_pointer(i4, 46081);
2927           i5 = OOC_ARRAY_LENGTH(i4, 0);
2928           i4 = *(OOC_UINT16*)(i4+(_check_index(i3, i5, OOC_UINT32, 46081))*2);
2929           i4 = (OOC_UINT16)i4<=(OOC_UINT16)32u;
2930 
2931 l5:
2932           if (!i4) goto l17;
2933           i4 = (OOC_INT64)chars;
2934 
2935 l8_loop:
2936           i3 = i3+1;
2937           cstart = i3;
2938           i5 = i3!=i2;
2939           if (i5) goto l11;
2940           i5=0u;
2941           goto l13;
2942 l11:
2943           i5 = _check_pointer(i4, 46081);
2944           i6 = OOC_ARRAY_LENGTH(i5, 0);
2945           i5 = *(OOC_UINT16*)(i5+(_check_index(i3, i6, OOC_UINT32, 46081))*2);
2946           i5 = (OOC_UINT16)i5<=(OOC_UINT16)32u;
2947 
2948 l13:
2949           if (i5) goto l8_loop;
2950 l17:
2951           i = i3;
2952           delta = 0;
2953           i4 = i3!=i2;
2954           if (i4) goto l20;
2955           i2=0;
2956           goto l47;
2957 l20:
2958           i4 = (OOC_INT64)chars;
2959           i5=i3;i6=0;
2960 l21_loop:
2961           i7 = _check_pointer(i4, 46224);
2962           i8 = OOC_ARRAY_LENGTH(i7, 0);
2963           i7 = *(OOC_UINT16*)(i7+(_check_index(i5, i8, OOC_UINT32, 46224))*2);
2964           i7 = (OOC_UINT16)i7<=(OOC_UINT16)32u;
2965           if (i7) goto l24;
2966           i7 = _check_pointer(i4, 46486);
2967           i8 = OOC_ARRAY_LENGTH(i7, 0);
2968           i9 = _check_pointer(i4, 46504);
2969           i10 = OOC_ARRAY_LENGTH(i9, 0);
2970           i9 = *(OOC_UINT16*)(i9+(_check_index(i5, i10, OOC_UINT32, 46504))*2);
2971           *(OOC_UINT16*)(i7+(_check_index((i5-i6), i8, OOC_UINT32, 46486))*2) = i9;
2972           {register OOC_INT64 h0=i5;i5=i6;i6=h0;}
2973           goto l42;
2974 l24:
2975           i7 = _check_pointer(i4, 46322);
2976           i8 = OOC_ARRAY_LENGTH(i7, 0);
2977           *(OOC_UINT16*)(i7+(_check_index((i5-i6), i8, OOC_UINT32, 46322))*2) = 32u;
2978           i7 = i5+1;
2979           i8 = i7!=i2;
2980           if (i8) goto l27;
2981           i8=0u;
2982           goto l29;
2983 l27:
2984           i8 = _check_pointer(i4, 46386);
2985           i9 = OOC_ARRAY_LENGTH(i8, 0);
2986           i8 = *(OOC_UINT16*)(i8+(_check_index(i7, i9, OOC_UINT32, 46386))*2);
2987           i8 = (OOC_UINT16)i8<=(OOC_UINT16)32u;
2988 
2989 l29:
2990           if (i8) goto l31;
2991           {register OOC_INT64 h0=i5;i5=i6;i6=h0;}
2992           goto l42;
2993 l31:
2994           i5=i6;i6=i7;
2995 l32_loop:
2996           i = i6;
2997           i5 = i5+1;
2998           delta = i5;
2999           i7 = i6+1;
3000           i8 = i7!=i2;
3001           if (i8) goto l35;
3002           i8=0u;
3003           goto l37;
3004 l35:
3005           i8 = _check_pointer(i4, 46386);
3006           i9 = OOC_ARRAY_LENGTH(i8, 0);
3007           i8 = *(OOC_UINT16*)(i8+(_check_index(i7, i9, OOC_UINT32, 46386))*2);
3008           i8 = (OOC_UINT16)i8<=(OOC_UINT16)32u;
3009 
3010 l37:
3011           if (!i8) goto l42;
3012           i6=i7;
3013           goto l32_loop;
3014 l42:
3015           i6 = i6+1;
3016           i = i6;
3017           i7 = i6!=i2;
3018           if (!i7) goto l46;
3019           {register OOC_INT64 h0=i5;i5=i6;i6=h0;}
3020           goto l21_loop;
3021 l46:
3022           i2=i5;
3023 l47:
3024           i1 = i1+i2;
3025           cdelta = i1;
3026           i0 = i0-i1;
3027           i2 = i0!=i3;
3028           if (i2) goto l50;
3029           i0=0u;
3030           goto l52;
3031 l50:
3032           i2 = (OOC_INT64)chars;
3033           i2 = _check_pointer(i2, 46698);
3034           i3 = OOC_ARRAY_LENGTH(i2, 0);
3035           i0 = *(OOC_UINT16*)(i2+(_check_index((i0-1), i3, OOC_UINT32, 46698))*2);
3036           i0 = i0==32u;
3037 
3038 l52:
3039           if (!i0) goto l54;
3040           cdelta = (i1+1);
3041 l54:
3042           return;
3043           ;
3044         }
3045 
3046 
3047       i0 = (OOC_INT64)chars;
3048       i1 = _check_pointer(i0, 46822);
3049       i2 = OOC_ARRAY_LENGTH(i1, 0);
3050       i3 = cpos;
3051       i1 = *(OOC_UINT16*)(i1+(_check_index(i3, i2, OOC_UINT32, 46822))*2);
3052       i1 = i1==39u;
3053       if (i1) goto l3;
3054       i0 = _check_pointer(i0, 46845);
3055       i1 = OOC_ARRAY_LENGTH(i0, 0);
3056       i0 = *(OOC_UINT16*)(i0+(_check_index(i3, i1, OOC_UINT32, 46845))*2);
3057       i0 = i0==34u;
3058 
3059       goto l5;
3060 l3:
3061       i0=1u;
3062 l5:
3063       if (i0) goto l7;
3064       XML_Parser__ParserDesc_ParseDocument_Err(16);
3065       i0 = cpos;
3066       i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_GetString(i0, i0);
3067       return (XML_UnicodeBuffer__CharArray)i0;
3068       goto l59;
3069 l7:
3070       i0 = (OOC_INT64)&_td_XML_Locator__Position;
3071       XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(OOC_INT64)&pos, (RT0__Struct)i0);
3072       i1 = (OOC_INT64)chars;
3073       i1 = _check_pointer(i1, 46917);
3074       i2 = OOC_ARRAY_LENGTH(i1, 0);
3075       i3 = cpos;
3076       i1 = *(OOC_UINT16*)(i1+(_check_index(i3, i2, OOC_UINT32, 46917))*2);
3077       endChar = i1;
3078       i1 = i3+1;
3079       cpos = i1;
3080       cstart = i1;
3081       cdelta = 0;
3082 l8_loop:
3083       i1 = (OOC_INT64)chars;
3084       i2 = _check_pointer(i1, 47015);
3085       i3 = OOC_ARRAY_LENGTH(i2, 0);
3086       i4 = cpos;
3087       i2 = *(OOC_UINT16*)(i2+(_check_index(i4, i3, OOC_UINT32, 47015))*2);
3088       switch (i2) {
3089       case 0u ... 31u:
3090       case 65534u:
3091         i2 = type;
3092         i2 = i2==2;
3093         if (i2) goto l13;
3094         i1=0u;
3095         goto l15;
3096 l13:
3097         i1 = _check_pointer(i1, 47116);
3098         i2 = OOC_ARRAY_LENGTH(i1, 0);
3099         i1 = *(OOC_UINT16*)(i1+(_check_index(i4, i2, OOC_UINT32, 47116))*2);
3100         i1 = i1==9u;
3101 
3102 l15:
3103         if (i1) goto l16;
3104         goto l17;
3105 l16:
3106         XML_Parser__ParserDesc_ParseDocument_Err(20);
3107 l17:
3108         XML_Parser__ParserDesc_ParseDocument_ControlChar(10u);
3109         goto l8_loop;
3110       case 65535u:
3111         XML_Parser__ParserDesc_ParseDocument_ErrPos(6, (void*)(OOC_INT64)&pos, (RT0__Struct)i0);
3112         i1 = cpos;
3113         i2 = cdelta;
3114         i3 = cstart;
3115         i1 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_GetString(i3, (i1-i2));
3116         return (XML_UnicodeBuffer__CharArray)i1;
3117         goto l8_loop;
3118       default:
3119         i2 = _check_pointer(i1, 47389);
3120         i3 = OOC_ARRAY_LENGTH(i2, 0);
3121         i2 = *(OOC_UINT16*)(i2+(_check_index(i4, i3, OOC_UINT32, 47389))*2);
3122         i3 = endChar;
3123         i2 = i2==i3;
3124         if (i2) goto l37;
3125         i2 = type;
3126         switch (i2) {
3127         case 2:
3128           i1 = _check_pointer(i1, 48193);
3129           i2 = OOC_ARRAY_LENGTH(i1, 0);
3130           i1 = *(OOC_UINT16*)(i1+(_check_index(i4, i2, OOC_UINT32, 48193))*2);
3131           i1 = XML_Parser__IsPubidChar(i1);
3132           i1 = !i1;
3133           if (i1) goto l25;
3134           goto l36;
3135 l25:
3136           XML_Parser__ParserDesc_ParseDocument_Err(20);
3137           goto l36;
3138         case 4:
3139           i1 = _check_pointer(i1, 48339);
3140           i2 = OOC_ARRAY_LENGTH(i1, 0);
3141           i3 = cstart;
3142           i1 = *(OOC_UINT16*)(i1+(_check_index(i4, i2, OOC_UINT32, 48339))*2);
3143           i1 = XML_Parser__IsEncNameChar(i1, (i4==i3));
3144           i1 = !i1;
3145           if (i1) goto l29;
3146           goto l36;
3147 l29:
3148           XML_Parser__ParserDesc_ParseDocument_Err(21);
3149           goto l36;
3150         case 3:
3151           i1 = _check_pointer(i1, 48504);
3152           i2 = OOC_ARRAY_LENGTH(i1, 0);
3153           i1 = *(OOC_UINT16*)(i1+(_check_index(i4, i2, OOC_UINT32, 48504))*2);
3154           i1 = XML_Parser__IsVersionNumChar(i1);
3155           i1 = !i1;
3156           if (i1) goto l33;
3157           goto l36;
3158 l33:
3159           XML_Parser__ParserDesc_ParseDocument_Err(22);
3160           goto l36;
3161         default:
3162           goto l36;
3163         }
3164 l36:
3165         i1 = (OOC_INT64)chars;
3166         i2 = _check_pointer(i1, 48653);
3167         i3 = cdelta;
3168         i4 = cpos;
3169         i5 = OOC_ARRAY_LENGTH(i2, 0);
3170         i1 = _check_pointer(i1, 48675);
3171         i6 = OOC_ARRAY_LENGTH(i1, 0);
3172         i1 = *(OOC_UINT16*)(i1+(_check_index(i4, i6, OOC_UINT32, 48675))*2);
3173         *(OOC_UINT16*)(i2+(_check_index((i4-i3), i5, OOC_UINT32, 48653))*2) = i1;
3174         cpos = (i4+1);
3175         goto l8_loop;
3176 l37:
3177         i1 = type;
3178         i1 = i1==2;
3179         if (!i1) goto l40;
3180         XML_Parser__ParserDesc_ParseDocument_String_NormalizeWhitespace();
3181 l40:
3182         i1 = cpos;
3183         i2 = cdelta;
3184         i3 = cstart;
3185         i1 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_GetString(i3, (i1-i2));
3186         string = (XML_UnicodeBuffer__CharArray)i1;
3187         i2 = endChar;
3188         XML_Parser__ParserDesc_ParseDocument_CheckChar(i2);
3189         i2 = type;
3190         switch (i2) {
3191         case 5:
3192           i2 = (
3193           _cmp16((const void*)(_check_pointer(i1, 47719)),(const void*)((OOC_CHAR16[]){121,101,115,0})))!=0;
3194           if (i2) goto l45;
3195           i2=0u;
3196           goto l47;
3197 l45:
3198           i2 = (
3199           _cmp16((const void*)(_check_pointer(i1, 47739)),(const void*)((OOC_CHAR16[]){110,111,0})))!=0;
3200 
3201 l47:
3202           if (i2) goto l48;
3203           goto l55;
3204 l48:
3205           XML_Parser__ParserDesc_ParseDocument_ErrPos(24, (void*)(OOC_INT64)&pos, (RT0__Struct)i0);
3206           goto l55;
3207         case 4:
3208         case 3:
3209           i2 = (
3210           _cmp16((const void*)(_check_pointer(i1, 47893)),(const void*)((OOC_CHAR16[]){0})))==0;
3211           if (i2) goto l52;
3212           goto l55;
3213 l52:
3214           XML_Parser__ParserDesc_ParseDocument_ErrPos(23, (void*)(OOC_INT64)&pos, (RT0__Struct)i0);
3215           goto l55;
3216         default:
3217           goto l55;
3218         }
3219 l55:
3220         return (XML_UnicodeBuffer__CharArray)i1;
3221         goto l8_loop;
3222       }
3223 l59:
3224       _failed_function(45583); return 0;
3225       ;
3226     }
3227 
3228 
3229     void XML_Parser__ParserDesc_ParseDocument_Eq(void) {
3230 
3231       XML_Parser__ParserDesc_ParseDocument_OptS(1u);
3232       XML_Parser__ParserDesc_ParseDocument_CheckChar(61u);
3233       XML_Parser__ParserDesc_ParseDocument_OptS(1u);
3234       return;
3235       ;
3236     }
3237 
3238 
3239     void XML_Parser__ParserDesc_ParseDocument_XMLDecl(XML_DTD__ExternalEntity entity) {
3240       register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8;
3241       XML_UnicodeBuffer__CharArray string;
3242       OOC_CHAR8 *encoding;
3243       OOC_INT32 i;
3244       XML_UnicodeCodec__Factory codecFactory;
3245 
3246       i0 = cpos;
3247       i1 = (OOC_INT64)entity;
3248       _assert((i0==0), 127, 49256);
3249       _assert((i1!=(OOC_INT64)0), 127, 49281);
3250       i0 = i0+5;
3251       cpos = i0;
3252       i2 = (OOC_INT64)chars;
3253       i2 = _check_pointer(i2, 49382);
3254       i3 = OOC_ARRAY_LENGTH(i2, 0);
3255       i0 = *(OOC_UINT16*)(i2+(_check_index(i0, i3, OOC_UINT32, 49382))*2);
3256       i0 = i0!=63u;
3257       if (!i0) goto l3;
3258       XML_Parser__ParserDesc_ParseDocument_S();
3259 l3:
3260       i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"version", 8, 1);
3261       if (i0) goto l9;
3262       i0 = *(OOC_INT8*)((_check_pointer(i1, 49654))+16);
3263       i0 = i0==5;
3264       if (!i0) goto l13;
3265       XML_Parser__ParserDesc_ParseDocument_Err(111);
3266       goto l13;
3267 l9:
3268       i0 = cpos;
3269       cpos = (i0+7);
3270       XML_Parser__ParserDesc_ParseDocument_Eq();
3271       i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_String(3);
3272       XML_DTD__ExternalEntityDesc_SetVersion((XML_DTD__ExternalEntity)i1, (XML_UnicodeBuffer__CharArray)i0);
3273       i0 = (OOC_INT64)chars;
3274       i0 = _check_pointer(i0, 49610);
3275       i2 = OOC_ARRAY_LENGTH(i0, 0);
3276       i3 = cpos;
3277       i0 = *(OOC_UINT16*)(i0+(_check_index(i3, i2, OOC_UINT32, 49610))*2);
3278       i0 = i0!=63u;
3279       if (!i0) goto l13;
3280       XML_Parser__ParserDesc_ParseDocument_S();
3281 l13:
3282       i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"encoding", 9, 1);
3283       if (i0) goto l19;
3284       i0 = *(OOC_INT8*)((_check_pointer(i1, 50817))+16);
3285       i0 = i0!=5;
3286       if (!i0) goto l46;
3287       XML_Parser__ParserDesc_ParseDocument_Err(116);
3288       goto l46;
3289 l19:
3290       i0 = cpos;
3291       cpos = (i0+8);
3292       XML_Parser__ParserDesc_ParseDocument_Eq();
3293       i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_String(4);
3294       string = (XML_UnicodeBuffer__CharArray)i0;
3295       i2 = (OOC_INT64)p;
3296       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 49927))+64);
3297       i2 = *(OOC_UINT8*)((_check_pointer(i2, 49931))+32);
3298       if (i2) goto l22;
3299       i2=0u;
3300       goto l24;
3301 l22:
3302       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 49960))+88);
3303       i2 = i2==(OOC_INT64)0;
3304 
3305 l24:
3306       if (!i2) goto l42;
3307       i2 = OOC_ARRAY_LENGTH((_check_pointer(i0, 50178)), 0);
3308       i2 = LongStrings__Length((void*)(_check_pointer(i0, 50178)), i2);
3309       i2 = (OOC_INT64)RT0__NewObject(_td_XML_Parser__49161.baseTypes[0], (i2+1));
3310       encoding = (void*)i2;
3311       i = 0;
3312       i3 = OOC_ARRAY_LENGTH((_check_pointer(i2, 50222)), 0);
3313       i4 = 0<i3;
3314       if (!i4) goto l37;
3315       i4=0;
3316 l28_loop:
3317       i5 = _check_pointer(i0, 50252);
3318       i6 = OOC_ARRAY_LENGTH(i5, 0);
3319       i5 = *(OOC_UINT16*)(i5+(_check_index(i4, i6, OOC_UINT32, 50252))*2);
3320       i5 = (OOC_UINT16)i5>(OOC_UINT16)255u;
3321       if (i5) goto l31;
3322       i5 = _check_pointer(i2, 50347);
3323       i6 = OOC_ARRAY_LENGTH(i5, 0);
3324       i7 = _check_pointer(i0, 50367);
3325       i8 = OOC_ARRAY_LENGTH(i7, 0);
3326       i7 = *(OOC_UINT16*)(i7+(_check_index(i4, i8, OOC_UINT32, 50367))*2);
3327       *(OOC_UINT8*)(i5+(_check_index(i4, i6, OOC_UINT32, 50347))) = i7;
3328       goto l32;
3329 l31:
3330       i5 = _check_pointer(i2, 50297);
3331       i6 = OOC_ARRAY_LENGTH(i5, 0);
3332       *(OOC_UINT8*)(i5+(_check_index(i4, i6, OOC_UINT32, 50297))) = 63u;
3333 l32:
3334       i4 = i4+1;
3335       i = i4;
3336       i5 = i4<i3;
3337       if (i5) goto l28_loop;
3338 l37:
3339       i3 = OOC_ARRAY_LENGTH((_check_pointer(i2, 50455)), 0);
3340       i2 = (OOC_INT64)XML_UnicodeCodec__GetFactory((void*)(_check_pointer(i2, 50455)), i3);
3341       codecFactory = (XML_UnicodeCodec__Factory)i2;
3342       i3 = i2==(OOC_INT64)0;
3343       if (i3) goto l40;
3344       i3 = (OOC_INT64)p;
3345       i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 50569))+64);
3346       XML_UnicodeBuffer__InputDesc_SetCodec((XML_UnicodeBuffer__Input)i3, (XML_UnicodeCodec__Factory)i2, 0u);
3347       XML_Parser__ParserDesc_ParseDocument_ResetLocator();
3348       XML_Parser__ParserDesc_ParseDocument_XMLDecl((XML_DTD__ExternalEntity)i1);
3349       return;
3350       goto l42;
3351 l40:
3352       XML_Parser__ParserDesc_ParseDocument_Err(29);
3353 l42:
3354       XML_DTD__ExternalEntityDesc_SetEncoding((XML_DTD__ExternalEntity)i1, (XML_UnicodeBuffer__CharArray)i0);
3355       i0 = (OOC_INT64)chars;
3356       i0 = _check_pointer(i0, 50773);
3357       i2 = OOC_ARRAY_LENGTH(i0, 0);
3358       i3 = cpos;
3359       i0 = *(OOC_UINT16*)(i0+(_check_index(i3, i2, OOC_UINT32, 50773))*2);
3360       i0 = i0!=63u;
3361       if (!i0) goto l46;
3362       XML_Parser__ParserDesc_ParseDocument_S();
3363 l46:
3364       i0 = *(OOC_INT8*)((_check_pointer(i1, 50913))+16);
3365       i0 = i0==5;
3366       if (i0) goto l49;
3367       i0=0u;
3368       goto l51;
3369 l49:
3370       i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"standalone", 11, 1);
3371 
3372 l51:
3373       if (!i0) goto l57;
3374       i0 = cpos;
3375       cpos = (i0+10);
3376       XML_Parser__ParserDesc_ParseDocument_Eq();
3377       i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_String(5);
3378       string = (XML_UnicodeBuffer__CharArray)i0;
3379       i0 = (
3380       _cmp16((const void*)(_check_pointer(i0, 51143)),(const void*)((OOC_CHAR16[]){121,101,115,0})))==0;
3381       if (i0) goto l55;
3382       XML_DTD__ExternalEntityDesc_SetStandalone((XML_DTD__ExternalEntity)i1, 1);
3383       goto l57;
3384 l55:
3385       XML_DTD__ExternalEntityDesc_SetStandalone((XML_DTD__ExternalEntity)i1, 0);
3386 l57:
3387       XML_Parser__ParserDesc_ParseDocument_OptS(1u);
3388       i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"?>", 3, 0);
3389       if (i0) goto l60;
3390       XML_Parser__ParserDesc_ParseDocument_Err(114);
3391       goto l61;
3392 l60:
3393       i0 = cpos;
3394       cpos = (i0+2);
3395 l61:
3396       return;
3397       ;
3398     }
3399 
3400 
3401     XML_DTD__Entity XML_Parser__ParserDesc_ParseDocument_CurrentEntity(void) {
3402       register OOC_INT64 i0,i1,i2,i3;
3403 
3404       i0 = (OOC_INT64)p;
3405       i1 = *(OOC_INT32*)((_check_pointer(i0, 51516))+160);
3406       i1 = i1==0;
3407       if (i1) goto l3;
3408       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 51642))+152);
3409       i1 = _check_pointer(i1, 51651);
3410       i2 = *(OOC_INT32*)((_check_pointer(i0, 51653))+160);
3411       i3 = OOC_ARRAY_LENGTH(i1, 0);
3412       i1 = (OOC_INT64)*(OOC_INT64*)((i1+((_check_index((i2-1), i3, OOC_UINT32, 51651))*40))+24);
3413       _assert((i1!=(OOC_INT64)0), 127, 51633);
3414       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 51701))+152);
3415       i1 = _check_pointer(i1, 51710);
3416       i0 = *(OOC_INT32*)((_check_pointer(i0, 51712))+160);
3417       i2 = OOC_ARRAY_LENGTH(i1, 0);
3418       i0 = (OOC_INT64)*(OOC_INT64*)((i1+((_check_index((i0-1), i2, OOC_UINT32, 51710))*40))+24);
3419       return (XML_DTD__Entity)i0;
3420       goto l4;
3421 l3:
3422       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 51556))+96);
3423       _assert((i1!=(OOC_INT64)0), 127, 51547);
3424       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 51597))+96);
3425       return (XML_DTD__Entity)i0;
3426 l4:
3427       _failed_function(51465); return 0;
3428       ;
3429     }
3430 
3431 
3432     void XML_Parser__ParserDesc_ParseDocument_CheckCurrentEntity(XML_DTD__Entity reference) {
3433       register OOC_INT64 i0,i1;
3434 
3435       i0 = (OOC_INT64)p;
3436       i0 = *(OOC_UINT8*)((_check_pointer(i0, 51848))+114);
3437       if (i0) goto l3;
3438       i0=0u;
3439       goto l5;
3440 l3:
3441       i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_CurrentEntity();
3442       i1 = (OOC_INT64)reference;
3443       i0 = i1!=i0;
3444 
3445 l5:
3446       if (!i0) goto l7;
3447       XML_Parser__ParserDesc_ParseDocument_ErrNF(306);
3448 l7:
3449       return;
3450       ;
3451     }
3452 
3453 
3454     void XML_Parser__ParserDesc_ParseDocument_PI(void) {
3455       register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8;
3456       XML_DTD__Entity currentEntity;
3457       XML_UnicodeBuffer__CharArray target;
3458       auto OOC_CHAR8 XML_Parser__ParserDesc_ParseDocument_PI_IsReserved(const OOC_CHAR16 name__ref[], OOC_LEN name_0d);
3459 
3460         OOC_CHAR8 XML_Parser__ParserDesc_ParseDocument_PI_IsReserved(const OOC_CHAR16 name__ref[], OOC_LEN name_0d) {
3461           register OOC_INT64 i0;
3462           OOC_ALLOCATE_VPAR(name,OOC_CHAR16 ,name_0d)
3463 
3464           OOC_INITIALIZE_VPAR(name__ref,name,OOC_CHAR16 ,(name_0d*2))
3465           i0 = *(OOC_UINT16*)((OOC_INT64)name+(_check_index(0, name_0d, OOC_UINT8, 52208))*2);
3466           i0 = (_cap(i0))==88u;
3467           if (i0) goto l3;
3468           i0=0u;
3469           goto l5;
3470 l3:
3471           i0 = *(OOC_UINT16*)((OOC_INT64)name+(_check_index(1, name_0d, OOC_UINT8, 52247))*2);
3472           i0 = (_cap(i0))==77u;
3473 
3474 l5:
3475           if (i0) goto l7;
3476           i0=0u;
3477           goto l8;
3478 l7:
3479           i0 = *(OOC_UINT16*)((OOC_INT64)name+(_check_index(2, name_0d, OOC_UINT8, 52286))*2);
3480           i0 = (_cap(i0))==76u;
3481 
3482 l8:
3483           return i0;
3484           ;
3485         }
3486 
3487 
3488       i0 = (OOC_INT64)p;
3489       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 52357))+8);
3490       i1 = _check_pointer(i1, 52360);
3491       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 52357))+8);
3492       i1 = (OOC_INT64)&_td_XML_Locator__Position;
3493       XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(_check_pointer(i0, 52360)), (RT0__Struct)i1);
3494       i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_CurrentEntity();
3495       i2 = cpos;
3496       currentEntity = (XML_DTD__Entity)i0;
3497       cpos = (i2+2);
3498       i2 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Name(1u);
3499       target = (XML_UnicodeBuffer__CharArray)i2;
3500       i3 = (
3501       _cmp16((const void*)(_check_pointer(i2, 52511)),(const void*)((OOC_CHAR16[]){120,109,108,0})))==0;
3502       if (i3) goto l6;
3503       i3 = OOC_ARRAY_LENGTH((_check_pointer(i2, 52603)), 0);
3504       i3 = XML_Parser__ParserDesc_ParseDocument_PI_IsReserved((void*)(_check_pointer(i2, 52603)), i3);
3505       if (!i3) goto l7;
3506       i3 = (OOC_INT64)p;
3507       i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 52646))+8);
3508       i4 = _check_pointer(i4, 52649);
3509       i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 52646))+8);
3510       XML_Parser__ParserDesc_ParseDocument_ErrPos(26, (void*)(_check_pointer(i3, 52649)), (RT0__Struct)i1);
3511       goto l7;
3512 l6:
3513       i3 = (OOC_INT64)p;
3514       i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 52567))+8);
3515       i4 = _check_pointer(i4, 52570);
3516       i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 52567))+8);
3517       XML_Parser__ParserDesc_ParseDocument_ErrPos(25, (void*)(_check_pointer(i3, 52570)), (RT0__Struct)i1);
3518 l7:
3519       i3 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"?>", 3, 0);
3520       if (i3) goto l22;
3521       XML_Parser__ParserDesc_ParseDocument_S();
3522       i3 = cpos;
3523       cstart = i3;
3524       cdelta = 0;
3525 l10_loop:
3526       i3 = (OOC_INT64)chars;
3527       i4 = _check_pointer(i3, 52978);
3528       i5 = OOC_ARRAY_LENGTH(i4, 0);
3529       i6 = cpos;
3530       i4 = *(OOC_UINT16*)(i4+(_check_index(i6, i5, OOC_UINT32, 52978))*2);
3531       switch (i4) {
3532       case 0u ... 31u:
3533       case 65534u:
3534         XML_Parser__ParserDesc_ParseDocument_ControlChar(10u);
3535         goto l10_loop;
3536       case 65535u:
3537         i0 = (OOC_INT64)p;
3538         i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 53127))+8);
3539         i2 = _check_pointer(i2, 53130);
3540         i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 53127))+8);
3541         XML_Parser__ParserDesc_ParseDocument_ErrPos(7, (void*)(_check_pointer(i0, 53130)), (RT0__Struct)i1);
3542         goto l23;
3543       case 63u:
3544         i3 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"?>", 3, 0);
3545         if (i3) goto l18;
3546         i3 = (OOC_INT64)chars;
3547         i4 = _check_pointer(i3, 53578);
3548         i5 = cdelta;
3549         i6 = cpos;
3550         i7 = OOC_ARRAY_LENGTH(i4, 0);
3551         i3 = _check_pointer(i3, 53600);
3552         i8 = OOC_ARRAY_LENGTH(i3, 0);
3553         i3 = *(OOC_UINT16*)(i3+(_check_index(i6, i8, OOC_UINT32, 53600))*2);
3554         *(OOC_UINT16*)(i4+(_check_index((i6-i5), i7, OOC_UINT32, 53578))*2) = i3;
3555         cpos = (i6+1);
3556 
3557         goto l10_loop;
3558 l18:
3559         XML_Parser__ParserDesc_ParseDocument_CheckCurrentEntity((XML_DTD__Entity)i0);
3560         i0 = (OOC_INT64)p;
3561         i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 53470))+104);
3562         i3 = (OOC_INT64)chars;
3563         i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 53285))+80);
3564         i5 = cpos;
3565         i6 = cdelta;
3566         i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 53482))+72);
3567         i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 53285))+80);
3568         i7 = OOC_ARRAY_LENGTH((_check_pointer(i3, 53332)), 0);
3569         i8 = cstart;
3570         OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 53294)))), XML_Builder__BuilderDesc_ProcessingInstruction)),XML_Builder__BuilderDesc_ProcessingInstruction)((XML_Builder__Builder)i0, (XML_UnicodeBuffer__CharArray)i2, (void*)(_check_pointer(i3, 53332)), i7, i8, (i5-i6), (URI__URI)i1);
3571         i0 = cpos;
3572         cpos = (i0+2);
3573         goto l23;
3574       default:
3575         i4 = _check_pointer(i3, 53667);
3576         i5 = cdelta;
3577         i7 = OOC_ARRAY_LENGTH(i4, 0);
3578         i3 = _check_pointer(i3, 53689);
3579         i8 = OOC_ARRAY_LENGTH(i3, 0);
3580         i3 = *(OOC_UINT16*)(i3+(_check_index(i6, i8, OOC_UINT32, 53689))*2);
3581         *(OOC_UINT16*)(i4+(_check_index((i6-i5), i7, OOC_UINT32, 53667))*2) = i3;
3582         cpos = (i6+1);
3583         goto l10_loop;
3584       }
3585 l22:
3586       i0 = (OOC_INT64)p;
3587       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 52840))+104);
3588       i3 = (OOC_INT64)chars;
3589       i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 52725))+80);
3590       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 52852))+72);
3591       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 52725))+80);
3592       i5 = OOC_ARRAY_LENGTH((_check_pointer(i3, 52772)), 0);
3593       OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 52734)))), XML_Builder__BuilderDesc_ProcessingInstruction)),XML_Builder__BuilderDesc_ProcessingInstruction)((XML_Builder__Builder)i0, (XML_UnicodeBuffer__CharArray)i2, (void*)(_check_pointer(i3, 52772)), i5, 0, 0, (URI__URI)i1);
3594       i0 = cpos;
3595       cpos = (i0+2);
3596 l23:
3597       return;
3598       ;
3599     }
3600 
3601 
3602     void XML_Parser__ParserDesc_ParseDocument_Comment(void) {
3603       register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7;
3604       XML_DTD__Entity currentEntity;
3605 
3606       i0 = (OOC_INT64)p;
3607       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 53900))+8);
3608       i1 = _check_pointer(i1, 53903);
3609       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 53900))+8);
3610       i1 = (OOC_INT64)&_td_XML_Locator__Position;
3611       XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(_check_pointer(i0, 53903)), (RT0__Struct)i1);
3612       i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_CurrentEntity();
3613       i2 = cpos;
3614       currentEntity = (XML_DTD__Entity)i0;
3615       i2 = i2+4;
3616       cpos = i2;
3617       cstart = i2;
3618       cdelta = 0;
3619 l1_loop:
3620       i2 = (OOC_INT64)chars;
3621       i3 = _check_pointer(i2, 54075);
3622       i4 = OOC_ARRAY_LENGTH(i3, 0);
3623       i5 = cpos;
3624       i3 = *(OOC_UINT16*)(i3+(_check_index(i5, i4, OOC_UINT32, 54075))*2);
3625       switch (i3) {
3626       case 0u ... 31u:
3627       case 65534u:
3628         XML_Parser__ParserDesc_ParseDocument_ControlChar(10u);
3629         goto l1_loop;
3630       case 65535u:
3631         i0 = (OOC_INT64)p;
3632         i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 54221))+8);
3633         i2 = _check_pointer(i2, 54224);
3634         i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 54221))+8);
3635         XML_Parser__ParserDesc_ParseDocument_ErrPos(5, (void*)(_check_pointer(i0, 54224)), (RT0__Struct)i1);
3636         goto l15;
3637       case 45u:
3638         i2 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"-->", 4, 0);
3639         if (i2) goto l12;
3640         i2 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"--", 3, 0);
3641         if (i2) goto l9;
3642         goto l11;
3643 l9:
3644         XML_Parser__ParserDesc_ParseDocument_Err(4);
3645 l11:
3646         i2 = (OOC_INT64)chars;
3647         i3 = _check_pointer(i2, 54603);
3648         i4 = cpos;
3649         i5 = cdelta;
3650         i6 = OOC_ARRAY_LENGTH(i3, 0);
3651         i2 = _check_pointer(i2, 54625);
3652         i7 = OOC_ARRAY_LENGTH(i2, 0);
3653         i2 = *(OOC_UINT16*)(i2+(_check_index(i4, i7, OOC_UINT32, 54625))*2);
3654         *(OOC_UINT16*)(i3+(_check_index((i4-i5), i6, OOC_UINT32, 54603))*2) = i2;
3655         cpos = (i4+1);
3656         goto l1_loop;
3657 l12:
3658         XML_Parser__ParserDesc_ParseDocument_CheckCurrentEntity((XML_DTD__Entity)i0);
3659         i0 = (OOC_INT64)chars;
3660         i1 = (OOC_INT64)p;
3661         i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 54370))+80);
3662         i3 = cpos;
3663         i4 = cdelta;
3664         i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 54370))+80);
3665         i5 = OOC_ARRAY_LENGTH((_check_pointer(i0, 54395)), 0);
3666         i6 = cstart;
3667         OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 54379)))), XML_Builder__BuilderDesc_Comment)),XML_Builder__BuilderDesc_Comment)((XML_Builder__Builder)i1, (void*)(_check_pointer(i0, 54395)), i5, i6, (i3-i4));
3668         i0 = cpos;
3669         cpos = (i0+3);
3670         goto l15;
3671       default:
3672         i3 = _check_pointer(i2, 54673);
3673         i4 = cdelta;
3674         i6 = OOC_ARRAY_LENGTH(i3, 0);
3675         i2 = _check_pointer(i2, 54695);
3676         i7 = OOC_ARRAY_LENGTH(i2, 0);
3677         i2 = *(OOC_UINT16*)(i2+(_check_index(i5, i7, OOC_UINT32, 54695))*2);
3678         *(OOC_UINT16*)(i3+(_check_index((i5-i4), i6, OOC_UINT32, 54673))*2) = i2;
3679         cpos = (i5+1);
3680         goto l1_loop;
3681       }
3682 l15:
3683       XML_Parser__ParserDesc_ParseDocument_DiscardPreviousInput();
3684       return;
3685       ;
3686     }
3687 
3688 
3689     void XML_Parser__ParserDesc_ParseDocument_CDSect(void) {
3690       register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7;
3691 
3692       i0 = (OOC_INT64)p;
3693       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 54888))+8);
3694       i1 = _check_pointer(i1, 54891);
3695       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 54888))+8);
3696       i1 = (OOC_INT64)&_td_XML_Locator__Position;
3697       XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(_check_pointer(i0, 54891)), (RT0__Struct)i1);
3698       i0 = (OOC_INT64)p;
3699       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 54902))+80);
3700       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 54902))+80);
3701       OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 54911)))), XML_Builder__BuilderDesc_StartCDATA)),XML_Builder__BuilderDesc_StartCDATA)((XML_Builder__Builder)i0);
3702       i0 = cpos;
3703       i0 = i0+9;
3704       cpos = i0;
3705       cstart = i0;
3706       cdelta = 0;
3707 l1_loop:
3708       i0 = (OOC_INT64)chars;
3709       i2 = _check_pointer(i0, 55084);
3710       i3 = OOC_ARRAY_LENGTH(i2, 0);
3711       i4 = cpos;
3712       i2 = *(OOC_UINT16*)(i2+(_check_index(i4, i3, OOC_UINT32, 55084))*2);
3713       switch (i2) {
3714       case 0u ... 31u:
3715       case 65534u:
3716         XML_Parser__ParserDesc_ParseDocument_ControlChar(10u);
3717         goto l1_loop;
3718       case 65535u:
3719         i0 = (OOC_INT64)p;
3720         i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 55228))+8);
3721         i2 = _check_pointer(i2, 55231);
3722         i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 55228))+8);
3723         XML_Parser__ParserDesc_ParseDocument_ErrPos(8, (void*)(_check_pointer(i0, 55231)), (RT0__Struct)i1);
3724         goto l12;
3725       case 93u:
3726         i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"]]>", 4, 0);
3727         if (i0) goto l9;
3728         i0 = (OOC_INT64)chars;
3729         i2 = _check_pointer(i0, 55660);
3730         i3 = cdelta;
3731         i4 = cpos;
3732         i5 = OOC_ARRAY_LENGTH(i2, 0);
3733         i0 = _check_pointer(i0, 55682);
3734         i6 = OOC_ARRAY_LENGTH(i0, 0);
3735         i0 = *(OOC_UINT16*)(i0+(_check_index(i4, i6, OOC_UINT32, 55682))*2);
3736         *(OOC_UINT16*)(i2+(_check_index((i4-i3), i5, OOC_UINT32, 55660))*2) = i0;
3737         cpos = (i4+1);
3738         goto l1_loop;
3739 l9:
3740         i0 = (OOC_INT64)p;
3741         i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 55340))+8);
3742         i2 = _check_pointer(i2, 55343);
3743         i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 55340))+8);
3744         XML_Parser__ParserDesc_ParseDocument_DecLength((void*)(_check_pointer(i0, 55343)), (RT0__Struct)i1, (-9));
3745         i0 = (OOC_INT64)chars;
3746         i2 = (OOC_INT64)p;
3747         i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 55364))+80);
3748         i4 = cpos;
3749         i5 = cdelta;
3750         i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 55364))+80);
3751         i6 = OOC_ARRAY_LENGTH((_check_pointer(i0, 55392)), 0);
3752         i7 = cstart;
3753         OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 55373)))), XML_Builder__BuilderDesc_Characters)),XML_Builder__BuilderDesc_Characters)((XML_Builder__Builder)i2, (void*)(_check_pointer(i0, 55392)), i6, i7, (i4-i5), 1);
3754         i0 = cpos;
3755         cpos = (i0+3);
3756         i0 = (OOC_INT64)p;
3757         i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 55548))+8);
3758         i2 = _check_pointer(i2, 55551);
3759         i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 55548))+8);
3760         XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(_check_pointer(i0, 55551)), (RT0__Struct)i1);
3761         i0 = (OOC_INT64)p;
3762         i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 55568))+80);
3763         i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 55568))+80);
3764         OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 55577)))), XML_Builder__BuilderDesc_EndCDATA)),XML_Builder__BuilderDesc_EndCDATA)((XML_Builder__Builder)i0);
3765         goto l12;
3766       default:
3767         i2 = _check_pointer(i0, 55743);
3768         i3 = cdelta;
3769         i5 = OOC_ARRAY_LENGTH(i2, 0);
3770         i0 = _check_pointer(i0, 55765);
3771         i6 = OOC_ARRAY_LENGTH(i0, 0);
3772         i0 = *(OOC_UINT16*)(i0+(_check_index(i4, i6, OOC_UINT32, 55765))*2);
3773         *(OOC_UINT16*)(i2+(_check_index((i4-i3), i5, OOC_UINT32, 55743))*2) = i0;
3774         cpos = (i4+1);
3775         goto l1_loop;
3776       }
3777 l12:
3778       return;
3779       ;
3780     }
3781 
3782 
3783     void XML_Parser__ParserDesc_ParseDocument_CharRef(void) {
3784       register OOC_INT64 i0,i1,i2,i3,i4,i5;
3785       struct XML_Locator__Position pos;
3786       OOC_INT32 cval;
3787       auto OOC_INT32 XML_Parser__ParserDesc_ParseDocument_CharRef_ToUnicode(OOC_INT32 cval);
3788 
3789         OOC_INT32 XML_Parser__ParserDesc_ParseDocument_CharRef_ToUnicode(OOC_INT32 cval) {
3790           register OOC_INT64 i0,i1,i2,i3,i4;
3791 
3792           i0 = cval;
3793           i1 = i0<=65535;
3794           if (i1) goto l3;
3795           i0 = i0-65536;
3796           cval = i0;
3797           i1 = (OOC_INT64)chars;
3798           i2 = _check_pointer(i1, 56523);
3799           i3 = cdelta;
3800           i4 = cpos;
3801           i3 = i4-i3;
3802           i4 = OOC_ARRAY_LENGTH(i2, 0);
3803           *(OOC_UINT16*)(i2+(_check_index(i3, i4, OOC_UINT32, 56523))*2) = (55296+(i0>>10));
3804           i1 = _check_pointer(i1, 56589);
3805           i2 = OOC_ARRAY_LENGTH(i1, 0);
3806           *(OOC_UINT16*)(i1+(_check_index((i3+1), i2, OOC_UINT32, 56589))*2) = (56320+(_mod(i0,1024)));
3807           return 2;
3808           goto l4;
3809 l3:
3810           i1 = (OOC_INT64)chars;
3811           i1 = _check_pointer(i1, 56413);
3812           i2 = cdelta;
3813           i3 = cpos;
3814           i4 = OOC_ARRAY_LENGTH(i1, 0);
3815           *(OOC_UINT16*)(i1+(_check_index((i3-i2), i4, OOC_UINT32, 56413))*2) = i0;
3816           return 1;
3817 l4:
3818           _failed_function(56313); return 0;
3819           ;
3820         }
3821 
3822 
3823       i0 = (OOC_INT64)&_td_XML_Locator__Position;
3824       XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(OOC_INT64)&pos, (RT0__Struct)i0);
3825       cval = 0;
3826       i1 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"&#x", 4, 0);
3827       if (i1) goto l15;
3828       i1 = cpos;
3829       i2 = cdelta;
3830       cpos = (i1+2);
3831       cdelta = (i2+2);
3832       i1=0;
3833 l3_loop:
3834       i2 = (OOC_INT64)chars;
3835       i3 = _check_pointer(i2, 57555);
3836       i4 = OOC_ARRAY_LENGTH(i3, 0);
3837       i5 = cpos;
3838       i3 = *(OOC_UINT16*)(i3+(_check_index(i5, i4, OOC_UINT32, 57555))*2);
3839       switch (i3) {
3840       case 65534u:
3841         XML_Parser__ParserDesc_ParseDocument_NextBlock();
3842 
3843         goto l3_loop;
3844       case 59u:
3845       case 65535u:
3846 
3847         goto l33;
3848       case 48u ... 57u:
3849         i3 = i1<=131072;
3850         if (i3) goto l10;
3851         goto l11;
3852 l10:
3853         i2 = _check_pointer(i2, 57772);
3854         i3 = OOC_ARRAY_LENGTH(i2, 0);
3855         i2 = *(OOC_UINT16*)(i2+(_check_index(i5, i3, OOC_UINT32, 57772))*2);
3856         i1 = ((i1*10)+i2)-48;
3857         cval = i1;
3858 
3859 l11:
3860         i2 = cdelta;
3861         cpos = (i5+1);
3862         cdelta = (i2+1);
3863 
3864         goto l3_loop;
3865       default:
3866         XML_Parser__ParserDesc_ParseDocument_Err(14);
3867         cval = 32;
3868         i1=32;
3869         goto l33;
3870       }
3871 l15:
3872       i1 = cpos;
3873       i2 = cdelta;
3874       cpos = (i1+3);
3875       cdelta = (i2+3);
3876       i1=0;
3877 l16_loop:
3878       i2 = (OOC_INT64)chars;
3879       i3 = _check_pointer(i2, 56873);
3880       i4 = OOC_ARRAY_LENGTH(i3, 0);
3881       i5 = cpos;
3882       i3 = *(OOC_UINT16*)(i3+(_check_index(i5, i4, OOC_UINT32, 56873))*2);
3883       switch (i3) {
3884       case 65534u:
3885         XML_Parser__ParserDesc_ParseDocument_NextBlock();
3886 
3887         goto l16_loop;
3888       case 59u:
3889       case 65535u:
3890 
3891         goto l33;
3892       case 48u ... 57u:
3893         i3 = i1<=131072;
3894         if (i3) goto l23;
3895         goto l24;
3896 l23:
3897         i2 = _check_pointer(i2, 57090);
3898         i3 = OOC_ARRAY_LENGTH(i2, 0);
3899         i2 = *(OOC_UINT16*)(i2+(_check_index(i5, i3, OOC_UINT32, 57090))*2);
3900         i1 = ((i1*16)+i2)-48;
3901         cval = i1;
3902 
3903 l24:
3904         i2 = cdelta;
3905         cpos = (i5+1);
3906         cdelta = (i2+1);
3907 
3908         goto l16_loop;
3909       case 97u ... 102u:
3910       case 65u ... 70u:
3911         i3 = i1<=131072;
3912         if (i3) goto l28;
3913         goto l29;
3914 l28:
3915         i2 = _check_pointer(i2, 57283);
3916         i3 = OOC_ARRAY_LENGTH(i2, 0);
3917         i2 = *(OOC_UINT16*)(i2+(_check_index(i5, i3, OOC_UINT32, 57283))*2);
3918         i1 = ((i1*16)+((_cap(i2))+10))-65;
3919         cval = i1;
3920 
3921 l29:
3922         i2 = cdelta;
3923         cpos = (i5+1);
3924         cdelta = (i2+1);
3925 
3926         goto l16_loop;
3927       default:
3928         XML_Parser__ParserDesc_ParseDocument_Err(15);
3929         cval = 32;
3930         i1=32;
3931         goto l33;
3932       }
3933 l33:
3934       i2 = (OOC_INT64)chars;
3935       i2 = _check_pointer(i2, 57979);
3936       i3 = OOC_ARRAY_LENGTH(i2, 0);
3937       i4 = cpos;
3938       i2 = *(OOC_UINT16*)(i2+(_check_index(i4, i3, OOC_UINT32, 57979))*2);
3939       i2 = i2==59u;
3940       if (!i2) goto l36;
3941       i2 = cdelta;
3942       cdelta = (i2+1);
3943 l36:
3944       XML_Parser__ParserDesc_ParseDocument_CheckChar(59u);
3945       i2 = XML_Parser__IsCharUCS4(i1);
3946       i2 = !i2;
3947       if (i2) goto l39;
3948       i0=i1;
3949       goto l40;
3950 l39:
3951       XML_Parser__ParserDesc_ParseDocument_ErrPos(17, (void*)(OOC_INT64)&pos, (RT0__Struct)i0);
3952       cval = 32;
3953       i0=32;
3954 l40:
3955       i1 = cdelta;
3956       i0 = XML_Parser__ParserDesc_ParseDocument_CharRef_ToUnicode(i0);
3957       cdelta = (i1-i0);
3958       return;
3959       ;
3960     }
3961 
3962 
3963     XML_DTD__EntityRef XML_Parser__ParserDesc_ParseDocument_EntityRef(OOC_CHAR8 enforceDecl, OOC_CHAR8 permitExternal) {
3964       register OOC_INT64 i0,i1,i2,i3;
3965       struct XML_Locator__Position pos;
3966       OOC_INT32 localCStart;
3967       XML_UnicodeBuffer__CharArray name;
3968       XML_DTD__Declaration decl;
3969       XML_DTD__Entity entity;
3970 
3971       i0 = (OOC_INT64)&_td_XML_Locator__Position;
3972       XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(OOC_INT64)&pos, (RT0__Struct)i0);
3973       XML_Parser__ParserDesc_ParseDocument_CheckChar(38u);
3974       i1 = (OOC_INT64)p;
3975       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 58621))+64);
3976       i1 = *(OOC_INT32*)((_check_pointer(i1, 58625))+48);
3977       i2 = cstart;
3978       i1 = i1+i2;
3979       localCStart = i1;
3980       i2 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Name(1u);
3981       name = (XML_UnicodeBuffer__CharArray)i2;
3982       i3 = (OOC_INT64)p;
3983       i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 58706))+64);
3984       i3 = *(OOC_INT32*)((_check_pointer(i3, 58710))+48);
3985       cstart = (i1-i3);
3986       XML_Parser__ParserDesc_ParseDocument_CheckChar(59u);
3987       i1 = (OOC_INT64)dtd;
3988       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 58775))+8);
3989       i1 = (OOC_INT64)XML_DTD__NamespaceDesc_Get((XML_DTD__Namespace)i1, (XML_UnicodeBuffer__CharArray)i2);
3990       decl = (XML_DTD__Declaration)i1;
3991       i3 = i1==(OOC_INT64)0;
3992       if (i3) goto l15;
3993       i1 = _type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 59095)))), &_td_XML_DTD__EntityDesc, 59095);
3994       entity = (XML_DTD__Entity)i1;
3995       i3 = *(OOC_INT8*)((_check_pointer(i1, 59122))+16);
3996       i3 = i3==4;
3997       if (i3) goto l13;
3998       i3 = permitExternal;
3999       i3 = !i3;
4000       if (i3) goto l7;
4001       i3=0u;
4002       goto l9;
4003 l7:
4004       i3 = *(OOC_INT8*)((_check_pointer(i1, 59343))+16);
4005       i3 = i3==2;
4006 
4007 l9:
4008       if (i3) goto l11;
4009       i0=i2;
4010       goto l14;
4011 l11:
4012       XML_Parser__ParserDesc_ParseDocument_ErrPos(305, (void*)(OOC_INT64)&pos, (RT0__Struct)i0);
4013       i0 = OOC_ARRAY_LENGTH((_check_pointer(i2, 59506)), 0);
4014       i0 = (OOC_INT64)Msg__GetLStringPtr((void*)(_check_pointer(i2, 59506)), i0);
4015       i2 = (OOC_INT64)p;
4016       i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 59444))+176);
4017       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 59444))+176);
4018       OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 59455)))), Msg__MsgDesc_SetLStringAttrib)),Msg__MsgDesc_SetLStringAttrib)((Msg__Msg)i2, (OOC_CHAR8*)"name", 5, (Msg__LStringPtr)i0);
4019       i0 = (OOC_INT64)XML_Parser__noName;
4020       name = (XML_UnicodeBuffer__CharArray)i0;
4021 
4022       goto l14;
4023 l13:
4024       XML_Parser__ParserDesc_ParseDocument_ErrPos(304, (void*)(OOC_INT64)&pos, (RT0__Struct)i0);
4025       i0 = OOC_ARRAY_LENGTH((_check_pointer(i2, 59274)), 0);
4026       i0 = (OOC_INT64)Msg__GetLStringPtr((void*)(_check_pointer(i2, 59274)), i0);
4027       i2 = (OOC_INT64)p;
4028       i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 59212))+176);
4029       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 59212))+176);
4030       OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 59223)))), Msg__MsgDesc_SetLStringAttrib)),Msg__MsgDesc_SetLStringAttrib)((Msg__Msg)i2, (OOC_CHAR8*)"name", 5, (Msg__LStringPtr)i0);
4031       i0 = (OOC_INT64)XML_Parser__noName;
4032       name = (XML_UnicodeBuffer__CharArray)i0;
4033 
4034 l14:
4035       {register OOC_INT64 h0=i0;i0=i1;i1=h0;}
4036       goto l27;
4037 l15:
4038       entity = (XML_DTD__Entity)(OOC_INT64)0;
4039       i1 = enforceDecl;
4040       if (i1) goto l18;
4041       i1=0u;
4042       goto l20;
4043 l18:
4044       i1 = (OOC_INT64)p;
4045       i1 = *(OOC_UINT8*)((_check_pointer(i1, 58878))+115);
4046 
4047 l20:
4048       if (i1) goto l22;
4049       i1=0u;
4050       goto l24;
4051 l22:
4052       i1 = (OOC_INT64)XML_Parser__noName;
4053       i1 = i2!=i1;
4054 
4055 l24:
4056       if (!i1) goto l26;
4057       XML_Parser__ParserDesc_ParseDocument_ErrPos(210, (void*)(OOC_INT64)&pos, (RT0__Struct)i0);
4058       i0 = OOC_ARRAY_LENGTH((_check_pointer(i2, 59041)), 0);
4059       i0 = (OOC_INT64)Msg__GetLStringPtr((void*)(_check_pointer(i2, 59041)), i0);
4060       i1 = (OOC_INT64)p;
4061       i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 58979))+176);
4062       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 58979))+176);
4063       OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 58990)))), Msg__MsgDesc_SetLStringAttrib)),Msg__MsgDesc_SetLStringAttrib)((Msg__Msg)i1, (OOC_CHAR8*)"name", 5, (Msg__LStringPtr)i0);
4064 l26:
4065       i1=i2;i0=(OOC_INT64)0;
4066 l27:
4067       i2 = (OOC_INT64)dtd;
4068       i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 59575)))), XML_DTD__BuilderDesc_NewEntityRef)),XML_DTD__BuilderDesc_NewEntityRef)((XML_DTD__Builder)i2, (XML_UnicodeBuffer__CharArray)i1, (XML_DTD__Entity)i0);
4069       return (XML_DTD__EntityRef)i0;
4070       ;
4071     }
4072 
4073 
4074     XML_DTD__AttValue XML_Parser__ParserDesc_ParseDocument_AttValue(OOC_CHAR8 isAttDecl) {
4075       register OOC_INT64 i0,i1,i2,i3,i4,i5,i6;
4076       XML_DTD__AttValue attValue;
4077       struct XML_Locator__Position pos;
4078       OOC_CHAR16 endChar;
4079       auto void XML_Parser__ParserDesc_ParseDocument_AttValue_Flush(void);
4080 
4081         void XML_Parser__ParserDesc_ParseDocument_AttValue_Flush(void) {
4082           register OOC_INT64 i0,i1,i2,i3,i4;
4083 
4084           i0 = cpos;
4085           i1 = cdelta;
4086           i0 = i0-i1;
4087           i1 = cstart;
4088           i2 = i0!=i1;
4089           if (!i2) goto l4;
4090           i2 = (OOC_INT64)dtd;
4091           i3 = (OOC_INT64)chars;
4092           i4 = isAttDecl;
4093           i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 60206)))), XML_DTD__BuilderDesc_NewCharacters)),XML_DTD__BuilderDesc_NewCharacters)((XML_DTD__Builder)i2, (XML_UnicodeBuffer__CharArray)i3, i1, i0, i4);
4094           i1 = (OOC_INT64)attValue;
4095           XML_DTD__AttValueDesc_Append((XML_DTD__AttValue)i1, (XML_DTD__Fragment)i0);
4096 l4:
4097           return;
4098           ;
4099         }
4100 
4101 
4102       i0 = (OOC_INT64)dtd;
4103       i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 60329)))), XML_DTD__BuilderDesc_NewAttValue)),XML_DTD__BuilderDesc_NewAttValue)((XML_DTD__Builder)i0);
4104       attValue = (XML_DTD__AttValue)i0;
4105       i0 = (OOC_INT64)chars;
4106       i1 = _check_pointer(i0, 60361);
4107       i2 = OOC_ARRAY_LENGTH(i1, 0);
4108       i3 = cpos;
4109       i1 = *(OOC_UINT16*)(i1+(_check_index(i3, i2, OOC_UINT32, 60361))*2);
4110       i1 = i1==39u;
4111       if (i1) goto l3;
4112       i0 = _check_pointer(i0, 60384);
4113       i1 = OOC_ARRAY_LENGTH(i0, 0);
4114       i0 = *(OOC_UINT16*)(i0+(_check_index(i3, i1, OOC_UINT32, 60384))*2);
4115       i0 = i0==34u;
4116 
4117       goto l5;
4118 l3:
4119       i0=1u;
4120 l5:
4121       if (i0) goto l7;
4122       XML_Parser__ParserDesc_ParseDocument_Err(108);
4123       XML_Parser__ParserDesc_ParseDocument_NextChar();
4124       goto l25;
4125 l7:
4126       i0 = (OOC_INT64)&_td_XML_Locator__Position;
4127       XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(OOC_INT64)&pos, (RT0__Struct)i0);
4128       i1 = (OOC_INT64)chars;
4129       i1 = _check_pointer(i1, 60456);
4130       i2 = OOC_ARRAY_LENGTH(i1, 0);
4131       i3 = cpos;
4132       i1 = *(OOC_UINT16*)(i1+(_check_index(i3, i2, OOC_UINT32, 60456))*2);
4133       endChar = i1;
4134       i1 = i3+1;
4135       cpos = i1;
4136       cstart = i1;
4137       cdelta = 0;
4138 l8_loop:
4139       i1 = (OOC_INT64)chars;
4140       i2 = _check_pointer(i1, 60553);
4141       i3 = OOC_ARRAY_LENGTH(i2, 0);
4142       i4 = cpos;
4143       i2 = *(OOC_UINT16*)(i2+(_check_index(i4, i3, OOC_UINT32, 60553))*2);
4144       switch (i2) {
4145       case 0u ... 31u:
4146       case 65534u:
4147         XML_Parser__ParserDesc_ParseDocument_ControlChar(32u);
4148         goto l8_loop;
4149       case 65535u:
4150         XML_Parser__ParserDesc_ParseDocument_ErrPos(6, (void*)(OOC_INT64)&pos, (RT0__Struct)i0);
4151         XML_Parser__ParserDesc_ParseDocument_AttValue_Flush();
4152         goto l25;
4153       case 60u:
4154         XML_Parser__ParserDesc_ParseDocument_Err(13);
4155         i1 = (OOC_INT64)chars;
4156         i1 = _check_pointer(i1, 60812);
4157         i2 = cpos;
4158         i3 = cdelta;
4159         i4 = OOC_ARRAY_LENGTH(i1, 0);
4160         *(OOC_UINT16*)(i1+(_check_index((i2-i3), i4, OOC_UINT32, 60812))*2) = 32u;
4161         cpos = (i2+1);
4162         goto l8_loop;
4163       case 38u:
4164         i1 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"&#", 3, 0);
4165         if (!i1) goto l15;
4166         goto l16;
4167 l15:
4168         XML_Parser__ParserDesc_ParseDocument_AttValue_Flush();
4169         i1 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_EntityRef(1u, 0u);
4170         i2 = (OOC_INT64)attValue;
4171         XML_DTD__AttValueDesc_Append((XML_DTD__AttValue)i2, (XML_DTD__Fragment)i1);
4172         i1 = cpos;
4173         cstart = i1;
4174         cdelta = 0;
4175         goto l8_loop;
4176 l16:
4177         XML_Parser__ParserDesc_ParseDocument_CharRef();
4178         goto l8_loop;
4179       default:
4180         i2 = _check_pointer(i1, 61201);
4181         i3 = OOC_ARRAY_LENGTH(i2, 0);
4182         i2 = *(OOC_UINT16*)(i2+(_check_index(i4, i3, OOC_UINT32, 61201))*2);
4183         i3 = endChar;
4184         i2 = i2==i3;
4185         if (i2) goto l22;
4186         i2 = _check_pointer(i1, 61566);
4187         i3 = cdelta;
4188         i5 = OOC_ARRAY_LENGTH(i2, 0);
4189         i1 = _check_pointer(i1, 61588);
4190         i6 = OOC_ARRAY_LENGTH(i1, 0);
4191         i1 = *(OOC_UINT16*)(i1+(_check_index(i4, i6, OOC_UINT32, 61588))*2);
4192         *(OOC_UINT16*)(i2+(_check_index((i4-i3), i5, OOC_UINT32, 61566))*2) = i1;
4193         cpos = (i4+1);
4194         goto l8_loop;
4195 l22:
4196         XML_Parser__ParserDesc_ParseDocument_AttValue_Flush();
4197         i0 = endChar;
4198         XML_Parser__ParserDesc_ParseDocument_CheckChar(i0);
4199         goto l25;
4200       }
4201 l25:
4202       i0 = (OOC_INT64)attValue;
4203       return (XML_DTD__AttValue)i0;
4204       ;
4205     }
4206 
4207 
4208     void XML_Parser__ParserDesc_ParseDocument_Expand(XML_DTD__AttValue attValue) {
4209       register OOC_INT64 i0,i1,i2;
4210       XML_DTD__Fragment fragment;
4211       XML_DTD__Declaration decl;
4212       XML_DTD__Entity entity;
4213       auto XML_DTD__AttValue XML_Parser__ParserDesc_ParseDocument_Expand_ExpandAttValue(XML_DTD__Entity entity);
4214       auto OOC_CHAR8 XML_Parser__ParserDesc_ParseDocument_Expand_IsRecursive(XML_DTD__Entity entity);
4215       auto XML_DTD__AttValue XML_Parser__ParserDesc_ParseDocument_Expand_ExpandAttValue(XML_DTD__Entity entity);
4216 
4217         OOC_CHAR8 XML_Parser__ParserDesc_ParseDocument_Expand_IsRecursive(XML_DTD__Entity entity) {
4218           register OOC_INT64 i0,i1,i2;
4219           XML_DTD__Fragment fragment;
4220 
4221           i0 = (OOC_INT64)entity;
4222           i1 = *(OOC_UINT8*)((_check_pointer(i0, 62143))+33);
4223           if (i1) goto l24;
4224           *(OOC_UINT8*)((_check_pointer(i0, 62211))+33) = 1u;
4225           i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 62252))+40);
4226           i1 = i1==(OOC_INT64)0;
4227           if (!i1) goto l5;
4228           i1 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Expand_ExpandAttValue((XML_DTD__Entity)i0);
4229           *(OOC_INT64*)((_check_pointer(i0, 62293))+40) = i1;
4230 l5:
4231           i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 62374))+40);
4232           i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 62384));
4233           fragment = (XML_DTD__Fragment)i1;
4234           i2 = i1!=(OOC_INT64)0;
4235           if (!i2) goto l23;
4236 l8_loop:
4237           i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 62461)))), &_td_XML_DTD__EntityRefDesc);
4238           if (!i2) goto l18;
4239           i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 62506))+16);
4240           i2 = i2!=(OOC_INT64)0;
4241           if (i2) goto l13;
4242           i2=0u;
4243           goto l15;
4244 l13:
4245           i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 62562))+16);
4246           i2 = XML_Parser__ParserDesc_ParseDocument_Expand_IsRecursive((XML_DTD__Entity)i2);
4247 
4248 l15:
4249           if (!i2) goto l18;
4250           *(OOC_UINT8*)((_check_pointer(i0, 62599))+33) = 0u;
4251           return 1u;
4252 l18:
4253           i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 62772));
4254           fragment = (XML_DTD__Fragment)i1;
4255           i2 = i1!=(OOC_INT64)0;
4256           if (i2) goto l8_loop;
4257 l23:
4258           *(OOC_UINT8*)((_check_pointer(i0, 62810))+33) = 0u;
4259           return 0u;
4260           goto l25;
4261 l24:
4262           return 1u;
4263 l25:
4264           _failed_function(62013); return 0;
4265           ;
4266         }
4267 
4268 
4269         XML_DTD__AttValue XML_Parser__ParserDesc_ParseDocument_Expand_ExpandAttValue(XML_DTD__Entity entity) {
4270           register OOC_INT64 i0,i1,i2,i3,i4;
4271           XML_DTD__AttValue attValue;
4272           auto void XML_Parser__ParserDesc_ParseDocument_Expand_ExpandAttValue_Flush(void);
4273 
4274             void XML_Parser__ParserDesc_ParseDocument_Expand_ExpandAttValue_Flush(void) {
4275               register OOC_INT64 i0,i1,i2,i3;
4276 
4277               i0 = cpos;
4278               i1 = cstart;
4279               i2 = i0!=i1;
4280               if (!i2) goto l3;
4281               i2 = (OOC_INT64)dtd;
4282               i3 = (OOC_INT64)chars;
4283               i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 63123)))), XML_DTD__BuilderDesc_NewCharacters)),XML_DTD__BuilderDesc_NewCharacters)((XML_DTD__Builder)i2, (XML_UnicodeBuffer__CharArray)i3, i1, i0, 0u);
4284               i1 = (OOC_INT64)attValue;
4285               XML_DTD__AttValueDesc_Append((XML_DTD__AttValue)i1, (XML_DTD__Fragment)i0);
4286 l3:
4287               return;
4288               ;
4289             }
4290 
4291 
4292           i0 = (OOC_INT64)entity;
4293           i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 63234)))), &_td_XML_DTD__ExternalEntityDesc);
4294           if (!i1) goto l3;
4295           i1 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Internalize((XML_DTD__ExternalEntity)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 63320)))), &_td_XML_DTD__ExternalEntityDesc, 63320)));
4296           XML_DTD__EntityDesc_SetEntityValue((XML_DTD__Entity)i0, (XML_UnicodeBuffer__CharArray)i1);
4297 l3:
4298           XML_Parser__ParserDesc_ParseDocument_PushEntity((XML_DTD__Entity)i0, 0u);
4299           i0 = (OOC_INT64)dtd;
4300           i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 63411)))), XML_DTD__BuilderDesc_NewAttValue)),XML_DTD__BuilderDesc_NewAttValue)((XML_DTD__Builder)i0);
4301           attValue = (XML_DTD__AttValue)i0;
4302           i0 = cpos;
4303           cstart = i0;
4304 l4_loop:
4305           i0 = (OOC_INT64)chars;
4306           i1 = _check_pointer(i0, 63485);
4307           i2 = OOC_ARRAY_LENGTH(i1, 0);
4308           i3 = cpos;
4309           i1 = *(OOC_UINT16*)(i1+(_check_index(i3, i2, OOC_UINT32, 63485))*2);
4310           switch (i1) {
4311           case 65535u:
4312             XML_Parser__ParserDesc_ParseDocument_Expand_ExpandAttValue_Flush();
4313             goto l19;
4314           case 0u ... 31u:
4315             i1 = _check_pointer(i0, 63789);
4316             i2 = OOC_ARRAY_LENGTH(i1, 0);
4317             i1 = *(OOC_UINT16*)(i1+(_check_index(i3, i2, OOC_UINT32, 63789))*2);
4318             i1 = i1!=9u;
4319             if (!i1) goto l4_loop;
4320             i0 = _check_pointer(i0, 63832);
4321             i1 = OOC_ARRAY_LENGTH(i0, 0);
4322             *(OOC_UINT16*)(i0+(_check_index(i3, i1, OOC_UINT32, 63832))*2) = 32u;
4323             goto l4_loop;
4324           case 60u:
4325             XML_Parser__ParserDesc_ParseDocument_Err(13);
4326             i0 = cpos;
4327             cpos = (i0+1);
4328             goto l4_loop;
4329           case 38u:
4330             XML_Parser__ParserDesc_ParseDocument_Expand_ExpandAttValue_Flush();
4331             i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"&#", 3, 0);
4332             if (i0) goto l15;
4333             i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_EntityRef(1u, 0u);
4334             i1 = (OOC_INT64)attValue;
4335             XML_DTD__AttValueDesc_Append((XML_DTD__AttValue)i1, (XML_DTD__Fragment)i0);
4336             goto l16;
4337 l15:
4338             i0 = cpos;
4339             cstart = i0;
4340             cdelta = 0;
4341             XML_Parser__ParserDesc_ParseDocument_CharRef();
4342             i0 = (OOC_INT64)dtd;
4343             i1 = cpos;
4344             i2 = cdelta;
4345             i3 = cstart;
4346             i4 = (OOC_INT64)chars;
4347             i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 64201)))), XML_DTD__BuilderDesc_NewCharacters)),XML_DTD__BuilderDesc_NewCharacters)((XML_DTD__Builder)i0, (XML_UnicodeBuffer__CharArray)i4, i3, (i1-i2), 0u);
4348             i1 = (OOC_INT64)attValue;
4349             XML_DTD__AttValueDesc_Append((XML_DTD__AttValue)i1, (XML_DTD__Fragment)i0);
4350 l16:
4351             i0 = cpos;
4352             cstart = i0;
4353             goto l4_loop;
4354           default:
4355             cpos = (i3+1);
4356             goto l4_loop;
4357           }
4358 l19:
4359           XML_Parser__ParserDesc_ParseDocument_PopEntity();
4360           i0 = (OOC_INT64)attValue;
4361           return (XML_DTD__AttValue)i0;
4362           ;
4363         }
4364 
4365 
4366       i0 = (OOC_INT64)attValue;
4367       i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 64543));
4368       fragment = (XML_DTD__Fragment)i0;
4369       i1 = i0!=0;
4370       if (!i1) goto l22;
4371 l3_loop:
4372       i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 64612)))), &_td_XML_DTD__EntityRefDesc);
4373       if (!i1) goto l17;
4374       i1 = (OOC_INT64)dtd;
4375       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 64680))+8);
4376       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 64652))+8);
4377       i1 = (OOC_INT64)XML_DTD__NamespaceDesc_Get((XML_DTD__Namespace)i1, (XML_UnicodeBuffer__CharArray)i2);
4378       decl = (XML_DTD__Declaration)i1;
4379       i2 = i1==0;
4380       if (i2) goto l15;
4381       i1 = _type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 64894)))), &_td_XML_DTD__EntityDesc, 64894);
4382       entity = (XML_DTD__Entity)i1;
4383       *(OOC_INT64*)((_check_pointer(i0, 64923))+16) = i1;
4384       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 64965))+40);
4385       i0 = i0==0;
4386       if (i0) goto l10;
4387       i0=i1;
4388       goto l11;
4389 l10:
4390       i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Expand_ExpandAttValue((XML_DTD__Entity)i1);
4391       *(OOC_INT64*)((_check_pointer(i1, 65008))+40) = i0;
4392       i0 = (OOC_INT64)entity;
4393       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 65075))+40);
4394       XML_Parser__ParserDesc_ParseDocument_Expand((XML_DTD__AttValue)i1);
4395 
4396 l11:
4397       i0 = XML_Parser__ParserDesc_ParseDocument_Expand_IsRecursive((XML_DTD__Entity)i0);
4398       if (!i0) goto l17;
4399       XML_Parser__ParserDesc_ParseDocument_Err(213);
4400       i0 = (OOC_INT64)entity;
4401       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 65269))+8);
4402       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 65269))+8);
4403       i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 65275)), 0);
4404       i0 = (OOC_INT64)Msg__GetLStringPtr((void*)(_check_pointer(i0, 65275)), i1);
4405       i1 = (OOC_INT64)p;
4406       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 65205))+176);
4407       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 65205))+176);
4408       OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 65216)))), Msg__MsgDesc_SetLStringAttrib)),Msg__MsgDesc_SetLStringAttrib)((Msg__Msg)i1, (OOC_CHAR8*)"name", 5, (Msg__LStringPtr)i0);
4409       i0 = (OOC_INT64)fragment;
4410       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 65302))+16);
4411       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 65310))+40);
4412       XML_DTD__AttValueDesc_Clear((XML_DTD__AttValue)i0);
4413       goto l17;
4414 l15:
4415       XML_Parser__ParserDesc_ParseDocument_Err(210);
4416       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 64838))+8);
4417       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 64838))+8);
4418       i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 64844)), 0);
4419       i0 = (OOC_INT64)Msg__GetLStringPtr((void*)(_check_pointer(i0, 64844)), i1);
4420       i1 = (OOC_INT64)p;
4421       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 64772))+176);
4422       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 64772))+176);
4423       OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 64783)))), Msg__MsgDesc_SetLStringAttrib)),Msg__MsgDesc_SetLStringAttrib)((Msg__Msg)i1, (OOC_CHAR8*)"name", 5, (Msg__LStringPtr)i0);
4424 l17:
4425       i0 = (OOC_INT64)fragment;
4426       i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 65467));
4427       fragment = (XML_DTD__Fragment)i0;
4428       i1 = i0!=0;
4429       if (i1) goto l3_loop;
4430 l22:
4431       return;
4432       ;
4433     }
4434 
4435 
4436     void XML_Parser__ParserDesc_ParseDocument_content(void) {
4437       register OOC_INT64 i0,i1,i2;
4438       auto void XML_Parser__ParserDesc_ParseDocument_content_CharData(void);
4439       auto void XML_Parser__ParserDesc_ParseDocument_content_FollowEntityRef(XML_DTD__EntityRef entityRef);
4440 
4441         void XML_Parser__ParserDesc_ParseDocument_content_CharData(void) {
4442           register OOC_INT64 i0,i1,i2,i3,i4,i5,i6;
4443           OOC_INT8 elementWhitespace;
4444 
4445           i0 = (OOC_INT64)p;
4446           i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 66008))+8);
4447           i1 = _check_pointer(i1, 66011);
4448           i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 66008))+8);
4449           XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(_check_pointer(i0, 66011)), (RT0__Struct)((OOC_INT64)&_td_XML_Locator__Position));
4450           i0 = cpos;
4451           cstart = i0;
4452           cdelta = 0;
4453           elementWhitespace = 2;
4454           i0=2;
4455 l1_loop:
4456           i1 = (OOC_INT64)chars;
4457           i2 = _check_pointer(i1, 66372);
4458           i3 = OOC_ARRAY_LENGTH(i2, 0);
4459           i4 = cpos;
4460           i2 = *(OOC_UINT16*)(i2+(_check_index(i4, i3, OOC_UINT32, 66372))*2);
4461           switch (i2) {
4462           case 0u ... 31u:
4463           case 65534u:
4464             i2 = (OOC_INT64)p;
4465             i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 66447))+64);
4466             i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 66451))+40);
4467             i1 = i1!=i2;
4468             if (!i1) goto l5;
4469             goto l9;
4470 l5:
4471             XML_Parser__ParserDesc_ParseDocument_ControlChar(10u);
4472             i1 = cdelta;
4473             i1 = i1!=0;
4474             if (!i1) goto l1_loop;
4475             goto l21_loop;
4476 l9:
4477             cpos = (i4+1);
4478             goto l1_loop;
4479           case 32u:
4480             cpos = (i4+1);
4481 
4482             goto l1_loop;
4483           case 60u:
4484           case 38u:
4485           case 65535u:
4486             goto l21_loop;
4487           case 93u:
4488             i1 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"]]>", 4, 0);
4489             if (i1) goto l21_loop;
4490             i0 = cpos;
4491             elementWhitespace = 1;
4492             cpos = (i0+1);
4493             i0=1;
4494             goto l1_loop;
4495           default:
4496             elementWhitespace = 1;
4497             cpos = (i4+1);
4498             i0=1;
4499             goto l1_loop;
4500           }
4501 l21_loop:
4502           i1 = (OOC_INT64)chars;
4503           i2 = _check_pointer(i1, 67096);
4504           i3 = OOC_ARRAY_LENGTH(i2, 0);
4505           i4 = cpos;
4506           i2 = *(OOC_UINT16*)(i2+(_check_index(i4, i3, OOC_UINT32, 67096))*2);
4507           switch (i2) {
4508           case 0u ... 31u:
4509           case 65534u:
4510             i2 = (OOC_INT64)p;
4511             i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 67171))+64);
4512             i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 67175))+40);
4513             i2 = i1!=i2;
4514             if (!i2) goto l25;
4515             goto l26;
4516 l25:
4517             XML_Parser__ParserDesc_ParseDocument_ControlChar(10u);
4518             goto l21_loop;
4519 l26:
4520             i2 = _check_pointer(i1, 67571);
4521             i3 = cdelta;
4522             i5 = OOC_ARRAY_LENGTH(i2, 0);
4523             i1 = _check_pointer(i1, 67593);
4524             i6 = OOC_ARRAY_LENGTH(i1, 0);
4525             i1 = *(OOC_UINT16*)(i1+(_check_index(i4, i6, OOC_UINT32, 67593))*2);
4526             *(OOC_UINT16*)(i2+(_check_index((i4-i3), i5, OOC_UINT32, 67571))*2) = i1;
4527             cpos = (i4+1);
4528             goto l21_loop;
4529           case 32u:
4530             i2 = _check_pointer(i1, 67716);
4531             i3 = cdelta;
4532             i5 = OOC_ARRAY_LENGTH(i2, 0);
4533             i1 = _check_pointer(i1, 67738);
4534             i6 = OOC_ARRAY_LENGTH(i1, 0);
4535             i1 = *(OOC_UINT16*)(i1+(_check_index(i4, i6, OOC_UINT32, 67738))*2);
4536             *(OOC_UINT16*)(i2+(_check_index((i4-i3), i5, OOC_UINT32, 67716))*2) = i1;
4537             cpos = (i4+1);
4538 
4539             goto l21_loop;
4540           case 60u:
4541           case 65535u:
4542             goto l41;
4543           case 38u:
4544             i1 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"&#", 3, 0);
4545             if (!i1) goto l41;
4546             elementWhitespace = 1;
4547             XML_Parser__ParserDesc_ParseDocument_CharRef();
4548             i0=1;
4549             goto l21_loop;
4550           case 93u:
4551             i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"]]>", 4, 0);
4552             if (i0) goto l37;
4553             goto l38;
4554 l37:
4555             XML_Parser__ParserDesc_ParseDocument_Err(3);
4556 l38:
4557             elementWhitespace = 1;
4558             i0 = (OOC_INT64)chars;
4559             i1 = _check_pointer(i0, 68240);
4560             i2 = cdelta;
4561             i3 = cpos;
4562             i4 = OOC_ARRAY_LENGTH(i1, 0);
4563             i0 = _check_pointer(i0, 68262);
4564             i5 = OOC_ARRAY_LENGTH(i0, 0);
4565             i0 = *(OOC_UINT16*)(i0+(_check_index(i3, i5, OOC_UINT32, 68262))*2);
4566             *(OOC_UINT16*)(i1+(_check_index((i3-i2), i4, OOC_UINT32, 68240))*2) = i0;
4567             cpos = (i3+1);
4568             i0=1;
4569             goto l21_loop;
4570           default:
4571             elementWhitespace = 1;
4572             i0 = _check_pointer(i1, 68371);
4573             i2 = cdelta;
4574             i3 = OOC_ARRAY_LENGTH(i0, 0);
4575             i1 = _check_pointer(i1, 68393);
4576             i5 = OOC_ARRAY_LENGTH(i1, 0);
4577             i1 = *(OOC_UINT16*)(i1+(_check_index(i4, i5, OOC_UINT32, 68393))*2);
4578             *(OOC_UINT16*)(i0+(_check_index((i4-i2), i3, OOC_UINT32, 68371))*2) = i1;
4579             cpos = (i4+1);
4580             i0=1;
4581             goto l21_loop;
4582           }
4583 l41:
4584           i1 = cdelta;
4585           i2 = cpos;
4586           i1 = i2-i1;
4587           i2 = cstart;
4588           i3 = i1!=i2;
4589           if (!i3) goto l44;
4590           i3 = (OOC_INT64)chars;
4591           i4 = (OOC_INT64)p;
4592           i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 68490))+80);
4593           i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 68490))+80);
4594           i6 = OOC_ARRAY_LENGTH((_check_pointer(i3, 68518)), 0);
4595           OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i5, 68499)))), XML_Builder__BuilderDesc_Characters)),XML_Builder__BuilderDesc_Characters)((XML_Builder__Builder)i4, (void*)(_check_pointer(i3, 68518)), i6, i2, i1, i0);
4596 l44:
4597           return;
4598           ;
4599         }
4600 
4601 
4602         void XML_Parser__ParserDesc_ParseDocument_content_FollowEntityRef(XML_DTD__EntityRef entityRef) {
4603           register OOC_INT64 i0,i1,i2,i3,i4,i5,i6;
4604           XML_DTD__Declaration decl;
4605           XML_DTD__Entity entity;
4606           struct XML_Locator__Position pos;
4607 
4608           i0 = (OOC_INT64)entityRef;
4609           i1 = (OOC_INT64)dtd;
4610           i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 68848))+8);
4611           i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 68877))+8);
4612           i1 = (OOC_INT64)XML_DTD__NamespaceDesc_Get((XML_DTD__Namespace)i1, (XML_UnicodeBuffer__CharArray)i2);
4613           decl = (XML_DTD__Declaration)i1;
4614           entity = (XML_DTD__Entity)(OOC_INT64)0;
4615           i2 = i1!=(OOC_INT64)0;
4616           if (i2) goto l3;
4617           i2=(OOC_INT64)0;
4618           goto l4;
4619 l3:
4620           i2 = _type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 68967)))), &_td_XML_DTD__EntityDesc, 68967);
4621           entity = (XML_DTD__Entity)i2;
4622 
4623 l4:
4624           i3 = (OOC_INT64)p;
4625           i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 69012))+8);
4626           i4 = _check_pointer(i4, 69015);
4627           i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 69012))+8);
4628           i4 = (OOC_INT64)&_td_XML_Locator__Position;
4629           XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(_check_pointer(i3, 69015)), (RT0__Struct)i4);
4630           i3 = (OOC_INT64)p;
4631           i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 69040))+64);
4632           i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 69044))+40);
4633           i6 = (OOC_INT64)chars;
4634           i5 = i6==i5;
4635           if (!i5) goto l7;
4636           i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 69115))+8);
4637           i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 69115))+8);
4638           i5 = OOC_ARRAY_LENGTH((_check_pointer(i5, 69121)), 0);
4639           i5 = LongStrings__Length((void*)(_check_pointer(i6, 69121)), i5);
4640           i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 69080))+8);
4641           i6 = _check_pointer(i6, 69083);
4642           i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 69080))+8);
4643           XML_Parser__ParserDesc_ParseDocument_DecLength((void*)(_check_pointer(i3, 69083)), (RT0__Struct)i4, (i5+2));
4644 l7:
4645           i3 = i2==(OOC_INT64)0;
4646           if (i3) goto l32;
4647           i3 = *(OOC_UINT8*)((_check_pointer(i2, 69366))+33);
4648           if (i3) goto l30;
4649           i3 = *(OOC_INT8*)((_check_pointer(i2, 69571))+16);
4650           i3 = i3==2;
4651           if (i3) goto l14;
4652           i3=0u;
4653           goto l16;
4654 l14:
4655           i3 = (OOC_INT64)p;
4656           i3 = *(OOC_UINT8*)((_check_pointer(i3, 69625))+112);
4657           i3 = !i3;
4658 
4659 l16:
4660           if (i3) goto l28;
4661           i3 = (OOC_INT64)p;
4662           i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 69751))+80);
4663           i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 69751))+80);
4664           OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i5, 69760)))), XML_Builder__BuilderDesc_StartEntity)),XML_Builder__BuilderDesc_StartEntity)((XML_Builder__Builder)i3, (XML_DTD__Entity)i2);
4665           XML_Parser__ParserDesc_ParseDocument_PushEntity((XML_DTD__Entity)i2, 1u);
4666           XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(OOC_INT64)&pos, (RT0__Struct)i4);
4667           i3 = *(OOC_INT8*)((_check_pointer(i2, 69954))+16);
4668           i3 = i3==2;
4669           if (i3) goto l20;
4670           i3=0u;
4671           goto l22;
4672 l20:
4673           i3 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"<?xml", 6, 1);
4674 
4675 l22:
4676           if (!i3) goto l24;
4677           XML_Parser__ParserDesc_ParseDocument_XMLDecl((XML_DTD__ExternalEntity)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 70079)))), &_td_XML_DTD__ExternalEntityDesc, 70079)));
4678 l24:
4679           XML_Parser__ParserDesc_ParseDocument_content();
4680           i1 = (OOC_INT64)chars;
4681           i1 = _check_pointer(i1, 70149);
4682           i3 = OOC_ARRAY_LENGTH(i1, 0);
4683           i5 = cpos;
4684           i1 = *(OOC_UINT16*)(i1+(_check_index(i5, i3, OOC_UINT32, 70149))*2);
4685           i1 = i1!=65535u;
4686           if (!i1) goto l27;
4687           XML_Parser__ParserDesc_ParseDocument_ErrPos(302, (void*)(OOC_INT64)&pos, (RT0__Struct)i4);
4688           i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 70349))+8);
4689           i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 70349))+8);
4690           i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 70355)), 0);
4691           i0 = (OOC_INT64)Msg__GetLStringPtr((void*)(_check_pointer(i0, 70355)), i1);
4692           i1 = (OOC_INT64)p;
4693           i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 70242))+176);
4694           i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 70242))+176);
4695           OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 70253)))), Msg__MsgDesc_SetLStringAttrib)),Msg__MsgDesc_SetLStringAttrib)((Msg__Msg)i1, (OOC_CHAR8*)"name", 5, (Msg__LStringPtr)i0);
4696 l27:
4697           XML_Parser__ParserDesc_ParseDocument_PopEntity();
4698           i0 = (OOC_INT64)p;
4699           i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 70421))+8);
4700           i1 = _check_pointer(i1, 70424);
4701           i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 70421))+8);
4702           XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(_check_pointer(i0, 70424)), (RT0__Struct)i4);
4703           i0 = (OOC_INT64)p;
4704           i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 70439))+80);
4705           i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 70439))+80);
4706           OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 70448)))), XML_Builder__BuilderDesc_EndEntity)),XML_Builder__BuilderDesc_EndEntity)((XML_Builder__Builder)i0, (XML_DTD__Entity)i2);
4707           goto l33;
4708 l28:
4709           i1 = (OOC_INT64)p;
4710           i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 69661))+80);
4711           i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 69696))+8);
4712           i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 69661))+80);
4713           OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 69670)))), XML_Builder__BuilderDesc_SkippedEntity)),XML_Builder__BuilderDesc_SkippedEntity)((XML_Builder__Builder)i1, (XML_UnicodeBuffer__CharArray)i0, (XML_DTD__Entity)i2);
4714           goto l33;
4715 l30:
4716           XML_Parser__ParserDesc_ParseDocument_Err(213);
4717           i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 69540))+8);
4718           i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 69540))+8);
4719           i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 69546)), 0);
4720           i0 = (OOC_INT64)Msg__GetLStringPtr((void*)(_check_pointer(i0, 69546)), i1);
4721           i1 = (OOC_INT64)p;
4722           i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 69434))+176);
4723           i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 69434))+176);
4724           OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 69445)))), Msg__MsgDesc_SetLStringAttrib)),Msg__MsgDesc_SetLStringAttrib)((Msg__Msg)i1, (OOC_CHAR8*)"name", 5, (Msg__LStringPtr)i0);
4725           goto l33;
4726 l32:
4727           i1 = (OOC_INT64)p;
4728           i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 69212))+8);
4729           i2 = _check_pointer(i2, 69215);
4730           i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 69212))+8);
4731           XML_Parser__ParserDesc_ParseDocument_ErrPos(210, (void*)(_check_pointer(i1, 69215)), (RT0__Struct)i4);
4732           i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 69336))+8);
4733           i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 69336))+8);
4734           i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 69342)), 0);
4735           i0 = (OOC_INT64)Msg__GetLStringPtr((void*)(_check_pointer(i0, 69342)), i1);
4736           i1 = (OOC_INT64)p;
4737           i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 69230))+176);
4738           i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 69230))+176);
4739           OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 69241)))), Msg__MsgDesc_SetLStringAttrib)),Msg__MsgDesc_SetLStringAttrib)((Msg__Msg)i1, (OOC_CHAR8*)"name", 5, (Msg__LStringPtr)i0);
4740 l33:
4741           return;
4742           ;
4743         }
4744 
4745 
4746 l1_loop:
4747       i0 = (OOC_INT64)chars;
4748       i0 = _check_pointer(i0, 70564);
4749       i1 = OOC_ARRAY_LENGTH(i0, 0);
4750       i2 = cpos;
4751       i0 = *(OOC_UINT16*)(i0+(_check_index(i2, i1, OOC_UINT32, 70564))*2);
4752       switch (i0) {
4753       case 65535u:
4754         goto l28;
4755       case 60u:
4756         i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"<!--", 5, 0);
4757         if (!i0) goto l6;
4758         goto l19;
4759 l6:
4760         i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"<![CDATA[", 10, 0);
4761         if (!i0) goto l8;
4762         goto l17;
4763 l8:
4764         i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"<?", 3, 0);
4765         if (!i0) goto l10;
4766         goto l15;
4767 l10:
4768         i0 = (OOC_INT64)chars;
4769         i0 = _check_pointer(i0, 70873);
4770         i1 = cpos;
4771         i2 = OOC_ARRAY_LENGTH(i0, 0);
4772         i0 = *(OOC_UINT16*)(i0+(_check_index((i1+1), i2, OOC_UINT32, 70873))*2);
4773         i0 = i0!=47u;
4774         if (!i0) goto l28;
4775         XML_Parser__ParserDesc_ParseDocument_element();
4776         goto l1_loop;
4777 l15:
4778         XML_Parser__ParserDesc_ParseDocument_PI();
4779         goto l1_loop;
4780 l17:
4781         XML_Parser__ParserDesc_ParseDocument_CDSect();
4782         goto l1_loop;
4783 l19:
4784         XML_Parser__ParserDesc_ParseDocument_Comment();
4785         goto l1_loop;
4786       case 38u:
4787         i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"&#", 3, 0);
4788         if (!i0) goto l23;
4789         goto l24;
4790 l23:
4791         i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_EntityRef(0u, 1u);
4792         XML_Parser__ParserDesc_ParseDocument_content_FollowEntityRef((XML_DTD__EntityRef)i0);
4793         goto l1_loop;
4794 l24:
4795         XML_Parser__ParserDesc_ParseDocument_content_CharData();
4796         goto l1_loop;
4797       default:
4798         XML_Parser__ParserDesc_ParseDocument_content_CharData();
4799         goto l1_loop;
4800       }
4801 l28:
4802       return;
4803       ;
4804     }
4805 
4806 
4807     void XML_Parser__ParserDesc_ParseDocument_element(void) {
4808       register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7;
4809       OOC_CHAR8 emptyElementTag;
4810       XML_UnicodeBuffer__CharArray startName;
4811       XML_DTD__Declaration decl;
4812       XML_UnicodeBuffer__CharArray attrName;
4813       XML_DTD__AttrDecl attrDecl;
4814       XML_DTD__Declaration decl0;
4815       XML_DTD__AttValue attrValue;
4816       struct XML_Locator__Position pos;
4817       XML_UnicodeBuffer__CharArray endName;
4818       auto void XML_Parser__ParserDesc_ParseDocument_element_NoteName(XML_UnicodeBuffer__CharArray name);
4819       auto OOC_CHAR8 XML_Parser__ParserDesc_ParseDocument_element_AttributeNameUsed(XML_UnicodeBuffer__CharArray name);
4820       auto void XML_Parser__ParserDesc_ParseDocument_element_AddDefaultAttributes(XML_DTD__ElementDecl elemDecl);
4821       auto void XML_Parser__ParserDesc_ParseDocument_element_ErrEndTag(void);
4822 
4823         void XML_Parser__ParserDesc_ParseDocument_element_NoteName(XML_UnicodeBuffer__CharArray name) {
4824           register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7;
4825           XML_Parser__NameList newList;
4826           OOC_INT32 i;
4827 
4828           i0 = (OOC_INT64)p;
4829           i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 71653))+136);
4830           i2 = *(OOC_INT32*)((_check_pointer(i0, 71631))+144);
4831           i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 71663)), 0);
4832           i1 = i2==i1;
4833           if (!i1) goto l11;
4834           i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 71702))+136);
4835           i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 71712)), 0);
4836           i1 = (OOC_INT64)RT0__NewObject(_td_XML_Parser__NameList.baseTypes[0], (i1+8));
4837           newList = (XML_Parser__NameList)i1;
4838           i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 71760))+136);
4839           i = 0;
4840           i2 = OOC_ARRAY_LENGTH((_check_pointer(i2, 71770)), 0);
4841           i3 = 0<i2;
4842           if (!i3) goto l10;
4843           i3=0;
4844 l5_loop:
4845           i4 = _check_pointer(i1, 71797);
4846           i5 = OOC_ARRAY_LENGTH(i4, 0);
4847           i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 71805))+136);
4848           i6 = _check_pointer(i6, 71815);
4849           i7 = OOC_ARRAY_LENGTH(i6, 0);
4850           i6 = (OOC_INT64)*(OOC_INT64*)(i6+(_check_index(i3, i7, OOC_UINT32, 71815))*8);
4851           *(OOC_INT64*)(i4+(_check_index(i3, i5, OOC_UINT32, 71797))*8) = i6;
4852           i3 = i3+1;
4853           i = i3;
4854           i4 = i3<i2;
4855           if (i4) goto l5_loop;
4856 l10:
4857           *(OOC_INT64*)((_check_pointer(i0, 71845))+136) = i1;
4858 l11:
4859           i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 71889))+136);
4860           i1 = _check_pointer(i1, 71899);
4861           i2 = *(OOC_INT32*)((_check_pointer(i0, 71901))+144);
4862           i3 = OOC_ARRAY_LENGTH(i1, 0);
4863           i4 = (OOC_INT64)name;
4864           *(OOC_INT64*)(i1+(_check_index(i2, i3, OOC_UINT32, 71899))*8) = i4;
4865           i1 = *(OOC_INT32*)((_check_pointer(i0, 71939))+144);
4866           *(OOC_INT32*)((_check_pointer(i0, 71939))+144) = (i1+1);
4867           return;
4868           ;
4869         }
4870 
4871 
4872         OOC_CHAR8 XML_Parser__ParserDesc_ParseDocument_element_AttributeNameUsed(XML_UnicodeBuffer__CharArray name) {
4873           register OOC_INT64 i0,i1,i2,i3,i4,i5;
4874           OOC_INT32 i;
4875 
4876           i0 = (OOC_INT64)p;
4877           i = 0;
4878           i1 = *(OOC_INT32*)((_check_pointer(i0, 72105))+144);
4879           i2 = 0<i1;
4880           if (!i2) goto l11;
4881           i2 = (OOC_INT64)name;
4882           i3=0;
4883 l3_loop:
4884           i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 72147))+136);
4885           i4 = _check_pointer(i4, 72157);
4886           i5 = OOC_ARRAY_LENGTH(i4, 0);
4887           i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i3, i5, OOC_UINT32, 72157))*8);
4888           i4 = (
4889           _cmp16((const void*)(_check_pointer(i2, 72142)),(const void*)(_check_pointer(i4, 72160))))==0;
4890           if (!i4) goto l6;
4891           return 1u;
4892 l6:
4893           i3 = i3+1;
4894           i = i3;
4895           i4 = i3<i1;
4896           if (i4) goto l3_loop;
4897 l11:
4898           return 0u;
4899           ;
4900         }
4901 
4902 
4903         void XML_Parser__ParserDesc_ParseDocument_element_AddDefaultAttributes(XML_DTD__ElementDecl elemDecl) {
4904           register OOC_INT64 i0,i1,i2,i3,i4,i5,i6;
4905           XML_DTD__Declaration decl;
4906           XML_DTD__AttrDecl attrDecl;
4907           auto OOC_CHAR8 XML_Parser__ParserDesc_ParseDocument_element_AddDefaultAttributes_AttributeDefined(XML_UnicodeBuffer__CharArray name);
4908 
4909             OOC_CHAR8 XML_Parser__ParserDesc_ParseDocument_element_AddDefaultAttributes_AttributeDefined(XML_UnicodeBuffer__CharArray name) {
4910               register OOC_INT64 i0,i1,i2,i3,i4;
4911               OOC_INT32 i;
4912 
4913               i = 0;
4914               i0 = (OOC_INT64)p;
4915               i1 = *(OOC_INT32*)((_check_pointer(i0, 72588))+144);
4916               i1 = 0!=i1;
4917               if (!i1) goto l11;
4918               i1 = (OOC_INT64)name;
4919               i2=0;
4920 l3_loop:
4921               i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 72623))+136);
4922               i3 = _check_pointer(i3, 72633);
4923               i4 = OOC_ARRAY_LENGTH(i3, 0);
4924               i3 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(i2, i4, OOC_UINT32, 72633))*8);
4925               i3 = (
4926               _cmp16((const void*)(_check_pointer(i3, 72636)),(const void*)(_check_pointer(i1, 72644))))==0;
4927               if (!i3) goto l6;
4928               return 1u;
4929 l6:
4930               i2 = i2+1;
4931               i = i2;
4932               i3 = *(OOC_INT32*)((_check_pointer(i0, 72588))+144);
4933               i3 = i2!=i3;
4934               if (i3) goto l3_loop;
4935 l11:
4936               return 0u;
4937               ;
4938             }
4939 
4940 
4941           i0 = (OOC_INT64)elemDecl;
4942           i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 72826))+40);
4943           i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 72841));
4944           decl = (XML_DTD__Declaration)i0;
4945           i1 = i0!=0;
4946           if (!i1) goto l22;
4947           i1 = (OOC_INT64)&_td_XML_Locator__Position;
4948 
4949 l3_loop:
4950           i2 = _type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 72914)))), &_td_XML_DTD__AttrDeclDesc, 72914);
4951           attrDecl = (XML_DTD__AttrDecl)i2;
4952           i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 72965))+8);
4953           i3 = XML_Parser__ParserDesc_ParseDocument_element_AddDefaultAttributes_AttributeDefined((XML_UnicodeBuffer__CharArray)i3);
4954           i3 = !i3;
4955           if (!i3) goto l17;
4956           i3 = *(OOC_INT8*)((_check_pointer(i2, 73002))+40);
4957           i3 = i3>=2;
4958           if (i3) goto l15;
4959           i3 = (OOC_INT64)p;
4960           i4 = *(OOC_UINT8*)((_check_pointer(i3, 73235))+114);
4961           if (i4) goto l10;
4962           i4=0u;
4963           goto l12;
4964 l10:
4965           i4 = *(OOC_INT8*)((_check_pointer(i2, 73277))+40);
4966           i4 = i4==0;
4967 
4968 l12:
4969           if (!i4) goto l17;
4970           i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 73358))+8);
4971           i4 = _check_pointer(i4, 73361);
4972           i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 73358))+8);
4973           XML_Parser__ParserDesc_ParseDocument_ErrPosNF(214, (void*)(_check_pointer(i3, 73361)), (RT0__Struct)i1);
4974           i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 73446))+8);
4975           i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 73446))+8);
4976           i3 = OOC_ARRAY_LENGTH((_check_pointer(i3, 73452)), 0);
4977           i2 = (OOC_INT64)Msg__GetLStringPtr((void*)(_check_pointer(i2, 73452)), i3);
4978           i3 = (OOC_INT64)p;
4979           i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 73380))+176);
4980           i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 73380))+176);
4981           OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 73391)))), Msg__MsgDesc_SetLStringAttrib)),Msg__MsgDesc_SetLStringAttrib)((Msg__Msg)i3, (OOC_CHAR8*)"name", 5, (Msg__LStringPtr)i2);
4982           goto l17;
4983 l15:
4984           i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 73067))+48);
4985           XML_Parser__ParserDesc_ParseDocument_Expand((XML_DTD__AttValue)i3);
4986           i3 = (OOC_INT64)p;
4987           i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 73099))+80);
4988           i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 73193))+48);
4989           i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 73130))+8);
4990           i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 73099))+80);
4991           OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 73108)))), XML_Builder__BuilderDesc_Attribute)),XML_Builder__BuilderDesc_Attribute)((XML_Builder__Builder)i3, (XML_DTD__NamespaceDeclaration)0, (XML_UnicodeBuffer__CharArray)i6, (XML_DTD__AttrDecl)i2, (XML_DTD__AttValue)i5, 0u);
4992 l17:
4993           i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 73509));
4994           decl = (XML_DTD__Declaration)i0;
4995           i2 = i0!=0;
4996           if (i2) goto l3_loop;
4997 l22:
4998           return;
4999           ;
5000         }
5001 
5002 
5003         void XML_Parser__ParserDesc_ParseDocument_element_ErrEndTag(void) {
5004           register OOC_INT64 i0,i1,i2;
5005 
5006           i0 = (OOC_INT64)startName;
5007           i1 = (OOC_INT64)XML_Parser__noName;
5008           i0 = i0!=i1;
5009           if (!i0) goto l4;
5010           XML_Parser__ParserDesc_ParseDocument_ErrPos(209, (void*)(OOC_INT64)&pos, (RT0__Struct)((OOC_INT64)&_td_XML_Locator__Position));
5011           i0 = (OOC_INT64)startName;
5012           i1 = OOC_ARRAY_LENGTH((_check_pointer(i0, 73757)), 0);
5013           i0 = (OOC_INT64)Msg__GetLStringPtr((void*)(_check_pointer(i0, 73757)), i1);
5014           i1 = (OOC_INT64)p;
5015           i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 73690))+176);
5016           i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 73690))+176);
5017           OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 73701)))), Msg__MsgDesc_SetLStringAttrib)),Msg__MsgDesc_SetLStringAttrib)((Msg__Msg)i1, (OOC_CHAR8*)"name", 5, (Msg__LStringPtr)i0);
5018 l4:
5019           return;
5020           ;
5021         }
5022 
5023 
5024       i0 = (OOC_INT64)chars;
5025       i0 = _check_pointer(i0, 73824);
5026       i1 = OOC_ARRAY_LENGTH(i0, 0);
5027       i2 = cpos;
5028       i0 = *(OOC_UINT16*)(i0+(_check_index(i2, i1, OOC_UINT32, 73824))*2);
5029       i0 = i0==60u;
5030       if (i0) goto l3;
5031       XML_Parser__ParserDesc_ParseDocument_Err(208);
5032       goto l51;
5033 l3:
5034       XML_Parser__ParserDesc_ParseDocument_CheckChar(60u);
5035       i0 = (OOC_INT64)p;
5036       *(OOC_INT32*)((_check_pointer(i0, 73877))+144) = 0;
5037       emptyElementTag = 0u;
5038       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 73955))+8);
5039       i1 = _check_pointer(i1, 73958);
5040       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 73955))+8);
5041       i1 = (OOC_INT64)&_td_XML_Locator__Position;
5042       XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(_check_pointer(i0, 73958)), (RT0__Struct)i1);
5043       i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Name(0u);
5044       startName = (XML_UnicodeBuffer__CharArray)i0;
5045       i2 = (OOC_INT64)dtd;
5046       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 74016))+24);
5047       i2 = (OOC_INT64)XML_DTD__NamespaceDesc_Get((XML_DTD__Namespace)i2, (XML_UnicodeBuffer__CharArray)i0);
5048       decl = (XML_DTD__Declaration)i2;
5049       i3 = (OOC_INT64)p;
5050       i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 74062))+80);
5051       i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 74062))+80);
5052       OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 74071)))), XML_Builder__BuilderDesc_StartElement)),XML_Builder__BuilderDesc_StartElement)((XML_Builder__Builder)i3, (XML_DTD__NamespaceDeclaration)(OOC_INT64)0, (XML_UnicodeBuffer__CharArray)i0);
5053       i0 = i2!=(OOC_INT64)0;
5054       {register OOC_INT64 h0=i0;i0=i2;i2=h0;}
5055 l4_loop:
5056       i3 = (OOC_INT64)chars;
5057       i4 = _check_pointer(i3, 74151);
5058       i5 = OOC_ARRAY_LENGTH(i4, 0);
5059       i6 = cpos;
5060       i4 = *(OOC_UINT16*)(i4+(_check_index(i6, i5, OOC_UINT32, 74151))*2);
5061       i4 = i4==65535u;
5062       if (i4) goto l34;
5063       i4 = _check_pointer(i3, 74222);
5064       i5 = OOC_ARRAY_LENGTH(i4, 0);
5065       i4 = *(OOC_UINT16*)(i4+(_check_index(i6, i5, OOC_UINT32, 74222))*2);
5066       i4 = i4!=62u;
5067       if (i4) goto l9;
5068       i3=0u;
5069       goto l11;
5070 l9:
5071       i3 = _check_pointer(i3, 74244);
5072       i4 = OOC_ARRAY_LENGTH(i3, 0);
5073       i3 = *(OOC_UINT16*)(i3+(_check_index(i6, i4, OOC_UINT32, 74244))*2);
5074       i3 = i3!=47u;
5075 
5076 l11:
5077       if (!i3) goto l14;
5078       XML_Parser__ParserDesc_ParseDocument_S();
5079 l14:
5080       i3 = (OOC_INT64)chars;
5081       i4 = _check_pointer(i3, 74311);
5082       i5 = OOC_ARRAY_LENGTH(i4, 0);
5083       i6 = cpos;
5084       i4 = *(OOC_UINT16*)(i4+(_check_index(i6, i5, OOC_UINT32, 74311))*2);
5085       i4 = i4==47u;
5086       if (i4) goto l32;
5087       i3 = _check_pointer(i3, 74435);
5088       i4 = OOC_ARRAY_LENGTH(i3, 0);
5089       i3 = *(OOC_UINT16*)(i3+(_check_index(i6, i4, OOC_UINT32, 74435))*2);
5090       i3 = i3==62u;
5091       if (i3) goto l34;
5092 l20:
5093       i0 = (OOC_INT64)p;
5094       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 74523))+8);
5095       i2 = _check_pointer(i2, 74526);
5096       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 74523))+8);
5097       XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(_check_pointer(i0, 74526)), (RT0__Struct)i1);
5098       i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Name(0u);
5099       attrName = (XML_UnicodeBuffer__CharArray)i0;
5100       i2 = XML_Parser__ParserDesc_ParseDocument_element_AttributeNameUsed((XML_UnicodeBuffer__CharArray)i0);
5101       if (!i2) goto l23;
5102       i2 = (OOC_INT64)p;
5103       i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 74652))+8);
5104       i3 = _check_pointer(i3, 74655);
5105       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 74652))+8);
5106       XML_Parser__ParserDesc_ParseDocument_ErrPos(212, (void*)(_check_pointer(i2, 74655)), (RT0__Struct)i1);
5107       i2 = OOC_ARRAY_LENGTH((_check_pointer(i0, 74738)), 0);
5108       i2 = (OOC_INT64)Msg__GetLStringPtr((void*)(_check_pointer(i0, 74738)), i2);
5109       i3 = (OOC_INT64)p;
5110       i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 74672))+176);
5111       i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 74672))+176);
5112       OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 74683)))), Msg__MsgDesc_SetLStringAttrib)),Msg__MsgDesc_SetLStringAttrib)((Msg__Msg)i3, (OOC_CHAR8*)"name", 5, (Msg__LStringPtr)i2);
5113 l23:
5114       XML_Parser__ParserDesc_ParseDocument_element_NoteName((XML_UnicodeBuffer__CharArray)i0);
5115       XML_Parser__ParserDesc_ParseDocument_Eq();
5116       attrDecl = (XML_DTD__AttrDecl)(OOC_INT64)0;
5117       i0 = (OOC_INT64)decl;
5118       i2 = i0!=(OOC_INT64)0;
5119       if (i2) goto l26;
5120       i3=(OOC_INT64)0;
5121       goto l31;
5122 l26:
5123       i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 74890)))), &_td_XML_DTD__ElementDeclDesc, 74890)), 74902))+40);
5124       i4 = (OOC_INT64)attrName;
5125       i3 = (OOC_INT64)XML_DTD__NamespaceDesc_Get((XML_DTD__Namespace)i3, (XML_UnicodeBuffer__CharArray)i4);
5126       decl0 = (XML_DTD__Declaration)i3;
5127       i4 = i3!=(OOC_INT64)0;
5128       if (i4) goto l29;
5129       i3=(OOC_INT64)0;
5130       goto l31;
5131 l29:
5132       i3 = _type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 75005)))), &_td_XML_DTD__AttrDeclDesc, 75005);
5133       attrDecl = (XML_DTD__AttrDecl)i3;
5134 
5135 l31:
5136       i4 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_AttValue(1u);
5137       attrValue = (XML_DTD__AttValue)i4;
5138       XML_Parser__ParserDesc_ParseDocument_Expand((XML_DTD__AttValue)i4);
5139       i5 = (OOC_INT64)p;
5140       i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 75127))+80);
5141       i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 75127))+80);
5142       i7 = (OOC_INT64)attrName;
5143       OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i6, 75136)))), XML_Builder__BuilderDesc_Attribute)),XML_Builder__BuilderDesc_Attribute)((XML_Builder__Builder)i5, (XML_DTD__NamespaceDeclaration)(OOC_INT64)0, (XML_UnicodeBuffer__CharArray)i7, (XML_DTD__AttrDecl)i3, (XML_DTD__AttValue)i4, 1u);
5144 
5145       goto l4_loop;
5146 l32:
5147       XML_Parser__ParserDesc_ParseDocument_CheckChar(47u);
5148       emptyElementTag = 1u;
5149 l34:
5150       i3 = (OOC_INT64)p;
5151       i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 75252))+8);
5152       i4 = _check_pointer(i4, 75255);
5153       i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 75252))+8);
5154       XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(_check_pointer(i3, 75255)), (RT0__Struct)i1);
5155       if (!i2) goto l37;
5156       XML_Parser__ParserDesc_ParseDocument_element_AddDefaultAttributes((XML_DTD__ElementDecl)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 75329)))), &_td_XML_DTD__ElementDeclDesc, 75329)));
5157 l37:
5158       XML_Parser__ParserDesc_ParseDocument_CheckChar(62u);
5159       i0 = (OOC_INT64)p;
5160       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 75390))+80);
5161       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 75390))+80);
5162       OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 75399)))), XML_Builder__BuilderDesc_AttributesDone)),XML_Builder__BuilderDesc_AttributesDone)((XML_Builder__Builder)i0);
5163       XML_Parser__ParserDesc_ParseDocument_DiscardPreviousInput();
5164       i0 = emptyElementTag;
5165       if (i0) goto l49;
5166       XML_Parser__ParserDesc_ParseDocument_content();
5167       XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(OOC_INT64)&pos, (RT0__Struct)i1);
5168       i0 = (OOC_INT64)chars;
5169       i0 = _check_pointer(i0, 75688);
5170       i2 = OOC_ARRAY_LENGTH(i0, 0);
5171       i3 = cpos;
5172       i0 = *(OOC_UINT16*)(i0+(_check_index(i3, i2, OOC_UINT32, 75688))*2);
5173       i0 = i0!=60u;
5174       if (!i0) goto l42;
5175       XML_Parser__ParserDesc_ParseDocument_element_ErrEndTag();
5176 l42:
5177       XML_Parser__ParserDesc_ParseDocument_CheckChar(60u);
5178       i0 = (OOC_INT64)chars;
5179       i0 = _check_pointer(i0, 75768);
5180       i2 = OOC_ARRAY_LENGTH(i0, 0);
5181       i3 = cpos;
5182       i0 = *(OOC_UINT16*)(i0+(_check_index(i3, i2, OOC_UINT32, 75768))*2);
5183       i0 = i0!=47u;
5184       if (!i0) goto l45;
5185       XML_Parser__ParserDesc_ParseDocument_element_ErrEndTag();
5186 l45:
5187       XML_Parser__ParserDesc_ParseDocument_CheckChar(47u);
5188       i0 = (OOC_INT64)p;
5189       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 75855))+8);
5190       i2 = _check_pointer(i2, 75858);
5191       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 75855))+8);
5192       XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(_check_pointer(i0, 75858)), (RT0__Struct)i1);
5193       i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Name(0u);
5194       endName = (XML_UnicodeBuffer__CharArray)i0;
5195       i1 = (OOC_INT64)startName;
5196       i0 = (
5197       _cmp16((const void*)(_check_pointer(i0, 75918)),(const void*)(_check_pointer(i1, 75931))))!=0;
5198       if (!i0) goto l48;
5199       XML_Parser__ParserDesc_ParseDocument_element_ErrEndTag();
5200 l48:
5201       i0 = (OOC_INT64)p;
5202       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 75965))+80);
5203       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 75965))+80);
5204       i2 = (OOC_INT64)startName;
5205       OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 75974)))), XML_Builder__BuilderDesc_EndElement)),XML_Builder__BuilderDesc_EndElement)((XML_Builder__Builder)i0, (XML_DTD__NamespaceDeclaration)(OOC_INT64)0, (XML_UnicodeBuffer__CharArray)i2);
5206       XML_Parser__ParserDesc_ParseDocument_OptS(1u);
5207       XML_Parser__ParserDesc_ParseDocument_CheckChar(62u);
5208       goto l51;
5209 l49:
5210       i0 = (OOC_INT64)p;
5211       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 75534))+8);
5212       i2 = _check_pointer(i2, 75537);
5213       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 75534))+8);
5214       XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(_check_pointer(i0, 75537)), (RT0__Struct)i1);
5215       i0 = (OOC_INT64)p;
5216       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 75552))+80);
5217       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 75552))+80);
5218       i2 = (OOC_INT64)startName;
5219       OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 75561)))), XML_Builder__BuilderDesc_EndElement)),XML_Builder__BuilderDesc_EndElement)((XML_Builder__Builder)i0, (XML_DTD__NamespaceDeclaration)(OOC_INT64)0, (XML_UnicodeBuffer__CharArray)i2);
5220 l51:
5221       return;
5222       ;
5223     }
5224 
5225 
5226     void XML_Parser__ParserDesc_ParseDocument_MiscRep(void) {
5227       register OOC_INT64 i0,i1,i2;
5228 
5229 l1_loop:
5230       i0 = (OOC_INT64)chars;
5231       i0 = _check_pointer(i0, 76275);
5232       i1 = OOC_ARRAY_LENGTH(i0, 0);
5233       i2 = cpos;
5234       i0 = *(OOC_UINT16*)(i0+(_check_index(i2, i1, OOC_UINT32, 76275))*2);
5235       switch (i0) {
5236       case 65534u:
5237         XML_Parser__ParserDesc_ParseDocument_NextBlock();
5238         goto l1_loop;
5239       case 60u:
5240         i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"<!--", 5, 0);
5241         if (!i0) goto l6;
5242         goto l11;
5243 l6:
5244         i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"<?", 3, 0);
5245         if (!i0) goto l16;
5246         XML_Parser__ParserDesc_ParseDocument_PI();
5247         goto l1_loop;
5248 l11:
5249         XML_Parser__ParserDesc_ParseDocument_Comment();
5250         goto l1_loop;
5251       case 0u ... 32u:
5252         XML_Parser__ParserDesc_ParseDocument_S();
5253         goto l1_loop;
5254       default:
5255         goto l16;
5256       }
5257 l16:
5258       return;
5259       ;
5260     }
5261 
5262 
5263     void XML_Parser__ParserDesc_ParseDocument_ExternalID(OOC_CHAR8 optionJustPubid, XML_UnicodeBuffer__CharArray *_public, XML_UnicodeBuffer__CharArray *system, URI__URI *baseURI) {
5264       register OOC_INT64 i0,i1,i2,i3,i4;
5265       Msg__Msg res;
5266 
5267       *_public = (XML_UnicodeBuffer__CharArray)(OOC_INT64)0;
5268       *system = (XML_UnicodeBuffer__CharArray)(OOC_INT64)0;
5269       *baseURI = (URI__URI)(OOC_INT64)0;
5270       i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"SYSTEM", 7, 1);
5271       if (i0) goto l28;
5272       i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"PUBLIC", 7, 1);
5273       if (i0) goto l5;
5274       XML_Parser__ParserDesc_ParseDocument_Err(112);
5275       goto l32;
5276 l5:
5277       i0 = cpos;
5278       cpos = (i0+6);
5279       XML_Parser__ParserDesc_ParseDocument_S();
5280       i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_String(2);
5281       *_public = (XML_UnicodeBuffer__CharArray)i0;
5282       i0 = optionJustPubid;
5283       i0 = !i0;
5284       if (i0) goto l8;
5285       i1 = XML_Parser__ParserDesc_ParseDocument_LookingAtS();
5286 
5287       goto l10;
5288 l8:
5289       i1=1u;
5290 l10:
5291       if (!i1) goto l23;
5292       XML_Parser__ParserDesc_ParseDocument_S();
5293       if (i0) goto l14;
5294       i0 = (OOC_INT64)chars;
5295       i0 = _check_pointer(i0, 77604);
5296       i1 = OOC_ARRAY_LENGTH(i0, 0);
5297       i2 = cpos;
5298       i0 = *(OOC_UINT16*)(i0+(_check_index(i2, i1, OOC_UINT32, 77604))*2);
5299       i0 = i0==39u;
5300 
5301       goto l16;
5302 l14:
5303       i0=1u;
5304 l16:
5305       if (i0) goto l18;
5306       i0 = (OOC_INT64)chars;
5307       i0 = _check_pointer(i0, 77627);
5308       i1 = OOC_ARRAY_LENGTH(i0, 0);
5309       i2 = cpos;
5310       i0 = *(OOC_UINT16*)(i0+(_check_index(i2, i1, OOC_UINT32, 77627))*2);
5311       i0 = i0==34u;
5312 
5313       goto l20;
5314 l18:
5315       i0=1u;
5316 l20:
5317       if (!i0) goto l23;
5318       i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_String(2);
5319       *system = (XML_UnicodeBuffer__CharArray)i0;
5320 l23:
5321       i0 = (OOC_INT64)p;
5322       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 77763))+104);
5323       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 77732))+56);
5324       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 77774))+72);
5325       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 77732))+56);
5326       i3 = (OOC_INT64)*system;
5327       i4 = (OOC_INT64)*_public;
5328       OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 77736)))), XML_EntityResolver__ResolverDesc_GetURI)),XML_EntityResolver__ResolverDesc_GetURI)((XML_EntityResolver__Resolver)i0, (XML_UnicodeBuffer__CharArray)i4, (XML_UnicodeBuffer__CharArray)i3, (URI__URI)i1, (void*)(OOC_INT64)baseURI, (void*)(OOC_INT64)&res);
5329       i0 = (OOC_INT64)res;
5330       i0 = i0!=(OOC_INT64)0;
5331       if (!i0) goto l32;
5332       XML_Parser__ParserDesc_ParseDocument_Err(117);
5333       i0 = (OOC_INT64)p;
5334       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 77868))+176);
5335       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 77868))+176);
5336       i2 = (OOC_INT64)res;
5337       OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 77879)))), Msg__MsgDesc_SetMsgAttrib)),Msg__MsgDesc_SetMsgAttrib)((Msg__Msg)i0, (OOC_CHAR8*)"uri_error", 10, (Msg__Msg)i2);
5338       goto l32;
5339 l28:
5340       i0 = cpos;
5341       cpos = (i0+6);
5342       XML_Parser__ParserDesc_ParseDocument_S();
5343       i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_String(1);
5344       *system = (XML_UnicodeBuffer__CharArray)i0;
5345       i1 = (OOC_INT64)p;
5346       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 77149))+104);
5347       i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 77121))+56);
5348       i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 77161))+72);
5349       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 77121))+56);
5350       OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 77125)))), XML_EntityResolver__ResolverDesc_GetURI)),XML_EntityResolver__ResolverDesc_GetURI)((XML_EntityResolver__Resolver)i1, (XML_UnicodeBuffer__CharArray)(OOC_INT64)0, (XML_UnicodeBuffer__CharArray)i0, (URI__URI)i2, (void*)(OOC_INT64)baseURI, (void*)(OOC_INT64)&res);
5351       i0 = (OOC_INT64)res;
5352       i0 = i0!=(OOC_INT64)0;
5353       if (!i0) goto l32;
5354       XML_Parser__ParserDesc_ParseDocument_Err(117);
5355       i0 = (OOC_INT64)p;
5356       i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 77256))+176);
5357       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 77256))+176);
5358       i2 = (OOC_INT64)res;
5359       OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 77267)))), Msg__MsgDesc_SetMsgAttrib)),Msg__MsgDesc_SetMsgAttrib)((Msg__Msg)i0, (OOC_CHAR8*)"uri_error", 10, (Msg__Msg)i2);
5360 l32:
5361       return;
5362       ;
5363     }
5364 
5365 
5366     void XML_Parser__ParserDesc_ParseDocument_markupdecl(void) {
5367       register OOC_INT64 i0;
5368       auto void XML_Parser__ParserDesc_ParseDocument_markupdecl_elementdecl(XML_DTD__Entity currentEntity);
5369       auto void XML_Parser__ParserDesc_ParseDocument_markupdecl_AttListDecl(XML_DTD__Entity currentEntity);
5370       auto void XML_Parser__ParserDesc_ParseDocument_markupdecl_EntityDecl(XML_DTD__Entity currentEntity);
5371       auto void XML_Parser__ParserDesc_ParseDocument_markupdecl_NotationDecl(XML_DTD__Entity currentEntity);
5372 
5373         void XML_Parser__ParserDesc_ParseDocument_markupdecl_elementdecl(XML_DTD__Entity currentEntity) {
5374           register OOC_INT64 i0,i1,i2,i3,i4;
5375           XML_UnicodeBuffer__CharArray elementName;
5376           XML_DTD__CP cp;
5377           XML_DTD__ElementDecl elementDecl;
5378           XML_DTD__Declaration decl;
5379           auto XML_DTD__CP XML_Parser__ParserDesc_ParseDocument_markupdecl_elementdecl_contentspec(void);
5380 
5381             XML_DTD__CP XML_Parser__ParserDesc_ParseDocument_markupdecl_elementdecl_contentspec(void) {
5382               register OOC_INT64 i0,i1,i2;
5383               XML_DTD__Entity currentEntity;
5384               auto XML_DTD__CP XML_Parser__ParserDesc_ParseDocument_markupdecl_elementdecl_contentspec_Mixed(XML_DTD__Entity currentEntity);
5385               auto XML_DTD__CP XML_Parser__ParserDesc_ParseDocument_markupdecl_elementdecl_contentspec_children(XML_DTD__Entity currentEntity);
5386 
5387                 XML_DTD__CP XML_Parser__ParserDesc_ParseDocument_markupdecl_elementdecl_contentspec_Mixed(XML_DTD__Entity currentEntity) {
5388                   register OOC_INT64 i0,i1,i2,i3,i4,i5;
5389                   XML_DTD__CP first;
5390                   XML_DTD__CP last;
5391                   OOC_CHAR8 hasAlternative;
5392 
5393                   i0 = cpos;
5394                   i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_GetString(i0, (i0+7));
5395                   i1 = (OOC_INT64)dtd;
5396                   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 78686)))), XML_DTD__BuilderDesc_NewNameCP)),XML_DTD__BuilderDesc_NewNameCP)((XML_DTD__Builder)i1, 0, (XML_UnicodeBuffer__CharArray)i0);
5397                   i1 = cpos;
5398                   first = (XML_DTD__CP)i0;
5399                   i1 = i1+7;
5400                   cpos = i1;
5401                   last = (XML_DTD__CP)i0;
5402                   XML_Parser__ParserDesc_ParseDocument_OptS(0u);
5403                   hasAlternative = 0u;
5404                   i2 = (OOC_INT64)chars;
5405                   i2 = _check_pointer(i2, 78917);
5406                   i3 = OOC_ARRAY_LENGTH(i2, 0);
5407                   i1 = *(OOC_UINT16*)(i2+(_check_index(i1, i3, OOC_UINT32, 78917))*2);
5408                   i2 = (OOC_INT64)currentEntity;
5409                   i1 = i1==124u;
5410                   if (i1) goto l3;
5411                   i1=0u;
5412                   goto l9;
5413 l3:
5414                   i1=i0;
5415 l4_loop:
5416                   hasAlternative = 1u;
5417                   XML_Parser__ParserDesc_ParseDocument_CheckChar(124u);
5418                   XML_Parser__ParserDesc_ParseDocument_OptS(0u);
5419                   i3 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Name(0u);
5420                   i4 = (OOC_INT64)dtd;
5421                   i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 79063)))), XML_DTD__BuilderDesc_NewNameCP)),XML_DTD__BuilderDesc_NewNameCP)((XML_DTD__Builder)i4, 0, (XML_UnicodeBuffer__CharArray)i3);
5422                   XML_DTD__CPDesc_SetNext((XML_DTD__CP)i1, (XML_DTD__CP)i3);
5423                   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 79130))+8);
5424                   last = (XML_DTD__CP)i1;
5425                   XML_Parser__ParserDesc_ParseDocument_OptS(0u);
5426                   i3 = (OOC_INT64)chars;
5427                   i3 = _check_pointer(i3, 78917);
5428                   i4 = OOC_ARRAY_LENGTH(i3, 0);
5429                   i5 = cpos;
5430                   i3 = *(OOC_UINT16*)(i3+(_check_index(i5, i4, OOC_UINT32, 78917))*2);
5431                   i3 = i3==124u;
5432                   if (i3) goto l4_loop;
5433 l8:
5434                   i1=1u;
5435 l9:
5436                   XML_Parser__ParserDesc_ParseDocument_CheckCurrentEntity((XML_DTD__Entity)i2);
5437                   XML_Parser__ParserDesc_ParseDocument_CheckChar(41u);
5438                   if (i1) goto l12;
5439                   i1 = (OOC_INT64)chars;
5440                   i1 = _check_pointer(i1, 79298);
5441                   i2 = OOC_ARRAY_LENGTH(i1, 0);
5442                   i3 = cpos;
5443                   i1 = *(OOC_UINT16*)(i1+(_check_index(i3, i2, OOC_UINT32, 79298))*2);
5444                   i1 = i1==42u;
5445 
5446                   goto l14;
5447 l12:
5448                   i1=1u;
5449 l14:
5450                   if (i1) goto l16;
5451                   i1 = (OOC_INT64)dtd;
5452                   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 79450)))), XML_DTD__BuilderDesc_NewChoiceCP)),XML_DTD__BuilderDesc_NewChoiceCP)((XML_DTD__Builder)i1, 0, (XML_DTD__CP)i0);
5453                   return (XML_DTD__CP)i0;
5454                   goto l17;
5455 l16:
5456                   XML_Parser__ParserDesc_ParseDocument_CheckChar(42u);
5457                   i1 = (OOC_INT64)dtd;
5458                   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 79372)))), XML_DTD__BuilderDesc_NewChoiceCP)),XML_DTD__BuilderDesc_NewChoiceCP)((XML_DTD__Builder)i1, 2, (XML_DTD__CP)i0);
5459                   return (XML_DTD__CP)i0;
5460 l17:
5461                   _failed_function(78443); return 0;
5462                   ;
5463                 }
5464 
5465 
5466                 XML_DTD__CP XML_Parser__ParserDesc_ParseDocument_markupdecl_elementdecl_contentspec_children(XML_DTD__Entity currentEntity) {
5467                   register OOC_INT64 i0,i1;
5468                   XML_DTD__CP cp;
5469                   auto OOC_INT8 XML_Parser__ParserDesc_ParseDocument_markupdecl_elementdecl_contentspec_children_Quantifier(void);
5470                   auto XML_DTD__CP XML_Parser__ParserDesc_ParseDocument_markupdecl_elementdecl_contentspec_children_choiceseq(XML_DTD__Entity currentEntity);
5471 
5472                     OOC_INT8 XML_Parser__ParserDesc_ParseDocument_markupdecl_elementdecl_contentspec_children_Quantifier(void) {
5473                       register OOC_INT64 i0,i1,i2;
5474 
5475                       i0 = (OOC_INT64)chars;
5476                       i0 = _check_pointer(i0, 79861);
5477                       i1 = OOC_ARRAY_LENGTH(i0, 0);
5478                       i2 = cpos;
5479                       i0 = *(OOC_UINT16*)(i0+(_check_index(i2, i1, OOC_UINT32, 79861))*2);
5480                       switch (i0) {
5481                       case 42u:
5482                         XML_Parser__ParserDesc_ParseDocument_CheckChar(42u);
5483                         return 2;
5484                         goto l6;
5485                       case 43u:
5486                         XML_Parser__ParserDesc_ParseDocument_CheckChar(43u);
5487                         return 3;
5488                         goto l6;
5489                       case 63u:
5490                         XML_Parser__ParserDesc_ParseDocument_CheckChar(63u);
5491                         return 1;
5492                         goto l6;
5493                       default:
5494                         return 0;
5495                         goto l6;
5496                       }
5497 l6:
5498                       _failed_function(79728); return 0;
5499                       ;
5500                     }
5501 
5502 
5503                     XML_DTD__CP XML_Parser__ParserDesc_ParseDocument_markupdecl_elementdecl_contentspec_children_choiceseq(XML_DTD__Entity currentEntity) {
5504                       register OOC_INT64 i0,i1,i2,i3;
5505                       OOC_CHAR16 _class;
5506                       XML_DTD__CP first;
5507                       XML_DTD__CP last;
5508                       auto XML_DTD__CP XML_Parser__ParserDesc_ParseDocument_markupdecl_elementdecl_contentspec_children_choiceseq_cp(void);
5509 
5510                         XML_DTD__CP XML_Parser__ParserDesc_ParseDocument_markupdecl_elementdecl_contentspec_children_choiceseq_cp(void) {
5511                           register OOC_INT64 i0,i1,i2,i3;
5512 
5513                           i0 = (OOC_INT64)chars;
5514                           i1 = _check_pointer(i0, 80619);
5515                           i2 = OOC_ARRAY_LENGTH(i1, 0);
5516                           i3 = cpos;
5517                           i1 = *(OOC_UINT16*)(i1+(_check_index(i3, i2, OOC_UINT32, 80619))*2);
5518                           i1 = i1==40u;
5519                           if (i1) goto l7;
5520                           i0 = _check_pointer(i0, 80847);
5521                           i1 = OOC_ARRAY_LENGTH(i0, 0);
5522                           i0 = *(OOC_UINT16*)(i0+(_check_index(i3, i1, OOC_UINT32, 80847))*2);
5523                           i0 = XML_Parser__IsNameChar0(i0);
5524                           if (i0) goto l5;
5525                           XML_Parser__ParserDesc_ParseDocument_Err(110);
5526                           i0 = (OOC_INT64)dtd;
5527                           i1 = (OOC_INT64)XML_Parser__noName;
5528                           i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 81010)))), XML_DTD__BuilderDesc_NewNameCP)),XML_DTD__BuilderDesc_NewNameCP)((XML_DTD__Builder)i0, 0, (XML_UnicodeBuffer__CharArray)i1);
5529 
5530                           goto l8;
5531 l5:
5532                           i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Name(0u);
5533                           i1 = (OOC_INT64)dtd;
5534                           i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 80887)))), XML_DTD__BuilderDesc_NewNameCP)),XML_DTD__BuilderDesc_NewNameCP)((XML_DTD__Builder)i1, 0, (XML_UnicodeBuffer__CharArray)i0);
5535 
5536                           goto l8;
5537 l7:
5538                           i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_CurrentEntity();
5539                           XML_Parser__ParserDesc_ParseDocument_CheckChar(40u);
5540                           XML_Parser__ParserDesc_ParseDocument_OptS(0u);
5541                           i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_markupdecl_elementdecl_contentspec_children_choiceseq((XML_DTD__Entity)i0);
5542 
5543 l8:
5544                           i1 = XML_Parser__ParserDesc_ParseDocument_markupdecl_elementdecl_contentspec_children_Quantifier();
5545                           XML_DTD__CPDesc_SetMode((XML_DTD__CP)i0, i1);
5546                           return (XML_DTD__CP)i0;
5547                           ;
5548                         }
5549 
5550 
5551                       _class = 0u;
5552                       i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_markupdecl_elementdecl_contentspec_children_choiceseq_cp();
5553                       first = (XML_DTD__CP)i0;
5554                       XML_Parser__ParserDesc_ParseDocument_OptS(0u);
5555                       last = (XML_DTD__CP)i0;
5556 l1_loop:
5557                       i0 = (OOC_INT64)chars;
5558                       i1 = _check_pointer(i0, 81333);
5559                       i2 = OOC_ARRAY_LENGTH(i1, 0);
5560                       i3 = cpos;
5561                       i1 = *(OOC_UINT16*)(i1+(_check_index(i3, i2, OOC_UINT32, 81333))*2);
5562                       switch (i1) {
5563                       case 65534u:
5564                         XML_Parser__ParserDesc_ParseDocument_NextBlock();
5565                         goto l1_loop;
5566                       case 44u:
5567                       case 124u:
5568                         i1 = _class;
5569                         i1 = i1==0u;
5570                         if (i1) goto l6;
5571                         goto l7;
5572 l6:
5573                         i0 = _check_pointer(i0, 81508);
5574                         i1 = OOC_ARRAY_LENGTH(i0, 0);
5575                         i0 = *(OOC_UINT16*)(i0+(_check_index(i3, i1, OOC_UINT32, 81508))*2);
5576                         _class = i0;
5577 l7:
5578                         i0 = _class;
5579                         XML_Parser__ParserDesc_ParseDocument_CheckChar(i0);
5580                         XML_Parser__ParserDesc_ParseDocument_OptS(0u);
5581                         i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_markupdecl_elementdecl_contentspec_children_choiceseq_cp();
5582                         i1 = (OOC_INT64)last;
5583                         XML_DTD__CPDesc_SetNext((XML_DTD__CP)i1, (XML_DTD__CP)i0);
5584                         i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 81685))+8);
5585                         last = (XML_DTD__CP)i0;
5586                         XML_Parser__ParserDesc_ParseDocument_OptS(0u);
5587                         goto l1_loop;
5588                       default:
5589                         goto l10;
5590                       }
5591 l10:
5592                       XML_Parser__ParserDesc_ParseDocument_CheckChar(41u);
5593                       i0 = (OOC_INT64)currentEntity;
5594                       XML_Parser__ParserDesc_ParseDocument_CheckCurrentEntity((XML_DTD__Entity)i0);
5595                       i0 = _class;
5596                       i0 = i0==44u;
5597                       if (i0) goto l13;
5598                       i0 = (OOC_INT64)dtd;
5599                       i1 = (OOC_INT64)first;
5600                       i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 82096)))), XML_DTD__BuilderDesc_NewChoiceCP)),XML_DTD__BuilderDesc_NewChoiceCP)((XML_DTD__Builder)i0, 0, (XML_DTD__CP)i1);
5601                       return (XML_DTD__CP)i0;
5602                       goto l14;
5603 l13:
5604                       i0 = (OOC_INT64)dtd;
5605                       i1 = (OOC_INT64)first;
5606                       i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 82020)))), XML_DTD__BuilderDesc_NewSeqCP)),XML_DTD__BuilderDesc_NewSeqCP)((XML_DTD__Builder)i0, 0, (XML_DTD__CP)i1);
5607                       return (XML_DTD__CP)i0;
5608 l14:
5609                       _failed_function(80169); return 0;
5610                       ;
5611                     }
5612 
5613 
5614                   i0 = (OOC_INT64)currentEntity;
5615                   i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_markupdecl_elementdecl_contentspec_children_choiceseq((XML_DTD__Entity)i0);
5616                   cp = (XML_DTD__CP)i0;
5617                   i0 = XML_Parser__ParserDesc_ParseDocument_markupdecl_elementdecl_contentspec_children_Quantifier();
5618                   i1 = (OOC_INT64)cp;
5619                   XML_DTD__CPDesc_SetMode((XML_DTD__CP)i1, i0);
5620                   return (XML_DTD__CP)i1;
5621                   ;
5622                 }
5623 
5624 
5625               i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"EMPTY", 6, 1);
5626               if (i0) goto l15;
5627               i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"ANY", 4, 1);
5628               if (i0) goto l13;
5629               i0 = (OOC_INT64)chars;
5630               i0 = _check_pointer(i0, 82597);
5631               i1 = OOC_ARRAY_LENGTH(i0, 0);
5632               i2 = cpos;
5633               i0 = *(OOC_UINT16*)(i0+(_check_index(i2, i1, OOC_UINT32, 82597))*2);
5634               i0 = i0==40u;
5635               if (i0) goto l7;
5636               XML_Parser__ParserDesc_ParseDocument_Err(106);
5637               i0 = (OOC_INT64)dtd;
5638               i1 = (OOC_INT64)XML_Parser__noName;
5639               i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 82976)))), XML_DTD__BuilderDesc_NewNameCP)),XML_DTD__BuilderDesc_NewNameCP)((XML_DTD__Builder)i0, 0, (XML_UnicodeBuffer__CharArray)i1);
5640               return (XML_DTD__CP)i0;
5641               goto l16;
5642 l7:
5643               i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_CurrentEntity();
5644               currentEntity = (XML_DTD__Entity)i0;
5645               XML_Parser__ParserDesc_ParseDocument_CheckChar(40u);
5646               XML_Parser__ParserDesc_ParseDocument_OptS(0u);
5647               i1 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"#PCDATA", 8, 1);
5648               if (i1) goto l10;
5649               i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_markupdecl_elementdecl_contentspec_children((XML_DTD__Entity)i0);
5650               return (XML_DTD__CP)i0;
5651               goto l16;
5652 l10:
5653               i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_markupdecl_elementdecl_contentspec_Mixed((XML_DTD__Entity)i0);
5654               return (XML_DTD__CP)i0;
5655               goto l16;
5656 l13:
5657               i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Name(0u);
5658               i1 = (OOC_INT64)dtd;
5659               i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 82536)))), XML_DTD__BuilderDesc_NewNameCP)),XML_DTD__BuilderDesc_NewNameCP)((XML_DTD__Builder)i1, 0, (XML_UnicodeBuffer__CharArray)i0);
5660               return (XML_DTD__CP)i0;
5661               goto l16;
5662 l15:
5663               i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Name(0u);
5664               i1 = (OOC_INT64)dtd;
5665               i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 82417)))), XML_DTD__BuilderDesc_NewNameCP)),XML_DTD__BuilderDesc_NewNameCP)((XML_DTD__Builder)i1, 0, (XML_UnicodeBuffer__CharArray)i0);
5666               return (XML_DTD__CP)i0;
5667 l16:
5668               _failed_function(78320); return 0;
5669               ;
5670             }
5671 
5672 
5673           i0 = cpos;
5674           cpos = (i0+9);
5675           XML_Parser__ParserDesc_ParseDocument_S();
5676           i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Name(0u);
5677           elementName = (XML_UnicodeBuffer__CharArray)i0;
5678           XML_Parser__ParserDesc_ParseDocument_S();
5679           i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_markupdecl_elementdecl_contentspec();
5680           cp = (XML_DTD__CP)i0;
5681           XML_Parser__ParserDesc_ParseDocument_OptS(0u);
5682           i1 = (OOC_INT64)currentEntity;
5683           i2 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 83314)))), XML_DTD__EntityDesc_IsDocumentEntity)),XML_DTD__EntityDesc_IsDocumentEntity)((XML_DTD__Entity)i1);
5684           i3 = (OOC_INT64)dtd;
5685           i4 = (OOC_INT64)elementName;
5686           i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 83265)))), XML_DTD__BuilderDesc_NewElementDecl)),XML_DTD__BuilderDesc_NewElementDecl)((XML_DTD__Builder)i3, (XML_UnicodeBuffer__CharArray)i4, (XML_DTD__CP)i0, (!i2));
5687           elementDecl = (XML_DTD__ElementDecl)i0;
5688           i2 = (OOC_INT64)dtd;
5689           i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 83352))+24);
5690           i0 = XML_DTD__NamespaceDesc_Add((XML_DTD__Namespace)i2, (XML_DTD__Declaration)i0);
5691           i0 = !i0;
5692           if (!i0) goto l3;
5693           i0 = (OOC_INT64)dtd;
5694           i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 83416))+24);
5695           i0 = (OOC_INT64)XML_DTD__NamespaceDesc_Get((XML_DTD__Namespace)i0, (XML_UnicodeBuffer__CharArray)i4);
5696           decl = (XML_DTD__Declaration)i0;
5697           XML_DTD__ElementDeclDesc_SetMultipleDecl((XML_DTD__ElementDecl)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 83474)))), &_td_XML_DTD__ElementDeclDesc, 83474)));
5698 l3:
5699           XML_Parser__ParserDesc_ParseDocument_CheckCurrentEntity((XML_DTD__Entity)i1);
5700           XML_Parser__ParserDesc_ParseDocument_CheckChar(62u);
5701           return;
5702           ;
5703         }
5704 
5705 
5706         void XML_Parser__ParserDesc_ParseDocument_markupdecl_AttListDecl(XML_DTD__Entity currentEntity) {
5707           register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7;
5708           XML_UnicodeBuffer__CharArray elementName;
5709           XML_UnicodeBuffer__CharArray attrName;
5710           XML_DTD__Enumeration attrEnumeration;
5711           OOC_INT8 attrType;
5712           XML_DTD__AttValue defaultValue;
5713           OOC_INT8 _default;
5714           XML_DTD__AttrDecl attrDecl;
5715           auto void XML_Parser__ParserDesc_ParseDocument_markupdecl_AttListDecl_AttType(OOC_INT8 *attrType, XML_DTD__Enumeration *_enum);
5716           auto void XML_Parser__ParserDesc_ParseDocument_markupdecl_AttListDecl_DefaultDecl(OOC_INT8 attrType, OOC_INT8 *_default, XML_DTD__AttValue *defaultValue);
5717 
5718             void XML_Parser__ParserDesc_ParseDocument_markupdecl_AttListDecl_AttType(OOC_INT8 *attrType, XML_DTD__Enumeration *_enum) {
5719               register OOC_INT64 i0,i1,i2;
5720               auto XML_DTD__Enumeration XML_Parser__ParserDesc_ParseDocument_markupdecl_AttListDecl_AttType_Enumeration(OOC_INT8 attrType);
5721 
5722                 XML_DTD__Enumeration XML_Parser__ParserDesc_ParseDocument_markupdecl_AttListDecl_AttType_Enumeration(OOC_INT8 attrType) {
5723                   register OOC_INT64 i0,i1,i2,i3;
5724 
5725                   i0 = (OOC_INT64)dtd;
5726                   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 84290)))), XML_DTD__BuilderDesc_NewEnumeration)),XML_DTD__BuilderDesc_NewEnumeration)((XML_DTD__Builder)i0);
5727                   *_enum = (XML_DTD__Enumeration)i0;
5728                   XML_Parser__ParserDesc_ParseDocument_CheckChar(40u);
5729                   i0 = attrType;
5730 l1_loop:
5731                   XML_Parser__ParserDesc_ParseDocument_OptS(0u);
5732                   switch (i0) {
5733                   case 7:
5734                     i1 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Name(1u);
5735                     i2 = (OOC_INT64)*_enum;
5736                     XML_DTD__EnumerationDesc_Append((XML_DTD__Enumeration)i2, (XML_UnicodeBuffer__CharArray)i1);
5737                     goto l6;
5738                   case 8:
5739                     i1 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Nmtoken(0u, 0u);
5740                     i2 = (OOC_INT64)*_enum;
5741                     XML_DTD__EnumerationDesc_Append((XML_DTD__Enumeration)i2, (XML_UnicodeBuffer__CharArray)i1);
5742                     goto l6;
5743                   default:
5744                     _failed_case(i0, 84398);
5745                     goto l6;
5746                   }
5747 l6:
5748                   XML_Parser__ParserDesc_ParseDocument_OptS(0u);
5749                   i1 = (OOC_INT64)chars;
5750                   i1 = _check_pointer(i1, 84652);
5751                   i2 = OOC_ARRAY_LENGTH(i1, 0);
5752                   i3 = cpos;
5753                   i1 = *(OOC_UINT16*)(i1+(_check_index(i3, i2, OOC_UINT32, 84652))*2);
5754                   i1 = i1==124u;
5755                   if (!i1) goto l11;
5756                   XML_Parser__ParserDesc_ParseDocument_CheckChar(124u);
5757                   goto l1_loop;
5758 l11:
5759                   XML_Parser__ParserDesc_ParseDocument_CheckChar(41u);
5760                   i0 = (OOC_INT64)*_enum;
5761                   return (XML_DTD__Enumeration)i0;
5762                   ;
5763                 }
5764 
5765 
5766               *_enum = (XML_DTD__Enumeration)(OOC_INT64)0;
5767               i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"CDATA", 6, 1);
5768               if (i0) goto l43;
5769               i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"ID", 3, 1);
5770               if (i0) goto l41;
5771               i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"IDREF", 6, 1);
5772               if (i0) goto l39;
5773               i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"IDREFS", 7, 1);
5774               if (i0) goto l37;
5775               i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"ENTITY", 7, 1);
5776               if (i0) goto l35;
5777               i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"ENTITIES", 9, 1);
5778               if (i0) goto l33;
5779               i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"NMTOKEN", 8, 1);
5780               if (i0) goto l31;
5781               i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"NMTOKENS", 9, 1);
5782               if (i0) goto l29;
5783               i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"NOTATION", 9, 1);
5784               if (i0) goto l19;
5785               i0 = (OOC_INT64)chars;
5786               i0 = _check_pointer(i0, 85990);
5787               i1 = OOC_ARRAY_LENGTH(i0, 0);
5788               i2 = cpos;
5789               i0 = *(OOC_UINT16*)(i0+(_check_index(i2, i1, OOC_UINT32, 85990))*2);
5790               i0 = i0==40u;
5791 
5792               goto l21;
5793 l19:
5794               i0=1u;
5795 l21:
5796               if (i0) goto l23;
5797               XML_Parser__ParserDesc_ParseDocument_Err(107);
5798               XML_Parser__ParserDesc_ParseDocument_NextChar();
5799               *attrType = 9;
5800               goto l44;
5801 l23:
5802               i0 = (OOC_INT64)chars;
5803               i0 = _check_pointer(i0, 86030);
5804               i1 = OOC_ARRAY_LENGTH(i0, 0);
5805               i2 = cpos;
5806               i0 = *(OOC_UINT16*)(i0+(_check_index(i2, i1, OOC_UINT32, 86030))*2);
5807               i0 = i0==40u;
5808               if (i0) goto l26;
5809               *attrType = 7;
5810               cpos = (i2+8);
5811               XML_Parser__ParserDesc_ParseDocument_S();
5812               i0=7;
5813               goto l27;
5814 l26:
5815               *attrType = 8;
5816               i0=8;
5817 l27:
5818               i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_markupdecl_AttListDecl_AttType_Enumeration(i0);
5819               *_enum = (XML_DTD__Enumeration)i0;
5820               goto l44;
5821 l29:
5822               i0 = cpos;
5823               cpos = (i0+8);
5824               *attrType = 6;
5825               goto l44;
5826 l31:
5827               i0 = cpos;
5828               cpos = (i0+7);
5829               *attrType = 5;
5830               goto l44;
5831 l33:
5832               i0 = cpos;
5833               cpos = (i0+8);
5834               *attrType = 4;
5835               goto l44;
5836 l35:
5837               i0 = cpos;
5838               cpos = (i0+6);
5839               *attrType = 3;
5840               goto l44;
5841 l37:
5842               i0 = cpos;
5843               cpos = (i0+6);
5844               *attrType = 2;
5845               goto l44;
5846 l39:
5847               i0 = cpos;
5848               cpos = (i0+5);
5849               *attrType = 1;
5850               goto l44;
5851 l41:
5852               i0 = cpos;
5853               cpos = (i0+2);
5854               *attrType = 0;
5855               goto l44;
5856 l43:
5857               i0 = cpos;
5858               cpos = (i0+5);
5859               *attrType = 9;
5860 l44:
5861               return;
5862               ;
5863             }
5864 
5865 
5866             void XML_Parser__ParserDesc_ParseDocument_markupdecl_AttListDecl_DefaultDecl(OOC_INT8 attrType, OOC_INT8 *_default, XML_DTD__AttValue *defaultValue) {
5867               register OOC_INT64 i0;
5868 
5869               *defaultValue = (XML_DTD__AttValue)(OOC_INT64)0;
5870               i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"#REQUIRED", 10, 1);
5871               if (i0) goto l11;
5872               i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"#IMPLIED", 9, 1);
5873               if (i0) goto l9;
5874               i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"#FIXED", 7, 1);
5875               if (i0) goto l7;
5876               *_default = 2;
5877               goto l8;
5878 l7:
5879               i0 = cpos;
5880               cpos = (i0+6);
5881               XML_Parser__ParserDesc_ParseDocument_S();
5882               *_default = 3;
5883 l8:
5884               i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_AttValue(1u);
5885               *defaultValue = (XML_DTD__AttValue)i0;
5886               goto l12;
5887 l9:
5888               i0 = cpos;
5889               cpos = (i0+8);
5890               *_default = 1;
5891               goto l12;
5892 l11:
5893               i0 = cpos;
5894               cpos = (i0+9);
5895               *_default = 0;
5896 l12:
5897               return;
5898               ;
5899             }
5900 
5901 
5902           i0 = cpos;
5903           cpos = (i0+9);
5904           XML_Parser__ParserDesc_ParseDocument_S();
5905           i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Name(0u);
5906           elementName = (XML_UnicodeBuffer__CharArray)i0;
5907 l1_loop:
5908           i0 = (OOC_INT64)chars;
5909           i0 = _check_pointer(i0, 87459);
5910           i1 = OOC_ARRAY_LENGTH(i0, 0);
5911           i2 = cpos;
5912           i0 = *(OOC_UINT16*)(i0+(_check_index(i2, i1, OOC_UINT32, 87459))*2);
5913           i0 = i0!=62u;
5914           if (!i0) goto l4;
5915           XML_Parser__ParserDesc_ParseDocument_S();
5916 l4:
5917           i0 = (OOC_INT64)chars;
5918           i1 = _check_pointer(i0, 87526);
5919           i2 = OOC_ARRAY_LENGTH(i1, 0);
5920           i3 = cpos;
5921           i1 = *(OOC_UINT16*)(i1+(_check_index(i3, i2, OOC_UINT32, 87526))*2);
5922           i1 = i1==62u;
5923           if (i1) goto l7;
5924           i0 = _check_pointer(i0, 87549);
5925           i1 = OOC_ARRAY_LENGTH(i0, 0);
5926           i0 = *(OOC_UINT16*)(i0+(_check_index(i3, i1, OOC_UINT32, 87549))*2);
5927           i0 = i0==65535u;
5928 
5929           goto l9;
5930 l7:
5931           i0=1u;
5932 l9:
5933           if (i0) goto l15;
5934           i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Name(0u);
5935           attrName = (XML_UnicodeBuffer__CharArray)i0;
5936           XML_Parser__ParserDesc_ParseDocument_S();
5937           XML_Parser__ParserDesc_ParseDocument_markupdecl_AttListDecl_AttType((void*)(OOC_INT64)&attrType, (void*)(OOC_INT64)&attrEnumeration);
5938           XML_Parser__ParserDesc_ParseDocument_S();
5939           i0 = attrType;
5940           XML_Parser__ParserDesc_ParseDocument_markupdecl_AttListDecl_DefaultDecl(i0, (void*)(OOC_INT64)&_default, (void*)(OOC_INT64)&defaultValue);
5941           i0 = (OOC_INT64)p;
5942           i0 = *(OOC_UINT8*)((_check_pointer(i0, 87794))+115);
5943           if (!i0) goto l1_loop;
5944           i0 = (OOC_INT64)currentEntity;
5945           i0 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 87978)))), XML_DTD__EntityDesc_IsDocumentEntity)),XML_DTD__EntityDesc_IsDocumentEntity)((XML_DTD__Entity)i0);
5946           i1 = (OOC_INT64)dtd;
5947           i2 = (OOC_INT64)defaultValue;
5948           i3 = _default;
5949           i4 = (OOC_INT64)attrEnumeration;
5950           i5 = attrType;
5951           i6 = (OOC_INT64)attrName;
5952           i7 = (OOC_INT64)elementName;
5953           i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 87848)))), XML_DTD__BuilderDesc_NewAttrDecl)),XML_DTD__BuilderDesc_NewAttrDecl)((XML_DTD__Builder)i1, (XML_UnicodeBuffer__CharArray)i7, (XML_UnicodeBuffer__CharArray)i6, i5, (XML_DTD__Enumeration)i4, i3, (XML_DTD__AttValue)i2, (!i0));
5954           attrDecl = (XML_DTD__AttrDecl)i0;
5955           i1 = (OOC_INT64)dtd;
5956           OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 88016)))), XML_DTD__BuilderDesc_AddAttribute)),XML_DTD__BuilderDesc_AddAttribute)((XML_DTD__Builder)i1, (XML_DTD__AttrDecl)i0);
5957           goto l1_loop;
5958 l15:
5959           i0 = (OOC_INT64)currentEntity;
5960           XML_Parser__ParserDesc_ParseDocument_CheckCurrentEntity((XML_DTD__Entity)i0);
5961           XML_Parser__ParserDesc_ParseDocument_CheckChar(62u);
5962           return;
5963           ;
5964         }
5965 
5966 
5967         void XML_Parser__ParserDesc_ParseDocument_markupdecl_EntityDecl(XML_DTD__Entity currentEntity) {
5968           register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8;
5969           OOC_CHAR8 isPEntity;
5970           XML_UnicodeBuffer__CharArray name;
5971           XML_UnicodeBuffer__CharArray _public;
5972           XML_UnicodeBuffer__CharArray system;
5973           XML_UnicodeBuffer__CharArray ndata;
5974           XML_UnicodeBuffer__CharArray entityValue;
5975           OOC_INT8 entityType;
5976           XML_DTD__Entity entity;
5977           URI__URI baseURI;
5978           auto XML_UnicodeBuffer__CharArray XML_Parser__ParserDesc_ParseDocument_markupdecl_EntityDecl_EntityValue(OOC_CHAR8 isPEntity);
5979 
5980             XML_UnicodeBuffer__CharArray XML_Parser__ParserDesc_ParseDocument_markupdecl_EntityDecl_EntityValue(OOC_CHAR8 isPEntity) {
5981               register OOC_INT64 i0,i1,i2,i3,i4,i5,i6;
5982               XML_UnicodeBuffer__CharArray string;
5983               struct XML_Locator__Position pos;
5984               OOC_INT32 startLevel;
5985               OOC_CHAR16 endChar;
5986               OOC_INT32 storedPos;
5987               XML_DTD__Fragment fragment;
5988               auto void XML_Parser__ParserDesc_ParseDocument_markupdecl_EntityDecl_EntityValue_Copy(OOC_INT32 start, OOC_INT32 end);
5989 
5990                 void XML_Parser__ParserDesc_ParseDocument_markupdecl_EntityDecl_EntityValue_Copy(OOC_INT32 start, OOC_INT32 end) {
5991                   register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7;
5992 
5993                   i0 = start;
5994                   i1 = end;
5995                   i2 = i0!=i1;
5996                   if (!i2) goto l8;
5997                   i2 = cdelta;
5998                   i3 = (OOC_INT64)chars;
5999                   i2 = (i2*(-1))+i0;
6000 
6001 l3_loop:
6002                   i4 = _check_pointer(i3, 88971);
6003                   i5 = OOC_ARRAY_LENGTH(i4, 0);
6004                   i6 = _check_pointer(i3, 88994);
6005                   i7 = OOC_ARRAY_LENGTH(i6, 0);
6006                   i6 = *(OOC_UINT16*)(i6+(_check_index(i0, i7, OOC_UINT32, 88994))*2);
6007                   *(OOC_UINT16*)(i4+(_check_index(i2, i5, OOC_UINT32, 88971))*2) = i6;
6008                   i0 = i0+1;
6009                   start = i0;
6010                   i2 = i2+1;
6011                   i4 = i0!=i1;
6012                   if (i4) goto l3_loop;
6013 l8:
6014                   return;
6015                   ;
6016                 }
6017 
6018 
6019               i0 = (OOC_INT64)XML_Parser__noName;
6020               string = (XML_UnicodeBuffer__CharArray)i0;
6021               i1 = (OOC_INT64)chars;
6022               i2 = _check_pointer(i1, 89127);
6023               i3 = OOC_ARRAY_LENGTH(i2, 0);
6024               i4 = cpos;
6025               i2 = *(OOC_UINT16*)(i2+(_check_index(i4, i3, OOC_UINT32, 89127))*2);
6026               i2 = i2==39u;
6027               if (i2) goto l3;
6028               i1 = _check_pointer(i1, 89150);
6029               i2 = OOC_ARRAY_LENGTH(i1, 0);
6030               i1 = *(OOC_UINT16*)(i1+(_check_index(i4, i2, OOC_UINT32, 89150))*2);
6031               i1 = i1==34u;
6032 
6033               goto l5;
6034 l3:
6035               i1=1u;
6036 l5:
6037               if (i1) goto l7;
6038               XML_Parser__ParserDesc_ParseDocument_Err(109);
6039               XML_Parser__ParserDesc_ParseDocument_NextChar();
6040 
6041               goto l32;
6042 l7:
6043               i0 = (OOC_INT64)p;
6044               i1 = (OOC_INT64)dtd;
6045               i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 89435)))), XML_DTD__BuilderDesc_NewAttValue)),XML_DTD__BuilderDesc_NewAttValue)((XML_DTD__Builder)i1);
6046               *(OOC_INT64*)((_check_pointer(i0, 89411))+128) = i1;
6047               i0 = (OOC_INT64)&_td_XML_Locator__Position;
6048               XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(OOC_INT64)&pos, (RT0__Struct)i0);
6049               i1 = (OOC_INT64)p;
6050               i1 = *(OOC_INT32*)((_check_pointer(i1, 89525))+160);
6051               startLevel = i1;
6052               i1 = (OOC_INT64)chars;
6053               i1 = _check_pointer(i1, 89567);
6054               i2 = OOC_ARRAY_LENGTH(i1, 0);
6055               i3 = cpos;
6056               i1 = *(OOC_UINT16*)(i1+(_check_index(i3, i2, OOC_UINT32, 89567))*2);
6057               endChar = i1;
6058               i1 = i3+1;
6059               cpos = i1;
6060               cstart = i1;
6061               cdelta = 0;
6062 l8_loop:
6063               i1 = (OOC_INT64)chars;
6064               i2 = _check_pointer(i1, 89681);
6065               i3 = OOC_ARRAY_LENGTH(i2, 0);
6066               i4 = cpos;
6067               i2 = *(OOC_UINT16*)(i2+(_check_index(i4, i3, OOC_UINT32, 89681))*2);
6068               switch (i2) {
6069               case 0u ... 31u:
6070               case 65534u:
6071                 XML_Parser__ParserDesc_ParseDocument_ControlChar(10u);
6072                 goto l8_loop;
6073               case 65535u:
6074                 XML_Parser__ParserDesc_ParseDocument_ErrPos(6, (void*)(OOC_INT64)&pos, (RT0__Struct)i0);
6075                 i0 = (OOC_INT64)dtd;
6076                 i1 = cpos;
6077                 i2 = cdelta;
6078                 i3 = cstart;
6079                 i4 = (OOC_INT64)chars;
6080                 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 89902)))), XML_DTD__BuilderDesc_NewCharacters)),XML_DTD__BuilderDesc_NewCharacters)((XML_DTD__Builder)i0, (XML_UnicodeBuffer__CharArray)i4, i3, (i1-i2), 1u);
6081                 i1 = (OOC_INT64)p;
6082                 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 89872))+128);
6083                 XML_DTD__AttValueDesc_Append((XML_DTD__AttValue)i1, (XML_DTD__Fragment)i0);
6084                 goto l31;
6085               case 37u:
6086                 i2 = cdelta;
6087                 i2 = i4-i2;
6088                 i3 = cstart;
6089                 i4 = i3!=i2;
6090                 if (i4) goto l14;
6091                 goto l15;
6092 l14:
6093                 i4 = (OOC_INT64)dtd;
6094                 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 90209)))), XML_DTD__BuilderDesc_NewCharacters)),XML_DTD__BuilderDesc_NewCharacters)((XML_DTD__Builder)i4, (XML_UnicodeBuffer__CharArray)i1, i3, i2, 1u);
6095                 i2 = (OOC_INT64)p;
6096                 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 90179))+128);
6097                 XML_DTD__AttValueDesc_Append((XML_DTD__AttValue)i2, (XML_DTD__Fragment)i1);
6098 l15:
6099                 XML_Parser__ParserDesc_ParseDocument_PEReference(0u);
6100                 goto l8_loop;
6101               case 38u:
6102                 i1 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"&#", 3, 0);
6103                 if (!i1) goto l18;
6104                 goto l19;
6105 l18:
6106                 i1 = (OOC_INT64)p;
6107                 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 90750))+64);
6108                 i1 = *(OOC_INT32*)((_check_pointer(i1, 90754))+48);
6109                 i2 = cpos;
6110                 i1 = i2+i1;
6111                 storedPos = i1;
6112                 i2 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_EntityRef(0u, 1u);
6113                 fragment = (XML_DTD__Fragment)i2;
6114                 i2 = (OOC_INT64)p;
6115                 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 90862))+64);
6116                 i2 = *(OOC_INT32*)((_check_pointer(i2, 90866))+48);
6117                 i3 = cpos;
6118                 XML_Parser__ParserDesc_ParseDocument_markupdecl_EntityDecl_EntityValue_Copy((i1-i2), i3);
6119                 goto l8_loop;
6120 l19:
6121                 XML_Parser__ParserDesc_ParseDocument_CharRef();
6122                 goto l8_loop;
6123               default:
6124                 i2 = _check_pointer(i1, 90954);
6125                 i3 = OOC_ARRAY_LENGTH(i2, 0);
6126                 i2 = *(OOC_UINT16*)(i2+(_check_index(i4, i3, OOC_UINT32, 90954))*2);
6127                 i3 = endChar;
6128                 i2 = i2==i3;
6129                 if (i2) goto l24;
6130                 i2=0u;
6131                 goto l26;
6132 l24:
6133                 i2 = (OOC_INT64)p;
6134                 i2 = *(OOC_INT32*)((_check_pointer(i2, 90976))+160);
6135                 i5 = startLevel;
6136                 i2 = i2==i5;
6137 
6138 l26:
6139                 if (i2) goto l29;
6140                 i2 = _check_pointer(i1, 91355);
6141                 i3 = cdelta;
6142                 i5 = OOC_ARRAY_LENGTH(i2, 0);
6143                 i1 = _check_pointer(i1, 91377);
6144                 i6 = OOC_ARRAY_LENGTH(i1, 0);
6145                 i1 = *(OOC_UINT16*)(i1+(_check_index(i4, i6, OOC_UINT32, 91377))*2);
6146                 *(OOC_UINT16*)(i2+(_check_index((i4-i3), i5, OOC_UINT32, 91355))*2) = i1;
6147                 cpos = (i4+1);
6148                 goto l8_loop;
6149 l29:
6150                 i0 = (OOC_INT64)dtd;
6151                 i2 = cdelta;
6152                 i5 = cstart;
6153                 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 91188)))), XML_DTD__BuilderDesc_NewCharacters)),XML_DTD__BuilderDesc_NewCharacters)((XML_DTD__Builder)i0, (XML_UnicodeBuffer__CharArray)i1, i5, (i4-i2), 1u);
6154                 i1 = (OOC_INT64)p;
6155                 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 91158))+128);
6156                 XML_DTD__AttValueDesc_Append((XML_DTD__AttValue)i1, (XML_DTD__Fragment)i0);
6157                 XML_Parser__ParserDesc_ParseDocument_CheckChar(i3);
6158                 goto l31;
6159               }
6160 l31:
6161               i0 = (OOC_INT64)p;
6162               i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 91474))+128);
6163               i0 = (OOC_INT64)XML_DTD__AttValueDesc_Flatten((XML_DTD__AttValue)i0, (XML_DTD__AttrDecl)(OOC_INT64)0);
6164               string = (XML_UnicodeBuffer__CharArray)i0;
6165               i1 = (OOC_INT64)p;
6166               *(OOC_INT64*)((_check_pointer(i1, 91521))+128) = (OOC_INT64)0;
6167 
6168 l32:
6169               return (XML_UnicodeBuffer__CharArray)i0;
6170               ;
6171             }
6172 
6173 
6174           i0 = cpos;
6175           cpos = (i0+8);
6176           XML_Parser__ParserDesc_ParseDocument_SnoPE();
6177           i0 = (OOC_INT64)chars;
6178           i0 = _check_pointer(i0, 91790);
6179           i1 = OOC_ARRAY_LENGTH(i0, 0);
6180           i2 = cpos;
6181           i0 = *(OOC_UINT16*)(i0+(_check_index(i2, i1, OOC_UINT32, 91790))*2);
6182           i0 = i0==37u;
6183           isPEntity = i0;
6184           if (!i0) goto l3;
6185           XML_Parser__ParserDesc_ParseDocument_CheckChar(37u);
6186           XML_Parser__ParserDesc_ParseDocument_S();
6187 l3:
6188           i1 = (OOC_INT64)p;
6189           i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 91907))+8);
6190           i2 = _check_pointer(i2, 91910);
6191           i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 91907))+8);
6192           i2 = (OOC_INT64)&_td_XML_Locator__Position;
6193           XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(_check_pointer(i1, 91910)), (RT0__Struct)i2);
6194           i1 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Name(1u);
6195           name = (XML_UnicodeBuffer__CharArray)i1;
6196           XML_Parser__ParserDesc_ParseDocument_S();
6197           i3 = (OOC_INT64)chars;
6198           i4 = _check_pointer(i3, 91971);
6199           i5 = OOC_ARRAY_LENGTH(i4, 0);
6200           i6 = cpos;
6201           i4 = *(OOC_UINT16*)(i4+(_check_index(i6, i5, OOC_UINT32, 91971))*2);
6202           i4 = i4==39u;
6203           if (i4) goto l6;
6204           i3 = _check_pointer(i3, 91994);
6205           i4 = OOC_ARRAY_LENGTH(i3, 0);
6206           i3 = *(OOC_UINT16*)(i3+(_check_index(i6, i4, OOC_UINT32, 91994))*2);
6207           i3 = i3==34u;
6208 
6209           goto l8;
6210 l6:
6211           i3=1u;
6212 l8:
6213           if (i3) goto l26;
6214           entityValue = (XML_UnicodeBuffer__CharArray)(OOC_INT64)0;
6215           if (i0) goto l12;
6216           entityType = 2;
6217           i2=2;
6218           goto l13;
6219 l12:
6220           entityType = 3;
6221           i2=3;
6222 l13:
6223           XML_Parser__ParserDesc_ParseDocument_ExternalID(0u, (void*)(OOC_INT64)&_public, (void*)(OOC_INT64)&system, (void*)(OOC_INT64)&baseURI);
6224           ndata = (XML_UnicodeBuffer__CharArray)(OOC_INT64)0;
6225           i3 = !i0;
6226           if (i3) goto l16;
6227           i3=0u;
6228           goto l18;
6229 l16:
6230           i3 = XML_Parser__ParserDesc_ParseDocument_LookingAtS();
6231 
6232 l18:
6233           if (i3) goto l20;
6234           i3=i2;i2=(OOC_INT64)0;
6235           goto l25;
6236 l20:
6237           XML_Parser__ParserDesc_ParseDocument_S();
6238           i3 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"NDATA", 6, 1);
6239           if (i3) goto l23;
6240           i3=i2;i2=(OOC_INT64)0;
6241           goto l25;
6242 l23:
6243           i2 = cpos;
6244           entityType = 4;
6245           cpos = (i2+5);
6246           XML_Parser__ParserDesc_ParseDocument_S();
6247           i2 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Name(0u);
6248           ndata = (XML_UnicodeBuffer__CharArray)i2;
6249           i3=4;
6250 l25:
6251           i4 = (OOC_INT64)currentEntity;
6252           i4 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 93317)))), XML_DTD__EntityDesc_IsDocumentEntity)),XML_DTD__EntityDesc_IsDocumentEntity)((XML_DTD__Entity)i4);
6253           i5 = (OOC_INT64)dtd;
6254           i6 = (OOC_INT64)baseURI;
6255           i7 = (OOC_INT64)system;
6256           i8 = (OOC_INT64)_public;
6257           i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i5, 93203)))), XML_DTD__BuilderDesc_NewExternalEntity)),XML_DTD__BuilderDesc_NewExternalEntity)((XML_DTD__Builder)i5, (XML_UnicodeBuffer__CharArray)i1, i3, (XML_UnicodeBuffer__CharArray)i8, (XML_UnicodeBuffer__CharArray)i7, (XML_UnicodeBuffer__CharArray)i2, (URI__URI)i6, (!i4));
6258           entity = (XML_DTD__Entity)i1;
6259 
6260           goto l38;
6261 l26:
6262           _public = (XML_UnicodeBuffer__CharArray)(OOC_INT64)0;
6263           system = (XML_UnicodeBuffer__CharArray)(OOC_INT64)0;
6264           ndata = (XML_UnicodeBuffer__CharArray)(OOC_INT64)0;
6265           i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_markupdecl_EntityDecl_EntityValue(i0);
6266           entityValue = (XML_UnicodeBuffer__CharArray)i0;
6267           i1 = isPEntity;
6268           if (i1) goto l29;
6269           entityType = 0;
6270           i3=0;
6271           goto l30;
6272 l29:
6273           entityType = 1;
6274           i3=1;
6275 l30:
6276           i4 = (OOC_INT64)name;
6277           i5 = !i1;
6278           if (i5) goto l33;
6279           i5=0u;
6280           goto l35;
6281 l33:
6282           i5 = (OOC_INT64)dtd;
6283           i5 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i5, 92312)))), XML_DTD__BuilderDesc_IsValidEntityDecl)),XML_DTD__BuilderDesc_IsValidEntityDecl)((XML_DTD__Builder)i5, (XML_UnicodeBuffer__CharArray)i4, (XML_UnicodeBuffer__CharArray)i0);
6284           i5 = !i5;
6285 
6286 l35:
6287           if (!i5) goto l37;
6288           i5 = (OOC_INT64)p;
6289           i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 92403))+8);
6290           i6 = _check_pointer(i6, 92406);
6291           i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 92403))+8);
6292           XML_Parser__ParserDesc_ParseDocument_ErrPos(118, (void*)(_check_pointer(i5, 92406)), (RT0__Struct)i2);
6293 l37:
6294           i2 = (OOC_INT64)currentEntity;
6295           i2 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 92557)))), XML_DTD__EntityDesc_IsDocumentEntity)),XML_DTD__EntityDesc_IsDocumentEntity)((XML_DTD__Entity)i2);
6296           i5 = (OOC_INT64)dtd;
6297           i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i5, 92447)))), XML_DTD__BuilderDesc_NewInternalEntity)),XML_DTD__BuilderDesc_NewInternalEntity)((XML_DTD__Builder)i5, (XML_UnicodeBuffer__CharArray)i4, i3, (XML_UnicodeBuffer__CharArray)i0, (!i2));
6298           entity = (XML_DTD__Entity)i0;
6299           {register OOC_INT64 h0=i0;i0=i1;i1=h0;}
6300 l38:
6301           XML_Parser__ParserDesc_ParseDocument_OptS(0u);
6302           i2 = (OOC_INT64)currentEntity;
6303           XML_Parser__ParserDesc_ParseDocument_CheckCurrentEntity((XML_DTD__Entity)i2);
6304           XML_Parser__ParserDesc_ParseDocument_CheckChar(62u);
6305           i2 = (OOC_INT64)p;
6306           i2 = *(OOC_UINT8*)((_check_pointer(i2, 93456))+115);
6307           if (!i2) goto l48;
6308 l41:
6309           if (i0) goto l46;
6310           i0 = (OOC_INT64)dtd;
6311           i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 93582))+8);
6312           i0 = XML_DTD__NamespaceDesc_Add((XML_DTD__Namespace)i0, (XML_DTD__Declaration)i1);
6313           if (!i0) goto l48;
6314           i0 = (OOC_INT64)p;
6315           i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 93628))+80);
6316           i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 93628))+80);
6317           OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 93637)))), XML_Builder__BuilderDesc_EntityDecl)),XML_Builder__BuilderDesc_EntityDecl)((XML_Builder__Builder)i0, (XML_DTD__Entity)i1);
6318           goto l48;
6319 l46:
6320           i0 = (OOC_INT64)dtd;
6321           i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 93535))+16);
6322           i0 = XML_DTD__NamespaceDesc_Add((XML_DTD__Namespace)i0, (XML_DTD__Declaration)i1);
6323 l48:
6324           return;
6325           ;
6326         }
6327 
6328 
6329         void XML_Parser__ParserDesc_ParseDocument_markupdecl_NotationDecl(XML_DTD__Entity currentEntity) {
6330           register OOC_INT64 i0,i1,i2,i3,i4;
6331           XML_UnicodeBuffer__CharArray name;
6332           URI__URI baseURI;
6333           XML_UnicodeBuffer__CharArray system;
6334           XML_UnicodeBuffer__CharArray _public;
6335 
6336           i0 = cpos;
6337           cpos = (i0+10);
6338           XML_Parser__ParserDesc_ParseDocument_S();
6339           i0 = (OOC_INT64)p;
6340           i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 94040))+8);
6341           i1 = _check_pointer(i1, 94043);
6342           i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 94040))+8);
6343           XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(_check_pointer(i0, 94043)), (RT0__Struct)((OOC_INT64)&_td_XML_Locator__Position));
6344           i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Name(1u);
6345           name = (XML_UnicodeBuffer__CharArray)i0;
6346           XML_Parser__ParserDesc_ParseDocument_S();
6347           XML_Parser__ParserDesc_ParseDocument_ExternalID(1u, (void*)(OOC_INT64)&_public, (void*)(OOC_INT64)&system, (void*)(OOC_INT64)&baseURI);
6348           XML_Parser__ParserDesc_ParseDocument_OptS(0u);
6349           i1 = (OOC_INT64)dtd;
6350           i2 = (OOC_INT64)_public;
6351           i3 = (OOC_INT64)system;
6352           i4 = (OOC_INT64)baseURI;
6353           i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 94364)))), XML_DTD__BuilderDesc_NewNotation)),XML_DTD__BuilderDesc_NewNotation)((XML_DTD__Builder)i1, (XML_UnicodeBuffer__CharArray)i0, (XML_UnicodeBuffer__CharArray)i2, (XML_UnicodeBuffer__CharArray)i3, (URI__URI)i4);
6354           i1 = (OOC_INT64)p;
6355           i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 94340))+80);
6356           i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 94340))+80);
6357           OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 94349)))), XML_Builder__BuilderDesc_Notation)),XML_Builder__BuilderDesc_Notation)((XML_Builder__Builder)i1, (XML_DTD__Notation)i0);
6358           i0 = (OOC_INT64)currentEntity;
6359           XML_Parser__ParserDesc_ParseDocument_CheckCurrentEntity((XML_DTD__Entity)i0);
6360           XML_Parser__ParserDesc_ParseDocument_CheckChar(62u);
6361           return;
6362           ;
6363         }
6364 
6365 
6366       i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"<!ELEMENT", 10, 1);
6367       if (i0) goto l23;
6368       i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"<!ATTLIST", 10, 1);
6369       if (i0) goto l21;
6370       i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"<!ENTITY", 9, 1);
6371       if (i0) goto l19;
6372       i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"<!NOTATION", 11, 1);
6373       if (i0) goto l17;
6374       i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"<?", 3, 0);
6375       if (i0) goto l15;
6376       i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"<!--", 5, 0);
6377       if (i0) goto l13;
6378       XML_Parser__ParserDesc_ParseDocument_Err(105);
6379       XML_Parser__ParserDesc_ParseDocument_NextChar();
6380       goto l24;
6381 l13:
6382       XML_Parser__ParserDesc_ParseDocument_Comment();
6383       goto l24;
6384 l15:
6385       XML_Parser__ParserDesc_ParseDocument_PI();
6386       goto l24;
6387 l17:
6388       i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_CurrentEntity();
6389       XML_Parser__ParserDesc_ParseDocument_markupdecl_NotationDecl((XML_DTD__Entity)i0);
6390       goto l24;
6391 l19:
6392       i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_CurrentEntity();
6393       XML_Parser__ParserDesc_ParseDocument_markupdecl_EntityDecl((XML_DTD__Entity)i0);
6394       goto l24;
6395 l21:
6396       i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_CurrentEntity();
6397       XML_Parser__ParserDesc_ParseDocument_markupdecl_AttListDecl((XML_DTD__Entity)i0);
6398       goto l24;
6399 l23:
6400       i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_CurrentEntity();
6401       XML_Parser__ParserDesc_ParseDocument_markupdecl_elementdecl((XML_DTD__Entity)i0);
6402 l24:
6403       XML_Parser__ParserDesc_ParseDocument_DiscardPreviousInput();
6404       return;
6405       ;
6406     }
6407 
6408 
6409     void XML_Parser__ParserDesc_ParseDocument_extSubsetDecl(void) {
6410       register OOC_INT64 i0,i1,i2,i3,i4;
6411       XML_DTD__Entity currentEntity;
6412       struct XML_Locator__Position pos;
6413       auto void XML_Parser__ParserDesc_ParseDocument_extSubsetDecl_ignoreSectContents(void);
6414 
6415         void XML_Parser__ParserDesc_ParseDocument_extSubsetDecl_ignoreSectContents(void) {
6416           register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7;
6417           OOC_INT32 level;
6418 
6419           level = 1;
6420           i0 = cpos;
6421           cstart = i0;
6422           i0 = (OOC_INT64)&_td_XML_Locator__Position;
6423           cdelta = 0;
6424           i1=1;
6425 l1_loop:
6426           i2 = (OOC_INT64)chars;
6427           i3 = _check_pointer(i2, 95469);
6428           i4 = OOC_ARRAY_LENGTH(i3, 0);
6429           i5 = cpos;
6430           i3 = *(OOC_UINT16*)(i3+(_check_index(i5, i4, OOC_UINT32, 95469))*2);
6431           switch (i3) {
6432           case 0u ... 31u:
6433           case 65534u:
6434             XML_Parser__ParserDesc_ParseDocument_ControlChar(10u);
6435 
6436             goto l1_loop;
6437           case 65535u:
6438             XML_Parser__ParserDesc_ParseDocument_ErrPos(19, (void*)(OOC_INT64)&pos, (RT0__Struct)i0);
6439             goto l23;
6440           case 93u:
6441             i2 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"]]>", 4, 0);
6442             if (i2) goto l8;
6443             i2 = (OOC_INT64)chars;
6444             i3 = _check_pointer(i2, 96017);
6445             i4 = cdelta;
6446             i5 = cpos;
6447             i6 = OOC_ARRAY_LENGTH(i3, 0);
6448             i2 = _check_pointer(i2, 96039);
6449             i7 = OOC_ARRAY_LENGTH(i2, 0);
6450             i2 = *(OOC_UINT16*)(i2+(_check_index(i5, i7, OOC_UINT32, 96039))*2);
6451             *(OOC_UINT16*)(i3+(_check_index((i5-i4), i6, OOC_UINT32, 96017))*2) = i2;
6452             cpos = (i5+1);
6453 
6454             goto l1_loop;
6455 l8:
6456             i2 = i1==1;
6457             if (!i2) goto l11;
6458             i2 = (OOC_INT64)currentEntity;
6459             XML_Parser__ParserDesc_ParseDocument_CheckCurrentEntity((XML_DTD__Entity)i2);
6460 l11:
6461             i2 = cpos;
6462             cpos = (i2+3);
6463             i1 = i1-1;
6464             level = i1;
6465             i2 = i1==0;
6466             if (!i2) goto l1_loop;
6467             goto l23;
6468           case 60u:
6469             i2 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"<![", 4, 0);
6470             if (!i2) goto l18;
6471             goto l19;
6472 l18:
6473             i2 = (OOC_INT64)chars;
6474             i3 = _check_pointer(i2, 96269);
6475             i4 = cdelta;
6476             i5 = cpos;
6477             i6 = OOC_ARRAY_LENGTH(i3, 0);
6478             i2 = _check_pointer(i2, 96291);
6479             i7 = OOC_ARRAY_LENGTH(i2, 0);
6480             i2 = *(OOC_UINT16*)(i2+(_check_index(i5, i7, OOC_UINT32, 96291))*2);
6481             *(OOC_UINT16*)(i3+(_check_index((i5-i4), i6, OOC_UINT32, 96269))*2) = i2;
6482             cpos = (i5+1);
6483 
6484             goto l1_loop;
6485 l19:
6486             i2 = cpos;
6487             cpos = (i2+3);
6488             i1 = i1+1;
6489             level = i1;
6490 
6491             goto l1_loop;
6492           default:
6493             i3 = _check_pointer(i2, 96358);
6494             i4 = cdelta;
6495             i6 = OOC_ARRAY_LENGTH(i3, 0);
6496             i2 = _check_pointer(i2, 96380);
6497             i7 = OOC_ARRAY_LENGTH(i2, 0);
6498             i2 = *(OOC_UINT16*)(i2+(_check_index(i5, i7, OOC_UINT32, 96380))*2);
6499             *(OOC_UINT16*)(i3+(_check_index((i5-i4), i6, OOC_UINT32, 96358))*2) = i2;
6500             cpos = (i5+1);
6501 
6502             goto l1_loop;
6503           }
6504 l23:
6505           return;
6506           ;
6507         }
6508 
6509 
6510       i0 = (OOC_INT64)&_td_XML_Locator__Position;
6511 l1_loop:
6512       i1 = (OOC_INT64)chars;
6513       i2 = _check_pointer(i1, 96498);
6514       i3 = OOC_ARRAY_LENGTH(i2, 0);
6515       i4 = cpos;
6516       i2 = *(OOC_UINT16*)(i2+(_check_index(i4, i3, OOC_UINT32, 96498))*2);
6517       i2 = i2==60u;
6518       if (i2) goto l12;
6519       i1 = _check_pointer(i1, 97637);
6520       i2 = OOC_ARRAY_LENGTH(i1, 0);
6521       i1 = *(OOC_UINT16*)(i1+(_check_index(i4, i2, OOC_UINT32, 97637))*2);
6522       i1 = i1==37u;
6523       if (!i1) goto l5;
6524       goto l10;
6525 l5:
6526       i1 = XML_Parser__ParserDesc_ParseDocument_LookingAtSnoPE();
6527       if (!i1) goto l30;
6528       XML_Parser__ParserDesc_ParseDocument_SnoPE();
6529       goto l1_loop;
6530 l10:
6531       XML_Parser__ParserDesc_ParseDocument_PEReference(1u);
6532       goto l1_loop;
6533 l12:
6534       i1 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_CurrentEntity();
6535       currentEntity = (XML_DTD__Entity)i1;
6536       XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(OOC_INT64)&pos, (RT0__Struct)i0);
6537       i2 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"<![", 4, 0);
6538       if (i2) goto l15;
6539       XML_Parser__ParserDesc_ParseDocument_markupdecl();
6540       goto l1_loop;
6541 l15:
6542       i2 = cpos;
6543       cpos = (i2+3);
6544       XML_Parser__ParserDesc_ParseDocument_OptS(0u);
6545       i2 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"INCLUDE", 8, 1);
6546       if (i2) goto l22;
6547       i2 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"IGNORE", 7, 1);
6548       if (!i2) goto l19;
6549       goto l20;
6550 l19:
6551       XML_Parser__ParserDesc_ParseDocument_Err(113);
6552       goto l1_loop;
6553 l20:
6554       i2 = cpos;
6555       cpos = (i2+6);
6556       XML_Parser__ParserDesc_ParseDocument_OptS(0u);
6557       XML_Parser__ParserDesc_ParseDocument_CheckCurrentEntity((XML_DTD__Entity)i1);
6558       XML_Parser__ParserDesc_ParseDocument_CheckChar(91u);
6559       XML_Parser__ParserDesc_ParseDocument_extSubsetDecl_ignoreSectContents();
6560       goto l1_loop;
6561 l22:
6562       i2 = cpos;
6563       cpos = (i2+7);
6564       XML_Parser__ParserDesc_ParseDocument_OptS(0u);
6565       XML_Parser__ParserDesc_ParseDocument_CheckCurrentEntity((XML_DTD__Entity)i1);
6566       XML_Parser__ParserDesc_ParseDocument_CheckChar(91u);
6567       XML_Parser__ParserDesc_ParseDocument_extSubsetDecl();
6568       XML_Parser__ParserDesc_ParseDocument_CheckCurrentEntity((XML_DTD__Entity)i1);
6569       i1 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"]]>", 4, 0);
6570       if (!i1) goto l24;
6571       goto l25;
6572 l24:
6573       XML_Parser__ParserDesc_ParseDocument_Err(18);
6574       goto l1_loop;
6575 l25:
6576       i1 = cpos;
6577       cpos = (i1+3);
6578       goto l1_loop;
6579 l30:
6580       return;
6581       ;
6582     }
6583 
6584 
6585     void XML_Parser__ParserDesc_ParseDocument_prolog(void) {
6586       register OOC_INT64 i0;
6587       auto void XML_Parser__ParserDesc_ParseDocument_prolog_doctypedecl(void);
6588 
6589         void XML_Parser__ParserDesc_ParseDocument_prolog_doctypedecl(void) {
6590           register OOC_INT64 i0,i1,i2,i3,i4;
6591           XML_UnicodeBuffer__CharArray rootName;
6592           URI__URI baseURI;
6593           XML_UnicodeBuffer__CharArray system;
6594           XML_UnicodeBuffer__CharArray _public;
6595           XML_DTD__ExternalEntity externalSubset;
6596           XML_DTD__Declaration decl;
6597           XML_DTD__AttrDecl attr;
6598           auto void XML_Parser__ParserDesc_ParseDocument_prolog_doctypedecl_CheckGeneralEntities(void);
6599 
6600             void XML_Parser__ParserDesc_ParseDocument_prolog_doctypedecl_CheckGeneralEntities(void) {
6601               register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8;
6602               XML_Builder__Builder oldBuilder;
6603               OOC_INT32 oldErrCount;
6604               OOC_CHAR8 oldValidating;
6605               struct XML_Locator__Position pos;
6606               XML_DTD__Declaration decl;
6607               OOC_INT32 len;
6608 
6609               i0 = (OOC_INT64)p;
6610               i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 98552))+80);
6611               oldBuilder = (XML_Builder__Builder)i1;
6612               i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 98589));
6613               i2 = *(OOC_INT32*)(_check_pointer(i2, 98598));
6614               oldErrCount = i2;
6615               i0 = *(OOC_UINT8*)((_check_pointer(i0, 98638))+114);
6616               oldValidating = i0;
6617               i3 = (OOC_INT64)&_td_XML_Locator__Position;
6618               XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(OOC_INT64)&pos, (RT0__Struct)i3);
6619               i4 = (OOC_INT64)p;
6620               i5 = (OOC_INT64)XML_Builder__New();
6621               *(OOC_INT64*)((_check_pointer(i4, 98705))+80) = i5;
6622               i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 98752))+88);
6623               i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 98757))+8);
6624               i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i4, 98770));
6625               decl = (XML_DTD__Declaration)i4;
6626               i5 = i4!=0;
6627               if (!i5) goto l14;
6628 l3_loop:
6629               i5 = *(OOC_INT8*)((_check_pointer((_type_guard(i4, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 98839)))), &_td_XML_DTD__EntityDesc, 98839)), 98846))+16);
6630               i5 = i5==0;
6631               if (!i5) goto l9;
6632               i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 98932))+8);
6633               i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 98932))+8);
6634               i5 = OOC_ARRAY_LENGTH((_check_pointer(i5, 98938)), 0);
6635               i5 = LongStrings__Length((void*)(_check_pointer(i6, 98938)), i5);
6636               i5 = i5+2;
6637               i6 = cpos;
6638               len = i5;
6639               cpos = (i6+i5);
6640               XML_Parser__ParserDesc_ParseDocument_PushEntity((XML_DTD__Entity)(_type_guard(i4, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 98996)))), &_td_XML_DTD__EntityDesc, 98996)), 1u);
6641               XML_Parser__ParserDesc_ParseDocument_content();
6642               i6 = (OOC_INT64)chars;
6643               i6 = _check_pointer(i6, 99073);
6644               i7 = OOC_ARRAY_LENGTH(i6, 0);
6645               i8 = cpos;
6646               i6 = *(OOC_UINT16*)(i6+(_check_index(i8, i7, OOC_UINT32, 99073))*2);
6647               i6 = i6!=65535u;
6648               if (!i6) goto l8;
6649               XML_Parser__ParserDesc_ParseDocument_ErrPos(302, (void*)(OOC_INT64)&pos, (RT0__Struct)i3);
6650               i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 99283))+8);
6651               i7 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 99283))+8);
6652               i6 = OOC_ARRAY_LENGTH((_check_pointer(i6, 99289)), 0);
6653               i6 = (OOC_INT64)Msg__GetLStringPtr((void*)(_check_pointer(i7, 99289)), i6);
6654               i7 = (OOC_INT64)p;
6655               i8 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i7, 99174))+176);
6656               i7 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i7, 99174))+176);
6657               OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i8, 99185)))), Msg__MsgDesc_SetLStringAttrib)),Msg__MsgDesc_SetLStringAttrib)((Msg__Msg)i7, (OOC_CHAR8*)"name", 5, (Msg__LStringPtr)i6);
6658 l8:
6659               XML_Parser__ParserDesc_ParseDocument_PopEntity();
6660               i6 = cpos;
6661               cpos = (i6-i5);
6662 l9:
6663               i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i4, 99410));
6664               decl = (XML_DTD__Declaration)i4;
6665               i5 = i4!=0;
6666               if (i5) goto l3_loop;
6667 l14:
6668               i3 = (OOC_INT64)p;
6669               *(OOC_UINT8*)((_check_pointer(i3, 99517))+114) = i0;
6670               i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i3, 99563));
6671               i0 = *(OOC_INT32*)(_check_pointer(i0, 99572));
6672               i0 = i0==i2;
6673               if (i0) goto l17;
6674               i0 = (OOC_INT64)XML_Builder__New();
6675               *(OOC_INT64*)((_check_pointer(i3, 99744))+80) = i0;
6676               goto l18;
6677 l17:
6678               *(OOC_INT64*)((_check_pointer(i3, 99638))+80) = i1;
6679 l18:
6680               return;
6681               ;
6682             }
6683 
6684 
6685           i0 = (OOC_INT64)p;
6686           *(OOC_UINT8*)((_check_pointer(i0, 99890))+118) = 1u;
6687           i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 99940))+8);
6688           i1 = _check_pointer(i1, 99943);
6689           i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 99940))+8);
6690           i1 = (OOC_INT64)&_td_XML_Locator__Position;
6691           XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(_check_pointer(i0, 99943)), (RT0__Struct)i1);
6692           i0 = (OOC_INT64)p;
6693           i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 99956))+80);
6694           i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 99978))+88);
6695           i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 99956))+80);
6696           OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 99965)))), XML_Builder__BuilderDesc_StartDTD)),XML_Builder__BuilderDesc_StartDTD)((XML_Builder__Builder)i0, (XML_DTD__Builder)i3);
6697           i0 = cpos;
6698           cpos = (i0+9);
6699           XML_Parser__ParserDesc_ParseDocument_S();
6700           i0 = (OOC_INT64)XML_Parser__ParserDesc_ParseDocument_Name(0u);
6701           rootName = (XML_UnicodeBuffer__CharArray)i0;
6702           i2 = (OOC_INT64)p;
6703           i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 100135))+88);
6704           i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 100135))+88);
6705           OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 100140)))), XML_DTD__BuilderDesc_SetRootName)),XML_DTD__BuilderDesc_SetRootName)((XML_DTD__Builder)i2, (XML_UnicodeBuffer__CharArray)i0);
6706           XML_Parser__ParserDesc_ParseDocument_OptS(0u);
6707           i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"SYSTEM", 7, 0);
6708           if (i0) goto l3;
6709           i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"PUBLIC", 7, 0);
6710 
6711           goto l5;
6712 l3:
6713           i0=1u;
6714 l5:
6715           if (i0) goto l7;
6716           system = (XML_UnicodeBuffer__CharArray)(OOC_INT64)0;
6717           _public = (XML_UnicodeBuffer__CharArray)(OOC_INT64)0;
6718           baseURI = (URI__URI)(OOC_INT64)0;
6719           goto l8;
6720 l7:
6721           XML_Parser__ParserDesc_ParseDocument_ExternalID(0u, (void*)(OOC_INT64)&_public, (void*)(OOC_INT64)&system, (void*)(OOC_INT64)&baseURI);
6722           XML_Parser__ParserDesc_ParseDocument_OptS(0u);
6723 l8:
6724           i0 = (OOC_INT64)chars;
6725           i0 = _check_pointer(i0, 100583);
6726           i2 = OOC_ARRAY_LENGTH(i0, 0);
6727           i3 = cpos;
6728           i0 = *(OOC_UINT16*)(i0+(_check_index(i3, i2, OOC_UINT32, 100583))*2);
6729           i0 = i0==91u;
6730           if (!i0) goto l28;
6731           XML_Parser__ParserDesc_ParseDocument_CheckChar(91u);
6732 l11_loop:
6733           i0 = (OOC_INT64)chars;
6734           i2 = _check_pointer(i0, 100665);
6735           i3 = OOC_ARRAY_LENGTH(i2, 0);
6736           i4 = cpos;
6737           i2 = *(OOC_UINT16*)(i2+(_check_index(i4, i3, OOC_UINT32, 100665))*2);
6738           i2 = i2==60u;
6739           if (!i2) goto l13;
6740           goto l22;
6741 l13:
6742           i0 = _check_pointer(i0, 100733);
6743           i2 = OOC_ARRAY_LENGTH(i0, 0);
6744           i0 = *(OOC_UINT16*)(i0+(_check_index(i4, i2, OOC_UINT32, 100733))*2);
6745           i0 = i0==37u;
6746           if (!i0) goto l15;
6747           goto l20;
6748 l15:
6749           i0 = XML_Parser__ParserDesc_ParseDocument_LookingAtSnoPE();
6750           if (!i0) goto l24;
6751           XML_Parser__ParserDesc_ParseDocument_SnoPE();
6752           goto l11_loop;
6753 l20:
6754           XML_Parser__ParserDesc_ParseDocument_PEReference(1u);
6755           goto l11_loop;
6756 l22:
6757           XML_Parser__ParserDesc_ParseDocument_markupdecl();
6758           goto l11_loop;
6759 l24:
6760           i0 = (OOC_INT64)p;
6761           i0 = *(OOC_INT32*)((_check_pointer(i0, 100927))+160);
6762           i0 = i0!=0;
6763           if (!i0) goto l27;
6764           XML_Parser__ParserDesc_ParseDocument_Err(300);
6765 l27:
6766           XML_Parser__ParserDesc_ParseDocument_CheckChar(93u);
6767           XML_Parser__ParserDesc_ParseDocument_OptS(0u);
6768 l28:
6769           XML_Parser__ParserDesc_ParseDocument_CheckChar(62u);
6770           externalSubset = (XML_DTD__ExternalEntity)(OOC_INT64)0;
6771           i0 = (OOC_INT64)_public;
6772           i2 = i0!=(OOC_INT64)0;
6773           if (i2) goto l31;
6774           i2 = (OOC_INT64)system;
6775           i2 = i2!=(OOC_INT64)0;
6776 
6777           goto l33;
6778 l31:
6779           i2=1u;
6780 l33:
6781           if (!i2) goto l45;
6782           i2 = (OOC_INT64)p;
6783           i2 = *(OOC_UINT8*)((_check_pointer(i2, 101190))+112);
6784           if (i2) goto l37;
6785           XML_Parser__ParserDesc_ParseDocument_SkippedEntity((XML_UnicodeBuffer__CharArray)(OOC_INT64)0);
6786           goto l45;
6787 l37:
6788           i2 = (OOC_INT64)dtd;
6789           i3 = (OOC_INT64)baseURI;
6790           i4 = (OOC_INT64)system;
6791           i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 101248)))), XML_DTD__BuilderDesc_NewExternalDTD)),XML_DTD__BuilderDesc_NewExternalDTD)((XML_DTD__Builder)i2, (XML_UnicodeBuffer__CharArray)i0, (XML_UnicodeBuffer__CharArray)i4, (URI__URI)i3);
6792           externalSubset = (XML_DTD__ExternalEntity)i0;
6793           XML_Parser__ParserDesc_ParseDocument_PushEntity((XML_DTD__Entity)i0, 1u);
6794           i2 = (OOC_INT64)p;
6795           *(OOC_UINT8*)((_check_pointer(i2, 101352))+119) = 1u;
6796           i2 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"<?xml", 6, 1);
6797           if (!i2) goto l40;
6798           XML_Parser__ParserDesc_ParseDocument_XMLDecl((XML_DTD__ExternalEntity)i0);
6799 l40:
6800           XML_Parser__ParserDesc_ParseDocument_extSubsetDecl();
6801           i0 = (OOC_INT64)p;
6802           *(OOC_UINT8*)((_check_pointer(i0, 101535))+119) = 0u;
6803           i0 = (OOC_INT64)chars;
6804           i0 = _check_pointer(i0, 101585);
6805           i2 = OOC_ARRAY_LENGTH(i0, 0);
6806           i3 = cpos;
6807           i0 = *(OOC_UINT16*)(i0+(_check_index(i3, i2, OOC_UINT32, 101585))*2);
6808           i0 = i0!=65535u;
6809           if (!i0) goto l43;
6810           XML_Parser__ParserDesc_ParseDocument_Err(28);
6811 l43:
6812           XML_Parser__ParserDesc_ParseDocument_PopEntity();
6813 l45:
6814           i0 = (OOC_INT64)dtd;
6815           i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 101869))+32);
6816           decl = (XML_DTD__Declaration)i0;
6817           i2 = i0!=(OOC_INT64)0;
6818           if (!i2) goto l56;
6819 l48_loop:
6820           i2 = _type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 101943)))), &_td_XML_DTD__AttrDeclDesc, 101943);
6821           attr = (XML_DTD__AttrDecl)i2;
6822           i3 = *(OOC_INT8*)((_check_pointer(i2, 101972))+40);
6823           i3 = i3>=2;
6824           if (!i3) goto l51;
6825           i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 102031))+48);
6826           XML_Parser__ParserDesc_ParseDocument_Expand((XML_DTD__AttValue)i2);
6827 l51:
6828           i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 102084));
6829           decl = (XML_DTD__Declaration)i0;
6830           i2 = i0!=(OOC_INT64)0;
6831           if (i2) goto l48_loop;
6832 l56:
6833           i0 = (OOC_INT64)dtd;
6834           OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 102124)))), XML_DTD__BuilderDesc_AttachAttributes)),XML_DTD__BuilderDesc_AttachAttributes)((XML_DTD__Builder)i0);
6835           XML_Parser__ParserDesc_ParseDocument_prolog_doctypedecl_CheckGeneralEntities();
6836           i0 = (OOC_INT64)p;
6837           i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 102198))+8);
6838           i2 = _check_pointer(i2, 102201);
6839           i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 102198))+8);
6840           XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(_check_pointer(i0, 102201)), (RT0__Struct)i1);
6841           i0 = (OOC_INT64)p;
6842           i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 102214))+80);
6843           i2 = *(OOC_UINT8*)((_check_pointer(i0, 102250))+116);
6844           i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 102214))+80);
6845           i3 = (OOC_INT64)externalSubset;
6846           OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 102223)))), XML_Builder__BuilderDesc_EndDTD)),XML_Builder__BuilderDesc_EndDTD)((XML_Builder__Builder)i0, (XML_DTD__ExternalEntity)i3, i2);
6847           i0 = (OOC_INT64)p;
6848           *(OOC_UINT8*)((_check_pointer(i0, 102294))+118) = 0u;
6849           return;
6850           ;
6851         }
6852 
6853 
6854       i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"<?xml", 6, 1);
6855       if (!i0) goto l3;
6856       i0 = (OOC_INT64)p;
6857       i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 102420))+96);
6858       XML_Parser__ParserDesc_ParseDocument_XMLDecl((XML_DTD__ExternalEntity)i0);
6859 l3:
6860       XML_Parser__ParserDesc_ParseDocument_MiscRep();
6861       i0 = XML_Parser__ParserDesc_ParseDocument_LookingAt((OOC_CHAR8*)"<!DOCTYPE", 10, 1);
6862       if (!i0) goto l6;
6863       XML_Parser__ParserDesc_ParseDocument_prolog_doctypedecl();
6864       XML_Parser__ParserDesc_ParseDocument_MiscRep();
6865 l6:
6866       return;
6867       ;
6868     }
6869 
6870 
6871   i0 = (OOC_INT64)p;
6872   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 102615))+96);
6873   XML_Parser__ParserDesc_ParseDocument_SetFileEntity((XML_DTD__ExternalEntity)i0);
6874   XML_Parser__ParserDesc_ParseDocument_ResetLocator();
6875   i0 = (OOC_INT64)p;
6876   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 102666))+64);
6877   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 102670))+40);
6878   chars = (XML_UnicodeBuffer__CharArray)i1;
6879   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 102691))+88);
6880   dtd = (XML_DTD__Builder)i1;
6881   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 102723))+8);
6882   i1 = _check_pointer(i1, 102726);
6883   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 102723))+8);
6884   i1 = (OOC_INT64)&_td_XML_Locator__Position;
6885   XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(_check_pointer(i0, 102726)), (RT0__Struct)i1);
6886   i0 = (OOC_INT64)p;
6887   i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 102735))+80);
6888   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 102759))+8);
6889   i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 102735))+80);
6890   OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 102744)))), XML_Builder__BuilderDesc_SetLocator)),XML_Builder__BuilderDesc_SetLocator)((XML_Builder__Builder)i4, (XML_Locator__Locator)i3);
6891   i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 102770))+80);
6892   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 102800))+16);
6893   i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 102770))+80);
6894   OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 102779)))), XML_Builder__BuilderDesc_SetErrorListener)),XML_Builder__BuilderDesc_SetErrorListener)((XML_Builder__Builder)i4, (XML_Locator__ErrorListener)i3);
6895   i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 102823))+80);
6896   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 102850))+96);
6897   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 102823))+80);
6898   OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 102832)))), XML_Builder__BuilderDesc_StartDocument)),XML_Builder__BuilderDesc_StartDocument)((XML_Builder__Builder)i0, (XML_DTD__ExternalEntity)i3);
6899   XML_Parser__ParserDesc_ParseDocument_prolog();
6900   i0 = (OOC_INT64)p;
6901   *(OOC_UINT8*)((_check_pointer(i0, 102906))+117) = 1u;
6902   XML_Parser__ParserDesc_ParseDocument_element();
6903   i0 = (OOC_INT64)p;
6904   i0 = *(OOC_INT32*)((_check_pointer(i0, 102957))+160);
6905   i0 = i0!=0;
6906   if (!i0) goto l3;
6907   XML_Parser__ParserDesc_ParseDocument_Err(301);
6908 l3:
6909   i0 = (OOC_INT64)p;
6910   *(OOC_UINT8*)((_check_pointer(i0, 103022))+117) = 0u;
6911   XML_Parser__ParserDesc_ParseDocument_MiscRep();
6912   i0 = (OOC_INT64)chars;
6913   i0 = _check_pointer(i0, 103078);
6914   i2 = OOC_ARRAY_LENGTH(i0, 0);
6915   i3 = cpos;
6916   i0 = *(OOC_UINT16*)(i0+(_check_index(i3, i2, OOC_UINT32, 103078))*2);
6917   i0 = i0!=65535u;
6918   if (!i0) goto l6;
6919   XML_Parser__ParserDesc_ParseDocument_Err(2);
6920 l6:
6921   XML_Parser__ParserDesc_ParseDocument_CheckInvalidChars();
6922   i0 = (OOC_INT64)p;
6923   i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 103197))+8);
6924   i2 = _check_pointer(i2, 103200);
6925   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 103197))+8);
6926   XML_Parser__ParserDesc_ParseDocument_StorePosition((void*)(_check_pointer(i0, 103200)), (RT0__Struct)i1);
6927   i0 = (OOC_INT64)p;
6928   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 103209))+72);
6929   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 103209))+72);
6930   OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 103225)))), XML_Builder__BuilderDesc_EndDocument)),XML_Builder__BuilderDesc_EndDocument)((XML_Builder__Builder)i0);
6931   return;
6932   ;
6933 }
6934 
XML_Parser__Init(XML_Parser__Parser p,OOC_CHAR8 _new,IO__ByteChannel reader,URI__URI baseURI,XML_UnicodeCodec__Factory codecFactory,XML_EntityResolver__Resolver entityResolver,XML_Builder__Builder builder)6935 static void XML_Parser__Init(XML_Parser__Parser p, OOC_CHAR8 _new, IO__ByteChannel reader, URI__URI baseURI, XML_UnicodeCodec__Factory codecFactory, XML_EntityResolver__Resolver entityResolver, XML_Builder__Builder builder) {
6936   register OOC_INT64 i0,i1,i2,i3;
6937 
6938   i0 = (OOC_INT64)p;
6939   i1 = (OOC_INT64)XML_Error__NewList();
6940   *(OOC_INT64*)(_check_pointer(i0, 103572)) = i1;
6941   i1 = _new;
6942   if (i1) goto l3;
6943   _assert(0u, 127, 103824);
6944   goto l4;
6945 l3:
6946   *(OOC_INT64*)((_check_pointer(i0, 103630))+8) = ((OOC_INT64)RT0__NewObject(_td_XML_Locator__Locator.baseTypes[0]));
6947   *(OOC_INT64*)((_check_pointer(i0, 103648))+16) = ((OOC_INT64)RT0__NewObject(_td_XML_Parser__ErrorListener.baseTypes[0]));
6948   *(OOC_INT64*)((_check_pointer(i0, 103678))+136) = ((OOC_INT64)RT0__NewObject(_td_XML_Parser__NameList.baseTypes[0], 8));
6949   *(OOC_INT64*)((_check_pointer(i0, 103717))+152) = ((OOC_INT64)RT0__NewObject(_td_XML_Parser__PEInfoList.baseTypes[0], 4));
6950   i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 103797));
6951   i2 = (OOC_INT64)reader;
6952   i3 = (OOC_INT64)codecFactory;
6953   i1 = (OOC_INT64)XML_UnicodeBuffer__NewInput((IO__ByteChannel)i2, (XML_UnicodeCodec__Factory)i3, (Msg__MsgList)i1);
6954   *(OOC_INT64*)((_check_pointer(i0, 103749))+64) = i1;
6955 l4:
6956   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 103917))+8);
6957   *(OOC_INT64*)((_check_pointer(i1, 103920))+24) = 0;
6958   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 103952))+16);
6959   *(OOC_INT64*)(_check_pointer(i1, 103967)) = i0;
6960   i1 = (OOC_INT64)XML_DTD__New();
6961   *(OOC_INT64*)((_check_pointer(i0, 103987))+88) = i1;
6962   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 104033))+88);
6963   i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 104033))+88);
6964   i3 = (OOC_INT64)baseURI;
6965   i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 104038)))), XML_DTD__BuilderDesc_NewDocumentEntity)),XML_DTD__BuilderDesc_NewDocumentEntity)((XML_DTD__Builder)i2, (URI__URI)i3);
6966   *(OOC_INT64*)((_check_pointer(i0, 104012))+96) = i1;
6967   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 104110))+64);
6968   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 104114))+16);
6969   i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 104074))+96);
6970   XML_DTD__ExternalEntityDesc_SetCodecFactory((XML_DTD__ExternalEntity)i2, (XML_UnicodeCodec__Factory)i1);
6971   i1 = (OOC_INT64)builder;
6972   *(OOC_INT64*)((_check_pointer(i0, 104136))+80) = i1;
6973   *(OOC_INT64*)((_check_pointer(i0, 104163))+72) = i1;
6974   i1 = (OOC_INT64)entityResolver;
6975   i1 = i1==0;
6976   if (!i1) goto l7;
6977   i1 = (OOC_INT64)XML_EntityResolver__New();
6978   entityResolver = (XML_EntityResolver__Resolver)i1;
6979 l7:
6980   i1 = (OOC_INT64)entityResolver;
6981   *(OOC_INT64*)((_check_pointer(i0, 104286))+56) = i1;
6982   *(OOC_UINT8*)((_check_pointer(i0, 104325))+112) = 1u;
6983   *(OOC_UINT8*)((_check_pointer(i0, 104359))+113) = 0u;
6984   *(OOC_UINT8*)((_check_pointer(i0, 104390))+114) = 0u;
6985   *(OOC_UINT8*)((_check_pointer(i0, 104418))+115) = 1u;
6986   *(OOC_UINT8*)((_check_pointer(i0, 104454))+116) = 1u;
6987   *(OOC_UINT8*)((_check_pointer(i0, 104491))+117) = 0u;
6988   *(OOC_UINT8*)((_check_pointer(i0, 104526))+118) = 0u;
6989   *(OOC_UINT8*)((_check_pointer(i0, 104549))+119) = 0u;
6990   *(OOC_UINT8*)((_check_pointer(i0, 104583))+120) = 0u;
6991   *(OOC_INT64*)((_check_pointer(i0, 104622))+128) = 0;
6992   *(OOC_INT32*)((_check_pointer(i0, 104653))+144) = 0;
6993   *(OOC_INT32*)((_check_pointer(i0, 104678))+160) = 0;
6994   return;
6995   ;
6996 }
6997 
XML_Parser__NewChannel(IO__ByteChannel ch,URI__URI baseURI,XML_UnicodeCodec__Factory codecFactory,XML_EntityResolver__Resolver entityResolver,XML_Builder__Builder builder)6998 XML_Parser__Parser XML_Parser__NewChannel(IO__ByteChannel ch, URI__URI baseURI, XML_UnicodeCodec__Factory codecFactory, XML_EntityResolver__Resolver entityResolver, XML_Builder__Builder builder) {
6999   register OOC_INT64 i0,i1,i2,i3,i4,i5;
7000 
7001   i0 = (OOC_INT64)RT0__NewObject(_td_XML_Parser__Parser.baseTypes[0]);
7002   i1 = (OOC_INT64)builder;
7003   i2 = (OOC_INT64)entityResolver;
7004   i3 = (OOC_INT64)codecFactory;
7005   i4 = (OOC_INT64)baseURI;
7006   i5 = (OOC_INT64)ch;
7007   XML_Parser__Init((XML_Parser__Parser)i0, 1u, (IO__ByteChannel)i5, (URI__URI)i4, (XML_UnicodeCodec__Factory)i3, (XML_EntityResolver__Resolver)i2, (XML_Builder__Builder)i1);
7008   return (XML_Parser__Parser)i0;
7009   ;
7010 }
7011 
XML_Parser__NewURI(URI__URI uri,URI__URI baseURI,XML_UnicodeCodec__Factory codecFactory,XML_EntityResolver__Resolver entityResolver,XML_Builder__Builder builder)7012 XML_Parser__Parser XML_Parser__NewURI(URI__URI uri, URI__URI baseURI, XML_UnicodeCodec__Factory codecFactory, XML_EntityResolver__Resolver entityResolver, XML_Builder__Builder builder) {
7013   register OOC_INT64 i0,i1,i2,i3,i4;
7014 
7015   i0 = (OOC_INT64)uri;
7016   i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 107258)))), URI__URIDesc_GetChannel)),URI__URIDesc_GetChannel)((URI__URI)i0, 2);
7017   i2 = (OOC_INT64)codecFactory;
7018   i3 = (OOC_INT64)entityResolver;
7019   i4 = (OOC_INT64)builder;
7020   i0 = (OOC_INT64)XML_Parser__NewChannel((IO__ByteChannel)i1, (URI__URI)i0, (XML_UnicodeCodec__Factory)i2, (XML_EntityResolver__Resolver)i3, (XML_Builder__Builder)i4);
7021   return (XML_Parser__Parser)i0;
7022   ;
7023 }
7024 
XML_Parser__NewFile(const OOC_CHAR8 filePath__ref[],OOC_LEN filePath_0d,URI__URI baseURI,XML_UnicodeCodec__Factory codecFactory,XML_EntityResolver__Resolver entityResolver,XML_Builder__Builder builder)7025 XML_Parser__Parser XML_Parser__NewFile(const OOC_CHAR8 filePath__ref[], OOC_LEN filePath_0d, URI__URI baseURI, XML_UnicodeCodec__Factory codecFactory, XML_EntityResolver__Resolver entityResolver, XML_Builder__Builder builder) {
7026   register OOC_INT64 i0,i1,i2,i3,i4;
7027   OOC_ALLOCATE_VPAR(filePath,OOC_CHAR8 ,filePath_0d)
7028 
7029   OOC_INITIALIZE_VPAR(filePath__ref,filePath,OOC_CHAR8 ,filePath_0d)
7030   i0 = (OOC_INT64)URI_Scheme_File__ToURI((void*)(OOC_INT64)filePath, filePath_0d);
7031   i1 = (OOC_INT64)baseURI;
7032   i2 = (OOC_INT64)codecFactory;
7033   i3 = (OOC_INT64)entityResolver;
7034   i4 = (OOC_INT64)builder;
7035   i0 = (OOC_INT64)XML_Parser__NewURI((URI__URI)i0, (URI__URI)i1, (XML_UnicodeCodec__Factory)i2, (XML_EntityResolver__Resolver)i3, (XML_Builder__Builder)i4);
7036   return (XML_Parser__Parser)i0;
7037   ;
7038 }
7039 
XML_Parser__NewExternalID(const OOC_CHAR16 _public__ref[],OOC_LEN _public_0d,const OOC_CHAR16 system__ref[],OOC_LEN system_0d,URI__URI systemBaseURI,XML_UnicodeCodec__Factory codecFactory,XML_EntityResolver__Resolver entityResolver,XML_Builder__Builder builder,Msg__Msg * res)7040 XML_Parser__Parser XML_Parser__NewExternalID(const OOC_CHAR16 _public__ref[], OOC_LEN _public_0d, const OOC_CHAR16 system__ref[], OOC_LEN system_0d, URI__URI systemBaseURI, XML_UnicodeCodec__Factory codecFactory, XML_EntityResolver__Resolver entityResolver, XML_Builder__Builder builder, Msg__Msg *res) {
7041   register OOC_INT64 i0,i1,i2,i3;
7042   OOC_ALLOCATE_VPAR(_public,OOC_CHAR16 ,_public_0d)
7043   OOC_ALLOCATE_VPAR(system,OOC_CHAR16 ,system_0d)
7044   URI__URI uri;
7045   auto XML_UnicodeBuffer__CharArray XML_Parser__NewExternalID_ToString(OOC_CHAR16 s[], OOC_LEN s_0d);
7046 
7047     XML_UnicodeBuffer__CharArray XML_Parser__NewExternalID_ToString(OOC_CHAR16 s[], OOC_LEN s_0d) {
7048       register OOC_INT64 i0,i1;
7049       XML_UnicodeBuffer__CharArray str;
7050 
7051       i0 = (
7052       _cmp16((const void*)(OOC_INT64)s,(const void*)((OOC_CHAR16[]){0})))==0;
7053       if (i0) goto l3;
7054       i0 = LongStrings__Length((void*)(OOC_INT64)s, s_0d);
7055       i0 = (OOC_INT64)RT0__NewObject(_td_XML_UnicodeBuffer__CharArray.baseTypes[0], (i0+1));
7056       str = (XML_UnicodeBuffer__CharArray)i0;
7057       i1 = OOC_ARRAY_LENGTH((_check_pointer(i0, 108560)), 0);
7058       _copy_16((const void*)(OOC_INT64)s,(void*)(_check_pointer(i0, 108560)),i1);
7059       return (XML_UnicodeBuffer__CharArray)i0;
7060       goto l4;
7061 l3:
7062       return (XML_UnicodeBuffer__CharArray)(OOC_INT64)0;
7063 l4:
7064       _failed_function(108352); return 0;
7065       ;
7066     }
7067 
7068 
7069   OOC_INITIALIZE_VPAR(_public__ref,_public,OOC_CHAR16 ,(_public_0d*2))
7070   OOC_INITIALIZE_VPAR(system__ref,system,OOC_CHAR16 ,(system_0d*2))
7071   i0 = (OOC_INT64)XML_Parser__NewExternalID_ToString((void*)(OOC_INT64)system, system_0d);
7072   i1 = (OOC_INT64)XML_Parser__NewExternalID_ToString((void*)(OOC_INT64)_public, _public_0d);
7073   i2 = (OOC_INT64)entityResolver;
7074   i3 = (OOC_INT64)systemBaseURI;
7075   OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 108640)))), XML_EntityResolver__ResolverDesc_GetURI)),XML_EntityResolver__ResolverDesc_GetURI)((XML_EntityResolver__Resolver)i2, (XML_UnicodeBuffer__CharArray)i1, (XML_UnicodeBuffer__CharArray)i0, (URI__URI)i3, (void*)(OOC_INT64)&uri, (void*)(OOC_INT64)res);
7076   i0 = (OOC_INT64)uri;
7077   i1 = i0==(OOC_INT64)0;
7078   if (i1) goto l3;
7079   i1 = (OOC_INT64)codecFactory;
7080   i3 = (OOC_INT64)builder;
7081   i0 = (OOC_INT64)XML_Parser__NewURI((URI__URI)i0, (URI__URI)(OOC_INT64)0, (XML_UnicodeCodec__Factory)i1, (XML_EntityResolver__Resolver)i2, (XML_Builder__Builder)i3);
7082   return (XML_Parser__Parser)i0;
7083   goto l4;
7084 l3:
7085   return (XML_Parser__Parser)(OOC_INT64)0;
7086 l4:
7087   _failed_function(107826); return 0;
7088   ;
7089 }
7090 
XML_Parser__SetErrorMessages(void)7091 static void XML_Parser__SetErrorMessages(void) {
7092   register OOC_INT64 i0,i1;
7093   OOC_INT16 i;
7094   OOC_CHAR8 t[128];
7095 
7096   i = 0;
7097   i0=0;
7098 l1_loop:
7099   switch (i0) {
7100   case 1:
7101     _copy_8((const void*)(OOC_CHAR8*)"Invalid character in document",(void*)(OOC_INT64)t,128);
7102     goto l63;
7103   case 2:
7104     _copy_8((const void*)(OOC_CHAR8*)"Junk after document element",(void*)(OOC_INT64)t,128);
7105     goto l63;
7106   case 3:
7107     _copy_8((const void*)(OOC_CHAR8*)"String `]]>\047 not allowed in character data",(void*)(OOC_INT64)t,128);
7108     goto l63;
7109   case 4:
7110     _copy_8((const void*)(OOC_CHAR8*)"String `--\047 not allowed in comment",(void*)(OOC_INT64)t,128);
7111     goto l63;
7112   case 5:
7113     _copy_8((const void*)(OOC_CHAR8*)"Comment not closed",(void*)(OOC_INT64)t,128);
7114     goto l63;
7115   case 6:
7116     _copy_8((const void*)(OOC_CHAR8*)"String not closed",(void*)(OOC_INT64)t,128);
7117     goto l63;
7118   case 7:
7119     _copy_8((const void*)(OOC_CHAR8*)"Processing instruction not closed",(void*)(OOC_INT64)t,128);
7120     goto l63;
7121   case 8:
7122     _copy_8((const void*)(OOC_CHAR8*)"CDATA section not closed",(void*)(OOC_INT64)t,128);
7123     goto l63;
7124   case 9:
7125     _copy_8((const void*)(OOC_CHAR8*)"Expected whitespace",(void*)(OOC_INT64)t,128);
7126     goto l63;
7127   case 10:
7128     _copy_8((const void*)(OOC_CHAR8*)"Expected name token",(void*)(OOC_INT64)t,128);
7129     goto l63;
7130   case 11:
7131     _copy_8((const void*)(OOC_CHAR8*)"Expected Nmtoken",(void*)(OOC_INT64)t,128);
7132     goto l63;
7133   case 12:
7134     _copy_8((const void*)(OOC_CHAR8*)"Expected character `${symbol}\047",(void*)(OOC_INT64)t,128);
7135     goto l63;
7136   case 13:
7137     _copy_8((const void*)(OOC_CHAR8*)"Character `<\047 not allowed in attribute value",(void*)(OOC_INT64)t,128);
7138     goto l63;
7139   case 14:
7140     _copy_8((const void*)(OOC_CHAR8*)"Expected digit [0-9]",(void*)(OOC_INT64)t,128);
7141     goto l63;
7142   case 15:
7143     _copy_8((const void*)(OOC_CHAR8*)"Expected digit [0-9a-fA-F]",(void*)(OOC_INT64)t,128);
7144     goto l63;
7145   case 16:
7146     _copy_8((const void*)(OOC_CHAR8*)"Expected string",(void*)(OOC_INT64)t,128);
7147     goto l63;
7148   case 17:
7149     _copy_8((const void*)(OOC_CHAR8*)"Character reference designates illegal character",(void*)(OOC_INT64)t,128);
7150     goto l63;
7151   case 18:
7152     _copy_8((const void*)(OOC_CHAR8*)"Exepcted `]]>\047",(void*)(OOC_INT64)t,128);
7153     goto l63;
7154   case 19:
7155     _copy_8((const void*)(OOC_CHAR8*)"Ignored section not closed",(void*)(OOC_INT64)t,128);
7156     goto l63;
7157   case 20:
7158     _copy_8((const void*)(OOC_CHAR8*)"Invalid character in public ID string",(void*)(OOC_INT64)t,128);
7159     goto l63;
7160   case 21:
7161     _copy_8((const void*)(OOC_CHAR8*)"Invalid character in encoding name",(void*)(OOC_INT64)t,128);
7162     goto l63;
7163   case 22:
7164     _copy_8((const void*)(OOC_CHAR8*)"Invalid character in version number",(void*)(OOC_INT64)t,128);
7165     goto l63;
7166   case 23:
7167     _copy_8((const void*)(OOC_CHAR8*)"Expected non-empty string",(void*)(OOC_INT64)t,128);
7168     goto l63;
7169   case 24:
7170     _copy_8((const void*)(OOC_CHAR8*)"Expected \047yes\047 or \047no\047",(void*)(OOC_INT64)t,128);
7171     goto l63;
7172   case 25:
7173     _copy_8((const void*)(OOC_CHAR8*)"XML declaration must be at beginning of file",(void*)(OOC_INT64)t,128);
7174     goto l63;
7175   case 26:
7176     _copy_8((const void*)(OOC_CHAR8*)"This target name is reserved",(void*)(OOC_INT64)t,128);
7177     goto l63;
7178   case 27:
7179     _copy_8((const void*)(OOC_CHAR8*)"Document `${uri}\047 had ${encodings} character encoding errors",(void*)(OOC_INT64)t,128);
7180     goto l63;
7181   case 28:
7182     _copy_8((const void*)(OOC_CHAR8*)"Junk after external DTD subset",(void*)(OOC_INT64)t,128);
7183     goto l63;
7184   case 29:
7185     _copy_8((const void*)(OOC_CHAR8*)"Unknown character encoding",(void*)(OOC_INT64)t,128);
7186     goto l63;
7187   case 30:
7188     _copy_8((const void*)(OOC_CHAR8*)"This name must not contain a colon character `:\047",(void*)(OOC_INT64)t,128);
7189     goto l63;
7190   case 31:
7191     _copy_8((const void*)(OOC_CHAR8*)"Invalid use of colon in a qualified name",(void*)(OOC_INT64)t,128);
7192     goto l63;
7193   case 105:
7194     _copy_8((const void*)(OOC_CHAR8*)"Expected markup declaration",(void*)(OOC_INT64)t,128);
7195     goto l63;
7196   case 106:
7197     _copy_8((const void*)(OOC_CHAR8*)"Expected content specification: `EMPTY\047, `ANY\047, or `(\047",(void*)(OOC_INT64)t,128);
7198     goto l63;
7199   case 107:
7200     _copy_8((const void*)(OOC_CHAR8*)"Expected attribute type (type name, `NOTATION\047, or enumeration)",(void*)(OOC_INT64)t,128);
7201     goto l63;
7202   case 108:
7203     _copy_8((const void*)(OOC_CHAR8*)"Expected attribute value",(void*)(OOC_INT64)t,128);
7204     goto l63;
7205   case 109:
7206     _copy_8((const void*)(OOC_CHAR8*)"Expected entity value",(void*)(OOC_INT64)t,128);
7207     goto l63;
7208   case 110:
7209     _copy_8((const void*)(OOC_CHAR8*)"Expected content particle (name or `(\047)",(void*)(OOC_INT64)t,128);
7210     goto l63;
7211   case 111:
7212     _copy_8((const void*)(OOC_CHAR8*)"Expected token `version\047",(void*)(OOC_INT64)t,128);
7213     goto l63;
7214   case 112:
7215     _copy_8((const void*)(OOC_CHAR8*)"Expected `PUBLIC\047 or `SYSTEM\047",(void*)(OOC_INT64)t,128);
7216     goto l63;
7217   case 113:
7218     _copy_8((const void*)(OOC_CHAR8*)"Expected `INCLUDE\047 or `IGNORE\047",(void*)(OOC_INT64)t,128);
7219     goto l63;
7220   case 114:
7221     _copy_8((const void*)(OOC_CHAR8*)"Expected `?>\047",(void*)(OOC_INT64)t,128);
7222     goto l63;
7223   case 115:
7224     _copy_8((const void*)(OOC_CHAR8*)"Parameter entity references are restricted to markup declarations in the internal subset of the DTD",(void*)(OOC_INT64)t,128);
7225     goto l63;
7226   case 116:
7227     _copy_8((const void*)(OOC_CHAR8*)"Expected token `encoding\047",(void*)(OOC_INT64)t,128);
7228     goto l63;
7229   case 117:
7230     _copy_8((const void*)(OOC_CHAR8*)"Malformed URI: ${uri_error}",(void*)(OOC_INT64)t,128);
7231     goto l63;
7232   case 118:
7233     _copy_8((const void*)(OOC_CHAR8*)"Invalid redefinition of a predefined internal entity",(void*)(OOC_INT64)t,128);
7234     goto l63;
7235   case 208:
7236     _copy_8((const void*)(OOC_CHAR8*)"Expected element",(void*)(OOC_INT64)t,128);
7237     goto l63;
7238   case 209:
7239     _copy_8((const void*)(OOC_CHAR8*)"Expected end tag </${name}>",(void*)(OOC_INT64)t,128);
7240     goto l63;
7241   case 210:
7242     _copy_8((const void*)(OOC_CHAR8*)"General entity `${name}\047 not defined",(void*)(OOC_INT64)t,128);
7243     goto l63;
7244   case 211:
7245     _copy_8((const void*)(OOC_CHAR8*)"Parameter entity `${name}\047 not defined",(void*)(OOC_INT64)t,128);
7246     goto l63;
7247   case 212:
7248     _copy_8((const void*)(OOC_CHAR8*)"Attribute `${name}\047 is already defined",(void*)(OOC_INT64)t,128);
7249     goto l63;
7250   case 213:
7251     _copy_8((const void*)(OOC_CHAR8*)"General entity `${name}\047 is defined recursively",(void*)(OOC_INT64)t,128);
7252     goto l63;
7253   case 214:
7254     _copy_8((const void*)(OOC_CHAR8*)"Required attribute `${name}\047 is not set",(void*)(OOC_INT64)t,128);
7255     goto l63;
7256   case 300:
7257     _copy_8((const void*)(OOC_CHAR8*)"End tag `${name}\047 comes from a different entity than its start tag",(void*)(OOC_INT64)t,128);
7258     goto l63;
7259   case 301:
7260     _copy_8((const void*)(OOC_CHAR8*)"Unbalanced general entity reference",(void*)(OOC_INT64)t,128);
7261     goto l63;
7262   case 302:
7263     _copy_8((const void*)(OOC_CHAR8*)"Replacement text of general entity `${name}\047 is not valid content",(void*)(OOC_INT64)t,128);
7264     goto l63;
7265   case 303:
7266     _copy_8((const void*)(OOC_CHAR8*)"Could not access URL `${uri}\047: ${channel_error}",(void*)(OOC_INT64)t,128);
7267     goto l63;
7268   case 304:
7269     _copy_8((const void*)(OOC_CHAR8*)"Reference to unparsed entity `${name}\047 not allowed",(void*)(OOC_INT64)t,128);
7270     goto l63;
7271   case 305:
7272     _copy_8((const void*)(OOC_CHAR8*)"Attribute value contains reference to external entity `${name}\047",(void*)(OOC_INT64)t,128);
7273     goto l63;
7274   case 306:
7275     _copy_8((const void*)(OOC_CHAR8*)"Nesting violation: Opening and closing parenthesis not in same entity",(void*)(OOC_INT64)t,128);
7276     goto l63;
7277   default:
7278     _copy_8((const void*)(OOC_CHAR8*)"",(void*)(OOC_INT64)t,128);
7279     goto l63;
7280   }
7281 l63:
7282   i1 = (
7283   _cmp8((const void*)(OOC_INT64)t,(const void*)(OOC_CHAR8*)""))!=0;
7284   if (!i1) goto l66;
7285   i1 = (OOC_INT64)XML_Parser__parserContext;
7286   OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 113731)))), XML_Error__ContextDesc_SetString)),XML_Error__ContextDesc_SetString)((XML_Error__Context)i1, i0, (void*)(OOC_INT64)t, 128);
7287 l66:
7288   i0 = i0+1;
7289   i = i0;
7290   i1 = i0<=999;
7291   if (i1) goto l1_loop;
7292 l70:
7293   return;
7294   ;
7295 }
7296 
OOC_XML_Parser_init(void)7297 void OOC_XML_Parser_init(void) {
7298   register OOC_INT64 i0,i1;
7299 
7300   _copy_16((const void*)((OOC_CHAR16[]){45,39,40,41,43,44,46,47,58,61,63,59,33,42,35,64,36,95,37,0}),(void*)(OOC_INT64)XML_Parser__suplPubidChar,32);
7301   i0 = (OOC_INT64)RT0__NewObject(_td_XML_UnicodeBuffer__CharArray.baseTypes[0], 8);
7302   XML_Parser__noName = (XML_UnicodeBuffer__CharArray)i0;
7303   i1 = OOC_ARRAY_LENGTH((_check_pointer(i0, 113886)), 0);
7304   _copy_16((const void*)((OOC_CHAR16[]){35,110,111,95,110,97,109,101,0}),(void*)(_check_pointer(i0, 113886)),i1);
7305   i0 = (OOC_INT64)XML_Error__NewContext((OOC_CHAR8*)"XML:Parser", 11);
7306   XML_Parser__parserContext = (XML_Error__Context)i0;
7307   XML_Parser__SetErrorMessages();
7308   return;
7309   ;
7310 }
7311 
OOC_XML_Parser_destroy(void)7312 void OOC_XML_Parser_destroy(void) {
7313 }
7314 
7315 /* --- */
7316