wikitext 1.7 → 1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/ext/ary.c CHANGED
@@ -75,6 +75,29 @@ int ary_includes(ary_t *ary, int val)
75
75
  return 0;
76
76
  }
77
77
 
78
+ int ary_includes2(ary_t *ary, int val1, int val2)
79
+ {
80
+ for (int i = 0, max = ary->count; i < max; i++)
81
+ {
82
+ if (ary->entries[i] == val1 ||
83
+ ary->entries[i] == val2)
84
+ return 1;
85
+ }
86
+ return 0;
87
+ }
88
+
89
+ int ary_includes3(ary_t *ary, int val1, int val2, int val3)
90
+ {
91
+ for (int i = 0, max = ary->count; i < max; i++)
92
+ {
93
+ if (ary->entries[i] == val1 ||
94
+ ary->entries[i] == val2 ||
95
+ ary->entries[i] == val3)
96
+ return 1;
97
+ }
98
+ return 0;
99
+ }
100
+
78
101
  int ary_count(ary_t *ary, int item)
79
102
  {
80
103
  int count = 0;
data/ext/ary.h CHANGED
@@ -41,6 +41,8 @@ void ary_clear(ary_t *ary);
41
41
  int ary_pop(ary_t *ary);
42
42
  void ary_push(ary_t *ary, int val);
43
43
  int ary_includes(ary_t *ary, int val);
44
+ int ary_includes2(ary_t *ary, int val1, int val2);
45
+ int ary_includes3(ary_t *ary, int val1, int val2, int val3);
44
46
 
45
47
  // returns a count indicating the number of times the value appears in the collection
46
48
  int ary_count(ary_t *ary, int item);
data/ext/parser.c CHANGED
@@ -30,9 +30,11 @@
30
30
  #include "wikitext_ragel.h"
31
31
 
32
32
  #define IN(type) ary_includes(parser->scope, type)
33
+ #define IN_EITHER_OF(type1, type2) ary_includes2(parser->scope, type1, type2)
34
+ #define IN_ANY_OF(type1, type2, type3) ary_includes3(parser->scope, type1, type2, type3)
33
35
 
34
36
  // poor man's object orientation in C:
35
- // instead of parsing around multiple parameters between functions in the parser
37
+ // instead of passing around multiple parameters between functions in the parser
36
38
  // we pack everything into a struct and pass around only a pointer to that
37
39
  typedef struct
38
40
  {
@@ -125,6 +127,8 @@ const char literal_img_start[] = "{{";
125
127
  const char img_start[] = "<img src=\"";
126
128
  const char img_end[] = "\" />";
127
129
  const char img_alt[] = "\" alt=\"";
130
+ const char pre_class_start[] = "<pre class=\"";
131
+ const char pre_class_end[] = "-syntax\">";
128
132
 
129
133
  // Mark the parser struct designated by ptr as a participant in Ruby's
130
134
  // mark-and-sweep garbage collection scheme. A variable named name is placed on
@@ -336,6 +340,21 @@ void wiki_indent(parser_t *parser)
336
340
  parser->current_indent += 2;
337
341
  }
338
342
 
343
+ void wiki_append_pre_start(parser_t *parser, token_t *token)
344
+ {
345
+ wiki_indent(parser);
346
+ if ((size_t)TOKEN_LEN(token) > sizeof(pre_start) - 1)
347
+ {
348
+ str_append(parser->output, pre_class_start, sizeof(pre_class_start) - 1); // <pre class="
349
+ str_append(parser->output, token->start + 11, TOKEN_LEN(token) - 13); // (the "lang" substring)
350
+ str_append(parser->output, pre_class_end, sizeof(pre_class_end) - 1); // -syntax">
351
+ }
352
+ else
353
+ str_append(parser->output, pre_start, sizeof(pre_start) - 1);
354
+ ary_push(parser->scope, PRE_START);
355
+ ary_push(parser->line, PRE_START);
356
+ }
357
+
339
358
  void wiki_dedent(parser_t *parser, bool emit)
340
359
  {
341
360
  if (parser->base_indent == -1) // indentation disabled
@@ -1137,7 +1156,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1137
1156
  switch (type)
1138
1157
  {
1139
1158
  case PRE:
1140
- if (IN(NO_WIKI_START) || IN(PRE_START))
1159
+ if (IN_EITHER_OF(NO_WIKI_START, PRE_START))
1141
1160
  {
1142
1161
  str_append(parser->output, space, sizeof(space) - 1);
1143
1162
  break;
@@ -1174,7 +1193,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1174
1193
  break;
1175
1194
 
1176
1195
  case PRE_START:
1177
- if (IN(NO_WIKI_START) || IN(PRE) || IN(PRE_START))
1196
+ if (IN_ANY_OF(NO_WIKI_START, PRE, PRE_START))
1178
1197
  {
1179
1198
  wiki_emit_pending_crlf_if_necessary(parser);
1180
1199
  str_append(parser->output, escaped_pre_start, sizeof(escaped_pre_start) - 1);
@@ -1183,10 +1202,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1183
1202
  {
1184
1203
  wiki_rollback_failed_link(parser); // if any
1185
1204
  wiki_pop_from_stack_up_to(parser, NULL, BLOCKQUOTE_START, false);
1186
- wiki_indent(parser);
1187
- str_append(parser->output, pre_start, sizeof(pre_start) - 1);
1188
- ary_push(parser->scope, PRE_START);
1189
- ary_push(parser->line, PRE_START);
1205
+ wiki_append_pre_start(parser, token);
1190
1206
  }
1191
1207
  else if (IN(BLOCKQUOTE))
1192
1208
  {
@@ -1194,10 +1210,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1194
1210
  {
1195
1211
  wiki_rollback_failed_link(parser); // if any
1196
1212
  wiki_pop_all_from_stack(parser);
1197
- wiki_indent(parser);
1198
- str_append(parser->output, pre_start, sizeof(pre_start) - 1);
1199
- ary_push(parser->scope, PRE_START);
1200
- ary_push(parser->line, PRE_START);
1213
+ wiki_append_pre_start(parser, token);
1201
1214
  }
1202
1215
  else // PRE_START illegal here
1203
1216
  {
@@ -1211,15 +1224,12 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1211
1224
  {
1212
1225
  wiki_rollback_failed_link(parser); // if any
1213
1226
  wiki_pop_from_stack_up_to(parser, NULL, P, true);
1214
- wiki_indent(parser);
1215
- str_append(parser->output, pre_start, sizeof(pre_start) - 1);
1216
- ary_push(parser->scope, PRE_START);
1217
- ary_push(parser->line, PRE_START);
1227
+ wiki_append_pre_start(parser, token);
1218
1228
  }
1219
1229
  break;
1220
1230
 
1221
1231
  case PRE_END:
1222
- if (IN(NO_WIKI_START) || IN(PRE))
1232
+ if (IN_EITHER_OF(NO_WIKI_START, PRE))
1223
1233
  {
1224
1234
  wiki_emit_pending_crlf_if_necessary(parser);
1225
1235
  str_append(parser->output, escaped_pre_end, sizeof(escaped_pre_end) - 1);
@@ -1239,7 +1249,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1239
1249
  break;
1240
1250
 
1241
1251
  case BLOCKQUOTE:
1242
- if (IN(NO_WIKI_START) || IN(PRE_START))
1252
+ if (IN_EITHER_OF(NO_WIKI_START, PRE_START))
1243
1253
  // no need to check for <pre>; can never appear inside it
1244
1254
  str_append(parser->output, escaped_blockquote, TOKEN_LEN(token) + 3); // will either emit "&gt;" or "&gt; "
1245
1255
  else if (IN(BLOCKQUOTE_START))
@@ -1292,7 +1302,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1292
1302
  break;
1293
1303
 
1294
1304
  case BLOCKQUOTE_START:
1295
- if (IN(NO_WIKI_START) || IN(PRE) || IN(PRE_START))
1305
+ if (IN_ANY_OF(NO_WIKI_START, PRE, PRE_START))
1296
1306
  {
1297
1307
  wiki_emit_pending_crlf_if_necessary(parser);
1298
1308
  str_append(parser->output, escaped_blockquote_start, sizeof(escaped_blockquote_start) - 1);
@@ -1342,7 +1352,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1342
1352
  break;
1343
1353
 
1344
1354
  case BLOCKQUOTE_END:
1345
- if (IN(NO_WIKI_START) || IN(PRE) || IN(PRE_START))
1355
+ if (IN_ANY_OF(NO_WIKI_START, PRE, PRE_START))
1346
1356
  {
1347
1357
  wiki_emit_pending_crlf_if_necessary(parser);
1348
1358
  str_append(parser->output, escaped_blockquote_end, sizeof(escaped_blockquote_end) - 1);
@@ -1362,7 +1372,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1362
1372
  break;
1363
1373
 
1364
1374
  case NO_WIKI_START:
1365
- if (IN(NO_WIKI_START) || IN(PRE) || IN(PRE_START))
1375
+ if (IN_ANY_OF(NO_WIKI_START, PRE, PRE_START))
1366
1376
  {
1367
1377
  wiki_emit_pending_crlf_if_necessary(parser);
1368
1378
  str_append(parser->output, escaped_no_wiki_start, sizeof(escaped_no_wiki_start) - 1);
@@ -1389,7 +1399,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1389
1399
  break;
1390
1400
 
1391
1401
  case STRONG_EM:
1392
- if (IN(NO_WIKI_START) || IN(PRE) || IN(PRE_START))
1402
+ if (IN_ANY_OF(NO_WIKI_START, PRE, PRE_START))
1393
1403
  {
1394
1404
  wiki_emit_pending_crlf_if_necessary(parser);
1395
1405
  str_append(parser->output, literal_strong_em, sizeof(literal_strong_em) - 1);
@@ -1455,7 +1465,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1455
1465
  break;
1456
1466
 
1457
1467
  case STRONG:
1458
- if (IN(NO_WIKI_START) || IN(PRE) || IN(PRE_START))
1468
+ if (IN_ANY_OF(NO_WIKI_START, PRE, PRE_START))
1459
1469
  {
1460
1470
  wiki_emit_pending_crlf_if_necessary(parser);
1461
1471
  str_append(parser->output, literal_strong, sizeof(literal_strong) - 1);
@@ -1482,7 +1492,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1482
1492
  break;
1483
1493
 
1484
1494
  case STRONG_START:
1485
- if (IN(NO_WIKI_START) || IN(PRE) || IN(PRE_START))
1495
+ if (IN_ANY_OF(NO_WIKI_START, PRE, PRE_START))
1486
1496
  {
1487
1497
  wiki_emit_pending_crlf_if_necessary(parser);
1488
1498
  str_append(parser->output, escaped_strong_start, sizeof(escaped_strong_start) - 1);
@@ -1490,7 +1500,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1490
1500
  else
1491
1501
  {
1492
1502
  output = parser->capture ? parser->capture : parser->output;
1493
- if (IN(STRONG_START) || IN(STRONG))
1503
+ if (IN_EITHER_OF(STRONG_START, STRONG))
1494
1504
  str_append(output, escaped_strong_start, sizeof(escaped_strong_start) - 1);
1495
1505
  else
1496
1506
  {
@@ -1504,7 +1514,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1504
1514
  break;
1505
1515
 
1506
1516
  case STRONG_END:
1507
- if (IN(NO_WIKI_START) || IN(PRE) || IN(PRE_START))
1517
+ if (IN_ANY_OF(NO_WIKI_START, PRE, PRE_START))
1508
1518
  {
1509
1519
  wiki_emit_pending_crlf_if_necessary(parser);
1510
1520
  str_append(parser->output, escaped_strong_end, sizeof(escaped_strong_end) - 1);
@@ -1525,7 +1535,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1525
1535
  break;
1526
1536
 
1527
1537
  case EM:
1528
- if (IN(NO_WIKI_START) || IN(PRE) || IN(PRE_START))
1538
+ if (IN_ANY_OF(NO_WIKI_START, PRE, PRE_START))
1529
1539
  {
1530
1540
  wiki_emit_pending_crlf_if_necessary(parser);
1531
1541
  str_append(parser->output, literal_em, sizeof(literal_em) - 1);
@@ -1552,7 +1562,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1552
1562
  break;
1553
1563
 
1554
1564
  case EM_START:
1555
- if (IN(NO_WIKI_START) || IN(PRE) || IN(PRE_START))
1565
+ if (IN_ANY_OF(NO_WIKI_START, PRE, PRE_START))
1556
1566
  {
1557
1567
  wiki_emit_pending_crlf_if_necessary(parser);
1558
1568
  str_append(parser->output, escaped_em_start, sizeof(escaped_em_start) - 1);
@@ -1560,7 +1570,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1560
1570
  else
1561
1571
  {
1562
1572
  output = parser->capture ? parser->capture : parser->output;
1563
- if (IN(EM_START) || IN(EM))
1573
+ if (IN_EITHER_OF(EM_START, EM))
1564
1574
  str_append(output, escaped_em_start, sizeof(escaped_em_start) - 1);
1565
1575
  else
1566
1576
  {
@@ -1574,7 +1584,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1574
1584
  break;
1575
1585
 
1576
1586
  case EM_END:
1577
- if (IN(NO_WIKI_START) || IN(PRE) || IN(PRE_START))
1587
+ if (IN_ANY_OF(NO_WIKI_START, PRE, PRE_START))
1578
1588
  {
1579
1589
  wiki_emit_pending_crlf_if_necessary(parser);
1580
1590
  str_append(parser->output, escaped_em_end, sizeof(escaped_em_end) - 1);
@@ -1595,7 +1605,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1595
1605
  break;
1596
1606
 
1597
1607
  case TT:
1598
- if (IN(NO_WIKI_START) || IN(PRE) || IN(PRE_START))
1608
+ if (IN_ANY_OF(NO_WIKI_START, PRE, PRE_START))
1599
1609
  {
1600
1610
  wiki_emit_pending_crlf_if_necessary(parser);
1601
1611
  str_append(parser->output, backtick, sizeof(backtick) - 1);
@@ -1622,7 +1632,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1622
1632
  break;
1623
1633
 
1624
1634
  case TT_START:
1625
- if (IN(NO_WIKI_START) || IN(PRE) || IN(PRE_START))
1635
+ if (IN_ANY_OF(NO_WIKI_START, PRE, PRE_START))
1626
1636
  {
1627
1637
  wiki_emit_pending_crlf_if_necessary(parser);
1628
1638
  str_append(parser->output, escaped_tt_start, sizeof(escaped_tt_start) - 1);
@@ -1630,7 +1640,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1630
1640
  else
1631
1641
  {
1632
1642
  output = parser->capture ? parser->capture : parser->output;
1633
- if (IN(TT_START) || IN(TT))
1643
+ if (IN_EITHER_OF(TT_START, TT))
1634
1644
  str_append(output, escaped_tt_start, sizeof(escaped_tt_start) - 1);
1635
1645
  else
1636
1646
  {
@@ -1644,7 +1654,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1644
1654
  break;
1645
1655
 
1646
1656
  case TT_END:
1647
- if (IN(NO_WIKI_START) || IN(PRE) || IN(PRE_START))
1657
+ if (IN_ANY_OF(NO_WIKI_START, PRE, PRE_START))
1648
1658
  {
1649
1659
  wiki_emit_pending_crlf_if_necessary(parser);
1650
1660
  str_append(parser->output, escaped_tt_end, sizeof(escaped_tt_end) - 1);
@@ -1666,7 +1676,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1666
1676
 
1667
1677
  case OL:
1668
1678
  case UL:
1669
- if (IN(NO_WIKI_START) || IN(PRE_START))
1679
+ if (IN_EITHER_OF(NO_WIKI_START, PRE_START))
1670
1680
  {
1671
1681
  // no need to check for PRE; can never appear inside it
1672
1682
  str_append(parser->output, token->start, TOKEN_LEN(token));
@@ -1800,7 +1810,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1800
1810
  case H3_START:
1801
1811
  case H2_START:
1802
1812
  case H1_START:
1803
- if (IN(NO_WIKI_START) || IN(PRE_START))
1813
+ if (IN_EITHER_OF(NO_WIKI_START, PRE_START))
1804
1814
  {
1805
1815
  // no need to check for PRE; can never appear inside it
1806
1816
  str_append(parser->output, token->start, TOKEN_LEN(token));
@@ -1861,7 +1871,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1861
1871
  case H3_END:
1862
1872
  case H2_END:
1863
1873
  case H1_END:
1864
- if (IN(NO_WIKI_START) || IN(PRE) || IN(PRE_START))
1874
+ if (IN_ANY_OF(NO_WIKI_START, PRE, PRE_START))
1865
1875
  {
1866
1876
  wiki_emit_pending_crlf_if_necessary(parser);
1867
1877
  str_append(parser->output, token->start, TOKEN_LEN(token));
@@ -1884,7 +1894,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1884
1894
  break;
1885
1895
 
1886
1896
  case MAIL:
1887
- if (IN(NO_WIKI_START) || IN(PRE) || IN(PRE_START))
1897
+ if (IN_ANY_OF(NO_WIKI_START, PRE, PRE_START))
1888
1898
  {
1889
1899
  wiki_emit_pending_crlf_if_necessary(parser);
1890
1900
  str_append(parser->output, token->start, TOKEN_LEN(token));
@@ -1952,7 +1962,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1952
1962
  break;
1953
1963
 
1954
1964
  case PATH:
1955
- if (IN(NO_WIKI_START) || IN(PRE) || IN(PRE_START))
1965
+ if (IN_ANY_OF(NO_WIKI_START, PRE, PRE_START))
1956
1966
  str_append(parser->output, token->start, TOKEN_LEN(token));
1957
1967
  else if (IN(EXT_LINK_START))
1958
1968
  {
@@ -2017,7 +2027,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
2017
2027
  // everything else will be rejected
2018
2028
  case LINK_START:
2019
2029
  output = parser->capture ? parser->capture : parser->output;
2020
- if (IN(NO_WIKI_START) || IN(PRE) || IN(PRE_START))
2030
+ if (IN_ANY_OF(NO_WIKI_START, PRE, PRE_START))
2021
2031
  {
2022
2032
  wiki_emit_pending_crlf_if_necessary(parser);
2023
2033
  str_append(output, link_start, sizeof(link_start) - 1);
@@ -2108,7 +2118,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
2108
2118
 
2109
2119
  case LINK_END:
2110
2120
  output = parser->capture ? parser->capture : parser->output;
2111
- if (IN(NO_WIKI_START) || IN(PRE) || IN(PRE_START))
2121
+ if (IN_ANY_OF(NO_WIKI_START, PRE, PRE_START))
2112
2122
  {
2113
2123
  wiki_emit_pending_crlf_if_necessary(parser);
2114
2124
  str_append(output, link_end, sizeof(link_end) - 1);
@@ -2156,7 +2166,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
2156
2166
  // he was very angery [sic] about the turn of events
2157
2167
  case EXT_LINK_START:
2158
2168
  output = parser->capture ? parser->capture : parser->output;
2159
- if (IN(NO_WIKI_START) || IN(PRE) || IN(PRE_START))
2169
+ if (IN_ANY_OF(NO_WIKI_START, PRE, PRE_START))
2160
2170
  {
2161
2171
  wiki_emit_pending_crlf_if_necessary(parser);
2162
2172
  str_append(output, ext_link_start, sizeof(ext_link_start) - 1);
@@ -2191,7 +2201,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
2191
2201
 
2192
2202
  case EXT_LINK_END:
2193
2203
  output = parser->capture ? parser->capture : parser->output;
2194
- if (IN(NO_WIKI_START) || IN(PRE) || IN(PRE_START))
2204
+ if (IN_ANY_OF(NO_WIKI_START, PRE, PRE_START))
2195
2205
  {
2196
2206
  wiki_emit_pending_crlf_if_necessary(parser);
2197
2207
  str_append(output, ext_link_end, sizeof(ext_link_end) - 1);
@@ -2229,7 +2239,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
2229
2239
 
2230
2240
  case SPACE:
2231
2241
  output = parser->capture ? parser->capture : parser->output;
2232
- if (IN(NO_WIKI_START) || IN(PRE) || IN(PRE_START))
2242
+ if (IN_ANY_OF(NO_WIKI_START, PRE, PRE_START))
2233
2243
  {
2234
2244
  wiki_emit_pending_crlf_if_necessary(parser);
2235
2245
  str_append(output, token->start, TOKEN_LEN(token));
@@ -2312,7 +2322,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
2312
2322
  break;
2313
2323
 
2314
2324
  case IMG_START:
2315
- if (IN(NO_WIKI_START) || IN(PRE) || IN(PRE_START))
2325
+ if (IN_ANY_OF(NO_WIKI_START, PRE, PRE_START))
2316
2326
  {
2317
2327
  wiki_emit_pending_crlf_if_necessary(parser);
2318
2328
  str_append(parser->output, token->start, TOKEN_LEN(token));
@@ -2358,7 +2368,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
2358
2368
  i = parser->pending_crlf;
2359
2369
  parser->pending_crlf = false;
2360
2370
  wiki_rollback_failed_link(parser); // if any
2361
- if (IN(NO_WIKI_START) || IN(PRE_START))
2371
+ if (IN_EITHER_OF(NO_WIKI_START, PRE_START))
2362
2372
  {
2363
2373
  ary_clear(parser->line_buffer);
2364
2374
  str_append_str(parser->output, parser->line_ending);
data/ext/wikitext_ragel.c CHANGED
@@ -1,18 +1,27 @@
1
1
 
2
2
  #line 1 "wikitext_ragel.rl"
3
- // Copyright 2008-2009 Wincent Colaiuta
4
- // This program is free software: you can redistribute it and/or modify
5
- // it under the terms of the GNU General Public License as published by
6
- // the Free Software Foundation, either version 3 of the License, or
7
- // (at your option) any later version.
3
+ // Copyright 2008-2009 Wincent Colaiuta. All rights reserved.
8
4
  //
9
- // This program is distributed in the hope that it will be useful,
10
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- // GNU General Public License for more details.
5
+ // Redistribution and use in source and binary forms, with or without
6
+ // modification, are permitted provided that the following conditions are met:
13
7
  //
14
- // You should have received a copy of the GNU General Public License
15
- // along with this program. If not, see <http://www.gnu.org/licenses/>.
8
+ // 1. Redistributions of source code must retain the above copyright notice,
9
+ // this list of conditions and the following disclaimer.
10
+ // 2. Redistributions in binary form must reproduce the above copyright notice,
11
+ // this list of conditions and the following disclaimer in the documentation
12
+ // and/or other materials provided with the distribution.
13
+
14
+ // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15
+ // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16
+ // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17
+ // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
18
+ // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19
+ // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20
+ // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21
+ // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22
+ // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23
+ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24
+ // POSSIBILITY OF SUCH DAMAGE.
16
25
 
17
26
  //----------------------------------------------------------------------//
18
27
  // NOTE: wikitext_ragel.c is generated from wikitext_ragel.rl, so //
@@ -32,15 +41,15 @@
32
41
  #define NEXT_CHAR() (*(p + 1))
33
42
 
34
43
 
35
- #line 36 "wikitext_ragel.c"
36
- static const int wikitext_start = 94;
37
- static const int wikitext_first_final = 94;
44
+ #line 45 "wikitext_ragel.c"
45
+ static const int wikitext_start = 106;
46
+ static const int wikitext_first_final = 106;
38
47
  static const int wikitext_error = 0;
39
48
 
40
- static const int wikitext_en_main = 94;
49
+ static const int wikitext_en_main = 106;
41
50
 
42
51
 
43
- #line 468 "wikitext_ragel.rl"
52
+ #line 483 "wikitext_ragel.rl"
44
53
 
45
54
 
46
55
  // for now we use the scanner as a tokenizer that returns one token at a time, just like ANTLR
@@ -83,7 +92,7 @@ void next_token(token_t *out, token_t *last_token, char *p, char *pe)
83
92
  char *te; // token end (scanner)
84
93
  int act; // identity of last patterned matched (scanner)
85
94
 
86
- #line 87 "wikitext_ragel.c"
95
+ #line 96 "wikitext_ragel.c"
87
96
  {
88
97
  cs = wikitext_start;
89
98
  ts = 0;
@@ -91,273 +100,280 @@ void next_token(token_t *out, token_t *last_token, char *p, char *pe)
91
100
  act = 0;
92
101
  }
93
102
 
94
- #line 510 "wikitext_ragel.rl"
103
+ #line 525 "wikitext_ragel.rl"
95
104
 
96
- #line 97 "wikitext_ragel.c"
105
+ #line 106 "wikitext_ragel.c"
97
106
  {
98
107
  if ( p == pe )
99
108
  goto _test_eof;
100
109
  switch ( cs )
101
110
  {
102
111
  tr0:
103
- #line 46 "wikitext_ragel.rl"
112
+ #line 55 "wikitext_ragel.rl"
104
113
  {
105
114
  out->code_point = ((uint32_t)(*(p - 1)) & 0x1f) << 6 |
106
115
  (*p & 0x3f);
107
116
  }
108
- #line 459 "wikitext_ragel.rl"
117
+ #line 474 "wikitext_ragel.rl"
109
118
  {te = p+1;{
110
119
  EMIT(DEFAULT);
111
120
  out->column_stop = out->column_start + 1;
112
- {p++; cs = 94; goto _out;}
121
+ {p++; cs = 106; goto _out;}
113
122
  }}
114
- goto st94;
123
+ goto st106;
115
124
  tr3:
116
- #line 52 "wikitext_ragel.rl"
125
+ #line 61 "wikitext_ragel.rl"
117
126
  {
118
127
  out->code_point = ((uint32_t)(*(p - 2)) & 0x0f) << 12 |
119
128
  ((uint32_t)(*(p - 1)) & 0x3f) << 6 |
120
129
  (*p & 0x3f);
121
130
  }
122
- #line 459 "wikitext_ragel.rl"
131
+ #line 474 "wikitext_ragel.rl"
123
132
  {te = p+1;{
124
133
  EMIT(DEFAULT);
125
134
  out->column_stop = out->column_start + 1;
126
- {p++; cs = 94; goto _out;}
135
+ {p++; cs = 106; goto _out;}
127
136
  }}
128
- goto st94;
137
+ goto st106;
129
138
  tr6:
130
- #line 59 "wikitext_ragel.rl"
139
+ #line 68 "wikitext_ragel.rl"
131
140
  {
132
141
  out->code_point = ((uint32_t)(*(p - 3)) & 0x07) << 18 |
133
142
  ((uint32_t)(*(p - 2)) & 0x3f) << 12 |
134
143
  ((uint32_t)(*(p - 1)) & 0x3f) << 6 |
135
144
  (*p & 0x3f);
136
145
  }
137
- #line 459 "wikitext_ragel.rl"
146
+ #line 474 "wikitext_ragel.rl"
138
147
  {te = p+1;{
139
148
  EMIT(DEFAULT);
140
149
  out->column_stop = out->column_start + 1;
141
- {p++; cs = 94; goto _out;}
150
+ {p++; cs = 106; goto _out;}
142
151
  }}
143
- goto st94;
152
+ goto st106;
144
153
  tr7:
145
- #line 366 "wikitext_ragel.rl"
154
+ #line 381 "wikitext_ragel.rl"
146
155
  {{p = ((te))-1;}{
147
156
  EMIT(AMP);
148
- {p++; cs = 94; goto _out;}
157
+ {p++; cs = 106; goto _out;}
149
158
  }}
150
- goto st94;
159
+ goto st106;
151
160
  tr10:
152
- #line 354 "wikitext_ragel.rl"
161
+ #line 369 "wikitext_ragel.rl"
153
162
  {te = p+1;{
154
163
  EMIT(DECIMAL_ENTITY);
155
- {p++; cs = 94; goto _out;}
164
+ {p++; cs = 106; goto _out;}
156
165
  }}
157
- goto st94;
166
+ goto st106;
158
167
  tr12:
159
- #line 348 "wikitext_ragel.rl"
168
+ #line 363 "wikitext_ragel.rl"
160
169
  {te = p+1;{
161
170
  EMIT(HEX_ENTITY);
162
- {p++; cs = 94; goto _out;}
171
+ {p++; cs = 106; goto _out;}
163
172
  }}
164
- goto st94;
173
+ goto st106;
165
174
  tr14:
166
- #line 342 "wikitext_ragel.rl"
175
+ #line 357 "wikitext_ragel.rl"
167
176
  {te = p+1;{
168
177
  EMIT(NAMED_ENTITY);
169
- {p++; cs = 94; goto _out;}
178
+ {p++; cs = 106; goto _out;}
170
179
  }}
171
- goto st94;
180
+ goto st106;
172
181
  tr18:
173
- #line 336 "wikitext_ragel.rl"
182
+ #line 351 "wikitext_ragel.rl"
174
183
  {te = p+1;{
175
184
  EMIT(AMP_ENTITY);
176
- {p++; cs = 94; goto _out;}
185
+ {p++; cs = 106; goto _out;}
177
186
  }}
178
- goto st94;
187
+ goto st106;
179
188
  tr22:
180
- #line 330 "wikitext_ragel.rl"
189
+ #line 345 "wikitext_ragel.rl"
181
190
  {te = p+1;{
182
191
  EMIT(QUOT_ENTITY);
183
- {p++; cs = 94; goto _out;}
192
+ {p++; cs = 106; goto _out;}
184
193
  }}
185
- goto st94;
194
+ goto st106;
186
195
  tr23:
187
196
  #line 1 "wikitext_ragel.rl"
188
197
  { switch( act ) {
189
- case 20:
198
+ case 21:
190
199
  {{p = ((te))-1;}
191
200
  EMIT(URI);
192
- {p++; cs = 94; goto _out;}
201
+ {p++; cs = 106; goto _out;}
193
202
  }
194
203
  break;
195
- case 21:
204
+ case 22:
196
205
  {{p = ((te))-1;}
197
206
  EMIT(MAIL);
198
- {p++; cs = 94; goto _out;}
207
+ {p++; cs = 106; goto _out;}
199
208
  }
200
209
  break;
201
- case 42:
210
+ case 43:
202
211
  {{p = ((te))-1;}
203
212
  EMIT(SPECIAL_URI_CHARS);
204
- {p++; cs = 94; goto _out;}
213
+ {p++; cs = 106; goto _out;}
205
214
  }
206
215
  break;
207
- case 43:
216
+ case 44:
208
217
  {{p = ((te))-1;}
209
218
  EMIT(ALNUM);
210
- {p++; cs = 94; goto _out;}
219
+ {p++; cs = 106; goto _out;}
211
220
  }
212
221
  break;
213
- case 44:
222
+ case 45:
214
223
  {{p = ((te))-1;}
215
224
  EMIT(PRINTABLE);
216
- {p++; cs = 94; goto _out;}
225
+ {p++; cs = 106; goto _out;}
217
226
  }
218
227
  break;
219
228
  }
220
229
  }
221
- goto st94;
230
+ goto st106;
222
231
  tr30:
223
- #line 372 "wikitext_ragel.rl"
232
+ #line 387 "wikitext_ragel.rl"
224
233
  {{p = ((te))-1;}{
225
234
  EMIT(LESS);
226
- {p++; cs = 94; goto _out;}
235
+ {p++; cs = 106; goto _out;}
227
236
  }}
228
- goto st94;
237
+ goto st106;
229
238
  tr46:
230
- #line 111 "wikitext_ragel.rl"
239
+ #line 126 "wikitext_ragel.rl"
231
240
  {te = p+1;{
232
241
  EMIT(BLOCKQUOTE_END);
233
- {p++; cs = 94; goto _out;}
242
+ {p++; cs = 106; goto _out;}
234
243
  }}
235
- goto st94;
244
+ goto st106;
236
245
  tr48:
237
- #line 153 "wikitext_ragel.rl"
246
+ #line 168 "wikitext_ragel.rl"
238
247
  {te = p+1;{
239
248
  EMIT(EM_END);
240
- {p++; cs = 94; goto _out;}
249
+ {p++; cs = 106; goto _out;}
241
250
  }}
242
- goto st94;
251
+ goto st106;
243
252
  tr54:
244
- #line 87 "wikitext_ragel.rl"
253
+ #line 96 "wikitext_ragel.rl"
245
254
  {te = p+1;{
246
255
  EMIT(NO_WIKI_END);
247
- {p++; cs = 94; goto _out;}
256
+ {p++; cs = 106; goto _out;}
248
257
  }}
249
- goto st94;
258
+ goto st106;
250
259
  tr57:
251
- #line 99 "wikitext_ragel.rl"
260
+ #line 114 "wikitext_ragel.rl"
252
261
  {te = p+1;{
253
262
  EMIT(PRE_END);
254
- {p++; cs = 94; goto _out;}
263
+ {p++; cs = 106; goto _out;}
255
264
  }}
256
- goto st94;
265
+ goto st106;
257
266
  tr63:
258
- #line 141 "wikitext_ragel.rl"
267
+ #line 156 "wikitext_ragel.rl"
259
268
  {te = p+1;{
260
269
  EMIT(STRONG_END);
261
- {p++; cs = 94; goto _out;}
270
+ {p++; cs = 106; goto _out;}
262
271
  }}
263
- goto st94;
272
+ goto st106;
264
273
  tr65:
265
- #line 171 "wikitext_ragel.rl"
274
+ #line 186 "wikitext_ragel.rl"
266
275
  {te = p+1;{
267
276
  EMIT(TT_END);
268
- {p++; cs = 94; goto _out;}
277
+ {p++; cs = 106; goto _out;}
269
278
  }}
270
- goto st94;
279
+ goto st106;
271
280
  tr75:
272
- #line 105 "wikitext_ragel.rl"
281
+ #line 120 "wikitext_ragel.rl"
273
282
  {te = p+1;{
274
283
  EMIT(BLOCKQUOTE_START);
275
- {p++; cs = 94; goto _out;}
284
+ {p++; cs = 106; goto _out;}
276
285
  }}
277
- goto st94;
286
+ goto st106;
278
287
  tr77:
279
- #line 147 "wikitext_ragel.rl"
288
+ #line 162 "wikitext_ragel.rl"
280
289
  {te = p+1;{
281
290
  EMIT(EM_START);
282
- {p++; cs = 94; goto _out;}
291
+ {p++; cs = 106; goto _out;}
283
292
  }}
284
- goto st94;
293
+ goto st106;
285
294
  tr83:
286
- #line 81 "wikitext_ragel.rl"
295
+ #line 90 "wikitext_ragel.rl"
287
296
  {te = p+1;{
288
297
  EMIT(NO_WIKI_START);
289
- {p++; cs = 94; goto _out;}
298
+ {p++; cs = 106; goto _out;}
290
299
  }}
291
- goto st94;
300
+ goto st106;
292
301
  tr86:
293
- #line 93 "wikitext_ragel.rl"
302
+ #line 102 "wikitext_ragel.rl"
294
303
  {te = p+1;{
295
304
  EMIT(PRE_START);
296
- {p++; cs = 94; goto _out;}
305
+ {p++; cs = 106; goto _out;}
297
306
  }}
298
- goto st94;
307
+ goto st106;
299
308
  tr92:
300
- #line 135 "wikitext_ragel.rl"
309
+ #line 150 "wikitext_ragel.rl"
301
310
  {te = p+1;{
302
311
  EMIT(STRONG_START);
303
- {p++; cs = 94; goto _out;}
312
+ {p++; cs = 106; goto _out;}
304
313
  }}
305
- goto st94;
314
+ goto st106;
306
315
  tr94:
307
- #line 165 "wikitext_ragel.rl"
316
+ #line 180 "wikitext_ragel.rl"
308
317
  {te = p+1;{
309
318
  EMIT(TT_START);
310
- {p++; cs = 94; goto _out;}
319
+ {p++; cs = 106; goto _out;}
320
+ }}
321
+ goto st106;
322
+ tr106:
323
+ #line 108 "wikitext_ragel.rl"
324
+ {te = p+1;{
325
+ EMIT(PRE_START);
326
+ {p++; cs = 106; goto _out;}
311
327
  }}
312
- goto st94;
313
- tr95:
314
- #line 427 "wikitext_ragel.rl"
328
+ goto st106;
329
+ tr107:
330
+ #line 442 "wikitext_ragel.rl"
315
331
  {{p = ((te))-1;}{
316
332
  EMIT(ALNUM);
317
- {p++; cs = 94; goto _out;}
333
+ {p++; cs = 106; goto _out;}
318
334
  }}
319
- goto st94;
320
- tr99:
321
- #line 282 "wikitext_ragel.rl"
335
+ goto st106;
336
+ tr111:
337
+ #line 297 "wikitext_ragel.rl"
322
338
  {{p = ((te))-1;}{
323
339
  EMIT(URI);
324
- {p++; cs = 94; goto _out;}
340
+ {p++; cs = 106; goto _out;}
325
341
  }}
326
- goto st94;
327
- tr110:
328
- #line 41 "wikitext_ragel.rl"
342
+ goto st106;
343
+ tr122:
344
+ #line 50 "wikitext_ragel.rl"
329
345
  {
330
346
  out->code_point = *p & 0x7f;
331
347
  }
332
- #line 459 "wikitext_ragel.rl"
348
+ #line 474 "wikitext_ragel.rl"
333
349
  {te = p+1;{
334
350
  EMIT(DEFAULT);
335
351
  out->column_stop = out->column_start + 1;
336
- {p++; cs = 94; goto _out;}
352
+ {p++; cs = 106; goto _out;}
337
353
  }}
338
- goto st94;
339
- tr111:
340
- #line 408 "wikitext_ragel.rl"
354
+ goto st106;
355
+ tr123:
356
+ #line 423 "wikitext_ragel.rl"
341
357
  {te = p+1;{
342
358
  EMIT(CRLF);
343
359
  out->column_stop = 1;
344
360
  out->line_stop++;
345
- {p++; cs = 94; goto _out;}
361
+ {p++; cs = 106; goto _out;}
346
362
  }}
347
- #line 41 "wikitext_ragel.rl"
363
+ #line 50 "wikitext_ragel.rl"
348
364
  {
349
365
  out->code_point = *p & 0x7f;
350
366
  }
351
- goto st94;
352
- tr115:
353
- #line 360 "wikitext_ragel.rl"
367
+ goto st106;
368
+ tr127:
369
+ #line 375 "wikitext_ragel.rl"
354
370
  {te = p+1;{
355
371
  EMIT(QUOT);
356
- {p++; cs = 94; goto _out;}
372
+ {p++; cs = 106; goto _out;}
357
373
  }}
358
- goto st94;
359
- tr116:
360
- #line 203 "wikitext_ragel.rl"
374
+ goto st106;
375
+ tr128:
376
+ #line 218 "wikitext_ragel.rl"
361
377
  {te = p+1;{
362
378
  if (out->column_start == 1 ||
363
379
  last_token_type == OL ||
@@ -367,11 +383,11 @@ tr116:
367
383
  EMIT(OL);
368
384
  else
369
385
  EMIT(PRINTABLE);
370
- {p++; cs = 94; goto _out;}
386
+ {p++; cs = 106; goto _out;}
371
387
  }}
372
- goto st94;
373
- tr120:
374
- #line 216 "wikitext_ragel.rl"
388
+ goto st106;
389
+ tr132:
390
+ #line 231 "wikitext_ragel.rl"
375
391
  {te = p+1;{
376
392
  if (out->column_start == 1 ||
377
393
  last_token_type == OL ||
@@ -381,43 +397,43 @@ tr120:
381
397
  EMIT(UL);
382
398
  else
383
399
  EMIT(PRINTABLE);
384
- {p++; cs = 94; goto _out;}
400
+ {p++; cs = 106; goto _out;}
385
401
  }}
386
- goto st94;
387
- tr134:
388
- #line 159 "wikitext_ragel.rl"
402
+ goto st106;
403
+ tr146:
404
+ #line 174 "wikitext_ragel.rl"
389
405
  {te = p+1;{
390
406
  EMIT(TT);
391
- {p++; cs = 94; goto _out;}
407
+ {p++; cs = 106; goto _out;}
392
408
  }}
393
- goto st94;
394
- tr136:
395
- #line 312 "wikitext_ragel.rl"
409
+ goto st106;
410
+ tr148:
411
+ #line 327 "wikitext_ragel.rl"
396
412
  {te = p+1;{
397
413
  EMIT(SEPARATOR);
398
- {p++; cs = 94; goto _out;}
414
+ {p++; cs = 106; goto _out;}
399
415
  }}
400
- goto st94;
401
- tr138:
402
- #line 408 "wikitext_ragel.rl"
416
+ goto st106;
417
+ tr150:
418
+ #line 423 "wikitext_ragel.rl"
403
419
  {te = p;p--;{
404
420
  EMIT(CRLF);
405
421
  out->column_stop = 1;
406
422
  out->line_stop++;
407
- {p++; cs = 94; goto _out;}
423
+ {p++; cs = 106; goto _out;}
408
424
  }}
409
- goto st94;
410
- tr139:
411
- #line 408 "wikitext_ragel.rl"
425
+ goto st106;
426
+ tr151:
427
+ #line 423 "wikitext_ragel.rl"
412
428
  {te = p+1;{
413
429
  EMIT(CRLF);
414
430
  out->column_stop = 1;
415
431
  out->line_stop++;
416
- {p++; cs = 94; goto _out;}
432
+ {p++; cs = 106; goto _out;}
417
433
  }}
418
- goto st94;
419
- tr140:
420
- #line 191 "wikitext_ragel.rl"
434
+ goto st106;
435
+ tr152:
436
+ #line 206 "wikitext_ragel.rl"
421
437
  {te = p;p--;{
422
438
  if (out->column_start == 1 || last_token_type == BLOCKQUOTE)
423
439
  {
@@ -426,32 +442,32 @@ tr140:
426
442
  }
427
443
  else
428
444
  EMIT(SPACE);
429
- {p++; cs = 94; goto _out;}
445
+ {p++; cs = 106; goto _out;}
430
446
  }}
431
- goto st94;
432
- tr142:
433
- #line 421 "wikitext_ragel.rl"
447
+ goto st106;
448
+ tr154:
449
+ #line 436 "wikitext_ragel.rl"
434
450
  {te = p;p--;{
435
451
  EMIT(SPECIAL_URI_CHARS);
436
- {p++; cs = 94; goto _out;}
452
+ {p++; cs = 106; goto _out;}
437
453
  }}
438
- goto st94;
439
- tr143:
440
- #line 439 "wikitext_ragel.rl"
454
+ goto st106;
455
+ tr155:
456
+ #line 454 "wikitext_ragel.rl"
441
457
  {te = p;p--;{
442
458
  EMIT(PRINTABLE);
443
- {p++; cs = 94; goto _out;}
459
+ {p++; cs = 106; goto _out;}
444
460
  }}
445
- goto st94;
446
- tr144:
447
- #line 366 "wikitext_ragel.rl"
461
+ goto st106;
462
+ tr156:
463
+ #line 381 "wikitext_ragel.rl"
448
464
  {te = p;p--;{
449
465
  EMIT(AMP);
450
- {p++; cs = 94; goto _out;}
466
+ {p++; cs = 106; goto _out;}
451
467
  }}
452
- goto st94;
453
- tr148:
454
- #line 117 "wikitext_ragel.rl"
468
+ goto st106;
469
+ tr160:
470
+ #line 132 "wikitext_ragel.rl"
455
471
  {te = p;p--;{
456
472
  if (DISTANCE() == 5)
457
473
  EMIT(STRONG_EM);
@@ -466,11 +482,11 @@ tr148:
466
482
  EMIT(EM);
467
483
  else
468
484
  EMIT(PRINTABLE);
469
- {p++; cs = 94; goto _out;}
485
+ {p++; cs = 106; goto _out;}
470
486
  }}
471
- goto st94;
472
- tr152:
473
- #line 117 "wikitext_ragel.rl"
487
+ goto st106;
488
+ tr164:
489
+ #line 132 "wikitext_ragel.rl"
474
490
  {te = p+1;{
475
491
  if (DISTANCE() == 5)
476
492
  EMIT(STRONG_EM);
@@ -485,39 +501,39 @@ tr152:
485
501
  EMIT(EM);
486
502
  else
487
503
  EMIT(PRINTABLE);
488
- {p++; cs = 94; goto _out;}
504
+ {p++; cs = 106; goto _out;}
489
505
  }}
490
- goto st94;
491
- tr154:
492
- #line 288 "wikitext_ragel.rl"
506
+ goto st106;
507
+ tr166:
508
+ #line 303 "wikitext_ragel.rl"
493
509
  {te = p;p--;{
494
510
  EMIT(MAIL);
495
- {p++; cs = 94; goto _out;}
511
+ {p++; cs = 106; goto _out;}
496
512
  }}
497
- goto st94;
498
- tr158:
499
- #line 294 "wikitext_ragel.rl"
513
+ goto st106;
514
+ tr170:
515
+ #line 309 "wikitext_ragel.rl"
500
516
  {te = p;p--;{
501
517
  EMIT(PATH);
502
- {p++; cs = 94; goto _out;}
518
+ {p++; cs = 106; goto _out;}
503
519
  }}
504
- goto st94;
505
- tr162:
506
- #line 427 "wikitext_ragel.rl"
520
+ goto st106;
521
+ tr174:
522
+ #line 442 "wikitext_ragel.rl"
507
523
  {te = p;p--;{
508
524
  EMIT(ALNUM);
509
- {p++; cs = 94; goto _out;}
525
+ {p++; cs = 106; goto _out;}
510
526
  }}
511
- goto st94;
512
- tr163:
513
- #line 372 "wikitext_ragel.rl"
527
+ goto st106;
528
+ tr175:
529
+ #line 387 "wikitext_ragel.rl"
514
530
  {te = p;p--;{
515
531
  EMIT(LESS);
516
- {p++; cs = 94; goto _out;}
532
+ {p++; cs = 106; goto _out;}
517
533
  }}
518
- goto st94;
519
- tr171:
520
- #line 229 "wikitext_ragel.rl"
534
+ goto st106;
535
+ tr184:
536
+ #line 244 "wikitext_ragel.rl"
521
537
  {te = p;p--;{
522
538
  if (out->column_start == 1 || last_token_type == BLOCKQUOTE || last_token_type == BLOCKQUOTE_START)
523
539
  {
@@ -567,11 +583,11 @@ tr171:
567
583
  REWIND();
568
584
  EMIT(PRINTABLE);
569
585
  }
570
- {p++; cs = 94; goto _out;}
586
+ {p++; cs = 106; goto _out;}
571
587
  }}
572
- goto st94;
573
- tr173:
574
- #line 178 "wikitext_ragel.rl"
588
+ goto st106;
589
+ tr186:
590
+ #line 193 "wikitext_ragel.rl"
575
591
  {te = p;p--;{
576
592
  if (out->column_start == 1 || last_token_type == BLOCKQUOTE)
577
593
  EMIT(BLOCKQUOTE);
@@ -580,11 +596,11 @@ tr173:
580
596
  REWIND();
581
597
  EMIT(GREATER);
582
598
  }
583
- {p++; cs = 94; goto _out;}
599
+ {p++; cs = 106; goto _out;}
584
600
  }}
585
- goto st94;
586
- tr174:
587
- #line 178 "wikitext_ragel.rl"
601
+ goto st106;
602
+ tr187:
603
+ #line 193 "wikitext_ragel.rl"
588
604
  {te = p+1;{
589
605
  if (out->column_start == 1 || last_token_type == BLOCKQUOTE)
590
606
  EMIT(BLOCKQUOTE);
@@ -593,118 +609,118 @@ tr174:
593
609
  REWIND();
594
610
  EMIT(GREATER);
595
611
  }
596
- {p++; cs = 94; goto _out;}
612
+ {p++; cs = 106; goto _out;}
597
613
  }}
598
- goto st94;
599
- tr178:
600
- #line 282 "wikitext_ragel.rl"
614
+ goto st106;
615
+ tr191:
616
+ #line 297 "wikitext_ragel.rl"
601
617
  {te = p;p--;{
602
618
  EMIT(URI);
603
- {p++; cs = 94; goto _out;}
619
+ {p++; cs = 106; goto _out;}
604
620
  }}
605
- goto st94;
606
- tr192:
607
- #line 318 "wikitext_ragel.rl"
621
+ goto st106;
622
+ tr205:
623
+ #line 333 "wikitext_ragel.rl"
608
624
  {te = p;p--;{
609
625
  EMIT(EXT_LINK_START);
610
- {p++; cs = 94; goto _out;}
626
+ {p++; cs = 106; goto _out;}
611
627
  }}
612
- goto st94;
613
- tr193:
614
- #line 300 "wikitext_ragel.rl"
628
+ goto st106;
629
+ tr206:
630
+ #line 315 "wikitext_ragel.rl"
615
631
  {te = p+1;{
616
632
  EMIT(LINK_START);
617
- {p++; cs = 94; goto _out;}
633
+ {p++; cs = 106; goto _out;}
618
634
  }}
619
- goto st94;
620
- tr194:
621
- #line 324 "wikitext_ragel.rl"
635
+ goto st106;
636
+ tr207:
637
+ #line 339 "wikitext_ragel.rl"
622
638
  {te = p;p--;{
623
639
  EMIT(EXT_LINK_END);
624
- {p++; cs = 94; goto _out;}
640
+ {p++; cs = 106; goto _out;}
625
641
  }}
626
- goto st94;
627
- tr195:
628
- #line 306 "wikitext_ragel.rl"
642
+ goto st106;
643
+ tr208:
644
+ #line 321 "wikitext_ragel.rl"
629
645
  {te = p+1;{
630
646
  EMIT(LINK_END);
631
- {p++; cs = 94; goto _out;}
647
+ {p++; cs = 106; goto _out;}
632
648
  }}
633
- goto st94;
634
- tr196:
635
- #line 396 "wikitext_ragel.rl"
649
+ goto st106;
650
+ tr209:
651
+ #line 411 "wikitext_ragel.rl"
636
652
  {te = p;p--;{
637
653
  EMIT(LEFT_CURLY);
638
- {p++; cs = 94; goto _out;}
654
+ {p++; cs = 106; goto _out;}
639
655
  }}
640
- goto st94;
641
- tr197:
642
- #line 384 "wikitext_ragel.rl"
656
+ goto st106;
657
+ tr210:
658
+ #line 399 "wikitext_ragel.rl"
643
659
  {te = p+1;{
644
660
  EMIT(IMG_START);
645
- {p++; cs = 94; goto _out;}
661
+ {p++; cs = 106; goto _out;}
646
662
  }}
647
- goto st94;
648
- tr198:
649
- #line 402 "wikitext_ragel.rl"
663
+ goto st106;
664
+ tr211:
665
+ #line 417 "wikitext_ragel.rl"
650
666
  {te = p;p--;{
651
667
  EMIT(RIGHT_CURLY);
652
- {p++; cs = 94; goto _out;}
668
+ {p++; cs = 106; goto _out;}
653
669
  }}
654
- goto st94;
655
- tr199:
656
- #line 390 "wikitext_ragel.rl"
670
+ goto st106;
671
+ tr212:
672
+ #line 405 "wikitext_ragel.rl"
657
673
  {te = p+1;{
658
674
  EMIT(IMG_END);
659
- {p++; cs = 94; goto _out;}
675
+ {p++; cs = 106; goto _out;}
660
676
  }}
661
- goto st94;
662
- st94:
677
+ goto st106;
678
+ st106:
663
679
  #line 1 "wikitext_ragel.rl"
664
680
  {ts = 0;}
665
681
  if ( ++p == pe )
666
- goto _test_eof94;
667
- case 94:
682
+ goto _test_eof106;
683
+ case 106:
668
684
  #line 1 "wikitext_ragel.rl"
669
685
  {ts = p;}
670
- #line 671 "wikitext_ragel.c"
671
- switch( (*p) ) {
672
- case 10: goto tr111;
673
- case 13: goto tr112;
674
- case 32: goto tr113;
675
- case 33: goto st97;
676
- case 34: goto tr115;
677
- case 35: goto tr116;
678
- case 38: goto tr118;
679
- case 39: goto st100;
680
- case 42: goto tr120;
681
- case 43: goto st98;
682
- case 45: goto tr121;
683
- case 46: goto tr122;
684
- case 47: goto st111;
685
- case 60: goto tr125;
686
- case 61: goto tr126;
687
- case 62: goto tr127;
688
- case 64: goto st98;
689
- case 70: goto tr128;
690
- case 72: goto tr129;
691
- case 77: goto tr130;
692
- case 83: goto tr131;
693
- case 91: goto st140;
694
- case 92: goto st98;
695
- case 93: goto st141;
696
- case 94: goto st98;
697
- case 95: goto tr121;
698
- case 96: goto tr134;
699
- case 102: goto tr128;
700
- case 104: goto tr129;
701
- case 109: goto tr130;
702
- case 115: goto tr131;
703
- case 123: goto st142;
704
- case 124: goto tr136;
705
- case 125: goto st143;
706
- case 126: goto st98;
707
- case 127: goto tr110;
686
+ #line 687 "wikitext_ragel.c"
687
+ switch( (*p) ) {
688
+ case 10: goto tr123;
689
+ case 13: goto tr124;
690
+ case 32: goto tr125;
691
+ case 33: goto st109;
692
+ case 34: goto tr127;
693
+ case 35: goto tr128;
694
+ case 38: goto tr130;
695
+ case 39: goto st112;
696
+ case 42: goto tr132;
697
+ case 43: goto st110;
698
+ case 45: goto tr133;
699
+ case 46: goto tr134;
700
+ case 47: goto st123;
701
+ case 60: goto tr137;
702
+ case 61: goto tr138;
703
+ case 62: goto tr139;
704
+ case 64: goto st110;
705
+ case 70: goto tr140;
706
+ case 72: goto tr141;
707
+ case 77: goto tr142;
708
+ case 83: goto tr143;
709
+ case 91: goto st152;
710
+ case 92: goto st110;
711
+ case 93: goto st153;
712
+ case 94: goto st110;
713
+ case 95: goto tr133;
714
+ case 96: goto tr146;
715
+ case 102: goto tr140;
716
+ case 104: goto tr141;
717
+ case 109: goto tr142;
718
+ case 115: goto tr143;
719
+ case 123: goto st154;
720
+ case 124: goto tr148;
721
+ case 125: goto st155;
722
+ case 126: goto st110;
723
+ case 127: goto tr122;
708
724
  }
709
725
  if ( (*p) < 36 ) {
710
726
  if ( (*p) < -32 ) {
@@ -713,7 +729,7 @@ case 94:
713
729
  } else if ( (*p) > -17 ) {
714
730
  if ( (*p) > -12 ) {
715
731
  if ( 1 <= (*p) && (*p) <= 31 )
716
- goto tr110;
732
+ goto tr122;
717
733
  } else if ( (*p) >= -16 )
718
734
  goto st4;
719
735
  } else
@@ -721,17 +737,17 @@ case 94:
721
737
  } else if ( (*p) > 37 ) {
722
738
  if ( (*p) < 48 ) {
723
739
  if ( 40 <= (*p) && (*p) <= 44 )
724
- goto st97;
740
+ goto st109;
725
741
  } else if ( (*p) > 57 ) {
726
742
  if ( (*p) > 63 ) {
727
743
  if ( 65 <= (*p) && (*p) <= 122 )
728
- goto tr124;
744
+ goto tr136;
729
745
  } else if ( (*p) >= 58 )
730
- goto st97;
746
+ goto st109;
731
747
  } else
732
- goto tr124;
748
+ goto tr136;
733
749
  } else
734
- goto st98;
750
+ goto st110;
735
751
  goto st0;
736
752
  st0:
737
753
  cs = 0;
@@ -778,77 +794,77 @@ case 6:
778
794
  if ( (*p) <= -65 )
779
795
  goto tr6;
780
796
  goto st0;
781
- tr112:
782
- #line 41 "wikitext_ragel.rl"
797
+ tr124:
798
+ #line 50 "wikitext_ragel.rl"
783
799
  {
784
800
  out->code_point = *p & 0x7f;
785
801
  }
786
- goto st95;
787
- st95:
802
+ goto st107;
803
+ st107:
788
804
  if ( ++p == pe )
789
- goto _test_eof95;
790
- case 95:
791
- #line 792 "wikitext_ragel.c"
805
+ goto _test_eof107;
806
+ case 107:
807
+ #line 808 "wikitext_ragel.c"
792
808
  if ( (*p) == 10 )
793
- goto tr139;
794
- goto tr138;
795
- tr113:
796
- #line 36 "wikitext_ragel.rl"
809
+ goto tr151;
810
+ goto tr150;
811
+ tr125:
812
+ #line 45 "wikitext_ragel.rl"
797
813
  {
798
814
  MARK();
799
815
  }
800
- goto st96;
801
- st96:
816
+ goto st108;
817
+ st108:
802
818
  if ( ++p == pe )
803
- goto _test_eof96;
804
- case 96:
805
- #line 806 "wikitext_ragel.c"
819
+ goto _test_eof108;
820
+ case 108:
821
+ #line 822 "wikitext_ragel.c"
806
822
  if ( (*p) == 32 )
807
- goto st96;
808
- goto tr140;
809
- st97:
823
+ goto st108;
824
+ goto tr152;
825
+ st109:
810
826
  if ( ++p == pe )
811
- goto _test_eof97;
812
- case 97:
827
+ goto _test_eof109;
828
+ case 109:
813
829
  switch( (*p) ) {
814
- case 33: goto st97;
815
- case 44: goto st97;
816
- case 46: goto st97;
817
- case 63: goto st97;
830
+ case 33: goto st109;
831
+ case 44: goto st109;
832
+ case 46: goto st109;
833
+ case 63: goto st109;
818
834
  }
819
835
  if ( (*p) > 41 ) {
820
836
  if ( 58 <= (*p) && (*p) <= 59 )
821
- goto st97;
837
+ goto st109;
822
838
  } else if ( (*p) >= 40 )
823
- goto st97;
824
- goto tr142;
825
- st98:
839
+ goto st109;
840
+ goto tr154;
841
+ st110:
826
842
  if ( ++p == pe )
827
- goto _test_eof98;
828
- case 98:
843
+ goto _test_eof110;
844
+ case 110:
829
845
  switch( (*p) ) {
830
- case 43: goto st98;
831
- case 45: goto st98;
832
- case 47: goto st98;
833
- case 64: goto st98;
834
- case 92: goto st98;
835
- case 126: goto st98;
846
+ case 43: goto st110;
847
+ case 45: goto st110;
848
+ case 47: goto st110;
849
+ case 64: goto st110;
850
+ case 92: goto st110;
851
+ case 126: goto st110;
836
852
  }
837
853
  if ( (*p) > 37 ) {
838
854
  if ( 94 <= (*p) && (*p) <= 95 )
839
- goto st98;
855
+ goto st110;
840
856
  } else if ( (*p) >= 36 )
841
- goto st98;
842
- goto tr143;
843
- tr118:
857
+ goto st110;
858
+ goto tr155;
859
+ tr130:
844
860
  #line 1 "wikitext_ragel.rl"
845
861
  {te = p+1;}
846
- goto st99;
847
- st99:
862
+ goto st111;
863
+ st111:
848
864
  if ( ++p == pe )
849
- goto _test_eof99;
850
- case 99:
851
- #line 852 "wikitext_ragel.c"
865
+ goto _test_eof111;
866
+ case 111:
867
+ #line 868 "wikitext_ragel.c"
852
868
  switch( (*p) ) {
853
869
  case 35: goto st7;
854
870
  case 97: goto st13;
@@ -859,7 +875,7 @@ case 99:
859
875
  goto st11;
860
876
  } else if ( (*p) >= 65 )
861
877
  goto st11;
862
- goto tr144;
878
+ goto tr156;
863
879
  st7:
864
880
  if ( ++p == pe )
865
881
  goto _test_eof7;
@@ -1047,58 +1063,58 @@ case 19:
1047
1063
  } else
1048
1064
  goto st11;
1049
1065
  goto tr7;
1050
- st100:
1066
+ st112:
1051
1067
  if ( ++p == pe )
1052
- goto _test_eof100;
1053
- case 100:
1068
+ goto _test_eof112;
1069
+ case 112:
1054
1070
  if ( (*p) == 39 )
1055
- goto st101;
1056
- goto tr148;
1057
- st101:
1071
+ goto st113;
1072
+ goto tr160;
1073
+ st113:
1058
1074
  if ( ++p == pe )
1059
- goto _test_eof101;
1060
- case 101:
1075
+ goto _test_eof113;
1076
+ case 113:
1061
1077
  if ( (*p) == 39 )
1062
- goto st102;
1063
- goto tr148;
1064
- st102:
1078
+ goto st114;
1079
+ goto tr160;
1080
+ st114:
1065
1081
  if ( ++p == pe )
1066
- goto _test_eof102;
1067
- case 102:
1082
+ goto _test_eof114;
1083
+ case 114:
1068
1084
  if ( (*p) == 39 )
1069
- goto st103;
1070
- goto tr148;
1071
- st103:
1085
+ goto st115;
1086
+ goto tr160;
1087
+ st115:
1072
1088
  if ( ++p == pe )
1073
- goto _test_eof103;
1074
- case 103:
1089
+ goto _test_eof115;
1090
+ case 115:
1075
1091
  if ( (*p) == 39 )
1076
- goto tr152;
1077
- goto tr148;
1078
- tr121:
1092
+ goto tr164;
1093
+ goto tr160;
1094
+ tr133:
1079
1095
  #line 1 "wikitext_ragel.rl"
1080
1096
  {te = p+1;}
1081
- #line 439 "wikitext_ragel.rl"
1082
- {act = 44;}
1083
- goto st104;
1084
- st104:
1097
+ #line 454 "wikitext_ragel.rl"
1098
+ {act = 45;}
1099
+ goto st116;
1100
+ st116:
1085
1101
  if ( ++p == pe )
1086
- goto _test_eof104;
1087
- case 104:
1088
- #line 1089 "wikitext_ragel.c"
1102
+ goto _test_eof116;
1103
+ case 116:
1104
+ #line 1105 "wikitext_ragel.c"
1089
1105
  switch( (*p) ) {
1090
- case 43: goto st98;
1091
- case 45: goto tr121;
1092
- case 47: goto st98;
1093
- case 64: goto tr153;
1094
- case 92: goto st98;
1095
- case 94: goto st98;
1096
- case 95: goto tr121;
1097
- case 126: goto st98;
1106
+ case 43: goto st110;
1107
+ case 45: goto tr133;
1108
+ case 47: goto st110;
1109
+ case 64: goto tr165;
1110
+ case 92: goto st110;
1111
+ case 94: goto st110;
1112
+ case 95: goto tr133;
1113
+ case 126: goto st110;
1098
1114
  }
1099
1115
  if ( (*p) < 46 ) {
1100
1116
  if ( 36 <= (*p) && (*p) <= 37 )
1101
- goto st98;
1117
+ goto st110;
1102
1118
  } else if ( (*p) > 57 ) {
1103
1119
  if ( (*p) > 90 ) {
1104
1120
  if ( 97 <= (*p) && (*p) <= 122 )
@@ -1107,7 +1123,7 @@ case 104:
1107
1123
  goto st20;
1108
1124
  } else
1109
1125
  goto st20;
1110
- goto tr143;
1126
+ goto tr155;
1111
1127
  st20:
1112
1128
  if ( ++p == pe )
1113
1129
  goto _test_eof20;
@@ -1187,14 +1203,14 @@ case 24:
1187
1203
  tr29:
1188
1204
  #line 1 "wikitext_ragel.rl"
1189
1205
  {te = p+1;}
1190
- #line 288 "wikitext_ragel.rl"
1191
- {act = 21;}
1192
- goto st105;
1193
- st105:
1206
+ #line 303 "wikitext_ragel.rl"
1207
+ {act = 22;}
1208
+ goto st117;
1209
+ st117:
1194
1210
  if ( ++p == pe )
1195
- goto _test_eof105;
1196
- case 105:
1197
- #line 1198 "wikitext_ragel.c"
1211
+ goto _test_eof117;
1212
+ case 117:
1213
+ #line 1214 "wikitext_ragel.c"
1198
1214
  if ( (*p) == 46 )
1199
1215
  goto st23;
1200
1216
  if ( (*p) < 65 ) {
@@ -1202,21 +1218,21 @@ case 105:
1202
1218
  goto st22;
1203
1219
  } else if ( (*p) > 90 ) {
1204
1220
  if ( 97 <= (*p) && (*p) <= 122 )
1205
- goto tr155;
1221
+ goto tr167;
1206
1222
  } else
1207
- goto tr155;
1208
- goto tr154;
1209
- tr155:
1223
+ goto tr167;
1224
+ goto tr166;
1225
+ tr167:
1210
1226
  #line 1 "wikitext_ragel.rl"
1211
1227
  {te = p+1;}
1212
- #line 288 "wikitext_ragel.rl"
1213
- {act = 21;}
1214
- goto st106;
1215
- st106:
1228
+ #line 303 "wikitext_ragel.rl"
1229
+ {act = 22;}
1230
+ goto st118;
1231
+ st118:
1216
1232
  if ( ++p == pe )
1217
- goto _test_eof106;
1218
- case 106:
1219
- #line 1220 "wikitext_ragel.c"
1233
+ goto _test_eof118;
1234
+ case 118:
1235
+ #line 1236 "wikitext_ragel.c"
1220
1236
  if ( (*p) == 46 )
1221
1237
  goto st23;
1222
1238
  if ( (*p) < 65 ) {
@@ -1224,21 +1240,21 @@ case 106:
1224
1240
  goto st22;
1225
1241
  } else if ( (*p) > 90 ) {
1226
1242
  if ( 97 <= (*p) && (*p) <= 122 )
1227
- goto tr156;
1243
+ goto tr168;
1228
1244
  } else
1229
- goto tr156;
1230
- goto tr154;
1231
- tr156:
1245
+ goto tr168;
1246
+ goto tr166;
1247
+ tr168:
1232
1248
  #line 1 "wikitext_ragel.rl"
1233
1249
  {te = p+1;}
1234
- #line 288 "wikitext_ragel.rl"
1235
- {act = 21;}
1236
- goto st107;
1237
- st107:
1250
+ #line 303 "wikitext_ragel.rl"
1251
+ {act = 22;}
1252
+ goto st119;
1253
+ st119:
1238
1254
  if ( ++p == pe )
1239
- goto _test_eof107;
1240
- case 107:
1241
- #line 1242 "wikitext_ragel.c"
1255
+ goto _test_eof119;
1256
+ case 119:
1257
+ #line 1258 "wikitext_ragel.c"
1242
1258
  if ( (*p) == 46 )
1243
1259
  goto st23;
1244
1260
  if ( (*p) < 65 ) {
@@ -1246,21 +1262,21 @@ case 107:
1246
1262
  goto st22;
1247
1263
  } else if ( (*p) > 90 ) {
1248
1264
  if ( 97 <= (*p) && (*p) <= 122 )
1249
- goto tr157;
1265
+ goto tr169;
1250
1266
  } else
1251
- goto tr157;
1252
- goto tr154;
1253
- tr157:
1267
+ goto tr169;
1268
+ goto tr166;
1269
+ tr169:
1254
1270
  #line 1 "wikitext_ragel.rl"
1255
1271
  {te = p+1;}
1256
- #line 288 "wikitext_ragel.rl"
1257
- {act = 21;}
1258
- goto st108;
1259
- st108:
1272
+ #line 303 "wikitext_ragel.rl"
1273
+ {act = 22;}
1274
+ goto st120;
1275
+ st120:
1260
1276
  if ( ++p == pe )
1261
- goto _test_eof108;
1262
- case 108:
1263
- #line 1264 "wikitext_ragel.c"
1277
+ goto _test_eof120;
1278
+ case 120:
1279
+ #line 1280 "wikitext_ragel.c"
1264
1280
  if ( (*p) == 46 )
1265
1281
  goto st23;
1266
1282
  if ( (*p) < 65 ) {
@@ -1271,58 +1287,58 @@ case 108:
1271
1287
  goto st22;
1272
1288
  } else
1273
1289
  goto st22;
1274
- goto tr154;
1275
- tr153:
1290
+ goto tr166;
1291
+ tr165:
1276
1292
  #line 1 "wikitext_ragel.rl"
1277
1293
  {te = p+1;}
1278
- #line 439 "wikitext_ragel.rl"
1279
- {act = 44;}
1280
- goto st109;
1281
- st109:
1294
+ #line 454 "wikitext_ragel.rl"
1295
+ {act = 45;}
1296
+ goto st121;
1297
+ st121:
1282
1298
  if ( ++p == pe )
1283
- goto _test_eof109;
1284
- case 109:
1285
- #line 1286 "wikitext_ragel.c"
1299
+ goto _test_eof121;
1300
+ case 121:
1301
+ #line 1302 "wikitext_ragel.c"
1286
1302
  switch( (*p) ) {
1287
- case 43: goto st98;
1288
- case 45: goto st98;
1289
- case 47: goto st98;
1290
- case 64: goto st98;
1291
- case 92: goto st98;
1292
- case 126: goto st98;
1303
+ case 43: goto st110;
1304
+ case 45: goto st110;
1305
+ case 47: goto st110;
1306
+ case 64: goto st110;
1307
+ case 92: goto st110;
1308
+ case 126: goto st110;
1293
1309
  }
1294
1310
  if ( (*p) < 65 ) {
1295
1311
  if ( (*p) > 37 ) {
1296
1312
  if ( 48 <= (*p) && (*p) <= 57 )
1297
1313
  goto st22;
1298
1314
  } else if ( (*p) >= 36 )
1299
- goto st98;
1315
+ goto st110;
1300
1316
  } else if ( (*p) > 90 ) {
1301
1317
  if ( (*p) > 95 ) {
1302
1318
  if ( 97 <= (*p) && (*p) <= 122 )
1303
1319
  goto st22;
1304
1320
  } else if ( (*p) >= 94 )
1305
- goto st98;
1321
+ goto st110;
1306
1322
  } else
1307
1323
  goto st22;
1308
- goto tr143;
1309
- tr122:
1324
+ goto tr155;
1325
+ tr134:
1310
1326
  #line 1 "wikitext_ragel.rl"
1311
1327
  {te = p+1;}
1312
- #line 421 "wikitext_ragel.rl"
1313
- {act = 42;}
1314
- goto st110;
1315
- st110:
1328
+ #line 436 "wikitext_ragel.rl"
1329
+ {act = 43;}
1330
+ goto st122;
1331
+ st122:
1316
1332
  if ( ++p == pe )
1317
- goto _test_eof110;
1318
- case 110:
1319
- #line 1320 "wikitext_ragel.c"
1333
+ goto _test_eof122;
1334
+ case 122:
1335
+ #line 1336 "wikitext_ragel.c"
1320
1336
  switch( (*p) ) {
1321
- case 33: goto st97;
1322
- case 44: goto st97;
1337
+ case 33: goto st109;
1338
+ case 44: goto st109;
1323
1339
  case 45: goto st20;
1324
- case 46: goto tr122;
1325
- case 63: goto st97;
1340
+ case 46: goto tr134;
1341
+ case 63: goto st109;
1326
1342
  case 64: goto st21;
1327
1343
  case 95: goto st20;
1328
1344
  }
@@ -1331,7 +1347,7 @@ case 110:
1331
1347
  if ( 48 <= (*p) && (*p) <= 57 )
1332
1348
  goto st20;
1333
1349
  } else if ( (*p) >= 40 )
1334
- goto st97;
1350
+ goto st109;
1335
1351
  } else if ( (*p) > 59 ) {
1336
1352
  if ( (*p) > 90 ) {
1337
1353
  if ( 97 <= (*p) && (*p) <= 122 )
@@ -1339,106 +1355,106 @@ case 110:
1339
1355
  } else if ( (*p) >= 65 )
1340
1356
  goto st20;
1341
1357
  } else
1342
- goto st97;
1343
- goto tr142;
1344
- st111:
1358
+ goto st109;
1359
+ goto tr154;
1360
+ st123:
1345
1361
  if ( ++p == pe )
1346
- goto _test_eof111;
1347
- case 111:
1362
+ goto _test_eof123;
1363
+ case 123:
1348
1364
  switch( (*p) ) {
1349
- case 43: goto st98;
1350
- case 45: goto st112;
1351
- case 47: goto st98;
1352
- case 64: goto st98;
1353
- case 92: goto st98;
1354
- case 94: goto st98;
1355
- case 95: goto st112;
1356
- case 126: goto st98;
1365
+ case 43: goto st110;
1366
+ case 45: goto st124;
1367
+ case 47: goto st110;
1368
+ case 64: goto st110;
1369
+ case 92: goto st110;
1370
+ case 94: goto st110;
1371
+ case 95: goto st124;
1372
+ case 126: goto st110;
1357
1373
  }
1358
1374
  if ( (*p) < 46 ) {
1359
1375
  if ( 36 <= (*p) && (*p) <= 37 )
1360
- goto st98;
1376
+ goto st110;
1361
1377
  } else if ( (*p) > 57 ) {
1362
1378
  if ( (*p) > 90 ) {
1363
1379
  if ( 97 <= (*p) && (*p) <= 122 )
1364
- goto st113;
1380
+ goto st125;
1365
1381
  } else if ( (*p) >= 65 )
1366
- goto st113;
1382
+ goto st125;
1367
1383
  } else
1368
- goto st113;
1369
- goto tr158;
1370
- st112:
1384
+ goto st125;
1385
+ goto tr170;
1386
+ st124:
1371
1387
  if ( ++p == pe )
1372
- goto _test_eof112;
1373
- case 112:
1374
- switch( (*p) ) {
1375
- case 43: goto st98;
1376
- case 45: goto st112;
1377
- case 47: goto st111;
1378
- case 64: goto st98;
1379
- case 92: goto st98;
1380
- case 94: goto st98;
1381
- case 95: goto st112;
1382
- case 126: goto st98;
1388
+ goto _test_eof124;
1389
+ case 124:
1390
+ switch( (*p) ) {
1391
+ case 43: goto st110;
1392
+ case 45: goto st124;
1393
+ case 47: goto st123;
1394
+ case 64: goto st110;
1395
+ case 92: goto st110;
1396
+ case 94: goto st110;
1397
+ case 95: goto st124;
1398
+ case 126: goto st110;
1383
1399
  }
1384
1400
  if ( (*p) < 46 ) {
1385
1401
  if ( 36 <= (*p) && (*p) <= 37 )
1386
- goto st98;
1402
+ goto st110;
1387
1403
  } else if ( (*p) > 57 ) {
1388
1404
  if ( (*p) > 90 ) {
1389
1405
  if ( 97 <= (*p) && (*p) <= 122 )
1390
- goto st113;
1406
+ goto st125;
1391
1407
  } else if ( (*p) >= 65 )
1392
- goto st113;
1408
+ goto st125;
1393
1409
  } else
1394
- goto st113;
1395
- goto tr158;
1396
- st113:
1410
+ goto st125;
1411
+ goto tr170;
1412
+ st125:
1397
1413
  if ( ++p == pe )
1398
- goto _test_eof113;
1399
- case 113:
1414
+ goto _test_eof125;
1415
+ case 125:
1400
1416
  switch( (*p) ) {
1401
- case 47: goto st114;
1402
- case 95: goto st113;
1417
+ case 47: goto st126;
1418
+ case 95: goto st125;
1403
1419
  }
1404
1420
  if ( (*p) < 65 ) {
1405
1421
  if ( 45 <= (*p) && (*p) <= 57 )
1406
- goto st113;
1422
+ goto st125;
1407
1423
  } else if ( (*p) > 90 ) {
1408
1424
  if ( 97 <= (*p) && (*p) <= 122 )
1409
- goto st113;
1425
+ goto st125;
1410
1426
  } else
1411
- goto st113;
1412
- goto tr158;
1413
- st114:
1427
+ goto st125;
1428
+ goto tr170;
1429
+ st126:
1414
1430
  if ( ++p == pe )
1415
- goto _test_eof114;
1416
- case 114:
1431
+ goto _test_eof126;
1432
+ case 126:
1417
1433
  if ( (*p) == 95 )
1418
- goto st113;
1434
+ goto st125;
1419
1435
  if ( (*p) < 48 ) {
1420
1436
  if ( 45 <= (*p) && (*p) <= 46 )
1421
- goto st113;
1437
+ goto st125;
1422
1438
  } else if ( (*p) > 57 ) {
1423
1439
  if ( (*p) > 90 ) {
1424
1440
  if ( 97 <= (*p) && (*p) <= 122 )
1425
- goto st113;
1441
+ goto st125;
1426
1442
  } else if ( (*p) >= 65 )
1427
- goto st113;
1443
+ goto st125;
1428
1444
  } else
1429
- goto st113;
1430
- goto tr158;
1431
- tr124:
1445
+ goto st125;
1446
+ goto tr170;
1447
+ tr136:
1432
1448
  #line 1 "wikitext_ragel.rl"
1433
1449
  {te = p+1;}
1434
- #line 427 "wikitext_ragel.rl"
1435
- {act = 43;}
1436
- goto st115;
1437
- st115:
1450
+ #line 442 "wikitext_ragel.rl"
1451
+ {act = 44;}
1452
+ goto st127;
1453
+ st127:
1438
1454
  if ( ++p == pe )
1439
- goto _test_eof115;
1440
- case 115:
1441
- #line 1442 "wikitext_ragel.c"
1455
+ goto _test_eof127;
1456
+ case 127:
1457
+ #line 1458 "wikitext_ragel.c"
1442
1458
  switch( (*p) ) {
1443
1459
  case 64: goto st21;
1444
1460
  case 95: goto st20;
@@ -1449,21 +1465,21 @@ case 115:
1449
1465
  } else if ( (*p) > 57 ) {
1450
1466
  if ( (*p) > 90 ) {
1451
1467
  if ( 97 <= (*p) && (*p) <= 122 )
1452
- goto tr124;
1468
+ goto tr136;
1453
1469
  } else if ( (*p) >= 65 )
1454
- goto tr124;
1470
+ goto tr136;
1455
1471
  } else
1456
- goto tr124;
1457
- goto tr162;
1458
- tr125:
1472
+ goto tr136;
1473
+ goto tr174;
1474
+ tr137:
1459
1475
  #line 1 "wikitext_ragel.rl"
1460
1476
  {te = p+1;}
1461
- goto st116;
1462
- st116:
1477
+ goto st128;
1478
+ st128:
1463
1479
  if ( ++p == pe )
1464
- goto _test_eof116;
1465
- case 116:
1466
- #line 1467 "wikitext_ragel.c"
1480
+ goto _test_eof128;
1481
+ case 128:
1482
+ #line 1483 "wikitext_ragel.c"
1467
1483
  switch( (*p) ) {
1468
1484
  case 47: goto st25;
1469
1485
  case 66: goto st55;
@@ -1475,11 +1491,11 @@ case 116:
1475
1491
  case 98: goto st55;
1476
1492
  case 101: goto st65;
1477
1493
  case 110: goto st67;
1478
- case 112: goto st73;
1494
+ case 112: goto st84;
1479
1495
  case 115: goto st76;
1480
1496
  case 116: goto st82;
1481
1497
  }
1482
- goto tr163;
1498
+ goto tr175;
1483
1499
  st25:
1484
1500
  if ( ++p == pe )
1485
1501
  goto _test_eof25;
@@ -1997,59 +2013,157 @@ case 83:
1997
2013
  if ( (*p) == 62 )
1998
2014
  goto tr94;
1999
2015
  goto tr30;
2000
- tr126:
2001
- #line 36 "wikitext_ragel.rl"
2016
+ st84:
2017
+ if ( ++p == pe )
2018
+ goto _test_eof84;
2019
+ case 84:
2020
+ switch( (*p) ) {
2021
+ case 82: goto st74;
2022
+ case 114: goto st85;
2023
+ }
2024
+ goto tr30;
2025
+ st85:
2026
+ if ( ++p == pe )
2027
+ goto _test_eof85;
2028
+ case 85:
2029
+ switch( (*p) ) {
2030
+ case 69: goto st75;
2031
+ case 101: goto st86;
2032
+ }
2033
+ goto tr30;
2034
+ st86:
2035
+ if ( ++p == pe )
2036
+ goto _test_eof86;
2037
+ case 86:
2038
+ switch( (*p) ) {
2039
+ case 32: goto st87;
2040
+ case 62: goto tr86;
2041
+ }
2042
+ goto tr30;
2043
+ st87:
2044
+ if ( ++p == pe )
2045
+ goto _test_eof87;
2046
+ case 87:
2047
+ if ( (*p) == 108 )
2048
+ goto st88;
2049
+ goto tr30;
2050
+ st88:
2051
+ if ( ++p == pe )
2052
+ goto _test_eof88;
2053
+ case 88:
2054
+ if ( (*p) == 97 )
2055
+ goto st89;
2056
+ goto tr30;
2057
+ st89:
2058
+ if ( ++p == pe )
2059
+ goto _test_eof89;
2060
+ case 89:
2061
+ if ( (*p) == 110 )
2062
+ goto st90;
2063
+ goto tr30;
2064
+ st90:
2065
+ if ( ++p == pe )
2066
+ goto _test_eof90;
2067
+ case 90:
2068
+ if ( (*p) == 103 )
2069
+ goto st91;
2070
+ goto tr30;
2071
+ st91:
2072
+ if ( ++p == pe )
2073
+ goto _test_eof91;
2074
+ case 91:
2075
+ if ( (*p) == 61 )
2076
+ goto st92;
2077
+ goto tr30;
2078
+ st92:
2079
+ if ( ++p == pe )
2080
+ goto _test_eof92;
2081
+ case 92:
2082
+ if ( (*p) == 34 )
2083
+ goto st93;
2084
+ goto tr30;
2085
+ st93:
2086
+ if ( ++p == pe )
2087
+ goto _test_eof93;
2088
+ case 93:
2089
+ if ( (*p) > 90 ) {
2090
+ if ( 97 <= (*p) && (*p) <= 122 )
2091
+ goto st94;
2092
+ } else if ( (*p) >= 65 )
2093
+ goto st94;
2094
+ goto tr30;
2095
+ st94:
2096
+ if ( ++p == pe )
2097
+ goto _test_eof94;
2098
+ case 94:
2099
+ if ( (*p) == 34 )
2100
+ goto st95;
2101
+ if ( (*p) > 90 ) {
2102
+ if ( 97 <= (*p) && (*p) <= 122 )
2103
+ goto st94;
2104
+ } else if ( (*p) >= 65 )
2105
+ goto st94;
2106
+ goto tr30;
2107
+ st95:
2108
+ if ( ++p == pe )
2109
+ goto _test_eof95;
2110
+ case 95:
2111
+ if ( (*p) == 62 )
2112
+ goto tr106;
2113
+ goto tr30;
2114
+ tr138:
2115
+ #line 45 "wikitext_ragel.rl"
2002
2116
  {
2003
2117
  MARK();
2004
2118
  }
2005
- goto st117;
2006
- st117:
2119
+ goto st129;
2120
+ st129:
2007
2121
  if ( ++p == pe )
2008
- goto _test_eof117;
2009
- case 117:
2010
- #line 2011 "wikitext_ragel.c"
2122
+ goto _test_eof129;
2123
+ case 129:
2124
+ #line 2125 "wikitext_ragel.c"
2011
2125
  switch( (*p) ) {
2012
- case 32: goto st118;
2013
- case 61: goto tr126;
2126
+ case 32: goto st130;
2127
+ case 61: goto tr138;
2014
2128
  }
2015
- goto tr171;
2016
- st118:
2129
+ goto tr184;
2130
+ st130:
2017
2131
  if ( ++p == pe )
2018
- goto _test_eof118;
2019
- case 118:
2132
+ goto _test_eof130;
2133
+ case 130:
2020
2134
  if ( (*p) == 32 )
2021
- goto st118;
2022
- goto tr171;
2023
- tr127:
2024
- #line 36 "wikitext_ragel.rl"
2135
+ goto st130;
2136
+ goto tr184;
2137
+ tr139:
2138
+ #line 45 "wikitext_ragel.rl"
2025
2139
  {
2026
2140
  MARK();
2027
2141
  }
2028
- goto st119;
2029
- st119:
2142
+ goto st131;
2143
+ st131:
2030
2144
  if ( ++p == pe )
2031
- goto _test_eof119;
2032
- case 119:
2033
- #line 2034 "wikitext_ragel.c"
2145
+ goto _test_eof131;
2146
+ case 131:
2147
+ #line 2148 "wikitext_ragel.c"
2034
2148
  if ( (*p) == 32 )
2035
- goto tr174;
2036
- goto tr173;
2037
- tr128:
2149
+ goto tr187;
2150
+ goto tr186;
2151
+ tr140:
2038
2152
  #line 1 "wikitext_ragel.rl"
2039
2153
  {te = p+1;}
2040
- #line 427 "wikitext_ragel.rl"
2041
- {act = 43;}
2042
- goto st120;
2043
- st120:
2154
+ #line 442 "wikitext_ragel.rl"
2155
+ {act = 44;}
2156
+ goto st132;
2157
+ st132:
2044
2158
  if ( ++p == pe )
2045
- goto _test_eof120;
2046
- case 120:
2047
- #line 2048 "wikitext_ragel.c"
2159
+ goto _test_eof132;
2160
+ case 132:
2161
+ #line 2162 "wikitext_ragel.c"
2048
2162
  switch( (*p) ) {
2049
2163
  case 64: goto st21;
2050
- case 84: goto tr175;
2164
+ case 84: goto tr188;
2051
2165
  case 95: goto st20;
2052
- case 116: goto tr175;
2166
+ case 116: goto tr188;
2053
2167
  }
2054
2168
  if ( (*p) < 48 ) {
2055
2169
  if ( 45 <= (*p) && (*p) <= 46 )
@@ -2057,28 +2171,28 @@ case 120:
2057
2171
  } else if ( (*p) > 57 ) {
2058
2172
  if ( (*p) > 90 ) {
2059
2173
  if ( 97 <= (*p) && (*p) <= 122 )
2060
- goto tr124;
2174
+ goto tr136;
2061
2175
  } else if ( (*p) >= 65 )
2062
- goto tr124;
2176
+ goto tr136;
2063
2177
  } else
2064
- goto tr124;
2065
- goto tr162;
2066
- tr175:
2178
+ goto tr136;
2179
+ goto tr174;
2180
+ tr188:
2067
2181
  #line 1 "wikitext_ragel.rl"
2068
2182
  {te = p+1;}
2069
- #line 427 "wikitext_ragel.rl"
2070
- {act = 43;}
2071
- goto st121;
2072
- st121:
2183
+ #line 442 "wikitext_ragel.rl"
2184
+ {act = 44;}
2185
+ goto st133;
2186
+ st133:
2073
2187
  if ( ++p == pe )
2074
- goto _test_eof121;
2075
- case 121:
2076
- #line 2077 "wikitext_ragel.c"
2188
+ goto _test_eof133;
2189
+ case 133:
2190
+ #line 2191 "wikitext_ragel.c"
2077
2191
  switch( (*p) ) {
2078
2192
  case 64: goto st21;
2079
- case 80: goto tr176;
2193
+ case 80: goto tr189;
2080
2194
  case 95: goto st20;
2081
- case 112: goto tr176;
2195
+ case 112: goto tr189;
2082
2196
  }
2083
2197
  if ( (*p) < 48 ) {
2084
2198
  if ( 45 <= (*p) && (*p) <= 46 )
@@ -2086,25 +2200,25 @@ case 121:
2086
2200
  } else if ( (*p) > 57 ) {
2087
2201
  if ( (*p) > 90 ) {
2088
2202
  if ( 97 <= (*p) && (*p) <= 122 )
2089
- goto tr124;
2203
+ goto tr136;
2090
2204
  } else if ( (*p) >= 65 )
2091
- goto tr124;
2205
+ goto tr136;
2092
2206
  } else
2093
- goto tr124;
2094
- goto tr162;
2095
- tr176:
2207
+ goto tr136;
2208
+ goto tr174;
2209
+ tr189:
2096
2210
  #line 1 "wikitext_ragel.rl"
2097
2211
  {te = p+1;}
2098
- #line 427 "wikitext_ragel.rl"
2099
- {act = 43;}
2100
- goto st122;
2101
- st122:
2212
+ #line 442 "wikitext_ragel.rl"
2213
+ {act = 44;}
2214
+ goto st134;
2215
+ st134:
2102
2216
  if ( ++p == pe )
2103
- goto _test_eof122;
2104
- case 122:
2105
- #line 2106 "wikitext_ragel.c"
2217
+ goto _test_eof134;
2218
+ case 134:
2219
+ #line 2220 "wikitext_ragel.c"
2106
2220
  switch( (*p) ) {
2107
- case 58: goto st84;
2221
+ case 58: goto st96;
2108
2222
  case 64: goto st21;
2109
2223
  case 95: goto st20;
2110
2224
  }
@@ -2114,124 +2228,124 @@ case 122:
2114
2228
  } else if ( (*p) > 57 ) {
2115
2229
  if ( (*p) > 90 ) {
2116
2230
  if ( 97 <= (*p) && (*p) <= 122 )
2117
- goto tr124;
2231
+ goto tr136;
2118
2232
  } else if ( (*p) >= 65 )
2119
- goto tr124;
2233
+ goto tr136;
2120
2234
  } else
2121
- goto tr124;
2122
- goto tr162;
2123
- st84:
2235
+ goto tr136;
2236
+ goto tr174;
2237
+ st96:
2124
2238
  if ( ++p == pe )
2125
- goto _test_eof84;
2126
- case 84:
2239
+ goto _test_eof96;
2240
+ case 96:
2127
2241
  if ( (*p) == 47 )
2128
- goto st85;
2129
- goto tr95;
2130
- st85:
2242
+ goto st97;
2243
+ goto tr107;
2244
+ st97:
2131
2245
  if ( ++p == pe )
2132
- goto _test_eof85;
2133
- case 85:
2246
+ goto _test_eof97;
2247
+ case 97:
2134
2248
  if ( (*p) == 47 )
2135
- goto st86;
2136
- goto tr95;
2137
- st86:
2249
+ goto st98;
2250
+ goto tr107;
2251
+ st98:
2138
2252
  if ( ++p == pe )
2139
- goto _test_eof86;
2140
- case 86:
2253
+ goto _test_eof98;
2254
+ case 98:
2141
2255
  switch( (*p) ) {
2142
- case 45: goto tr98;
2143
- case 61: goto tr98;
2144
- case 95: goto tr98;
2145
- case 126: goto tr98;
2256
+ case 45: goto tr110;
2257
+ case 61: goto tr110;
2258
+ case 95: goto tr110;
2259
+ case 126: goto tr110;
2146
2260
  }
2147
2261
  if ( (*p) < 47 ) {
2148
2262
  if ( (*p) > 40 ) {
2149
2263
  if ( 42 <= (*p) && (*p) <= 43 )
2150
- goto tr98;
2264
+ goto tr110;
2151
2265
  } else if ( (*p) >= 35 )
2152
- goto tr98;
2266
+ goto tr110;
2153
2267
  } else if ( (*p) > 57 ) {
2154
2268
  if ( (*p) > 90 ) {
2155
2269
  if ( 97 <= (*p) && (*p) <= 122 )
2156
- goto tr98;
2270
+ goto tr110;
2157
2271
  } else if ( (*p) >= 64 )
2158
- goto tr98;
2272
+ goto tr110;
2159
2273
  } else
2160
- goto tr98;
2161
- goto tr95;
2162
- tr98:
2274
+ goto tr110;
2275
+ goto tr107;
2276
+ tr110:
2163
2277
  #line 1 "wikitext_ragel.rl"
2164
2278
  {te = p+1;}
2165
- goto st123;
2166
- st123:
2279
+ goto st135;
2280
+ st135:
2167
2281
  if ( ++p == pe )
2168
- goto _test_eof123;
2169
- case 123:
2170
- #line 2171 "wikitext_ragel.c"
2282
+ goto _test_eof135;
2283
+ case 135:
2284
+ #line 2285 "wikitext_ragel.c"
2171
2285
  switch( (*p) ) {
2172
- case 33: goto st87;
2173
- case 41: goto st87;
2174
- case 44: goto st87;
2175
- case 46: goto st87;
2176
- case 61: goto tr98;
2177
- case 63: goto st87;
2178
- case 95: goto tr98;
2179
- case 126: goto tr98;
2286
+ case 33: goto st99;
2287
+ case 41: goto st99;
2288
+ case 44: goto st99;
2289
+ case 46: goto st99;
2290
+ case 61: goto tr110;
2291
+ case 63: goto st99;
2292
+ case 95: goto tr110;
2293
+ case 126: goto tr110;
2180
2294
  }
2181
2295
  if ( (*p) < 58 ) {
2182
2296
  if ( 35 <= (*p) && (*p) <= 57 )
2183
- goto tr98;
2297
+ goto tr110;
2184
2298
  } else if ( (*p) > 59 ) {
2185
2299
  if ( (*p) > 90 ) {
2186
2300
  if ( 97 <= (*p) && (*p) <= 122 )
2187
- goto tr98;
2301
+ goto tr110;
2188
2302
  } else if ( (*p) >= 64 )
2189
- goto tr98;
2303
+ goto tr110;
2190
2304
  } else
2191
- goto st87;
2192
- goto tr178;
2193
- st87:
2305
+ goto st99;
2306
+ goto tr191;
2307
+ st99:
2194
2308
  if ( ++p == pe )
2195
- goto _test_eof87;
2196
- case 87:
2309
+ goto _test_eof99;
2310
+ case 99:
2197
2311
  switch( (*p) ) {
2198
- case 33: goto st87;
2199
- case 41: goto st87;
2200
- case 44: goto st87;
2201
- case 46: goto st87;
2202
- case 61: goto tr98;
2203
- case 63: goto st87;
2204
- case 95: goto tr98;
2205
- case 126: goto tr98;
2312
+ case 33: goto st99;
2313
+ case 41: goto st99;
2314
+ case 44: goto st99;
2315
+ case 46: goto st99;
2316
+ case 61: goto tr110;
2317
+ case 63: goto st99;
2318
+ case 95: goto tr110;
2319
+ case 126: goto tr110;
2206
2320
  }
2207
2321
  if ( (*p) < 58 ) {
2208
2322
  if ( 35 <= (*p) && (*p) <= 57 )
2209
- goto tr98;
2323
+ goto tr110;
2210
2324
  } else if ( (*p) > 59 ) {
2211
2325
  if ( (*p) > 90 ) {
2212
2326
  if ( 97 <= (*p) && (*p) <= 122 )
2213
- goto tr98;
2327
+ goto tr110;
2214
2328
  } else if ( (*p) >= 64 )
2215
- goto tr98;
2329
+ goto tr110;
2216
2330
  } else
2217
- goto st87;
2218
- goto tr99;
2219
- tr129:
2331
+ goto st99;
2332
+ goto tr111;
2333
+ tr141:
2220
2334
  #line 1 "wikitext_ragel.rl"
2221
2335
  {te = p+1;}
2222
- #line 427 "wikitext_ragel.rl"
2223
- {act = 43;}
2224
- goto st124;
2225
- st124:
2336
+ #line 442 "wikitext_ragel.rl"
2337
+ {act = 44;}
2338
+ goto st136;
2339
+ st136:
2226
2340
  if ( ++p == pe )
2227
- goto _test_eof124;
2228
- case 124:
2229
- #line 2230 "wikitext_ragel.c"
2341
+ goto _test_eof136;
2342
+ case 136:
2343
+ #line 2344 "wikitext_ragel.c"
2230
2344
  switch( (*p) ) {
2231
2345
  case 64: goto st21;
2232
- case 84: goto tr179;
2346
+ case 84: goto tr192;
2233
2347
  case 95: goto st20;
2234
- case 116: goto tr179;
2348
+ case 116: goto tr192;
2235
2349
  }
2236
2350
  if ( (*p) < 48 ) {
2237
2351
  if ( 45 <= (*p) && (*p) <= 46 )
@@ -2239,28 +2353,28 @@ case 124:
2239
2353
  } else if ( (*p) > 57 ) {
2240
2354
  if ( (*p) > 90 ) {
2241
2355
  if ( 97 <= (*p) && (*p) <= 122 )
2242
- goto tr124;
2356
+ goto tr136;
2243
2357
  } else if ( (*p) >= 65 )
2244
- goto tr124;
2358
+ goto tr136;
2245
2359
  } else
2246
- goto tr124;
2247
- goto tr162;
2248
- tr179:
2360
+ goto tr136;
2361
+ goto tr174;
2362
+ tr192:
2249
2363
  #line 1 "wikitext_ragel.rl"
2250
2364
  {te = p+1;}
2251
- #line 427 "wikitext_ragel.rl"
2252
- {act = 43;}
2253
- goto st125;
2254
- st125:
2365
+ #line 442 "wikitext_ragel.rl"
2366
+ {act = 44;}
2367
+ goto st137;
2368
+ st137:
2255
2369
  if ( ++p == pe )
2256
- goto _test_eof125;
2257
- case 125:
2258
- #line 2259 "wikitext_ragel.c"
2370
+ goto _test_eof137;
2371
+ case 137:
2372
+ #line 2373 "wikitext_ragel.c"
2259
2373
  switch( (*p) ) {
2260
2374
  case 64: goto st21;
2261
- case 84: goto tr180;
2375
+ case 84: goto tr193;
2262
2376
  case 95: goto st20;
2263
- case 116: goto tr180;
2377
+ case 116: goto tr193;
2264
2378
  }
2265
2379
  if ( (*p) < 48 ) {
2266
2380
  if ( 45 <= (*p) && (*p) <= 46 )
@@ -2268,28 +2382,28 @@ case 125:
2268
2382
  } else if ( (*p) > 57 ) {
2269
2383
  if ( (*p) > 90 ) {
2270
2384
  if ( 97 <= (*p) && (*p) <= 122 )
2271
- goto tr124;
2385
+ goto tr136;
2272
2386
  } else if ( (*p) >= 65 )
2273
- goto tr124;
2387
+ goto tr136;
2274
2388
  } else
2275
- goto tr124;
2276
- goto tr162;
2277
- tr180:
2389
+ goto tr136;
2390
+ goto tr174;
2391
+ tr193:
2278
2392
  #line 1 "wikitext_ragel.rl"
2279
2393
  {te = p+1;}
2280
- #line 427 "wikitext_ragel.rl"
2281
- {act = 43;}
2282
- goto st126;
2283
- st126:
2394
+ #line 442 "wikitext_ragel.rl"
2395
+ {act = 44;}
2396
+ goto st138;
2397
+ st138:
2284
2398
  if ( ++p == pe )
2285
- goto _test_eof126;
2286
- case 126:
2287
- #line 2288 "wikitext_ragel.c"
2399
+ goto _test_eof138;
2400
+ case 138:
2401
+ #line 2402 "wikitext_ragel.c"
2288
2402
  switch( (*p) ) {
2289
2403
  case 64: goto st21;
2290
- case 80: goto tr181;
2404
+ case 80: goto tr194;
2291
2405
  case 95: goto st20;
2292
- case 112: goto tr181;
2406
+ case 112: goto tr194;
2293
2407
  }
2294
2408
  if ( (*p) < 48 ) {
2295
2409
  if ( 45 <= (*p) && (*p) <= 46 )
@@ -2297,29 +2411,29 @@ case 126:
2297
2411
  } else if ( (*p) > 57 ) {
2298
2412
  if ( (*p) > 90 ) {
2299
2413
  if ( 97 <= (*p) && (*p) <= 122 )
2300
- goto tr124;
2414
+ goto tr136;
2301
2415
  } else if ( (*p) >= 65 )
2302
- goto tr124;
2416
+ goto tr136;
2303
2417
  } else
2304
- goto tr124;
2305
- goto tr162;
2306
- tr181:
2418
+ goto tr136;
2419
+ goto tr174;
2420
+ tr194:
2307
2421
  #line 1 "wikitext_ragel.rl"
2308
2422
  {te = p+1;}
2309
- #line 427 "wikitext_ragel.rl"
2310
- {act = 43;}
2311
- goto st127;
2312
- st127:
2423
+ #line 442 "wikitext_ragel.rl"
2424
+ {act = 44;}
2425
+ goto st139;
2426
+ st139:
2313
2427
  if ( ++p == pe )
2314
- goto _test_eof127;
2315
- case 127:
2316
- #line 2317 "wikitext_ragel.c"
2428
+ goto _test_eof139;
2429
+ case 139:
2430
+ #line 2431 "wikitext_ragel.c"
2317
2431
  switch( (*p) ) {
2318
- case 58: goto st84;
2432
+ case 58: goto st96;
2319
2433
  case 64: goto st21;
2320
- case 83: goto tr176;
2434
+ case 83: goto tr189;
2321
2435
  case 95: goto st20;
2322
- case 115: goto tr176;
2436
+ case 115: goto tr189;
2323
2437
  }
2324
2438
  if ( (*p) < 48 ) {
2325
2439
  if ( 45 <= (*p) && (*p) <= 46 )
@@ -2327,28 +2441,28 @@ case 127:
2327
2441
  } else if ( (*p) > 57 ) {
2328
2442
  if ( (*p) > 90 ) {
2329
2443
  if ( 97 <= (*p) && (*p) <= 122 )
2330
- goto tr124;
2444
+ goto tr136;
2331
2445
  } else if ( (*p) >= 65 )
2332
- goto tr124;
2446
+ goto tr136;
2333
2447
  } else
2334
- goto tr124;
2335
- goto tr162;
2336
- tr130:
2448
+ goto tr136;
2449
+ goto tr174;
2450
+ tr142:
2337
2451
  #line 1 "wikitext_ragel.rl"
2338
2452
  {te = p+1;}
2339
- #line 427 "wikitext_ragel.rl"
2340
- {act = 43;}
2341
- goto st128;
2342
- st128:
2453
+ #line 442 "wikitext_ragel.rl"
2454
+ {act = 44;}
2455
+ goto st140;
2456
+ st140:
2343
2457
  if ( ++p == pe )
2344
- goto _test_eof128;
2345
- case 128:
2346
- #line 2347 "wikitext_ragel.c"
2458
+ goto _test_eof140;
2459
+ case 140:
2460
+ #line 2461 "wikitext_ragel.c"
2347
2461
  switch( (*p) ) {
2348
2462
  case 64: goto st21;
2349
- case 65: goto tr182;
2463
+ case 65: goto tr195;
2350
2464
  case 95: goto st20;
2351
- case 97: goto tr182;
2465
+ case 97: goto tr195;
2352
2466
  }
2353
2467
  if ( (*p) < 48 ) {
2354
2468
  if ( 45 <= (*p) && (*p) <= 46 )
@@ -2356,28 +2470,28 @@ case 128:
2356
2470
  } else if ( (*p) > 57 ) {
2357
2471
  if ( (*p) > 90 ) {
2358
2472
  if ( 98 <= (*p) && (*p) <= 122 )
2359
- goto tr124;
2473
+ goto tr136;
2360
2474
  } else if ( (*p) >= 66 )
2361
- goto tr124;
2475
+ goto tr136;
2362
2476
  } else
2363
- goto tr124;
2364
- goto tr162;
2365
- tr182:
2477
+ goto tr136;
2478
+ goto tr174;
2479
+ tr195:
2366
2480
  #line 1 "wikitext_ragel.rl"
2367
2481
  {te = p+1;}
2368
- #line 427 "wikitext_ragel.rl"
2369
- {act = 43;}
2370
- goto st129;
2371
- st129:
2482
+ #line 442 "wikitext_ragel.rl"
2483
+ {act = 44;}
2484
+ goto st141;
2485
+ st141:
2372
2486
  if ( ++p == pe )
2373
- goto _test_eof129;
2374
- case 129:
2375
- #line 2376 "wikitext_ragel.c"
2487
+ goto _test_eof141;
2488
+ case 141:
2489
+ #line 2490 "wikitext_ragel.c"
2376
2490
  switch( (*p) ) {
2377
2491
  case 64: goto st21;
2378
- case 73: goto tr183;
2492
+ case 73: goto tr196;
2379
2493
  case 95: goto st20;
2380
- case 105: goto tr183;
2494
+ case 105: goto tr196;
2381
2495
  }
2382
2496
  if ( (*p) < 48 ) {
2383
2497
  if ( 45 <= (*p) && (*p) <= 46 )
@@ -2385,28 +2499,28 @@ case 129:
2385
2499
  } else if ( (*p) > 57 ) {
2386
2500
  if ( (*p) > 90 ) {
2387
2501
  if ( 97 <= (*p) && (*p) <= 122 )
2388
- goto tr124;
2502
+ goto tr136;
2389
2503
  } else if ( (*p) >= 65 )
2390
- goto tr124;
2504
+ goto tr136;
2391
2505
  } else
2392
- goto tr124;
2393
- goto tr162;
2394
- tr183:
2506
+ goto tr136;
2507
+ goto tr174;
2508
+ tr196:
2395
2509
  #line 1 "wikitext_ragel.rl"
2396
2510
  {te = p+1;}
2397
- #line 427 "wikitext_ragel.rl"
2398
- {act = 43;}
2399
- goto st130;
2400
- st130:
2511
+ #line 442 "wikitext_ragel.rl"
2512
+ {act = 44;}
2513
+ goto st142;
2514
+ st142:
2401
2515
  if ( ++p == pe )
2402
- goto _test_eof130;
2403
- case 130:
2404
- #line 2405 "wikitext_ragel.c"
2516
+ goto _test_eof142;
2517
+ case 142:
2518
+ #line 2519 "wikitext_ragel.c"
2405
2519
  switch( (*p) ) {
2406
2520
  case 64: goto st21;
2407
- case 76: goto tr184;
2521
+ case 76: goto tr197;
2408
2522
  case 95: goto st20;
2409
- case 108: goto tr184;
2523
+ case 108: goto tr197;
2410
2524
  }
2411
2525
  if ( (*p) < 48 ) {
2412
2526
  if ( 45 <= (*p) && (*p) <= 46 )
@@ -2414,28 +2528,28 @@ case 130:
2414
2528
  } else if ( (*p) > 57 ) {
2415
2529
  if ( (*p) > 90 ) {
2416
2530
  if ( 97 <= (*p) && (*p) <= 122 )
2417
- goto tr124;
2531
+ goto tr136;
2418
2532
  } else if ( (*p) >= 65 )
2419
- goto tr124;
2533
+ goto tr136;
2420
2534
  } else
2421
- goto tr124;
2422
- goto tr162;
2423
- tr184:
2535
+ goto tr136;
2536
+ goto tr174;
2537
+ tr197:
2424
2538
  #line 1 "wikitext_ragel.rl"
2425
2539
  {te = p+1;}
2426
- #line 427 "wikitext_ragel.rl"
2427
- {act = 43;}
2428
- goto st131;
2429
- st131:
2540
+ #line 442 "wikitext_ragel.rl"
2541
+ {act = 44;}
2542
+ goto st143;
2543
+ st143:
2430
2544
  if ( ++p == pe )
2431
- goto _test_eof131;
2432
- case 131:
2433
- #line 2434 "wikitext_ragel.c"
2545
+ goto _test_eof143;
2546
+ case 143:
2547
+ #line 2548 "wikitext_ragel.c"
2434
2548
  switch( (*p) ) {
2435
2549
  case 64: goto st21;
2436
- case 84: goto tr185;
2550
+ case 84: goto tr198;
2437
2551
  case 95: goto st20;
2438
- case 116: goto tr185;
2552
+ case 116: goto tr198;
2439
2553
  }
2440
2554
  if ( (*p) < 48 ) {
2441
2555
  if ( 45 <= (*p) && (*p) <= 46 )
@@ -2443,28 +2557,28 @@ case 131:
2443
2557
  } else if ( (*p) > 57 ) {
2444
2558
  if ( (*p) > 90 ) {
2445
2559
  if ( 97 <= (*p) && (*p) <= 122 )
2446
- goto tr124;
2560
+ goto tr136;
2447
2561
  } else if ( (*p) >= 65 )
2448
- goto tr124;
2562
+ goto tr136;
2449
2563
  } else
2450
- goto tr124;
2451
- goto tr162;
2452
- tr185:
2564
+ goto tr136;
2565
+ goto tr174;
2566
+ tr198:
2453
2567
  #line 1 "wikitext_ragel.rl"
2454
2568
  {te = p+1;}
2455
- #line 427 "wikitext_ragel.rl"
2456
- {act = 43;}
2457
- goto st132;
2458
- st132:
2569
+ #line 442 "wikitext_ragel.rl"
2570
+ {act = 44;}
2571
+ goto st144;
2572
+ st144:
2459
2573
  if ( ++p == pe )
2460
- goto _test_eof132;
2461
- case 132:
2462
- #line 2463 "wikitext_ragel.c"
2574
+ goto _test_eof144;
2575
+ case 144:
2576
+ #line 2577 "wikitext_ragel.c"
2463
2577
  switch( (*p) ) {
2464
2578
  case 64: goto st21;
2465
- case 79: goto tr186;
2579
+ case 79: goto tr199;
2466
2580
  case 95: goto st20;
2467
- case 111: goto tr186;
2581
+ case 111: goto tr199;
2468
2582
  }
2469
2583
  if ( (*p) < 48 ) {
2470
2584
  if ( 45 <= (*p) && (*p) <= 46 )
@@ -2472,25 +2586,25 @@ case 132:
2472
2586
  } else if ( (*p) > 57 ) {
2473
2587
  if ( (*p) > 90 ) {
2474
2588
  if ( 97 <= (*p) && (*p) <= 122 )
2475
- goto tr124;
2589
+ goto tr136;
2476
2590
  } else if ( (*p) >= 65 )
2477
- goto tr124;
2591
+ goto tr136;
2478
2592
  } else
2479
- goto tr124;
2480
- goto tr162;
2481
- tr186:
2593
+ goto tr136;
2594
+ goto tr174;
2595
+ tr199:
2482
2596
  #line 1 "wikitext_ragel.rl"
2483
2597
  {te = p+1;}
2484
- #line 427 "wikitext_ragel.rl"
2485
- {act = 43;}
2486
- goto st133;
2487
- st133:
2598
+ #line 442 "wikitext_ragel.rl"
2599
+ {act = 44;}
2600
+ goto st145;
2601
+ st145:
2488
2602
  if ( ++p == pe )
2489
- goto _test_eof133;
2490
- case 133:
2491
- #line 2492 "wikitext_ragel.c"
2603
+ goto _test_eof145;
2604
+ case 145:
2605
+ #line 2606 "wikitext_ragel.c"
2492
2606
  switch( (*p) ) {
2493
- case 58: goto st88;
2607
+ case 58: goto st100;
2494
2608
  case 64: goto st21;
2495
2609
  case 95: goto st20;
2496
2610
  }
@@ -2500,210 +2614,210 @@ case 133:
2500
2614
  } else if ( (*p) > 57 ) {
2501
2615
  if ( (*p) > 90 ) {
2502
2616
  if ( 97 <= (*p) && (*p) <= 122 )
2503
- goto tr124;
2617
+ goto tr136;
2504
2618
  } else if ( (*p) >= 65 )
2505
- goto tr124;
2619
+ goto tr136;
2506
2620
  } else
2507
- goto tr124;
2508
- goto tr162;
2509
- st88:
2621
+ goto tr136;
2622
+ goto tr174;
2623
+ st100:
2510
2624
  if ( ++p == pe )
2511
- goto _test_eof88;
2512
- case 88:
2625
+ goto _test_eof100;
2626
+ case 100:
2513
2627
  if ( (*p) == 95 )
2514
- goto st89;
2628
+ goto st101;
2515
2629
  if ( (*p) < 48 ) {
2516
2630
  if ( 45 <= (*p) && (*p) <= 46 )
2517
- goto st89;
2631
+ goto st101;
2518
2632
  } else if ( (*p) > 57 ) {
2519
2633
  if ( (*p) > 90 ) {
2520
2634
  if ( 97 <= (*p) && (*p) <= 122 )
2521
- goto st89;
2635
+ goto st101;
2522
2636
  } else if ( (*p) >= 65 )
2523
- goto st89;
2637
+ goto st101;
2524
2638
  } else
2525
- goto st89;
2526
- goto tr95;
2527
- st89:
2639
+ goto st101;
2640
+ goto tr107;
2641
+ st101:
2528
2642
  if ( ++p == pe )
2529
- goto _test_eof89;
2530
- case 89:
2643
+ goto _test_eof101;
2644
+ case 101:
2531
2645
  switch( (*p) ) {
2532
- case 64: goto st90;
2533
- case 95: goto st89;
2646
+ case 64: goto st102;
2647
+ case 95: goto st101;
2534
2648
  }
2535
2649
  if ( (*p) < 48 ) {
2536
2650
  if ( 45 <= (*p) && (*p) <= 46 )
2537
- goto st89;
2651
+ goto st101;
2538
2652
  } else if ( (*p) > 57 ) {
2539
2653
  if ( (*p) > 90 ) {
2540
2654
  if ( 97 <= (*p) && (*p) <= 122 )
2541
- goto st89;
2655
+ goto st101;
2542
2656
  } else if ( (*p) >= 65 )
2543
- goto st89;
2657
+ goto st101;
2544
2658
  } else
2545
- goto st89;
2546
- goto tr95;
2547
- st90:
2659
+ goto st101;
2660
+ goto tr107;
2661
+ st102:
2548
2662
  if ( ++p == pe )
2549
- goto _test_eof90;
2550
- case 90:
2663
+ goto _test_eof102;
2664
+ case 102:
2551
2665
  if ( (*p) < 65 ) {
2552
2666
  if ( 48 <= (*p) && (*p) <= 57 )
2553
- goto st91;
2667
+ goto st103;
2554
2668
  } else if ( (*p) > 90 ) {
2555
2669
  if ( 97 <= (*p) && (*p) <= 122 )
2556
- goto st91;
2670
+ goto st103;
2557
2671
  } else
2558
- goto st91;
2559
- goto tr95;
2560
- st91:
2672
+ goto st103;
2673
+ goto tr107;
2674
+ st103:
2561
2675
  if ( ++p == pe )
2562
- goto _test_eof91;
2563
- case 91:
2676
+ goto _test_eof103;
2677
+ case 103:
2564
2678
  if ( (*p) == 46 )
2565
- goto st92;
2679
+ goto st104;
2566
2680
  if ( (*p) < 65 ) {
2567
2681
  if ( 48 <= (*p) && (*p) <= 57 )
2568
- goto st91;
2682
+ goto st103;
2569
2683
  } else if ( (*p) > 90 ) {
2570
2684
  if ( 97 <= (*p) && (*p) <= 122 )
2571
- goto st91;
2685
+ goto st103;
2572
2686
  } else
2573
- goto st91;
2687
+ goto st103;
2574
2688
  goto tr23;
2575
- st92:
2689
+ st104:
2576
2690
  if ( ++p == pe )
2577
- goto _test_eof92;
2578
- case 92:
2691
+ goto _test_eof104;
2692
+ case 104:
2579
2693
  if ( (*p) < 65 ) {
2580
2694
  if ( 48 <= (*p) && (*p) <= 57 )
2581
- goto st91;
2695
+ goto st103;
2582
2696
  } else if ( (*p) > 90 ) {
2583
2697
  if ( 97 <= (*p) && (*p) <= 122 )
2584
- goto st93;
2698
+ goto st105;
2585
2699
  } else
2586
- goto st93;
2700
+ goto st105;
2587
2701
  goto tr23;
2588
- st93:
2702
+ st105:
2589
2703
  if ( ++p == pe )
2590
- goto _test_eof93;
2591
- case 93:
2704
+ goto _test_eof105;
2705
+ case 105:
2592
2706
  if ( (*p) == 46 )
2593
- goto st92;
2707
+ goto st104;
2594
2708
  if ( (*p) < 65 ) {
2595
2709
  if ( 48 <= (*p) && (*p) <= 57 )
2596
- goto st91;
2710
+ goto st103;
2597
2711
  } else if ( (*p) > 90 ) {
2598
2712
  if ( 97 <= (*p) && (*p) <= 122 )
2599
- goto tr106;
2713
+ goto tr118;
2600
2714
  } else
2601
- goto tr106;
2715
+ goto tr118;
2602
2716
  goto tr23;
2603
- tr106:
2717
+ tr118:
2604
2718
  #line 1 "wikitext_ragel.rl"
2605
2719
  {te = p+1;}
2606
- #line 282 "wikitext_ragel.rl"
2607
- {act = 20;}
2608
- goto st134;
2609
- st134:
2720
+ #line 297 "wikitext_ragel.rl"
2721
+ {act = 21;}
2722
+ goto st146;
2723
+ st146:
2610
2724
  if ( ++p == pe )
2611
- goto _test_eof134;
2612
- case 134:
2613
- #line 2614 "wikitext_ragel.c"
2725
+ goto _test_eof146;
2726
+ case 146:
2727
+ #line 2728 "wikitext_ragel.c"
2614
2728
  if ( (*p) == 46 )
2615
- goto st92;
2729
+ goto st104;
2616
2730
  if ( (*p) < 65 ) {
2617
2731
  if ( 48 <= (*p) && (*p) <= 57 )
2618
- goto st91;
2732
+ goto st103;
2619
2733
  } else if ( (*p) > 90 ) {
2620
2734
  if ( 97 <= (*p) && (*p) <= 122 )
2621
- goto tr188;
2735
+ goto tr201;
2622
2736
  } else
2623
- goto tr188;
2624
- goto tr178;
2625
- tr188:
2737
+ goto tr201;
2738
+ goto tr191;
2739
+ tr201:
2626
2740
  #line 1 "wikitext_ragel.rl"
2627
2741
  {te = p+1;}
2628
- #line 282 "wikitext_ragel.rl"
2629
- {act = 20;}
2630
- goto st135;
2631
- st135:
2742
+ #line 297 "wikitext_ragel.rl"
2743
+ {act = 21;}
2744
+ goto st147;
2745
+ st147:
2632
2746
  if ( ++p == pe )
2633
- goto _test_eof135;
2634
- case 135:
2635
- #line 2636 "wikitext_ragel.c"
2747
+ goto _test_eof147;
2748
+ case 147:
2749
+ #line 2750 "wikitext_ragel.c"
2636
2750
  if ( (*p) == 46 )
2637
- goto st92;
2751
+ goto st104;
2638
2752
  if ( (*p) < 65 ) {
2639
2753
  if ( 48 <= (*p) && (*p) <= 57 )
2640
- goto st91;
2754
+ goto st103;
2641
2755
  } else if ( (*p) > 90 ) {
2642
2756
  if ( 97 <= (*p) && (*p) <= 122 )
2643
- goto tr189;
2757
+ goto tr202;
2644
2758
  } else
2645
- goto tr189;
2646
- goto tr178;
2647
- tr189:
2759
+ goto tr202;
2760
+ goto tr191;
2761
+ tr202:
2648
2762
  #line 1 "wikitext_ragel.rl"
2649
2763
  {te = p+1;}
2650
- #line 282 "wikitext_ragel.rl"
2651
- {act = 20;}
2652
- goto st136;
2653
- st136:
2764
+ #line 297 "wikitext_ragel.rl"
2765
+ {act = 21;}
2766
+ goto st148;
2767
+ st148:
2654
2768
  if ( ++p == pe )
2655
- goto _test_eof136;
2656
- case 136:
2657
- #line 2658 "wikitext_ragel.c"
2769
+ goto _test_eof148;
2770
+ case 148:
2771
+ #line 2772 "wikitext_ragel.c"
2658
2772
  if ( (*p) == 46 )
2659
- goto st92;
2773
+ goto st104;
2660
2774
  if ( (*p) < 65 ) {
2661
2775
  if ( 48 <= (*p) && (*p) <= 57 )
2662
- goto st91;
2776
+ goto st103;
2663
2777
  } else if ( (*p) > 90 ) {
2664
2778
  if ( 97 <= (*p) && (*p) <= 122 )
2665
- goto tr190;
2779
+ goto tr203;
2666
2780
  } else
2667
- goto tr190;
2668
- goto tr178;
2669
- tr190:
2781
+ goto tr203;
2782
+ goto tr191;
2783
+ tr203:
2670
2784
  #line 1 "wikitext_ragel.rl"
2671
2785
  {te = p+1;}
2672
- #line 282 "wikitext_ragel.rl"
2673
- {act = 20;}
2674
- goto st137;
2675
- st137:
2786
+ #line 297 "wikitext_ragel.rl"
2787
+ {act = 21;}
2788
+ goto st149;
2789
+ st149:
2676
2790
  if ( ++p == pe )
2677
- goto _test_eof137;
2678
- case 137:
2679
- #line 2680 "wikitext_ragel.c"
2791
+ goto _test_eof149;
2792
+ case 149:
2793
+ #line 2794 "wikitext_ragel.c"
2680
2794
  if ( (*p) == 46 )
2681
- goto st92;
2795
+ goto st104;
2682
2796
  if ( (*p) < 65 ) {
2683
2797
  if ( 48 <= (*p) && (*p) <= 57 )
2684
- goto st91;
2798
+ goto st103;
2685
2799
  } else if ( (*p) > 90 ) {
2686
2800
  if ( 97 <= (*p) && (*p) <= 122 )
2687
- goto st91;
2801
+ goto st103;
2688
2802
  } else
2689
- goto st91;
2690
- goto tr178;
2691
- tr131:
2803
+ goto st103;
2804
+ goto tr191;
2805
+ tr143:
2692
2806
  #line 1 "wikitext_ragel.rl"
2693
2807
  {te = p+1;}
2694
- #line 427 "wikitext_ragel.rl"
2695
- {act = 43;}
2696
- goto st138;
2697
- st138:
2808
+ #line 442 "wikitext_ragel.rl"
2809
+ {act = 44;}
2810
+ goto st150;
2811
+ st150:
2698
2812
  if ( ++p == pe )
2699
- goto _test_eof138;
2700
- case 138:
2701
- #line 2702 "wikitext_ragel.c"
2813
+ goto _test_eof150;
2814
+ case 150:
2815
+ #line 2816 "wikitext_ragel.c"
2702
2816
  switch( (*p) ) {
2703
2817
  case 64: goto st21;
2704
- case 86: goto tr191;
2818
+ case 86: goto tr204;
2705
2819
  case 95: goto st20;
2706
- case 118: goto tr191;
2820
+ case 118: goto tr204;
2707
2821
  }
2708
2822
  if ( (*p) < 48 ) {
2709
2823
  if ( 45 <= (*p) && (*p) <= 46 )
@@ -2711,28 +2825,28 @@ case 138:
2711
2825
  } else if ( (*p) > 57 ) {
2712
2826
  if ( (*p) > 90 ) {
2713
2827
  if ( 97 <= (*p) && (*p) <= 122 )
2714
- goto tr124;
2828
+ goto tr136;
2715
2829
  } else if ( (*p) >= 65 )
2716
- goto tr124;
2830
+ goto tr136;
2717
2831
  } else
2718
- goto tr124;
2719
- goto tr162;
2720
- tr191:
2832
+ goto tr136;
2833
+ goto tr174;
2834
+ tr204:
2721
2835
  #line 1 "wikitext_ragel.rl"
2722
2836
  {te = p+1;}
2723
- #line 427 "wikitext_ragel.rl"
2724
- {act = 43;}
2725
- goto st139;
2726
- st139:
2837
+ #line 442 "wikitext_ragel.rl"
2838
+ {act = 44;}
2839
+ goto st151;
2840
+ st151:
2727
2841
  if ( ++p == pe )
2728
- goto _test_eof139;
2729
- case 139:
2730
- #line 2731 "wikitext_ragel.c"
2842
+ goto _test_eof151;
2843
+ case 151:
2844
+ #line 2845 "wikitext_ragel.c"
2731
2845
  switch( (*p) ) {
2732
2846
  case 64: goto st21;
2733
- case 78: goto tr176;
2847
+ case 78: goto tr189;
2734
2848
  case 95: goto st20;
2735
- case 110: goto tr176;
2849
+ case 110: goto tr189;
2736
2850
  }
2737
2851
  if ( (*p) < 48 ) {
2738
2852
  if ( 45 <= (*p) && (*p) <= 46 )
@@ -2740,53 +2854,53 @@ case 139:
2740
2854
  } else if ( (*p) > 57 ) {
2741
2855
  if ( (*p) > 90 ) {
2742
2856
  if ( 97 <= (*p) && (*p) <= 122 )
2743
- goto tr124;
2857
+ goto tr136;
2744
2858
  } else if ( (*p) >= 65 )
2745
- goto tr124;
2859
+ goto tr136;
2746
2860
  } else
2747
- goto tr124;
2748
- goto tr162;
2749
- st140:
2861
+ goto tr136;
2862
+ goto tr174;
2863
+ st152:
2750
2864
  if ( ++p == pe )
2751
- goto _test_eof140;
2752
- case 140:
2865
+ goto _test_eof152;
2866
+ case 152:
2753
2867
  if ( (*p) == 91 )
2754
- goto tr193;
2755
- goto tr192;
2756
- st141:
2868
+ goto tr206;
2869
+ goto tr205;
2870
+ st153:
2757
2871
  if ( ++p == pe )
2758
- goto _test_eof141;
2759
- case 141:
2872
+ goto _test_eof153;
2873
+ case 153:
2760
2874
  if ( (*p) == 93 )
2761
- goto tr195;
2762
- goto tr194;
2763
- st142:
2875
+ goto tr208;
2876
+ goto tr207;
2877
+ st154:
2764
2878
  if ( ++p == pe )
2765
- goto _test_eof142;
2766
- case 142:
2879
+ goto _test_eof154;
2880
+ case 154:
2767
2881
  if ( (*p) == 123 )
2768
- goto tr197;
2769
- goto tr196;
2770
- st143:
2882
+ goto tr210;
2883
+ goto tr209;
2884
+ st155:
2771
2885
  if ( ++p == pe )
2772
- goto _test_eof143;
2773
- case 143:
2886
+ goto _test_eof155;
2887
+ case 155:
2774
2888
  if ( (*p) == 125 )
2775
- goto tr199;
2776
- goto tr198;
2889
+ goto tr212;
2890
+ goto tr211;
2777
2891
  }
2778
- _test_eof94: cs = 94; goto _test_eof;
2892
+ _test_eof106: cs = 106; goto _test_eof;
2779
2893
  _test_eof1: cs = 1; goto _test_eof;
2780
2894
  _test_eof2: cs = 2; goto _test_eof;
2781
2895
  _test_eof3: cs = 3; goto _test_eof;
2782
2896
  _test_eof4: cs = 4; goto _test_eof;
2783
2897
  _test_eof5: cs = 5; goto _test_eof;
2784
2898
  _test_eof6: cs = 6; goto _test_eof;
2785
- _test_eof95: cs = 95; goto _test_eof;
2786
- _test_eof96: cs = 96; goto _test_eof;
2787
- _test_eof97: cs = 97; goto _test_eof;
2788
- _test_eof98: cs = 98; goto _test_eof;
2789
- _test_eof99: cs = 99; goto _test_eof;
2899
+ _test_eof107: cs = 107; goto _test_eof;
2900
+ _test_eof108: cs = 108; goto _test_eof;
2901
+ _test_eof109: cs = 109; goto _test_eof;
2902
+ _test_eof110: cs = 110; goto _test_eof;
2903
+ _test_eof111: cs = 111; goto _test_eof;
2790
2904
  _test_eof7: cs = 7; goto _test_eof;
2791
2905
  _test_eof8: cs = 8; goto _test_eof;
2792
2906
  _test_eof9: cs = 9; goto _test_eof;
@@ -2800,28 +2914,28 @@ case 143:
2800
2914
  _test_eof17: cs = 17; goto _test_eof;
2801
2915
  _test_eof18: cs = 18; goto _test_eof;
2802
2916
  _test_eof19: cs = 19; goto _test_eof;
2803
- _test_eof100: cs = 100; goto _test_eof;
2804
- _test_eof101: cs = 101; goto _test_eof;
2805
- _test_eof102: cs = 102; goto _test_eof;
2806
- _test_eof103: cs = 103; goto _test_eof;
2807
- _test_eof104: cs = 104; goto _test_eof;
2808
- _test_eof20: cs = 20; goto _test_eof;
2809
- _test_eof21: cs = 21; goto _test_eof;
2810
- _test_eof22: cs = 22; goto _test_eof;
2811
- _test_eof23: cs = 23; goto _test_eof;
2812
- _test_eof24: cs = 24; goto _test_eof;
2813
- _test_eof105: cs = 105; goto _test_eof;
2814
- _test_eof106: cs = 106; goto _test_eof;
2815
- _test_eof107: cs = 107; goto _test_eof;
2816
- _test_eof108: cs = 108; goto _test_eof;
2817
- _test_eof109: cs = 109; goto _test_eof;
2818
- _test_eof110: cs = 110; goto _test_eof;
2819
- _test_eof111: cs = 111; goto _test_eof;
2820
2917
  _test_eof112: cs = 112; goto _test_eof;
2821
2918
  _test_eof113: cs = 113; goto _test_eof;
2822
2919
  _test_eof114: cs = 114; goto _test_eof;
2823
2920
  _test_eof115: cs = 115; goto _test_eof;
2824
2921
  _test_eof116: cs = 116; goto _test_eof;
2922
+ _test_eof20: cs = 20; goto _test_eof;
2923
+ _test_eof21: cs = 21; goto _test_eof;
2924
+ _test_eof22: cs = 22; goto _test_eof;
2925
+ _test_eof23: cs = 23; goto _test_eof;
2926
+ _test_eof24: cs = 24; goto _test_eof;
2927
+ _test_eof117: cs = 117; goto _test_eof;
2928
+ _test_eof118: cs = 118; goto _test_eof;
2929
+ _test_eof119: cs = 119; goto _test_eof;
2930
+ _test_eof120: cs = 120; goto _test_eof;
2931
+ _test_eof121: cs = 121; goto _test_eof;
2932
+ _test_eof122: cs = 122; goto _test_eof;
2933
+ _test_eof123: cs = 123; goto _test_eof;
2934
+ _test_eof124: cs = 124; goto _test_eof;
2935
+ _test_eof125: cs = 125; goto _test_eof;
2936
+ _test_eof126: cs = 126; goto _test_eof;
2937
+ _test_eof127: cs = 127; goto _test_eof;
2938
+ _test_eof128: cs = 128; goto _test_eof;
2825
2939
  _test_eof25: cs = 25; goto _test_eof;
2826
2940
  _test_eof26: cs = 26; goto _test_eof;
2827
2941
  _test_eof27: cs = 27; goto _test_eof;
@@ -2881,35 +2995,29 @@ case 143:
2881
2995
  _test_eof81: cs = 81; goto _test_eof;
2882
2996
  _test_eof82: cs = 82; goto _test_eof;
2883
2997
  _test_eof83: cs = 83; goto _test_eof;
2884
- _test_eof117: cs = 117; goto _test_eof;
2885
- _test_eof118: cs = 118; goto _test_eof;
2886
- _test_eof119: cs = 119; goto _test_eof;
2887
- _test_eof120: cs = 120; goto _test_eof;
2888
- _test_eof121: cs = 121; goto _test_eof;
2889
- _test_eof122: cs = 122; goto _test_eof;
2890
2998
  _test_eof84: cs = 84; goto _test_eof;
2891
2999
  _test_eof85: cs = 85; goto _test_eof;
2892
3000
  _test_eof86: cs = 86; goto _test_eof;
2893
- _test_eof123: cs = 123; goto _test_eof;
2894
3001
  _test_eof87: cs = 87; goto _test_eof;
2895
- _test_eof124: cs = 124; goto _test_eof;
2896
- _test_eof125: cs = 125; goto _test_eof;
2897
- _test_eof126: cs = 126; goto _test_eof;
2898
- _test_eof127: cs = 127; goto _test_eof;
2899
- _test_eof128: cs = 128; goto _test_eof;
2900
- _test_eof129: cs = 129; goto _test_eof;
2901
- _test_eof130: cs = 130; goto _test_eof;
2902
- _test_eof131: cs = 131; goto _test_eof;
2903
- _test_eof132: cs = 132; goto _test_eof;
2904
- _test_eof133: cs = 133; goto _test_eof;
2905
3002
  _test_eof88: cs = 88; goto _test_eof;
2906
3003
  _test_eof89: cs = 89; goto _test_eof;
2907
3004
  _test_eof90: cs = 90; goto _test_eof;
2908
3005
  _test_eof91: cs = 91; goto _test_eof;
2909
3006
  _test_eof92: cs = 92; goto _test_eof;
2910
3007
  _test_eof93: cs = 93; goto _test_eof;
3008
+ _test_eof94: cs = 94; goto _test_eof;
3009
+ _test_eof95: cs = 95; goto _test_eof;
3010
+ _test_eof129: cs = 129; goto _test_eof;
3011
+ _test_eof130: cs = 130; goto _test_eof;
3012
+ _test_eof131: cs = 131; goto _test_eof;
3013
+ _test_eof132: cs = 132; goto _test_eof;
3014
+ _test_eof133: cs = 133; goto _test_eof;
2911
3015
  _test_eof134: cs = 134; goto _test_eof;
3016
+ _test_eof96: cs = 96; goto _test_eof;
3017
+ _test_eof97: cs = 97; goto _test_eof;
3018
+ _test_eof98: cs = 98; goto _test_eof;
2912
3019
  _test_eof135: cs = 135; goto _test_eof;
3020
+ _test_eof99: cs = 99; goto _test_eof;
2913
3021
  _test_eof136: cs = 136; goto _test_eof;
2914
3022
  _test_eof137: cs = 137; goto _test_eof;
2915
3023
  _test_eof138: cs = 138; goto _test_eof;
@@ -2918,16 +3026,34 @@ case 143:
2918
3026
  _test_eof141: cs = 141; goto _test_eof;
2919
3027
  _test_eof142: cs = 142; goto _test_eof;
2920
3028
  _test_eof143: cs = 143; goto _test_eof;
3029
+ _test_eof144: cs = 144; goto _test_eof;
3030
+ _test_eof145: cs = 145; goto _test_eof;
3031
+ _test_eof100: cs = 100; goto _test_eof;
3032
+ _test_eof101: cs = 101; goto _test_eof;
3033
+ _test_eof102: cs = 102; goto _test_eof;
3034
+ _test_eof103: cs = 103; goto _test_eof;
3035
+ _test_eof104: cs = 104; goto _test_eof;
3036
+ _test_eof105: cs = 105; goto _test_eof;
3037
+ _test_eof146: cs = 146; goto _test_eof;
3038
+ _test_eof147: cs = 147; goto _test_eof;
3039
+ _test_eof148: cs = 148; goto _test_eof;
3040
+ _test_eof149: cs = 149; goto _test_eof;
3041
+ _test_eof150: cs = 150; goto _test_eof;
3042
+ _test_eof151: cs = 151; goto _test_eof;
3043
+ _test_eof152: cs = 152; goto _test_eof;
3044
+ _test_eof153: cs = 153; goto _test_eof;
3045
+ _test_eof154: cs = 154; goto _test_eof;
3046
+ _test_eof155: cs = 155; goto _test_eof;
2921
3047
 
2922
3048
  _test_eof: {}
2923
3049
  if ( p == eof )
2924
3050
  {
2925
3051
  switch ( cs ) {
2926
- case 95: goto tr138;
2927
- case 96: goto tr140;
2928
- case 97: goto tr142;
2929
- case 98: goto tr143;
2930
- case 99: goto tr144;
3052
+ case 107: goto tr150;
3053
+ case 108: goto tr152;
3054
+ case 109: goto tr154;
3055
+ case 110: goto tr155;
3056
+ case 111: goto tr156;
2931
3057
  case 7: goto tr7;
2932
3058
  case 8: goto tr7;
2933
3059
  case 9: goto tr7;
@@ -2941,28 +3067,28 @@ case 143:
2941
3067
  case 17: goto tr7;
2942
3068
  case 18: goto tr7;
2943
3069
  case 19: goto tr7;
2944
- case 100: goto tr148;
2945
- case 101: goto tr148;
2946
- case 102: goto tr148;
2947
- case 103: goto tr148;
2948
- case 104: goto tr143;
3070
+ case 112: goto tr160;
3071
+ case 113: goto tr160;
3072
+ case 114: goto tr160;
3073
+ case 115: goto tr160;
3074
+ case 116: goto tr155;
2949
3075
  case 20: goto tr23;
2950
3076
  case 21: goto tr23;
2951
3077
  case 22: goto tr23;
2952
3078
  case 23: goto tr23;
2953
3079
  case 24: goto tr23;
2954
- case 105: goto tr154;
2955
- case 106: goto tr154;
2956
- case 107: goto tr154;
2957
- case 108: goto tr154;
2958
- case 109: goto tr143;
2959
- case 110: goto tr142;
2960
- case 111: goto tr158;
2961
- case 112: goto tr158;
2962
- case 113: goto tr158;
2963
- case 114: goto tr158;
2964
- case 115: goto tr162;
2965
- case 116: goto tr163;
3080
+ case 117: goto tr166;
3081
+ case 118: goto tr166;
3082
+ case 119: goto tr166;
3083
+ case 120: goto tr166;
3084
+ case 121: goto tr155;
3085
+ case 122: goto tr154;
3086
+ case 123: goto tr170;
3087
+ case 124: goto tr170;
3088
+ case 125: goto tr170;
3089
+ case 126: goto tr170;
3090
+ case 127: goto tr174;
3091
+ case 128: goto tr175;
2966
3092
  case 25: goto tr30;
2967
3093
  case 26: goto tr30;
2968
3094
  case 27: goto tr30;
@@ -3022,50 +3148,62 @@ case 143:
3022
3148
  case 81: goto tr30;
3023
3149
  case 82: goto tr30;
3024
3150
  case 83: goto tr30;
3025
- case 117: goto tr171;
3026
- case 118: goto tr171;
3027
- case 119: goto tr173;
3028
- case 120: goto tr162;
3029
- case 121: goto tr162;
3030
- case 122: goto tr162;
3031
- case 84: goto tr95;
3032
- case 85: goto tr95;
3033
- case 86: goto tr95;
3034
- case 123: goto tr178;
3035
- case 87: goto tr99;
3036
- case 124: goto tr162;
3037
- case 125: goto tr162;
3038
- case 126: goto tr162;
3039
- case 127: goto tr162;
3040
- case 128: goto tr162;
3041
- case 129: goto tr162;
3042
- case 130: goto tr162;
3043
- case 131: goto tr162;
3044
- case 132: goto tr162;
3045
- case 133: goto tr162;
3046
- case 88: goto tr95;
3047
- case 89: goto tr95;
3048
- case 90: goto tr95;
3049
- case 91: goto tr23;
3050
- case 92: goto tr23;
3051
- case 93: goto tr23;
3052
- case 134: goto tr178;
3053
- case 135: goto tr178;
3054
- case 136: goto tr178;
3055
- case 137: goto tr178;
3056
- case 138: goto tr162;
3057
- case 139: goto tr162;
3058
- case 140: goto tr192;
3059
- case 141: goto tr194;
3060
- case 142: goto tr196;
3061
- case 143: goto tr198;
3151
+ case 84: goto tr30;
3152
+ case 85: goto tr30;
3153
+ case 86: goto tr30;
3154
+ case 87: goto tr30;
3155
+ case 88: goto tr30;
3156
+ case 89: goto tr30;
3157
+ case 90: goto tr30;
3158
+ case 91: goto tr30;
3159
+ case 92: goto tr30;
3160
+ case 93: goto tr30;
3161
+ case 94: goto tr30;
3162
+ case 95: goto tr30;
3163
+ case 129: goto tr184;
3164
+ case 130: goto tr184;
3165
+ case 131: goto tr186;
3166
+ case 132: goto tr174;
3167
+ case 133: goto tr174;
3168
+ case 134: goto tr174;
3169
+ case 96: goto tr107;
3170
+ case 97: goto tr107;
3171
+ case 98: goto tr107;
3172
+ case 135: goto tr191;
3173
+ case 99: goto tr111;
3174
+ case 136: goto tr174;
3175
+ case 137: goto tr174;
3176
+ case 138: goto tr174;
3177
+ case 139: goto tr174;
3178
+ case 140: goto tr174;
3179
+ case 141: goto tr174;
3180
+ case 142: goto tr174;
3181
+ case 143: goto tr174;
3182
+ case 144: goto tr174;
3183
+ case 145: goto tr174;
3184
+ case 100: goto tr107;
3185
+ case 101: goto tr107;
3186
+ case 102: goto tr107;
3187
+ case 103: goto tr23;
3188
+ case 104: goto tr23;
3189
+ case 105: goto tr23;
3190
+ case 146: goto tr191;
3191
+ case 147: goto tr191;
3192
+ case 148: goto tr191;
3193
+ case 149: goto tr191;
3194
+ case 150: goto tr174;
3195
+ case 151: goto tr174;
3196
+ case 152: goto tr205;
3197
+ case 153: goto tr207;
3198
+ case 154: goto tr209;
3199
+ case 155: goto tr211;
3062
3200
  }
3063
3201
  }
3064
3202
 
3065
3203
  _out: {}
3066
3204
  }
3067
3205
 
3068
- #line 511 "wikitext_ragel.rl"
3206
+ #line 526 "wikitext_ragel.rl"
3069
3207
  if (cs == wikitext_error)
3070
3208
  rb_raise(eWikitextParserError, "failed before finding a token");
3071
3209
  else if (out->type == NO_TOKEN)