github-linguist 7.12.2 → 7.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/ext/linguist/lex.linguist_yy.c +579 -335
  3. data/ext/linguist/lex.linguist_yy.h +10 -9
  4. data/ext/linguist/tokenizer.l +47 -54
  5. data/grammars/etc.json +1 -1
  6. data/grammars/markdown.lean.codeblock.json +1 -0
  7. data/grammars/source.abap.json +1 -1
  8. data/grammars/source.abapcds.json +1 -0
  9. data/grammars/source.ats.json +1 -1
  10. data/grammars/source.ballerina.json +1 -1
  11. data/grammars/source.boogie.json +1 -0
  12. data/grammars/source.cirru.json +1 -1
  13. data/grammars/source.clarion.json +1 -1
  14. data/grammars/source.css.json +1 -1
  15. data/grammars/source.d.json +1 -1
  16. data/grammars/source.elixir.json +1 -1
  17. data/grammars/source.fsharp.json +1 -1
  18. data/grammars/source.gcode.json +1 -1
  19. data/grammars/source.gdscript.json +1 -1
  20. data/grammars/source.idris.json +1 -1
  21. data/grammars/source.isabelle.theory.json +1 -1
  22. data/grammars/source.j.json +1 -1
  23. data/grammars/source.js.json +1 -1
  24. data/grammars/source.julia.json +1 -1
  25. data/grammars/source.kotlin.json +1 -1
  26. data/grammars/source.lilypond.json +1 -1
  27. data/grammars/source.m2.json +1 -1
  28. data/grammars/source.meson.json +1 -1
  29. data/grammars/source.msl.json +1 -1
  30. data/grammars/source.nunjucks.json +1 -0
  31. data/grammars/source.prisma.json +1 -1
  32. data/grammars/source.qsharp.json +1 -1
  33. data/grammars/source.rebol.json +1 -1
  34. data/grammars/source.record-jar.json +1 -0
  35. data/grammars/source.red.json +1 -1
  36. data/grammars/source.regexp.json +1 -1
  37. data/grammars/source.regexp.posix.json +1 -0
  38. data/grammars/source.rescript.json +1 -1
  39. data/grammars/source.ruby.json +1 -1
  40. data/grammars/source.scala.json +1 -1
  41. data/grammars/source.swift.json +1 -1
  42. data/grammars/source.sy.json +1 -1
  43. data/grammars/source.ts.json +1 -1
  44. data/grammars/source.tsx.json +1 -1
  45. data/grammars/source.v.json +1 -1
  46. data/grammars/source.viml.json +1 -1
  47. data/grammars/source.webidl.json +1 -1
  48. data/grammars/source.zeek.json +1 -1
  49. data/grammars/text.browserslist.json +1 -1
  50. data/grammars/text.checksums.json +1 -0
  51. data/grammars/text.html.erb.json +1 -1
  52. data/grammars/text.html.liquid.json +1 -1
  53. data/grammars/text.html.nunjucks.json +1 -0
  54. data/grammars/text.roff.json +1 -1
  55. data/grammars/text.xml.svg.json +1 -1
  56. data/grammars/version +1 -1
  57. data/lib/linguist/VERSION +1 -1
  58. data/lib/linguist/classifier.rb +9 -5
  59. data/lib/linguist/generated.rb +9 -0
  60. data/lib/linguist/generic.yml +1 -0
  61. data/lib/linguist/heuristics.yml +17 -2
  62. data/lib/linguist/language.rb +4 -2
  63. data/lib/linguist/languages.json +1 -1
  64. data/lib/linguist/languages.yml +80 -20
  65. data/lib/linguist/linguist.bundle +0 -0
  66. data/lib/linguist/samples.json +1 -1
  67. data/lib/linguist/samples.rb +2 -2
  68. data/lib/linguist/vendor.yml +1 -1
  69. metadata +11 -6
  70. data/grammars/source.css.scss.liquid.json +0 -1
  71. data/grammars/source.js.css.json +0 -1
  72. data/grammars/source.js.jsx.json +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8654242f59f1cc8c5fd176ba4eb8110e2e38dcbe68c514157fbc0cdf7c866b1b
4
- data.tar.gz: 91d4cc31ac12243370163bb0bb37660732d4f4fb097c8f879b8fe0d4ab5dd6d6
3
+ metadata.gz: c89155dae3df838c6e0a40aa959d26ec8b4b0fcbd72c4d65ee342939bedccc16
4
+ data.tar.gz: 5f5c64b53db69e93454afb651c23b317458cb54e328fdcc12d20250475523e90
5
5
  SHA512:
6
- metadata.gz: d5434cb283ef28101559a535af7723871e3d1b3d9ef9a4e0549cc2c4ffe68af43a041ef3d40166a93e4935a028b329a7b9cda0ee17ccdcf7f1313de5be33eda0
7
- data.tar.gz: 1c990823ab436a43564dcc31701e7f8168e22f63cb88e86dcda860b5992e2906c13d336d4547b8726e21605ed61e64076710835611e94d97feab451d8affb175
6
+ metadata.gz: fc2cf3e88c30e266619b12ff0c06c03042b471df4e6cefc978c3f346ad9bccfa2de5732917cffd167c1ce7d788ed1fa2421710996ee95bea4e679dcdf0f11968
7
+ data.tar.gz: be903fbbc5426eadb866949db44e7c5764499c51b27369a0495e8a787384b3cccd7577c2cd354a816c7fca2e400a32dea9551beec9fc2c958e8d18ef388373fb
@@ -541,12 +541,13 @@ static void yynoreturn yy_fatal_error ( const char* msg , yyscan_t yyscanner );
541
541
  */
542
542
  #define YY_DO_BEFORE_ACTION \
543
543
  yyg->yytext_ptr = yy_bp; \
544
- yyleng = (int) (yy_cp - yy_bp); \
544
+ yyg->yytext_ptr -= yyg->yy_more_len; \
545
+ yyleng = (int) (yy_cp - yyg->yytext_ptr); \
545
546
  yyg->yy_hold_char = *yy_cp; \
546
547
  *yy_cp = '\0'; \
547
548
  yyg->yy_c_buf_p = yy_cp;
548
- #define YY_NUM_RULES 31
549
- #define YY_END_OF_BUFFER 32
549
+ #define YY_NUM_RULES 45
550
+ #define YY_END_OF_BUFFER 46
550
551
  /* This struct is not used in this scanner,
551
552
  but its presence is necessary. */
552
553
  struct yy_trans_info
@@ -554,21 +555,64 @@ struct yy_trans_info
554
555
  flex_int32_t yy_verify;
555
556
  flex_int32_t yy_nxt;
556
557
  };
