]> git.wincent.com - wikitext.git/blob - ext/wikitext_ragel.c
Fix tokenization bug (failure on curly bracket)
[wikitext.git] / ext / wikitext_ragel.c
1 #line 1 "wikitext_ragel.rl"
2 // Copyright 2008 Wincent Colaiuta
3 // This program is free software: you can redistribute it and/or modify
4 // it under the terms of the GNU General Public License as published by
5 // the Free Software Foundation, either version 3 of the License, or
6 // (at your option) any later version.
7 //
8 // This program is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 // GNU General Public License for more details.
12 //
13 // You should have received a copy of the GNU General Public License
14 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
15
16 //----------------------------------------------------------------------//
17 // NOTE: wikitext_ragel.c is generated from wikitext_ragel.rl, so       //
18 //       if you make changes to the former they will be overwritten.    //
19 //       You should perform all your edits in wikitext_ragel.rl.        //
20 //----------------------------------------------------------------------//
21
22 #include "wikitext_ragel.h"
23 #include "wikitext.h"
24 #include <stdio.h>
25
26 #define EMIT(t)     do { out->type = t; out->stop = p + 1; out->column_stop += (out->stop - out->start); } while (0)
27 #define MARK()      do { mark = p; } while (0)
28 #define REWIND()    do { p = mark; } while (0)
29 #define AT_END()    (p + 1 == pe)
30 #define DISTANCE()  (p + 1 - ts)
31 #define NEXT_CHAR() (*(p + 1))
32
33
34 #line 35 "wikitext_ragel.c"
35 static const int wikitext_start = 54;
36 static const int wikitext_first_final = 54;
37 static const int wikitext_error = 0;
38
39 static const int wikitext_en_main = 54;
40
41 #line 385 "wikitext_ragel.rl"
42
43
44 // for now we use the scanner as a tokenizer that returns one token at a time, just like ANTLR
45 // ultimately we could look at embedding all of the transformation inside the scanner itself (combined scanner/parser)
46 // pass in the last token because that's useful for the scanner to know
47 // p data pointer (required by Ragel machine); overriden with contents of last_token if supplied
48 // pe data end pointer (required by Ragel machine)
49 void next_token(token_t *out, token_t *last_token, char *p, char *pe)
50 {
51     int last_token_type = NO_TOKEN;
52     if (last_token)
53     {
54         last_token_type     = last_token->type;
55         p = last_token->stop;
56         out->line_start     = out->line_stop    = last_token->line_stop;
57         out->column_start   = out->column_stop  = last_token->column_stop;
58     }
59     else
60     {
61         out->line_start     = 1;
62         out->column_start   = 1;
63         out->line_stop      = 1;
64         out->column_stop    = 1;
65     }
66     out->type       = NO_TOKEN;
67     out->code_point = 0;
68     out->start      = p;
69     if (p == pe)
70     {
71         // all done, have reached end of input
72         out->stop  = p;
73         out->type  = END_OF_FILE;
74         return;
75     }
76
77     char    *mark;      // for manual backtracking
78     char    *eof = pe;  // required for backtracking (longest match determination)
79     int     cs;         // current state (standard Ragel)
80     char    *ts;        // token start (scanner)
81     char    *te;        // token end (scanner)
82     int     act;        // identity of last patterned matched (scanner)
83     
84 #line 85 "wikitext_ragel.c"
85         {
86         cs = wikitext_start;
87         ts = 0;
88         te = 0;
89         act = 0;
90         }
91 #line 427 "wikitext_ragel.rl"
92     
93 #line 94 "wikitext_ragel.c"
94         {
95         if ( p == pe )
96                 goto _test_eof;
97         switch ( cs )
98         {
99 tr0:
100 #line 46 "wikitext_ragel.rl"
101         {
102         out->code_point = ((uint32_t)(*(p - 1)) & 0x1f) << 6 |
103             (*p & 0x3f);
104     }
105 #line 376 "wikitext_ragel.rl"
106         {te = p+1;{
107             EMIT(DEFAULT);
108             out->column_stop = out->column_start + 1;
109             {p++; cs = 54; goto _out;}
110         }}
111         goto st54;
112 tr3:
113 #line 52 "wikitext_ragel.rl"
114         {
115         out->code_point = ((uint32_t)(*(p - 2)) & 0x0f) << 12 |
116             ((uint32_t)(*(p - 1)) & 0x3f) << 6 |
117             (*p & 0x3f);
118     }
119 #line 376 "wikitext_ragel.rl"
120         {te = p+1;{
121             EMIT(DEFAULT);
122             out->column_stop = out->column_start + 1;
123             {p++; cs = 54; goto _out;}
124         }}
125         goto st54;
126 tr6:
127 #line 59 "wikitext_ragel.rl"
128         {
129         out->code_point = ((uint32_t)(*(p - 3)) & 0x07) << 18 |
130             ((uint32_t)(*(p - 2)) & 0x3f) << 12 |
131             ((uint32_t)(*(p - 1)) & 0x3f) << 6 |
132             (*p & 0x3f);
133     }
134 #line 376 "wikitext_ragel.rl"
135         {te = p+1;{
136             EMIT(DEFAULT);
137             out->column_stop = out->column_start + 1;
138             {p++; cs = 54; goto _out;}
139         }}
140         goto st54;
141 tr7:
142 #line 326 "wikitext_ragel.rl"
143         {{p = ((te))-1;}{
144             EMIT(AMP);
145             {p++; cs = 54; goto _out;}
146         }}
147         goto st54;
148 tr10:
149 #line 314 "wikitext_ragel.rl"
150         {te = p+1;{
151             EMIT(DECIMAL_ENTITY);
152             {p++; cs = 54; goto _out;}
153         }}
154         goto st54;
155 tr12:
156 #line 308 "wikitext_ragel.rl"
157         {te = p+1;{
158             EMIT(HEX_ENTITY);
159             {p++; cs = 54; goto _out;}
160         }}
161         goto st54;
162 tr14:
163 #line 302 "wikitext_ragel.rl"
164         {te = p+1;{
165             EMIT(NAMED_ENTITY);
166             {p++; cs = 54; goto _out;}
167         }}
168         goto st54;
169 tr18:
170 #line 296 "wikitext_ragel.rl"
171         {te = p+1;{
172             EMIT(AMP_ENTITY);
173             {p++; cs = 54; goto _out;}
174         }}
175         goto st54;
176 tr22:
177 #line 290 "wikitext_ragel.rl"
178         {te = p+1;{
179             EMIT(QUOT_ENTITY);
180             {p++; cs = 54; goto _out;}
181         }}
182         goto st54;
183 tr23:
184 #line 332 "wikitext_ragel.rl"
185         {{p = ((te))-1;}{
186             EMIT(LESS);
187             {p++; cs = 54; goto _out;}
188         }}
189         goto st54;
190 tr29:
191 #line 127 "wikitext_ragel.rl"
192         {te = p+1;{
193             EMIT(EM_END);
194             {p++; cs = 54; goto _out;}
195         }}
196         goto st54;
197 tr35:
198 #line 85 "wikitext_ragel.rl"
199         {te = p+1;{
200             EMIT(NO_WIKI_END);
201             {p++; cs = 54; goto _out;}
202         }}
203         goto st54;
204 tr41:
205 #line 115 "wikitext_ragel.rl"
206         {te = p+1;{
207             EMIT(STRONG_END);
208             {p++; cs = 54; goto _out;}
209         }}
210         goto st54;
211 tr43:
212 #line 145 "wikitext_ragel.rl"
213         {te = p+1;{
214             EMIT(TT_END);
215             {p++; cs = 54; goto _out;}
216         }}
217         goto st54;
218 tr45:
219 #line 121 "wikitext_ragel.rl"
220         {te = p+1;{
221             EMIT(EM_START);
222             {p++; cs = 54; goto _out;}
223         }}
224         goto st54;
225 tr51:
226 #line 79 "wikitext_ragel.rl"
227         {te = p+1;{
228             EMIT(NO_WIKI_START);
229             {p++; cs = 54; goto _out;}
230         }}
231         goto st54;
232 tr57:
233 #line 109 "wikitext_ragel.rl"
234         {te = p+1;{
235             EMIT(STRONG_START);
236             {p++; cs = 54; goto _out;}
237         }}
238         goto st54;
239 tr59:
240 #line 139 "wikitext_ragel.rl"
241         {te = p+1;{
242             EMIT(TT_START);
243             {p++; cs = 54; goto _out;}
244         }}
245         goto st54;
246 tr60:
247 #line 248 "wikitext_ragel.rl"
248         {{p = ((te))-1;}{
249             EMIT(URI);
250             {p++; cs = 54; goto _out;}
251         }}
252         goto st54;
253 tr66:
254 #line 41 "wikitext_ragel.rl"
255         {
256         out->code_point = *p & 0x7f;
257     }
258 #line 376 "wikitext_ragel.rl"
259         {te = p+1;{
260             EMIT(DEFAULT);
261             out->column_stop = out->column_start + 1;
262             {p++; cs = 54; goto _out;}
263         }}
264         goto st54;
265 tr67:
266 #line 344 "wikitext_ragel.rl"
267         {te = p+1;{
268             EMIT(CRLF);
269             out->column_stop = 1;
270             out->line_stop++;
271             {p++; cs = 54; goto _out;}
272         }}
273 #line 41 "wikitext_ragel.rl"
274         {
275         out->code_point = *p & 0x7f;
276     }
277         goto st54;
278 tr71:
279 #line 320 "wikitext_ragel.rl"
280         {te = p+1;{
281             EMIT(QUOT);
282             {p++; cs = 54; goto _out;}
283         }}
284         goto st54;
285 tr72:
286 #line 178 "wikitext_ragel.rl"
287         {te = p+1;{
288             if (out->column_start == 1 || last_token_type == OL || last_token_type == UL || last_token_type == BLOCKQUOTE)
289                 EMIT(OL);
290             else
291                 EMIT(PRINTABLE);
292             {p++; cs = 54; goto _out;}
293         }}
294         goto st54;
295 tr75:
296 #line 187 "wikitext_ragel.rl"
297         {te = p+1;{
298             if (out->column_start == 1 || last_token_type == OL || last_token_type == UL || last_token_type == BLOCKQUOTE)
299                 EMIT(UL);
300             else
301                 EMIT(PRINTABLE);
302             {p++; cs = 54; goto _out;}
303         }}
304         goto st54;
305 tr85:
306 #line 133 "wikitext_ragel.rl"
307         {te = p+1;{
308             EMIT(TT);
309             {p++; cs = 54; goto _out;}
310         }}
311         goto st54;
312 tr86:
313 #line 272 "wikitext_ragel.rl"
314         {te = p+1;{
315             EMIT(SEPARATOR);
316             {p++; cs = 54; goto _out;}
317         }}
318         goto st54;
319 tr87:
320 #line 344 "wikitext_ragel.rl"
321         {te = p;p--;{
322             EMIT(CRLF);
323             out->column_stop = 1;
324             out->line_stop++;
325             {p++; cs = 54; goto _out;}
326         }}
327         goto st54;
328 tr88:
329 #line 344 "wikitext_ragel.rl"
330         {te = p+1;{
331             EMIT(CRLF);
332             out->column_stop = 1;
333             out->line_stop++;
334             {p++; cs = 54; goto _out;}
335         }}
336         goto st54;
337 tr89:
338 #line 166 "wikitext_ragel.rl"
339         {te = p;p--;{
340             if (out->column_start == 1 || last_token_type == BLOCKQUOTE)
341             {
342                 REWIND();
343                 EMIT(PRE);
344             }
345             else
346                 EMIT(SPACE);
347             {p++; cs = 54; goto _out;}
348         }}
349         goto st54;
350 tr91:
351 #line 356 "wikitext_ragel.rl"
352         {te = p;p--;{
353             EMIT(PRINTABLE);
354             {p++; cs = 54; goto _out;}
355         }}
356         goto st54;
357 tr92:
358 #line 326 "wikitext_ragel.rl"
359         {te = p;p--;{
360             EMIT(AMP);
361             {p++; cs = 54; goto _out;}
362         }}
363         goto st54;
364 tr96:
365 #line 91 "wikitext_ragel.rl"
366         {te = p;p--;{
367             if (DISTANCE() == 5)
368                 EMIT(STRONG_EM);
369             else if (DISTANCE() == 4)
370             {
371                 p--;
372                 EMIT(STRONG_EM);
373             }
374             else if (DISTANCE() == 3)
375                 EMIT(STRONG);
376             else if (DISTANCE() == 2)
377                 EMIT(EM);
378             else
379                 EMIT(PRINTABLE);
380             {p++; cs = 54; goto _out;}
381         }}
382         goto st54;
383 tr100:
384 #line 91 "wikitext_ragel.rl"
385         {te = p+1;{
386             if (DISTANCE() == 5)
387                 EMIT(STRONG_EM);
388             else if (DISTANCE() == 4)
389             {
390                 p--;
391                 EMIT(STRONG_EM);
392             }
393             else if (DISTANCE() == 3)
394                 EMIT(STRONG);
395             else if (DISTANCE() == 2)
396                 EMIT(EM);
397             else
398                 EMIT(PRINTABLE);
399             {p++; cs = 54; goto _out;}
400         }}
401         goto st54;
402 tr103:
403 #line 1 "wikitext_ragel.rl"
404         {       switch( act ) {
405         case 16:
406         {{p = ((te))-1;}
407             EMIT(URI);
408             {p++; cs = 54; goto _out;}
409         }
410         break;
411         case 17:
412         {{p = ((te))-1;}
413             EMIT(MAIL);
414             {p++; cs = 54; goto _out;}
415         }
416         break;
417         case 33:
418         {{p = ((te))-1;}
419             EMIT(PRINTABLE);
420             {p++; cs = 54; goto _out;}
421         }
422         break;
423         default: break;
424         }
425         }
426         goto st54;
427 tr107:
428 #line 254 "wikitext_ragel.rl"
429         {te = p;p--;{
430             EMIT(MAIL);
431             {p++; cs = 54; goto _out;}
432         }}
433         goto st54;
434 tr111:
435 #line 332 "wikitext_ragel.rl"
436         {te = p;p--;{
437             EMIT(LESS);
438             {p++; cs = 54; goto _out;}
439         }}
440         goto st54;
441 tr117:
442 #line 196 "wikitext_ragel.rl"
443         {te = p;p--;{
444             if (out->column_start == 1 || last_token_type == BLOCKQUOTE)
445             {
446                 REWIND();
447                 if (DISTANCE() == 1)
448                     EMIT(H1_START);
449                 else if (DISTANCE() == 2)
450                     EMIT(H2_START);
451                 else if (DISTANCE() == 3)
452                     EMIT(H3_START);
453                 else if (DISTANCE() == 4)
454                     EMIT(H4_START);
455                 else if (DISTANCE() == 5)
456                     EMIT(H5_START);
457                 else if (DISTANCE() == 6)
458                     EMIT(H6_START);
459                 else if (DISTANCE() > 6)
460                 {
461                     p = ts + 6;
462                     EMIT(H6_START);
463                 }
464             }
465             else if (AT_END() || NEXT_CHAR() == '\n' || NEXT_CHAR() == '\r')
466             {
467                 REWIND();
468                 if (DISTANCE() == 1)
469                     EMIT(H1_END);
470                 else if (DISTANCE() == 2)
471                     EMIT(H2_END);
472                 else if (DISTANCE() == 3)
473                     EMIT(H3_END);
474                 else if (DISTANCE() == 4)
475                     EMIT(H4_END);
476                 else if (DISTANCE() == 5)
477                     EMIT(H5_END);
478                 else if (DISTANCE() == 6)
479                     EMIT(H6_END);
480                 else if (DISTANCE() > 6)
481                 {
482                     p -= 6; // will scan the H6 on the next scan
483                     EMIT(PRINTABLE);
484                 }
485             }
486             else
487             {
488                 REWIND();
489                 EMIT(PRINTABLE);
490             }
491             {p++; cs = 54; goto _out;}
492         }}
493         goto st54;
494 tr119:
495 #line 152 "wikitext_ragel.rl"
496         {te = p;p--;{
497             if (out->column_start == 1 || last_token_type == BLOCKQUOTE)
498                 EMIT(BLOCKQUOTE);
499             else
500             {
501                 REWIND();
502                 EMIT(GREATER);
503             }
504             {p++; cs = 54; goto _out;}
505         }}
506         goto st54;
507 tr120:
508 #line 152 "wikitext_ragel.rl"
509         {te = p+1;{
510             if (out->column_start == 1 || last_token_type == BLOCKQUOTE)
511                 EMIT(BLOCKQUOTE);
512             else
513             {
514                 REWIND();
515                 EMIT(GREATER);
516             }
517             {p++; cs = 54; goto _out;}
518         }}
519         goto st54;
520 tr127:
521 #line 248 "wikitext_ragel.rl"
522         {te = p;p--;{
523             EMIT(URI);
524             {p++; cs = 54; goto _out;}
525         }}
526         goto st54;
527 tr130:
528 #line 278 "wikitext_ragel.rl"
529         {te = p;p--;{
530             EMIT(EXT_LINK_START);
531             {p++; cs = 54; goto _out;}
532         }}
533         goto st54;
534 tr131:
535 #line 260 "wikitext_ragel.rl"
536         {te = p+1;{
537             EMIT(LINK_START);
538             {p++; cs = 54; goto _out;}
539         }}
540         goto st54;
541 tr132:
542 #line 284 "wikitext_ragel.rl"
543         {te = p;p--;{
544             EMIT(EXT_LINK_END);
545             {p++; cs = 54; goto _out;}
546         }}
547         goto st54;
548 tr133:
549 #line 266 "wikitext_ragel.rl"
550         {te = p+1;{
551             EMIT(LINK_END);
552             {p++; cs = 54; goto _out;}
553         }}
554         goto st54;
555 st54:
556 #line 1 "wikitext_ragel.rl"
557         {ts = 0;}
558         if ( ++p == pe )
559                 goto _test_eof54;
560 case 54:
561 #line 1 "wikitext_ragel.rl"
562         {ts = p;}
563 #line 564 "wikitext_ragel.c"
564         switch( (*p) ) {
565                 case 10: goto tr67;
566                 case 13: goto tr68;
567                 case 32: goto tr69;
568                 case 34: goto tr71;
569                 case 35: goto tr72;
570                 case 38: goto tr73;
571                 case 39: goto st59;
572                 case 42: goto tr75;
573                 case 47: goto st57;
574                 case 60: goto tr77;
575                 case 61: goto tr78;
576                 case 62: goto tr79;
577                 case 70: goto st75;
578                 case 72: goto st83;
579                 case 83: goto st84;
580                 case 91: goto st86;
581                 case 92: goto st57;
582                 case 93: goto st87;
583                 case 94: goto st57;
584                 case 96: goto tr85;
585                 case 102: goto st75;
586                 case 104: goto st83;
587                 case 115: goto st84;
588                 case 124: goto tr86;
589                 case 127: goto tr66;
590         }
591         if ( (*p) < 33 ) {
592                 if ( (*p) < -32 ) {
593                         if ( -62 <= (*p) && (*p) <= -33 )
594                                 goto st1;
595                 } else if ( (*p) > -17 ) {
596                         if ( (*p) > -12 ) {
597                                 if ( 1 <= (*p) && (*p) <= 31 )
598                                         goto tr66;
599                         } else if ( (*p) >= -16 )
600                                 goto st4;
601                 } else
602                         goto st2;
603         } else if ( (*p) > 44 ) {
604                 if ( (*p) < 58 ) {
605                         if ( 45 <= (*p) && (*p) <= 57 )
606                                 goto st63;
607                 } else if ( (*p) > 64 ) {
608                         if ( (*p) > 122 ) {
609                                 if ( 123 <= (*p) && (*p) <= 126 )
610                                         goto st57;
611                         } else if ( (*p) >= 65 )
612                                 goto st63;
613                 } else
614                         goto st57;
615         } else
616                 goto st57;
617         goto st0;
618 st0:
619 cs = 0;
620         goto _out;
621 st1:
622         if ( ++p == pe )
623                 goto _test_eof1;
624 case 1:
625         if ( (*p) <= -65 )
626                 goto tr0;
627         goto st0;
628 st2:
629         if ( ++p == pe )
630                 goto _test_eof2;
631 case 2:
632         if ( (*p) <= -65 )
633                 goto st3;
634         goto st0;
635 st3:
636         if ( ++p == pe )
637                 goto _test_eof3;
638 case 3:
639         if ( (*p) <= -65 )
640                 goto tr3;
641         goto st0;
642 st4:
643         if ( ++p == pe )
644                 goto _test_eof4;
645 case 4:
646         if ( (*p) <= -65 )
647                 goto st5;
648         goto st0;
649 st5:
650         if ( ++p == pe )
651                 goto _test_eof5;
652 case 5:
653         if ( (*p) <= -65 )
654                 goto st6;
655         goto st0;
656 st6:
657         if ( ++p == pe )
658                 goto _test_eof6;
659 case 6:
660         if ( (*p) <= -65 )
661                 goto tr6;
662         goto st0;
663 tr68:
664 #line 41 "wikitext_ragel.rl"
665         {
666         out->code_point = *p & 0x7f;
667     }
668         goto st55;
669 st55:
670         if ( ++p == pe )
671                 goto _test_eof55;
672 case 55:
673 #line 674 "wikitext_ragel.c"
674         if ( (*p) == 10 )
675                 goto tr88;
676         goto tr87;
677 tr69:
678 #line 36 "wikitext_ragel.rl"
679         {
680         MARK();
681     }
682         goto st56;
683 st56:
684         if ( ++p == pe )
685                 goto _test_eof56;
686 case 56:
687 #line 688 "wikitext_ragel.c"
688         if ( (*p) == 32 )
689                 goto st56;
690         goto tr89;
691 st57:
692         if ( ++p == pe )
693                 goto _test_eof57;
694 case 57:
695         switch( (*p) ) {
696                 case 33: goto st57;
697                 case 92: goto st57;
698         }
699         if ( (*p) < 63 ) {
700                 if ( (*p) < 40 ) {
701                         if ( 36 <= (*p) && (*p) <= 37 )
702                                 goto st57;
703                 } else if ( (*p) > 41 ) {
704                         if ( 43 <= (*p) && (*p) <= 59 )
705                                 goto st57;
706                 } else
707                         goto st57;
708         } else if ( (*p) > 90 ) {
709                 if ( (*p) < 97 ) {
710                         if ( 94 <= (*p) && (*p) <= 95 )
711                                 goto st57;
712                 } else if ( (*p) > 123 ) {
713                         if ( 125 <= (*p) && (*p) <= 126 )
714                                 goto st57;
715                 } else
716                         goto st57;
717         } else
718                 goto st57;
719         goto tr91;
720 tr73:
721 #line 1 "wikitext_ragel.rl"
722         {te = p+1;}
723         goto st58;
724 st58:
725         if ( ++p == pe )
726                 goto _test_eof58;
727 case 58:
728 #line 729 "wikitext_ragel.c"
729         switch( (*p) ) {
730                 case 35: goto st7;
731                 case 97: goto st13;
732                 case 113: goto st16;
733         }
734         if ( (*p) > 90 ) {
735                 if ( 98 <= (*p) && (*p) <= 122 )
736                         goto st11;
737         } else if ( (*p) >= 65 )
738                 goto st11;
739         goto tr92;
740 st7:
741         if ( ++p == pe )
742                 goto _test_eof7;
743 case 7:
744         switch( (*p) ) {
745                 case 88: goto st9;
746                 case 120: goto st9;
747         }
748         if ( 48 <= (*p) && (*p) <= 57 )
749                 goto st8;
750         goto tr7;
751 st8:
752         if ( ++p == pe )
753                 goto _test_eof8;
754 case 8:
755         if ( (*p) == 59 )
756                 goto tr10;
757         if ( 48 <= (*p) && (*p) <= 57 )
758                 goto st8;
759         goto tr7;
760 st9:
761         if ( ++p == pe )
762                 goto _test_eof9;
763 case 9:
764         if ( (*p) < 65 ) {
765                 if ( 48 <= (*p) && (*p) <= 57 )
766                         goto st10;
767         } else if ( (*p) > 70 ) {
768                 if ( 97 <= (*p) && (*p) <= 102 )
769                         goto st10;
770         } else
771                 goto st10;
772         goto tr7;
773 st10:
774         if ( ++p == pe )
775                 goto _test_eof10;
776 case 10:
777         if ( (*p) == 59 )
778                 goto tr12;
779         if ( (*p) < 65 ) {
780                 if ( 48 <= (*p) && (*p) <= 57 )
781                         goto st10;
782         } else if ( (*p) > 70 ) {
783                 if ( 97 <= (*p) && (*p) <= 102 )
784                         goto st10;
785         } else
786                 goto st10;
787         goto tr7;
788 st11:
789         if ( ++p == pe )
790                 goto _test_eof11;
791 case 11:
792         if ( (*p) == 59 )
793                 goto tr14;
794         if ( (*p) < 65 ) {
795                 if ( 48 <= (*p) && (*p) <= 57 )
796                         goto st12;
797         } else if ( (*p) > 90 ) {
798                 if ( 97 <= (*p) && (*p) <= 122 )
799                         goto st11;
800         } else
801                 goto st11;
802         goto tr7;
803 st12:
804         if ( ++p == pe )
805                 goto _test_eof12;
806 case 12:
807         if ( (*p) == 59 )
808                 goto tr14;
809         if ( 48 <= (*p) && (*p) <= 57 )
810                 goto st12;
811         goto tr7;
812 st13:
813         if ( ++p == pe )
814                 goto _test_eof13;
815 case 13:
816         switch( (*p) ) {
817                 case 59: goto tr14;
818                 case 109: goto st14;
819         }
820         if ( (*p) < 65 ) {
821                 if ( 48 <= (*p) && (*p) <= 57 )
822                         goto st12;
823         } else if ( (*p) > 90 ) {
824                 if ( 97 <= (*p) && (*p) <= 122 )
825                         goto st11;
826         } else
827                 goto st11;
828         goto tr7;
829 st14:
830         if ( ++p == pe )
831                 goto _test_eof14;
832 case 14:
833         switch( (*p) ) {
834                 case 59: goto tr14;
835                 case 112: goto st15;
836         }
837         if ( (*p) < 65 ) {
838                 if ( 48 <= (*p) && (*p) <= 57 )
839                         goto st12;
840         } else if ( (*p) > 90 ) {
841                 if ( 97 <= (*p) && (*p) <= 122 )
842                         goto st11;
843         } else
844                 goto st11;
845         goto tr7;
846 st15:
847         if ( ++p == pe )
848                 goto _test_eof15;
849 case 15:
850         if ( (*p) == 59 )
851                 goto tr18;
852         if ( (*p) < 65 ) {
853                 if ( 48 <= (*p) && (*p) <= 57 )
854                         goto st12;
855         } else if ( (*p) > 90 ) {
856                 if ( 97 <= (*p) && (*p) <= 122 )
857                         goto st11;
858         } else
859                 goto st11;
860         goto tr7;
861 st16:
862         if ( ++p == pe )
863                 goto _test_eof16;
864 case 16:
865         switch( (*p) ) {
866                 case 59: goto tr14;
867                 case 117: goto st17;
868         }
869         if ( (*p) < 65 ) {
870                 if ( 48 <= (*p) && (*p) <= 57 )
871                         goto st12;
872         } else if ( (*p) > 90 ) {
873                 if ( 97 <= (*p) && (*p) <= 122 )
874                         goto st11;
875         } else
876                 goto st11;
877         goto tr7;
878 st17:
879         if ( ++p == pe )
880                 goto _test_eof17;
881 case 17:
882         switch( (*p) ) {
883                 case 59: goto tr14;
884                 case 111: goto st18;
885         }
886         if ( (*p) < 65 ) {
887                 if ( 48 <= (*p) && (*p) <= 57 )
888                         goto st12;
889         } else if ( (*p) > 90 ) {
890                 if ( 97 <= (*p) && (*p) <= 122 )
891                         goto st11;
892         } else
893                 goto st11;
894         goto tr7;
895 st18:
896         if ( ++p == pe )
897                 goto _test_eof18;
898 case 18:
899         switch( (*p) ) {
900                 case 59: goto tr14;
901                 case 116: goto st19;
902         }
903         if ( (*p) < 65 ) {
904                 if ( 48 <= (*p) && (*p) <= 57 )
905                         goto st12;
906         } else if ( (*p) > 90 ) {
907                 if ( 97 <= (*p) && (*p) <= 122 )
908                         goto st11;
909         } else
910                 goto st11;
911         goto tr7;
912 st19:
913         if ( ++p == pe )
914                 goto _test_eof19;
915 case 19:
916         if ( (*p) == 59 )
917                 goto tr22;
918         if ( (*p) < 65 ) {
919                 if ( 48 <= (*p) && (*p) <= 57 )
920                         goto st12;
921         } else if ( (*p) > 90 ) {
922                 if ( 97 <= (*p) && (*p) <= 122 )
923                         goto st11;
924         } else
925                 goto st11;
926         goto tr7;
927 st59:
928         if ( ++p == pe )
929                 goto _test_eof59;
930 case 59:
931         if ( (*p) == 39 )
932                 goto st60;
933         goto tr96;
934 st60:
935         if ( ++p == pe )
936                 goto _test_eof60;
937 case 60:
938         if ( (*p) == 39 )
939                 goto st61;
940         goto tr96;
941 st61:
942         if ( ++p == pe )
943                 goto _test_eof61;
944 case 61:
945         if ( (*p) == 39 )
946                 goto st62;
947         goto tr96;
948 st62:
949         if ( ++p == pe )
950                 goto _test_eof62;
951 case 62:
952         if ( (*p) == 39 )
953                 goto tr100;
954         goto tr96;
955 st63:
956         if ( ++p == pe )
957                 goto _test_eof63;
958 case 63:
959         switch( (*p) ) {
960                 case 33: goto st57;
961                 case 47: goto st57;
962                 case 63: goto st57;
963                 case 64: goto st64;
964                 case 92: goto st57;
965                 case 94: goto st57;
966                 case 95: goto st63;
967                 case 123: goto st57;
968         }
969         if ( (*p) < 45 ) {
970                 if ( (*p) < 40 ) {
971                         if ( 36 <= (*p) && (*p) <= 37 )
972                                 goto st57;
973                 } else if ( (*p) > 41 ) {
974                         if ( 43 <= (*p) && (*p) <= 44 )
975                                 goto st57;
976                 } else
977                         goto st57;
978         } else if ( (*p) > 57 ) {
979                 if ( (*p) < 65 ) {
980                         if ( 58 <= (*p) && (*p) <= 59 )
981                                 goto st57;
982                 } else if ( (*p) > 90 ) {
983                         if ( (*p) > 122 ) {
984                                 if ( 125 <= (*p) && (*p) <= 126 )
985                                         goto st57;
986                         } else if ( (*p) >= 97 )
987                                 goto st63;
988                 } else
989                         goto st63;
990         } else
991                 goto st63;
992         goto tr91;
993 st64:
994         if ( ++p == pe )
995                 goto _test_eof64;
996 case 64:
997         switch( (*p) ) {
998                 case 33: goto st57;
999                 case 92: goto st57;
1000                 case 123: goto st57;
1001         }
1002         if ( (*p) < 58 ) {
1003                 if ( (*p) < 40 ) {
1004                         if ( 36 <= (*p) && (*p) <= 37 )
1005                                 goto st57;
1006                 } else if ( (*p) > 41 ) {
1007                         if ( (*p) > 47 ) {
1008                                 if ( 48 <= (*p) && (*p) <= 57 )
1009                                         goto tr102;
1010                         } else if ( (*p) >= 43 )
1011                                 goto st57;
1012                 } else
1013                         goto st57;
1014         } else if ( (*p) > 59 ) {
1015                 if ( (*p) < 94 ) {
1016                         if ( (*p) > 64 ) {
1017                                 if ( 65 <= (*p) && (*p) <= 90 )
1018                                         goto tr102;
1019                         } else if ( (*p) >= 63 )
1020                                 goto st57;
1021                 } else if ( (*p) > 95 ) {
1022                         if ( (*p) > 122 ) {
1023                                 if ( 125 <= (*p) && (*p) <= 126 )
1024                                         goto st57;
1025                         } else if ( (*p) >= 97 )
1026                                 goto tr102;
1027                 } else
1028                         goto st57;
1029         } else
1030                 goto st57;
1031         goto tr91;
1032 tr102:
1033 #line 1 "wikitext_ragel.rl"
1034         {te = p+1;}
1035 #line 356 "wikitext_ragel.rl"
1036         {act = 33;}
1037         goto st65;
1038 tr110:
1039 #line 1 "wikitext_ragel.rl"
1040         {te = p+1;}
1041 #line 254 "wikitext_ragel.rl"
1042         {act = 17;}
1043         goto st65;
1044 st65:
1045         if ( ++p == pe )
1046                 goto _test_eof65;
1047 case 65:
1048 #line 1049 "wikitext_ragel.c"
1049         switch( (*p) ) {
1050                 case 33: goto st57;
1051                 case 46: goto st66;
1052                 case 92: goto st57;
1053                 case 123: goto st57;
1054         }
1055         if ( (*p) < 58 ) {
1056                 if ( (*p) < 40 ) {
1057                         if ( 36 <= (*p) && (*p) <= 37 )
1058                                 goto st57;
1059                 } else if ( (*p) > 41 ) {
1060                         if ( (*p) > 47 ) {
1061                                 if ( 48 <= (*p) && (*p) <= 57 )
1062                                         goto tr102;
1063                         } else if ( (*p) >= 43 )
1064                                 goto st57;
1065                 } else
1066                         goto st57;
1067         } else if ( (*p) > 59 ) {
1068                 if ( (*p) < 94 ) {
1069                         if ( (*p) > 64 ) {
1070                                 if ( 65 <= (*p) && (*p) <= 90 )
1071                                         goto tr102;
1072                         } else if ( (*p) >= 63 )
1073                                 goto st57;
1074                 } else if ( (*p) > 95 ) {
1075                         if ( (*p) > 122 ) {
1076                                 if ( 125 <= (*p) && (*p) <= 126 )
1077                                         goto st57;
1078                         } else if ( (*p) >= 97 )
1079                                 goto tr102;
1080                 } else
1081                         goto st57;
1082         } else
1083                 goto st57;
1084         goto tr103;
1085 st66:
1086         if ( ++p == pe )
1087                 goto _test_eof66;
1088 case 66:
1089         switch( (*p) ) {
1090                 case 33: goto st57;
1091                 case 92: goto st57;
1092                 case 123: goto st57;
1093         }
1094         if ( (*p) < 58 ) {
1095                 if ( (*p) < 40 ) {
1096                         if ( 36 <= (*p) && (*p) <= 37 )
1097                                 goto st57;
1098                 } else if ( (*p) > 41 ) {
1099                         if ( (*p) > 47 ) {
1100                                 if ( 48 <= (*p) && (*p) <= 57 )
1101                                         goto tr102;
1102                         } else if ( (*p) >= 43 )
1103                                 goto st57;
1104                 } else
1105                         goto st57;
1106         } else if ( (*p) > 59 ) {
1107                 if ( (*p) < 94 ) {
1108                         if ( (*p) > 64 ) {
1109                                 if ( 65 <= (*p) && (*p) <= 90 )
1110                                         goto st67;
1111                         } else if ( (*p) >= 63 )
1112                                 goto st57;
1113                 } else if ( (*p) > 95 ) {
1114                         if ( (*p) > 122 ) {
1115                                 if ( 125 <= (*p) && (*p) <= 126 )
1116                                         goto st57;
1117                         } else if ( (*p) >= 97 )
1118                                 goto st67;
1119                 } else
1120                         goto st57;
1121         } else
1122                 goto st57;
1123         goto tr91;
1124 st67:
1125         if ( ++p == pe )
1126                 goto _test_eof67;
1127 case 67:
1128         switch( (*p) ) {
1129                 case 33: goto st57;
1130                 case 46: goto st66;
1131                 case 92: goto st57;
1132                 case 123: goto st57;
1133         }
1134         if ( (*p) < 58 ) {
1135                 if ( (*p) < 40 ) {
1136                         if ( 36 <= (*p) && (*p) <= 37 )
1137                                 goto st57;
1138                 } else if ( (*p) > 41 ) {
1139                         if ( (*p) > 47 ) {
1140                                 if ( 48 <= (*p) && (*p) <= 57 )
1141                                         goto tr102;
1142                         } else if ( (*p) >= 43 )
1143                                 goto st57;
1144                 } else
1145                         goto st57;
1146         } else if ( (*p) > 59 ) {
1147                 if ( (*p) < 94 ) {
1148                         if ( (*p) > 64 ) {
1149                                 if ( 65 <= (*p) && (*p) <= 90 )
1150                                         goto st68;
1151                         } else if ( (*p) >= 63 )
1152                                 goto st57;
1153                 } else if ( (*p) > 95 ) {
1154                         if ( (*p) > 122 ) {
1155                                 if ( 125 <= (*p) && (*p) <= 126 )
1156                                         goto st57;
1157                         } else if ( (*p) >= 97 )
1158                                 goto st68;
1159                 } else
1160                         goto st57;
1161         } else
1162                 goto st57;
1163         goto tr91;
1164 st68:
1165         if ( ++p == pe )
1166                 goto _test_eof68;
1167 case 68:
1168         switch( (*p) ) {
1169                 case 33: goto st57;
1170                 case 46: goto st66;
1171                 case 92: goto st57;
1172                 case 123: goto st57;
1173         }
1174         if ( (*p) < 58 ) {
1175                 if ( (*p) < 40 ) {
1176                         if ( 36 <= (*p) && (*p) <= 37 )
1177                                 goto st57;
1178                 } else if ( (*p) > 41 ) {
1179                         if ( (*p) > 47 ) {
1180                                 if ( 48 <= (*p) && (*p) <= 57 )
1181                                         goto tr102;
1182                         } else if ( (*p) >= 43 )
1183                                 goto st57;
1184                 } else
1185                         goto st57;
1186         } else if ( (*p) > 59 ) {
1187                 if ( (*p) < 94 ) {
1188                         if ( (*p) > 64 ) {
1189                                 if ( 65 <= (*p) && (*p) <= 90 )
1190                                         goto st69;
1191                         } else if ( (*p) >= 63 )
1192                                 goto st57;
1193                 } else if ( (*p) > 95 ) {
1194                         if ( (*p) > 122 ) {
1195                                 if ( 125 <= (*p) && (*p) <= 126 )
1196                                         goto st57;
1197                         } else if ( (*p) >= 97 )
1198                                 goto st69;
1199                 } else
1200                         goto st57;
1201         } else
1202                 goto st57;
1203         goto tr107;
1204 st69:
1205         if ( ++p == pe )
1206                 goto _test_eof69;
1207 case 69:
1208         switch( (*p) ) {
1209                 case 33: goto st57;
1210                 case 46: goto st66;
1211                 case 92: goto st57;
1212                 case 123: goto st57;
1213         }
1214         if ( (*p) < 58 ) {
1215                 if ( (*p) < 40 ) {
1216                         if ( 36 <= (*p) && (*p) <= 37 )
1217                                 goto st57;
1218                 } else if ( (*p) > 41 ) {
1219                         if ( (*p) > 47 ) {
1220                                 if ( 48 <= (*p) && (*p) <= 57 )
1221                                         goto tr102;
1222                         } else if ( (*p) >= 43 )
1223                                 goto st57;
1224                 } else
1225                         goto st57;
1226         } else if ( (*p) > 59 ) {
1227                 if ( (*p) < 94 ) {
1228                         if ( (*p) > 64 ) {
1229                                 if ( 65 <= (*p) && (*p) <= 90 )
1230                                         goto st70;
1231                         } else if ( (*p) >= 63 )
1232                                 goto st57;
1233                 } else if ( (*p) > 95 ) {
1234                         if ( (*p) > 122 ) {
1235                                 if ( 125 <= (*p) && (*p) <= 126 )
1236                                         goto st57;
1237                         } else if ( (*p) >= 97 )
1238                                 goto st70;
1239                 } else
1240                         goto st57;
1241         } else
1242                 goto st57;
1243         goto tr107;
1244 st70:
1245         if ( ++p == pe )
1246                 goto _test_eof70;
1247 case 70:
1248         switch( (*p) ) {
1249                 case 33: goto st57;
1250                 case 46: goto st66;
1251                 case 92: goto st57;
1252                 case 123: goto st57;
1253         }
1254         if ( (*p) < 58 ) {
1255                 if ( (*p) < 40 ) {
1256                         if ( 36 <= (*p) && (*p) <= 37 )
1257                                 goto st57;
1258                 } else if ( (*p) > 41 ) {
1259                         if ( (*p) > 47 ) {
1260                                 if ( 48 <= (*p) && (*p) <= 57 )
1261                                         goto tr102;
1262                         } else if ( (*p) >= 43 )
1263                                 goto st57;
1264                 } else
1265                         goto st57;
1266         } else if ( (*p) > 59 ) {
1267                 if ( (*p) < 94 ) {
1268                         if ( (*p) > 64 ) {
1269                                 if ( 65 <= (*p) && (*p) <= 90 )
1270                                         goto tr110;
1271                         } else if ( (*p) >= 63 )
1272                                 goto st57;
1273                 } else if ( (*p) > 95 ) {
1274                         if ( (*p) > 122 ) {
1275                                 if ( 125 <= (*p) && (*p) <= 126 )
1276                                         goto st57;
1277                         } else if ( (*p) >= 97 )
1278                                 goto tr110;
1279                 } else
1280                         goto st57;
1281         } else
1282                 goto st57;
1283         goto tr107;
1284 tr77:
1285 #line 1 "wikitext_ragel.rl"
1286         {te = p+1;}
1287         goto st71;
1288 st71:
1289         if ( ++p == pe )
1290                 goto _test_eof71;
1291 case 71:
1292 #line 1293 "wikitext_ragel.c"
1293         switch( (*p) ) {
1294                 case 47: goto st20;
1295                 case 69: goto st37;
1296                 case 78: goto st39;
1297                 case 83: goto st45;
1298                 case 84: goto st51;
1299                 case 101: goto st37;
1300                 case 110: goto st39;
1301                 case 115: goto st45;
1302                 case 116: goto st51;
1303         }
1304         goto tr111;
1305 st20:
1306         if ( ++p == pe )
1307                 goto _test_eof20;
1308 case 20:
1309         switch( (*p) ) {
1310                 case 69: goto st21;
1311                 case 78: goto st23;
1312                 case 83: goto st29;
1313                 case 84: goto st35;
1314                 case 101: goto st21;
1315                 case 110: goto st23;
1316                 case 115: goto st29;
1317                 case 116: goto st35;
1318         }
1319         goto tr23;
1320 st21:
1321         if ( ++p == pe )
1322                 goto _test_eof21;
1323 case 21:
1324         switch( (*p) ) {
1325                 case 77: goto st22;
1326                 case 109: goto st22;
1327         }
1328         goto tr23;
1329 st22:
1330         if ( ++p == pe )
1331                 goto _test_eof22;
1332 case 22:
1333         if ( (*p) == 62 )
1334                 goto tr29;
1335         goto tr23;
1336 st23:
1337         if ( ++p == pe )
1338                 goto _test_eof23;
1339 case 23:
1340         switch( (*p) ) {
1341                 case 79: goto st24;
1342                 case 111: goto st24;
1343         }
1344         goto tr23;
1345 st24:
1346         if ( ++p == pe )
1347                 goto _test_eof24;
1348 case 24:
1349         switch( (*p) ) {
1350                 case 87: goto st25;
1351                 case 119: goto st25;
1352         }
1353         goto tr23;
1354 st25:
1355         if ( ++p == pe )
1356                 goto _test_eof25;
1357 case 25:
1358         switch( (*p) ) {
1359                 case 73: goto st26;
1360                 case 105: goto st26;
1361         }
1362         goto tr23;
1363 st26:
1364         if ( ++p == pe )
1365                 goto _test_eof26;
1366 case 26:
1367         switch( (*p) ) {
1368                 case 75: goto st27;
1369                 case 107: goto st27;
1370         }
1371         goto tr23;
1372 st27:
1373         if ( ++p == pe )
1374                 goto _test_eof27;
1375 case 27:
1376         switch( (*p) ) {
1377                 case 73: goto st28;
1378                 case 105: goto st28;
1379         }
1380         goto tr23;
1381 st28:
1382         if ( ++p == pe )
1383                 goto _test_eof28;
1384 case 28:
1385         if ( (*p) == 62 )
1386                 goto tr35;
1387         goto tr23;
1388 st29:
1389         if ( ++p == pe )
1390                 goto _test_eof29;
1391 case 29:
1392         switch( (*p) ) {
1393                 case 84: goto st30;
1394                 case 116: goto st30;
1395         }
1396         goto tr23;
1397 st30:
1398         if ( ++p == pe )
1399                 goto _test_eof30;
1400 case 30:
1401         switch( (*p) ) {
1402                 case 82: goto st31;
1403                 case 114: goto st31;
1404         }
1405         goto tr23;
1406 st31:
1407         if ( ++p == pe )
1408                 goto _test_eof31;
1409 case 31:
1410         switch( (*p) ) {
1411                 case 79: goto st32;
1412                 case 111: goto st32;
1413         }
1414         goto tr23;
1415 st32:
1416         if ( ++p == pe )
1417                 goto _test_eof32;
1418 case 32:
1419         switch( (*p) ) {
1420                 case 78: goto st33;
1421                 case 110: goto st33;
1422         }
1423         goto tr23;
1424 st33:
1425         if ( ++p == pe )
1426                 goto _test_eof33;
1427 case 33:
1428         switch( (*p) ) {
1429                 case 71: goto st34;
1430                 case 103: goto st34;
1431         }
1432         goto tr23;
1433 st34:
1434         if ( ++p == pe )
1435                 goto _test_eof34;
1436 case 34:
1437         if ( (*p) == 62 )
1438                 goto tr41;
1439         goto tr23;
1440 st35:
1441         if ( ++p == pe )
1442                 goto _test_eof35;
1443 case 35:
1444         switch( (*p) ) {
1445                 case 84: goto st36;
1446                 case 116: goto st36;
1447         }
1448         goto tr23;
1449 st36:
1450         if ( ++p == pe )
1451                 goto _test_eof36;
1452 case 36:
1453         if ( (*p) == 62 )
1454                 goto tr43;
1455         goto tr23;
1456 st37:
1457         if ( ++p == pe )
1458                 goto _test_eof37;
1459 case 37:
1460         switch( (*p) ) {
1461                 case 77: goto st38;
1462                 case 109: goto st38;
1463         }
1464         goto tr23;
1465 st38:
1466         if ( ++p == pe )
1467                 goto _test_eof38;
1468 case 38:
1469         if ( (*p) == 62 )
1470                 goto tr45;
1471         goto tr23;
1472 st39:
1473         if ( ++p == pe )
1474                 goto _test_eof39;
1475 case 39:
1476         switch( (*p) ) {
1477                 case 79: goto st40;
1478                 case 111: goto st40;
1479         }
1480         goto tr23;
1481 st40:
1482         if ( ++p == pe )
1483                 goto _test_eof40;
1484 case 40:
1485         switch( (*p) ) {
1486                 case 87: goto st41;
1487                 case 119: goto st41;
1488         }
1489         goto tr23;
1490 st41:
1491         if ( ++p == pe )
1492                 goto _test_eof41;
1493 case 41:
1494         switch( (*p) ) {
1495                 case 73: goto st42;
1496                 case 105: goto st42;
1497         }
1498         goto tr23;
1499 st42:
1500         if ( ++p == pe )
1501                 goto _test_eof42;
1502 case 42:
1503         switch( (*p) ) {
1504                 case 75: goto st43;
1505                 case 107: goto st43;
1506         }
1507         goto tr23;
1508 st43:
1509         if ( ++p == pe )
1510                 goto _test_eof43;
1511 case 43:
1512         switch( (*p) ) {
1513                 case 73: goto st44;
1514                 case 105: goto st44;
1515         }
1516         goto tr23;
1517 st44:
1518         if ( ++p == pe )
1519                 goto _test_eof44;
1520 case 44:
1521         if ( (*p) == 62 )
1522                 goto tr51;
1523         goto tr23;
1524 st45:
1525         if ( ++p == pe )
1526                 goto _test_eof45;
1527 case 45:
1528         switch( (*p) ) {
1529                 case 84: goto st46;
1530                 case 116: goto st46;
1531         }
1532         goto tr23;
1533 st46:
1534         if ( ++p == pe )
1535                 goto _test_eof46;
1536 case 46:
1537         switch( (*p) ) {
1538                 case 82: goto st47;
1539                 case 114: goto st47;
1540         }
1541         goto tr23;
1542 st47:
1543         if ( ++p == pe )
1544                 goto _test_eof47;
1545 case 47:
1546         switch( (*p) ) {
1547                 case 79: goto st48;
1548                 case 111: goto st48;
1549         }
1550         goto tr23;
1551 st48:
1552         if ( ++p == pe )
1553                 goto _test_eof48;
1554 case 48:
1555         switch( (*p) ) {
1556                 case 78: goto st49;
1557                 case 110: goto st49;
1558         }
1559         goto tr23;
1560 st49:
1561         if ( ++p == pe )
1562                 goto _test_eof49;
1563 case 49:
1564         switch( (*p) ) {
1565                 case 71: goto st50;
1566                 case 103: goto st50;
1567         }
1568         goto tr23;
1569 st50:
1570         if ( ++p == pe )
1571                 goto _test_eof50;
1572 case 50:
1573         if ( (*p) == 62 )
1574                 goto tr57;
1575         goto tr23;
1576 st51:
1577         if ( ++p == pe )
1578                 goto _test_eof51;
1579 case 51:
1580         switch( (*p) ) {
1581                 case 84: goto st52;
1582                 case 116: goto st52;
1583         }
1584         goto tr23;
1585 st52:
1586         if ( ++p == pe )
1587                 goto _test_eof52;
1588 case 52:
1589         if ( (*p) == 62 )
1590                 goto tr59;
1591         goto tr23;
1592 tr78:
1593 #line 36 "wikitext_ragel.rl"
1594         {
1595         MARK();
1596     }
1597         goto st72;
1598 st72:
1599         if ( ++p == pe )
1600                 goto _test_eof72;
1601 case 72:
1602 #line 1603 "wikitext_ragel.c"
1603         switch( (*p) ) {
1604                 case 32: goto st73;
1605                 case 61: goto tr78;
1606         }
1607         goto tr117;
1608 st73:
1609         if ( ++p == pe )
1610                 goto _test_eof73;
1611 case 73:
1612         if ( (*p) == 32 )
1613                 goto st73;
1614         goto tr117;
1615 tr79:
1616 #line 36 "wikitext_ragel.rl"
1617         {
1618         MARK();
1619     }
1620         goto st74;
1621 st74:
1622         if ( ++p == pe )
1623                 goto _test_eof74;
1624 case 74:
1625 #line 1626 "wikitext_ragel.c"
1626         if ( (*p) == 32 )
1627                 goto tr120;
1628         goto tr119;
1629 st75:
1630         if ( ++p == pe )
1631                 goto _test_eof75;
1632 case 75:
1633         switch( (*p) ) {
1634                 case 33: goto st57;
1635                 case 47: goto st57;
1636                 case 63: goto st57;
1637                 case 64: goto st64;
1638                 case 84: goto st76;
1639                 case 92: goto st57;
1640                 case 94: goto st57;
1641                 case 95: goto st63;
1642                 case 116: goto st76;
1643                 case 123: goto st57;
1644         }
1645         if ( (*p) < 45 ) {
1646                 if ( (*p) < 40 ) {
1647                         if ( 36 <= (*p) && (*p) <= 37 )
1648                                 goto st57;
1649                 } else if ( (*p) > 41 ) {
1650                         if ( 43 <= (*p) && (*p) <= 44 )
1651                                 goto st57;
1652                 } else
1653                         goto st57;
1654         } else if ( (*p) > 57 ) {
1655                 if ( (*p) < 65 ) {
1656                         if ( 58 <= (*p) && (*p) <= 59 )
1657                                 goto st57;
1658                 } else if ( (*p) > 90 ) {
1659                         if ( (*p) > 122 ) {
1660                                 if ( 125 <= (*p) && (*p) <= 126 )
1661                                         goto st57;
1662                         } else if ( (*p) >= 97 )
1663                                 goto st63;
1664                 } else
1665                         goto st63;
1666         } else
1667                 goto st63;
1668         goto tr91;
1669 st76:
1670         if ( ++p == pe )
1671                 goto _test_eof76;
1672 case 76:
1673         switch( (*p) ) {
1674                 case 33: goto st57;
1675                 case 47: goto st57;
1676                 case 63: goto st57;
1677                 case 64: goto st64;
1678                 case 80: goto st77;
1679                 case 92: goto st57;
1680                 case 94: goto st57;
1681                 case 95: goto st63;
1682                 case 112: goto st77;
1683                 case 123: goto st57;
1684         }
1685         if ( (*p) < 45 ) {
1686                 if ( (*p) < 40 ) {
1687                         if ( 36 <= (*p) && (*p) <= 37 )
1688                                 goto st57;
1689                 } else if ( (*p) > 41 ) {
1690                         if ( 43 <= (*p) && (*p) <= 44 )
1691                                 goto st57;
1692                 } else
1693                         goto st57;
1694         } else if ( (*p) > 57 ) {
1695                 if ( (*p) < 65 ) {
1696                         if ( 58 <= (*p) && (*p) <= 59 )
1697                                 goto st57;
1698                 } else if ( (*p) > 90 ) {
1699                         if ( (*p) > 122 ) {
1700                                 if ( 125 <= (*p) && (*p) <= 126 )
1701                                         goto st57;
1702                         } else if ( (*p) >= 97 )
1703                                 goto st63;
1704                 } else
1705                         goto st63;
1706         } else
1707                 goto st63;
1708         goto tr91;
1709 st77:
1710         if ( ++p == pe )
1711                 goto _test_eof77;
1712 case 77:
1713         switch( (*p) ) {
1714                 case 33: goto st57;
1715                 case 47: goto st57;
1716                 case 58: goto st78;
1717                 case 59: goto st57;
1718                 case 63: goto st57;
1719                 case 64: goto st64;
1720                 case 92: goto st57;
1721                 case 94: goto st57;
1722                 case 95: goto st63;
1723                 case 123: goto st57;
1724         }
1725         if ( (*p) < 45 ) {
1726                 if ( (*p) < 40 ) {
1727                         if ( 36 <= (*p) && (*p) <= 37 )
1728                                 goto st57;
1729                 } else if ( (*p) > 41 ) {
1730                         if ( 43 <= (*p) && (*p) <= 44 )
1731                                 goto st57;
1732                 } else
1733                         goto st57;
1734         } else if ( (*p) > 57 ) {
1735                 if ( (*p) < 97 ) {
1736                         if ( 65 <= (*p) && (*p) <= 90 )
1737                                 goto st63;
1738                 } else if ( (*p) > 122 ) {
1739                         if ( 125 <= (*p) && (*p) <= 126 )
1740                                 goto st57;
1741                 } else
1742                         goto st63;
1743         } else
1744                 goto st63;
1745         goto tr91;
1746 st78:
1747         if ( ++p == pe )
1748                 goto _test_eof78;
1749 case 78:
1750         switch( (*p) ) {
1751                 case 33: goto st57;
1752                 case 47: goto st79;
1753                 case 92: goto st57;
1754         }
1755         if ( (*p) < 63 ) {
1756                 if ( (*p) < 40 ) {
1757                         if ( 36 <= (*p) && (*p) <= 37 )
1758                                 goto st57;
1759                 } else if ( (*p) > 41 ) {
1760                         if ( 43 <= (*p) && (*p) <= 59 )
1761                                 goto st57;
1762                 } else
1763                         goto st57;
1764         } else if ( (*p) > 90 ) {
1765                 if ( (*p) < 97 ) {
1766                         if ( 94 <= (*p) && (*p) <= 95 )
1767                                 goto st57;
1768                 } else if ( (*p) > 123 ) {
1769                         if ( 125 <= (*p) && (*p) <= 126 )
1770                                 goto st57;
1771                 } else
1772                         goto st57;
1773         } else
1774                 goto st57;
1775         goto tr91;
1776 st79:
1777         if ( ++p == pe )
1778                 goto _test_eof79;
1779 case 79:
1780         switch( (*p) ) {
1781                 case 33: goto st57;
1782                 case 47: goto st80;
1783                 case 92: goto st57;
1784         }
1785         if ( (*p) < 63 ) {
1786                 if ( (*p) < 40 ) {
1787                         if ( 36 <= (*p) && (*p) <= 37 )
1788                                 goto st57;
1789                 } else if ( (*p) > 41 ) {
1790                         if ( 43 <= (*p) && (*p) <= 59 )
1791                                 goto st57;
1792                 } else
1793                         goto st57;
1794         } else if ( (*p) > 90 ) {
1795                 if ( (*p) < 97 ) {
1796                         if ( 94 <= (*p) && (*p) <= 95 )
1797                                 goto st57;
1798                 } else if ( (*p) > 123 ) {
1799                         if ( 125 <= (*p) && (*p) <= 126 )
1800                                 goto st57;
1801                 } else
1802                         goto st57;
1803         } else
1804                 goto st57;
1805         goto tr91;
1806 st80:
1807         if ( ++p == pe )
1808                 goto _test_eof80;
1809 case 80:
1810         switch( (*p) ) {
1811                 case 33: goto st57;
1812                 case 35: goto tr62;
1813                 case 40: goto tr126;
1814                 case 41: goto st57;
1815                 case 44: goto st57;
1816                 case 46: goto st57;
1817                 case 61: goto tr62;
1818                 case 63: goto st57;
1819                 case 92: goto st57;
1820                 case 94: goto st57;
1821                 case 95: goto tr126;
1822                 case 123: goto st57;
1823                 case 125: goto st57;
1824                 case 126: goto tr126;
1825         }
1826         if ( (*p) < 43 ) {
1827                 if ( (*p) > 37 ) {
1828                         if ( 38 <= (*p) && (*p) <= 42 )
1829                                 goto tr62;
1830                 } else if ( (*p) >= 36 )
1831                         goto tr126;
1832         } else if ( (*p) > 57 ) {
1833                 if ( (*p) < 64 ) {
1834                         if ( 58 <= (*p) && (*p) <= 59 )
1835                                 goto st57;
1836                 } else if ( (*p) > 90 ) {
1837                         if ( 97 <= (*p) && (*p) <= 122 )
1838                                 goto tr126;
1839                 } else
1840                         goto tr126;
1841         } else
1842                 goto tr126;
1843         goto tr91;
1844 tr62:
1845 #line 1 "wikitext_ragel.rl"
1846         {te = p+1;}
1847         goto st81;
1848 st81:
1849         if ( ++p == pe )
1850                 goto _test_eof81;
1851 case 81:
1852 #line 1853 "wikitext_ragel.c"
1853         switch( (*p) ) {
1854                 case 33: goto st53;
1855                 case 41: goto st53;
1856                 case 44: goto st53;
1857                 case 46: goto st53;
1858                 case 61: goto tr62;
1859                 case 63: goto st53;
1860                 case 95: goto tr62;
1861                 case 126: goto tr62;
1862         }
1863         if ( (*p) < 58 ) {
1864                 if ( 35 <= (*p) && (*p) <= 57 )
1865                         goto tr62;
1866         } else if ( (*p) > 59 ) {
1867                 if ( (*p) > 90 ) {
1868                         if ( 97 <= (*p) && (*p) <= 122 )
1869                                 goto tr62;
1870                 } else if ( (*p) >= 64 )
1871                         goto tr62;
1872         } else
1873                 goto st53;
1874         goto tr127;
1875 st53:
1876         if ( ++p == pe )
1877                 goto _test_eof53;
1878 case 53:
1879         switch( (*p) ) {
1880                 case 33: goto st53;
1881                 case 41: goto st53;
1882                 case 44: goto st53;
1883                 case 46: goto st53;
1884                 case 61: goto tr62;
1885                 case 63: goto st53;
1886                 case 95: goto tr62;
1887                 case 126: goto tr62;
1888         }
1889         if ( (*p) < 58 ) {
1890                 if ( 35 <= (*p) && (*p) <= 57 )
1891                         goto tr62;
1892         } else if ( (*p) > 59 ) {
1893                 if ( (*p) > 90 ) {
1894                         if ( 97 <= (*p) && (*p) <= 122 )
1895                                 goto tr62;
1896                 } else if ( (*p) >= 64 )
1897                         goto tr62;
1898         } else
1899                 goto st53;
1900         goto tr60;
1901 tr128:
1902 #line 1 "wikitext_ragel.rl"
1903         {te = p+1;}
1904 #line 356 "wikitext_ragel.rl"
1905         {act = 33;}
1906         goto st82;
1907 tr126:
1908 #line 1 "wikitext_ragel.rl"
1909         {te = p+1;}
1910 #line 248 "wikitext_ragel.rl"
1911         {act = 16;}
1912         goto st82;
1913 st82:
1914         if ( ++p == pe )
1915                 goto _test_eof82;
1916 case 82:
1917 #line 1918 "wikitext_ragel.c"
1918         switch( (*p) ) {
1919                 case 33: goto tr128;
1920                 case 35: goto tr62;
1921                 case 40: goto tr126;
1922                 case 41: goto tr128;
1923                 case 44: goto tr128;
1924                 case 46: goto tr128;
1925                 case 61: goto tr62;
1926                 case 63: goto tr128;
1927                 case 92: goto st57;
1928                 case 94: goto st57;
1929                 case 95: goto tr126;
1930                 case 123: goto st57;
1931                 case 125: goto st57;
1932                 case 126: goto tr126;
1933         }
1934         if ( (*p) < 43 ) {
1935                 if ( (*p) > 37 ) {
1936                         if ( 38 <= (*p) && (*p) <= 42 )
1937                                 goto tr62;
1938                 } else if ( (*p) >= 36 )
1939                         goto tr126;
1940         } else if ( (*p) > 57 ) {
1941                 if ( (*p) < 64 ) {
1942                         if ( 58 <= (*p) && (*p) <= 59 )
1943                                 goto tr128;
1944                 } else if ( (*p) > 90 ) {
1945                         if ( 97 <= (*p) && (*p) <= 122 )
1946                                 goto tr126;
1947                 } else
1948                         goto tr126;
1949         } else
1950                 goto tr126;
1951         goto tr103;
1952 st83:
1953         if ( ++p == pe )
1954                 goto _test_eof83;
1955 case 83:
1956         switch( (*p) ) {
1957                 case 33: goto st57;
1958                 case 47: goto st57;
1959                 case 63: goto st57;
1960                 case 64: goto st64;
1961                 case 84: goto st75;
1962                 case 92: goto st57;
1963                 case 94: goto st57;
1964                 case 95: goto st63;
1965                 case 116: goto st75;
1966                 case 123: goto st57;
1967         }
1968         if ( (*p) < 45 ) {
1969                 if ( (*p) < 40 ) {
1970                         if ( 36 <= (*p) && (*p) <= 37 )
1971                                 goto st57;
1972                 } else if ( (*p) > 41 ) {
1973                         if ( 43 <= (*p) && (*p) <= 44 )
1974                                 goto st57;
1975                 } else
1976                         goto st57;
1977         } else if ( (*p) > 57 ) {
1978                 if ( (*p) < 65 ) {
1979                         if ( 58 <= (*p) && (*p) <= 59 )
1980                                 goto st57;
1981                 } else if ( (*p) > 90 ) {
1982                         if ( (*p) > 122 ) {
1983                                 if ( 125 <= (*p) && (*p) <= 126 )
1984                                         goto st57;
1985                         } else if ( (*p) >= 97 )
1986                                 goto st63;
1987                 } else
1988                         goto st63;
1989         } else
1990                 goto st63;
1991         goto tr91;
1992 st84:
1993         if ( ++p == pe )
1994                 goto _test_eof84;
1995 case 84:
1996         switch( (*p) ) {
1997                 case 33: goto st57;
1998                 case 47: goto st57;
1999                 case 63: goto st57;
2000                 case 64: goto st64;
2001                 case 86: goto st85;
2002                 case 92: goto st57;
2003                 case 94: goto st57;
2004                 case 95: goto st63;
2005                 case 118: goto st85;
2006                 case 123: goto st57;
2007         }
2008         if ( (*p) < 45 ) {
2009                 if ( (*p) < 40 ) {
2010                         if ( 36 <= (*p) && (*p) <= 37 )
2011                                 goto st57;
2012                 } else if ( (*p) > 41 ) {
2013                         if ( 43 <= (*p) && (*p) <= 44 )
2014                                 goto st57;
2015                 } else
2016                         goto st57;
2017         } else if ( (*p) > 57 ) {
2018                 if ( (*p) < 65 ) {
2019                         if ( 58 <= (*p) && (*p) <= 59 )
2020                                 goto st57;
2021                 } else if ( (*p) > 90 ) {
2022                         if ( (*p) > 122 ) {
2023                                 if ( 125 <= (*p) && (*p) <= 126 )
2024                                         goto st57;
2025                         } else if ( (*p) >= 97 )
2026                                 goto st63;
2027                 } else
2028                         goto st63;
2029         } else
2030                 goto st63;
2031         goto tr91;
2032 st85:
2033         if ( ++p == pe )
2034                 goto _test_eof85;
2035 case 85:
2036         switch( (*p) ) {
2037                 case 33: goto st57;
2038                 case 47: goto st57;
2039                 case 63: goto st57;
2040                 case 64: goto st64;
2041                 case 78: goto st77;
2042                 case 92: goto st57;
2043                 case 94: goto st57;
2044                 case 95: goto st63;
2045                 case 110: goto st77;
2046                 case 123: goto st57;
2047         }
2048         if ( (*p) < 45 ) {
2049                 if ( (*p) < 40 ) {
2050                         if ( 36 <= (*p) && (*p) <= 37 )
2051                                 goto st57;
2052                 } else if ( (*p) > 41 ) {
2053                         if ( 43 <= (*p) && (*p) <= 44 )
2054                                 goto st57;
2055                 } else
2056                         goto st57;
2057         } else if ( (*p) > 57 ) {
2058                 if ( (*p) < 65 ) {
2059                         if ( 58 <= (*p) && (*p) <= 59 )
2060                                 goto st57;
2061                 } else if ( (*p) > 90 ) {
2062                         if ( (*p) > 122 ) {
2063                                 if ( 125 <= (*p) && (*p) <= 126 )
2064                                         goto st57;
2065                         } else if ( (*p) >= 97 )
2066                                 goto st63;
2067                 } else
2068                         goto st63;
2069         } else
2070                 goto st63;
2071         goto tr91;
2072 st86:
2073         if ( ++p == pe )
2074                 goto _test_eof86;
2075 case 86:
2076         if ( (*p) == 91 )
2077                 goto tr131;
2078         goto tr130;
2079 st87:
2080         if ( ++p == pe )
2081                 goto _test_eof87;
2082 case 87:
2083         if ( (*p) == 93 )
2084                 goto tr133;
2085         goto tr132;
2086         }
2087         _test_eof54: cs = 54; goto _test_eof; 
2088         _test_eof1: cs = 1; goto _test_eof; 
2089         _test_eof2: cs = 2; goto _test_eof; 
2090         _test_eof3: cs = 3; goto _test_eof; 
2091         _test_eof4: cs = 4; goto _test_eof; 
2092         _test_eof5: cs = 5; goto _test_eof; 
2093         _test_eof6: cs = 6; goto _test_eof; 
2094         _test_eof55: cs = 55; goto _test_eof; 
2095         _test_eof56: cs = 56; goto _test_eof; 
2096         _test_eof57: cs = 57; goto _test_eof; 
2097         _test_eof58: cs = 58; goto _test_eof; 
2098         _test_eof7: cs = 7; goto _test_eof; 
2099         _test_eof8: cs = 8; goto _test_eof; 
2100         _test_eof9: cs = 9; goto _test_eof; 
2101         _test_eof10: cs = 10; goto _test_eof; 
2102         _test_eof11: cs = 11; goto _test_eof; 
2103         _test_eof12: cs = 12; goto _test_eof; 
2104         _test_eof13: cs = 13; goto _test_eof; 
2105         _test_eof14: cs = 14; goto _test_eof; 
2106         _test_eof15: cs = 15; goto _test_eof; 
2107         _test_eof16: cs = 16; goto _test_eof; 
2108         _test_eof17: cs = 17; goto _test_eof; 
2109         _test_eof18: cs = 18; goto _test_eof; 
2110         _test_eof19: cs = 19; goto _test_eof; 
2111         _test_eof59: cs = 59; goto _test_eof; 
2112         _test_eof60: cs = 60; goto _test_eof; 
2113         _test_eof61: cs = 61; goto _test_eof; 
2114         _test_eof62: cs = 62; goto _test_eof; 
2115         _test_eof63: cs = 63; goto _test_eof; 
2116         _test_eof64: cs = 64; goto _test_eof; 
2117         _test_eof65: cs = 65; goto _test_eof; 
2118         _test_eof66: cs = 66; goto _test_eof; 
2119         _test_eof67: cs = 67; goto _test_eof; 
2120         _test_eof68: cs = 68; goto _test_eof; 
2121         _test_eof69: cs = 69; goto _test_eof; 
2122         _test_eof70: cs = 70; goto _test_eof; 
2123         _test_eof71: cs = 71; goto _test_eof; 
2124         _test_eof20: cs = 20; goto _test_eof; 
2125         _test_eof21: cs = 21; goto _test_eof; 
2126         _test_eof22: cs = 22; goto _test_eof; 
2127         _test_eof23: cs = 23; goto _test_eof; 
2128         _test_eof24: cs = 24; goto _test_eof; 
2129         _test_eof25: cs = 25; goto _test_eof; 
2130         _test_eof26: cs = 26; goto _test_eof; 
2131         _test_eof27: cs = 27; goto _test_eof; 
2132         _test_eof28: cs = 28; goto _test_eof; 
2133         _test_eof29: cs = 29; goto _test_eof; 
2134         _test_eof30: cs = 30; goto _test_eof; 
2135         _test_eof31: cs = 31; goto _test_eof; 
2136         _test_eof32: cs = 32; goto _test_eof; 
2137         _test_eof33: cs = 33; goto _test_eof; 
2138         _test_eof34: cs = 34; goto _test_eof; 
2139         _test_eof35: cs = 35; goto _test_eof; 
2140         _test_eof36: cs = 36; goto _test_eof; 
2141         _test_eof37: cs = 37; goto _test_eof; 
2142         _test_eof38: cs = 38; goto _test_eof; 
2143         _test_eof39: cs = 39; goto _test_eof; 
2144         _test_eof40: cs = 40; goto _test_eof; 
2145         _test_eof41: cs = 41; goto _test_eof; 
2146         _test_eof42: cs = 42; goto _test_eof; 
2147         _test_eof43: cs = 43; goto _test_eof; 
2148         _test_eof44: cs = 44; goto _test_eof; 
2149         _test_eof45: cs = 45; goto _test_eof; 
2150         _test_eof46: cs = 46; goto _test_eof; 
2151         _test_eof47: cs = 47; goto _test_eof; 
2152         _test_eof48: cs = 48; goto _test_eof; 
2153         _test_eof49: cs = 49; goto _test_eof; 
2154         _test_eof50: cs = 50; goto _test_eof; 
2155         _test_eof51: cs = 51; goto _test_eof; 
2156         _test_eof52: cs = 52; goto _test_eof; 
2157         _test_eof72: cs = 72; goto _test_eof; 
2158         _test_eof73: cs = 73; goto _test_eof; 
2159         _test_eof74: cs = 74; goto _test_eof; 
2160         _test_eof75: cs = 75; goto _test_eof; 
2161         _test_eof76: cs = 76; goto _test_eof; 
2162         _test_eof77: cs = 77; goto _test_eof; 
2163         _test_eof78: cs = 78; goto _test_eof; 
2164         _test_eof79: cs = 79; goto _test_eof; 
2165         _test_eof80: cs = 80; goto _test_eof; 
2166         _test_eof81: cs = 81; goto _test_eof; 
2167         _test_eof53: cs = 53; goto _test_eof; 
2168         _test_eof82: cs = 82; goto _test_eof; 
2169         _test_eof83: cs = 83; goto _test_eof; 
2170         _test_eof84: cs = 84; goto _test_eof; 
2171         _test_eof85: cs = 85; goto _test_eof; 
2172         _test_eof86: cs = 86; goto _test_eof; 
2173         _test_eof87: cs = 87; goto _test_eof; 
2174
2175         _test_eof: {}
2176         if ( p == eof )
2177         {
2178         switch ( cs ) {
2179         case 55: goto tr87;
2180         case 56: goto tr89;
2181         case 57: goto tr91;
2182         case 58: goto tr92;
2183         case 7: goto tr7;
2184         case 8: goto tr7;
2185         case 9: goto tr7;
2186         case 10: goto tr7;
2187         case 11: goto tr7;
2188         case 12: goto tr7;
2189         case 13: goto tr7;
2190         case 14: goto tr7;
2191         case 15: goto tr7;
2192         case 16: goto tr7;
2193         case 17: goto tr7;
2194         case 18: goto tr7;
2195         case 19: goto tr7;
2196         case 59: goto tr96;
2197         case 60: goto tr96;
2198         case 61: goto tr96;
2199         case 62: goto tr96;
2200         case 63: goto tr91;
2201         case 64: goto tr91;
2202         case 65: goto tr103;
2203         case 66: goto tr91;
2204         case 67: goto tr91;
2205         case 68: goto tr107;
2206         case 69: goto tr107;
2207         case 70: goto tr107;
2208         case 71: goto tr111;
2209         case 20: goto tr23;
2210         case 21: goto tr23;
2211         case 22: goto tr23;
2212         case 23: goto tr23;
2213         case 24: goto tr23;
2214         case 25: goto tr23;
2215         case 26: goto tr23;
2216         case 27: goto tr23;
2217         case 28: goto tr23;
2218         case 29: goto tr23;
2219         case 30: goto tr23;
2220         case 31: goto tr23;
2221         case 32: goto tr23;
2222         case 33: goto tr23;
2223         case 34: goto tr23;
2224         case 35: goto tr23;
2225         case 36: goto tr23;
2226         case 37: goto tr23;
2227         case 38: goto tr23;
2228         case 39: goto tr23;
2229         case 40: goto tr23;
2230         case 41: goto tr23;
2231         case 42: goto tr23;
2232         case 43: goto tr23;
2233         case 44: goto tr23;
2234         case 45: goto tr23;
2235         case 46: goto tr23;
2236         case 47: goto tr23;
2237         case 48: goto tr23;
2238         case 49: goto tr23;
2239         case 50: goto tr23;
2240         case 51: goto tr23;
2241         case 52: goto tr23;
2242         case 72: goto tr117;
2243         case 73: goto tr117;
2244         case 74: goto tr119;
2245         case 75: goto tr91;
2246         case 76: goto tr91;
2247         case 77: goto tr91;
2248         case 78: goto tr91;
2249         case 79: goto tr91;
2250         case 80: goto tr91;
2251         case 81: goto tr127;
2252         case 53: goto tr60;
2253         case 82: goto tr103;
2254         case 83: goto tr91;
2255         case 84: goto tr91;
2256         case 85: goto tr91;
2257         case 86: goto tr130;
2258         case 87: goto tr132;
2259         }
2260         }
2261
2262         _out: {}
2263         }
2264 #line 428 "wikitext_ragel.rl"
2265     if (cs == wikitext_error)
2266         rb_raise(eWikitextParserError, "failed before finding a token");
2267     else if (out->type == NO_TOKEN)
2268         rb_raise(eWikitextParserError, "failed to produce a token");
2269 }