]> git.wincent.com - wikitext.git/commitdiff
Add tokenization of PRE_START and PRE_END
authorWincent Colaiuta <win@wincent.com>
Sun, 10 Feb 2008 18:06:28 +0000 (19:06 +0100)
committerWincent Colaiuta <win@wincent.com>
Sun, 10 Feb 2008 18:06:28 +0000 (19:06 +0100)
As a convenience, it would be nice to offer the ability to use literal
<pre></pre> tags to mark up PRE spans rather than just using the
existing mechanism of prefixing each line with a space. This will be
particularly useful when pasting in long code samples and the like.

Signed-off-by: Wincent Colaiuta <win@wincent.com>
ext/token.h
ext/wikitext_ragel.c
ext/wikitext_ragel.rl

index 1b2f78684227bc848568718b1317cdb2b9c5dcd5..7fa9338cb7ceb3eddf4e50b4d12781189227c43c 100644 (file)
@@ -36,6 +36,8 @@ enum token_types {
     LI,             // imaginary token (never explicitly marked up)
     NESTED_LIST,    // imaginary token (never explicitly marked up)
     PRE,
+    PRE_START,
+    PRE_END,
     NO_WIKI_START,
     NO_WIKI_END,
     BLOCKQUOTE,
index 1fb83b679463056b11c6b43eba0999f8366a2207..e1754849c655d3516bcc70ebc77cad2b6f75825f 100644 (file)
 
 
 #line 35 "wikitext_ragel.c"
-static const int wikitext_start = 54;
-static const int wikitext_first_final = 54;
+static const int wikitext_start = 60;
+static const int wikitext_first_final = 60;
 static const int wikitext_error = 0;
 
-static const int wikitext_en_main = 54;
+static const int wikitext_en_main = 60;
 
-#line 386 "wikitext_ragel.rl"
+#line 398 "wikitext_ragel.rl"
 
 
 // for now we use the scanner as a tokenizer that returns one token at a time, just like ANTLR
@@ -88,7 +88,7 @@ void next_token(token_t *out, token_t *last_token, char *p, char *pe)
        te = 0;
        act = 0;
        }
-#line 428 "wikitext_ragel.rl"
+#line 440 "wikitext_ragel.rl"
     
 #line 94 "wikitext_ragel.c"
        {
@@ -102,13 +102,13 @@ tr0:
         out->code_point = ((uint32_t)(*(p - 1)) & 0x1f) << 6 |
             (*p & 0x3f);
     }
