wikitext 1.0.3 → 1.1

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/parser.c CHANGED
@@ -158,6 +158,56 @@ VALUE Wikitext_parser_benchmarking_tokenize(VALUE self, VALUE string)
158
158
  return Qnil;
159
159
  }
160
160
 
161
+ VALUE Wikitext_parser_fulltext_tokenize(int argc, VALUE *argv, VALUE self)
162
+ {
163
+ // process arguments
164
+ VALUE string, options;
165
+ if (rb_scan_args(argc, argv, "11", &string, &options) == 1) // 1 mandatory argument, 1 optional argument
166
+ options = Qnil;
167
+ if (NIL_P(string))
168
+ return Qnil;
169
+ string = StringValue(string);
170
+ VALUE tokens = rb_ary_new();
171
+
172
+ // check instance variables
173
+ VALUE min = rb_iv_get(self, "@minimum_fulltext_token_length");
174
+
175
+ // process options hash (can override instance variables)
176
+ if (!NIL_P(options) && TYPE(options) == T_HASH)
177
+ {
178
+ if (rb_funcall(options, rb_intern("has_key?"), 1, ID2SYM(rb_intern("minimum"))) == Qtrue)
179
+ min = rb_hash_aref(options, ID2SYM(rb_intern("minimum")));
180
+ }
181
+ int min_len = NIL_P(min) ? 3 : NUM2INT(min);
182
+ if (min_len < 0)
183
+ min_len = 0;
184
+
185
+ // set up scanner
186
+ char *p = RSTRING_PTR(string);
187
+ long len = RSTRING_LEN(string);
188
+ char *pe = p + len;
189
+ token_t token;
190
+ token_t *_token = &token;
191
+ next_token(&token, NULL, p, pe);
192
+ while (token.type != END_OF_FILE)
193
+ {
194
+ switch (token.type)
195
+ {
196
+ case URI:
197
+ case MAIL:
198
+ case ALNUM:
199
+ if (TOKEN_LEN(_token) >= min_len)
200
+ rb_ary_push(tokens, TOKEN_TEXT(_token));
201
+ break;
202
+ default:
203
+ // ignore everything else
204
+ break;
205
+ }
206
+ next_token(&token, &token, NULL, pe);
207
+ }
208
+ return tokens;
209
+ }
210
+
161
211
  // we downcase "in place", overwriting the original contents of the buffer and returning the same string
162
212
  VALUE _Wikitext_downcase(VALUE string)