557
- static const flex_int16_t yy_accept[114] =
558
+ static const flex_int16_t yy_acclist[262] =
558
559
  { 0,
559
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
560
- 0, 0, 0, 0, 0, 0, 32, 30, 17, 28,
561
- 29, 29, 18, 27, 27, 28, 28, 19, 19, 29,
562
- 27, 29, 30, 17, 28, 29, 29, 28, 26, 24,
563
- 25, 9, 9, 9, 9, 9, 9, 9, 16, 28,
564
- 29, 16, 6, 4, 19, 28, 19, 19, 28, 20,
565
- 29, 5, 29, 0, 0, 0, 0, 3, 0, 28,
566
- 24, 23, 10, 0, 12, 13, 0, 0, 7, 8,
567
- 19, 19, 19, 3, 0, 2, 0, 2, 2, 21,
568
- 22, 23, 11, 14, 15, 19, 19, 19, 19, 19,
569
-
570
- 19, 0, 2, 0, 2, 0, 0, 0, 0, 0,
571
- 1, 0, 0
560
+ 46, 44, 45, 42, 44, 45,16422, 31, 44, 45,
561
+ 42, 44, 45,16422, 32, 44, 45, 36, 44, 45,
562
+ 36, 44, 45, 43, 44, 45, 33, 34, 44, 45,
563
+ 33, 34, 44, 45, 43, 44, 45, 34, 44, 45,
564
+ 36, 44, 45, 34, 42, 44, 45,16422, 36, 44,
565
+ 45, 44, 45, 31, 44, 45, 42, 44, 45,16422,
566
+ 42, 44, 45,16422, 32, 44, 45, 42, 44, 45,
567
+ 16422, 42, 44, 45,16422, 43, 44, 45, 42, 44,
568
+ 45,16422, 22, 45, 22, 45, 22, 45, 22, 45,
569
+ 22, 45, 22, 45, 22, 45, 22, 45, 45, 42,
570
+
571
+ 45,16422, 43, 45, 37, 42,16422, 30, 34, 37,
572
+ 34, 42,16422, 30, 35, 18, 39, 15, 33, 33,
573
+ 34, 34, 34, 33, 34, 33, 34, 34, 17, 8,
574
+ 8, 3, 37, 3, 37, 42,16422, 42,16422, 7,
575
+ 37, 7, 37, 42,16422, 42,16422, 37, 42,16422,
576
+ 34, 37, 5, 9, 37, 9, 37, 42,16422, 23,
577
+ 25, 26, 8230, 19, 20, 14, 13, 41, 33, 33,
578
+ 33, 33, 34, 33, 34, 3, 3, 7, 7, 5,
579
+ 9, 9, 8, 3, 37, 2, 37, 2, 37, 2,
580
+ 42,16422, 2, 37, 7, 11, 6, 37, 6, 37,
581
+
582
+ 10, 37, 34, 5, 39, 5, 39, 5, 5, 5,
583
+ 41, 5, 5, 9, 24, 27, 28, 29, 12, 33,
584
+ 33, 33, 34, 33, 33, 34, 33, 34, 33, 34,
585
+ 16, 6, 6, 5, 2, 2, 2, 2, 11, 11,
586
+ 6, 10, 10, 10, 21, 4, 5, 4, 5, 5,
587
+ 40, 33, 33, 33, 2, 4, 5, 5, 5, 40,
588
+ 1
589
+ } ;
590
+
591
+ static const flex_int16_t yy_accept[211] =
592
+ { 0,
593
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
594
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
595
+ 4, 8, 11, 15, 18, 21, 24, 27, 31, 35,
596
+ 38, 41, 44, 49, 52, 54, 57, 61, 65, 68,
597
+ 72, 76, 79, 83, 85, 87, 89, 91, 93, 95,
598
+ 97, 99, 100, 103, 105, 106, 108, 108, 108, 109,
599
+ 111, 114, 115, 116, 117, 118, 119, 119, 119, 120,
600
+ 122, 123, 124, 126, 128, 129, 129, 130, 130, 130,
601
+ 130, 130, 130, 130, 130, 131, 132, 134, 136, 138,
602
+ 140, 142, 144, 146, 146, 146, 148, 149, 151, 153,
603
+
604
+ 154, 156, 158, 160, 161, 161, 162, 163, 163, 163,
605
+ 163, 164, 164, 165, 166, 167, 168, 169, 169, 169,
606
+ 170, 171, 172, 174, 176, 176, 177, 178, 179, 180,
607
+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 190,
608
+ 193, 195, 196, 197, 199, 201, 201, 201, 203, 204,
609
+ 206, 208, 209, 210, 212, 213, 214, 215, 216, 217,
610
+ 218, 219, 219, 220, 220, 221, 222, 224, 225, 227,
611
+ 229, 231, 232, 233, 234, 235, 235, 236, 236, 237,
612
+ 238, 238, 239, 240, 241, 242, 243, 244, 245, 246,
613
+ 248, 250, 251, 252, 253, 254, 255, 255, 256, 258,
614
+
615
+ 259, 259, 259, 261, 261, 261, 261, 262, 262, 262
572
616
  } ;
573
617
 
574
618
  static const YY_CHAR yy_ec[256] =
@@ -576,17 +620,17 @@ static const YY_CHAR yy_ec[256] =
576
620
  1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
577
621
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
578
622
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
579
- 1, 4, 5, 6, 7, 1, 8, 9, 10, 11,
580
- 12, 13, 14, 1, 15, 16, 17, 18, 19, 19,
581
- 19, 19, 19, 19, 19, 19, 19, 1, 20, 21,
582
- 22, 23, 24, 25, 26, 26, 26, 26, 27, 28,
583
- 29, 29, 29, 29, 29, 30, 29, 29, 29, 29,
584
- 29, 29, 29, 29, 31, 29, 29, 29, 29, 29,
585
- 32, 1, 33, 1, 29, 1, 26, 26, 26, 26,
586
-
587
- 34, 28, 29, 29, 29, 29, 29, 30, 29, 35,
588
- 29, 29, 29, 29, 29, 29, 31, 36, 29, 37,
589
- 29, 29, 38, 39, 40, 1, 1, 1, 1, 1,
623
+ 1, 4, 5, 6, 7, 8, 9, 8, 10, 11,
624
+ 12, 13, 14, 8, 15, 16, 17, 18, 19, 19,
625
+ 19, 19, 19, 19, 19, 19, 19, 8, 20, 21,
626
+ 22, 23, 8, 24, 25, 25, 25, 25, 26, 27,
627
+ 28, 28, 28, 28, 28, 29, 28, 28, 28, 28,
628
+ 28, 28, 28, 28, 30, 28, 28, 28, 28, 28,
629
+ 31, 32, 33, 8, 34, 8, 25, 25, 25, 25,
630
+
631
+ 35, 27, 36, 28, 37, 28, 28, 29, 28, 38,
632
+ 28, 28, 28, 28, 28, 28, 30, 39, 28, 40,
633
+ 28, 28, 41, 8, 42, 8, 1, 1, 1, 1,
590
634
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
591
635
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
592
636
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -603,152 +647,256 @@ static const YY_CHAR yy_ec[256] =
603
647
  1, 1, 1, 1, 1
604
648
  } ;
605
649
 
606
- static const YY_CHAR yy_meta[41] =
650
+ static const YY_CHAR yy_meta[43] =
607
651
  { 0,
608
- 1, 2, 3, 2, 4, 5, 6, 1, 1, 5,
609
- 1, 1, 6, 1, 4, 7, 8, 9, 9, 1,
610
- 4, 10, 1, 4, 6, 9, 9, 9, 9, 9,
611
- 9, 1, 1, 9, 9, 9, 9, 1, 1, 1
652
+ 1, 2, 3, 2, 4, 1, 4, 4, 4, 1,
653
+ 1, 1, 1, 4, 4, 4, 5, 6, 6, 4,
654
+ 1, 4, 4, 4, 6, 6, 6, 6, 6, 6,
655
+ 1, 4, 1, 7, 6, 6, 6, 6, 6, 6,
656
+ 1, 1
612
657
  } ;
613
658
 
614
- static const flex_int16_t yy_base[125] =
659
+ static const flex_int16_t yy_base[228] =
615
660
  { 0,
616
- 0, 39, 39, 59, 214, 213, 210, 209, 208, 207,
617
- 208, 207, 213, 212, 207, 206, 215, 358, 208, 0,
618
- 358, 204, 202, 197, 358, 0, 194, 90, 112, 185,
619
- 190, 165, 145, 38, 44, 199, 184, 38, 358, 174,
620
- 358, 358, 178, 179, 151, 176, 180, 174, 174, 0,
621
- 358, 168, 358, 0, 0, 38, 31, 140, 137, 140,
622
- 358, 358, 358, 0, 154, 139, 133, 0, 155, 141,
623
- 122, 54, 358, 118, 358, 358, 131, 113, 358, 358,
624
- 53, 84, 174, 0, 164, 96, 62, 100, 28, 358,
625
- 358, 74, 358, 358, 358, 157, 71, 0, 0, 77,
626
-
627
- 0, 88, 14, 94, 108, 96, 207, 131, 175, 134,
628
- 243, 165, 358, 280, 290, 295, 301, 302, 312, 321,
629
- 326, 328, 337, 347
661
+ 0, 41, 521, 520, 517, 516, 515, 514, 514, 505,
662
+ 511, 510, 499, 498, 490, 489, 57, 87, 504, 680,
663
+ 117, 497, 151, 492, 40, 680, 42, 178, 461, 206,
664
+ 0, 467, 0, 34, 226, 79, 83, 244, 65, 114,
665
+ 110, 208, 235, 680, 482, 483, 455, 484, 489, 484,
666
+ 477, 680, 141, 256, 680, 233, 479, 486, 484, 0,
667
+ 0, 478, 680, 680, 680, 41, 258, 267, 273, 445,
668
+ 0, 84, 86, 455, 279, 468, 680, 0, 102, 195,
669
+ 278, 467, 462, 206, 680, 0, 680, 0, 313, 309,
670
+ 680, 0, 0, 218, 469, 292, 305, 316, 438, 353,
671
+
672
+ 680, 0, 324, 680, 448, 680, 680, 462, 455, 461,
673
+ 680, 448, 680, 680, 680, 445, 680, 446, 113, 119,
674
+ 427, 378, 417, 392, 397, 680, 0, 680, 0, 132,
675
+ 251, 680, 0, 0, 0, 396, 431, 392, 227, 399,
676
+ 386, 0, 403, 680, 0, 421, 396, 333, 326, 318,
677
+ 680, 197, 307, 280, 269, 55, 0, 680, 680, 680,
678
+ 680, 255, 680, 219, 202, 410, 0, 451, 0, 271,
679
+ 0, 680, 680, 0, 680, 322, 211, 178, 310, 403,
680
+ 228, 391, 140, 680, 0, 117, 113, 680, 680, 680,
681
+ 90, 331, 680, 680, 279, 0, 273, 438, 81, 440,
682
+
683
+ 419, 485, 41, 443, 450, 418, 524, 455, 680, 564,
684
+ 571, 578, 585, 586, 593, 600, 607, 614, 621, 627,
685
+ 630, 637, 644, 651, 658, 665, 672
630
686
  } ;