-#line 377 "wikitext_ragel.rl"
+#line 389 "wikitext_ragel.rl"
        {te = p+1;{
             EMIT(DEFAULT);
             out->column_stop = out->column_start + 1;
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
+       goto st60;
 tr3:
 #line 52 "wikitext_ragel.rl"
        {
@@ -116,13 +116,13 @@ tr3:
             ((uint32_t)(*(p - 1)) & 0x3f) << 6 |
             (*p & 0x3f);
     }
-#line 377 "wikitext_ragel.rl"
+#line 389 "wikitext_ragel.rl"
        {te = p+1;{
             EMIT(DEFAULT);
             out->column_stop = out->column_start + 1;
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
+       goto st60;
 tr6:
 #line 59 "wikitext_ragel.rl"
        {
@@ -131,211 +131,225 @@ tr6:
             ((uint32_t)(*(p - 1)) & 0x3f) << 6 |
             (*p & 0x3f);
     }
-#line 377 "wikitext_ragel.rl"
+#line 389 "wikitext_ragel.rl"
        {te = p+1;{
             EMIT(DEFAULT);
             out->column_stop = out->column_start + 1;
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
+       goto st60;
 tr7:
-#line 327 "wikitext_ragel.rl"
+#line 339 "wikitext_ragel.rl"
        {{p = ((te))-1;}{
             EMIT(AMP);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
+       goto st60;
 tr10:
-#line 315 "wikitext_ragel.rl"
+#line 327 "wikitext_ragel.rl"
        {te = p+1;{
             EMIT(DECIMAL_ENTITY);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
+       goto st60;
 tr12:
-#line 309 "wikitext_ragel.rl"
+#line 321 "wikitext_ragel.rl"
        {te = p+1;{
             EMIT(HEX_ENTITY);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
+       goto st60;
 tr14:
-#line 303 "wikitext_ragel.rl"
+#line 315 "wikitext_ragel.rl"
        {te = p+1;{
             EMIT(NAMED_ENTITY);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
+       goto st60;
 tr18:
-#line 297 "wikitext_ragel.rl"
+#line 309 "wikitext_ragel.rl"
        {te = p+1;{
             EMIT(AMP_ENTITY);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
+       goto st60;
 tr22:
-#line 291 "wikitext_ragel.rl"
+#line 303 "wikitext_ragel.rl"
        {te = p+1;{
             EMIT(QUOT_ENTITY);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
+       goto st60;
 tr23:
-#line 333 "wikitext_ragel.rl"
+#line 345 "wikitext_ragel.rl"
        {{p = ((te))-1;}{
             EMIT(LESS);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr29:
-#line 128 "wikitext_ragel.rl"
+       goto st60;
+tr30:
+#line 140 "wikitext_ragel.rl"
        {te = p+1;{
             EMIT(EM_END);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr35:
+       goto st60;
+tr36:
 #line 86 "wikitext_ragel.rl"
        {te = p+1;{
             EMIT(NO_WIKI_END);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
+        }}
+       goto st60;
+tr39:
+#line 98 "wikitext_ragel.rl"
+       {te = p+1;{
+            EMIT(PRE_END);
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr41:
-#line 116 "wikitext_ragel.rl"
+       goto st60;
+tr45:
+#line 128 "wikitext_ragel.rl"
        {te = p+1;{
             EMIT(STRONG_END);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr43:
-#line 146 "wikitext_ragel.rl"
+       goto st60;
+tr47:
+#line 158 "wikitext_ragel.rl"
        {te = p+1;{
             EMIT(TT_END);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr45:
-#line 122 "wikitext_ragel.rl"
+       goto st60;
+tr49:
+#line 134 "wikitext_ragel.rl"
        {te = p+1;{
             EMIT(EM_START);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr51:
+       goto st60;
+tr55:
 #line 80 "wikitext_ragel.rl"
        {te = p+1;{
             EMIT(NO_WIKI_START);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
+        }}
+       goto st60;
+tr58:
+#line 92 "wikitext_ragel.rl"
+       {te = p+1;{
+            EMIT(PRE_START);
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr57:
-#line 110 "wikitext_ragel.rl"
+       goto st60;
+tr64:
+#line 122 "wikitext_ragel.rl"
        {te = p+1;{
             EMIT(STRONG_START);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr59:
-#line 140 "wikitext_ragel.rl"
+       goto st60;
+tr66:
+#line 152 "wikitext_ragel.rl"
        {te = p+1;{
             EMIT(TT_START);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr60:
-#line 249 "wikitext_ragel.rl"
+       goto st60;
+tr67:
+#line 261 "wikitext_ragel.rl"
        {{p = ((te))-1;}{
             EMIT(URI);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr66:
+       goto st60;
+tr73:
 #line 41 "wikitext_ragel.rl"
        {
         out->code_point = *p & 0x7f;
     }
-#line 377 "wikitext_ragel.rl"
+#line 389 "wikitext_ragel.rl"
        {te = p+1;{
             EMIT(DEFAULT);
             out->column_stop = out->column_start + 1;
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr67:
-#line 345 "wikitext_ragel.rl"
+       goto st60;
+tr74:
+#line 357 "wikitext_ragel.rl"
        {te = p+1;{
             EMIT(CRLF);
             out->column_stop = 1;
             out->line_stop++;
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
 #line 41 "wikitext_ragel.rl"
        {
         out->code_point = *p & 0x7f;
     }
-       goto st54;
-tr71:
-#line 321 "wikitext_ragel.rl"
+       goto st60;
+tr78:
+#line 333 "wikitext_ragel.rl"
        {te = p+1;{
             EMIT(QUOT);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr72:
-#line 179 "wikitext_ragel.rl"
+       goto st60;
+tr79:
+#line 191 "wikitext_ragel.rl"
        {te = p+1;{
             if (out->column_start == 1 || last_token_type == OL || last_token_type == UL || last_token_type == BLOCKQUOTE)
                 EMIT(OL);
             else
                 EMIT(PRINTABLE);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr75:
-#line 188 "wikitext_ragel.rl"
+       goto st60;
+tr82:
+#line 200 "wikitext_ragel.rl"
        {te = p+1;{
             if (out->column_start == 1 || last_token_type == OL || last_token_type == UL || last_token_type == BLOCKQUOTE)
                 EMIT(UL);
             else
                 EMIT(PRINTABLE);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr86:
-#line 134 "wikitext_ragel.rl"
+       goto st60;
+tr93:
+#line 146 "wikitext_ragel.rl"
        {te = p+1;{
             EMIT(TT);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr87:
-#line 273 "wikitext_ragel.rl"
+       goto st60;
+tr94:
+#line 285 "wikitext_ragel.rl"
        {te = p+1;{
             EMIT(SEPARATOR);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr88:
-#line 345 "wikitext_ragel.rl"
+       goto st60;
+tr95:
+#line 357 "wikitext_ragel.rl"
        {te = p;p--;{
             EMIT(CRLF);
             out->column_stop = 1;
             out->line_stop++;
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr89:
-#line 345 "wikitext_ragel.rl"
+       goto st60;
+tr96:
+#line 357 "wikitext_ragel.rl"
        {te = p+1;{
             EMIT(CRLF);
             out->column_stop = 1;
             out->line_stop++;
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr90:
-#line 167 "wikitext_ragel.rl"
+       goto st60;
+tr97:
+#line 179 "wikitext_ragel.rl"
        {te = p;p--;{
             if (out->column_start == 1 || last_token_type == BLOCKQUOTE)
             {
@@ -344,25 +358,25 @@ tr90:
             }
             else
                 EMIT(SPACE);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr92:
-#line 357 "wikitext_ragel.rl"
+       goto st60;
+tr99:
+#line 369 "wikitext_ragel.rl"
        {te = p;p--;{
             EMIT(PRINTABLE);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr93:
-#line 327 "wikitext_ragel.rl"
+       goto st60;
+tr100:
+#line 339 "wikitext_ragel.rl"
        {te = p;p--;{
             EMIT(AMP);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr97:
-#line 92 "wikitext_ragel.rl"
+       goto st60;
+tr104:
+#line 104 "wikitext_ragel.rl"
        {te = p;p--;{
             if (DISTANCE() == 5)
                 EMIT(STRONG_EM);
@@ -377,11 +391,11 @@ tr97:
                 EMIT(EM);
             else
                 EMIT(PRINTABLE);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr101:
-#line 92 "wikitext_ragel.rl"
+       goto st60;
+tr108:
+#line 104 "wikitext_ragel.rl"
        {te = p+1;{
             if (DISTANCE() == 5)
                 EMIT(STRONG_EM);
@@ -396,50 +410,50 @@ tr101:
                 EMIT(EM);
             else
                 EMIT(PRINTABLE);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr104:
+       goto st60;
+tr111:
 #line 1 "wikitext_ragel.rl"
        {       switch( act ) {
-       case 16:
+       case 18:
        {{p = ((te))-1;}
             EMIT(URI);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }
        break;
-       case 17:
+       case 19:
        {{p = ((te))-1;}
             EMIT(MAIL);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }
        break;
-       case 33:
+       case 35:
        {{p = ((te))-1;}
             EMIT(PRINTABLE);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }
        break;
        default: break;
        }
        }
-       goto st54;
-tr108:
-#line 255 "wikitext_ragel.rl"
+       goto st60;
+tr115:
+#line 267 "wikitext_ragel.rl"
        {te = p;p--;{
             EMIT(MAIL);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr112:
-#line 333 "wikitext_ragel.rl"
+       goto st60;
+tr119:
+#line 345 "wikitext_ragel.rl"
        {te = p;p--;{
             EMIT(LESS);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr118:
-#line 197 "wikitext_ragel.rl"
+       goto st60;
+tr126:
+#line 209 "wikitext_ragel.rl"
        {te = p;p--;{
             if (out->column_start == 1 || last_token_type == BLOCKQUOTE)
             {
@@ -488,11 +502,11 @@ tr118:
                 REWIND();
                 EMIT(PRINTABLE);
             }
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr120:
-#line 153 "wikitext_ragel.rl"
+       goto st60;
+tr128:
+#line 165 "wikitext_ragel.rl"
        {te = p;p--;{
             if (out->column_start == 1 || last_token_type == BLOCKQUOTE)
                 EMIT(BLOCKQUOTE);
@@ -501,11 +515,11 @@ tr120:
                 REWIND();
                 EMIT(GREATER);
             }
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr121:
-#line 153 "wikitext_ragel.rl"
+       goto st60;
+tr129:
+#line 165 "wikitext_ragel.rl"
        {te = p+1;{
             if (out->column_start == 1 || last_token_type == BLOCKQUOTE)
                 EMIT(BLOCKQUOTE);
@@ -514,81 +528,81 @@ tr121:
                 REWIND();
                 EMIT(GREATER);
             }
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr128:
-#line 249 "wikitext_ragel.rl"
+       goto st60;
+tr136:
+#line 261 "wikitext_ragel.rl"
        {te = p;p--;{
             EMIT(URI);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr149:
-#line 279 "wikitext_ragel.rl"
+       goto st60;
+tr157:
+#line 291 "wikitext_ragel.rl"
        {te = p;p--;{
             EMIT(EXT_LINK_START);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr150:
-#line 261 "wikitext_ragel.rl"
+       goto st60;
+tr158:
+#line 273 "wikitext_ragel.rl"
        {te = p+1;{
             EMIT(LINK_START);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr151:
-#line 285 "wikitext_ragel.rl"
+       goto st60;
+tr159:
+#line 297 "wikitext_ragel.rl"
        {te = p;p--;{
             EMIT(EXT_LINK_END);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-tr152:
-#line 267 "wikitext_ragel.rl"
+       goto st60;
+tr160:
+#line 279 "wikitext_ragel.rl"
        {te = p+1;{
             EMIT(LINK_END);
-            {p++; cs = 54; goto _out;}
+            {p++; cs = 60; goto _out;}
         }}
-       goto st54;
-st54:
+       goto st60;
+st60:
 #line 1 "wikitext_ragel.rl"
        {ts = 0;}
        if ( ++p == pe )
-               goto _test_eof54;
-case 54:
+               goto _test_eof60;
+case 60:
 #line 1 "wikitext_ragel.rl"
        {ts = p;}
-#line 564 "wikitext_ragel.c"
-       switch( (*p) ) {
-               case 10: goto tr67;
-               case 13: goto tr68;
-               case 32: goto tr69;
-               case 34: goto tr71;
-               case 35: goto tr72;
-               case 38: goto tr73;
-               case 39: goto st59;
-               case 42: goto tr75;
-               case 47: goto st57;
-               case 60: goto tr77;
-               case 61: goto tr78;
-               case 62: goto tr79;
-               case 70: goto st75;
-               case 72: goto st83;
-               case 77: goto st87;
-               case 83: goto st102;
-               case 91: goto st104;
-               case 92: goto st57;
-               case 93: goto st105;
-               case 94: goto st57;
-               case 96: goto tr86;
-               case 102: goto st75;
-               case 104: goto st83;
-               case 109: goto st87;
-               case 115: goto st102;
-               case 124: goto tr87;
-               case 127: goto tr66;
+#line 578 "wikitext_ragel.c"
+       switch( (*p) ) {
+               case 10: goto tr74;
+               case 13: goto tr75;
+               case 32: goto tr76;
+               case 34: goto tr78;
+               case 35: goto tr79;
+               case 38: goto tr80;
+               case 39: goto st65;
+               case 42: goto tr82;
+               case 47: goto st63;
+               case 60: goto tr84;
+               case 61: goto tr85;
+               case 62: goto tr86;
+               case 70: goto st81;
+               case 72: goto st89;
+               case 77: goto st93;
+               case 83: goto st108;
+               case 91: goto st110;
+               case 92: goto st63;
+               case 93: goto st111;
+               case 94: goto st63;
+               case 96: goto tr93;
+               case 102: goto st81;
+               case 104: goto st89;
+               case 109: goto st93;
+               case 115: goto st108;
+               case 124: goto tr94;
+               case 127: goto tr73;
        }
        if ( (*p) < 33 ) {
                if ( (*p) < -32 ) {
@@ -597,7 +611,7 @@ case 54:
                } else if ( (*p) > -17 ) {
                        if ( (*p) > -12 ) {
                                if ( 1 <= (*p) && (*p) <= 31 )
-                                       goto tr66;
+                                       goto tr73;
                        } else if ( (*p) >= -16 )
                                goto st4;
                } else
@@ -605,17 +619,17 @@ case 54:
        } else if ( (*p) > 44 ) {
                if ( (*p) < 58 ) {
                        if ( 45 <= (*p) && (*p) <= 57 )
-                               goto st63;
+                               goto st69;
                } else if ( (*p) > 64 ) {
                        if ( (*p) > 122 ) {
                                if ( 123 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 65 )
-                               goto st63;
+                               goto st69;
                } else
-                       goto st57;
+                       goto st63;
        } else
-               goto st57;
+               goto st63;
        goto st0;
 st0:
 cs = 0;
@@ -662,72 +676,72 @@ case 6:
        if ( (*p) <= -65 )
                goto tr6;
        goto st0;
-tr68:
+tr75:
 #line 41 "wikitext_ragel.rl"
        {
         out->code_point = *p & 0x7f;
     }
-       goto st55;
-st55:
+       goto st61;
+st61:
        if ( ++p == pe )
-               goto _test_eof55;
-case 55:
-#line 676 "wikitext_ragel.c"
+               goto _test_eof61;
+case 61:
+#line 690 "wikitext_ragel.c"
        if ( (*p) == 10 )
-               goto tr89;
-       goto tr88;
-tr69:
+               goto tr96;
+       goto tr95;
+tr76:
 #line 36 "wikitext_ragel.rl"
        {
         MARK();
     }
-       goto st56;
-st56:
+       goto st62;
+st62:
        if ( ++p == pe )
-               goto _test_eof56;
-case 56:
-#line 690 "wikitext_ragel.c"
+               goto _test_eof62;
+case 62:
+#line 704 "wikitext_ragel.c"
        if ( (*p) == 32 )
-               goto st56;
-       goto tr90;
-st57:
+               goto st62;
+       goto tr97;
+st63:
        if ( ++p == pe )
-               goto _test_eof57;
-case 57:
+               goto _test_eof63;
+case 63:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 92: goto st57;
+               case 33: goto st63;
+               case 92: goto st63;
        }
        if ( (*p) < 63 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( 43 <= (*p) && (*p) <= 59 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 90 ) {
                if ( (*p) < 97 ) {
                        if ( 94 <= (*p) && (*p) <= 95 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 123 ) {
                        if ( 125 <= (*p) && (*p) <= 126 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else
-               goto st57;
-       goto tr92;
-tr73:
+               goto st63;
+       goto tr99;
+tr80:
 #line 1 "wikitext_ragel.rl"
        {te = p+1;}
-       goto st58;
-st58:
+       goto st64;
+st64:
        if ( ++p == pe )
-               goto _test_eof58;
-case 58:
-#line 731 "wikitext_ragel.c"
+               goto _test_eof64;
+case 64:
+#line 745 "wikitext_ragel.c"
        switch( (*p) ) {
                case 35: goto st7;
                case 97: goto st13;
@@ -738,7 +752,7 @@ case 58:
                        goto st11;
        } else if ( (*p) >= 65 )
                goto st11;
-       goto tr93;
+       goto tr100;
 st7:
        if ( ++p == pe )
                goto _test_eof7;
@@ -926,384 +940,386 @@ case 19:
        } else
                goto st11;
        goto tr7;
-st59:
+st65:
        if ( ++p == pe )
-               goto _test_eof59;
-case 59:
+               goto _test_eof65;
+case 65:
        if ( (*p) == 39 )
-               goto st60;
-       goto tr97;
-st60:
+               goto st66;
+       goto tr104;
+st66:
        if ( ++p == pe )
-               goto _test_eof60;
-case 60:
+               goto _test_eof66;
+case 66:
        if ( (*p) == 39 )
-               goto st61;
-       goto tr97;
-st61:
+               goto st67;
+       goto tr104;
+st67:
        if ( ++p == pe )
-               goto _test_eof61;
-case 61:
+               goto _test_eof67;
+case 67:
        if ( (*p) == 39 )
-               goto st62;
-       goto tr97;
-st62:
+               goto st68;
+       goto tr104;
+st68:
        if ( ++p == pe )
-               goto _test_eof62;
-case 62:
+               goto _test_eof68;
+case 68:
        if ( (*p) == 39 )
-               goto tr101;
-       goto tr97;
-st63:
+               goto tr108;
+       goto tr104;
+st69:
        if ( ++p == pe )
-               goto _test_eof63;
-case 63:
+               goto _test_eof69;
+case 69:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 47: goto st57;
-               case 63: goto st57;
-               case 64: goto st64;
-               case 92: goto st57;
-               case 94: goto st57;
-               case 95: goto st63;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 47: goto st63;
+               case 63: goto st63;
+               case 64: goto st70;
+               case 92: goto st63;
+               case 94: goto st63;
+               case 95: goto st69;
+               case 123: goto st63;
        }
        if ( (*p) < 45 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( 43 <= (*p) && (*p) <= 44 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 57 ) {
                if ( (*p) < 65 ) {
                        if ( 58 <= (*p) && (*p) <= 59 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 90 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto st63;
+                               goto st69;
                } else
-                       goto st63;
+                       goto st69;
        } else
-               goto st63;
-       goto tr92;
-st64:
+               goto st69;
+       goto tr99;
+st70:
        if ( ++p == pe )
-               goto _test_eof64;
-case 64:
+               goto _test_eof70;
+case 70:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 92: goto st57;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 92: goto st63;
+               case 123: goto st63;
        }
        if ( (*p) < 58 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( (*p) > 47 ) {
                                if ( 48 <= (*p) && (*p) <= 57 )
-                                       goto tr103;
+                                       goto tr110;
                        } else if ( (*p) >= 43 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 59 ) {
                if ( (*p) < 94 ) {
                        if ( (*p) > 64 ) {
                                if ( 65 <= (*p) && (*p) <= 90 )
-                                       goto tr103;
+                                       goto tr110;
                        } else if ( (*p) >= 63 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 95 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto tr103;
+                               goto tr110;
                } else
-                       goto st57;
+                       goto st63;
        } else
-               goto st57;
-       goto tr92;
-tr103:
+               goto st63;
+       goto tr99;
+tr110:
 #line 1 "wikitext_ragel.rl"
        {te = p+1;}
-#line 357 "wikitext_ragel.rl"
-       {act = 33;}
-       goto st65;
-tr111:
+#line 369 "wikitext_ragel.rl"
+       {act = 35;}
+       goto st71;
+tr118:
 #line 1 "wikitext_ragel.rl"
        {te = p+1;}
-#line 255 "wikitext_ragel.rl"
-       {act = 17;}
-       goto st65;
-st65:
+#line 267 "wikitext_ragel.rl"
+       {act = 19;}
+       goto st71;
+st71:
        if ( ++p == pe )
-               goto _test_eof65;
-case 65:
-#line 1051 "wikitext_ragel.c"
+               goto _test_eof71;
+case 71:
+#line 1065 "wikitext_ragel.c"
        switch( (*p) ) {
-               case 33: goto st57;
-               case 46: goto st66;
-               case 92: goto st57;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 46: goto st72;
+               case 92: goto st63;
+               case 123: goto st63;
        }
        if ( (*p) < 58 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( (*p) > 47 ) {
                                if ( 48 <= (*p) && (*p) <= 57 )
-                                       goto tr103;
+                                       goto tr110;
                        } else if ( (*p) >= 43 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 59 ) {
                if ( (*p) < 94 ) {
                        if ( (*p) > 64 ) {
                                if ( 65 <= (*p) && (*p) <= 90 )
-                                       goto tr103;
+                                       goto tr110;
                        } else if ( (*p) >= 63 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 95 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto tr103;
+                               goto tr110;
                } else
-                       goto st57;
+                       goto st63;
        } else
-               goto st57;
-       goto tr104;
-st66:
+               goto st63;
+       goto tr111;
+st72:
        if ( ++p == pe )
-               goto _test_eof66;
-case 66:
+               goto _test_eof72;
+case 72:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 92: goto st57;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 92: goto st63;
+               case 123: goto st63;
        }
        if ( (*p) < 58 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( (*p) > 47 ) {
                                if ( 48 <= (*p) && (*p) <= 57 )
-                                       goto tr103;
+                                       goto tr110;
                        } else if ( (*p) >= 43 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 59 ) {
                if ( (*p) < 94 ) {
                        if ( (*p) > 64 ) {
                                if ( 65 <= (*p) && (*p) <= 90 )
-                                       goto st67;
+                                       goto st73;
                        } else if ( (*p) >= 63 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 95 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto st67;
+                               goto st73;
                } else
-                       goto st57;
+                       goto st63;
        } else
-               goto st57;
-       goto tr92;
-st67:
+               goto st63;
+       goto tr99;
+st73:
        if ( ++p == pe )
-               goto _test_eof67;
-case 67:
+               goto _test_eof73;
+case 73:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 46: goto st66;
-               case 92: goto st57;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 46: goto st72;
+               case 92: goto st63;
+               case 123: goto st63;
        }
        if ( (*p) < 58 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( (*p) > 47 ) {
                                if ( 48 <= (*p) && (*p) <= 57 )
-                                       goto tr103;
+                                       goto tr110;
                        } else if ( (*p) >= 43 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 59 ) {
                if ( (*p) < 94 ) {
                        if ( (*p) > 64 ) {
                                if ( 65 <= (*p) && (*p) <= 90 )
-                                       goto st68;
+                                       goto st74;
                        } else if ( (*p) >= 63 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 95 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto st68;
+                               goto st74;
                } else
-                       goto st57;
+                       goto st63;
        } else
-               goto st57;
-       goto tr92;
-st68:
+               goto st63;
+       goto tr99;
+st74:
        if ( ++p == pe )
-               goto _test_eof68;
-case 68:
+               goto _test_eof74;
+case 74:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 46: goto st66;
-               case 92: goto st57;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 46: goto st72;
+               case 92: goto st63;
+               case 123: goto st63;
        }
        if ( (*p) < 58 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( (*p) > 47 ) {
                                if ( 48 <= (*p) && (*p) <= 57 )
-                                       goto tr103;
+                                       goto tr110;
                        } else if ( (*p) >= 43 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 59 ) {
                if ( (*p) < 94 ) {
                        if ( (*p) > 64 ) {
                                if ( 65 <= (*p) && (*p) <= 90 )
-                                       goto st69;
+                                       goto st75;
                        } else if ( (*p) >= 63 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 95 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto st69;
+                               goto st75;
                } else
-                       goto st57;
+                       goto st63;
        } else
-               goto st57;
-       goto tr108;
-st69:
+               goto st63;
+       goto tr115;
+st75:
        if ( ++p == pe )
-               goto _test_eof69;
-case 69:
+               goto _test_eof75;
+case 75:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 46: goto st66;
-               case 92: goto st57;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 46: goto st72;
+               case 92: goto st63;
+               case 123: goto st63;
        }
        if ( (*p) < 58 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( (*p) > 47 ) {
                                if ( 48 <= (*p) && (*p) <= 57 )
-                                       goto tr103;
+                                       goto tr110;
                        } else if ( (*p) >= 43 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 59 ) {
                if ( (*p) < 94 ) {
                        if ( (*p) > 64 ) {
                                if ( 65 <= (*p) && (*p) <= 90 )
-                                       goto st70;
+                                       goto st76;
                        } else if ( (*p) >= 63 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 95 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto st70;
+                               goto st76;
                } else
-                       goto st57;
+                       goto st63;
        } else
-               goto st57;
-       goto tr108;
-st70:
+               goto st63;
+       goto tr115;
+st76:
        if ( ++p == pe )
-               goto _test_eof70;
-case 70:
+               goto _test_eof76;
+case 76:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 46: goto st66;
-               case 92: goto st57;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 46: goto st72;
+               case 92: goto st63;
+               case 123: goto st63;
        }
        if ( (*p) < 58 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( (*p) > 47 ) {
                                if ( 48 <= (*p) && (*p) <= 57 )
-                                       goto tr103;
+                                       goto tr110;
                        } else if ( (*p) >= 43 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 59 ) {
                if ( (*p) < 94 ) {
                        if ( (*p) > 64 ) {
                                if ( 65 <= (*p) && (*p) <= 90 )
-                                       goto tr111;
+                                       goto tr118;
                        } else if ( (*p) >= 63 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 95 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto tr111;
+                               goto tr118;
                } else
-                       goto st57;
+                       goto st63;
        } else
-               goto st57;
-       goto tr108;
-tr77:
+               goto st63;
+       goto tr115;
+tr84:
 #line 1 "wikitext_ragel.rl"
        {te = p+1;}
-       goto st71;
-st71:
+       goto st77;
+st77:
        if ( ++p == pe )
-               goto _test_eof71;
-case 71:
-#line 1295 "wikitext_ragel.c"
+               goto _test_eof77;
+case 77:
+#line 1309 "wikitext_ragel.c"
        switch( (*p) ) {
                case 47: goto st20;
-               case 69: goto st37;
-               case 78: goto st39;
-               case 83: goto st45;
-               case 84: goto st51;
-               case 101: goto st37;
-               case 110: goto st39;
-               case 115: goto st45;
-               case 116: goto st51;
-       }
-       goto tr112;
+               case 69: goto st40;
+               case 78: goto st42;
+               case 80: goto st48;
+               case 83: goto st51;
+               case 84: goto st57;
+               case 101: goto st40;
+               case 110: goto st42;
+               case 112: goto st48;
+               case 115: goto st51;
+               case 116: goto st57;
+       }
+       goto tr119;
 st20:
        if ( ++p == pe )
                goto _test_eof20;
@@ -1311,12 +1327,14 @@ case 20:
        switch( (*p) ) {
                case 69: goto st21;
                case 78: goto st23;
-               case 83: goto st29;
-               case 84: goto st35;
+               case 80: goto st29;
+               case 83: goto st32;
+               case 84: goto st38;
                case 101: goto st21;
                case 110: goto st23;
-               case 115: goto st29;
-               case 116: goto st35;
+               case 112: goto st29;
+               case 115: goto st32;
+               case 116: goto st38;
        }
        goto tr23;
 st21:
@@ -1333,7 +1351,7 @@ st22:
                goto _test_eof22;
 case 22:
        if ( (*p) == 62 )
-               goto tr29;
+               goto tr30;
        goto tr23;
 st23:
        if ( ++p == pe )
@@ -1385,15 +1403,15 @@ st28:
                goto _test_eof28;
 case 28:
        if ( (*p) == 62 )
-               goto tr35;
+               goto tr36;
        goto tr23;
 st29:
        if ( ++p == pe )
                goto _test_eof29;
 case 29:
        switch( (*p) ) {
-               case 84: goto st30;
-               case 116: goto st30;
+               case 82: goto st30;
+               case 114: goto st30;
        }
        goto tr23;
 st30:
@@ -1401,26 +1419,24 @@ st30:
                goto _test_eof30;
 case 30:
        switch( (*p) ) {
-               case 82: goto st31;
-               case 114: goto st31;
+               case 69: goto st31;
+               case 101: goto st31;
        }
        goto tr23;
 st31:
        if ( ++p == pe )
                goto _test_eof31;
 case 31:
-       switch( (*p) ) {
-               case 79: goto st32;
-               case 111: goto st32;
-       }
+       if ( (*p) == 62 )
+               goto tr39;
        goto tr23;
 st32:
        if ( ++p == pe )
                goto _test_eof32;
 case 32:
        switch( (*p) ) {
-               case 78: goto st33;
-               case 110: goto st33;
+               case 84: goto st33;
+               case 116: goto st33;
        }
        goto tr23;
 st33:
@@ -1428,83 +1444,83 @@ st33:
                goto _test_eof33;
 case 33:
        switch( (*p) ) {
-               case 71: goto st34;
-               case 103: goto st34;
+               case 82: goto st34;
+               case 114: goto st34;
        }
        goto tr23;
 st34:
        if ( ++p == pe )
                goto _test_eof34;
 case 34:
-       if ( (*p) == 62 )
-               goto tr41;
+       switch( (*p) ) {
+               case 79: goto st35;
+               case 111: goto st35;
+       }
        goto tr23;
 st35:
        if ( ++p == pe )
                goto _test_eof35;
 case 35:
        switch( (*p) ) {
-               case 84: goto st36;
-               case 116: goto st36;
+               case 78: goto st36;
+               case 110: goto st36;
        }
        goto tr23;
 st36:
        if ( ++p == pe )
                goto _test_eof36;
 case 36:
-       if ( (*p) == 62 )
-               goto tr43;
+       switch( (*p) ) {
+               case 71: goto st37;
+               case 103: goto st37;
+       }
        goto tr23;
 st37:
        if ( ++p == pe )
                goto _test_eof37;
 case 37:
-       switch( (*p) ) {
-               case 77: goto st38;
-               case 109: goto st38;
-       }
+       if ( (*p) == 62 )
+               goto tr45;
        goto tr23;
 st38:
        if ( ++p == pe )
                goto _test_eof38;
 case 38:
-       if ( (*p) == 62 )
-               goto tr45;
+       switch( (*p) ) {
+               case 84: goto st39;
+               case 116: goto st39;
+       }
        goto tr23;
 st39:
        if ( ++p == pe )
                goto _test_eof39;
 case 39:
-       switch( (*p) ) {
-               case 79: goto st40;
-               case 111: goto st40;
-       }
+       if ( (*p) == 62 )
+               goto tr47;
        goto tr23;
 st40:
        if ( ++p == pe )
                goto _test_eof40;
 case 40:
        switch( (*p) ) {
-               case 87: goto st41;
-               case 119: goto st41;
+               case 77: goto st41;
+               case 109: goto st41;
        }
        goto tr23;
 st41:
        if ( ++p == pe )
                goto _test_eof41;
 case 41:
-       switch( (*p) ) {
-               case 73: goto st42;
-               case 105: goto st42;
-       }
+       if ( (*p) == 62 )
+               goto tr49;
        goto tr23;
 st42:
        if ( ++p == pe )
                goto _test_eof42;
 case 42:
        switch( (*p) ) {
-               case 75: goto st43;
-               case 107: goto st43;
+               case 79: goto st43;
+               case 111: goto st43;
        }
        goto tr23;
 st43:
@@ -1512,24 +1528,26 @@ st43:
                goto _test_eof43;
 case 43:
        switch( (*p) ) {
-               case 73: goto st44;
-               case 105: goto st44;
+               case 87: goto st44;
+               case 119: goto st44;
        }
        goto tr23;
 st44:
        if ( ++p == pe )
                goto _test_eof44;
 case 44:
-       if ( (*p) == 62 )
-               goto tr51;
+       switch( (*p) ) {
+               case 73: goto st45;
+               case 105: goto st45;
+       }
        goto tr23;
 st45:
        if ( ++p == pe )
                goto _test_eof45;
 case 45:
        switch( (*p) ) {
-               case 84: goto st46;
-               case 116: goto st46;
+               case 75: goto st46;
+               case 107: goto st46;
        }
        goto tr23;
 st46:
@@ -1537,26 +1555,24 @@ st46:
                goto _test_eof46;
 case 46:
        switch( (*p) ) {
-               case 82: goto st47;
-               case 114: goto st47;
+               case 73: goto st47;
+               case 105: goto st47;
        }
        goto tr23;
 st47:
        if ( ++p == pe )
                goto _test_eof47;
 case 47:
-       switch( (*p) ) {
-               case 79: goto st48;
-               case 111: goto st48;
-       }
+       if ( (*p) == 62 )
+               goto tr55;
        goto tr23;
 st48:
        if ( ++p == pe )
                goto _test_eof48;
 case 48:
        switch( (*p) ) {
-               case 78: goto st49;
-               case 110: goto st49;
+               case 82: goto st49;
+               case 114: goto st49;
        }
        goto tr23;
 st49:
@@ -1564,8 +1580,8 @@ st49:
                goto _test_eof49;
 case 49:
        switch( (*p) ) {
-               case 71: goto st50;
-               case 103: goto st50;
+               case 69: goto st50;
+               case 101: goto st50;
        }
        goto tr23;
 st50:
@@ -1573,7 +1589,7 @@ st50:
                goto _test_eof50;
 case 50:
        if ( (*p) == 62 )
-               goto tr57;
+               goto tr58;
        goto tr23;
 st51:
        if ( ++p == pe )
@@ -1588,1239 +1604,1291 @@ st52:
        if ( ++p == pe )
                goto _test_eof52;
 case 52:
+       switch( (*p) ) {
+               case 82: goto st53;
+               case 114: goto st53;
+       }
+       goto tr23;
+st53:
+       if ( ++p == pe )
+               goto _test_eof53;
+case 53:
+       switch( (*p) ) {
+               case 79: goto st54;
+               case 111: goto st54;
+       }
+       goto tr23;
+st54:
+       if ( ++p == pe )
+               goto _test_eof54;
+case 54:
+       switch( (*p) ) {
+               case 78: goto st55;
+               case 110: goto st55;
+       }
+       goto tr23;
+st55:
+       if ( ++p == pe )
+               goto _test_eof55;
+case 55:
+       switch( (*p) ) {
+               case 71: goto st56;
+               case 103: goto st56;
+       }
+       goto tr23;
+st56:
+       if ( ++p == pe )
+               goto _test_eof56;
+case 56:
        if ( (*p) == 62 )
-               goto tr59;
+               goto tr64;
        goto tr23;
-tr78:
+st57:
+       if ( ++p == pe )
+               goto _test_eof57;
+case 57:
+       switch( (*p) ) {
+               case 84: goto st58;
+               case 116: goto st58;
+       }
+       goto tr23;
+st58:
+       if ( ++p == pe )
+               goto _test_eof58;
+case 58:
+       if ( (*p) == 62 )
+               goto tr66;
+       goto tr23;
+tr85:
 #line 36 "wikitext_ragel.rl"
        {
         MARK();
     }
-       goto st72;
-st72:
+       goto st78;
+st78:
        if ( ++p == pe )
-               goto _test_eof72;
-case 72:
-#line 1605 "wikitext_ragel.c"
+               goto _test_eof78;
+case 78:
+#line 1673 "wikitext_ragel.c"
        switch( (*p) ) {
-               case 32: goto st73;
-               case 61: goto tr78;
+               case 32: goto st79;
+               case 61: goto tr85;
        }
-       goto tr118;
-st73:
+       goto tr126;
+st79:
        if ( ++p == pe )
-               goto _test_eof73;
-case 73:
+               goto _test_eof79;
+case 79:
        if ( (*p) == 32 )
-               goto st73;
-       goto tr118;
-tr79:
+               goto st79;
+       goto tr126;
+tr86:
 #line 36 "wikitext_ragel.rl"
        {
         MARK();
     }
-       goto st74;
-st74:
+       goto st80;
+st80:
        if ( ++p == pe )
-               goto _test_eof74;
-case 74:
-#line 1628 "wikitext_ragel.c"
+               goto _test_eof80;
+case 80:
+#line 1696 "wikitext_ragel.c"
        if ( (*p) == 32 )
-               goto tr121;
-       goto tr120;
-st75:
+               goto tr129;
+       goto tr128;
+st81:
        if ( ++p == pe )
-               goto _test_eof75;
-case 75:
+               goto _test_eof81;
+case 81:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 47: goto st57;
-               case 63: goto st57;
-               case 64: goto st64;
-               case 84: goto st76;
-               case 92: goto st57;
-               case 94: goto st57;
-               case 95: goto st63;
-               case 116: goto st76;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 47: goto st63;
+               case 63: goto st63;
+               case 64: goto st70;
+               case 84: goto st82;
+               case 92: goto st63;
+               case 94: goto st63;
+               case 95: goto st69;
+               case 116: goto st82;
+               case 123: goto st63;
        }
        if ( (*p) < 45 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( 43 <= (*p) && (*p) <= 44 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 57 ) {
                if ( (*p) < 65 ) {
                        if ( 58 <= (*p) && (*p) <= 59 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 90 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto st63;
+                               goto st69;
                } else
-                       goto st63;
+                       goto st69;
        } else
-               goto st63;
-       goto tr92;
-st76:
+               goto st69;
+       goto tr99;
+st82:
        if ( ++p == pe )
-               goto _test_eof76;
-case 76:
+               goto _test_eof82;
+case 82:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 47: goto st57;
-               case 63: goto st57;
-               case 64: goto st64;
-               case 80: goto st77;
-               case 92: goto st57;
-               case 94: goto st57;
-               case 95: goto st63;
-               case 112: goto st77;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 47: goto st63;
+               case 63: goto st63;
+               case 64: goto st70;
+               case 80: goto st83;
+               case 92: goto st63;
+               case 94: goto st63;
+               case 95: goto st69;
+               case 112: goto st83;
+               case 123: goto st63;
        }
        if ( (*p) < 45 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( 43 <= (*p) && (*p) <= 44 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 57 ) {
                if ( (*p) < 65 ) {
                        if ( 58 <= (*p) && (*p) <= 59 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 90 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto st63;
+                               goto st69;
                } else
-                       goto st63;
+                       goto st69;
        } else
-               goto st63;
-       goto tr92;
-st77:
+               goto st69;
+       goto tr99;
+st83:
        if ( ++p == pe )
-               goto _test_eof77;
-case 77:
+               goto _test_eof83;
+case 83:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 47: goto st57;
-               case 58: goto st78;
-               case 59: goto st57;
-               case 63: goto st57;
-               case 64: goto st64;
-               case 92: goto st57;
-               case 94: goto st57;
-               case 95: goto st63;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 47: goto st63;
+               case 58: goto st84;
+               case 59: goto st63;
+               case 63: goto st63;
+               case 64: goto st70;
+               case 92: goto st63;
+               case 94: goto st63;
+               case 95: goto st69;
+               case 123: goto st63;
        }
        if ( (*p) < 45 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( 43 <= (*p) && (*p) <= 44 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 57 ) {
                if ( (*p) < 97 ) {
                        if ( 65 <= (*p) && (*p) <= 90 )
-                               goto st63;
+                               goto st69;
                } else if ( (*p) > 122 ) {
                        if ( 125 <= (*p) && (*p) <= 126 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st63;
+                       goto st69;
        } else
-               goto st63;
-       goto tr92;
-st78:
+               goto st69;
+       goto tr99;
+st84:
        if ( ++p == pe )
-               goto _test_eof78;
-case 78:
+               goto _test_eof84;
+case 84:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 47: goto st79;
-               case 92: goto st57;
+               case 33: goto st63;
+               case 47: goto st85;
+               case 92: goto st63;
        }
        if ( (*p) < 63 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( 43 <= (*p) && (*p) <= 59 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 90 ) {
                if ( (*p) < 97 ) {
                        if ( 94 <= (*p) && (*p) <= 95 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 123 ) {
                        if ( 125 <= (*p) && (*p) <= 126 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else
-               goto st57;
-       goto tr92;
-st79:
+               goto st63;
+       goto tr99;
+st85:
        if ( ++p == pe )
-               goto _test_eof79;
-case 79:
+               goto _test_eof85;
+case 85:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 47: goto st80;
-               case 92: goto st57;
+               case 33: goto st63;
+               case 47: goto st86;
+               case 92: goto st63;
        }
        if ( (*p) < 63 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( 43 <= (*p) && (*p) <= 59 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 90 ) {
                if ( (*p) < 97 ) {
                        if ( 94 <= (*p) && (*p) <= 95 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 123 ) {
                        if ( 125 <= (*p) && (*p) <= 126 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else
-               goto st57;
-       goto tr92;
-st80:
+               goto st63;
+       goto tr99;
+st86:
        if ( ++p == pe )
-               goto _test_eof80;
-case 80:
+               goto _test_eof86;
+case 86:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 35: goto tr62;
-               case 40: goto tr127;
-               case 41: goto st57;
-               case 44: goto st57;
-               case 46: goto st57;
-               case 61: goto tr62;
-               case 63: goto st57;
-               case 92: goto st57;
-               case 94: goto st57;
-               case 95: goto tr127;
-               case 123: goto st57;
-               case 125: goto st57;
-               case 126: goto tr127;
+               case 33: goto st63;
+               case 35: goto tr69;
+               case 40: goto tr135;
+               case 41: goto st63;
+               case 44: goto st63;
+               case 46: goto st63;
+               case 61: goto tr69;
+               case 63: goto st63;
+               case 92: goto st63;
+               case 94: goto st63;
+               case 95: goto tr135;
+               case 123: goto st63;
+               case 125: goto st63;
+               case 126: goto tr135;
        }
        if ( (*p) < 43 ) {
                if ( (*p) > 37 ) {
                        if ( 38 <= (*p) && (*p) <= 42 )
-                               goto tr62;
+                               goto tr69;
                } else if ( (*p) >= 36 )
-                       goto tr127;
+                       goto tr135;
        } else if ( (*p) > 57 ) {
                if ( (*p) < 64 ) {
                        if ( 58 <= (*p) && (*p) <= 59 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 90 ) {
                        if ( 97 <= (*p) && (*p) <= 122 )
-                               goto tr127;
+                               goto tr135;
                } else
-                       goto tr127;
+                       goto tr135;
        } else
-               goto tr127;
-       goto tr92;
-tr62:
+               goto tr135;
+       goto tr99;
+tr69:
 #line 1 "wikitext_ragel.rl"
        {te = p+1;}
-       goto st81;
-st81:
+       goto st87;
+st87:
        if ( ++p == pe )
-               goto _test_eof81;
-case 81:
-#line 1855 "wikitext_ragel.c"
+               goto _test_eof87;
+case 87:
+#line 1923 "wikitext_ragel.c"
        switch( (*p) ) {
-               case 33: goto st53;
-               case 41: goto st53;
-               case 44: goto st53;
-               case 46: goto st53;
-               case 61: goto tr62;
-               case 63: goto st53;
-               case 95: goto tr62;
-               case 126: goto tr62;
+               case 33: goto st59;
+               case 41: goto st59;
+               case 44: goto st59;
+               case 46: goto st59;
+               case 61: goto tr69;
+               case 63: goto st59;
+               case 95: goto tr69;
+               case 126: goto tr69;
        }
        if ( (*p) < 58 ) {
                if ( 35 <= (*p) && (*p) <= 57 )
-                       goto tr62;
+                       goto tr69;
        } else if ( (*p) > 59 ) {
                if ( (*p) > 90 ) {
                        if ( 97 <= (*p) && (*p) <= 122 )
-                               goto tr62;
+                               goto tr69;
                } else if ( (*p) >= 64 )
-                       goto tr62;
+                       goto tr69;
        } else
-               goto st53;
-       goto tr128;
-st53:
+               goto st59;
+       goto tr136;
+st59:
        if ( ++p == pe )
-               goto _test_eof53;
-case 53:
+               goto _test_eof59;
+case 59:
        switch( (*p) ) {
-               case 33: goto st53;
-               case 41: goto st53;
-               case 44: goto st53;
-               case 46: goto st53;
-               case 61: goto tr62;
-               case 63: goto st53;
-               case 95: goto tr62;
-               case 126: goto tr62;
+               case 33: goto st59;
+               case 41: goto st59;
+               case 44: goto st59;
+               case 46: goto st59;
+               case 61: goto tr69;
+               case 63: goto st59;
+               case 95: goto tr69;
+               case 126: goto tr69;
        }
        if ( (*p) < 58 ) {
                if ( 35 <= (*p) && (*p) <= 57 )
-                       goto tr62;
+                       goto tr69;
        } else if ( (*p) > 59 ) {
                if ( (*p) > 90 ) {
                        if ( 97 <= (*p) && (*p) <= 122 )
-                               goto tr62;
+                               goto tr69;
                } else if ( (*p) >= 64 )
-                       goto tr62;
+                       goto tr69;
        } else
-               goto st53;
-       goto tr60;
-tr129:
+               goto st59;
+       goto tr67;
+tr137:
 #line 1 "wikitext_ragel.rl"
        {te = p+1;}
-#line 357 "wikitext_ragel.rl"
-       {act = 33;}
-       goto st82;
-tr127:
+#line 369 "wikitext_ragel.rl"
+       {act = 35;}
+       goto st88;
+tr135:
 #line 1 "wikitext_ragel.rl"
        {te = p+1;}
-#line 249 "wikitext_ragel.rl"
-       {act = 16;}
-       goto st82;
-st82:
+#line 261 "wikitext_ragel.rl"
+       {act = 18;}
+       goto st88;
+st88:
        if ( ++p == pe )
-               goto _test_eof82;
-case 82:
-#line 1920 "wikitext_ragel.c"
-       switch( (*p) ) {
-               case 33: goto tr129;
-               case 35: goto tr62;
-               case 40: goto tr127;
-               case 41: goto tr129;
-               case 44: goto tr129;
-               case 46: goto tr129;
-               case 61: goto tr62;
-               case 63: goto tr129;
-               case 92: goto st57;
-               case 94: goto st57;
-               case 95: goto tr127;
-               case 123: goto st57;
-               case 125: goto st57;
-               case 126: goto tr127;
+               goto _test_eof88;
+case 88:
+#line 1988 "wikitext_ragel.c"
+       switch( (*p) ) {
+               case 33: goto tr137;
+               case 35: goto tr69;
+               case 40: goto tr135;
+               case 41: goto tr137;
+               case 44: goto tr137;
+               case 46: goto tr137;
+               case 61: goto tr69;
+               case 63: goto tr137;
+               case 92: goto st63;
+               case 94: goto st63;
+               case 95: goto tr135;
+               case 123: goto st63;
+               case 125: goto st63;
+               case 126: goto tr135;
        }
        if ( (*p) < 43 ) {
                if ( (*p) > 37 ) {
                        if ( 38 <= (*p) && (*p) <= 42 )
-                               goto tr62;
+                               goto tr69;
                } else if ( (*p) >= 36 )
-                       goto tr127;
+                       goto tr135;
        } else if ( (*p) > 57 ) {
                if ( (*p) < 64 ) {
                        if ( 58 <= (*p) && (*p) <= 59 )
-                               goto tr129;
+                               goto tr137;
                } else if ( (*p) > 90 ) {
                        if ( 97 <= (*p) && (*p) <= 122 )
-                               goto tr127;
+                               goto tr135;
                } else
-                       goto tr127;
+                       goto tr135;
        } else
-               goto tr127;
-       goto tr104;
-st83:
+               goto tr135;
+       goto tr111;
+st89:
        if ( ++p == pe )
-               goto _test_eof83;
-case 83:
+               goto _test_eof89;
+case 89:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 47: goto st57;
-               case 63: goto st57;
-               case 64: goto st64;
-               case 84: goto st84;
-               case 92: goto st57;
-               case 94: goto st57;
-               case 95: goto st63;
-               case 116: goto st84;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 47: goto st63;
+               case 63: goto st63;
+               case 64: goto st70;
+               case 84: goto st90;
+               case 92: goto st63;
+               case 94: goto st63;
+               case 95: goto st69;
+               case 116: goto st90;
+               case 123: goto st63;
        }
        if ( (*p) < 45 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( 43 <= (*p) && (*p) <= 44 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 57 ) {
                if ( (*p) < 65 ) {
                        if ( 58 <= (*p) && (*p) <= 59 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 90 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto st63;
+                               goto st69;
                } else
-                       goto st63;
+                       goto st69;
        } else
-               goto st63;
-       goto tr92;
-st84:
+               goto st69;
+       goto tr99;
+st90:
        if ( ++p == pe )
-               goto _test_eof84;
-case 84:
+               goto _test_eof90;
+case 90:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 47: goto st57;
-               case 63: goto st57;
-               case 64: goto st64;
-               case 84: goto st85;
-               case 92: goto st57;
-               case 94: goto st57;
-               case 95: goto st63;
-               case 116: goto st85;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 47: goto st63;
+               case 63: goto st63;
+               case 64: goto st70;
+               case 84: goto st91;
+               case 92: goto st63;
+               case 94: goto st63;
+               case 95: goto st69;
+               case 116: goto st91;
+               case 123: goto st63;
        }
        if ( (*p) < 45 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( 43 <= (*p) && (*p) <= 44 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 57 ) {
                if ( (*p) < 65 ) {
                        if ( 58 <= (*p) && (*p) <= 59 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 90 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto st63;
+                               goto st69;
                } else
-                       goto st63;
+                       goto st69;
        } else
-               goto st63;
-       goto tr92;
-st85:
+               goto st69;
+       goto tr99;
+st91:
        if ( ++p == pe )
-               goto _test_eof85;
-case 85:
+               goto _test_eof91;
+case 91:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 47: goto st57;
-               case 63: goto st57;
-               case 64: goto st64;
-               case 80: goto st86;
-               case 92: goto st57;
-               case 94: goto st57;
-               case 95: goto st63;
-               case 112: goto st86;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 47: goto st63;
+               case 63: goto st63;
+               case 64: goto st70;
+               case 80: goto st92;
+               case 92: goto st63;
+               case 94: goto st63;
+               case 95: goto st69;
+               case 112: goto st92;
+               case 123: goto st63;
        }
        if ( (*p) < 45 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( 43 <= (*p) && (*p) <= 44 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 57 ) {
                if ( (*p) < 65 ) {
                        if ( 58 <= (*p) && (*p) <= 59 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 90 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto st63;
+                               goto st69;
                } else
-                       goto st63;
+                       goto st69;
        } else
-               goto st63;
-       goto tr92;
-st86:
+               goto st69;
+       goto tr99;
+st92:
        if ( ++p == pe )
-               goto _test_eof86;
-case 86:
+               goto _test_eof92;
+case 92:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 47: goto st57;
-               case 58: goto st78;
-               case 59: goto st57;
-               case 63: goto st57;
-               case 64: goto st64;
-               case 83: goto st77;
-               case 92: goto st57;
-               case 94: goto st57;
-               case 95: goto st63;
-               case 115: goto st77;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 47: goto st63;
+               case 58: goto st84;
+               case 59: goto st63;
+               case 63: goto st63;
+               case 64: goto st70;
+               case 83: goto st83;
+               case 92: goto st63;
+               case 94: goto st63;
+               case 95: goto st69;
+               case 115: goto st83;
+               case 123: goto st63;
        }
        if ( (*p) < 45 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( 43 <= (*p) && (*p) <= 44 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 57 ) {
                if ( (*p) < 97 ) {
                        if ( 65 <= (*p) && (*p) <= 90 )
-                               goto st63;
+                               goto st69;
                } else if ( (*p) > 122 ) {
                        if ( 125 <= (*p) && (*p) <= 126 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st63;
+                       goto st69;
        } else
-               goto st63;
-       goto tr92;
-st87:
+               goto st69;
+       goto tr99;
+st93:
        if ( ++p == pe )
-               goto _test_eof87;
-case 87:
+               goto _test_eof93;
+case 93:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 47: goto st57;
-               case 63: goto st57;
-               case 64: goto st64;
-               case 65: goto st88;
-               case 92: goto st57;
-               case 94: goto st57;
-               case 95: goto st63;
-               case 97: goto st88;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 47: goto st63;
+               case 63: goto st63;
+               case 64: goto st70;
+               case 65: goto st94;
+               case 92: goto st63;
+               case 94: goto st63;
+               case 95: goto st69;
+               case 97: goto st94;
+               case 123: goto st63;
        }
        if ( (*p) < 45 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( 43 <= (*p) && (*p) <= 44 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 57 ) {
                if ( (*p) < 66 ) {
                        if ( 58 <= (*p) && (*p) <= 59 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 90 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 98 )
-                               goto st63;
+                               goto st69;
                } else
-                       goto st63;
+                       goto st69;
        } else
-               goto st63;
-       goto tr92;
-st88:
+               goto st69;
+       goto tr99;
+st94:
        if ( ++p == pe )
-               goto _test_eof88;
-case 88:
+               goto _test_eof94;
+case 94:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 47: goto st57;
-               case 63: goto st57;
-               case 64: goto st64;
-               case 73: goto st89;
-               case 92: goto st57;
-               case 94: goto st57;
-               case 95: goto st63;
-               case 105: goto st89;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 47: goto st63;
+               case 63: goto st63;
+               case 64: goto st70;
+               case 73: goto st95;
+               case 92: goto st63;
+               case 94: goto st63;
+               case 95: goto st69;
+               case 105: goto st95;
+               case 123: goto st63;
        }
        if ( (*p) < 45 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( 43 <= (*p) && (*p) <= 44 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 57 ) {
                if ( (*p) < 65 ) {
                        if ( 58 <= (*p) && (*p) <= 59 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 90 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto st63;
+                               goto st69;
                } else
-                       goto st63;
+                       goto st69;
        } else
-               goto st63;
-       goto tr92;
-st89:
+               goto st69;
+       goto tr99;
+st95:
        if ( ++p == pe )
-               goto _test_eof89;
-case 89:
+               goto _test_eof95;
+case 95:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 47: goto st57;
-               case 63: goto st57;
-               case 64: goto st64;
-               case 76: goto st90;
-               case 92: goto st57;
-               case 94: goto st57;
-               case 95: goto st63;
-               case 108: goto st90;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 47: goto st63;
+               case 63: goto st63;
+               case 64: goto st70;
+               case 76: goto st96;
+               case 92: goto st63;
+               case 94: goto st63;
+               case 95: goto st69;
+               case 108: goto st96;
+               case 123: goto st63;
        }
        if ( (*p) < 45 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( 43 <= (*p) && (*p) <= 44 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 57 ) {
                if ( (*p) < 65 ) {
                        if ( 58 <= (*p) && (*p) <= 59 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 90 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto st63;
+                               goto st69;
                } else
-                       goto st63;
+                       goto st69;
        } else
-               goto st63;
-       goto tr92;
-st90:
+               goto st69;
+       goto tr99;
+st96:
        if ( ++p == pe )
-               goto _test_eof90;
-case 90:
+               goto _test_eof96;
+case 96:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 47: goto st57;
-               case 63: goto st57;
-               case 64: goto st64;
-               case 84: goto st91;
-               case 92: goto st57;
-               case 94: goto st57;
-               case 95: goto st63;
-               case 116: goto st91;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 47: goto st63;
+               case 63: goto st63;
+               case 64: goto st70;
+               case 84: goto st97;
+               case 92: goto st63;
+               case 94: goto st63;
+               case 95: goto st69;
+               case 116: goto st97;
+               case 123: goto st63;
        }
        if ( (*p) < 45 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( 43 <= (*p) && (*p) <= 44 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 57 ) {
                if ( (*p) < 65 ) {
                        if ( 58 <= (*p) && (*p) <= 59 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 90 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto st63;
+                               goto st69;
                } else
-                       goto st63;
+                       goto st69;
        } else
-               goto st63;
-       goto tr92;
-st91:
+               goto st69;
+       goto tr99;
+st97:
        if ( ++p == pe )
-               goto _test_eof91;
-case 91:
+               goto _test_eof97;
+case 97:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 47: goto st57;
-               case 63: goto st57;
-               case 64: goto st64;
-               case 79: goto st92;
-               case 92: goto st57;
-               case 94: goto st57;
-               case 95: goto st63;
-               case 111: goto st92;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 47: goto st63;
+               case 63: goto st63;
+               case 64: goto st70;
+               case 79: goto st98;
+               case 92: goto st63;
+               case 94: goto st63;
+               case 95: goto st69;
+               case 111: goto st98;
+               case 123: goto st63;
        }
        if ( (*p) < 45 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( 43 <= (*p) && (*p) <= 44 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 57 ) {
                if ( (*p) < 65 ) {
                        if ( 58 <= (*p) && (*p) <= 59 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 90 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto st63;
+                               goto st69;
                } else
-                       goto st63;
+                       goto st69;
        } else
-               goto st63;
-       goto tr92;
-st92:
+               goto st69;
+       goto tr99;
+st98:
        if ( ++p == pe )
-               goto _test_eof92;
-case 92:
+               goto _test_eof98;
+case 98:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 47: goto st57;
-               case 58: goto st93;
-               case 59: goto st57;
-               case 63: goto st57;
-               case 64: goto st64;
-               case 92: goto st57;
-               case 94: goto st57;
-               case 95: goto st63;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 47: goto st63;
+               case 58: goto st99;
+               case 59: goto st63;
+               case 63: goto st63;
+               case 64: goto st70;
+               case 92: goto st63;
+               case 94: goto st63;
+               case 95: goto st69;
+               case 123: goto st63;
        }
        if ( (*p) < 45 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( 43 <= (*p) && (*p) <= 44 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 57 ) {
                if ( (*p) < 97 ) {
                        if ( 65 <= (*p) && (*p) <= 90 )
-                               goto st63;
+                               goto st69;
                } else if ( (*p) > 122 ) {
                        if ( 125 <= (*p) && (*p) <= 126 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st63;
+                       goto st69;
        } else
-               goto st63;
-       goto tr92;
-st93:
+               goto st69;
+       goto tr99;
+st99:
        if ( ++p == pe )
-               goto _test_eof93;
-case 93:
+               goto _test_eof99;
+case 99:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 47: goto st57;
-               case 92: goto st57;
-               case 94: goto st57;
-               case 95: goto st94;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 47: goto st63;
+               case 92: goto st63;
+               case 94: goto st63;
+               case 95: goto st100;
+               case 123: goto st63;
        }
        if ( (*p) < 58 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( (*p) > 44 ) {
                                if ( 45 <= (*p) && (*p) <= 57 )
-                                       goto st94;
+                                       goto st100;
                        } else if ( (*p) >= 43 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 59 ) {
                if ( (*p) < 65 ) {
                        if ( 63 <= (*p) && (*p) <= 64 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 90 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto st94;
+                               goto st100;
                } else
-                       goto st94;
+                       goto st100;
        } else
-               goto st57;
-       goto tr92;
-st94:
+               goto st63;
+       goto tr99;
+st100:
        if ( ++p == pe )
-               goto _test_eof94;
-case 94:
+               goto _test_eof100;
+case 100:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 47: goto st57;
-               case 63: goto st57;
-               case 64: goto st95;
-               case 92: goto st57;
-               case 94: goto st57;
-               case 95: goto st94;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 47: goto st63;
+               case 63: goto st63;
+               case 64: goto st101;
+               case 92: goto st63;
+               case 94: goto st63;
+               case 95: goto st100;
+               case 123: goto st63;
        }
        if ( (*p) < 45 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( 43 <= (*p) && (*p) <= 44 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 57 ) {
                if ( (*p) < 65 ) {
                        if ( 58 <= (*p) && (*p) <= 59 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 90 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto st94;
+                               goto st100;
                } else
-                       goto st94;
+                       goto st100;
        } else
-               goto st94;
-       goto tr92;
-st95:
+               goto st100;
+       goto tr99;
+st101:
        if ( ++p == pe )
-               goto _test_eof95;
-case 95:
+               goto _test_eof101;
+case 101:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 92: goto st57;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 92: goto st63;
+               case 123: goto st63;
        }
        if ( (*p) < 58 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( (*p) > 47 ) {
                                if ( 48 <= (*p) && (*p) <= 57 )
-                                       goto tr141;
+                                       goto tr149;
                        } else if ( (*p) >= 43 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 59 ) {
                if ( (*p) < 94 ) {
                        if ( (*p) > 64 ) {
                                if ( 65 <= (*p) && (*p) <= 90 )
-                                       goto tr141;
+                                       goto tr149;
                        } else if ( (*p) >= 63 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 95 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto tr141;
+                               goto tr149;
                } else
-                       goto st57;
+                       goto st63;
        } else
-               goto st57;
-       goto tr92;
-tr141:
+               goto st63;
+       goto tr99;
+tr149:
 #line 1 "wikitext_ragel.rl"
        {te = p+1;}
-#line 357 "wikitext_ragel.rl"
-       {act = 33;}
-       goto st96;
-tr147:
+#line 369 "wikitext_ragel.rl"
+       {act = 35;}
+       goto st102;
+tr155:
 #line 1 "wikitext_ragel.rl"
        {te = p+1;}
-#line 249 "wikitext_ragel.rl"
-       {act = 16;}
-       goto st96;
-st96:
+#line 261 "wikitext_ragel.rl"
+       {act = 18;}
+       goto st102;
+st102:
        if ( ++p == pe )
-               goto _test_eof96;
-case 96:
-#line 2483 "wikitext_ragel.c"
+               goto _test_eof102;
+case 102:
+#line 2551 "wikitext_ragel.c"
        switch( (*p) ) {
-               case 33: goto st57;
-               case 46: goto st97;
-               case 92: goto st57;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 46: goto st103;
+               case 92: goto st63;
+               case 123: goto st63;
        }
        if ( (*p) < 58 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( (*p) > 47 ) {
                                if ( 48 <= (*p) && (*p) <= 57 )
-                                       goto tr141;
+                                       goto tr149;
                        } else if ( (*p) >= 43 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 59 ) {
                if ( (*p) < 94 ) {
                        if ( (*p) > 64 ) {
                                if ( 65 <= (*p) && (*p) <= 90 )
-                                       goto tr141;
+                                       goto tr149;
                        } else if ( (*p) >= 63 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 95 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto tr141;
+                               goto tr149;
                } else
-                       goto st57;
+                       goto st63;
        } else
-               goto st57;
-       goto tr104;
-st97:
+               goto st63;
+       goto tr111;
+st103:
        if ( ++p == pe )
-               goto _test_eof97;
-case 97:
+               goto _test_eof103;
+case 103:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 92: goto st57;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 92: goto st63;
+               case 123: goto st63;
        }
        if ( (*p) < 58 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( (*p) > 47 ) {
                                if ( 48 <= (*p) && (*p) <= 57 )
-                                       goto tr141;
+                                       goto tr149;
                        } else if ( (*p) >= 43 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 59 ) {
                if ( (*p) < 94 ) {
                        if ( (*p) > 64 ) {
                                if ( 65 <= (*p) && (*p) <= 90 )
-                                       goto st98;
+                                       goto st104;
                        } else if ( (*p) >= 63 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 95 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto st98;
+                               goto st104;
                } else
-                       goto st57;
+                       goto st63;
        } else
-               goto st57;
-       goto tr92;
-st98:
+               goto st63;
+       goto tr99;
+st104:
        if ( ++p == pe )
-               goto _test_eof98;
-case 98:
+               goto _test_eof104;
+case 104:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 46: goto st97;
-               case 92: goto st57;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 46: goto st103;
+               case 92: goto st63;
+               case 123: goto st63;
        }
        if ( (*p) < 58 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( (*p) > 47 ) {
                                if ( 48 <= (*p) && (*p) <= 57 )
-                                       goto tr141;
+                                       goto tr149;
                        } else if ( (*p) >= 43 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 59 ) {
                if ( (*p) < 94 ) {
                        if ( (*p) > 64 ) {
                                if ( 65 <= (*p) && (*p) <= 90 )
-                                       goto st99;
+                                       goto st105;
                        } else if ( (*p) >= 63 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 95 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto st99;
+                               goto st105;
                } else
-                       goto st57;
+                       goto st63;
        } else
-               goto st57;
-       goto tr92;
-st99:
+               goto st63;
+       goto tr99;
+st105:
        if ( ++p == pe )
-               goto _test_eof99;
-case 99:
+               goto _test_eof105;
+case 105:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 46: goto st97;
-               case 92: goto st57;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 46: goto st103;
+               case 92: goto st63;
+               case 123: goto st63;
        }
        if ( (*p) < 58 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( (*p) > 47 ) {
                                if ( 48 <= (*p) && (*p) <= 57 )
-                                       goto tr141;
+                                       goto tr149;
                        } else if ( (*p) >= 43 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 59 ) {
                if ( (*p) < 94 ) {
                        if ( (*p) > 64 ) {
                                if ( 65 <= (*p) && (*p) <= 90 )
-                                       goto st100;
+                                       goto st106;
                        } else if ( (*p) >= 63 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 95 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto st100;
+                               goto st106;
                } else
-                       goto st57;
+                       goto st63;
        } else
-               goto st57;
-       goto tr128;
-st100:
+               goto st63;
+       goto tr136;
+st106:
        if ( ++p == pe )
-               goto _test_eof100;
-case 100:
+               goto _test_eof106;
+case 106:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 46: goto st97;
-               case 92: goto st57;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 46: goto st103;
+               case 92: goto st63;
+               case 123: goto st63;
        }
        if ( (*p) < 58 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( (*p) > 47 ) {
                                if ( 48 <= (*p) && (*p) <= 57 )
-                                       goto tr141;
+                                       goto tr149;
                        } else if ( (*p) >= 43 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 59 ) {
                if ( (*p) < 94 ) {
                        if ( (*p) > 64 ) {
                                if ( 65 <= (*p) && (*p) <= 90 )
-                                       goto st101;
+                                       goto st107;
                        } else if ( (*p) >= 63 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 95 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto st101;
+                               goto st107;
                } else
-                       goto st57;
+                       goto st63;
        } else
-               goto st57;
-       goto tr128;
-st101:
+               goto st63;
+       goto tr136;
+st107:
        if ( ++p == pe )
-               goto _test_eof101;
-case 101:
+               goto _test_eof107;
+case 107:
        switch( (*p) ) {
-               case 33: goto st57;
-               case 46: goto st97;
-               case 92: goto st57;
-               case 123: goto st57;
+               case 33: goto st63;
+               case 46: goto st103;
+               case 92: goto st63;
+               case 123: goto st63;
        }
        if ( (*p) < 58 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( (*p) > 47 ) {
                                if ( 48 <= (*p) && (*p) <= 57 )
-                                       goto tr141;
+                                       goto tr149;
                        } else if ( (*p) >= 43 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 59 ) {
                if ( (*p) < 94 ) {
                        if ( (*p) > 64 ) {
                                if ( 65 <= (*p) && (*p) <= 90 )
-                                       goto tr147;
+                                       goto tr155;
                        } else if ( (*p) >= 63 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 95 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto tr147;
+                               goto tr155;
                } else
-                       goto st57;
+                       goto st63;
        } else
-               goto st57;
-       goto tr128;
-st102:
-       if ( ++p == pe )
-               goto _test_eof102;
-case 102:
-       switch( (*p) ) {
-               case 33: goto st57;
-               case 47: goto st57;
-               case 63: goto st57;
-               case 64: goto st64;
-               case 86: goto st103;
-               case 92: goto st57;
-               case 94: goto st57;
-               case 95: goto st63;
-               case 118: goto st103;
-               case 123: goto st57;
+               goto st63;
+       goto tr136;
+st108:
+       if ( ++p == pe )
+               goto _test_eof108;
+case 108:
+       switch( (*p) ) {
+               case 33: goto st63;
+               case 47: goto st63;
+               case 63: goto st63;
+               case 64: goto st70;
+               case 86: goto st109;
+               case 92: goto st63;
+               case 94: goto st63;
+               case 95: goto st69;
+               case 118: goto st109;
+               case 123: goto st63;
        }
        if ( (*p) < 45 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( 43 <= (*p) && (*p) <= 44 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 57 ) {
                if ( (*p) < 65 ) {
                        if ( 58 <= (*p) && (*p) <= 59 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 90 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto st63;
+                               goto st69;
                } else
-                       goto st63;
+                       goto st69;
        } else
-               goto st63;
-       goto tr92;
-st103:
-       if ( ++p == pe )
-               goto _test_eof103;
-case 103:
-       switch( (*p) ) {
-               case 33: goto st57;
-               case 47: goto st57;
-               case 63: goto st57;
-               case 64: goto st64;
-               case 78: goto st77;
-               case 92: goto st57;
-               case 94: goto st57;
-               case 95: goto st63;
-               case 110: goto st77;
-               case 123: goto st57;
+               goto st69;
+       goto tr99;
+st109:
+       if ( ++p == pe )
+               goto _test_eof109;
+case 109:
+       switch( (*p) ) {
+               case 33: goto st63;
+               case 47: goto st63;
+               case 63: goto st63;
+               case 64: goto st70;
+               case 78: goto st83;
+               case 92: goto st63;
+               case 94: goto st63;
+               case 95: goto st69;
+               case 110: goto st83;
+               case 123: goto st63;
        }
        if ( (*p) < 45 ) {
                if ( (*p) < 40 ) {
                        if ( 36 <= (*p) && (*p) <= 37 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 41 ) {
                        if ( 43 <= (*p) && (*p) <= 44 )
-                               goto st57;
+                               goto st63;
                } else
-                       goto st57;
+                       goto st63;
        } else if ( (*p) > 57 ) {
                if ( (*p) < 65 ) {
                        if ( 58 <= (*p) && (*p) <= 59 )
-                               goto st57;
+                               goto st63;
                } else if ( (*p) > 90 ) {
                        if ( (*p) > 122 ) {
                                if ( 125 <= (*p) && (*p) <= 126 )
-                                       goto st57;
+                                       goto st63;
                        } else if ( (*p) >= 97 )
-                               goto st63;
+                               goto st69;
                } else
-                       goto st63;
+                       goto st69;
        } else
-               goto st63;
-       goto tr92;
-st104:
+               goto st69;
+       goto tr99;
+st110:
        if ( ++p == pe )
-               goto _test_eof104;
-case 104:
+               goto _test_eof110;
+case 110:
        if ( (*p) == 91 )
-               goto tr150;
-       goto tr149;
-st105:
+               goto tr158;
+       goto tr157;
+st111:
        if ( ++p == pe )
-               goto _test_eof105;
-case 105:
+               goto _test_eof111;
+case 111:
        if ( (*p) == 93 )
-               goto tr152;
-       goto tr151;
+               goto tr160;
+       goto tr159;
        }
-       _test_eof54: cs = 54; goto _test_eof; 
+       _test_eof60: cs = 60; goto _test_eof; 
        _test_eof1: cs = 1; goto _test_eof; 
        _test_eof2: cs = 2; goto _test_eof; 
        _test_eof3: cs = 3; goto _test_eof; 
        _test_eof4: cs = 4; goto _test_eof; 
        _test_eof5: cs = 5; goto _test_eof; 
        _test_eof6: cs = 6; goto _test_eof; 
-       _test_eof55: cs = 55; goto _test_eof; 
-       _test_eof56: cs = 56; goto _test_eof; 
-       _test_eof57: cs = 57; goto _test_eof; 
-       _test_eof58: cs = 58; goto _test_eof; 
+       _test_eof61: cs = 61; goto _test_eof; 
+       _test_eof62: cs = 62; goto _test_eof; 
+       _test_eof63: cs = 63; goto _test_eof; 
+       _test_eof64: cs = 64; goto _test_eof; 
        _test_eof7: cs = 7; goto _test_eof; 
        _test_eof8: cs = 8; goto _test_eof; 
        _test_eof9: cs = 9; goto _test_eof; 
@@ -2834,12 +2902,6 @@ case 105:
        _test_eof17: cs = 17; goto _test_eof; 
        _test_eof18: cs = 18; goto _test_eof; 
        _test_eof19: cs = 19; goto _test_eof; 
-       _test_eof59: cs = 59; goto _test_eof; 
-       _test_eof60: cs = 60; goto _test_eof; 
-       _test_eof61: cs = 61; goto _test_eof; 
-       _test_eof62: cs = 62; goto _test_eof; 
-       _test_eof63: cs = 63; goto _test_eof; 
-       _test_eof64: cs = 64; goto _test_eof; 
        _test_eof65: cs = 65; goto _test_eof; 
        _test_eof66: cs = 66; goto _test_eof; 
        _test_eof67: cs = 67; goto _test_eof; 
@@ -2847,6 +2909,12 @@ case 105:
        _test_eof69: cs = 69; goto _test_eof; 
        _test_eof70: cs = 70; goto _test_eof; 
        _test_eof71: cs = 71; goto _test_eof; 
+       _test_eof72: cs = 72; goto _test_eof; 
+       _test_eof73: cs = 73; goto _test_eof; 
+       _test_eof74: cs = 74; goto _test_eof; 
+       _test_eof75: cs = 75; goto _test_eof; 
+       _test_eof76: cs = 76; goto _test_eof; 
+       _test_eof77: cs = 77; goto _test_eof; 
        _test_eof20: cs = 20; goto _test_eof; 
        _test_eof21: cs = 21; goto _test_eof; 
        _test_eof22: cs = 22; goto _test_eof; 
@@ -2880,23 +2948,23 @@ case 105:
        _test_eof50: cs = 50; goto _test_eof; 
        _test_eof51: cs = 51; goto _test_eof; 
        _test_eof52: cs = 52; goto _test_eof; 
-       _test_eof72: cs = 72; goto _test_eof; 
-       _test_eof73: cs = 73; goto _test_eof; 
-       _test_eof74: cs = 74; goto _test_eof; 
-       _test_eof75: cs = 75; goto _test_eof; 
-       _test_eof76: cs = 76; goto _test_eof; 
-       _test_eof77: cs = 77; goto _test_eof; 
+       _test_eof53: cs = 53; goto _test_eof; 
+       _test_eof54: cs = 54; goto _test_eof; 
+       _test_eof55: cs = 55; goto _test_eof; 
+       _test_eof56: cs = 56; goto _test_eof; 
+       _test_eof57: cs = 57; goto _test_eof; 
+       _test_eof58: cs = 58; goto _test_eof; 
        _test_eof78: cs = 78; goto _test_eof; 
        _test_eof79: cs = 79; goto _test_eof; 
        _test_eof80: cs = 80; goto _test_eof; 
        _test_eof81: cs = 81; goto _test_eof; 
-       _test_eof53: cs = 53; goto _test_eof; 
        _test_eof82: cs = 82; goto _test_eof; 
        _test_eof83: cs = 83; goto _test_eof; 
        _test_eof84: cs = 84; goto _test_eof; 
        _test_eof85: cs = 85; goto _test_eof; 
        _test_eof86: cs = 86; goto _test_eof; 
        _test_eof87: cs = 87; goto _test_eof; 
+       _test_eof59: cs = 59; goto _test_eof; 
        _test_eof88: cs = 88; goto _test_eof; 
        _test_eof89: cs = 89; goto _test_eof; 
        _test_eof90: cs = 90; goto _test_eof; 
@@ -2915,15 +2983,21 @@ case 105:
        _test_eof103: cs = 103; goto _test_eof; 
        _test_eof104: cs = 104; goto _test_eof; 
        _test_eof105: cs = 105; goto _test_eof; 
+       _test_eof106: cs = 106; goto _test_eof; 
+       _test_eof107: cs = 107; goto _test_eof; 
+       _test_eof108: cs = 108; goto _test_eof; 
+       _test_eof109: cs = 109; goto _test_eof; 
+       _test_eof110: cs = 110; goto _test_eof; 
+       _test_eof111: cs = 111; goto _test_eof; 
 
        _test_eof: {}
        if ( p == eof )
        {
        switch ( cs ) {
-       case 55: goto tr88;
-       case 56: goto tr90;
-       case 57: goto tr92;
-       case 58: goto tr93;
+       case 61: goto tr95;
+       case 62: goto tr97;
+       case 63: goto tr99;
+       case 64: goto tr100;
        case 7: goto tr7;
        case 8: goto tr7;
        case 9: goto tr7;
@@ -2937,19 +3011,19 @@ case 105:
        case 17: goto tr7;
        case 18: goto tr7;
        case 19: goto tr7;
-       case 59: goto tr97;
-       case 60: goto tr97;
-       case 61: goto tr97;
-       case 62: goto tr97;
-       case 63: goto tr92;
-       case 64: goto tr92;
        case 65: goto tr104;
-       case 66: goto tr92;
-       case 67: goto tr92;
-       case 68: goto tr108;
-       case 69: goto tr108;
-       case 70: goto tr108;
-       case 71: goto tr112;
+       case 66: goto tr104;
+       case 67: goto tr104;
+       case 68: goto tr104;
+       case 69: goto tr99;
+       case 70: goto tr99;
+       case 71: goto tr111;
+       case 72: goto tr99;
+       case 73: goto tr99;
+       case 74: goto tr115;
+       case 75: goto tr115;
+       case 76: goto tr115;
+       case 77: goto tr119;
        case 20: goto tr23;
        case 21: goto tr23;
        case 22: goto tr23;
@@ -2983,47 +3057,53 @@ case 105:
        case 50: goto tr23;
        case 51: goto tr23;
        case 52: goto tr23;
-       case 72: goto tr118;
-       case 73: goto tr118;
-       case 74: goto tr120;
-       case 75: goto tr92;
-       case 76: goto tr92;
-       case 77: goto tr92;
-       case 78: goto tr92;
-       case 79: goto tr92;
-       case 80: goto tr92;
-       case 81: goto tr128;
-       case 53: goto tr60;
-       case 82: goto tr104;
-       case 83: goto tr92;
-       case 84: goto tr92;
-       case 85: goto tr92;
-       case 86: goto tr92;
-       case 87: goto tr92;
-       case 88: goto tr92;
-       case 89: goto tr92;
-       case 90: goto tr92;
-       case 91: goto tr92;
-       case 92: goto tr92;
-       case 93: goto tr92;
-       case 94: goto tr92;
-       case 95: goto tr92;
-       case 96: goto tr104;
-       case 97: goto tr92;
-       case 98: goto tr92;
-       case 99: goto tr128;
-       case 100: goto tr128;
-       case 101: goto tr128;
-       case 102: goto tr92;
-       case 103: goto tr92;
-       case 104: goto tr149;
-       case 105: goto tr151;
+       case 53: goto tr23;
+       case 54: goto tr23;
+       case 55: goto tr23;
+       case 56: goto tr23;
+       case 57: goto tr23;
+       case 58: goto tr23;
+       case 78: goto tr126;
+       case 79: goto tr126;
+       case 80: goto tr128;
+       case 81: goto tr99;
+       case 82: goto tr99;
+       case 83: goto tr99;
+       case 84: goto tr99;
+       case 85: goto tr99;
+       case 86: goto tr99;
+       case 87: goto tr136;
+       case 59: goto tr67;
+       case 88: goto tr111;
+       case 89: goto tr99;
+       case 90: goto tr99;
+       case 91: goto tr99;
+       case 92: goto tr99;
+       case 93: goto tr99;
+       case 94: goto tr99;
+       case 95: goto tr99;
+       case 96: goto tr99;
+       case 97: goto tr99;
+       case 98: goto tr99;
+       case 99: goto tr99;
+       case 100: goto tr99;
+       case 101: goto tr99;
+       case 102: goto tr111;
+       case 103: goto tr99;
+       case 104: goto tr99;
+       case 105: goto tr136;
+       case 106: goto tr136;
+       case 107: goto tr136;
+       case 108: goto tr99;
+       case 109: goto tr99;
+       case 110: goto tr157;
+       case 111: goto tr159;
        }
        }
 
        _out: {}
        }
-#line 429 "wikitext_ragel.rl"
+#line 441 "wikitext_ragel.rl"
     if (cs == wikitext_error)
         rb_raise(eWikitextParserError, "failed before finding a token");
     else if (out->type == NO_TOKEN)
index a9e501123c09062a4a3b9f91621b2a58be509c17..b72916f0f4a981abc743366671e3ad435373c6cd 100644 (file)
             fbreak;
         };
 
+        '<pre>'i
+        {
+            EMIT(PRE_START);
+            fbreak;
+        };
+
+        '</pre>'i
+        {
+            EMIT(PRE_END);
+            fbreak;
+        };
+
         "'"{1,5}
         {
             if (DISTANCE() == 5)