163
213
  {
@@ -849,39 +899,42 @@ VALUE Wikitext_parser_initialize(int argc, VALUE *argv, VALUE self)
849
899
  options = Qnil;
850
900
 
851
901
  // defaults
852
- VALUE autolink = Qtrue;
853
- VALUE line_ending = rb_str_new2("\n");
854
- VALUE external_link_class = rb_str_new2("external");
855
- VALUE mailto_class = rb_str_new2("mailto");
856
- VALUE internal_link_prefix = rb_str_new2("/wiki/");
857
- VALUE img_prefix = rb_str_new2("/images/");
858
- VALUE space_to_underscore = Qfalse;
859
- VALUE treat_slash_as_special = Qtrue;
902
+ VALUE autolink = Qtrue;
903
+ VALUE line_ending = rb_str_new2("\n");
904
+ VALUE external_link_class = rb_str_new2("external");
905
+ VALUE mailto_class = rb_str_new2("mailto");
906
+ VALUE internal_link_prefix = rb_str_new2("/wiki/");
907
+ VALUE img_prefix = rb_str_new2("/images/");
908
+ VALUE space_to_underscore = Qfalse;
909
+ VALUE treat_slash_as_special = Qtrue;
910
+ VALUE minimum_fulltext_token_length = INT2NUM(3);
860
911
 
861
912
  // process options hash (override defaults)
862
913
  if (!NIL_P(options) && TYPE(options) == T_HASH)
863
914
  {
864
915
  #define OVERRIDE_IF_SET(name) rb_funcall(options, rb_intern("has_key?"), 1, ID2SYM(rb_intern(#name))) == Qtrue ? \
865
916
  rb_hash_aref(options, ID2SYM(rb_intern(#name))) : name
866
- autolink = OVERRIDE_IF_SET(autolink);
867
- line_ending = OVERRIDE_IF_SET(line_ending);
868
- external_link_class = OVERRIDE_IF_SET(external_link_class);
869
- mailto_class = OVERRIDE_IF_SET(mailto_class);
870
- internal_link_prefix = OVERRIDE_IF_SET(internal_link_prefix);
871
- img_prefix = OVERRIDE_IF_SET(img_prefix);
872
- space_to_underscore = OVERRIDE_IF_SET(space_to_underscore);
873
- treat_slash_as_special = OVERRIDE_IF_SET(treat_slash_as_special);
917
+ autolink = OVERRIDE_IF_SET(autolink);
918
+ line_ending = OVERRIDE_IF_SET(line_ending);
919
+ external_link_class = OVERRIDE_IF_SET(external_link_class);
920
+ mailto_class = OVERRIDE_IF_SET(mailto_class);
921
+ internal_link_prefix = OVERRIDE_IF_SET(internal_link_prefix);
922
+ img_prefix = OVERRIDE_IF_SET(img_prefix);
923
+ space_to_underscore = OVERRIDE_IF_SET(space_to_underscore);
924
+ treat_slash_as_special = OVERRIDE_IF_SET(treat_slash_as_special);
925
+ minimum_fulltext_token_length = OVERRIDE_IF_SET(minimum_fulltext_token_length);
874
926
  }
875
927
 
876
928
  // no need to call super here; rb_call_super()
877
- rb_iv_set(self, "@autolink", autolink);
878
- rb_iv_set(self, "@line_ending", line_ending);
879
- rb_iv_set(self, "@external_link_class", external_link_class);
880
- rb_iv_set(self, "@mailto_class", mailto_class);
881
- rb_iv_set(self, "@internal_link_prefix", internal_link_prefix);
882
- rb_iv_set(self, "@img_prefix", img_prefix);
883
- rb_iv_set(self, "@space_to_underscore", space_to_underscore);
884
- rb_iv_set(self, "@treat_slash_as_special", treat_slash_as_special);
929
+ rb_iv_set(self, "@autolink", autolink);
930
+ rb_iv_set(self, "@line_ending", line_ending);
931
+ rb_iv_set(self, "@external_link_class", external_link_class);
932
+ rb_iv_set(self, "@mailto_class", mailto_class);
933
+ rb_iv_set(self, "@internal_link_prefix", internal_link_prefix);
934
+ rb_iv_set(self, "@img_prefix", img_prefix);
935
+ rb_iv_set(self, "@space_to_underscore", space_to_underscore);
936
+ rb_iv_set(self, "@treat_slash_as_special", treat_slash_as_special);
937
+ rb_iv_set(self, "@minimum_fulltext_token_length", minimum_fulltext_token_length);
885
938
  return self;
886
939
  }
887
940
 
@@ -907,10 +960,13 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
907
960
  VALUE indent = Qnil;
908
961
  if (!NIL_P(options) && TYPE(options) == T_HASH)
909
962
  {
910
- indent = rb_hash_aref(options, ID2SYM(rb_intern("indent")));
911
- base_indent = NUM2INT(indent);
912
- if (base_indent < 0)
913
- base_indent = 0;
963
+ if (rb_funcall(options, rb_intern("has_key?"), 1, ID2SYM(rb_intern("indent"))) == Qtrue)
964
+ {
965
+ indent = rb_hash_aref(options, ID2SYM(rb_intern("indent")));
966
+ base_indent = NUM2INT(indent);
967
+ if (base_indent < 0)
968
+ base_indent = 0;
969
+ }
914
970
  }
915
971
 
916
972
  // set up scanner
@@ -1912,7 +1968,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1912
1968
  // example [[foo €]]
1913
1969
  // renders <a href="/wiki/Foo_%E2%82%AC">foo €</a>
1914
1970
  // we'll impose similar restrictions here for the link target; allowed tokens will be:
1915
- // SPACE, SPECIAL_URI_CHARS, PRINTABLE, DEFAULT, QUOT and AMP
1971
+ // SPACE, SPECIAL_URI_CHARS, PRINTABLE, ALNUM, DEFAULT, QUOT and AMP
1916
1972
  // everything else will be rejected
1917
1973
  case LINK_START:
1918
1974
  i = NIL_P(parser->capture) ? parser->output : parser->capture;
@@ -1947,6 +2003,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
1947
2003
  if (type == SPACE ||
1948
2004
  type == SPECIAL_URI_CHARS ||
1949
2005
  type == PRINTABLE ||
2006
+ type == ALNUM ||
1950
2007
  type == DEFAULT ||
1951
2008
  type == QUOT ||
1952
2009
  type == QUOT_ENTITY ||
@@ -2218,13 +2275,13 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
2218
2275
  _Wikitext_pop_excess_elements(parser);
2219
2276
  _Wikitext_start_para_if_necessary(parser);
2220
2277
 
2221
- // scan ahead consuming PRINTABLE and SPECIAL_URI_CHARS tokens
2278
+ // scan ahead consuming PRINTABLE, ALNUM and SPECIAL_URI_CHARS tokens
2222
2279
  // will cheat here and abuse the link_target capture buffer to accumulate text
2223
2280
  if (NIL_P(parser->link_target))
2224
2281
  parser->link_target = rb_str_new2("");
2225
2282
  while (NEXT_TOKEN(), (type = token->type))
2226
2283
  {
2227
- if (type == PRINTABLE || type == SPECIAL_URI_CHARS)
2284
+ if (type == PRINTABLE || type == ALNUM || type == SPECIAL_URI_CHARS)
2228
2285
  rb_str_cat(parser->link_target, token->start, TOKEN_LEN(token));
2229
2286
  else if (type == IMG_END)
2230
2287
  {
@@ -2332,6 +2389,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
2332
2389
 
2333
2390
  case SPECIAL_URI_CHARS:
2334
2391
  case PRINTABLE:
2392
+ case ALNUM:
2335
2393
  case IMG_END:
2336
2394
  case LEFT_CURLY:
2337
2395
  case RIGHT_CURLY:
data/ext/parser.h CHANGED
@@ -20,6 +20,8 @@ VALUE Wikitext_parser_tokenize(VALUE self, VALUE string);
20
20
 
21
21
  VALUE Wikitext_parser_benchmarking_tokenize(VALUE self, VALUE string);
22
22
 
23
+ VALUE Wikitext_parser_fulltext_tokenize(int argc, VALUE *argv, VALUE self);
24
+
23
25
  VALUE Wikitext_parser_sanitize_link_target(VALUE self, VALUE string);
24
26
 
25
27
  VALUE Wikitext_parser_encode_link_target(VALUE self, VALUE in);
data/ext/token.c CHANGED
@@ -85,6 +85,7 @@ VALUE Wikitext_parser_token_types(VALUE self)
85
85
  SET_TOKEN_TYPE(CRLF);
86
86
  SET_TOKEN_TYPE(SPECIAL_URI_CHARS);
87
87
  SET_TOKEN_TYPE(PRINTABLE);
88
+ SET_TOKEN_TYPE(ALNUM);
88
89
  SET_TOKEN_TYPE(DEFAULT);
89
90
  SET_TOKEN_TYPE(END_OF_FILE);
90
91
 
data/ext/token.h CHANGED
@@ -91,6 +91,7 @@ enum token_types {
91
91
  CRLF,
92
92
  SPECIAL_URI_CHARS,
93
93
  PRINTABLE,
94
+ ALNUM,
94
95
  DEFAULT,
95
96
  END_OF_FILE
96
97
  };
data/ext/wikitext.c CHANGED
@@ -32,6 +32,7 @@ void Init_wikitext()
32
32
  rb_define_method(cWikitextParser, "profiling_parse", Wikitext_parser_profiling_parse, 1);
33
33
  rb_define_method(cWikitextParser, "tokenize", Wikitext_parser_tokenize, 1);
34
34
  rb_define_method(cWikitextParser, "benchmarking_tokenize", Wikitext_parser_benchmarking_tokenize, 1);
35
+ rb_define_method(cWikitextParser, "fulltext_tokenize", Wikitext_parser_fulltext_tokenize, -1);
35
36
  rb_define_singleton_method(cWikitextParser, "sanitize_link_target", Wikitext_parser_sanitize_link_target, 1);
36
37
  rb_define_singleton_method(cWikitextParser, "encode_link_target", Wikitext_parser_encode_link_target, 1);
37
38
  rb_define_singleton_method(cWikitextParser, "encode_special_link_target", Wikitext_parser_encode_special_link_target, 1);
@@ -43,6 +44,7 @@ void Init_wikitext()
43
44
  rb_define_attr(cWikitextParser, "autolink", Qtrue, Qtrue);
44
45
  rb_define_attr(cWikitextParser, "treat_slash_as_special", Qtrue, Qtrue);
45
46
  rb_define_attr(cWikitextParser, "space_to_underscore", Qtrue, Qtrue);
47
+ rb_define_attr(cWikitextParser, "minimum_fulltext_token_length", Qtrue, Qtrue);
46
48
 
47
49
  // Wikitext::Parser::Error
48
50
  eWikitextParserError = rb_define_class_under(cWikitextParser, "Error", rb_eException);
data/ext/wikitext_ragel.c CHANGED
@@ -38,7 +38,7 @@ static const int wikitext_error = 0;
38
38
 
39
39
  static const int wikitext_en_main = 94;
40
40
 
41
- #line 455 "wikitext_ragel.rl"
41
+ #line 461 "wikitext_ragel.rl"
42
42
 
43
43
 
44
44
  // for now we use the scanner as a tokenizer that returns one token at a time, just like ANTLR
@@ -88,7 +88,7 @@ void next_token(token_t *out, token_t *last_token, char *p, char *pe)
88
88
  te = 0;
89
89
  act = 0;
90
90
  }
91
- #line 497 "wikitext_ragel.rl"
91
+ #line 503 "wikitext_ragel.rl"
92
92
 
93
93
  #line 94 "wikitext_ragel.c"
94
94
  {
@@ -102,7 +102,7 @@ tr0:
102
102
  out->code_point = ((uint32_t)(*(p - 1)) & 0x1f) << 6 |
103
103
  (*p & 0x3f);
104
104
  }
105
- #line 446 "wikitext_ragel.rl"
105
+ #line 452 "wikitext_ragel.rl"
106
106
  {te = p+1;{
107
107
  EMIT(DEFAULT);
108
108
  out->column_stop = out->column_start + 1;
@@ -116,7 +116,7 @@ tr3:
116
116
  ((uint32_t)(*(p - 1)) & 0x3f) << 6 |
117
117
  (*p & 0x3f);
118
118
  }
119
- #line 446 "wikitext_ragel.rl"
119
+ #line 452 "wikitext_ragel.rl"
120
120
  {te = p+1;{
121
121
  EMIT(DEFAULT);
122
122
  out->column_stop = out->column_start + 1;
@@ -131,7 +131,7 @@ tr6:
131
131
  ((uint32_t)(*(p - 1)) & 0x3f) << 6 |
132
132
  (*p & 0x3f);
133
133
  }
134
- #line 446 "wikitext_ragel.rl"
134
+ #line 452 "wikitext_ragel.rl"
135
135
  {te = p+1;{
136
136
  EMIT(DEFAULT);
137
137
  out->column_stop = out->column_start + 1;
@@ -202,6 +202,12 @@ tr23:
202
202
  }
203
203
  break;
204
204
  case 42:
205
+ {{p = ((te))-1;}
206
+ EMIT(ALNUM);
207
+ {p++; cs = 94; goto _out;}
208
+ }
209
+ break;
210
+ case 43:
205
211
  {{p = ((te))-1;}
206
212
  EMIT(PRINTABLE);
207
213
  {p++; cs = 94; goto _out;}
@@ -303,9 +309,9 @@ tr94:
303
309
  }}
304
310
  goto st94;
305
311
  tr95:
306
- #line 426 "wikitext_ragel.rl"
312
+ #line 420 "wikitext_ragel.rl"
307
313
  {{p = ((te))-1;}{
308
- EMIT(PRINTABLE);
314
+ EMIT(ALNUM);
309
315
  {p++; cs = 94; goto _out;}
310
316
  }}
311
317
  goto st94;
@@ -321,7 +327,7 @@ tr110:
321
327
  {
322
328
  out->code_point = *p & 0x7f;
323
329
  }
324
- #line 446 "wikitext_ragel.rl"
330
+ #line 452 "wikitext_ragel.rl"
325
331
  {te = p+1;{
326
332
  EMIT(DEFAULT);
327
333
  out->column_stop = out->column_start + 1;
@@ -376,21 +382,21 @@ tr120:
376
382
  {p++; cs = 94; goto _out;}
377
383
  }}
378
384
  goto st94;
379
- tr132:
385
+ tr133:
380
386
  #line 158 "wikitext_ragel.rl"
381
387
  {te = p+1;{
382
388
  EMIT(TT);
383
389
  {p++; cs = 94; goto _out;}
384
390
  }}
385
391
  goto st94;
386
- tr134:
392
+ tr135:
387
393
  #line 305 "wikitext_ragel.rl"
388
394
  {te = p+1;{
389
395
  EMIT(SEPARATOR);
390
396
  {p++; cs = 94; goto _out;}
391
397
  }}
392
398
  goto st94;
393
- tr136:
399
+ tr137:
394
400
  #line 401 "wikitext_ragel.rl"
395
401
  {te = p;p--;{
396
402
  EMIT(CRLF);
@@ -399,7 +405,7 @@ tr136:
399
405
  {p++; cs = 94; goto _out;}
400
406
  }}
401
407
  goto st94;
402
- tr137:
408
+ tr138:
403
409
  #line 401 "wikitext_ragel.rl"
404
410
  {te = p+1;{
405
411
  EMIT(CRLF);
@@ -408,7 +414,7 @@ tr137:
408
414
  {p++; cs = 94; goto _out;}
409
415
  }}
410
416
  goto st94;
411
- tr138:
417
+ tr139:
412
418
  #line 190 "wikitext_ragel.rl"
413
419
  {te = p;p--;{
414
420
  if (out->column_start == 1 || last_token_type == BLOCKQUOTE)
@@ -421,28 +427,28 @@ tr138:
421
427
  {p++; cs = 94; goto _out;}
422
428
  }}
423
429
  goto st94;
424
- tr140:
430
+ tr141:
425
431
  #line 414 "wikitext_ragel.rl"
426
432
  {te = p;p--;{
427
433
  EMIT(SPECIAL_URI_CHARS);
428
434
  {p++; cs = 94; goto _out;}
429
435
  }}
430
436
  goto st94;
431
- tr141:
432
- #line 426 "wikitext_ragel.rl"
437
+ tr142:
438
+ #line 432 "wikitext_ragel.rl"
433
439
  {te = p;p--;{
434
440
  EMIT(PRINTABLE);
435
441
  {p++; cs = 94; goto _out;}
436
442
  }}
437
443
  goto st94;
438
- tr142:
444
+ tr143:
439
445
  #line 359 "wikitext_ragel.rl"
440
446
  {te = p;p--;{
441
447
  EMIT(AMP);
442
448
  {p++; cs = 94; goto _out;}
443
449
  }}
444
450
  goto st94;
445
- tr146:
451
+ tr147:
446
452
  #line 116 "wikitext_ragel.rl"
447
453
  {te = p;p--;{
448
454
  if (DISTANCE() == 5)
@@ -461,7 +467,7 @@ tr146:
461
467
  {p++; cs = 94; goto _out;}
462
468
  }}
463
469
  goto st94;
464
- tr150:
470
+ tr151:
465
471
  #line 116 "wikitext_ragel.rl"
466
472
  {te = p+1;{
467
473
  if (DISTANCE() == 5)
@@ -480,7 +486,7 @@ tr150:
480
486
  {p++; cs = 94; goto _out;}
481
487
  }}
482
488
  goto st94;
483
- tr152:
489
+ tr153:
484
490
  #line 287 "wikitext_ragel.rl"
485
491
  {te = p;p--;{
486
492
  EMIT(MAIL);
@@ -488,13 +494,20 @@ tr152:
488
494
  }}
489
495
  goto st94;
490
496
  tr157:
497
+ #line 420 "wikitext_ragel.rl"
498
+ {te = p;p--;{
499
+ EMIT(ALNUM);
500
+ {p++; cs = 94; goto _out;}
501
+ }}
502
+ goto st94;
503
+ tr158:
491
504
  #line 365 "wikitext_ragel.rl"
492
505
  {te = p;p--;{
493
506
  EMIT(LESS);
494
507
  {p++; cs = 94; goto _out;}
495
508
  }}
496
509
  goto st94;
497
- tr165:
510
+ tr166:
498
511
  #line 228 "wikitext_ragel.rl"
499
512
  {te = p;p--;{
500
513
  if (out->column_start == 1 || last_token_type == BLOCKQUOTE || last_token_type == BLOCKQUOTE_START)
@@ -548,7 +561,7 @@ tr165:
548
561
  {p++; cs = 94; goto _out;}
549
562
  }}
550
563
  goto st94;
551
- tr167:
564
+ tr168:
552
565
  #line 177 "wikitext_ragel.rl"
553
566
  {te = p;p--;{
554
567
  if (out->column_start == 1 || last_token_type == BLOCKQUOTE)
@@ -561,7 +574,7 @@ tr167:
561
574
  {p++; cs = 94; goto _out;}
562
575
  }}
563
576
  goto st94;
564
- tr168:
577
+ tr169:
565
578
  #line 177 "wikitext_ragel.rl"
566
579
  {te = p+1;{
567
580
  if (out->column_start == 1 || last_token_type == BLOCKQUOTE)
@@ -574,63 +587,63 @@ tr168:
574
587
  {p++; cs = 94; goto _out;}
575
588
  }}
576
589
  goto st94;
577
- tr172:
590
+ tr173:
578
591
  #line 281 "wikitext_ragel.rl"
579
592
  {te = p;p--;{
580
593
  EMIT(URI);
581
594
  {p++; cs = 94; goto _out;}
582
595
  }}
583
596
  goto st94;
584
- tr186:
597
+ tr187:
585
598
  #line 311 "wikitext_ragel.rl"
586
599
  {te = p;p--;{
587
600
  EMIT(EXT_LINK_START);
588
601
  {p++; cs = 94; goto _out;}
589
602
  }}
590
603
  goto st94;
591
- tr187:
604
+ tr188:
592
605
  #line 293 "wikitext_ragel.rl"
593
606
  {te = p+1;{
594
607
  EMIT(LINK_START);
595
608
  {p++; cs = 94; goto _out;}
596
609
  }}
597
610
  goto st94;
598
- tr188:
611
+ tr189:
599
612
  #line 317 "wikitext_ragel.rl"
600
613
  {te = p;p--;{
601
614
  EMIT(EXT_LINK_END);
602
615
  {p++; cs = 94; goto _out;}
603
616
  }}
604
617
  goto st94;
605
- tr189:
618
+ tr190:
606
619
  #line 299 "wikitext_ragel.rl"
607
620
  {te = p+1;{
608
621
  EMIT(LINK_END);
609
622
  {p++; cs = 94; goto _out;}
610
623
  }}
611
624
  goto st94;
612
- tr190:
625
+ tr191:
613
626
  #line 389 "wikitext_ragel.rl"
614
627
  {te = p;p--;{
615
628
  EMIT(LEFT_CURLY);
616
629
  {p++; cs = 94; goto _out;}
617
630
  }}
618
631
  goto st94;
619
- tr191:
632
+ tr192:
620
633
  #line 377 "wikitext_ragel.rl"
621
634
  {te = p+1;{
622
635
  EMIT(IMG_START);
623
636
  {p++; cs = 94; goto _out;}
624
637
  }}
625
638
  goto st94;
626
- tr192:
639
+ tr193:
627
640
  #line 395 "wikitext_ragel.rl"
628
641
  {te = p;p--;{
629
642
  EMIT(RIGHT_CURLY);
630
643
  {p++; cs = 94; goto _out;}
631
644
  }}
632
645
  goto st94;
633
- tr193:
646
+ tr194:
634
647
  #line 383 "wikitext_ragel.rl"
635
648
  {te = p+1;{
636
649
  EMIT(IMG_END);
@@ -645,7 +658,7 @@ st94:
645
658
  case 94:
646
659
  #line 1 "wikitext_ragel.rl"
647
660
  {ts = p;}
648
- #line 649 "wikitext_ragel.c"
661
+ #line 662 "wikitext_ragel.c"
649
662
  switch( (*p) ) {
650
663
  case 10: goto tr111;
651
664
  case 13: goto tr112;
@@ -657,27 +670,29 @@ case 94:
657
670
  case 39: goto st100;
658
671
  case 42: goto tr120;
659
672
  case 43: goto st98;
673
+ case 45: goto tr121;
660
674
  case 46: goto tr122;
661
675
  case 47: goto st98;
662
- case 60: goto tr123;
663
- case 61: goto tr124;
664
- case 62: goto tr125;
676
+ case 60: goto tr124;
677
+ case 61: goto tr125;
678
+ case 62: goto tr126;
665
679
  case 64: goto st98;
666
- case 70: goto tr126;
667
- case 72: goto tr127;
668
- case 77: goto tr128;
669
- case 83: goto tr129;
680
+ case 70: goto tr127;
681
+ case 72: goto tr128;
682
+ case 77: goto tr129;
683
+ case 83: goto tr130;
670
684
  case 91: goto st136;
671
685
  case 92: goto st98;
672
686
  case 93: goto st137;
673
687
  case 94: goto st98;
674
- case 96: goto tr132;
675
- case 102: goto tr126;
676
- case 104: goto tr127;
677
- case 109: goto tr128;
678
- case 115: goto tr129;
688
+ case 95: goto tr121;
689
+ case 96: goto tr133;
690
+ case 102: goto tr127;
691
+ case 104: goto tr128;
692
+ case 109: goto tr129;
693
+ case 115: goto tr130;
679
694
  case 123: goto st138;
680
- case 124: goto tr134;
695
+ case 124: goto tr135;
681
696
  case 125: goto st139;
682
697
  case 126: goto st98;
683
698
  case 127: goto tr110;
@@ -695,17 +710,17 @@ case 94:
695
710
  } else
696
711
  goto st2;
697
712
  } else if ( (*p) > 37 ) {
698
- if ( (*p) < 45 ) {
713
+ if ( (*p) < 48 ) {
699
714
  if ( 40 <= (*p) && (*p) <= 44 )
700
715
  goto st97;
701
716
  } else if ( (*p) > 57 ) {
702
717
  if ( (*p) > 63 ) {
703
718
  if ( 65 <= (*p) && (*p) <= 122 )
704
- goto tr121;
719
+ goto tr123;
705
720
  } else if ( (*p) >= 58 )
706
721
  goto st97;
707
722
  } else
708
- goto tr121;
723
+ goto tr123;
709
724
  } else
710
725
  goto st98;
711
726
  goto st0;
@@ -764,10 +779,10 @@ st95:
764
779
  if ( ++p == pe )
765
780
  goto _test_eof95;
766
781
  case 95:
767
- #line 768 "wikitext_ragel.c"
782
+ #line 783 "wikitext_ragel.c"
768
783
  if ( (*p) == 10 )
769
- goto tr137;
770
- goto tr136;
784
+ goto tr138;
785
+ goto tr137;
771
786
  tr113:
772
787
  #line 36 "wikitext_ragel.rl"
773
788
  {
@@ -778,10 +793,10 @@ st96:
778
793
  if ( ++p == pe )
779
794
  goto _test_eof96;
780
795
  case 96:
781
- #line 782 "wikitext_ragel.c"
796
+ #line 797 "wikitext_ragel.c"
782
797
  if ( (*p) == 32 )
783
798
  goto st96;
784
- goto tr138;
799
+ goto tr139;
785
800
  st97:
786
801
  if ( ++p == pe )
787
802
  goto _test_eof97;
@@ -797,7 +812,7 @@ case 97:
797
812
  goto st97;
798
813
  } else if ( (*p) >= 40 )
799
814
  goto st97;
800
- goto tr140;
815
+ goto tr141;
801
816
  st98:
802
817
  if ( ++p == pe )
803
818
  goto _test_eof98;
@@ -805,24 +820,17 @@ case 98:
805
820
  switch( (*p) ) {
806
821
  case 43: goto st98;
807
822
  case 45: goto st98;
823
+ case 47: goto st98;
824
+ case 64: goto st98;
808
825
  case 92: goto st98;
809
826
  case 126: goto st98;
810
827
  }
811
- if ( (*p) < 64 ) {
812
- if ( (*p) > 37 ) {
813
- if ( 47 <= (*p) && (*p) <= 57 )
814
- goto st98;
815
- } else if ( (*p) >= 36 )
828
+ if ( (*p) > 37 ) {
829
+ if ( 94 <= (*p) && (*p) <= 95 )
816
830
  goto st98;
817
- } else if ( (*p) > 90 ) {
818
- if ( (*p) > 95 ) {
819
- if ( 97 <= (*p) && (*p) <= 122 )
820
- goto st98;
821
- } else if ( (*p) >= 94 )
822
- goto st98;
823
- } else
831
+ } else if ( (*p) >= 36 )
824
832
  goto st98;
825
- goto tr141;
833
+ goto tr142;
826
834
  tr118:
827
835
  #line 1 "wikitext_ragel.rl"
828
836
  {te = p+1;}
@@ -831,7 +839,7 @@ st99:
831
839
  if ( ++p == pe )
832
840
  goto _test_eof99;
833
841
  case 99:
834
- #line 835 "wikitext_ragel.c"
842
+ #line 843 "wikitext_ragel.c"
835
843
  switch( (*p) ) {
836
844
  case 35: goto st7;
837
845
  case 97: goto st13;
@@ -842,7 +850,7 @@ case 99:
842
850
  goto st11;
843
851
  } else if ( (*p) >= 65 )
844
852
  goto st11;
845
- goto tr142;
853
+ goto tr143;
846
854
  st7:
847
855
  if ( ++p == pe )
848
856
  goto _test_eof7;
@@ -1036,61 +1044,61 @@ st100:
1036
1044
  case 100:
1037
1045
  if ( (*p) == 39 )
1038
1046
  goto st101;
1039
- goto tr146;
1047
+ goto tr147;
1040
1048
  st101:
1041
1049
  if ( ++p == pe )
1042
1050
  goto _test_eof101;
1043
1051
  case 101:
1044
1052
  if ( (*p) == 39 )
1045
1053
  goto st102;
1046
- goto tr146;
1054
+ goto tr147;
1047
1055
  st102:
1048
1056
  if ( ++p == pe )
1049
1057
  goto _test_eof102;
1050
1058
  case 102:
1051
1059
  if ( (*p) == 39 )
1052
1060
  goto st103;
1053
- goto tr146;
1061
+ goto tr147;
1054
1062
  st103:
1055
1063
  if ( ++p == pe )
1056
1064
  goto _test_eof103;
1057
1065
  case 103:
1058
1066
  if ( (*p) == 39 )
1059
- goto tr150;
1060
- goto tr146;
1067
+ goto tr151;
1068
+ goto tr147;
1061
1069
  tr121:
1062
1070
  #line 1 "wikitext_ragel.rl"
1063
1071
  {te = p+1;}
1064
- #line 426 "wikitext_ragel.rl"
1065
- {act = 42;}
1072
+ #line 432 "wikitext_ragel.rl"
1073
+ {act = 43;}
1066
1074
  goto st104;
1067
1075
  st104:
1068
1076
  if ( ++p == pe )
1069
1077
  goto _test_eof104;
1070
1078
  case 104:
1071
- #line 1072 "wikitext_ragel.c"
1079
+ #line 1080 "wikitext_ragel.c"
1072
1080
  switch( (*p) ) {
1073
1081
  case 43: goto st98;
1074
- case 46: goto st20;
1082
+ case 45: goto tr121;
1075
1083
  case 47: goto st98;
1076
- case 64: goto st109;
1084
+ case 64: goto tr152;
1077
1085
  case 92: goto st98;
1078
1086
  case 94: goto st98;
1079
1087
  case 95: goto tr121;
1080
1088
  case 126: goto st98;
1081
1089
  }
1082
- if ( (*p) < 45 ) {
1090
+ if ( (*p) < 46 ) {
1083
1091
  if ( 36 <= (*p) && (*p) <= 37 )
1084
1092
  goto st98;
1085
1093
  } else if ( (*p) > 57 ) {
1086
1094
  if ( (*p) > 90 ) {
1087
1095
  if ( 97 <= (*p) && (*p) <= 122 )
1088
- goto tr121;
1096
+ goto st20;
1089
1097
  } else if ( (*p) >= 65 )
1090
- goto tr121;
1098
+ goto st20;
1091
1099
  } else
1092
- goto tr121;
1093
- goto tr141;
1100
+ goto st20;
1101
+ goto tr142;
1094
1102
  st20:
1095
1103
  if ( ++p == pe )
1096
1104
  goto _test_eof20;
@@ -1177,7 +1185,7 @@ st105:
1177
1185
  if ( ++p == pe )
1178
1186
  goto _test_eof105;
1179
1187
  case 105:
1180
- #line 1181 "wikitext_ragel.c"
1188
+ #line 1189 "wikitext_ragel.c"
1181
1189
  if ( (*p) == 46 )
1182
1190
  goto st23;
1183
1191
  if ( (*p) < 65 ) {
@@ -1185,11 +1193,11 @@ case 105:
1185
1193
  goto st22;
1186
1194
  } else if ( (*p) > 90 ) {
1187
1195
  if ( 97 <= (*p) && (*p) <= 122 )
1188
- goto tr153;
1196
+ goto tr154;
1189
1197
  } else
1190
- goto tr153;
1191
- goto tr152;
1192
- tr153:
1198
+ goto tr154;
1199
+ goto tr153;
1200
+ tr154:
1193
1201
  #line 1 "wikitext_ragel.rl"
1194
1202
  {te = p+1;}
1195
1203
  #line 287 "wikitext_ragel.rl"
@@ -1199,7 +1207,7 @@ st106:
1199
1207
  if ( ++p == pe )
1200
1208
  goto _test_eof106;
1201
1209
  case 106:
1202
- #line 1203 "wikitext_ragel.c"
1210
+ #line 1211 "wikitext_ragel.c"
1203
1211
  if ( (*p) == 46 )
1204
1212
  goto st23;
1205
1213
  if ( (*p) < 65 ) {
@@ -1207,11 +1215,11 @@ case 106:
1207
1215
  goto st22;
1208
1216
  } else if ( (*p) > 90 ) {
1209
1217
  if ( 97 <= (*p) && (*p) <= 122 )
1210
- goto tr154;
1218
+ goto tr155;
1211
1219
  } else
1212
- goto tr154;
1213
- goto tr152;
1214
- tr154:
1220
+ goto tr155;
1221
+ goto tr153;
1222
+ tr155:
1215
1223
  #line 1 "wikitext_ragel.rl"
1216
1224
  {te = p+1;}
1217
1225
  #line 287 "wikitext_ragel.rl"
@@ -1221,7 +1229,7 @@ st107:
1221
1229
  if ( ++p == pe )
1222
1230
  goto _test_eof107;
1223
1231
  case 107:
1224
- #line 1225 "wikitext_ragel.c"
1232
+ #line 1233 "wikitext_ragel.c"
1225
1233
  if ( (*p) == 46 )
1226
1234
  goto st23;
1227
1235
  if ( (*p) < 65 ) {
@@ -1229,11 +1237,11 @@ case 107:
1229
1237
  goto st22;
1230
1238
  } else if ( (*p) > 90 ) {
1231
1239
  if ( 97 <= (*p) && (*p) <= 122 )
1232
- goto tr155;
1240
+ goto tr156;
1233
1241
  } else
1234
- goto tr155;
1235
- goto tr152;
1236
- tr155:
1242
+ goto tr156;
1243
+ goto tr153;
1244
+ tr156:
1237
1245
  #line 1 "wikitext_ragel.rl"
1238
1246
  {te = p+1;}
1239
1247
  #line 287 "wikitext_ragel.rl"
@@ -1243,7 +1251,7 @@ st108:
1243
1251
  if ( ++p == pe )
1244
1252
  goto _test_eof108;
1245
1253
  case 108:
1246
- #line 1247 "wikitext_ragel.c"
1254
+ #line 1255 "wikitext_ragel.c"
1247
1255
  if ( (*p) == 46 )
1248
1256
  goto st23;
1249
1257
  if ( (*p) < 65 ) {
@@ -1254,11 +1262,18 @@ case 108:
1254
1262
  goto st22;
1255
1263
  } else
1256
1264
  goto st22;
1257
- goto tr152;
1265
+ goto tr153;
1266
+ tr152:
1267
+ #line 1 "wikitext_ragel.rl"
1268
+ {te = p+1;}
1269
+ #line 432 "wikitext_ragel.rl"
1270
+ {act = 43;}
1271
+ goto st109;
1258
1272
  st109:
1259
1273
  if ( ++p == pe )
1260
1274
  goto _test_eof109;
1261
1275
  case 109:
1276
+ #line 1277 "wikitext_ragel.c"
1262
1277
  switch( (*p) ) {
1263
1278
  case 43: goto st98;
1264
1279
  case 45: goto st98;
@@ -1270,65 +1285,29 @@ case 109:
1270
1285
  if ( (*p) < 65 ) {
1271
1286
  if ( (*p) > 37 ) {
1272
1287
  if ( 48 <= (*p) && (*p) <= 57 )
1273
- goto tr156;
1288
+ goto st22;
1274
1289
  } else if ( (*p) >= 36 )
1275
1290
  goto st98;
1276
1291
  } else if ( (*p) > 90 ) {
1277
1292
  if ( (*p) > 95 ) {
1278
1293
  if ( 97 <= (*p) && (*p) <= 122 )
1279
- goto tr156;
1294
+ goto st22;
1280
1295
  } else if ( (*p) >= 94 )
1281
1296
  goto st98;
1282
1297
  } else
1283
- goto tr156;
1284
- goto tr141;
1285
- tr156:
1298
+ goto st22;
1299
+ goto tr142;
1300
+ tr122:
1286
1301
  #line 1 "wikitext_ragel.rl"
1287
1302
  {te = p+1;}
1288
- #line 426 "wikitext_ragel.rl"
1289
- {act = 42;}
1303
+ #line 414 "wikitext_ragel.rl"
1304
+ {act = 41;}
1290
1305
  goto st110;
1291
1306
  st110:
1292
1307
  if ( ++p == pe )
1293
1308
  goto _test_eof110;
1294
1309
  case 110:
1295
- #line 1296 "wikitext_ragel.c"
1296
- switch( (*p) ) {
1297
- case 43: goto st98;
1298
- case 46: goto st23;
1299
- case 64: goto st98;
1300
- case 92: goto st98;
1301
- case 126: goto st98;
1302
- }
1303
- if ( (*p) < 48 ) {
1304
- if ( (*p) > 37 ) {
1305
- if ( 45 <= (*p) && (*p) <= 47 )
1306
- goto st98;
1307
- } else if ( (*p) >= 36 )
1308
- goto st98;
1309
- } else if ( (*p) > 57 ) {
1310
- if ( (*p) < 94 ) {
1311
- if ( 65 <= (*p) && (*p) <= 90 )
1312
- goto tr156;
1313
- } else if ( (*p) > 95 ) {
1314
- if ( 97 <= (*p) && (*p) <= 122 )
1315
- goto tr156;
1316
- } else
1317
- goto st98;
1318
- } else
1319
- goto tr156;
1320
- goto tr141;
1321
- tr122:
1322
- #line 1 "wikitext_ragel.rl"
1323
- {te = p+1;}
1324
- #line 414 "wikitext_ragel.rl"
1325
- {act = 41;}
1326
- goto st111;
1327
- st111:
1328
- if ( ++p == pe )
1329
- goto _test_eof111;
1330
- case 111:
1331
- #line 1332 "wikitext_ragel.c"
1310
+ #line 1311 "wikitext_ragel.c"
1332
1311
  switch( (*p) ) {
1333
1312
  case 33: goto st97;
1334
1313
  case 44: goto st97;
@@ -1352,8 +1331,35 @@ case 111:
1352
1331
  goto st20;
1353
1332
  } else
1354
1333
  goto st97;
1355
- goto tr140;
1334
+ goto tr141;
1356
1335
  tr123:
1336
+ #line 1 "wikitext_ragel.rl"
1337
+ {te = p+1;}
1338
+ #line 420 "wikitext_ragel.rl"
1339
+ {act = 42;}
1340
+ goto st111;
1341
+ st111:
1342
+ if ( ++p == pe )
1343
+ goto _test_eof111;
1344
+ case 111:
1345
+ #line 1346 "wikitext_ragel.c"
1346
+ switch( (*p) ) {
1347
+ case 64: goto st21;
1348
+ case 95: goto st20;
1349
+ }
1350
+ if ( (*p) < 48 ) {
1351
+ if ( 45 <= (*p) && (*p) <= 46 )
1352
+ goto st20;
1353
+ } else if ( (*p) > 57 ) {
1354
+ if ( (*p) > 90 ) {
1355
+ if ( 97 <= (*p) && (*p) <= 122 )
1356
+ goto tr123;
1357
+ } else if ( (*p) >= 65 )
1358
+ goto tr123;
1359
+ } else
1360
+ goto tr123;
1361
+ goto tr157;
1362
+ tr124:
1357
1363
  #line 1 "wikitext_ragel.rl"
1358
1364
  {te = p+1;}
1359
1365
  goto st112;
@@ -1361,7 +1367,7 @@ st112:
1361
1367
  if ( ++p == pe )
1362
1368
  goto _test_eof112;
1363
1369
  case 112:
1364
- #line 1365 "wikitext_ragel.c"
1370
+ #line 1371 "wikitext_ragel.c"
1365
1371
  switch( (*p) ) {
1366
1372
  case 47: goto st25;
1367
1373
  case 66: goto st55;
@@ -1377,7 +1383,7 @@ case 112:
1377
1383
  case 115: goto st76;
1378
1384
  case 116: goto st82;
1379
1385
  }
1380
- goto tr157;
1386
+ goto tr158;
1381
1387
  st25:
1382
1388
  if ( ++p == pe )
1383
1389
  goto _test_eof25;
@@ -1895,7 +1901,7 @@ case 83:
1895
1901
  if ( (*p) == 62 )
1896
1902
  goto tr94;
1897
1903
  goto tr30;
1898
- tr124:
1904
+ tr125:
1899
1905
  #line 36 "wikitext_ragel.rl"
1900
1906
  {
1901
1907
  MARK();
@@ -1905,20 +1911,20 @@ st113:
1905
1911
  if ( ++p == pe )
1906
1912
  goto _test_eof113;
1907
1913
  case 113:
1908
- #line 1909 "wikitext_ragel.c"
1914
+ #line 1915 "wikitext_ragel.c"
1909
1915
  switch( (*p) ) {
1910
1916
  case 32: goto st114;
1911
- case 61: goto tr124;
1917
+ case 61: goto tr125;
1912
1918
  }
1913
- goto tr165;
1919
+ goto tr166;
1914
1920
  st114:
1915
1921
  if ( ++p == pe )
1916
1922
  goto _test_eof114;
1917
1923
  case 114:
1918
1924
  if ( (*p) == 32 )
1919
1925
  goto st114;
1920
- goto tr165;
1921
- tr125:
1926
+ goto tr166;
1927
+ tr126:
1922
1928
  #line 36 "wikitext_ragel.rl"
1923
1929
  {
1924
1930
  MARK();
@@ -1928,49 +1934,43 @@ st115:
1928
1934
  if ( ++p == pe )
1929
1935
  goto _test_eof115;
1930
1936
  case 115:
1931
- #line 1932 "wikitext_ragel.c"
1937
+ #line 1938 "wikitext_ragel.c"
1932
1938
  if ( (*p) == 32 )
1933
- goto tr168;
1934
- goto tr167;
1935
- tr126:
1939
+ goto tr169;
1940
+ goto tr168;
1941
+ tr127:
1936
1942
  #line 1 "wikitext_ragel.rl"
1937
1943
  {te = p+1;}
1938
- #line 426 "wikitext_ragel.rl"
1944
+ #line 420 "wikitext_ragel.rl"
1939
1945
  {act = 42;}
1940
1946
  goto st116;
1941
1947
  st116:
1942
1948
  if ( ++p == pe )
1943
1949
  goto _test_eof116;
1944
1950
  case 116:
1945
- #line 1946 "wikitext_ragel.c"
1951
+ #line 1952 "wikitext_ragel.c"
1946
1952
  switch( (*p) ) {
1947
- case 43: goto st98;
1948
- case 46: goto st20;
1949
- case 47: goto st98;
1950
- case 64: goto st109;
1951
- case 84: goto tr169;
1952
- case 92: goto st98;
1953
- case 94: goto st98;
1954
- case 95: goto tr121;
1955
- case 116: goto tr169;
1956
- case 126: goto st98;
1953
+ case 64: goto st21;
1954
+ case 84: goto tr170;
1955
+ case 95: goto st20;
1956
+ case 116: goto tr170;
1957
1957
  }
1958
- if ( (*p) < 45 ) {
1959
- if ( 36 <= (*p) && (*p) <= 37 )
1960
- goto st98;
1958
+ if ( (*p) < 48 ) {
1959
+ if ( 45 <= (*p) && (*p) <= 46 )
1960
+ goto st20;
1961
1961
  } else if ( (*p) > 57 ) {
1962
1962
  if ( (*p) > 90 ) {
1963
1963
  if ( 97 <= (*p) && (*p) <= 122 )
1964
- goto tr121;
1964
+ goto tr123;
1965
1965
  } else if ( (*p) >= 65 )
1966
- goto tr121;
1966
+ goto tr123;
1967
1967
  } else
1968
- goto tr121;
1969
- goto tr141;
1970
- tr169:
1968
+ goto tr123;
1969
+ goto tr157;
1970
+ tr170:
1971
1971
  #line 1 "wikitext_ragel.rl"
1972
1972
  {te = p+1;}
1973
- #line 426 "wikitext_ragel.rl"
1973
+ #line 420 "wikitext_ragel.rl"
1974
1974
  {act = 42;}
1975
1975
  goto st117;
1976
1976
  st117:
@@ -1979,63 +1979,51 @@ st117:
1979
1979
  case 117:
1980
1980
  #line 1981 "wikitext_ragel.c"
1981
1981
  switch( (*p) ) {
1982
- case 43: goto st98;
1983
- case 46: goto st20;
1984
- case 47: goto st98;
1985
- case 64: goto st109;
1986
- case 80: goto tr170;
1987
- case 92: goto st98;
1988
- case 94: goto st98;
1989
- case 95: goto tr121;
1990
- case 112: goto tr170;
1991
- case 126: goto st98;
1982
+ case 64: goto st21;
1983
+ case 80: goto tr171;
1984
+ case 95: goto st20;
1985
+ case 112: goto tr171;
1992
1986
  }
1993
- if ( (*p) < 45 ) {
1994
- if ( 36 <= (*p) && (*p) <= 37 )
1995
- goto st98;
1987
+ if ( (*p) < 48 ) {
1988
+ if ( 45 <= (*p) && (*p) <= 46 )
1989
+ goto st20;
1996
1990
  } else if ( (*p) > 57 ) {
1997
1991
  if ( (*p) > 90 ) {
1998
1992
  if ( 97 <= (*p) && (*p) <= 122 )
1999
- goto tr121;
1993
+ goto tr123;
2000
1994
  } else if ( (*p) >= 65 )
2001
- goto tr121;
1995
+ goto tr123;
2002
1996
  } else
2003
- goto tr121;
2004
- goto tr141;
2005
- tr170:
1997
+ goto tr123;
1998
+ goto tr157;
1999
+ tr171:
2006
2000
  #line 1 "wikitext_ragel.rl"
2007
2001
  {te = p+1;}
2008
- #line 426 "wikitext_ragel.rl"
2002
+ #line 420 "wikitext_ragel.rl"
2009
2003
  {act = 42;}
2010
2004
  goto st118;
2011
2005
  st118:
2012
2006
  if ( ++p == pe )
2013
2007
  goto _test_eof118;
2014
2008
  case 118:
2015
- #line 2016 "wikitext_ragel.c"
2009
+ #line 2010 "wikitext_ragel.c"
2016
2010
  switch( (*p) ) {
2017
- case 43: goto st98;
2018
- case 46: goto st20;
2019
- case 47: goto st98;
2020
2011
  case 58: goto st84;
2021
- case 64: goto st109;
2022
- case 92: goto st98;
2023
- case 94: goto st98;
2024
- case 95: goto tr121;
2025
- case 126: goto st98;
2012
+ case 64: goto st21;
2013
+ case 95: goto st20;
2026
2014
  }
2027
- if ( (*p) < 45 ) {
2028
- if ( 36 <= (*p) && (*p) <= 37 )
2029
- goto st98;
2015
+ if ( (*p) < 48 ) {
2016
+ if ( 45 <= (*p) && (*p) <= 46 )
2017
+ goto st20;
2030
2018
  } else if ( (*p) > 57 ) {
2031
2019
  if ( (*p) > 90 ) {
2032
2020
  if ( 97 <= (*p) && (*p) <= 122 )
2033
- goto tr121;
2021
+ goto tr123;
2034
2022
  } else if ( (*p) >= 65 )
2035
- goto tr121;
2023
+ goto tr123;
2036
2024
  } else
2037
- goto tr121;
2038
- goto tr141;
2025
+ goto tr123;
2026
+ goto tr157;
2039
2027
  st84:
2040
2028
  if ( ++p == pe )
2041
2029
  goto _test_eof84;
@@ -2083,7 +2071,7 @@ st119:
2083
2071
  if ( ++p == pe )
2084
2072
  goto _test_eof119;
2085
2073
  case 119:
2086
- #line 2087 "wikitext_ragel.c"
2074
+ #line 2075 "wikitext_ragel.c"
2087
2075
  switch( (*p) ) {
2088
2076
  case 33: goto st87;
2089
2077
  case 41: goto st87;
@@ -2105,7 +2093,7 @@ case 119:
2105
2093
  goto tr98;
2106
2094
  } else
2107
2095
  goto st87;
2108
- goto tr172;
2096
+ goto tr173;
2109
2097
  st87:
2110
2098
  if ( ++p == pe )
2111
2099
  goto _test_eof87;
@@ -2132,356 +2120,296 @@ case 87:
2132
2120
  } else
2133
2121
  goto st87;
2134
2122
  goto tr99;
2135
- tr127:
2123
+ tr128:
2136
2124
  #line 1 "wikitext_ragel.rl"
2137
2125
  {te = p+1;}
2138
- #line 426 "wikitext_ragel.rl"
2126
+ #line 420 "wikitext_ragel.rl"
2139
2127
  {act = 42;}
2140
2128
  goto st120;
2141
2129
  st120:
2142
2130
  if ( ++p == pe )
2143
2131
  goto _test_eof120;
2144
2132
  case 120:
2145
- #line 2146 "wikitext_ragel.c"
2133
+ #line 2134 "wikitext_ragel.c"
2146
2134
  switch( (*p) ) {
2147
- case 43: goto st98;
2148
- case 46: goto st20;
2149
- case 47: goto st98;
2150
- case 64: goto st109;
2151
- case 84: goto tr173;
2152
- case 92: goto st98;
2153
- case 94: goto st98;
2154
- case 95: goto tr121;
2155
- case 116: goto tr173;
2156
- case 126: goto st98;
2135
+ case 64: goto st21;
2136
+ case 84: goto tr174;
2137
+ case 95: goto st20;
2138
+ case 116: goto tr174;
2157
2139
  }
2158
- if ( (*p) < 45 ) {
2159
- if ( 36 <= (*p) && (*p) <= 37 )
2160
- goto st98;
2140
+ if ( (*p) < 48 ) {
2141
+ if ( 45 <= (*p) && (*p) <= 46 )
2142
+ goto st20;
2161
2143
  } else if ( (*p) > 57 ) {
2162
2144
  if ( (*p) > 90 ) {
2163
2145
  if ( 97 <= (*p) && (*p) <= 122 )
2164
- goto tr121;
2146
+ goto tr123;
2165
2147
  } else if ( (*p) >= 65 )
2166
- goto tr121;
2148
+ goto tr123;
2167
2149
  } else
2168
- goto tr121;
2169
- goto tr141;
2170
- tr173:
2150
+ goto tr123;
2151
+ goto tr157;
2152
+ tr174:
2171
2153
  #line 1 "wikitext_ragel.rl"
2172
2154
  {te = p+1;}
2173
- #line 426 "wikitext_ragel.rl"
2155
+ #line 420 "wikitext_ragel.rl"
2174
2156
  {act = 42;}
2175
2157
  goto st121;
2176
2158
  st121:
2177
2159
  if ( ++p == pe )
2178
2160
  goto _test_eof121;
2179
2161
  case 121:
2180
- #line 2181 "wikitext_ragel.c"
2162
+ #line 2163 "wikitext_ragel.c"
2181
2163
  switch( (*p) ) {
2182
- case 43: goto st98;
2183
- case 46: goto st20;
2184
- case 47: goto st98;
2185
- case 64: goto st109;
2186
- case 84: goto tr174;
2187
- case 92: goto st98;
2188
- case 94: goto st98;
2189
- case 95: goto tr121;
2190
- case 116: goto tr174;
2191
- case 126: goto st98;
2164
+ case 64: goto st21;
2165
+ case 84: goto tr175;
2166
+ case 95: goto st20;
2167
+ case 116: goto tr175;
2192
2168
  }
2193
- if ( (*p) < 45 ) {
2194
- if ( 36 <= (*p) && (*p) <= 37 )
2195
- goto st98;
2169
+ if ( (*p) < 48 ) {
2170
+ if ( 45 <= (*p) && (*p) <= 46 )
2171
+ goto st20;
2196
2172
  } else if ( (*p) > 57 ) {
2197
2173
  if ( (*p) > 90 ) {
2198
2174
  if ( 97 <= (*p) && (*p) <= 122 )
2199
- goto tr121;
2175
+ goto tr123;
2200
2176
  } else if ( (*p) >= 65 )
2201
- goto tr121;
2177
+ goto tr123;
2202
2178
  } else
2203
- goto tr121;
2204
- goto tr141;
2205
- tr174:
2179
+ goto tr123;
2180
+ goto tr157;
2181
+ tr175:
2206
2182
  #line 1 "wikitext_ragel.rl"
2207
2183
  {te = p+1;}
2208
- #line 426 "wikitext_ragel.rl"
2184
+ #line 420 "wikitext_ragel.rl"
2209
2185
  {act = 42;}
2210
2186
  goto st122;
2211
2187
  st122:
2212
2188
  if ( ++p == pe )
2213
2189
  goto _test_eof122;
2214
2190
  case 122:
2215
- #line 2216 "wikitext_ragel.c"
2191
+ #line 2192 "wikitext_ragel.c"
2216
2192
  switch( (*p) ) {
2217
- case 43: goto st98;
2218
- case 46: goto st20;
2219
- case 47: goto st98;
2220
- case 64: goto st109;
2221
- case 80: goto tr175;
2222
- case 92: goto st98;
2223
- case 94: goto st98;
2224
- case 95: goto tr121;
2225
- case 112: goto tr175;
2226
- case 126: goto st98;
2193
+ case 64: goto st21;
2194
+ case 80: goto tr176;
2195
+ case 95: goto st20;
2196
+ case 112: goto tr176;
2227
2197
  }
2228
- if ( (*p) < 45 ) {
2229
- if ( 36 <= (*p) && (*p) <= 37 )
2230
- goto st98;
2198
+ if ( (*p) < 48 ) {
2199
+ if ( 45 <= (*p) && (*p) <= 46 )
2200
+ goto st20;
2231
2201
  } else if ( (*p) > 57 ) {
2232
2202
  if ( (*p) > 90 ) {
2233
2203
  if ( 97 <= (*p) && (*p) <= 122 )
2234
- goto tr121;
2204
+ goto tr123;
2235
2205
  } else if ( (*p) >= 65 )
2236
- goto tr121;
2206
+ goto tr123;
2237
2207
  } else
2238
- goto tr121;
2239
- goto tr141;
2240
- tr175:
2208
+ goto tr123;
2209
+ goto tr157;
2210
+ tr176:
2241
2211
  #line 1 "wikitext_ragel.rl"
2242
2212
  {te = p+1;}
2243
- #line 426 "wikitext_ragel.rl"
2213
+ #line 420 "wikitext_ragel.rl"
2244
2214
  {act = 42;}
2245
2215
  goto st123;
2246
2216
  st123:
2247
2217
  if ( ++p == pe )
2248
2218
  goto _test_eof123;
2249
2219
  case 123:
2250
- #line 2251 "wikitext_ragel.c"
2220
+ #line 2221 "wikitext_ragel.c"
2251
2221
  switch( (*p) ) {
2252
- case 43: goto st98;
2253
- case 46: goto st20;
2254
- case 47: goto st98;
2255
2222
  case 58: goto st84;
2256
- case 64: goto st109;
2257
- case 83: goto tr170;
2258
- case 92: goto st98;
2259
- case 94: goto st98;
2260
- case 95: goto tr121;
2261
- case 115: goto tr170;
2262
- case 126: goto st98;
2223
+ case 64: goto st21;
2224
+ case 83: goto tr171;
2225
+ case 95: goto st20;
2226
+ case 115: goto tr171;
2263
2227
  }
2264
- if ( (*p) < 45 ) {
2265
- if ( 36 <= (*p) && (*p) <= 37 )
2266
- goto st98;
2228
+ if ( (*p) < 48 ) {
2229
+ if ( 45 <= (*p) && (*p) <= 46 )
2230
+ goto st20;
2267
2231
  } else if ( (*p) > 57 ) {
2268
2232
  if ( (*p) > 90 ) {
2269
2233
  if ( 97 <= (*p) && (*p) <= 122 )
2270
- goto tr121;
2234
+ goto tr123;
2271
2235
  } else if ( (*p) >= 65 )
2272
- goto tr121;
2236
+ goto tr123;
2273
2237
  } else
2274
- goto tr121;
2275
- goto tr141;
2276
- tr128:
2238
+ goto tr123;
2239
+ goto tr157;
2240
+ tr129:
2277
2241
  #line 1 "wikitext_ragel.rl"
2278
2242
  {te = p+1;}
2279
- #line 426 "wikitext_ragel.rl"
2243
+ #line 420 "wikitext_ragel.rl"
2280
2244
  {act = 42;}
2281
2245
  goto st124;
2282
2246
  st124:
2283
2247
  if ( ++p == pe )
2284
2248
  goto _test_eof124;
2285
2249
  case 124:
2286
- #line 2287 "wikitext_ragel.c"
2250
+ #line 2251 "wikitext_ragel.c"
2287
2251
  switch( (*p) ) {
2288
- case 43: goto st98;
2289
- case 46: goto st20;
2290
- case 47: goto st98;
2291
- case 64: goto st109;
2292
- case 65: goto tr176;
2293
- case 92: goto st98;
2294
- case 94: goto st98;
2295
- case 95: goto tr121;
2296
- case 97: goto tr176;
2297
- case 126: goto st98;
2252
+ case 64: goto st21;
2253
+ case 65: goto tr177;
2254
+ case 95: goto st20;
2255
+ case 97: goto tr177;
2298
2256
  }
2299
- if ( (*p) < 45 ) {
2300
- if ( 36 <= (*p) && (*p) <= 37 )
2301
- goto st98;
2257
+ if ( (*p) < 48 ) {
2258
+ if ( 45 <= (*p) && (*p) <= 46 )
2259
+ goto st20;
2302
2260
  } else if ( (*p) > 57 ) {
2303
2261
  if ( (*p) > 90 ) {
2304
2262
  if ( 98 <= (*p) && (*p) <= 122 )
2305
- goto tr121;
2263
+ goto tr123;
2306
2264
  } else if ( (*p) >= 66 )
2307
- goto tr121;
2265
+ goto tr123;
2308
2266
  } else
2309
- goto tr121;
2310
- goto tr141;
2311
- tr176:
2267
+ goto tr123;
2268
+ goto tr157;
2269
+ tr177:
2312
2270
  #line 1 "wikitext_ragel.rl"
2313
2271
  {te = p+1;}
2314
- #line 426 "wikitext_ragel.rl"
2272
+ #line 420 "wikitext_ragel.rl"
2315
2273
  {act = 42;}
2316
2274
  goto st125;
2317
2275
  st125:
2318
2276
  if ( ++p == pe )
2319
2277
  goto _test_eof125;
2320
2278
  case 125:
2321
- #line 2322 "wikitext_ragel.c"
2279
+ #line 2280 "wikitext_ragel.c"
2322
2280
  switch( (*p) ) {
2323
- case 43: goto st98;
2324
- case 46: goto st20;
2325
- case 47: goto st98;
2326
- case 64: goto st109;
2327
- case 73: goto tr177;
2328
- case 92: goto st98;
2329
- case 94: goto st98;
2330
- case 95: goto tr121;
2331
- case 105: goto tr177;
2332
- case 126: goto st98;
2281
+ case 64: goto st21;
2282
+ case 73: goto tr178;
2283
+ case 95: goto st20;
2284
+ case 105: goto tr178;
2333
2285
  }
2334
- if ( (*p) < 45 ) {
2335
- if ( 36 <= (*p) && (*p) <= 37 )
2336
- goto st98;
2286
+ if ( (*p) < 48 ) {
2287
+ if ( 45 <= (*p) && (*p) <= 46 )
2288
+ goto st20;
2337
2289
  } else if ( (*p) > 57 ) {
2338
2290
  if ( (*p) > 90 ) {
2339
2291
  if ( 97 <= (*p) && (*p) <= 122 )
2340
- goto tr121;
2292
+ goto tr123;
2341
2293
  } else if ( (*p) >= 65 )
2342
- goto tr121;
2294
+ goto tr123;
2343
2295
  } else
2344
- goto tr121;
2345
- goto tr141;
2346
- tr177:
2296
+ goto tr123;
2297
+ goto tr157;
2298
+ tr178:
2347
2299
  #line 1 "wikitext_ragel.rl"
2348
2300
  {te = p+1;}
2349
- #line 426 "wikitext_ragel.rl"
2301
+ #line 420 "wikitext_ragel.rl"
2350
2302
  {act = 42;}
2351
2303
  goto st126;
2352
2304
  st126:
2353
2305
  if ( ++p == pe )
2354
2306
  goto _test_eof126;
2355
2307
  case 126:
2356
- #line 2357 "wikitext_ragel.c"
2308
+ #line 2309 "wikitext_ragel.c"
2357
2309
  switch( (*p) ) {
2358
- case 43: goto st98;
2359
- case 46: goto st20;
2360
- case 47: goto st98;
2361
- case 64: goto st109;
2362
- case 76: goto tr178;
2363
- case 92: goto st98;
2364
- case 94: goto st98;
2365
- case 95: goto tr121;
2366
- case 108: goto tr178;
2367
- case 126: goto st98;
2310
+ case 64: goto st21;
2311
+ case 76: goto tr179;
2312
+ case 95: goto st20;
2313
+ case 108: goto tr179;
2368
2314
  }
2369
- if ( (*p) < 45 ) {
2370
- if ( 36 <= (*p) && (*p) <= 37 )
2371
- goto st98;
2315
+ if ( (*p) < 48 ) {
2316
+ if ( 45 <= (*p) && (*p) <= 46 )
2317
+ goto st20;
2372
2318
  } else if ( (*p) > 57 ) {
2373
2319
  if ( (*p) > 90 ) {
2374
2320
  if ( 97 <= (*p) && (*p) <= 122 )
2375
- goto tr121;
2321
+ goto tr123;
2376
2322
  } else if ( (*p) >= 65 )
2377
- goto tr121;
2323
+ goto tr123;
2378
2324
  } else
2379
- goto tr121;
2380
- goto tr141;
2381
- tr178:
2325
+ goto tr123;
2326
+ goto tr157;
2327
+ tr179:
2382
2328
  #line 1 "wikitext_ragel.rl"
2383
2329
  {te = p+1;}
2384
- #line 426 "wikitext_ragel.rl"
2330
+ #line 420 "wikitext_ragel.rl"
2385
2331
  {act = 42;}
2386
2332
  goto st127;
2387
2333
  st127:
2388
2334
  if ( ++p == pe )
2389
2335
  goto _test_eof127;
2390
2336
  case 127:
2391
- #line 2392 "wikitext_ragel.c"
2337
+ #line 2338 "wikitext_ragel.c"
2392
2338
  switch( (*p) ) {
2393
- case 43: goto st98;
2394
- case 46: goto st20;
2395
- case 47: goto st98;
2396
- case 64: goto st109;
2397
- case 84: goto tr179;
2398
- case 92: goto st98;
2399
- case 94: goto st98;
2400
- case 95: goto tr121;
2401
- case 116: goto tr179;
2402
- case 126: goto st98;
2339
+ case 64: goto st21;
2340
+ case 84: goto tr180;
2341
+ case 95: goto st20;
2342
+ case 116: goto tr180;
2403
2343
  }
2404
- if ( (*p) < 45 ) {
2405
- if ( 36 <= (*p) && (*p) <= 37 )
2406
- goto st98;
2344
+ if ( (*p) < 48 ) {
2345
+ if ( 45 <= (*p) && (*p) <= 46 )
2346
+ goto st20;
2407
2347
  } else if ( (*p) > 57 ) {
2408
2348
  if ( (*p) > 90 ) {
2409
2349
  if ( 97 <= (*p) && (*p) <= 122 )
2410
- goto tr121;
2350
+ goto tr123;
2411
2351
  } else if ( (*p) >= 65 )
2412
- goto tr121;
2352
+ goto tr123;
2413
2353
  } else
2414
- goto tr121;
2415
- goto tr141;
2416
- tr179:
2354
+ goto tr123;
2355
+ goto tr157;
2356
+ tr180:
2417
2357
  #line 1 "wikitext_ragel.rl"
2418
2358
  {te = p+1;}
2419
- #line 426 "wikitext_ragel.rl"
2359
+ #line 420 "wikitext_ragel.rl"
2420
2360
  {act = 42;}
2421
2361
  goto st128;
2422
2362
  st128:
2423
2363
  if ( ++p == pe )
2424
2364
  goto _test_eof128;
2425
2365
  case 128:
2426
- #line 2427 "wikitext_ragel.c"
2366
+ #line 2367 "wikitext_ragel.c"
2427
2367
  switch( (*p) ) {
2428
- case 43: goto st98;
2429
- case 46: goto st20;
2430
- case 47: goto st98;
2431
- case 64: goto st109;
2432
- case 79: goto tr180;
2433
- case 92: goto st98;
2434
- case 94: goto st98;
2435
- case 95: goto tr121;
2436
- case 111: goto tr180;
2437
- case 126: goto st98;
2368
+ case 64: goto st21;
2369
+ case 79: goto tr181;
2370
+ case 95: goto st20;
2371
+ case 111: goto tr181;
2438
2372
  }
2439
- if ( (*p) < 45 ) {
2440
- if ( 36 <= (*p) && (*p) <= 37 )
2441
- goto st98;
2373
+ if ( (*p) < 48 ) {
2374
+ if ( 45 <= (*p) && (*p) <= 46 )
2375
+ goto st20;
2442
2376
  } else if ( (*p) > 57 ) {
2443
2377
  if ( (*p) > 90 ) {
2444
2378
  if ( 97 <= (*p) && (*p) <= 122 )
2445
- goto tr121;
2379
+ goto tr123;
2446
2380
  } else if ( (*p) >= 65 )
2447
- goto tr121;
2381
+ goto tr123;
2448
2382
  } else
2449
- goto tr121;
2450
- goto tr141;
2451
- tr180:
2383
+ goto tr123;
2384
+ goto tr157;
2385
+ tr181:
2452
2386
  #line 1 "wikitext_ragel.rl"
2453
2387
  {te = p+1;}
2454
- #line 426 "wikitext_ragel.rl"
2388
+ #line 420 "wikitext_ragel.rl"
2455
2389
  {act = 42;}
2456
2390
  goto st129;
2457
2391
  st129:
2458
2392
  if ( ++p == pe )
2459
2393
  goto _test_eof129;
2460
2394
  case 129:
2461
- #line 2462 "wikitext_ragel.c"
2395
+ #line 2396 "wikitext_ragel.c"
2462
2396
  switch( (*p) ) {
2463
- case 43: goto st98;
2464
- case 46: goto st20;
2465
- case 47: goto st98;
2466
2397
  case 58: goto st88;
2467
- case 64: goto st109;
2468
- case 92: goto st98;
2469
- case 94: goto st98;
2470
- case 95: goto tr121;
2471
- case 126: goto st98;
2398
+ case 64: goto st21;
2399
+ case 95: goto st20;
2472
2400
  }
2473
- if ( (*p) < 45 ) {
2474
- if ( 36 <= (*p) && (*p) <= 37 )
2475
- goto st98;
2401
+ if ( (*p) < 48 ) {
2402
+ if ( 45 <= (*p) && (*p) <= 46 )
2403
+ goto st20;
2476
2404
  } else if ( (*p) > 57 ) {
2477
2405
  if ( (*p) > 90 ) {
2478
2406
  if ( 97 <= (*p) && (*p) <= 122 )
2479
- goto tr121;
2407
+ goto tr123;
2480
2408
  } else if ( (*p) >= 65 )
2481
- goto tr121;
2409
+ goto tr123;
2482
2410
  } else
2483
- goto tr121;
2484
- goto tr141;
2411
+ goto tr123;
2412
+ goto tr157;
2485
2413
  st88:
2486
2414
  if ( ++p == pe )
2487
2415
  goto _test_eof88;
@@ -2586,7 +2514,7 @@ st130:
2586
2514
  if ( ++p == pe )
2587
2515
  goto _test_eof130;
2588
2516
  case 130:
2589
- #line 2590 "wikitext_ragel.c"
2517
+ #line 2518 "wikitext_ragel.c"
2590
2518
  if ( (*p) == 46 )
2591
2519
  goto st92;
2592
2520
  if ( (*p) < 65 ) {
@@ -2594,11 +2522,11 @@ case 130:
2594
2522
  goto st91;
2595
2523
  } else if ( (*p) > 90 ) {
2596
2524
  if ( 97 <= (*p) && (*p) <= 122 )
2597
- goto tr182;
2525
+ goto tr183;
2598
2526
  } else
2599
- goto tr182;
2600
- goto tr172;
2601
- tr182:
2527
+ goto tr183;
2528
+ goto tr173;
2529
+ tr183:
2602
2530
  #line 1 "wikitext_ragel.rl"
2603
2531
  {te = p+1;}
2604
2532
  #line 281 "wikitext_ragel.rl"
@@ -2608,7 +2536,7 @@ st131:
2608
2536
  if ( ++p == pe )
2609
2537
  goto _test_eof131;
2610
2538
  case 131:
2611
- #line 2612 "wikitext_ragel.c"
2539
+ #line 2540 "wikitext_ragel.c"
2612
2540
  if ( (*p) == 46 )
2613
2541
  goto st92;
2614
2542
  if ( (*p) < 65 ) {
@@ -2616,11 +2544,11 @@ case 131:
2616
2544
  goto st91;
2617
2545
  } else if ( (*p) > 90 ) {
2618
2546
  if ( 97 <= (*p) && (*p) <= 122 )
2619
- goto tr183;
2547
+ goto tr184;
2620
2548
  } else
2621
- goto tr183;
2622
- goto tr172;
2623
- tr183:
2549
+ goto tr184;
2550
+ goto tr173;
2551
+ tr184:
2624
2552
  #line 1 "wikitext_ragel.rl"
2625
2553
  {te = p+1;}
2626
2554
  #line 281 "wikitext_ragel.rl"
@@ -2630,7 +2558,7 @@ st132:
2630
2558
  if ( ++p == pe )
2631
2559
  goto _test_eof132;
2632
2560
  case 132:
2633
- #line 2634 "wikitext_ragel.c"
2561
+ #line 2562 "wikitext_ragel.c"
2634
2562
  if ( (*p) == 46 )
2635
2563
  goto st92;
2636
2564
  if ( (*p) < 65 ) {
@@ -2638,11 +2566,11 @@ case 132:
2638
2566
  goto st91;
2639
2567
  } else if ( (*p) > 90 ) {
2640
2568
  if ( 97 <= (*p) && (*p) <= 122 )
2641
- goto tr184;
2569
+ goto tr185;
2642
2570
  } else
2643
- goto tr184;
2644
- goto tr172;
2645
- tr184:
2571
+ goto tr185;
2572
+ goto tr173;
2573
+ tr185:
2646
2574
  #line 1 "wikitext_ragel.rl"
2647
2575
  {te = p+1;}
2648
2576
  #line 281 "wikitext_ragel.rl"
@@ -2652,7 +2580,7 @@ st133:
2652
2580
  if ( ++p == pe )
2653
2581
  goto _test_eof133;
2654
2582
  case 133:
2655
- #line 2656 "wikitext_ragel.c"
2583
+ #line 2584 "wikitext_ragel.c"
2656
2584
  if ( (*p) == 46 )
2657
2585
  goto st92;
2658
2586
  if ( (*p) < 65 ) {
@@ -2663,105 +2591,93 @@ case 133:
2663
2591
  goto st91;
2664
2592
  } else
2665
2593
  goto st91;
2666
- goto tr172;
2667
- tr129:
2594
+ goto tr173;
2595
+ tr130:
2668
2596
  #line 1 "wikitext_ragel.rl"
2669
2597
  {te = p+1;}
2670
- #line 426 "wikitext_ragel.rl"
2598
+ #line 420 "wikitext_ragel.rl"
2671
2599
  {act = 42;}
2672
2600
  goto st134;
2673
2601
  st134:
2674
2602
  if ( ++p == pe )
2675
2603
  goto _test_eof134;
2676
2604
  case 134:
2677
- #line 2678 "wikitext_ragel.c"
2605
+ #line 2606 "wikitext_ragel.c"
2678
2606
  switch( (*p) ) {
2679
- case 43: goto st98;
2680
- case 46: goto st20;
2681
- case 47: goto st98;
2682
- case 64: goto st109;
2683
- case 86: goto tr185;
2684
- case 92: goto st98;
2685
- case 94: goto st98;
2686
- case 95: goto tr121;
2687
- case 118: goto tr185;
2688
- case 126: goto st98;
2607
+ case 64: goto st21;
2608
+ case 86: goto tr186;
2609
+ case 95: goto st20;
2610
+ case 118: goto tr186;
2689
2611
  }
2690
- if ( (*p) < 45 ) {
2691
- if ( 36 <= (*p) && (*p) <= 37 )
2692
- goto st98;
2612
+ if ( (*p) < 48 ) {
2613
+ if ( 45 <= (*p) && (*p) <= 46 )
2614
+ goto st20;
2693
2615
  } else if ( (*p) > 57 ) {
2694
2616
  if ( (*p) > 90 ) {
2695
2617
  if ( 97 <= (*p) && (*p) <= 122 )
2696
- goto tr121;
2618
+ goto tr123;
2697
2619
  } else if ( (*p) >= 65 )
2698
- goto tr121;
2620
+ goto tr123;
2699
2621
  } else
2700
- goto tr121;
2701
- goto tr141;
2702
- tr185:
2622
+ goto tr123;
2623
+ goto tr157;
2624
+ tr186:
2703
2625
  #line 1 "wikitext_ragel.rl"
2704
2626
  {te = p+1;}
2705
- #line 426 "wikitext_ragel.rl"
2627
+ #line 420 "wikitext_ragel.rl"
2706
2628
  {act = 42;}
2707
2629
  goto st135;
2708
2630
  st135:
2709
2631
  if ( ++p == pe )
2710
2632
  goto _test_eof135;
2711
2633
  case 135:
2712
- #line 2713 "wikitext_ragel.c"
2634
+ #line 2635 "wikitext_ragel.c"
2713
2635
  switch( (*p) ) {
2714
- case 43: goto st98;
2715
- case 46: goto st20;
2716
- case 47: goto st98;
2717
- case 64: goto st109;
2718
- case 78: goto tr170;
2719
- case 92: goto st98;
2720
- case 94: goto st98;
2721
- case 95: goto tr121;
2722
- case 110: goto tr170;
2723
- case 126: goto st98;
2636
+ case 64: goto st21;
2637
+ case 78: goto tr171;
2638
+ case 95: goto st20;
2639
+ case 110: goto tr171;
2724
2640
  }
2725
- if ( (*p) < 45 ) {
2726
- if ( 36 <= (*p) && (*p) <= 37 )
2727
- goto st98;
2641
+ if ( (*p) < 48 ) {
2642
+ if ( 45 <= (*p) && (*p) <= 46 )
2643
+ goto st20;
2728
2644
  } else if ( (*p) > 57 ) {
2729
2645
  if ( (*p) > 90 ) {
2730
2646
  if ( 97 <= (*p) && (*p) <= 122 )
2731
- goto tr121;
2647
+ goto tr123;
2732
2648
  } else if ( (*p) >= 65 )
2733
- goto tr121;
2649
+ goto tr123;
2734
2650
  } else
2735
- goto tr121;
2736
- goto tr141;
2651
+ goto tr123;
2652
+ goto tr157;
2737
2653
  st136:
2738
2654
  if ( ++p == pe )
2739
2655
  goto _test_eof136;
2740
2656
  case 136:
2741
2657
  if ( (*p) == 91 )
2742
- goto tr187;
2743
- goto tr186;
2658
+ goto tr188;
2659
+ goto tr187;
2744
2660
  st137:
2745
2661
  if ( ++p == pe )
2746
2662
  goto _test_eof137;
2747
2663
  case 137:
2748
2664
  if ( (*p) == 93 )
2749
- goto tr189;
2750
- goto tr188;
2665
+ goto tr190;
2666
+ goto tr189;
2751
2667
  st138:
2752
2668
  if ( ++p == pe )
2753
2669
  goto _test_eof138;
2754
2670
  case 138:
2755
2671
  if ( (*p) == 123 )
2756
- goto tr191;
2757
- goto tr190;
2672
+ goto tr192;
2673
+ goto tr191;
2758
2674
  st139:
2759
2675
  if ( ++p == pe )
2760
2676
  goto _test_eof139;
2761
2677
  case 139:
2762
2678
  if ( (*p) == 125 )
2763
- goto tr193;
2764
- goto tr192;
2679
+ goto tr194;
2680
+ goto tr193;
2765
2681
  }
2766
2682
  _test_eof94: cs = 94; goto _test_eof;
2767
2683
  _test_eof1: cs = 1; goto _test_eof;
@@ -2907,11 +2823,11 @@ case 139:
2907
2823
  if ( p == eof )
2908
2824
  {
2909
2825
  switch ( cs ) {
2910
- case 95: goto tr136;
2911
- case 96: goto tr138;
2912
- case 97: goto tr140;
2913
- case 98: goto tr141;
2914
- case 99: goto tr142;
2826
+ case 95: goto tr137;
2827
+ case 96: goto tr139;
2828
+ case 97: goto tr141;
2829
+ case 98: goto tr142;
2830
+ case 99: goto tr143;
2915
2831
  case 7: goto tr7;
2916
2832
  case 8: goto tr7;
2917
2833
  case 9: goto tr7;
@@ -2925,24 +2841,24 @@ case 139:
2925
2841
  case 17: goto tr7;
2926
2842
  case 18: goto tr7;
2927
2843
  case 19: goto tr7;
2928
- case 100: goto tr146;
2929
- case 101: goto tr146;
2930
- case 102: goto tr146;
2931
- case 103: goto tr146;
2932
- case 104: goto tr141;
2844
+ case 100: goto tr147;
2845
+ case 101: goto tr147;
2846
+ case 102: goto tr147;
2847
+ case 103: goto tr147;
2848
+ case 104: goto tr142;
2933
2849
  case 20: goto tr23;
2934
2850
  case 21: goto tr23;
2935
2851
  case 22: goto tr23;
2936
2852
  case 23: goto tr23;
2937
2853
  case 24: goto tr23;
2938
- case 105: goto tr152;
2939
- case 106: goto tr152;
2940
- case 107: goto tr152;
2941
- case 108: goto tr152;
2942
- case 109: goto tr141;
2854
+ case 105: goto tr153;
2855
+ case 106: goto tr153;
2856
+ case 107: goto tr153;
2857
+ case 108: goto tr153;
2858
+ case 109: goto tr142;
2943
2859
  case 110: goto tr141;
2944
- case 111: goto tr140;
2945
- case 112: goto tr157;
2860
+ case 111: goto tr157;
2861
+ case 112: goto tr158;
2946
2862
  case 25: goto tr30;
2947
2863
  case 26: goto tr30;
2948
2864
  case 27: goto tr30;
@@ -3002,49 +2918,49 @@ case 139:
3002
2918
  case 81: goto tr30;
3003
2919
  case 82: goto tr30;
3004
2920
  case 83: goto tr30;
3005
- case 113: goto tr165;
3006
- case 114: goto tr165;
3007
- case 115: goto tr167;
3008
- case 116: goto tr141;
3009
- case 117: goto tr141;
3010
- case 118: goto tr141;
2921
+ case 113: goto tr166;
2922
+ case 114: goto tr166;
2923
+ case 115: goto tr168;
2924
+ case 116: goto tr157;
2925
+ case 117: goto tr157;
2926
+ case 118: goto tr157;
3011
2927
  case 84: goto tr95;
3012
2928
  case 85: goto tr95;
3013
2929
  case 86: goto tr95;
3014
- case 119: goto tr172;
2930
+ case 119: goto tr173;
3015
2931
  case 87: goto tr99;
3016
- case 120: goto tr141;
3017
- case 121: goto tr141;
3018
- case 122: goto tr141;
3019
- case 123: goto tr141;
3020
- case 124: goto tr141;
3021
- case 125: goto tr141;
3022
- case 126: goto tr141;
3023
- case 127: goto tr141;
3024
- case 128: goto tr141;
3025
- case 129: goto tr141;
2932
+ case 120: goto tr157;
2933
+ case 121: goto tr157;
2934
+ case 122: goto tr157;
2935
+ case 123: goto tr157;
2936
+ case 124: goto tr157;
2937
+ case 125: goto tr157;
2938
+ case 126: goto tr157;
2939
+ case 127: goto tr157;
2940
+ case 128: goto tr157;
2941
+ case 129: goto tr157;
3026
2942
  case 88: goto tr95;
3027
2943
  case 89: goto tr95;
3028
2944
  case 90: goto tr95;
3029
2945
  case 91: goto tr23;
3030
2946
  case 92: goto tr23;
3031
2947
  case 93: goto tr23;
3032
- case 130: goto tr172;
3033
- case 131: goto tr172;
3034
- case 132: goto tr172;
3035
- case 133: goto tr172;
3036
- case 134: goto tr141;
3037
- case 135: goto tr141;
3038
- case 136: goto tr186;
3039
- case 137: goto tr188;
3040
- case 138: goto tr190;
3041
- case 139: goto tr192;
2948
+ case 130: goto tr173;
2949
+ case 131: goto tr173;
2950
+ case 132: goto tr173;
2951
+ case 133: goto tr173;
2952
+ case 134: goto tr157;
2953
+ case 135: goto tr157;
2954
+ case 136: goto tr187;
2955
+ case 137: goto tr189;
2956
+ case 138: goto tr191;
2957
+ case 139: goto tr193;
3042
2958
  }
3043
2959
  }
3044
2960
 
3045
2961
  _out: {}
3046
2962
  }
3047
- #line 498 "wikitext_ragel.rl"
2963
+ #line 504 "wikitext_ragel.rl"
3048
2964
  if (cs == wikitext_error)
3049
2965
  rb_raise(eWikitextParserError, "failed before finding a token");
3050
2966
  else if (out->type == NO_TOKEN)