631
687
 
632
- static const flex_int16_t yy_def[125] =
688
+ static const flex_int16_t yy_def[228] =
633
689
  { 0,
634
- 113, 1, 114, 114, 115, 115, 115, 115, 115, 115,
635
- 115, 115, 115, 115, 115, 115, 113, 113, 113, 116,
636
- 113, 113, 113, 113, 113, 116, 116, 113, 116, 117,
637
- 113, 113, 113, 113, 116, 113, 113, 116, 113, 118,
638
- 113, 113, 113, 113, 113, 113, 113, 113, 113, 116,
639
- 113, 113, 113, 116, 29, 116, 116, 116, 116, 117,
640
- 113, 113, 113, 33, 113, 113, 113, 119, 120, 116,
641
- 118, 121, 113, 113, 113, 113, 113, 113, 113, 113,
642
- 113, 116, 29, 119, 120, 85, 122, 85, 88, 113,
643
- 113, 121, 113, 113, 113, 113, 113, 116, 83, 83,
644
-
645
- 83, 122, 88, 122, 88, 122, 123, 122, 123, 124,
646
- 123, 124, 0, 113, 113, 113, 113, 113, 113, 113,
647
- 113, 113, 113, 113
690
+ 209, 1, 210, 210, 210, 210, 210, 210, 210, 210,
691
+ 210, 210, 210, 210, 210, 210, 211, 211, 209, 209,
692
+ 212, 209, 209, 209, 209, 209, 213, 209, 28, 213,
693
+ 214, 209, 23, 209, 209, 209, 23, 212, 209, 38,
694
+ 23, 213, 38, 209, 209, 209, 209, 209, 209, 209,
695
+ 209, 209, 38, 213, 209, 38, 209, 209, 209, 214,
696
+ 23, 209, 209, 209, 209, 209, 213, 213, 209, 28,
697
+ 214, 214, 214, 214, 214, 209, 209, 35, 209, 209,
698
+ 209, 209, 209, 209, 209, 215, 209, 216, 23, 38,
699
+ 209, 217, 38, 209, 209, 38, 209, 38, 214, 209,
700
+
701
+ 209, 218, 38, 209, 209, 209, 209, 209, 209, 209,
702
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
703
+ 209, 209, 214, 28, 209, 209, 216, 209, 217, 209,
704
+ 219, 209, 218, 215, 216, 220, 220, 221, 137, 89,
705
+ 137, 217, 222, 209, 223, 209, 209, 224, 214, 219,
706
+ 209, 219, 219, 219, 100, 100, 218, 209, 209, 209,
707
+ 209, 209, 209, 209, 209, 209, 214, 209, 124, 124,
708
+ 124, 209, 209, 223, 209, 137, 137, 221, 137, 137,
709
+ 221, 137, 222, 209, 223, 224, 224, 209, 209, 209,
710
+ 225, 219, 209, 209, 168, 168, 221, 137, 225, 219,
711
+
712
+ 221, 226, 219, 221, 226, 227, 226, 227, 0, 209,
713
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
714
+ 209, 209, 209, 209, 209, 209, 209
648
715
  } ;
649
716
 
650
- static const flex_int16_t yy_nxt[399] =
717
+ static const flex_int16_t yy_nxt[723] =
651
718
  { 0,
652
- 18, 18, 18, 18, 18, 19, 20, 21, 22, 23,
653
- 24, 25, 26, 21, 21, 20, 27, 28, 29, 25,
654
- 30, 18, 18, 18, 20, 20, 20, 20, 20, 20,
655
- 20, 25, 25, 20, 20, 20, 20, 31, 32, 25,
656
- 33, 68, 33, 49, 34, 35, 36, 68, 69, 105,
657
- 54, 81, 81, 37, 70, 38, 40, 40, 57, 90,
658
- 57, 41, 103, 91, 40, 40, 40, 40, 40, 40,
659
- 96, 96, 40, 40, 40, 40, 40, 40, 102, 113,
660
- 97, 41, 97, 113, 40, 40, 40, 40, 40, 40,
661
- 81, 81, 40, 40, 40, 40, 50, 113, 97, 113,
662
-
663
- 97, 113, 50, 113, 102, 55, 50, 55, 55, 107,
664
- 102, 107, 102, 98, 50, 50, 56, 57, 50, 57,
665
- 58, 104, 95, 56, 50, 50, 59, 55, 106, 55,
666
- 55, 108, 107, 88, 107, 107, 94, 107, 56, 57,
667
- 93, 57, 58, 72, 68, 56, 64, 102, 64, 65,
668
- 65, 65, 65, 65, 83, 83, 85, 68, 85, 66,
669
- 113, 67, 83, 83, 83, 85, 107, 85, 107, 82,
670
- 83, 86, 87, 87, 96, 96, 113, 80, 113, 79,
671
- 86, 87, 87, 78, 97, 77, 97, 76, 89, 99,
672
- 75, 99, 99, 74, 73, 72, 110, 89, 65, 99,
673
-
674
- 100, 101, 68, 63, 62, 61, 54, 100, 107, 53,
675
- 107, 52, 51, 49, 113, 48, 48, 47, 47, 46,
676
- 46, 45, 45, 44, 44, 43, 43, 113, 110, 113,
677
- 113, 113, 111, 111, 111, 111, 111, 111, 113, 113,
678
- 111, 111, 111, 111, 113, 113, 113, 113, 113, 113,
679
- 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
680
- 113, 113, 113, 113, 110, 113, 113, 113, 111, 111,
681
- 111, 111, 111, 111, 113, 113, 111, 111, 111, 111,
682
- 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
683
- 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
684
-
685
- 50, 50, 50, 50, 60, 113, 113, 60, 60, 60,
686
- 71, 71, 84, 84, 113, 84, 84, 84, 84, 84,
687
- 84, 84, 88, 113, 113, 113, 113, 113, 88, 88,
688
- 92, 113, 113, 113, 92, 87, 87, 109, 109, 109,
689
- 109, 109, 109, 109, 109, 109, 109, 112, 112, 112,
690
- 112, 112, 112, 112, 112, 112, 112, 17, 113, 113,
691
- 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
692
- 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
693
- 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
694
- 113, 113, 113, 113, 113, 113, 113, 113
695
-
719
+ 20, 20, 20, 20, 21, 22, 23, 21, 21, 24,
720
+ 25, 26, 21, 21, 21, 23, 27, 28, 29, 21,
721
+ 30, 21, 21, 23, 31, 31, 31, 31, 31, 31,
722
+ 32, 21, 26, 33, 31, 31, 31, 31, 31, 31,
723
+ 34, 26, 35, 175, 35, 115, 36, 37, 77, 38,
724
+ 39, 63, 64, 116, 66, 40, 41, 42, 67, 192,
725
+ 43, 53, 68, 53, 53, 53, 94, 153, 94, 53,
726
+ 53, 53, 53, 54, 62, 63, 53, 54, 53, 53,
727
+ 53, 85, 86, 175, 59, 87, 88, 89, 53, 90,
728
+ 53, 53, 175, 53, 53, 53, 95, 122, 122, 53,
729
+
730
+ 53, 53, 53, 54, 85, 86, 53, 54, 53, 53,
731
+ 53, 97, 73, 97, 73, 209, 55, 55, 53, 188,
732
+ 53, 56, 56, 56, 56, 56, 122, 122, 96, 56,
733
+ 56, 56, 56, 57, 173, 174, 56, 58, 56, 56,
734
+ 56, 98, 209, 55, 55, 120, 99, 120, 56, 56,
735
+ 56, 55, 55, 55, 55, 56, 55, 56, 56, 56,
736
+ 55, 55, 55, 56, 56, 56, 56, 57, 60, 60,
737
+ 56, 58, 56, 56, 56, 60, 60, 60, 60, 60,
738
+ 60, 55, 56, 55, 61, 60, 60, 60, 60, 60,
739
+ 60, 55, 55, 69, 181, 70, 70, 126, 127, 190,
740
+
741
+ 191, 80, 71, 72, 73, 71, 73, 74, 132, 133,
742
+ 76, 71, 72, 71, 71, 71, 71, 75, 209, 94,
743
+ 66, 94, 67, 209, 100, 84, 68, 78, 68, 78,
744
+ 194, 79, 80, 193, 81, 55, 55, 101, 102, 209,
745
+ 82, 56, 83, 56, 181, 84, 91, 92, 56, 95,
746
+ 56, 56, 93, 175, 103, 152, 56, 56, 56, 56,
747
+ 57, 179, 197, 56, 58, 56, 56, 56, 209, 111,
748
+ 117, 118, 67, 153, 67, 56, 68, 56, 68, 209,
749
+ 128, 129, 175, 67, 122, 122, 81, 68, 69, 181,
750
+ 69, 69, 122, 122, 144, 145, 124, 124, 119, 120,
751
+
752
+ 56, 120, 121, 124, 124, 124, 146, 119, 146, 175,
753
+ 201, 87, 88, 124, 136, 90, 136, 56, 55, 55,
754
+ 175, 148, 209, 176, 56, 176, 101, 102, 189, 137,
755
+ 138, 138, 56, 175, 209, 188, 147, 139, 139, 139,
756
+ 139, 139, 139, 103, 179, 200, 140, 141, 139, 139,
757
+ 139, 139, 139, 150, 150, 151, 150, 152, 150, 153,
758
+ 153, 153, 150, 150, 150, 154, 153, 153, 153, 155,
759
+ 150, 150, 153, 156, 153, 153, 153, 150, 150, 150,
760
+ 150, 150, 150, 150, 153, 150, 153, 150, 150, 150,
761
+ 150, 150, 150, 150, 150, 166, 166, 176, 209, 176,
762
+
763
+ 55, 186, 55, 209, 120, 184, 120, 168, 181, 169,
764
+ 169, 172, 177, 178, 178, 209, 169, 170, 171, 202,
765
+ 179, 202, 146, 182, 146, 179, 170, 166, 166, 198,
766
+ 180, 71, 209, 139, 209, 181, 120, 179, 120, 202,
767
+ 182, 202, 175, 111, 202, 167, 202, 177, 178, 178,
768
+ 209, 209, 147, 209, 203, 165, 202, 204, 202, 181,
769
+ 164, 163, 162, 161, 160, 180, 168, 159, 168, 168,
770
+ 158, 206, 179, 149, 143, 168, 195, 196, 131, 120,
771
+ 121, 130, 125, 123, 71, 195, 202, 114, 202, 113,
772
+ 112, 111, 110, 109, 108, 107, 106, 105, 104, 63,
773
+
774
+ 71, 62, 59, 209, 51, 51, 206, 50, 50, 207,
775
+ 207, 207, 207, 207, 207, 49, 49, 48, 207, 207,
776
+ 207, 207, 207, 207, 207, 209, 48, 209, 47, 47,
777
+ 46, 46, 45, 45, 209, 209, 209, 209, 209, 209,
778
+ 209, 209, 209, 209, 209, 206, 209, 209, 207, 207,
779
+ 207, 207, 207, 207, 209, 209, 209, 207, 207, 207,
780
+ 207, 207, 207, 207, 44, 44, 44, 44, 44, 44,
781
+ 44, 52, 52, 52, 52, 52, 52, 52, 55, 55,
782
+ 55, 55, 55, 55, 55, 65, 65, 65, 209, 65,
783
+ 65, 71, 71, 134, 134, 209, 134, 134, 134, 134,
784
+
785
+ 135, 135, 209, 135, 135, 135, 135, 142, 142, 209,
786
+ 142, 142, 142, 142, 157, 157, 209, 157, 157, 157,
787
+ 157, 153, 153, 153, 153, 153, 153, 153, 179, 209,
788
+ 209, 179, 179, 179, 178, 178, 178, 183, 183, 183,
789
+ 183, 183, 183, 183, 185, 185, 209, 185, 185, 185,
790
+ 185, 187, 187, 187, 187, 187, 187, 187, 199, 199,
791
+ 199, 199, 199, 199, 199, 205, 205, 205, 205, 205,
792
+ 205, 205, 208, 208, 208, 208, 208, 208, 208, 19,
793
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
794
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
795
+
796
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
797
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
798
+ 209, 209
696
799
  } ;
