1 /* Generated by re2c 0.15.3 on Fri Mar  8 21:20:09 2019 */
2 /**
3 
4 	MultiMarkdown -- Lightweight markup processor to produce HTML, LaTeX, and more.
5 
6 	@file opml-lexer.c
7 
8 	@brief Tokenize OPML file for parsing
9 
10 
11 	@author	Fletcher T. Penney
12 	@bug
13 
14 **/
15 
16 /*
17 
18 	Copyright © 2016 - 2019 Fletcher T. Penney.
19 
20 
21 	The `MultiMarkdown 6` project is released under the MIT License..
22 
23 	GLibFacade.c and GLibFacade.h are from the MultiMarkdown v4 project:
24 
25 		https://github.com/fletcher/MultiMarkdown-4/
26 
27 	MMD 4 is released under both the MIT License and GPL.
28 
29 
30 	CuTest is released under the zlib/libpng license. See CuTest.c for the
31 	text of the license.
32 
33 	uthash library:
34 		Copyright (c) 2005-2016, Troy D. Hanson
35 
36 		Licensed under Revised BSD license
37 
38 	miniz library:
39 		Copyright 2013-2014 RAD Game Tools and Valve Software
40 		Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC
41 
42 		Licensed under the MIT license
43 
44 	argtable3 library:
45 		Copyright (C) 1998-2001,2003-2011,2013 Stewart Heitmann
46 		<sheitmann@users.sourceforge.net>
47 		All rights reserved.
48 
49 		Licensed under the Revised BSD License
50 
51 
52 	## The MIT License ##
53 
54 	Permission is hereby granted, free of charge, to any person obtaining
55 	a copy of this software and associated documentation files (the
56 	"Software"), to deal in the Software without restriction, including
57 	without limitation the rights to use, copy, modify, merge, publish,
58 	distribute, sublicense, and/or sell copies of the Software, and to
59 	permit persons to whom the Software is furnished to do so, subject to
60 	the following conditions:
61 
62 	The above copyright notice and this permission notice shall be
63 	included in all copies or substantial portions of the Software.
64 
65 	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
66 	EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
67 	MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
68 	IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
69 	CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
70 	TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
71 	SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
72 
73 
74 	## Revised BSD License ##
75 
76 	Redistribution and use in source and binary forms, with or without
77 	modification, are permitted provided that the following conditions are
78 	met:
79 	    * Redistributions of source code must retain the above copyright
80 	      notice, this list of conditions and the following disclaimer.
81 	    * Redistributions in binary form must reproduce the above
82 	      copyright notice, this list of conditions and the following
83 	      disclaimer in the documentation and/or other materials provided
84 	      with the distribution.
85 	    * Neither the name of the <organization> nor the
86 	      names of its contributors may be used to endorse or promote
87 	      products derived from this software without specific prior
88 	      written permission.
89 
90 	THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
91 	"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
92 	LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
93 	A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT
94 	HOLDER> BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
95 	EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
96 	PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES LOSS OF USE, DATA, OR
97 	PROFITS OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
98 	LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
99 	NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
100 	SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
101 
102 
103 */
104 
105 #include <stdlib.h>
106 
107 #include "opml-lexer.h"
108 #include "opml-parser.h"
109 
110 
111 // Basic scanner struct
112 
113 #define YYCTYPE		unsigned char
114 #define YYCURSOR	s->cur
115 #define YYMARKER	s->ptr
116 #define YYCTXMARKER	s->ctx
117 
opml_scan(Scanner * s,const char * stop)118 int opml_scan(Scanner * s, const char * stop) {
119 
120 scan:
121 
122 	if (s->cur >= stop) {
123 		return 0;
124 	}
125 
126 	s->start = s->cur;
127 
128 
129 	{
130 		YYCTYPE yych;
131 		unsigned int yyaccept = 0;
132 		yych = *YYCURSOR;
133 
134 		switch (yych) {
135 			case '\t':
136 			case '\n':
137 			case ' ':
138 				goto yy4;
139 
140 			case '\r':
141 				goto yy6;
142 
143 			case '<':
144 				goto yy7;
145 
146 			default:
147 				goto yy2;
148 		}
149 
150 yy2:
151 		++YYCURSOR;
152 yy3: {
153 			goto scan;
154 		}
155 yy4:
156 		++YYCURSOR;
157 		yych = *YYCURSOR;
158 		goto yy190;
159 yy5: {
160 			return OPML_WSNL;
161 		}
162 yy6:
163 		yych = *++YYCURSOR;
164 		goto yy190;
165 yy7:
166 		yyaccept = 0;
167 		yych = *(YYMARKER = ++YYCURSOR);
168 
169 		switch (yych) {
170 			case '/':
171 				goto yy8;
172 
173 			case '?':
174 				goto yy14;
175 
176 			case 'B':
177 			case 'b':
178 				goto yy11;
179 
180 			case 'H':
181 			case 'h':
182 				goto yy13;
183 
184 			case 'O':
185 			case 'o':
186 				goto yy10;
187 
188 			case 'T':
189 			case 't':
190 				goto yy12;
191 
192 			default:
193 				goto yy3;
194 		}
195 
196 yy8:
197 		yych = *++YYCURSOR;
198 
199 		switch (yych) {
200 			case 'B':
201 			case 'b':
202 				goto yy159;
203 
204 			case 'H':
205 			case 'h':
206 				goto yy157;
207 
208 			case 'O':
209 			case 'o':
210 				goto yy156;
211 
212 			case 'T':
213 			case 't':
214 				goto yy158;
215 
216 			default:
217 				goto yy9;
218 		}
219 
220 yy9:
221 		YYCURSOR = YYMARKER;
222 
223 		switch (yyaccept) {
224 			case 0:
225 				goto yy3;
226 
227 			case 1:
228 				goto yy56;
229 
230 			default:
231 				goto yy58;
232 		}
233 
234 yy10:
235 		yych = *++YYCURSOR;
236 
237 		switch (yych) {
238 			case 'P':
239 			case 'p':
240 				goto yy40;
241 
242 			case 'U':
243 			case 'u':
244 				goto yy41;
245 
246 			default:
247 				goto yy9;
248 		}
249 
250 yy11:
251 		yych = *++YYCURSOR;
252 
253 		switch (yych) {
254 			case 'O':
255 			case 'o':
256 				goto yy34;
257 
258 			default:
259 				goto yy9;
260 		}
261 
262 yy12:
263 		yych = *++YYCURSOR;
264 
265 		switch (yych) {
266 			case 'I':
267 			case 'i':
268 				goto yy27;
269 
270 			default:
271 				goto yy9;
272 		}
273 
274 yy13:
275 		yych = *++YYCURSOR;
276 
277 		switch (yych) {
278 			case 'E':
279 			case 'e':
280 				goto yy21;
281 
282 			default:
283 				goto yy9;
284 		}
285 
286 yy14:
287 		yych = *++YYCURSOR;
288 
289 		switch (yych) {
290 			case 'X':
291 			case 'x':
292 				goto yy15;
293 
294 			default:
295 				goto yy9;
296 		}
297 
298 yy15:
299 		yych = *++YYCURSOR;
300 
301 		switch (yych) {
302 			case 'M':
303 			case 'm':
304 				goto yy16;
305 
306 			default:
307 				goto yy9;
308 		}
309 
310 yy16:
311 		yych = *++YYCURSOR;
312 
313 		switch (yych) {
314 			case 'L':
315 			case 'l':
316 				goto yy17;
317 
318 			default:
319 				goto yy9;
320 		}
321 
322 yy17:
323 		++YYCURSOR;
324 		yych = *YYCURSOR;
325 
326 		switch (yych) {
327 			case 0x00:
328 				goto yy9;
329 
330 			case '>':
331 				goto yy19;
332 
333 			default:
334 				goto yy17;
335 		}
336 
337 yy19:
338 		++YYCURSOR;
339 		{
340 			return OPML_XML;
341 		}
342 yy21:
343 		yych = *++YYCURSOR;
344 
345 		switch (yych) {
346 			case 'A':
347 			case 'a':
348 				goto yy22;
349 
350 			default:
351 				goto yy9;
352 		}
353 
354 yy22:
355 		yych = *++YYCURSOR;
356 
357 		switch (yych) {
358 			case 'D':
359 			case 'd':
360 				goto yy23;
361 
362 			default:
363 				goto yy9;
364 		}
365 
366 yy23:
367 		++YYCURSOR;
368 		yych = *YYCURSOR;
369 
370 		switch (yych) {
371 			case 0x00:
372 				goto yy9;
373 
374 			case '>':
375 				goto yy25;
376 
377 			default:
378 				goto yy23;
379 		}
380 
381 yy25:
382 		++YYCURSOR;
383 		{
384 			return OPML_HEAD_OPEN;
385 		}
386 yy27:
387 		yych = *++YYCURSOR;
388 
389 		switch (yych) {
390 			case 'T':
391 			case 't':
392 				goto yy28;
393 
394 			default:
395 				goto yy9;
396 		}
397 
398 yy28:
399 		yych = *++YYCURSOR;
400 
401 		switch (yych) {
402 			case 'L':
403 			case 'l':
404 				goto yy29;
405 
406 			default:
407 				goto yy9;
408 		}
409 
410 yy29:
411 		yych = *++YYCURSOR;
412 
413 		switch (yych) {
414 			case 'E':
415 			case 'e':
416 				goto yy30;
417 
418 			default:
419 				goto yy9;
420 		}
421 
422 yy30:
423 		++YYCURSOR;
424 		yych = *YYCURSOR;
425 
426 		switch (yych) {
427 			case 0x00:
428 				goto yy9;
429 
430 			case '>':
431 				goto yy32;
432 
433 			default:
434 				goto yy30;
435 		}
436 
437 yy32:
438 		++YYCURSOR;
439 		{
440 			return OPML_TITLE_OPEN;
441 		}
442 yy34:
443 		yych = *++YYCURSOR;
444 
445 		switch (yych) {
446 			case 'D':
447 			case 'd':
448 				goto yy35;
449 
450 			default:
451 				goto yy9;
452 		}
453 
454 yy35:
455 		yych = *++YYCURSOR;
456 
457 		switch (yych) {
458 			case 'Y':
459 			case 'y':
460 				goto yy36;
461 
462 			default:
463 				goto yy9;
464 		}
465 
466 yy36:
467 		++YYCURSOR;
468 		yych = *YYCURSOR;
469 
470 		switch (yych) {
471 			case 0x00:
472 				goto yy9;
473 
474 			case '>':
475 				goto yy38;
476 
477 			default:
478 				goto yy36;
479 		}
480 
481 yy38:
482 		++YYCURSOR;
483 		{
484 			return OPML_BODY_OPEN;
485 		}
486 yy40:
487 		yych = *++YYCURSOR;
488 
489 		switch (yych) {
490 			case 'M':
491 			case 'm':
492 				goto yy151;
493 
494 			default:
495 				goto yy9;
496 		}
497 
498 yy41:
499 		yych = *++YYCURSOR;
500 
501 		switch (yych) {
502 			case 'T':
503 			case 't':
504 				goto yy42;
505 
506 			default:
507 				goto yy9;
508 		}
509 
510 yy42:
511 		yych = *++YYCURSOR;
512 
513 		switch (yych) {
514 			case 'L':
515 			case 'l':
516 				goto yy43;
517 
518 			default:
519 				goto yy9;
520 		}
521 
522 yy43:
523 		yych = *++YYCURSOR;
524 
525 		switch (yych) {
526 			case 'I':
527 			case 'i':
528 				goto yy44;
529 
530 			default:
531 				goto yy9;
532 		}
533 
534 yy44:
535 		yych = *++YYCURSOR;
536 
537 		switch (yych) {
538 			case 'N':
539 			case 'n':
540 				goto yy45;
541 
542 			default:
543 				goto yy9;
544 		}
545 
546 yy45:
547 		yych = *++YYCURSOR;
548 
549 		switch (yych) {
550 			case 'E':
551 			case 'e':
552 				goto yy46;
553 
554 			default:
555 				goto yy9;
556 		}
557 
558 yy46:
559 		++YYCURSOR;
560 		yych = *YYCURSOR;
561 
562 		switch (yych) {
563 			case 0x00:
564 				goto yy9;
565 
566 			case '\t':
567 			case '\n':
568 			case ' ':
569 				goto yy46;
570 
571 			case '\r':
572 				goto yy48;
573 
574 			case '/':
575 				goto yy53;
576 
577 			case '>':
578 				goto yy55;
579 
580 			case 'T':
581 			case 't':
582 				goto yy50;
583 
584 			default:
585 				goto yy51;
586 		}
587 
588 yy48:
589 		++YYCURSOR;
590 		yych = *YYCURSOR;
591 
592 		switch (yych) {
593 			case 0x00:
594 				goto yy9;
595 
596 			case '\t':
597 			case '\n':
598 			case ' ':
599 				goto yy46;
600 
601 			case '\r':
602 				goto yy48;
603 
604 			case '/':
605 				goto yy53;
606 
607 			case '>':
608 				goto yy55;
609 
610 			case 'T':
611 			case 't':
612 				goto yy50;
613 
614 			default:
615 				goto yy51;
616 		}
617 
618 yy50:
619 		yych = *++YYCURSOR;
620 
621 		switch (yych) {
622 			case 'E':
623 			case 'e':
624 				goto yy59;
625 
626 			default:
627 				goto yy52;
628 		}
629 
630 yy51:
631 		++YYCURSOR;
632 		yych = *YYCURSOR;
633 yy52:
634 
635 		switch (yych) {
636 			case 0x00:
637 				goto yy9;
638 
639 			case '/':
640 				goto yy53;
641 
642 			case '>':
643 				goto yy55;
644 
645 			default:
646 				goto yy51;
647 		}
648 
649 yy53:
650 		++YYCURSOR;
651 		yych = *YYCURSOR;
652 
653 		switch (yych) {
654 			case 0x00:
655 				goto yy9;
656 
657 			case '/':
658 				goto yy53;
659 
660 			case '>':
661 				goto yy57;
662 
663 			default:
664 				goto yy51;
665 		}
666 
667 yy55:
668 		++YYCURSOR;
669 yy56: {
670 			return OPML_OUTLINE_OPEN;
671 		}
672 yy57:
673 		++YYCURSOR;
674 yy58: {
675 			return OPML_OUTLINE_SELF_CLOSE;
676 		}
677 yy59:
678 		yych = *++YYCURSOR;
679 
680 		switch (yych) {
681 			case 'X':
682 			case 'x':
683 				goto yy60;
684 
685 			default:
686 				goto yy52;
687 		}
688 
689 yy60:
690 		yych = *++YYCURSOR;
691 
692 		switch (yych) {
693 			case 'T':
694 			case 't':
695 				goto yy61;
696 
697 			default:
698 				goto yy52;
699 		}
700 
701 yy61:
702 		++YYCURSOR;
703 		yych = *YYCURSOR;
704 
705 		switch (yych) {
706 			case 0x00:
707 				goto yy9;
708 
709 			case '\t':
710 			case '\n':
711 			case ' ':
712 				goto yy61;
713 
714 			case '\r':
715 				goto yy63;
716 
717 			case '/':
718 				goto yy53;
719 
720 			case '=':
721 				goto yy65;
722 
723 			case '>':
724 				goto yy55;
725 
726 			default:
727 				goto yy51;
728 		}
729 
730 yy63:
731 		++YYCURSOR;
732 		yych = *YYCURSOR;
733 
734 		switch (yych) {
735 			case 0x00:
736 				goto yy9;
737 
738 			case '\t':
739 			case '\n':
740 			case ' ':
741 				goto yy61;
742 
743 			case '\r':
744 				goto yy63;
745 
746 			case '/':
747 				goto yy53;
748 
749 			case '=':
750 				goto yy65;
751 
752 			case '>':
753 				goto yy55;
754 
755 			default:
756 				goto yy51;
757 		}
758 
759 yy65:
760 		++YYCURSOR;
761 		yych = *YYCURSOR;
762 
763 		switch (yych) {
764 			case 0x00:
765 				goto yy9;
766 
767 			case '\t':
768 			case '\n':
769 			case ' ':
770 				goto yy65;
771 
772 			case '\r':
773 				goto yy67;
774 
775 			case '"':
776 				goto yy69;
777 
778 			case '/':
779 				goto yy53;
780 
781 			case '>':
782 				goto yy55;
783 
784 			default:
785 				goto yy51;
786 		}
787 
788 yy67:
789 		++YYCURSOR;
790 		yych = *YYCURSOR;
791 
792 		switch (yych) {
793 			case 0x00:
794 				goto yy9;
795 
796 			case '\t':
797 			case '\n':
798 			case ' ':
799 				goto yy65;
800 
801 			case '\r':
802 				goto yy67;
803 
804 			case '"':
805 				goto yy69;
806 
807 			case '/':
808 				goto yy53;
809 
810 			case '>':
811 				goto yy55;
812 
813 			default:
814 				goto yy51;
815 		}
816 
817 yy69:
818 		yych = *++YYCURSOR;
819 
820 		switch (yych) {
821 			case '&':
822 				goto yy70;
823 
824 			default:
825 				goto yy52;
826 		}
827 
828 yy70:
829 		yych = *++YYCURSOR;
830 
831 		switch (yych) {
832 			case 'G':
833 			case 'g':
834 				goto yy71;
835 
836 			default:
837 				goto yy52;
838 		}
839 
840 yy71:
841 		yych = *++YYCURSOR;
842 
843 		switch (yych) {
844 			case 'T':
845 			case 't':
846 				goto yy72;
847 
848 			default:
849 				goto yy52;
850 		}
851 
852 yy72:
853 		yych = *++YYCURSOR;
854 
855 		switch (yych) {
856 			case ';':
857 				goto yy73;
858 
859 			default:
860 				goto yy52;
861 		}
862 
863 yy73:
864 		yych = *++YYCURSOR;
865 
866 		switch (yych) {
867 			case '&':
868 				goto yy74;
869 
870 			default:
871 				goto yy52;
872 		}
873 
874 yy74:
875 		yych = *++YYCURSOR;
876 
877 		switch (yych) {
878 			case 'G':
879 			case 'g':
880 				goto yy75;
881 
882 			default:
883 				goto yy52;
884 		}
885 
886 yy75:
887 		yych = *++YYCURSOR;
888 
889 		switch (yych) {
890 			case 'T':
891 			case 't':
892 				goto yy76;
893 
894 			default:
895 				goto yy52;
896 		}
897 
898 yy76:
899 		yych = *++YYCURSOR;
900 
901 		switch (yych) {
902 			case ';':
903 				goto yy77;
904 
905 			default:
906 				goto yy52;
907 		}
908 
909 yy77:
910 		yych = *++YYCURSOR;
911 
912 		switch (yych) {
913 			case 'M':
914 			case 'm':
915 				goto yy79;
916 
917 			case 'P':
918 			case 'p':
919 				goto yy78;
920 
921 			default:
922 				goto yy52;
923 		}
924 
925 yy78:
926 		yych = *++YYCURSOR;
927 
928 		switch (yych) {
929 			case 'R':
930 			case 'r':
931 				goto yy101;
932 
933 			default:
934 				goto yy52;
935 		}
936 
937 yy79:
938 		yych = *++YYCURSOR;
939 
940 		switch (yych) {
941 			case 'E':
942 			case 'e':
943 				goto yy80;
944 
945 			default:
946 				goto yy52;
947 		}
948 
949 yy80:
950 		yych = *++YYCURSOR;
951 
952 		switch (yych) {
953 			case 'T':
954 			case 't':
955 				goto yy81;
956 
957 			default:
958 				goto yy52;
959 		}
960 
961 yy81:
962 		yych = *++YYCURSOR;
963 
964 		switch (yych) {
965 			case 'A':
966 			case 'a':
967 				goto yy82;
968 
969 			default:
970 				goto yy52;
971 		}
972 
973 yy82:
974 		yych = *++YYCURSOR;
975 
976 		switch (yych) {
977 			case 'D':
978 			case 'd':
979 				goto yy83;
980 
981 			default:
982 				goto yy52;
983 		}
984 
985 yy83:
986 		yych = *++YYCURSOR;
987 
988 		switch (yych) {
989 			case 'A':
990 			case 'a':
991 				goto yy84;
992 
993 			default:
994 				goto yy52;
995 		}
996 
997 yy84:
998 		yych = *++YYCURSOR;
999 
1000 		switch (yych) {
1001 			case 'T':
1002 			case 't':
1003 				goto yy85;
1004 
1005 			default:
1006 				goto yy52;
1007 		}
1008 
1009 yy85:
1010 		yych = *++YYCURSOR;
1011 
1012 		switch (yych) {
1013 			case 'A':
1014 			case 'a':
1015 				goto yy86;
1016 
1017 			default:
1018 				goto yy52;
1019 		}
1020 
1021 yy86:
1022 		yych = *++YYCURSOR;
1023 
1024 		switch (yych) {
1025 			case '&':
1026 				goto yy87;
1027 
1028 			default:
1029 				goto yy52;
1030 		}
1031 
1032 yy87:
1033 		yych = *++YYCURSOR;
1034 
1035 		switch (yych) {
1036 			case 'L':
1037 			case 'l':
1038 				goto yy88;
1039 
1040 			default:
1041 				goto yy52;
1042 		}
1043 
1044 yy88:
1045 		yych = *++YYCURSOR;
1046 
1047 		switch (yych) {
1048 			case 'T':
1049 			case 't':
1050 				goto yy89;
1051 
1052 			default:
1053 				goto yy52;
1054 		}
1055 
1056 yy89:
1057 		yych = *++YYCURSOR;
1058 
1059 		switch (yych) {
1060 			case ';':
1061 				goto yy90;
1062 
1063 			default:
1064 				goto yy52;
1065 		}
1066 
1067 yy90:
1068 		yych = *++YYCURSOR;
1069 
1070 		switch (yych) {
1071 			case '&':
1072 				goto yy91;
1073 
1074 			default:
1075 				goto yy52;
1076 		}
1077 
1078 yy91:
1079 		yych = *++YYCURSOR;
1080 
1081 		switch (yych) {
1082 			case 'L':
1083 			case 'l':
1084 				goto yy92;
1085 
1086 			default:
1087 				goto yy52;
1088 		}
1089 
1090 yy92:
1091 		yych = *++YYCURSOR;
1092 
1093 		switch (yych) {
1094 			case 'T':
1095 			case 't':
1096 				goto yy93;
1097 
1098 			default:
1099 				goto yy52;
1100 		}
1101 
1102 yy93:
1103 		yych = *++YYCURSOR;
1104 
1105 		switch (yych) {
1106 			case ';':
1107 				goto yy94;
1108 
1109 			default:
1110 				goto yy52;
1111 		}
1112 
1113 yy94:
1114 		yych = *++YYCURSOR;
1115 
1116 		switch (yych) {
1117 			case '"':
1118 				goto yy95;
1119 
1120 			default:
1121 				goto yy52;
1122 		}
1123 
1124 yy95:
1125 		++YYCURSOR;
1126 		yych = *YYCURSOR;
1127 
1128 		switch (yych) {
1129 			case 0x00:
1130 				goto yy9;
1131 
1132 			case '\t':
1133 			case '\n':
1134 			case ' ':
1135 				goto yy95;
1136 
1137 			case '\r':
1138 				goto yy99;
1139 
1140 			case '/':
1141 				goto yy53;
1142 
1143 			case '>':
1144 				goto yy97;
1145 
1146 			default:
1147 				goto yy51;
1148 		}
1149 
1150 yy97:
1151 		++YYCURSOR;
1152 		{
1153 			return OPML_OUTLINE_METADATA;
1154 		}
1155 yy99:
1156 		++YYCURSOR;
1157 		yych = *YYCURSOR;
1158 
1159 		switch (yych) {
1160 			case 0x00:
1161 				goto yy9;
1162 
1163 			case '\t':
1164 			case '\n':
1165 			case ' ':
1166 				goto yy95;
1167 
1168 			case '\r':
1169 				goto yy99;
1170 
1171 			case '/':
1172 				goto yy53;
1173 
1174 			case '>':
1175 				goto yy97;
1176 
1177 			default:
1178 				goto yy51;
1179 		}
1180 
1181 yy101:
1182 		yych = *++YYCURSOR;
1183 
1184 		switch (yych) {
1185 			case 'E':
1186 			case 'e':
1187 				goto yy102;
1188 
1189 			default:
1190 				goto yy52;
1191 		}
1192 
1193 yy102:
1194 		yych = *++YYCURSOR;
1195 
1196 		switch (yych) {
1197 			case 'A':
1198 			case 'a':
1199 				goto yy103;
1200 
1201 			default:
1202 				goto yy52;
1203 		}
1204 
1205 yy103:
1206 		yych = *++YYCURSOR;
1207 
1208 		switch (yych) {
1209 			case 'M':
1210 			case 'm':
1211 				goto yy104;
1212 
1213 			default:
1214 				goto yy52;
1215 		}
1216 
1217 yy104:
1218 		yych = *++YYCURSOR;
1219 
1220 		switch (yych) {
1221 			case 'B':
1222 			case 'b':
1223 				goto yy105;
1224 
1225 			default:
1226 				goto yy52;
1227 		}
1228 
1229 yy105:
1230 		yych = *++YYCURSOR;
1231 
1232 		switch (yych) {
1233 			case 'L':
1234 			case 'l':
1235 				goto yy106;
1236 
1237 			default:
1238 				goto yy52;
1239 		}
1240 
1241 yy106:
1242 		yych = *++YYCURSOR;
1243 
1244 		switch (yych) {
1245 			case 'E':
1246 			case 'e':
1247 				goto yy107;
1248 
1249 			default:
1250 				goto yy52;
1251 		}
1252 
1253 yy107:
1254 		yych = *++YYCURSOR;
1255 
1256 		switch (yych) {
1257 			case '&':
1258 				goto yy108;
1259 
1260 			default:
1261 				goto yy52;
1262 		}
1263 
1264 yy108:
1265 		yych = *++YYCURSOR;
1266 
1267 		switch (yych) {
1268 			case 'L':
1269 			case 'l':
1270 				goto yy109;
1271 
1272 			default:
1273 				goto yy52;
1274 		}
1275 
1276 yy109:
1277 		yych = *++YYCURSOR;
1278 
1279 		switch (yych) {
1280 			case 'T':
1281 			case 't':
1282 				goto yy110;
1283 
1284 			default:
1285 				goto yy52;
1286 		}
1287 
1288 yy110:
1289 		yych = *++YYCURSOR;
1290 
1291 		switch (yych) {
1292 			case ';':
1293 				goto yy111;
1294 
1295 			default:
1296 				goto yy52;
1297 		}
1298 
1299 yy111:
1300 		yych = *++YYCURSOR;
1301 
1302 		switch (yych) {
1303 			case '&':
1304 				goto yy112;
1305 
1306 			default:
1307 				goto yy52;
1308 		}
1309 
1310 yy112:
1311 		yych = *++YYCURSOR;
1312 
1313 		switch (yych) {
1314 			case 'L':
1315 			case 'l':
1316 				goto yy113;
1317 
1318 			default:
1319 				goto yy52;
1320 		}
1321 
1322 yy113:
1323 		yych = *++YYCURSOR;
1324 
1325 		switch (yych) {
1326 			case 'T':
1327 			case 't':
1328 				goto yy114;
1329 
1330 			default:
1331 				goto yy52;
1332 		}
1333 
1334 yy114:
1335 		yych = *++YYCURSOR;
1336 
1337 		switch (yych) {
1338 			case ';':
1339 				goto yy115;
1340 
1341 			default:
1342 				goto yy52;
1343 		}
1344 
1345 yy115:
1346 		yych = *++YYCURSOR;
1347 
1348 		switch (yych) {
1349 			case '"':
1350 				goto yy116;
1351 
1352 			default:
1353 				goto yy52;
1354 		}
1355 
1356 yy116:
1357 		++YYCURSOR;
1358 		yych = *YYCURSOR;
1359 
1360 		switch (yych) {
1361 			case 0x00:
1362 				goto yy9;
1363 
1364 			case '\t':
1365 			case '\n':
1366 			case ' ':
1367 				goto yy116;
1368 
1369 			case '\r':
1370 				goto yy118;
1371 
1372 			case '/':
1373 				goto yy53;
1374 
1375 			case '>':
1376 				goto yy55;
1377 
1378 			case '_':
1379 				goto yy120;
1380 
1381 			default:
1382 				goto yy51;
1383 		}
1384 
1385 yy118:
1386 		++YYCURSOR;
1387 		yych = *YYCURSOR;
1388 
1389 		switch (yych) {
1390 			case 0x00:
1391 				goto yy9;
1392 
1393 			case '\t':
1394 			case '\n':
1395 			case ' ':
1396 				goto yy116;
1397 
1398 			case '\r':
1399 				goto yy118;
1400 
1401 			case '/':
1402 				goto yy53;
1403 
1404 			case '>':
1405 				goto yy55;
1406 
1407 			case '_':
1408 				goto yy120;
1409 
1410 			default:
1411 				goto yy51;
1412 		}
1413 
1414 yy120:
1415 		yych = *++YYCURSOR;
1416 
1417 		switch (yych) {
1418 			case 'N':
1419 			case 'n':
1420 				goto yy121;
1421 
1422 			default:
1423 				goto yy52;
1424 		}
1425 
1426 yy121:
1427 		yych = *++YYCURSOR;
1428 
1429 		switch (yych) {
1430 			case 'O':
1431 			case 'o':
1432 				goto yy122;
1433 
1434 			default:
1435 				goto yy52;
1436 		}
1437 
1438 yy122:
1439 		yych = *++YYCURSOR;
1440 
1441 		switch (yych) {
1442 			case 'T':
1443 			case 't':
1444 				goto yy123;
1445 
1446 			default:
1447 				goto yy52;
1448 		}
1449 
1450 yy123:
1451 		yych = *++YYCURSOR;
1452 
1453 		switch (yych) {
1454 			case 'E':
1455 			case 'e':
1456 				goto yy124;
1457 
1458 			default:
1459 				goto yy52;
1460 		}
1461 
1462 yy124:
1463 		++YYCURSOR;
1464 		yych = *YYCURSOR;
1465 
1466 		switch (yych) {
1467 			case 0x00:
1468 				goto yy9;
1469 
1470 			case '\t':
1471 			case '\n':
1472 			case ' ':
1473 				goto yy124;
1474 
1475 			case '\r':
1476 				goto yy126;
1477 
1478 			case '/':
1479 				goto yy53;
1480 
1481 			case '=':
1482 				goto yy128;
1483 
1484 			case '>':
1485 				goto yy55;
1486 
1487 			default:
1488 				goto yy51;
1489 		}
1490 
1491 yy126:
1492 		++YYCURSOR;
1493 		yych = *YYCURSOR;
1494 
1495 		switch (yych) {
1496 			case 0x00:
1497 				goto yy9;
1498 
1499 			case '\t':
1500 			case '\n':
1501 			case ' ':
1502 				goto yy124;
1503 
1504 			case '\r':
1505 				goto yy126;
1506 
1507 			case '/':
1508 				goto yy53;
1509 
1510 			case '=':
1511 				goto yy128;
1512 
1513 			case '>':
1514 				goto yy55;
1515 
1516 			default:
1517 				goto yy51;
1518 		}
1519 
1520 yy128:
1521 		++YYCURSOR;
1522 		yych = *YYCURSOR;
1523 
1524 		switch (yych) {
1525 			case 0x00:
1526 				goto yy9;
1527 
1528 			case '\t':
1529 			case '\n':
1530 			case ' ':
1531 				goto yy128;
1532 
1533 			case '\r':
1534 				goto yy130;
1535 
1536 			case '"':
1537 				goto yy132;
1538 
1539 			case '/':
1540 				goto yy53;
1541 
1542 			case '>':
1543 				goto yy55;
1544 
1545 			default:
1546 				goto yy51;
1547 		}
1548 
1549 yy130:
1550 		++YYCURSOR;
1551 		yych = *YYCURSOR;
1552 
1553 		switch (yych) {
1554 			case 0x00:
1555 				goto yy9;
1556 
1557 			case '\t':
1558 			case '\n':
1559 			case ' ':
1560 				goto yy128;
1561 
1562 			case '\r':
1563 				goto yy130;
1564 
1565 			case '"':
1566 				goto yy132;
1567 
1568 			case '/':
1569 				goto yy53;
1570 
1571 			case '>':
1572 				goto yy55;
1573 
1574 			default:
1575 				goto yy51;
1576 		}
1577 
1578 yy132:
1579 		++YYCURSOR;
1580 		yych = *YYCURSOR;
1581 
1582 		switch (yych) {
1583 			case 0x00:
1584 				goto yy9;
1585 
1586 			case '"':
1587 				goto yy137;
1588 
1589 			case '/':
1590 				goto yy134;
1591 
1592 			case '>':
1593 				goto yy136;
1594 
1595 			default:
1596 				goto yy132;
1597 		}
1598 
1599 yy134:
1600 		++YYCURSOR;
1601 		yych = *YYCURSOR;
1602 
1603 		switch (yych) {
1604 			case 0x00:
1605 				goto yy9;
1606 
1607 			case '"':
1608 				goto yy137;
1609 
1610 			case '/':
1611 				goto yy134;
1612 
1613 			case '>':
1614 				goto yy150;
1615 
1616 			default:
1617 				goto yy132;
1618 		}
1619 
1620 yy136:
1621 		yyaccept = 1;
1622 		yych = *(YYMARKER = ++YYCURSOR);
1623 
1624 		if (yych <= 0x00) {
1625 			goto yy56;
1626 		}
1627 
1628 		goto yy146;
1629 yy137:
1630 		++YYCURSOR;
1631 		yych = *YYCURSOR;
1632 
1633 		switch (yych) {
1634 			case 0x00:
1635 				goto yy9;
1636 
1637 			case '\t':
1638 			case '\n':
1639 			case ' ':
1640 				goto yy137;
1641 
1642 			case '\r':
1643 				goto yy141;
1644 
1645 			case '/':
1646 				goto yy53;
1647 
1648 			case '>':
1649 				goto yy139;
1650 
1651 			default:
1652 				goto yy51;
1653 		}
1654 
1655 yy139:
1656 		++YYCURSOR;
1657 yy140: {
1658 			return OPML_OUTLINE_PREAMBLE;
1659 		}
1660 yy141:
1661 		++YYCURSOR;
1662 		yych = *YYCURSOR;
1663 
1664 		switch (yych) {
1665 			case 0x00:
1666 				goto yy9;
1667 
1668 			case '\t':
1669 			case '\n':
1670 			case ' ':
1671 				goto yy137;
1672 
1673 			case '\r':
1674 				goto yy141;
1675 
1676 			case '/':
1677 				goto yy53;
1678 
1679 			case '>':
1680 				goto yy139;
1681 
1682 			default:
1683 				goto yy51;
1684 		}
1685 
1686 yy143:
1687 		++YYCURSOR;
1688 		yych = *YYCURSOR;
1689 
1690 		switch (yych) {
1691 			case '\t':
1692 			case '\n':
1693 			case ' ':
1694 				goto yy143;
1695 
1696 			case '\r':
1697 				goto yy147;
1698 
1699 			case '>':
1700 				goto yy149;
1701 
1702 			default:
1703 				goto yy9;
1704 		}
1705 
1706 yy145:
1707 		++YYCURSOR;
1708 		yych = *YYCURSOR;
1709 yy146:
1710 
1711 		switch (yych) {
1712 			case 0x00:
1713 				goto yy9;
1714 
1715 			case '"':
1716 				goto yy143;
1717 
1718 			default:
1719 				goto yy145;
1720 		}
1721 
1722 yy147:
1723 		++YYCURSOR;
1724 		yych = *YYCURSOR;
1725 
1726 		switch (yych) {
1727 			case '\t':
1728 			case '\n':
1729 			case ' ':
1730 				goto yy143;
1731 
1732 			case '\r':
1733 				goto yy147;
1734 
1735 			case '>':
1736 				goto yy149;
1737 
1738 			default:
1739 				goto yy9;
1740 		}
1741 
1742 yy149:
1743 		yych = *++YYCURSOR;
1744 		goto yy140;
1745 yy150:
1746 		yyaccept = 2;
1747 		yych = *(YYMARKER = ++YYCURSOR);
1748 
1749 		if (yych <= 0x00) {
1750 			goto yy58;
1751 		}
1752 
1753 		goto yy146;
1754 yy151:
1755 		yych = *++YYCURSOR;
1756 
1757 		switch (yych) {
1758 			case 'L':
1759 			case 'l':
1760 				goto yy152;
1761 
1762 			default:
1763 				goto yy9;
1764 		}
1765 
1766 yy152:
1767 		++YYCURSOR;
1768 		yych = *YYCURSOR;
1769 
1770 		switch (yych) {
1771 			case 0x00:
1772 				goto yy9;
1773 
1774 			case '>':
1775 				goto yy154;
1776 
1777 			default:
1778 				goto yy152;
1779 		}
1780 
1781 yy154:
1782 		++YYCURSOR;
1783 		{
1784 			return OPML_OPML_OPEN;
1785 		}
1786 yy156:
1787 		yych = *++YYCURSOR;
1788 
1789 		switch (yych) {
1790 			case 'P':
1791 			case 'p':
1792 				goto yy177;
1793 
1794 			case 'U':
1795 			case 'u':
1796 				goto yy176;
1797 
1798 			default:
1799 				goto yy9;
1800 		}
1801 
1802 yy157:
1803 		yych = *++YYCURSOR;
1804 
1805 		switch (yych) {
1806 			case 'E':
1807 			case 'e':
1808 				goto yy171;
1809 
1810 			default:
1811 				goto yy9;
1812 		}
1813 
1814 yy158:
1815 		yych = *++YYCURSOR;
1816 
1817 		switch (yych) {
1818 			case 'I':
1819 			case 'i':
1820 				goto yy165;
1821 
1822 			default:
1823 				goto yy9;
1824 		}
1825 
1826 yy159:
1827 		yych = *++YYCURSOR;
1828 
1829 		switch (yych) {
1830 			case 'O':
1831 			case 'o':
1832 				goto yy160;
1833 
1834 			default:
1835 				goto yy9;
1836 		}
1837 
1838 yy160:
1839 		yych = *++YYCURSOR;
1840 
1841 		switch (yych) {
1842 			case 'D':
1843 			case 'd':
1844 				goto yy161;
1845 
1846 			default:
1847 				goto yy9;
1848 		}
1849 
1850 yy161:
1851 		yych = *++YYCURSOR;
1852 
1853 		switch (yych) {
1854 			case 'Y':
1855 			case 'y':
1856 				goto yy162;
1857 
1858 			default:
1859 				goto yy9;
1860 		}
1861 
1862 yy162:
1863 		yych = *++YYCURSOR;
1864 
1865 		switch (yych) {
1866 			case '>':
1867 				goto yy163;
1868 
1869 			default:
1870 				goto yy9;
1871 		}
1872 
1873 yy163:
1874 		++YYCURSOR;
1875 		{
1876 			return OPML_BODY_CLOSE;
1877 		}
1878 yy165:
1879 		yych = *++YYCURSOR;
1880 
1881 		switch (yych) {
1882 			case 'T':
1883 			case 't':
1884 				goto yy166;
1885 
1886 			default:
1887 				goto yy9;
1888 		}
1889 
1890 yy166:
1891 		yych = *++YYCURSOR;
1892 
1893 		switch (yych) {
1894 			case 'L':
1895 			case 'l':
1896 				goto yy167;
1897 
1898 			default:
1899 				goto yy9;
1900 		}
1901 
1902 yy167:
1903 		yych = *++YYCURSOR;
1904 
1905 		switch (yych) {
1906 			case 'E':
1907 			case 'e':
1908 				goto yy168;
1909 
1910 			default:
1911 				goto yy9;
1912 		}
1913 
1914 yy168:
1915 		yych = *++YYCURSOR;
1916 
1917 		switch (yych) {
1918 			case '>':
1919 				goto yy169;
1920 
1921 			default:
1922 				goto yy9;
1923 		}
1924 
1925 yy169:
1926 		++YYCURSOR;
1927 		{
1928 			return OPML_TITLE_CLOSE;
1929 		}
1930 yy171:
1931 		yych = *++YYCURSOR;
1932 
1933 		switch (yych) {
1934 			case 'A':
1935 			case 'a':
1936 				goto yy172;
1937 
1938 			default:
1939 				goto yy9;
1940 		}
1941 
1942 yy172:
1943 		yych = *++YYCURSOR;
1944 
1945 		switch (yych) {
1946 			case 'D':
1947 			case 'd':
1948 				goto yy173;
1949 
1950 			default:
1951 				goto yy9;
1952 		}
1953 
1954 yy173:
1955 		yych = *++YYCURSOR;
1956 
1957 		switch (yych) {
1958 			case '>':
1959 				goto yy174;
1960 
1961 			default:
1962 				goto yy9;
1963 		}
1964 
1965 yy174:
1966 		++YYCURSOR;
1967 		{
1968 			return OPML_HEAD_CLOSE;
1969 		}
1970 yy176:
1971 		yych = *++YYCURSOR;
1972 
1973 		switch (yych) {
1974 			case 'T':
1975 			case 't':
1976 				goto yy182;
1977 
1978 			default:
1979 				goto yy9;
1980 		}
1981 
1982 yy177:
1983 		yych = *++YYCURSOR;
1984 
1985 		switch (yych) {
1986 			case 'M':
1987 			case 'm':
1988 				goto yy178;
1989 
1990 			default:
1991 				goto yy9;
1992 		}
1993 
1994 yy178:
1995 		yych = *++YYCURSOR;
1996 
1997 		switch (yych) {
1998 			case 'L':
1999 			case 'l':
2000 				goto yy179;
2001 
2002 			default:
2003 				goto yy9;
2004 		}
2005 
2006 yy179:
2007 		yych = *++YYCURSOR;
2008 
2009 		switch (yych) {
2010 			case '>':
2011 				goto yy180;
2012 
2013 			default:
2014 				goto yy9;
2015 		}
2016 
2017 yy180:
2018 		++YYCURSOR;
2019 		{
2020 			return OPML_OPML_CLOSE;
2021 		}
2022 yy182:
2023 		yych = *++YYCURSOR;
2024 
2025 		switch (yych) {
2026 			case 'L':
2027 			case 'l':
2028 				goto yy183;
2029 
2030 			default:
2031 				goto yy9;
2032 		}
2033 
2034 yy183:
2035 		yych = *++YYCURSOR;
2036 
2037 		switch (yych) {
2038 			case 'I':
2039 			case 'i':
2040 				goto yy184;
2041 
2042 			default:
2043 				goto yy9;
2044 		}
2045 
2046 yy184:
2047 		yych = *++YYCURSOR;
2048 
2049 		switch (yych) {
2050 			case 'N':
2051 			case 'n':
2052 				goto yy185;
2053 
2054 			default:
2055 				goto yy9;
2056 		}
2057 
2058 yy185:
2059 		yych = *++YYCURSOR;
2060 
2061 		switch (yych) {
2062 			case 'E':
2063 			case 'e':
2064 				goto yy186;
2065 
2066 			default:
2067 				goto yy9;
2068 		}
2069 
2070 yy186:
2071 		yych = *++YYCURSOR;
2072 
2073 		switch (yych) {
2074 			case '>':
2075 				goto yy187;
2076 
2077 			default:
2078 				goto yy9;
2079 		}
2080 
2081 yy187:
2082 		++YYCURSOR;
2083 		{
2084 			return OPML_OUTLINE_CLOSE;
2085 		}
2086 yy189:
2087 		++YYCURSOR;
2088 		yych = *YYCURSOR;
2089 yy190:
2090 
2091 		switch (yych) {
2092 			case '\t':
2093 			case '\n':
2094 			case ' ':
2095 				goto yy189;
2096 
2097 			case '\r':
2098 				goto yy191;
2099 
2100 			default:
2101 				goto yy5;
2102 		}
2103 
2104 yy191:
2105 		++YYCURSOR;
2106 		yych = *YYCURSOR;
2107 
2108 		switch (yych) {
2109 			case '\t':
2110 			case '\n':
2111 			case ' ':
2112 				goto yy189;
2113 
2114 			case '\r':
2115 				goto yy191;
2116 
2117 			default:
2118 				goto yy5;
2119 		}
2120 	}
2121 
2122 }
2123