1 /* Generated by re2c */
2 #line 1 "encodings/unicode_group_Mc_8_encoding_policy_substitute.re"
3 // re2c $INPUT -o $OUTPUT -8 --encoding-policy substitute
4 #include <stdio.h>
5 #include "utf8.h"
6 #define YYCTYPE unsigned char
scan(const YYCTYPE * start,const YYCTYPE * const limit)7 bool scan(const YYCTYPE * start, const YYCTYPE * const limit)
8 {
9 __attribute__((unused)) const YYCTYPE * YYMARKER; // silence compiler warnings when YYMARKER is not used
10 # define YYCURSOR start
11 Mc:
12
13 #line 14 "encodings/unicode_group_Mc_8_encoding_policy_substitute.c"
14 {
15 YYCTYPE yych;
16 yych = *YYCURSOR;
17 switch (yych) {
18 case 0xE0: goto yy4;
19 case 0xE1: goto yy5;
20 case 0xE3: goto yy6;
21 case 0xEA: goto yy7;
22 case 0xF0: goto yy8;
23 default: goto yy2;
24 }
25 yy2:
26 ++YYCURSOR;
27 yy3:
28 #line 14 "encodings/unicode_group_Mc_8_encoding_policy_substitute.re"
29 { return YYCURSOR == limit; }
30 #line 31 "encodings/unicode_group_Mc_8_encoding_policy_substitute.c"
31 yy4:
32 yych = *(YYMARKER = ++YYCURSOR);
33 switch (yych) {
34 case 0xA4: goto yy9;
35 case 0xA5: goto yy11;
36 case 0xA6:
37 case 0xB4: goto yy12;
38 case 0xA7:
39 case 0xAD: goto yy13;
40 case 0xA8:
41 case 0xAA: goto yy14;
42 case 0xA9: goto yy15;
43 case 0xAB: goto yy16;
44 case 0xAC:
45 case 0xB2: goto yy17;
46 case 0xAE:
47 case 0xBC: goto yy18;
48 case 0xAF: goto yy19;
49 case 0xB0: goto yy20;
50 case 0xB1: goto yy21;
51 case 0xB3: goto yy22;
52 case 0xB5: goto yy23;
53 case 0xB6: goto yy24;
54 case 0xB7: goto yy25;
55 case 0xBD: goto yy26;
56 default: goto yy3;
57 }
58 yy5:
59 yych = *(YYMARKER = ++YYCURSOR);
60 switch (yych) {
61 case 0x80: goto yy27;
62 case 0x81: goto yy28;
63 case 0x82: goto yy29;
64 case 0x9E: goto yy30;
65 case 0x9F: goto yy31;
66 case 0xA4: goto yy32;
67 case 0xA6: goto yy33;
68 case 0xA7: goto yy34;
69 case 0xA8: goto yy35;
70 case 0xA9: goto yy36;
71 case 0xAC: goto yy37;
72 case 0xAD: goto yy38;
73 case 0xAE: goto yy39;
74 case 0xAF: goto yy40;
75 case 0xB0: goto yy41;
76 case 0xB3: goto yy42;
77 default: goto yy3;
78 }
79 yy6:
80 yych = *(YYMARKER = ++YYCURSOR);
81 switch (yych) {
82 case 0x80: goto yy43;
83 default: goto yy3;
84 }
85 yy7:
86 yych = *(YYMARKER = ++YYCURSOR);
87 switch (yych) {
88 case 0xA0: goto yy44;
89 case 0xA2: goto yy45;
90 case 0xA3: goto yy46;
91 case 0xA5: goto yy47;
92 case 0xA6: goto yy48;
93 case 0xA7: goto yy15;
94 case 0xA8: goto yy49;
95 case 0xA9: goto yy50;
96 case 0xAB: goto yy51;
97 case 0xAF: goto yy52;
98 default: goto yy3;
99 }
100 yy8:
101 yych = *(YYMARKER = ++YYCURSOR);
102 switch (yych) {
103 case 0x91: goto yy53;
104 case 0x96: goto yy54;
105 case 0x9D: goto yy55;
106 default: goto yy3;
107 }
108 yy9:
109 yych = *++YYCURSOR;
110 switch (yych) {
111 case 0x83:
112 case 0xBB:
113 case 0xBE:
114 case 0xBF: goto yy56;
115 default: goto yy10;
116 }
117 yy10:
118 YYCURSOR = YYMARKER;
119 goto yy3;
120 yy11:
121 yych = *++YYCURSOR;
122 switch (yych) {
123 case 0x80:
124 case 0x89:
125 case 0x8A:
126 case 0x8B:
127 case 0x8C:
128 case 0x8E:
129 case 0x8F: goto yy56;
130 default: goto yy10;
131 }
132 yy12:
133 yych = *++YYCURSOR;
134 switch (yych) {
135 case 0x82:
136 case 0x83:
137 case 0xBE:
138 case 0xBF: goto yy56;
139 default: goto yy10;
140 }
141 yy13:
142 yych = *++YYCURSOR;
143 switch (yych) {
144 case 0x80:
145 case 0x87:
146 case 0x88:
147 case 0x8B:
148 case 0x8C:
149 case 0x97: goto yy56;
150 default: goto yy10;
151 }
152 yy14:
153 yych = *++YYCURSOR;
154 switch (yych) {
155 case 0x83:
156 case 0xBE:
157 case 0xBF: goto yy56;
158 default: goto yy10;
159 }
160 yy15:
161 yych = *++YYCURSOR;
162 switch (yych) {
163 case 0x80: goto yy56;
164 default: goto yy10;
165 }
166 yy16:
167 yych = *++YYCURSOR;
168 switch (yych) {
169 case 0x80:
170 case 0x89:
171 case 0x8B:
172 case 0x8C: goto yy56;
173 default: goto yy10;
174 }
175 yy17:
176 yych = *++YYCURSOR;
177 switch (yych) {
178 case 0x82:
179 case 0x83:
180 case 0xBE: goto yy56;
181 default: goto yy10;
182 }
183 yy18:
184 yych = *++YYCURSOR;
185 switch (yych) {
186 case 0xBE:
187 case 0xBF: goto yy56;
188 default: goto yy10;
189 }
190 yy19:
191 yych = *++YYCURSOR;
192 switch (yych) {
193 case 0x81:
194 case 0x82:
195 case 0x86:
196 case 0x87:
197 case 0x88:
198 case 0x8A:
199 case 0x8B:
200 case 0x8C:
201 case 0x97: goto yy56;
202 default: goto yy10;
203 }
204 yy20:
205 yych = *++YYCURSOR;
206 switch (yych) {
207 case 0x81:
208 case 0x82:
209 case 0x83: goto yy56;
210 default: goto yy10;
211 }
212 yy21:
213 yych = *++YYCURSOR;
214 switch (yych) {
215 case 0x81:
216 case 0x82:
217 case 0x83:
218 case 0x84: goto yy56;
219 default: goto yy10;
220 }
221 yy22:
222 yych = *++YYCURSOR;
223 switch (yych) {
224 case 0x80:
225 case 0x81:
226 case 0x82:
227 case 0x83:
228 case 0x84:
229 case 0x87:
230 case 0x88:
231 case 0x8A:
232 case 0x8B:
233 case 0x95:
234 case 0x96: goto yy56;
235 default: goto yy10;
236 }
237 yy23:
238 yych = *++YYCURSOR;
239 switch (yych) {
240 case 0x80:
241 case 0x86:
242 case 0x87:
243 case 0x88:
244 case 0x8A:
245 case 0x8B:
246 case 0x8C:
247 case 0x97: goto yy56;
248 default: goto yy10;
249 }
250 yy24:
251 yych = *++YYCURSOR;
252 switch (yych) {
253 case 0x82:
254 case 0x83: goto yy56;
255 default: goto yy10;
256 }
257 yy25:
258 yych = *++YYCURSOR;
259 switch (yych) {
260 case 0x8F:
261 case 0x90:
262 case 0x91:
263 case 0x98:
264 case 0x99:
265 case 0x9A:
266 case 0x9B:
267 case 0x9C:
268 case 0x9D:
269 case 0x9E:
270 case 0x9F:
271 case 0xB2:
272 case 0xB3: goto yy56;
273 default: goto yy10;
274 }
275 yy26:
276 yych = *++YYCURSOR;
277 switch (yych) {
278 case 0xBF: goto yy56;
279 default: goto yy10;
280 }
281 yy27:
282 yych = *++YYCURSOR;
283 switch (yych) {
284 case 0xAB:
285 case 0xAC:
286 case 0xB1:
287 case 0xB8:
288 case 0xBB:
289 case 0xBC: goto yy56;
290 default: goto yy10;
291 }
292 yy28:
293 yych = *++YYCURSOR;
294 switch (yych) {
295 case 0x96:
296 case 0x97:
297 case 0xA2:
298 case 0xA3:
299 case 0xA4:
300 case 0xA7:
301 case 0xA8:
302 case 0xA9:
303 case 0xAA:
304 case 0xAB:
305 case 0xAC:
306 case 0xAD: goto yy56;
307 default: goto yy10;
308 }
309 yy29:
310 yych = *++YYCURSOR;
311 switch (yych) {
312 case 0x83:
313 case 0x84:
314 case 0x87:
315 case 0x88:
316 case 0x89:
317 case 0x8A:
318 case 0x8B:
319 case 0x8C:
320 case 0x8F:
321 case 0x9A:
322 case 0x9B:
323 case 0x9C: goto yy56;
324 default: goto yy10;
325 }
326 yy30:
327 yych = *++YYCURSOR;
328 switch (yych) {
329 case 0xB6:
330 case 0xBE:
331 case 0xBF: goto yy56;
332 default: goto yy10;
333 }
334 yy31:
335 yych = *++YYCURSOR;
336 switch (yych) {
337 case 0x80:
338 case 0x81:
339 case 0x82:
340 case 0x83:
341 case 0x84:
342 case 0x85:
343 case 0x87:
344 case 0x88: goto yy56;
345 default: goto yy10;
346 }
347 yy32:
348 yych = *++YYCURSOR;
349 switch (yych) {
350 case 0xA3:
351 case 0xA4:
352 case 0xA5:
353 case 0xA6:
354 case 0xA9:
355 case 0xAA:
356 case 0xAB:
357 case 0xB0:
358 case 0xB1:
359 case 0xB3:
360 case 0xB4:
361 case 0xB5:
362 case 0xB6:
363 case 0xB7:
364 case 0xB8: goto yy56;
365 default: goto yy10;
366 }
367 yy33:
368 yych = *++YYCURSOR;
369 switch (yych) {
370 case 0xB0:
371 case 0xB1:
372 case 0xB2:
373 case 0xB3:
374 case 0xB4:
375 case 0xB5:
376 case 0xB6:
377 case 0xB7:
378 case 0xB8:
379 case 0xB9:
380 case 0xBA:
381 case 0xBB:
382 case 0xBC:
383 case 0xBD:
384 case 0xBE:
385 case 0xBF: goto yy56;
386 default: goto yy10;
387 }
388 yy34:
389 yych = *++YYCURSOR;
390 switch (yych) {
391 case 0x80:
392 case 0x88:
393 case 0x89: goto yy56;
394 default: goto yy10;
395 }
396 yy35:
397 yych = *++YYCURSOR;
398 switch (yych) {
399 case 0x99:
400 case 0x9A: goto yy56;
401 default: goto yy10;
402 }
403 yy36:
404 yych = *++YYCURSOR;
405 switch (yych) {
406 case 0x95:
407 case 0x97:
408 case 0xA1:
409 case 0xA3:
410 case 0xA4:
411 case 0xAD:
412 case 0xAE:
413 case 0xAF:
414 case 0xB0:
415 case 0xB1:
416 case 0xB2: goto yy56;
417 default: goto yy10;
418 }
419 yy37:
420 yych = *++YYCURSOR;
421 switch (yych) {
422 case 0x84:
423 case 0xB5:
424 case 0xBB:
425 case 0xBD:
426 case 0xBE:
427 case 0xBF: goto yy56;
428 default: goto yy10;
429 }
430 yy38:
431 yych = *++YYCURSOR;
432 switch (yych) {
433 case 0x80:
434 case 0x81:
435 case 0x83:
436 case 0x84: goto yy56;
437 default: goto yy10;
438 }
439 yy39:
440 yych = *++YYCURSOR;
441 switch (yych) {
442 case 0x82:
443 case 0xA1:
444 case 0xA6:
445 case 0xA7:
446 case 0xAA: goto yy56;
447 default: goto yy10;
448 }
449 yy40:
450 yych = *++YYCURSOR;
451 switch (yych) {
452 case 0xA7:
453 case 0xAA:
454 case 0xAB:
455 case 0xAC:
456 case 0xAE:
457 case 0xB2:
458 case 0xB3: goto yy56;
459 default: goto yy10;
460 }
461 yy41:
462 yych = *++YYCURSOR;
463 switch (yych) {
464 case 0xA4:
465 case 0xA5:
466 case 0xA6:
467 case 0xA7:
468 case 0xA8:
469 case 0xA9:
470 case 0xAA:
471 case 0xAB:
472 case 0xB4:
473 case 0xB5: goto yy56;
474 default: goto yy10;
475 }
476 yy42:
477 yych = *++YYCURSOR;
478 switch (yych) {
479 case 0xA1:
480 case 0xB2:
481 case 0xB3: goto yy56;
482 default: goto yy10;
483 }
484 yy43:
485 yych = *++YYCURSOR;
486 switch (yych) {
487 case 0xAE:
488 case 0xAF: goto yy56;
489 default: goto yy10;
490 }
491 yy44:
492 yych = *++YYCURSOR;
493 switch (yych) {
494 case 0xA3:
495 case 0xA4:
496 case 0xA7: goto yy56;
497 default: goto yy10;
498 }
499 yy45:
500 yych = *++YYCURSOR;
501 switch (yych) {
502 case 0x80:
503 case 0x81:
504 case 0xB4:
505 case 0xB5:
506 case 0xB6:
507 case 0xB7:
508 case 0xB8:
509 case 0xB9:
510 case 0xBA:
511 case 0xBB:
512 case 0xBC:
513 case 0xBD:
514 case 0xBE:
515 case 0xBF: goto yy56;
516 default: goto yy10;
517 }
518 yy46:
519 yych = *++YYCURSOR;
520 switch (yych) {
521 case 0x80:
522 case 0x81:
523 case 0x82:
524 case 0x83: goto yy56;
525 default: goto yy10;
526 }
527 yy47:
528 yych = *++YYCURSOR;
529 switch (yych) {
530 case 0x92:
531 case 0x93: goto yy56;
532 default: goto yy10;
533 }
534 yy48:
535 yych = *++YYCURSOR;
536 switch (yych) {
537 case 0x83:
538 case 0xB4:
539 case 0xB5:
540 case 0xBA:
541 case 0xBB:
542 case 0xBD:
543 case 0xBE:
544 case 0xBF: goto yy56;
545 default: goto yy10;
546 }
547 yy49:
548 yych = *++YYCURSOR;
549 switch (yych) {
550 case 0xAF:
551 case 0xB0:
552 case 0xB3:
553 case 0xB4: goto yy56;
554 default: goto yy10;
555 }
556 yy50:
557 yych = *++YYCURSOR;
558 switch (yych) {
559 case 0x8D:
560 case 0xBB:
561 case 0xBD: goto yy56;
562 default: goto yy10;
563 }
564 yy51:
565 yych = *++YYCURSOR;
566 switch (yych) {
567 case 0xAB:
568 case 0xAE:
569 case 0xAF:
570 case 0xB5: goto yy56;
571 default: goto yy10;
572 }
573 yy52:
574 yych = *++YYCURSOR;
575 switch (yych) {
576 case 0xA3:
577 case 0xA4:
578 case 0xA6:
579 case 0xA7:
580 case 0xA9:
581 case 0xAA:
582 case 0xAC: goto yy56;
583 default: goto yy10;
584 }
585 yy53:
586 yych = *++YYCURSOR;
587 switch (yych) {
588 case 0x80: goto yy58;
589 case 0x82: goto yy59;
590 case 0x84: goto yy60;
591 case 0x86: goto yy61;
592 case 0x87: goto yy15;
593 case 0x88: goto yy62;
594 case 0x8B: goto yy63;
595 case 0x8C: goto yy12;
596 case 0x8D: goto yy64;
597 case 0x92: goto yy65;
598 case 0x93: goto yy66;
599 case 0x96: goto yy67;
600 case 0x98: goto yy68;
601 case 0x9A: goto yy69;
602 default: goto yy10;
603 }
604 yy54:
605 yych = *++YYCURSOR;
606 switch (yych) {
607 case 0xBD: goto yy70;
608 default: goto yy10;
609 }
610 yy55:
611 yych = *++YYCURSOR;
612 switch (yych) {
613 case 0x85: goto yy71;
614 default: goto yy10;
615 }
616 yy56:
617 ++YYCURSOR;
618 #line 13 "encodings/unicode_group_Mc_8_encoding_policy_substitute.re"
619 { goto Mc; }
620 #line 621 "encodings/unicode_group_Mc_8_encoding_policy_substitute.c"
621 yy58:
622 yych = *++YYCURSOR;
623 switch (yych) {
624 case 0x80:
625 case 0x82: goto yy56;
626 default: goto yy10;
627 }
628 yy59:
629 yych = *++YYCURSOR;
630 switch (yych) {
631 case 0x82:
632 case 0xB0:
633 case 0xB1:
634 case 0xB2:
635 case 0xB7:
636 case 0xB8: goto yy56;
637 default: goto yy10;
638 }
639 yy60:
640 yych = *++YYCURSOR;
641 switch (yych) {
642 case 0xAC: goto yy56;
643 default: goto yy10;
644 }
645 yy61:
646 yych = *++YYCURSOR;
647 switch (yych) {
648 case 0x82:
649 case 0xB3:
650 case 0xB4:
651 case 0xB5:
652 case 0xBF: goto yy56;
653 default: goto yy10;
654 }
655 yy62:
656 yych = *++YYCURSOR;
657 switch (yych) {
658 case 0xAC:
659 case 0xAD:
660 case 0xAE:
661 case 0xB2:
662 case 0xB3:
663 case 0xB5: goto yy56;
664 default: goto yy10;
665 }
666 yy63:
667 yych = *++YYCURSOR;
668 switch (yych) {
669 case 0xA0:
670 case 0xA1:
671 case 0xA2: goto yy56;
672 default: goto yy10;
673 }
674 yy64:
675 yych = *++YYCURSOR;
676 switch (yych) {
677 case 0x81:
678 case 0x82:
679 case 0x83:
680 case 0x84:
681 case 0x87:
682 case 0x88:
683 case 0x8B:
684 case 0x8C:
685 case 0x8D:
686 case 0x97:
687 case 0xA2:
688 case 0xA3: goto yy56;
689 default: goto yy10;
690 }
691 yy65:
692 yych = *++YYCURSOR;
693 switch (yych) {
694 case 0xB0:
695 case 0xB1:
696 case 0xB2:
697 case 0xB9:
698 case 0xBB:
699 case 0xBC:
700 case 0xBD:
701 case 0xBE: goto yy56;
702 default: goto yy10;
703 }
704 yy66:
705 yych = *++YYCURSOR;
706 switch (yych) {
707 case 0x81: goto yy56;
708 default: goto yy10;
709 }
710 yy67:
711 yych = *++YYCURSOR;
712 switch (yych) {
713 case 0xAF:
714 case 0xB0:
715 case 0xB1:
716 case 0xB8:
717 case 0xB9:
718 case 0xBA:
719 case 0xBB:
720 case 0xBE: goto yy56;
721 default: goto yy10;
722 }
723 yy68:
724 yych = *++YYCURSOR;
725 switch (yych) {
726 case 0xB0:
727 case 0xB1:
728 case 0xB2:
729 case 0xBB:
730 case 0xBC:
731 case 0xBE: goto yy56;
732 default: goto yy10;
733 }
734 yy69:
735 yych = *++YYCURSOR;
736 switch (yych) {
737 case 0xAC:
738 case 0xAE:
739 case 0xAF:
740 case 0xB6: goto yy56;
741 default: goto yy10;
742 }
743 yy70:
744 yych = *++YYCURSOR;
745 switch (yych) {
746 case 0x91:
747 case 0x92:
748 case 0x93:
749 case 0x94:
750 case 0x95:
751 case 0x96:
752 case 0x97:
753 case 0x98:
754 case 0x99:
755 case 0x9A:
756 case 0x9B:
757 case 0x9C:
758 case 0x9D:
759 case 0x9E:
760 case 0x9F:
761 case 0xA0:
762 case 0xA1:
763 case 0xA2:
764 case 0xA3:
765 case 0xA4:
766 case 0xA5:
767 case 0xA6:
768 case 0xA7:
769 case 0xA8:
770 case 0xA9:
771 case 0xAA:
772 case 0xAB:
773 case 0xAC:
774 case 0xAD:
775 case 0xAE:
776 case 0xAF:
777 case 0xB0:
778 case 0xB1:
779 case 0xB2:
780 case 0xB3:
781 case 0xB4:
782 case 0xB5:
783 case 0xB6:
784 case 0xB7:
785 case 0xB8:
786 case 0xB9:
787 case 0xBA:
788 case 0xBB:
789 case 0xBC:
790 case 0xBD:
791 case 0xBE: goto yy56;
792 default: goto yy10;
793 }
794 yy71:
795 yych = *++YYCURSOR;
796 switch (yych) {
797 case 0xA5:
798 case 0xA6:
799 case 0xAD:
800 case 0xAE:
801 case 0xAF:
802 case 0xB0:
803 case 0xB1:
804 case 0xB2: goto yy56;
805 default: goto yy10;
806 }
807 }
808 #line 15 "encodings/unicode_group_Mc_8_encoding_policy_substitute.re"
809
810 }
811 static const unsigned int chars_Mc [] = {0x903,0x903, 0x93b,0x93b, 0x93e,0x940, 0x949,0x94c, 0x94e,0x94f, 0x982,0x983, 0x9be,0x9c0, 0x9c7,0x9c8, 0x9cb,0x9cc, 0x9d7,0x9d7, 0xa03,0xa03, 0xa3e,0xa40, 0xa83,0xa83, 0xabe,0xac0, 0xac9,0xac9, 0xacb,0xacc, 0xb02,0xb03, 0xb3e,0xb3e, 0xb40,0xb40, 0xb47,0xb48, 0xb4b,0xb4c, 0xb57,0xb57, 0xbbe,0xbbf, 0xbc1,0xbc2, 0xbc6,0xbc8, 0xbca,0xbcc, 0xbd7,0xbd7, 0xc01,0xc03, 0xc41,0xc44, 0xc82,0xc83, 0xcbe,0xcbe, 0xcc0,0xcc4, 0xcc7,0xcc8, 0xcca,0xccb, 0xcd5,0xcd6, 0xd02,0xd03, 0xd3e,0xd40, 0xd46,0xd48, 0xd4a,0xd4c, 0xd57,0xd57, 0xd82,0xd83, 0xdcf,0xdd1, 0xdd8,0xddf, 0xdf2,0xdf3, 0xf3e,0xf3f, 0xf7f,0xf7f, 0x102b,0x102c, 0x1031,0x1031, 0x1038,0x1038, 0x103b,0x103c, 0x1056,0x1057, 0x1062,0x1064, 0x1067,0x106d, 0x1083,0x1084, 0x1087,0x108c, 0x108f,0x108f, 0x109a,0x109c, 0x17b6,0x17b6, 0x17be,0x17c5, 0x17c7,0x17c8, 0x1923,0x1926, 0x1929,0x192b, 0x1930,0x1931, 0x1933,0x1938, 0x19b0,0x19c0, 0x19c8,0x19c9, 0x1a19,0x1a1a, 0x1a55,0x1a55, 0x1a57,0x1a57, 0x1a61,0x1a61, 0x1a63,0x1a64, 0x1a6d,0x1a72, 0x1b04,0x1b04, 0x1b35,0x1b35, 0x1b3b,0x1b3b, 0x1b3d,0x1b41, 0x1b43,0x1b44, 0x1b82,0x1b82, 0x1ba1,0x1ba1, 0x1ba6,0x1ba7, 0x1baa,0x1baa, 0x1be7,0x1be7, 0x1bea,0x1bec, 0x1bee,0x1bee, 0x1bf2,0x1bf3, 0x1c24,0x1c2b, 0x1c34,0x1c35, 0x1ce1,0x1ce1, 0x1cf2,0x1cf3, 0x302e,0x302f, 0xa823,0xa824, 0xa827,0xa827, 0xa880,0xa881, 0xa8b4,0xa8c3, 0xa952,0xa953, 0xa983,0xa983, 0xa9b4,0xa9b5, 0xa9ba,0xa9bb, 0xa9bd,0xa9c0, 0xaa2f,0xaa30, 0xaa33,0xaa34, 0xaa4d,0xaa4d, 0xaa7b,0xaa7b, 0xaa7d,0xaa7d, 0xaaeb,0xaaeb, 0xaaee,0xaaef, 0xaaf5,0xaaf5, 0xabe3,0xabe4, 0xabe6,0xabe7, 0xabe9,0xabea, 0xabec,0xabec, 0x11000,0x11000, 0x11002,0x11002, 0x11082,0x11082, 0x110b0,0x110b2, 0x110b7,0x110b8, 0x1112c,0x1112c, 0x11182,0x11182, 0x111b3,0x111b5, 0x111bf,0x111c0, 0x1122c,0x1122e, 0x11232,0x11233, 0x11235,0x11235, 0x112e0,0x112e2, 0x11302,0x11303, 0x1133e,0x1133f, 0x11341,0x11344, 0x11347,0x11348, 0x1134b,0x1134d, 0x11357,0x11357, 0x11362,0x11363, 0x114b0,0x114b2, 0x114b9,0x114b9, 0x114bb,0x114be, 0x114c1,0x114c1, 0x115af,0x115b1, 0x115b8,0x115bb, 0x115be,0x115be, 0x11630,0x11632, 0x1163b,0x1163c, 0x1163e,0x1163e, 0x116ac,0x116ac, 0x116ae,0x116af, 0x116b6,0x116b6, 0x16f51,0x16f7e, 0x1d165,0x1d166, 0x1d16d,0x1d172, 0x0,0x0};
encode_utf8(const unsigned int * ranges,unsigned int ranges_count,unsigned int * s)812 static unsigned int encode_utf8 (const unsigned int * ranges, unsigned int ranges_count, unsigned int * s)
813 {
814 unsigned int * const s_start = s;
815 for (unsigned int i = 0; i < ranges_count - 2; i += 2)
816 for (unsigned int j = ranges[i]; j <= ranges[i + 1]; ++j)
817 s += re2c::utf8::rune_to_bytes (s, j);
818 re2c::utf8::rune_to_bytes (s, ranges[ranges_count - 1]);
819 return s - s_start + 1;
820 }
821
main()822 int main ()
823 {
824 unsigned int * buffer_Mc = new unsigned int [1600];
825 YYCTYPE * s = (YYCTYPE *) buffer_Mc;
826 unsigned int buffer_len = encode_utf8 (chars_Mc, sizeof (chars_Mc) / sizeof (unsigned int), buffer_Mc);
827 /* convert 32-bit code units to YYCTYPE; reuse the same buffer */
828 for (unsigned int i = 0; i < buffer_len; ++i) s[i] = buffer_Mc[i];
829 if (!scan (s, s + buffer_len))
830 printf("test 'Mc' failed\n");
831 delete [] buffer_Mc;
832 return 0;
833 }
834