697
800
 
698
- static const flex_int16_t yy_chk[399] =
801
+ static const flex_int16_t yy_chk[723] =
699
802
  { 0,
700
803
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
701
804
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
702
805
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
703
806
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
704
- 2, 34, 2, 34, 2, 2, 2, 35, 35, 103,
705
- 38, 56, 56, 2, 38, 2, 3, 3, 57, 72,
706
- 57, 3, 89, 72, 3, 3, 3, 3, 3, 3,
707
- 81, 81, 3, 3, 3, 3, 4, 4, 87, 92,
708
- 81, 4, 81, 92, 4, 4, 4, 4, 4, 4,
709
- 100, 100, 4, 4, 4, 4, 28, 86, 97, 86,
710
-
711
- 97, 88, 28, 88, 102, 28, 28, 28, 28, 105,
712
- 104, 105, 106, 82, 28, 28, 28, 28, 28, 28,
713
- 28, 102, 78, 28, 28, 28, 28, 29, 104, 29,
714
- 29, 106, 108, 88, 108, 110, 77, 110, 29, 29,
715
- 74, 29, 29, 71, 70, 29, 33, 108, 33, 67,
716
- 33, 33, 33, 66, 59, 59, 69, 65, 69, 33,
717
- 60, 33, 59, 59, 59, 85, 112, 85, 112, 58,
718
- 59, 69, 69, 69, 96, 96, 109, 52, 109, 49,
719
- 85, 85, 85, 48, 96, 47, 96, 46, 69, 83,
720
- 45, 83, 83, 44, 43, 40, 109, 85, 37, 83,
721
-
722
- 83, 83, 36, 32, 31, 30, 27, 83, 107, 24,
723
- 107, 23, 22, 19, 17, 16, 15, 14, 13, 12,
724
- 11, 10, 9, 8, 7, 6, 5, 0, 107, 0,
725
- 0, 0, 107, 107, 107, 107, 107, 107, 0, 0,
726
- 107, 107, 107, 107, 111, 0, 111, 0, 0, 0,
727
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
728
- 0, 0, 0, 0, 111, 0, 0, 0, 111, 111,
729
- 111, 111, 111, 111, 0, 0, 111, 111, 111, 111,
730
- 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
731
- 115, 115, 115, 115, 115, 115, 115, 115, 115, 115,
732
-
733
- 116, 116, 116, 116, 117, 0, 0, 117, 117, 117,
734
- 118, 118, 119, 119, 0, 119, 119, 119, 119, 119,
735
- 119, 119, 120, 0, 0, 0, 0, 0, 120, 120,
736
- 121, 0, 0, 0, 121, 122, 122, 123, 123, 123,
737
- 123, 123, 123, 123, 123, 123, 123, 124, 124, 124,
738
- 124, 124, 124, 124, 124, 124, 124, 113, 113, 113,
739
- 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
740
- 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
741
- 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
742
- 113, 113, 113, 113, 113, 113, 113, 113
743
-
807
+ 1, 1, 2, 203, 2, 66, 2, 2, 34, 2,
808
+ 2, 25, 25, 66, 27, 2, 2, 2, 27, 156,
809
+ 2, 17, 27, 17, 17, 17, 39, 156, 39, 17,
810
+ 17, 17, 17, 17, 39, 34, 17, 17, 17, 17,
811
+ 17, 36, 36, 199, 36, 37, 37, 37, 17, 37,
812
+ 17, 18, 191, 18, 18, 18, 39, 72, 72, 18,
813
+
814
+ 18, 18, 18, 18, 79, 79, 18, 18, 18, 18,
815
+ 18, 41, 73, 41, 73, 187, 40, 40, 18, 186,
816
+ 18, 21, 40, 21, 21, 21, 119, 119, 40, 21,
817
+ 21, 21, 21, 21, 130, 130, 21, 21, 21, 21,
818
+ 21, 41, 183, 53, 53, 120, 41, 120, 21, 53,
819
+ 21, 23, 23, 23, 23, 23, 23, 23, 23, 23,
820
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
821
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
822
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
823
+ 23, 23, 23, 28, 178, 28, 28, 80, 80, 152,
824
+
825
+ 152, 80, 28, 28, 28, 28, 28, 28, 84, 84,
826
+ 30, 28, 28, 28, 28, 28, 28, 28, 30, 94,
827
+ 42, 94, 30, 177, 42, 84, 30, 35, 42, 35,
828
+ 165, 35, 35, 164, 35, 56, 56, 43, 43, 139,
829
+ 35, 56, 35, 43, 181, 35, 38, 38, 38, 94,
830
+ 38, 38, 38, 131, 43, 131, 38, 38, 38, 38,
831
+ 38, 139, 181, 38, 38, 38, 38, 38, 54, 162,
832
+ 67, 68, 54, 155, 67, 38, 54, 38, 67, 68,
833
+ 81, 81, 154, 68, 170, 170, 81, 68, 69, 197,
834
+ 69, 69, 195, 195, 96, 96, 75, 75, 69, 69,
835
+
836
+ 96, 69, 69, 75, 75, 75, 97, 69, 97, 153,
837
+ 197, 90, 90, 75, 89, 90, 89, 90, 98, 98,
838
+ 150, 98, 179, 176, 98, 176, 103, 103, 149, 89,
839
+ 89, 89, 103, 192, 176, 148, 97, 89, 89, 89,
840
+ 89, 89, 89, 103, 179, 192, 89, 89, 89, 89,
841
+ 89, 89, 89, 100, 100, 100, 100, 100, 100, 100,
842
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
843
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
844
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
845
+ 100, 100, 100, 100, 100, 122, 122, 136, 141, 136,
846
+
847
+ 140, 147, 140, 182, 122, 143, 122, 124, 138, 124,
848
+ 124, 125, 136, 136, 136, 180, 124, 124, 124, 206,
849
+ 141, 206, 146, 141, 146, 182, 124, 166, 166, 182,
850
+ 136, 124, 137, 140, 137, 201, 166, 180, 166, 198,
851
+ 180, 198, 200, 137, 204, 123, 204, 137, 137, 137,
852
+ 198, 205, 146, 205, 200, 121, 208, 201, 208, 204,
853
+ 118, 116, 112, 110, 109, 137, 168, 108, 168, 168,
854
+ 105, 205, 198, 99, 95, 168, 168, 168, 83, 168,
855
+ 168, 82, 76, 74, 70, 168, 202, 62, 202, 59,
856
+ 58, 57, 51, 50, 49, 48, 47, 46, 45, 32,
857
+
858
+ 29, 24, 22, 19, 16, 15, 202, 14, 13, 202,
859
+ 202, 202, 202, 202, 202, 12, 11, 10, 202, 202,
860
+ 202, 202, 202, 202, 202, 207, 9, 207, 8, 7,
861
+ 6, 5, 4, 3, 0, 0, 0, 0, 0, 0,
862
+ 0, 0, 0, 0, 0, 207, 0, 0, 207, 207,
863
+ 207, 207, 207, 207, 0, 0, 0, 207, 207, 207,
864
+ 207, 207, 207, 207, 210, 210, 210, 210, 210, 210,
865
+ 210, 211, 211, 211, 211, 211, 211, 211, 212, 212,
866
+ 212, 212, 212, 212, 212, 213, 213, 213, 0, 213,
867
+ 213, 214, 214, 215, 215, 0, 215, 215, 215, 215,
868
+
869
+ 216, 216, 0, 216, 216, 216, 216, 217, 217, 0,
870
+ 217, 217, 217, 217, 218, 218, 0, 218, 218, 218,
871
+ 218, 219, 219, 219, 219, 219, 219, 219, 220, 0,
872
+ 0, 220, 220, 220, 221, 221, 221, 222, 222, 222,
873
+ 222, 222, 222, 222, 223, 223, 0, 223, 223, 223,
874
+ 223, 224, 224, 224, 224, 224, 224, 224, 225, 225,
875
+ 225, 225, 225, 225, 225, 226, 226, 226, 226, 226,
876
+ 226, 226, 227, 227, 227, 227, 227, 227, 227, 209,
877
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
878
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
879
+
880
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
881
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
882
+ 209, 209
744
883
  } ;
745
884
 
746
- /* The intent behind this definition is that it'll catch
747
- * any uses of REJECT which flex missed.
748
- */
749
- #define REJECT reject_used_but_not_detected
750
- #define yymore() yymore_used_but_not_detected
751
- #define YY_MORE_ADJ 0
885
+ #define YY_TRAILING_MASK 0x2000
886
+ #define YY_TRAILING_HEAD_MASK 0x4000
887
+ #define REJECT \
888
+ { \
889
+ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ \
890
+ yy_cp = yyg->yy_full_match; /* restore poss. backed-over text */ \
891
+ yyg->yy_lp = yyg->yy_full_lp; /* restore orig. accepting pos. */ \
892
+ yyg->yy_state_ptr = yyg->yy_full_state; /* restore orig. state */ \
893
+ yy_current_state = *yyg->yy_state_ptr; /* restore curr. state */ \
894
+ ++yyg->yy_lp; \
895
+ goto find_rule; \
896
+ }
897
+
898
+ #define yymore() (yyg->yy_more_flag = 1)
899
+ #define YY_MORE_ADJ yyg->yy_more_len
752
900
  #define YY_RESTORE_YY_MORE_OFFSET
753
901
  #line 1 "tokenizer.l"
754
902
  #line 2 "tokenizer.l"
@@ -756,33 +904,26 @@ static const flex_int16_t yy_chk[399] =
756
904
  #include "ruby.h"
757
905
 
758
906
  // Anything longer is unlikely to be useful.
759
- #define MAX_TOKEN_LEN 32
907
+ #define MAX_TOKEN_LEN 16
760
908
 
761
909
  #define FEED2(s, l) do { \
762
910
  const char* __s = (s); \
763
911
  const size_t __l = (l); \
764
- if ((__l) > MAX_TOKEN_LEN) \
765
- break; \
766
- *yyextra = rb_str_new(__s, __l); \
912
+ const size_t __cl = __l > MAX_TOKEN_LEN? MAX_TOKEN_LEN : __l; \
913
+ *yyextra = rb_str_new(__s, __cl); \
767
914
  } while(0)
768
915
 
769
916
  #define FEED1(s) FEED2(s, strlen(s))
770
917
 
771
918
  #define FEED() FEED2(yytext, yyleng)
772
919
 
920
+ #define FEED_STATIC(s) FEED2(s, sizeof(s) - 1)
921
+
773
922
  #define FEED_SHEBANG(s) do { \
774
923
  const size_t __l = strlen(s); \
775
- if (__l > MAX_TOKEN_LEN) \
776
- break; \
924
+ const size_t __cl = __l > MAX_TOKEN_LEN? MAX_TOKEN_LEN : __l; \
777
925
  *yyextra = rb_str_new("SHEBANG#!", sizeof("SHEBANG#!") - 1); \
778
- rb_str_cat(*yyextra, s, __l); \
779
- } while(0)
780
-
781
- #define FEED_SGML() do { \
782
- if (yyleng > MAX_TOKEN_LEN) \
783
- break; \
784
- *yyextra = rb_str_new(yytext, yyleng); \
785
- rb_str_cat(*yyextra, ">", 1); \
926
+ rb_str_cat(*yyextra, s, __cl); \
786
927
  } while(0)
787
928
 
788
929
  #define eat_until_eol() do { \
@@ -808,18 +949,19 @@ static const flex_int16_t yy_chk[399] =
808
949
  return 0; \
809
950
  } while (0)
810
951
 
811
- #line 812 "lex.linguist_yy.c"
952
+ #line 953 "lex.linguist_yy.c"
812
953
 
813
- #line 814 "lex.linguist_yy.c"
954
+ #line 955 "lex.linguist_yy.c"
814
955
 
815
956
  #define INITIAL 0
816
- #define sgml 1
817
- #define c_comment 2
818
- #define xml_comment 3
819
- #define haskell_comment 4
820
- #define ocaml_comment 5
821
- #define python_dcomment 6
822
- #define python_scomment 7
957
+ #define c_comment 1
958
+ #define xml_comment 2
959
+ #define haskell_comment 3
960
+ #define ocaml_comment 4
961
+ #define python_dcomment 5
962
+ #define python_scomment 6
963
+ #define roff_comment 7
964
+ #define punct 8
823
965
 
824
966
  #ifndef YY_NO_UNISTD_H
825
967
  /* Special case for "unistd.h", since it is non-ANSI. We include it way
@@ -859,6 +1001,17 @@ struct yyguts_t
859
1001
  int yylineno_r;
860
1002
  int yy_flex_debug_r;
861
1003
 
1004
+ yy_state_type *yy_state_buf;
1005
+ yy_state_type *yy_state_ptr;
1006
+ char *yy_full_match;
1007
+ int yy_lp;
1008
+
1009
+ /* These are only needed for trailing context rules,
1010
+ * but there's no conditional variable for that yet. */
1011
+ int yy_looking_for_trail_begin;
1012
+ int yy_full_lp;
1013
+ int *yy_full_state;
1014
+
862
1015
  char *yytext_r;
863
1016
  int yy_more_flag;
864
1017
  int yy_more_len;
@@ -1057,6 +1210,12 @@ YY_DECL
1057
1210
  YY_USER_INIT;
1058
1211
  #endif
1059
1212
 
1213
+ /* Create the reject buffer large enough to save one state per allowed character. */
1214
+ if ( ! yyg->yy_state_buf )
1215
+ yyg->yy_state_buf = (yy_state_type *)yyalloc(YY_STATE_BUF_SIZE , yyscanner);
1216
+ if ( ! yyg->yy_state_buf )
1217
+ YY_FATAL_ERROR( "out of dynamic memory in yylex()" );
1218
+
1060
1219
  if ( ! yyg->yy_start )
1061
1220
  yyg->yy_start = 1; /* first start state */
1062
1221
 
@@ -1076,13 +1235,19 @@ YY_DECL
1076
1235
  }
1077
1236
 
1078
1237
  {
1079
- #line 63 "tokenizer.l"
1238
+ #line 58 "tokenizer.l"
1080
1239
 
1081
1240
 
1082
- #line 1083 "lex.linguist_yy.c"
1241
+ #line 1242 "lex.linguist_yy.c"
1083
1242
 
1084
1243
  while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
1085
1244
  {
1245
+ yyg->yy_more_len = 0;
1246
+ if ( yyg->yy_more_flag )
1247
+ {
1248
+ yyg->yy_more_len = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr);
1249
+ yyg->yy_more_flag = 0;
1250
+ }
1086
1251
  yy_cp = yyg->yy_c_buf_p;
1087
1252
 
1088
1253
  /* Support of yytext. */
@@ -1095,30 +1260,64 @@ YY_DECL
1095
1260
 
1096
1261
  yy_current_state = yyg->yy_start;
1097
1262
  yy_current_state += YY_AT_BOL();
1263
+
1264
+ yyg->yy_state_ptr = yyg->yy_state_buf;
1265
+ *yyg->yy_state_ptr++ = yy_current_state;
1266
+
1098
1267
  yy_match:
1099
1268
  do
1100
1269
  {
1101
1270
  YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
1102
- if ( yy_accept[yy_current_state] )
1103
- {
1104
- yyg->yy_last_accepting_state = yy_current_state;
1105
- yyg->yy_last_accepting_cpos = yy_cp;
1106
- }
1107
1271
  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1108
1272
  {
1109
1273
  yy_current_state = (int) yy_def[yy_current_state];
1110
- if ( yy_current_state >= 114 )
1274
+ if ( yy_current_state >= 210 )
1111
1275
  yy_c = yy_meta[yy_c];
1112
1276
  }
1113
1277
  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1278
+ *yyg->yy_state_ptr++ = yy_current_state;
1114
1279
  ++yy_cp;
1115
1280
  }
1116
- while ( yy_current_state != 113 );
1117
- yy_cp = yyg->yy_last_accepting_cpos;
1118
- yy_current_state = yyg->yy_last_accepting_state;
1281
+ while ( yy_current_state != 209 );
1119
1282
 
1120
1283
  yy_find_action:
1121
- yy_act = yy_accept[yy_current_state];
1284
+ yy_current_state = *--yyg->yy_state_ptr;
1285
+ yyg->yy_lp = yy_accept[yy_current_state];
1286
+ find_rule: /* we branch to this label when backing up */
1287
+ for ( ; ; ) /* until we find what rule we matched */
1288
+ {
1289
+ if ( yyg->yy_lp && yyg->yy_lp < yy_accept[yy_current_state + 1] )
1290
+ {
1291
+ yy_act = yy_acclist[yyg->yy_lp];
1292
+ if ( yy_act & YY_TRAILING_HEAD_MASK ||
1293
+ yyg->yy_looking_for_trail_begin )
1294
+ {
1295
+ if ( yy_act == yyg->yy_looking_for_trail_begin )
1296
+ {
1297
+ yyg->yy_looking_for_trail_begin = 0;
1298
+ yy_act &= ~YY_TRAILING_HEAD_MASK;
1299
+ break;
1300
+ }
1301
+ }
1302
+ else if ( yy_act & YY_TRAILING_MASK )
1303
+ {
1304
+ yyg->yy_looking_for_trail_begin = yy_act & ~YY_TRAILING_MASK;
1305
+ yyg->yy_looking_for_trail_begin |= YY_TRAILING_HEAD_MASK;
1306
+ }
1307
+ else
1308
+ {
1309
+ yyg->yy_full_match = yy_cp;
1310
+ yyg->yy_full_state = yyg->yy_state_ptr;
1311
+ yyg->yy_full_lp = yyg->yy_lp;
1312
+ break;
1313
+ }
1314
+ ++yyg->yy_lp;
1315
+ goto find_rule;
1316
+ }
1317
+ --yy_cp;
1318
+ yy_current_state = *--yyg->yy_state_ptr;
1319
+ yyg->yy_lp = yy_accept[yy_current_state];
1320
+ }
1122
1321
 
1123
1322
  YY_DO_BEFORE_ACTION;
1124
1323
 
@@ -1126,17 +1325,10 @@ do_action: /* This label is used only to access EOF actions. */
1126
1325
 
1127
1326
  switch ( yy_act )
1128
1327
  { /* beginning of action switch */
1129
- case 0: /* must back up */
1130
- /* undo the effects of YY_DO_BEFORE_ACTION */
1131
- *yy_cp = yyg->yy_hold_char;
1132
- yy_cp = yyg->yy_last_accepting_cpos;
1133
- yy_current_state = yyg->yy_last_accepting_state;
1134
- goto yy_find_action;
1135
-
1136
1328
  case 1:
1137
1329
  /* rule 1 can match eol */
1138
1330
  YY_RULE_SETUP
1139
- #line 65 "tokenizer.l"
1331
+ #line 60 "tokenizer.l"
1140
1332
  {
1141
1333
  const char *off = strrchr(yytext, ' ');
1142
1334
  if (!off)
@@ -1150,7 +1342,7 @@ YY_RULE_SETUP
1150
1342
  YY_BREAK
1151
1343
  case 2:
1152
1344
  YY_RULE_SETUP
1153
- #line 76 "tokenizer.l"
1345
+ #line 71 "tokenizer.l"
1154
1346
  {
1155
1347
  const char *off = strrchr(yytext, '/');
1156
1348
  if (!off)
@@ -1167,183 +1359,263 @@ YY_RULE_SETUP
1167
1359
  }
1168
1360
  YY_BREAK
1169
1361
  case 3:
1362
+ /* rule 3 can match eol */
1170
1363
  YY_RULE_SETUP
1171
- #line 91 "tokenizer.l"
1172
- { /* nothing */ }
1364
+ #line 86 "tokenizer.l"
1365
+ { FEED_STATIC("COMMENT#"); return 1; }
1173
1366
  YY_BREAK
1174
1367
  case 4:
1368
+ /* rule 4 can match eol */
1175
1369
  YY_RULE_SETUP
1176
- #line 93 "tokenizer.l"
1177
- { BEGIN(c_comment); }
1370
+ #line 87 "tokenizer.l"
1371
+ { FEED_STATIC("COMMENT//!"); return 1; }
1178
1372
  YY_BREAK
1179
- /* See below for xml_comment start. */
1180
1373
  case 5:
1374
+ /* rule 5 can match eol */
1181
1375
  YY_RULE_SETUP
1182
- #line 95 "tokenizer.l"
1183
- { BEGIN(haskell_comment); }
1376
+ #line 88 "tokenizer.l"
1377
+ { FEED_STATIC("COMMENT//"); return 1; }
1184
1378
  YY_BREAK
1185
1379
  case 6:
1380
+ /* rule 6 can match eol */
1186
1381
  YY_RULE_SETUP
1187
- #line 96 "tokenizer.l"
1188
- { BEGIN(ocaml_comment); }
1382
+ #line 89 "tokenizer.l"
1383
+ { FEED_STATIC("COMMENT--"); return 1; }
1189
1384
  YY_BREAK
1190
1385
  case 7:
1386
+ /* rule 7 can match eol */
1191
1387
  YY_RULE_SETUP
1192
- #line 97 "tokenizer.l"
1193
- { BEGIN(python_dcomment); }
1388
+ #line 90 "tokenizer.l"
1389
+ { FEED_STATIC("COMMENT%"); return 1; }
1194
1390
  YY_BREAK
1195
1391
  case 8:
1392
+ /* rule 8 can match eol */
1196
1393
  YY_RULE_SETUP
1197
- #line 98 "tokenizer.l"
1198
- { BEGIN(python_scomment); }
1394
+ #line 91 "tokenizer.l"
1395
+ { FEED_STATIC("COMMENT\""); return 1; }
1199
1396
  YY_BREAK
1200
1397
  case 9:
1201
1398
  /* rule 9 can match eol */
1202
1399
  YY_RULE_SETUP
1203
- #line 100 "tokenizer.l"
1204
- { /* nothing */ }
1400
+ #line 92 "tokenizer.l"
1401
+ { FEED_STATIC("COMMENT;"); return 1; }
1205
1402
  YY_BREAK
1206
1403
  case 10:
1404
+ /* rule 10 can match eol */
1207
1405
  YY_RULE_SETUP
1208
- #line 101 "tokenizer.l"
1209
- { BEGIN(INITIAL); }
1406
+ #line 93 "tokenizer.l"
1407
+ { FEED_STATIC("COMMENT.\\\""); return 1; }
1210
1408
  YY_BREAK
1211
1409
  case 11:
1410
+ /* rule 11 can match eol */
1212
1411
  YY_RULE_SETUP
1213
- #line 102 "tokenizer.l"
1214
- { BEGIN(INITIAL); }
1412
+ #line 94 "tokenizer.l"
1413
+ { FEED_STATIC("COMMENT'\\\""); return 1; }
1215
1414
  YY_BREAK
1216
1415
  case 12:
1217
1416
  YY_RULE_SETUP
1218
- #line 103 "tokenizer.l"
1219
- { BEGIN(INITIAL); }
1417
+ #line 96 "tokenizer.l"
1418
+ { FEED_STATIC("COMMENT/*"); return 1; }
1220
1419
  YY_BREAK
1221
1420
  case 13:
1222
1421
  YY_RULE_SETUP
1223
- #line 104 "tokenizer.l"
1224
- { BEGIN(INITIAL); }
1422
+ #line 97 "tokenizer.l"
1423
+ { FEED_STATIC("COMMENT/**"); BEGIN(c_comment); return 1; }
1225
1424
  YY_BREAK
1226
1425
  case 14:
1227
1426
  YY_RULE_SETUP
1228
- #line 105 "tokenizer.l"
1229
- { BEGIN(INITIAL); }
1427
+ #line 98 "tokenizer.l"
1428
+ { FEED_STATIC("COMMENT/*!"); BEGIN(c_comment); return 1; }
1230
1429
  YY_BREAK
1231
1430
  case 15:
1232
1431
  YY_RULE_SETUP
1233
- #line 106 "tokenizer.l"
1234
- { BEGIN(INITIAL); }
1432
+ #line 99 "tokenizer.l"
1433
+ { FEED_STATIC("COMMENT/*"); BEGIN(c_comment); return 1; }
1235
1434
  YY_BREAK
1236
1435
  case 16:
1237
1436
  YY_RULE_SETUP
1238
- #line 108 "tokenizer.l"
1239
- { /* nothing */ }
1437
+ #line 100 "tokenizer.l"
1438
+ { FEED_STATIC("COMMENT<!--"); BEGIN(xml_comment); return 1; }
1240
1439
  YY_BREAK
1241
1440
  case 17:
1242
1441
  YY_RULE_SETUP
1243
- #line 109 "tokenizer.l"
1244
- { eat_until_unescaped('"'); }
1442
+ #line 101 "tokenizer.l"
1443
+ { FEED_STATIC("COMMENT{-"); BEGIN(haskell_comment); return 1; }
1245
1444
  YY_BREAK
1246
1445
  case 18:
1247
1446
  YY_RULE_SETUP
1248
- #line 110 "tokenizer.l"
1249
- { eat_until_unescaped('\''); }
1447
+ #line 102 "tokenizer.l"
1448
+ { FEED_STATIC("COMMENT(*"); BEGIN(ocaml_comment); return 1; }
1250
1449
  YY_BREAK
1251
1450
  case 19:
1252
1451
  YY_RULE_SETUP
1253
- #line 111 "tokenizer.l"
1254
- { /* nothing */ }
1452
+ #line 103 "tokenizer.l"
1453
+ { FEED_STATIC("COMMENT\"\"\""); BEGIN(python_dcomment); return 1; }
1255
1454
  YY_BREAK
1256
1455
  case 20:
1257
1456
  YY_RULE_SETUP
1258
- #line 112 "tokenizer.l"
1259
- {
1260
- if (strcmp(yytext, "<!--") == 0) {
1261
- BEGIN(xml_comment);
1262
- } else {
1263
- FEED_SGML();
1264
- BEGIN(sgml);
1265
- return 1;
1266
- }
1267
- }
1457
+ #line 104 "tokenizer.l"
1458
+ { FEED_STATIC("COMMENT'''"); BEGIN(python_scomment); return 1; }
1268
1459
  YY_BREAK
1269
1460
  case 21:
1461
+ /* rule 21 can match eol */
1270
1462
  YY_RULE_SETUP
1271
- #line 121 "tokenizer.l"
1272
- { FEED2(yytext, yyleng - 1); eat_until_unescaped('"'); return 1; }
1463
+ #line 105 "tokenizer.l"
1464
+ { FEED_STATIC("COMMENT.ig"); BEGIN(roff_comment); return 1; }
1273
1465
  YY_BREAK
1274
1466
  case 22:
1467
+ /* rule 22 can match eol */
1275
1468
  YY_RULE_SETUP
1276
- #line 122 "tokenizer.l"
1277
- { FEED2(yytext, yyleng - 1); eat_until_unescaped('\''); return 1; }
1469
+ #line 107 "tokenizer.l"
1470
+ { /* nothing */ }
1278
1471
  YY_BREAK
1279
1472
  case 23:
1280
1473
  YY_RULE_SETUP
1281
- #line 123 "tokenizer.l"
1282
- { FEED2(yytext, strchr(yytext, '=') - yytext + 1); return 1; }
1474
+ #line 108 "tokenizer.l"
1475
+ { BEGIN(INITIAL); }
1283
1476
  YY_BREAK
1284
1477
  case 24:
1285
1478
  YY_RULE_SETUP
1286
- #line 124 "tokenizer.l"
1287
- { FEED(); return 1; }
1479
+ #line 109 "tokenizer.l"
1480
+ { BEGIN(INITIAL); }
1288
1481
  YY_BREAK
1289
1482
  case 25:
1290
1483
  YY_RULE_SETUP
1291
- #line 125 "tokenizer.l"
1484
+ #line 110 "tokenizer.l"
1292
1485
  { BEGIN(INITIAL); }
1293
1486
  YY_BREAK
1294
1487
  case 26:
1295
- /* rule 26 can match eol */
1296
1488
  YY_RULE_SETUP
1297
- #line 126 "tokenizer.l"
1298
- { /* nothing */ }
1489
+ #line 111 "tokenizer.l"
1490
+ { BEGIN(INITIAL); }
1299
1491
  YY_BREAK
1300
1492
  case 27:
1301
1493
  YY_RULE_SETUP
1302
- #line 127 "tokenizer.l"
1303
- { FEED(); return 1; }
1494
+ #line 112 "tokenizer.l"
1495
+ { BEGIN(INITIAL); }
1304
1496
  YY_BREAK
1305
1497
  case 28:
1306
1498
  YY_RULE_SETUP
1307
- #line 128 "tokenizer.l"
1308
- {
1309
- if (strncmp(yytext, "/*", 2) == 0) {
1310
- if (yyleng >= 4 && strcmp(yytext + yyleng - 2, "*/") == 0) {
1311
- /* nothing */
1312
- } else {
1313
- BEGIN(c_comment);
1314
- }
1315
- } else {
1316
- FEED();
1317
- return 1;
1318
- }
1319
- }
1499
+ #line 113 "tokenizer.l"
1500
+ { BEGIN(INITIAL); }
1320
1501
  YY_BREAK
1321
1502
  case 29:
1503
+ /* rule 29 can match eol */
1322
1504
  YY_RULE_SETUP
1323
- #line 140 "tokenizer.l"
1324
- { FEED(); return 1; }
1505
+ #line 114 "tokenizer.l"
1506
+ { BEGIN(INITIAL); }
1325
1507
  YY_BREAK
1326
1508
  case 30:
1327
- /* rule 30 can match eol */
1328
1509
  YY_RULE_SETUP
1329
- #line 141 "tokenizer.l"
1510
+ #line 116 "tokenizer.l"
1330
1511
  { /* nothing */ }
1331
1512
  YY_BREAK
1332
1513
  case 31:
1333
1514
  YY_RULE_SETUP
1334
- #line 143 "tokenizer.l"
1515
+ #line 117 "tokenizer.l"
1516
+ { eat_until_unescaped('"'); }
1517
+ YY_BREAK
1518
+ case 32:
1519
+ YY_RULE_SETUP
1520
+ #line 118 "tokenizer.l"
1521
+ { eat_until_unescaped('\''); }
1522
+ YY_BREAK
1523
+ case 33:
1524
+ YY_RULE_SETUP
1525
+ #line 119 "tokenizer.l"
1526
+ { /* nothing */ }
1527
+ YY_BREAK
1528
+ case 34:
1529
+ YY_RULE_SETUP
1530
+ #line 121 "tokenizer.l"
1531
+ { FEED(); return 1; }
1532
+ YY_BREAK
1533
+ case 35:
1534
+ YY_RULE_SETUP
1535
+ #line 122 "tokenizer.l"
1536
+ { FEED(); return 1; }
1537
+ YY_BREAK
1538
+ case 36:
1539
+ YY_RULE_SETUP
1540
+ #line 123 "tokenizer.l"
1541
+ { FEED(); return 1; }
1542
+ YY_BREAK
1543
+ case 37:
1544
+ /* rule 37 can match eol */
1545
+ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
1546
+ YY_LINENO_REWIND_TO(yy_cp - 1);
1547
+ yyg->yy_c_buf_p = yy_cp -= 1;
1548
+ YY_DO_BEFORE_ACTION; /* set up yytext again */
1549
+ YY_RULE_SETUP
1550
+ #line 125 "tokenizer.l"
1551
+ { FEED(); BEGIN(INITIAL); return 1; }
1552
+ YY_BREAK
1553
+ case 38:
1554
+ YY_RULE_SETUP
1555
+ #line 126 "tokenizer.l"
1556
+ { FEED(); BEGIN(INITIAL); return 1; }
1557
+ YY_BREAK
1558
+ case 39:
1559
+ /* rule 39 can match eol */
1560
+ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
1561
+ YY_LINENO_REWIND_TO(yy_cp - 1);
1562
+ yyg->yy_c_buf_p = yy_cp -= 1;
1563
+ YY_DO_BEFORE_ACTION; /* set up yytext again */
1564
+ YY_RULE_SETUP
1565
+ #line 127 "tokenizer.l"
1566
+ { FEED(); BEGIN(INITIAL); return 1; }
1567
+ YY_BREAK
1568
+ case 40:
1569
+ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
1570
+ yyg->yy_c_buf_p = yy_cp -= 4;
1571
+ YY_DO_BEFORE_ACTION; /* set up yytext again */
1572
+ YY_RULE_SETUP
1573
+ #line 128 "tokenizer.l"
1574
+ { FEED(); BEGIN(INITIAL); return 1; }
1575
+ YY_BREAK
1576
+ case 41:
1577
+ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
1578
+ yyg->yy_c_buf_p = yy_cp -= 2;
1579
+ YY_DO_BEFORE_ACTION; /* set up yytext again */
1580
+ YY_RULE_SETUP
1581
+ #line 129 "tokenizer.l"
1582
+ { FEED(); BEGIN(INITIAL); return 1; }
1583
+ YY_BREAK
1584
+ case 42:
1585
+ YY_RULE_SETUP
1586
+ #line 130 "tokenizer.l"
1587
+ { yymore(); BEGIN(punct); }
1588
+ YY_BREAK
1589
+ case 43:
1590
+ YY_RULE_SETUP
1591
+ #line 131 "tokenizer.l"
1592
+ { yymore(); BEGIN(punct); }
1593
+ YY_BREAK
1594
+ case YY_STATE_EOF(punct):
1595
+ #line 132 "tokenizer.l"
1596
+ { FEED2(yytext, yyleng - 1); BEGIN(INITIAL); return 1; }
1597
+ YY_BREAK
1598
+ case 44:
1599
+ /* rule 44 can match eol */
1600
+ YY_RULE_SETUP
1601
+ #line 134 "tokenizer.l"
1602
+ { /* nothing */ }
1603
+ YY_BREAK
1604
+ case 45:
1605
+ YY_RULE_SETUP
1606
+ #line 136 "tokenizer.l"
1335
1607
  YY_FATAL_ERROR( "flex scanner jammed" );
1336
1608
  YY_BREAK
1337
- #line 1338 "lex.linguist_yy.c"
1338
- case YY_STATE_EOF(INITIAL):
1339
- case YY_STATE_EOF(sgml):
1340
- case YY_STATE_EOF(c_comment):
1341
- case YY_STATE_EOF(xml_comment):
1342
- case YY_STATE_EOF(haskell_comment):
1343
- case YY_STATE_EOF(ocaml_comment):
1344
- case YY_STATE_EOF(python_dcomment):
1345
- case YY_STATE_EOF(python_scomment):
1346
- yyterminate();
1609
+ #line 1610 "lex.linguist_yy.c"
1610
+ case YY_STATE_EOF(INITIAL):
1611
+ case YY_STATE_EOF(c_comment):
1612
+ case YY_STATE_EOF(xml_comment):
1613
+ case YY_STATE_EOF(haskell_comment):
1614
+ case YY_STATE_EOF(ocaml_comment):
1615
+ case YY_STATE_EOF(python_dcomment):
1616
+ case YY_STATE_EOF(python_scomment):
1617
+ case YY_STATE_EOF(roff_comment):
1618
+ yyterminate();
1347
1619
 
1348
1620
  case YY_END_OF_BUFFER:
1349
1621
  {
@@ -1408,8 +1680,7 @@ case YY_STATE_EOF(python_scomment):
1408
1680
 
1409
1681
  else
1410
1682
  {
1411
- yy_cp = yyg->yy_last_accepting_cpos;
1412
- yy_current_state = yyg->yy_last_accepting_state;
1683
+ yy_cp = yyg->yy_c_buf_p;
1413
1684
  goto yy_find_action;
1414
1685
  }
1415
1686
  }
@@ -1536,38 +1807,8 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
1536
1807
  while ( num_to_read <= 0 )
1537
1808
  { /* Not enough room in the buffer - grow it. */
1538
1809
 
1539
- /* just a shorter name for the current buffer */
1540
- YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
1541
-
1542
- int yy_c_buf_p_offset =
1543
- (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
1544
-
1545
- if ( b->yy_is_our_buffer )
1546
- {
1547
- int new_size = b->yy_buf_size * 2;
1548
-
1549
- if ( new_size <= 0 )
1550
- b->yy_buf_size += b->yy_buf_size / 8;
1551
- else
1552
- b->yy_buf_size *= 2;
1553
-
1554
- b->yy_ch_buf = (char *)
1555
- /* Include room in for 2 EOB chars. */
1556
- yyrealloc( (void *) b->yy_ch_buf,
1557
- (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
1558
- }
1559
- else
1560
- /* Can't grow it, we don't own it. */
1561
- b->yy_ch_buf = NULL;
1562
-
1563
- if ( ! b->yy_ch_buf )
1564
- YY_FATAL_ERROR(
1565
- "fatal error - scanner input buffer overflow" );
1566
-
1567
- yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
1568
-
1569
- num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1570
- number_to_move - 1;
1810
+ YY_FATAL_ERROR(
1811
+ "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
1571
1812
 
1572
1813
  }
1573
1814
 
@@ -1631,21 +1872,20 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
1631
1872
  yy_current_state = yyg->yy_start;
1632
1873
  yy_current_state += YY_AT_BOL();
1633
1874
 
1875
+ yyg->yy_state_ptr = yyg->yy_state_buf;
1876
+ *yyg->yy_state_ptr++ = yy_current_state;
1877
+
1634
1878
  for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
1635
1879
  {
1636
1880
  YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1637
- if ( yy_accept[yy_current_state] )
1638
- {
1639
- yyg->yy_last_accepting_state = yy_current_state;
1640
- yyg->yy_last_accepting_cpos = yy_cp;
1641
- }
1642
1881
  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1643
1882
  {
1644
1883
  yy_current_state = (int) yy_def[yy_current_state];
1645
- if ( yy_current_state >= 114 )
1884
+ if ( yy_current_state >= 210 )
1646
1885
  yy_c = yy_meta[yy_c];
1647
1886
  }
1648
1887
  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1888
+ *yyg->yy_state_ptr++ = yy_current_state;
1649
1889
  }
1650
1890
 
1651
1891
  return yy_current_state;
@@ -1660,22 +1900,18 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
1660
1900
  {
1661
1901
  int yy_is_jam;
1662
1902
  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
1663
- char *yy_cp = yyg->yy_c_buf_p;
1664
1903
 
1665
1904
  YY_CHAR yy_c = 1;
1666
- if ( yy_accept[yy_current_state] )
1667
- {
1668
- yyg->yy_last_accepting_state = yy_current_state;
1669
- yyg->yy_last_accepting_cpos = yy_cp;
1670
- }
1671
1905
  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1672
1906
  {
1673
1907
  yy_current_state = (int) yy_def[yy_current_state];
1674
- if ( yy_current_state >= 114 )
1908
+ if ( yy_current_state >= 210 )
1675
1909
  yy_c = yy_meta[yy_c];
1676
1910
  }
1677
1911
  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1678
- yy_is_jam = (yy_current_state == 113);
1912
+ yy_is_jam = (yy_current_state == 209);
1913
+ if ( ! yy_is_jam )
1914
+ *yyg->yy_state_ptr++ = yy_current_state;
1679
1915
 
1680
1916
  (void)yyg;
1681
1917
  return yy_is_jam ? 0 : yy_current_state;
@@ -2373,6 +2609,11 @@ static int yy_init_globals (yyscan_t yyscanner)
2373
2609
  yyg->yy_start_stack_depth = 0;
2374
2610
  yyg->yy_start_stack = NULL;
2375
2611
 
2612
+ yyg->yy_state_buf = 0;
2613
+ yyg->yy_state_ptr = 0;
2614
+ yyg->yy_full_match = 0;
2615
+ yyg->yy_lp = 0;
2616
+
2376
2617
  /* Defined in main.c */
2377
2618
  #ifdef YY_STDINIT
2378
2619
  yyin = stdin;
@@ -2408,6 +2649,9 @@ int yylex_destroy (yyscan_t yyscanner)
2408
2649
  yyfree( yyg->yy_start_stack , yyscanner );
2409
2650
  yyg->yy_start_stack = NULL;
2410
2651
 
2652
+ yyfree ( yyg->yy_state_buf , yyscanner);
2653
+ yyg->yy_state_buf = NULL;
2654
+
2411
2655
  /* Reset the globals. This is important in a non-reentrant scanner so the next time
2412
2656
  * yylex() is called, initialization will occur. */
2413
2657
  yy_init_globals( yyscanner);
@@ -2476,7 +2720,7 @@ void yyfree (void * ptr , yyscan_t yyscanner)
2476
2720
 
2477
2721
  #define YYTABLES_NAME "yytables"
2478
2722
 
2479
- #line 143 "tokenizer.l"
2723
+ #line 136 "tokenizer.l"
2480
2724
 
2481
2725
 
2482
2726