rbs 3.3.2 → 3.4.0

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.
Files changed (132) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/comments.yml +2 -5
  3. data/.github/workflows/ruby.yml +7 -8
  4. data/.github/workflows/typecheck.yml +37 -0
  5. data/CHANGELOG.md +65 -0
  6. data/Gemfile +1 -1
  7. data/Gemfile.lock +11 -11
  8. data/README.md +1 -0
  9. data/Rakefile +2 -2
  10. data/Steepfile +2 -2
  11. data/core/array.rbs +19 -49
  12. data/core/basic_object.rbs +2 -2
  13. data/core/comparable.rbs +17 -8
  14. data/core/complex.rbs +82 -43
  15. data/core/data.rbs +2 -4
  16. data/core/dir.rbs +635 -295
  17. data/core/enumerable.rbs +11 -18
  18. data/core/enumerator.rbs +37 -31
  19. data/core/errors.rbs +4 -0
  20. data/core/false_class.rbs +34 -15
  21. data/core/fiber.rbs +23 -0
  22. data/core/file.rbs +329 -120
  23. data/core/float.rbs +17 -32
  24. data/core/gc.rbs +17 -11
  25. data/core/hash.rbs +22 -44
  26. data/core/integer.rbs +82 -113
  27. data/core/io/buffer.rbs +90 -47
  28. data/core/io.rbs +54 -121
  29. data/core/kernel.rbs +442 -489
  30. data/core/match_data.rbs +55 -56
  31. data/core/module.rbs +45 -1
  32. data/core/nil_class.rbs +98 -35
  33. data/core/numeric.rbs +22 -32
  34. data/core/object_space/weak_key_map.rbs +102 -0
  35. data/core/process.rbs +1242 -655
  36. data/core/ractor.rbs +139 -120
  37. data/core/range.rbs +100 -4
  38. data/core/rational.rbs +0 -4
  39. data/core/rbs/unnamed/argf.rbs +16 -8
  40. data/core/rbs/unnamed/env_class.rbs +0 -24
  41. data/core/refinement.rbs +8 -0
  42. data/core/regexp.rbs +1149 -598
  43. data/core/ruby_vm.rbs +126 -12
  44. data/core/rubygems/platform.rbs +9 -0
  45. data/core/rubygems/rubygems.rbs +1 -1
  46. data/core/rubygems/version.rbs +5 -1
  47. data/core/set.rbs +20 -22
  48. data/core/signal.rbs +4 -4
  49. data/core/string.rbs +283 -230
  50. data/core/string_io.rbs +2 -14
  51. data/core/struct.rbs +404 -24
  52. data/core/symbol.rbs +1 -19
  53. data/core/thread.rbs +29 -12
  54. data/core/time.rbs +227 -104
  55. data/core/trace_point.rbs +2 -5
  56. data/core/true_class.rbs +54 -21
  57. data/core/warning.rbs +14 -11
  58. data/docs/data_and_struct.md +29 -0
  59. data/docs/gem.md +58 -0
  60. data/docs/syntax.md +3 -5
  61. data/docs/tools.md +1 -0
  62. data/ext/rbs_extension/lexer.c +643 -559
  63. data/ext/rbs_extension/lexer.re +5 -1
  64. data/ext/rbs_extension/parser.c +12 -3
  65. data/ext/rbs_extension/unescape.c +7 -47
  66. data/lib/rbs/cli/diff.rb +4 -1
  67. data/lib/rbs/cli/validate.rb +280 -0
  68. data/lib/rbs/cli.rb +2 -194
  69. data/lib/rbs/collection/config.rb +5 -6
  70. data/lib/rbs/collection/sources/git.rb +1 -1
  71. data/lib/rbs/collection.rb +1 -0
  72. data/lib/rbs/diff.rb +7 -4
  73. data/lib/rbs/errors.rb +11 -0
  74. data/lib/rbs/test/errors.rb +10 -2
  75. data/lib/rbs/test/guaranteed.rb +2 -3
  76. data/lib/rbs/test/type_check.rb +15 -10
  77. data/lib/rbs/test.rb +3 -3
  78. data/lib/rbs/types.rb +29 -0
  79. data/lib/rbs/unit_test/convertibles.rb +176 -0
  80. data/lib/rbs/unit_test/spy.rb +136 -0
  81. data/lib/rbs/unit_test/type_assertions.rb +341 -0
  82. data/lib/rbs/unit_test/with_aliases.rb +143 -0
  83. data/lib/rbs/unit_test.rb +6 -0
  84. data/lib/rbs/version.rb +1 -1
  85. data/sig/cli/validate.rbs +43 -0
  86. data/sig/diff.rbs +3 -1
  87. data/sig/errors.rbs +8 -0
  88. data/sig/rbs.rbs +1 -1
  89. data/sig/test/errors.rbs +52 -0
  90. data/sig/test/guranteed.rbs +9 -0
  91. data/sig/test/type_check.rbs +19 -0
  92. data/sig/test.rbs +82 -0
  93. data/sig/types.rbs +6 -1
  94. data/sig/unit_test/convertibles.rbs +154 -0
  95. data/sig/unit_test/spy.rbs +28 -0
  96. data/sig/unit_test/type_assertions.rbs +194 -0
  97. data/sig/unit_test/with_aliases.rbs +136 -0
  98. data/stdlib/base64/0/base64.rbs +307 -45
  99. data/stdlib/bigdecimal/0/big_decimal.rbs +35 -15
  100. data/stdlib/coverage/0/coverage.rbs +2 -2
  101. data/stdlib/csv/0/csv.rbs +25 -55
  102. data/stdlib/date/0/date.rbs +1 -43
  103. data/stdlib/date/0/date_time.rbs +1 -13
  104. data/stdlib/delegate/0/delegator.rbs +186 -0
  105. data/stdlib/delegate/0/kernel.rbs +47 -0
  106. data/stdlib/delegate/0/simple_delegator.rbs +98 -0
  107. data/stdlib/did_you_mean/0/did_you_mean.rbs +1 -1
  108. data/stdlib/erb/0/erb.rbs +2 -2
  109. data/stdlib/fileutils/0/fileutils.rbs +0 -19
  110. data/stdlib/io-console/0/io-console.rbs +12 -1
  111. data/stdlib/ipaddr/0/ipaddr.rbs +2 -1
  112. data/stdlib/json/0/json.rbs +320 -81
  113. data/stdlib/logger/0/logger.rbs +9 -5
  114. data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +6 -6
  115. data/stdlib/monitor/0/monitor.rbs +78 -0
  116. data/stdlib/net-http/0/net-http.rbs +1880 -543
  117. data/stdlib/objspace/0/objspace.rbs +19 -13
  118. data/stdlib/openssl/0/openssl.rbs +508 -127
  119. data/stdlib/optparse/0/optparse.rbs +25 -11
  120. data/stdlib/pathname/0/pathname.rbs +1 -1
  121. data/stdlib/pp/0/pp.rbs +2 -5
  122. data/stdlib/prettyprint/0/prettyprint.rbs +2 -2
  123. data/stdlib/pstore/0/pstore.rbs +2 -4
  124. data/stdlib/rdoc/0/comment.rbs +1 -2
  125. data/stdlib/resolv/0/resolv.rbs +4 -2
  126. data/stdlib/socket/0/socket.rbs +2 -2
  127. data/stdlib/socket/0/unix_socket.rbs +2 -2
  128. data/stdlib/strscan/0/string_scanner.rbs +3 -2
  129. data/stdlib/tempfile/0/tempfile.rbs +1 -1
  130. data/stdlib/uri/0/common.rbs +245 -123
  131. metadata +24 -4
  132. data/lib/rbs/test/spy.rb +0 -6
@@ -1,4 +1,4 @@
1
- /* Generated by re2c 3.0 */
1
+ /* Generated by re2c 3.1 */
2
2
  #line 1 "ext/rbs_extension/lexer.re"
3
3
  #include "rbs_extension.h"
4
4
 
@@ -116,13 +116,13 @@ start:
116
116
  }
117
117
  yy1:
118
118
  rbs_skip(state);
119
- #line 141 "ext/rbs_extension/lexer.re"
119
+ #line 145 "ext/rbs_extension/lexer.re"
120
120
  { return next_token(state, pEOF); }
121
121
  #line 122 "ext/rbs_extension/lexer.c"
122
122
  yy2:
123
123
  rbs_skip(state);
124
124
  yy3:
125
- #line 142 "ext/rbs_extension/lexer.re"
125
+ #line 146 "ext/rbs_extension/lexer.re"
126
126
  { return next_token(state, ErrorToken); }
127
127
  #line 128 "ext/rbs_extension/lexer.c"
128
128
  yy4:
@@ -136,7 +136,7 @@ yy4:
136
136
  if (yych == ' ') goto yy4;
137
137
  }
138
138
  yy5:
139
- #line 140 "ext/rbs_extension/lexer.re"
139
+ #line 144 "ext/rbs_extension/lexer.re"
140
140
  { state->start = state->current; goto start; }
141
141
  #line 142 "ext/rbs_extension/lexer.c"
142
142
  yy6:
@@ -453,7 +453,7 @@ yy35:
453
453
  }
454
454
  }
455
455
  yy36:
456
- #line 126 "ext/rbs_extension/lexer.re"
456
+ #line 130 "ext/rbs_extension/lexer.re"
457
457
  { return next_token(state, tUIDENT); }
458
458
  #line 459 "ext/rbs_extension/lexer.c"
459
459
  yy37:
@@ -494,7 +494,7 @@ yy40:
494
494
  }
495
495
  }
496
496
  yy41:
497
- #line 129 "ext/rbs_extension/lexer.re"
497
+ #line 133 "ext/rbs_extension/lexer.re"
498
498
  { return next_token(state, tULLIDENT); }
499
499
  #line 500 "ext/rbs_extension/lexer.c"
500
500
  yy42:
@@ -524,7 +524,7 @@ yy44:
524
524
  goto yy52;
525
525
  }
526
526
  yy45:
527
- #line 125 "ext/rbs_extension/lexer.re"
527
+ #line 129 "ext/rbs_extension/lexer.re"
528
528
  { return next_token(state, tLIDENT); }
529
529
  #line 530 "ext/rbs_extension/lexer.c"
530
530
  yy46:
@@ -682,38 +682,20 @@ yy67:
682
682
  goto yy77;
683
683
  }
684
684
  } else {
685
- goto yy152;
685
+ goto yy154;
686
686
  }
687
687
  }
688
688
  yy68:
689
689
  rbs_skip(state);
690
- #line 103 "ext/rbs_extension/lexer.re"
690
+ #line 107 "ext/rbs_extension/lexer.re"
691
691
  { return next_token(state, tDQSTRING); }
692
692
  #line 693 "ext/rbs_extension/lexer.c"
693
693
  yy69:
694
694
  rbs_skip(state);
695
695
  yych = peek(state);
696
- if (yych <= 'd') {
697
- if (yych <= '[') {
698
- if (yych == '"') goto yy65;
699
- goto yy67;
700
- } else {
701
- if (yych <= '\\') goto yy65;
702
- if (yych <= '`') goto yy67;
703
- if (yych <= 'b') goto yy65;
704
- goto yy67;
705
- }
706
- } else {
707
- if (yych <= 'q') {
708
- if (yych <= 'f') goto yy65;
709
- if (yych == 'n') goto yy65;
710
- goto yy67;
711
- } else {
712
- if (yych == 'u') goto yy67;
713
- if (yych <= 'v') goto yy65;
714
- goto yy67;
715
- }
716
- }
696
+ if (yych == 'u') goto yy139;
697
+ if (yych == 'x') goto yy140;
698
+ goto yy65;
717
699
  yy70:
718
700
  rbs_skip(state);
719
701
  yych = peek(state);
@@ -744,9 +726,9 @@ yy70:
744
726
  }
745
727
  }
746
728
  yy71:
747
- #line 136 "ext/rbs_extension/lexer.re"
729
+ #line 140 "ext/rbs_extension/lexer.re"
748
730
  { return next_token(state, tGIDENT); }
749
- #line 750 "ext/rbs_extension/lexer.c"
731
+ #line 732 "ext/rbs_extension/lexer.c"
750
732
  yy72:
751
733
  rbs_skip(state);
752
734
  goto yy71;
@@ -756,18 +738,18 @@ yy73:
756
738
  if (yych <= 'Z') {
757
739
  if (yych <= '(') {
758
740
  if (yych <= '\'') goto yy67;
759
- goto yy139;
741
+ goto yy141;
760
742
  } else {
761
- if (yych == '<') goto yy140;
743
+ if (yych == '<') goto yy142;
762
744
  goto yy67;
763
745
  }
764
746
  } else {
765
747
  if (yych <= 'z') {
766
- if (yych <= '[') goto yy141;
748
+ if (yych <= '[') goto yy143;
767
749
  goto yy67;
768
750
  } else {
769
- if (yych <= '{') goto yy142;
770
- if (yych <= '|') goto yy143;
751
+ if (yych <= '{') goto yy144;
752
+ if (yych <= '|') goto yy145;
771
753
  goto yy67;
772
754
  }
773
755
  }
@@ -785,16 +767,16 @@ yy75:
785
767
  yy76:
786
768
  rbs_skip(state);
787
769
  yy77:
788
- #line 104 "ext/rbs_extension/lexer.re"
770
+ #line 108 "ext/rbs_extension/lexer.re"
789
771
  { return next_token(state, tSQSTRING); }
790
- #line 791 "ext/rbs_extension/lexer.c"
772
+ #line 773 "ext/rbs_extension/lexer.c"
791
773
  yy78:
792
774
  rbs_skip(state);
793
775
  yych = peek(state);
794
776
  if (yych <= '\'') {
795
777
  if (yych <= 0x00000000) goto yy67;
796
778
  if (yych <= '&') goto yy74;
797
- goto yy144;
779
+ goto yy146;
798
780
  } else {
799
781
  if (yych == '\\') goto yy78;
800
782
  goto yy74;
@@ -803,16 +785,16 @@ yy79:
803
785
  rbs_skip(state);
804
786
  #line 37 "ext/rbs_extension/lexer.re"
805
787
  { return next_token(state, pSTAR2); }
806
- #line 807 "ext/rbs_extension/lexer.c"
788
+ #line 789 "ext/rbs_extension/lexer.c"
807
789
  yy80:
808
790
  rbs_skip(state);
809
791
  #line 42 "ext/rbs_extension/lexer.re"
810
792
  { return next_token(state, pARROW); }
811
- #line 812 "ext/rbs_extension/lexer.c"
793
+ #line 794 "ext/rbs_extension/lexer.c"
812
794
  yy81:
813
795
  rbs_skip(state);
814
796
  yych = peek(state);
815
- if (yych == '.') goto yy145;
797
+ if (yych == '.') goto yy147;
816
798
  goto yy67;
817
799
  yy82:
818
800
  rbs_skip(state);
@@ -820,18 +802,18 @@ yy82:
820
802
  if (yych == '=') goto yy86;
821
803
  if (yych == '~') goto yy86;
822
804
  yy83:
823
- #line 123 "ext/rbs_extension/lexer.re"
805
+ #line 127 "ext/rbs_extension/lexer.re"
824
806
  { return next_token(state, tSYMBOL); }
825
- #line 826 "ext/rbs_extension/lexer.c"
807
+ #line 808 "ext/rbs_extension/lexer.c"
826
808
  yy84:
827
809
  rbs_skip(state);
828
810
  yych = peek(state);
829
811
  if (yych <= '"') {
830
812
  if (yych <= 0x00000000) goto yy67;
831
813
  if (yych <= '!') goto yy84;
832
- goto yy146;
814
+ goto yy148;
833
815
  } else {
834
- if (yych == '\\') goto yy147;
816
+ if (yych == '\\') goto yy149;
835
817
  goto yy84;
836
818
  }
837
819
  yy85:
@@ -841,42 +823,42 @@ yy85:
841
823
  if (yych <= 0x0000001F) {
842
824
  if (yych <= '\n') {
843
825
  if (yych <= 0x00000000) goto yy67;
844
- if (yych <= 0x00000008) goto yy148;
826
+ if (yych <= 0x00000008) goto yy150;
845
827
  goto yy67;
846
828
  } else {
847
829
  if (yych == '\r') goto yy67;
848
- goto yy148;
830
+ goto yy150;
849
831
  }
850
832
  } else {
851
833
  if (yych <= '#') {
852
834
  if (yych <= ' ') goto yy67;
853
- if (yych <= '"') goto yy150;
854
- goto yy148;
835
+ if (yych <= '"') goto yy152;
836
+ goto yy150;
855
837
  } else {
856
838
  if (yych == '%') goto yy67;
857
- if (yych <= '\'') goto yy150;
839
+ if (yych <= '\'') goto yy152;
858
840
  goto yy67;
859
841
  }
860
842
  }
861
843
  } else {
862
844
  if (yych <= 'Z') {
863
845
  if (yych <= '/') {
864
- if (yych == '-') goto yy148;
865
- goto yy150;
846
+ if (yych == '-') goto yy150;
847
+ goto yy152;
866
848
  } else {
867
- if (yych <= '9') goto yy148;
868
- if (yych <= '>') goto yy150;
869
- goto yy148;
849
+ if (yych <= '9') goto yy150;
850
+ if (yych <= '>') goto yy152;
851
+ goto yy150;
870
852
  }
871
853
  } else {
872
854
  if (yych <= '^') {
873
- if (yych == '\\') goto yy150;
855
+ if (yych == '\\') goto yy152;
874
856
  goto yy67;
875
857
  } else {
876
- if (yych <= 'z') goto yy148;
858
+ if (yych <= 'z') goto yy150;
877
859
  if (yych <= '}') goto yy67;
878
- if (yych <= '~') goto yy150;
879
- goto yy148;
860
+ if (yych <= '~') goto yy152;
861
+ goto yy150;
880
862
  }
881
863
  }
882
864
  }
@@ -889,9 +871,9 @@ yy87:
889
871
  if (yych <= '\'') {
890
872
  if (yych <= 0x00000000) goto yy67;
891
873
  if (yych <= '&') goto yy87;
892
- goto yy151;
874
+ goto yy153;
893
875
  } else {
894
- if (yych == '\\') goto yy153;
876
+ if (yych == '\\') goto yy155;
895
877
  goto yy87;
896
878
  }
897
879
  yy88:
@@ -908,18 +890,18 @@ yy90:
908
890
  rbs_skip(state);
909
891
  #line 46 "ext/rbs_extension/lexer.re"
910
892
  { return next_token(state, pCOLON2); }
911
- #line 912 "ext/rbs_extension/lexer.c"
893
+ #line 894 "ext/rbs_extension/lexer.c"
912
894
  yy91:
913
895
  rbs_skip(state);
914
896
  yych = peek(state);
915
897
  if (yych <= ';') goto yy83;
916
898
  if (yych <= '<') goto yy86;
917
- if (yych <= '=') goto yy154;
899
+ if (yych <= '=') goto yy156;
918
900
  goto yy83;
919
901
  yy92:
920
902
  rbs_skip(state);
921
903
  yych = peek(state);
922
- if (yych == '=') goto yy155;
904
+ if (yych == '=') goto yy157;
923
905
  if (yych == '~') goto yy86;
924
906
  goto yy67;
925
907
  yy93:
@@ -933,12 +915,12 @@ yy94:
933
915
  yych = peek(state);
934
916
  if (yych <= '^') {
935
917
  if (yych <= '?') goto yy67;
936
- if (yych <= '@') goto yy156;
937
- if (yych <= 'Z') goto yy157;
918
+ if (yych <= '@') goto yy158;
919
+ if (yych <= 'Z') goto yy159;
938
920
  goto yy67;
939
921
  } else {
940
922
  if (yych == '`') goto yy67;
941
- if (yych <= 'z') goto yy157;
923
+ if (yych <= 'z') goto yy159;
942
924
  goto yy67;
943
925
  }
944
926
  yy95:
@@ -946,14 +928,14 @@ yy95:
946
928
  yych = peek(state);
947
929
  if (yych <= '>') {
948
930
  if (yych <= '/') {
949
- if (yych == '!') goto yy159;
931
+ if (yych == '!') goto yy161;
950
932
  } else {
951
933
  if (yych <= '9') goto yy95;
952
- if (yych == '=') goto yy159;
934
+ if (yych == '=') goto yy161;
953
935
  }
954
936
  } else {
955
937
  if (yych <= '^') {
956
- if (yych <= '?') goto yy159;
938
+ if (yych <= '?') goto yy161;
957
939
  if (yych <= '@') goto yy96;
958
940
  if (yych <= 'Z') goto yy95;
959
941
  } else {
@@ -962,13 +944,13 @@ yy95:
962
944
  }
963
945
  }
964
946
  yy96:
965
- #line 119 "ext/rbs_extension/lexer.re"
947
+ #line 123 "ext/rbs_extension/lexer.re"
966
948
  { return next_token(state, tSYMBOL); }
967
- #line 968 "ext/rbs_extension/lexer.c"
949
+ #line 950 "ext/rbs_extension/lexer.c"
968
950
  yy97:
969
951
  rbs_skip(state);
970
952
  yych = peek(state);
971
- if (yych == ']') goto yy155;
953
+ if (yych == ']') goto yy157;
972
954
  goto yy67;
973
955
  yy98:
974
956
  rbs_skip(state);
@@ -984,17 +966,17 @@ yy100:
984
966
  rbs_skip(state);
985
967
  #line 43 "ext/rbs_extension/lexer.re"
986
968
  { return next_token(state, pFATARROW); }
987
- #line 988 "ext/rbs_extension/lexer.c"
969
+ #line 970 "ext/rbs_extension/lexer.c"
988
970
  yy101:
989
971
  rbs_skip(state);
990
972
  yych = peek(state);
991
973
  if (yych <= '^') {
992
974
  if (yych <= '@') goto yy67;
993
- if (yych <= 'Z') goto yy160;
975
+ if (yych <= 'Z') goto yy162;
994
976
  goto yy67;
995
977
  } else {
996
978
  if (yych == '`') goto yy67;
997
- if (yych <= 'z') goto yy160;
979
+ if (yych <= 'z') goto yy162;
998
980
  goto yy67;
999
981
  }
1000
982
  yy102:
@@ -1013,26 +995,26 @@ yy102:
1013
995
  }
1014
996
  }
1015
997
  yy103:
1016
- #line 133 "ext/rbs_extension/lexer.re"
998
+ #line 137 "ext/rbs_extension/lexer.re"
1017
999
  { return next_token(state, tAIDENT); }
1018
- #line 1019 "ext/rbs_extension/lexer.c"
1000
+ #line 1001 "ext/rbs_extension/lexer.c"
1019
1001
  yy104:
1020
1002
  rbs_skip(state);
1021
- #line 130 "ext/rbs_extension/lexer.re"
1003
+ #line 134 "ext/rbs_extension/lexer.re"
1022
1004
  { return next_token(state, tBANGIDENT); }
1023
- #line 1024 "ext/rbs_extension/lexer.c"
1005
+ #line 1006 "ext/rbs_extension/lexer.c"
1024
1006
  yy105:
1025
1007
  rbs_skip(state);
1026
- #line 131 "ext/rbs_extension/lexer.re"
1008
+ #line 135 "ext/rbs_extension/lexer.re"
1027
1009
  { return next_token(state, tEQIDENT); }
1028
- #line 1029 "ext/rbs_extension/lexer.c"
1010
+ #line 1011 "ext/rbs_extension/lexer.c"
1029
1011
  yy106:
1030
1012
  rbs_skip(state);
1031
1013
  yych = peek(state);
1032
1014
  if (yych == '=') goto yy23;
1033
1015
  #line 48 "ext/rbs_extension/lexer.re"
1034
1016
  { return next_token(state, pAREF_OPR); }
1035
- #line 1036 "ext/rbs_extension/lexer.c"
1017
+ #line 1018 "ext/rbs_extension/lexer.c"
1036
1018
  yy107:
1037
1019
  rbs_skip(state);
1038
1020
  yych = peek(state);
@@ -1054,9 +1036,9 @@ yy108:
1054
1036
  }
1055
1037
  }
1056
1038
  yy109:
1057
- #line 127 "ext/rbs_extension/lexer.re"
1039
+ #line 131 "ext/rbs_extension/lexer.re"
1058
1040
  { return next_token(state, tULLIDENT); }
1059
- #line 1060 "ext/rbs_extension/lexer.c"
1041
+ #line 1042 "ext/rbs_extension/lexer.c"
1060
1042
  yy110:
1061
1043
  rbs_skip(state);
1062
1044
  yych = peek(state);
@@ -1077,24 +1059,24 @@ yy110:
1077
1059
  }
1078
1060
  }
1079
1061
  yy111:
1080
- #line 128 "ext/rbs_extension/lexer.re"
1062
+ #line 132 "ext/rbs_extension/lexer.re"
1081
1063
  { return next_token(state, tULIDENT); }
1082
- #line 1083 "ext/rbs_extension/lexer.c"
1064
+ #line 1065 "ext/rbs_extension/lexer.c"
1083
1065
  yy112:
1084
1066
  rbs_skip(state);
1085
1067
  yych = peek(state);
1086
- if (yych == 't') goto yy162;
1068
+ if (yych == 't') goto yy164;
1087
1069
  goto yy108;
1088
1070
  yy113:
1089
1071
  rbs_skip(state);
1090
1072
  yych = peek(state);
1091
1073
  if (yych <= 0x00000000) goto yy67;
1092
- if (yych == '`') goto yy163;
1074
+ if (yych == '`') goto yy165;
1093
1075
  goto yy113;
1094
1076
  yy114:
1095
1077
  rbs_skip(state);
1096
1078
  yych = peek(state);
1097
- if (yych == 'i') goto yy164;
1079
+ if (yych == 'i') goto yy166;
1098
1080
  goto yy52;
1099
1081
  yy115:
1100
1082
  rbs_skip(state);
@@ -1118,42 +1100,42 @@ yy115:
1118
1100
  yy116:
1119
1101
  #line 97 "ext/rbs_extension/lexer.re"
1120
1102
  { return next_token(state, kAS); }
1121
- #line 1122 "ext/rbs_extension/lexer.c"
1103
+ #line 1104 "ext/rbs_extension/lexer.c"
1122
1104
  yy117:
1123
1105
  rbs_skip(state);
1124
1106
  yych = peek(state);
1125
- if (yych == 't') goto yy165;
1107
+ if (yych == 't') goto yy167;
1126
1108
  goto yy52;
1127
1109
  yy118:
1128
1110
  rbs_skip(state);
1129
1111
  yych = peek(state);
1130
- if (yych == 'o') goto yy166;
1131
- if (yych == 't') goto yy167;
1112
+ if (yych == 'o') goto yy168;
1113
+ if (yych == 't') goto yy169;
1132
1114
  goto yy52;
1133
1115
  yy119:
1134
1116
  rbs_skip(state);
1135
1117
  yych = peek(state);
1136
- if (yych == 'a') goto yy169;
1118
+ if (yych == 'a') goto yy171;
1137
1119
  goto yy52;
1138
1120
  yy120:
1139
1121
  rbs_skip(state);
1140
1122
  yych = peek(state);
1141
- if (yych == 'f') goto yy170;
1123
+ if (yych == 'f') goto yy172;
1142
1124
  goto yy52;
1143
1125
  yy121:
1144
1126
  rbs_skip(state);
1145
1127
  yych = peek(state);
1146
- if (yych == 'd') goto yy172;
1128
+ if (yych == 'd') goto yy174;
1147
1129
  goto yy52;
1148
1130
  yy122:
1149
1131
  rbs_skip(state);
1150
1132
  yych = peek(state);
1151
- if (yych == 't') goto yy174;
1133
+ if (yych == 't') goto yy176;
1152
1134
  goto yy52;
1153
1135
  yy123:
1154
1136
  rbs_skip(state);
1155
1137
  yych = peek(state);
1156
- if (yych == 'l') goto yy175;
1138
+ if (yych == 'l') goto yy177;
1157
1139
  goto yy52;
1158
1140
  yy124:
1159
1141
  rbs_skip(state);
@@ -1174,13 +1156,13 @@ yy124:
1174
1156
  if (yych <= 'c') {
1175
1157
  if (yych == '`') goto yy125;
1176
1158
  if (yych <= 'b') goto yy51;
1177
- goto yy176;
1159
+ goto yy178;
1178
1160
  } else {
1179
1161
  if (yych <= 's') {
1180
1162
  if (yych <= 'r') goto yy51;
1181
- goto yy177;
1163
+ goto yy179;
1182
1164
  } else {
1183
- if (yych <= 't') goto yy178;
1165
+ if (yych <= 't') goto yy180;
1184
1166
  if (yych <= 'z') goto yy51;
1185
1167
  }
1186
1168
  }
@@ -1188,105 +1170,126 @@ yy124:
1188
1170
  yy125:
1189
1171
  #line 78 "ext/rbs_extension/lexer.re"
1190
1172
  { return next_token(state, kIN); }
1191
- #line 1192 "ext/rbs_extension/lexer.c"
1173
+ #line 1174 "ext/rbs_extension/lexer.c"
1192
1174
  yy126:
1193
1175
  rbs_skip(state);
1194
1176
  yych = peek(state);
1195
- if (yych == 'd') goto yy179;
1177
+ if (yych == 'd') goto yy181;
1196
1178
  goto yy52;
1197
1179
  yy127:
1198
1180
  rbs_skip(state);
1199
1181
  yych = peek(state);
1200
- if (yych == 'l') goto yy180;
1182
+ if (yych == 'l') goto yy182;
1201
1183
  goto yy52;
1202
1184
  yy128:
1203
1185
  rbs_skip(state);
1204
1186
  yych = peek(state);
1205
- if (yych == 't') goto yy182;
1187
+ if (yych == 't') goto yy184;
1206
1188
  goto yy52;
1207
1189
  yy129:
1208
1190
  rbs_skip(state);
1209
1191
  yych = peek(state);
1210
- if (yych == 'e') goto yy184;
1211
- if (yych == 'i') goto yy185;
1192
+ if (yych == 'e') goto yy186;
1193
+ if (yych == 'i') goto yy187;
1212
1194
  goto yy52;
1213
1195
  yy130:
1214
1196
  rbs_skip(state);
1215
1197
  yych = peek(state);
1216
- if (yych == 'b') goto yy186;
1198
+ if (yych == 'b') goto yy188;
1217
1199
  goto yy52;
1218
1200
  yy131:
1219
1201
  rbs_skip(state);
1220
1202
  yych = peek(state);
1221
- if (yych == 'l') goto yy187;
1203
+ if (yych == 'l') goto yy189;
1222
1204
  goto yy52;
1223
1205
  yy132:
1224
1206
  rbs_skip(state);
1225
1207
  yych = peek(state);
1226
- if (yych == 'n') goto yy188;
1208
+ if (yych == 'n') goto yy190;
1227
1209
  goto yy52;
1228
1210
  yy133:
1229
1211
  rbs_skip(state);
1230
1212
  yych = peek(state);
1231
- if (yych == 'p') goto yy189;
1213
+ if (yych == 'p') goto yy191;
1232
1214
  goto yy52;
1233
1215
  yy134:
1234
1216
  rbs_skip(state);
1235
1217
  yych = peek(state);
1236
- if (yych == 'u') goto yy191;
1218
+ if (yych == 'u') goto yy193;
1237
1219
  goto yy52;
1238
1220
  yy135:
1239
1221
  rbs_skip(state);
1240
1222
  yych = peek(state);
1241
- if (yych == 'p') goto yy192;
1223
+ if (yych == 'p') goto yy194;
1242
1224
  goto yy52;
1243
1225
  yy136:
1244
1226
  rbs_skip(state);
1245
1227
  yych = peek(state);
1246
- if (yych == 'c') goto yy193;
1247
- if (yych == 't') goto yy194;
1228
+ if (yych == 'c') goto yy195;
1229
+ if (yych == 't') goto yy196;
1248
1230
  goto yy52;
1249
1231
  yy137:
1250
1232
  rbs_skip(state);
1251
1233
  yych = peek(state);
1252
- if (yych == 'e') goto yy195;
1234
+ if (yych == 'e') goto yy197;
1253
1235
  goto yy52;
1254
1236
  yy138:
1255
1237
  rbs_skip(state);
1256
1238
  yych = peek(state);
1257
- if (yych == 'i') goto yy197;
1239
+ if (yych == 'i') goto yy199;
1258
1240
  goto yy52;
1259
1241
  yy139:
1260
1242
  rbs_skip(state);
1261
1243
  yych = peek(state);
1262
- if (yych <= 0x00000000) goto yy67;
1263
- if (yych == ')') goto yy198;
1264
- goto yy139;
1244
+ if (yych <= '@') {
1245
+ if (yych <= '/') goto yy67;
1246
+ if (yych <= '9') goto yy200;
1247
+ goto yy67;
1248
+ } else {
1249
+ if (yych <= 'F') goto yy200;
1250
+ if (yych <= '`') goto yy67;
1251
+ if (yych <= 'f') goto yy200;
1252
+ goto yy67;
1253
+ }
1265
1254
  yy140:
1266
1255
  rbs_skip(state);
1267
1256
  yych = peek(state);
1268
- if (yych <= 0x00000000) goto yy67;
1269
- if (yych == '>') goto yy199;
1270
- goto yy140;
1257
+ if (yych <= '/') goto yy67;
1258
+ if (yych <= '9') goto yy65;
1259
+ if (yych <= '`') goto yy67;
1260
+ if (yych <= 'f') goto yy65;
1261
+ goto yy67;
1271
1262
  yy141:
1272
1263
  rbs_skip(state);
1273
1264
  yych = peek(state);
1274
1265
  if (yych <= 0x00000000) goto yy67;
1275
- if (yych == ']') goto yy200;
1266
+ if (yych == ')') goto yy201;
1276
1267
  goto yy141;
1277
1268
  yy142:
1278
1269
  rbs_skip(state);
1279
1270
  yych = peek(state);
1280
1271
  if (yych <= 0x00000000) goto yy67;
1281
- if (yych == '}') goto yy201;
1272
+ if (yych == '>') goto yy202;
1282
1273
  goto yy142;
1283
1274
  yy143:
1284
1275
  rbs_skip(state);
1285
1276
  yych = peek(state);
1286
1277
  if (yych <= 0x00000000) goto yy67;
1287
- if (yych == '|') goto yy202;
1278
+ if (yych == ']') goto yy203;
1288
1279
  goto yy143;
1289
1280
  yy144:
1281
+ rbs_skip(state);
1282
+ yych = peek(state);
1283
+ if (yych <= 0x00000000) goto yy67;
1284
+ if (yych == '}') goto yy204;
1285
+ goto yy144;
1286
+ yy145:
1287
+ rbs_skip(state);
1288
+ yych = peek(state);
1289
+ if (yych <= 0x00000000) goto yy67;
1290
+ if (yych == '|') goto yy205;
1291
+ goto yy145;
1292
+ yy146:
1290
1293
  yyaccept = 5;
1291
1294
  rbs_skip(state);
1292
1295
  backup = *state;
@@ -1299,187 +1302,169 @@ yy144:
1299
1302
  if (yych == '\\') goto yy78;
1300
1303
  goto yy74;
1301
1304
  }
1302
- yy145:
1305
+ yy147:
1303
1306
  rbs_skip(state);
1304
1307
  #line 39 "ext/rbs_extension/lexer.re"
1305
1308
  { return next_token(state, pDOT3); }
1306
- #line 1307 "ext/rbs_extension/lexer.c"
1307
- yy146:
1309
+ #line 1310 "ext/rbs_extension/lexer.c"
1310
+ yy148:
1308
1311
  rbs_skip(state);
1309
- #line 105 "ext/rbs_extension/lexer.re"
1312
+ #line 109 "ext/rbs_extension/lexer.re"
1310
1313
  { return next_token(state, tDQSYMBOL); }
1311
- #line 1312 "ext/rbs_extension/lexer.c"
1312
- yy147:
1314
+ #line 1315 "ext/rbs_extension/lexer.c"
1315
+ yy149:
1313
1316
  rbs_skip(state);
1314
1317
  yych = peek(state);
1315
- if (yych <= 'd') {
1316
- if (yych <= '[') {
1317
- if (yych == '"') goto yy84;
1318
- goto yy67;
1319
- } else {
1320
- if (yych <= '\\') goto yy84;
1321
- if (yych <= '`') goto yy67;
1322
- if (yych <= 'b') goto yy84;
1323
- goto yy67;
1324
- }
1325
- } else {
1326
- if (yych <= 'q') {
1327
- if (yych <= 'f') goto yy84;
1328
- if (yych == 'n') goto yy84;
1329
- goto yy67;
1330
- } else {
1331
- if (yych == 'u') goto yy67;
1332
- if (yych <= 'v') goto yy84;
1333
- goto yy67;
1334
- }
1335
- }
1336
- yy148:
1318
+ if (yych == 'u') goto yy206;
1319
+ if (yych == 'x') goto yy207;
1320
+ goto yy84;
1321
+ yy150:
1337
1322
  rbs_skip(state);
1338
1323
  yych = peek(state);
1339
1324
  if (yych <= ',') {
1340
1325
  if (yych <= '\f') {
1341
- if (yych <= 0x00000000) goto yy149;
1342
- if (yych <= 0x00000008) goto yy148;
1343
- if (yych >= '\v') goto yy148;
1326
+ if (yych <= 0x00000000) goto yy151;
1327
+ if (yych <= 0x00000008) goto yy150;
1328
+ if (yych >= '\v') goto yy150;
1344
1329
  } else {
1345
1330
  if (yych <= 0x0000001F) {
1346
- if (yych >= 0x0000000E) goto yy148;
1331
+ if (yych >= 0x0000000E) goto yy150;
1347
1332
  } else {
1348
- if (yych == '#') goto yy148;
1333
+ if (yych == '#') goto yy150;
1349
1334
  }
1350
1335
  }
1351
1336
  } else {
1352
1337
  if (yych <= '>') {
1353
- if (yych <= '-') goto yy148;
1354
- if (yych <= '/') goto yy149;
1355
- if (yych <= '9') goto yy148;
1338
+ if (yych <= '-') goto yy150;
1339
+ if (yych <= '/') goto yy151;
1340
+ if (yych <= '9') goto yy150;
1356
1341
  } else {
1357
1342
  if (yych <= '^') {
1358
- if (yych <= 'Z') goto yy148;
1343
+ if (yych <= 'Z') goto yy150;
1359
1344
  } else {
1360
- if (yych <= 'z') goto yy148;
1361
- if (yych >= 0x0000007F) goto yy148;
1345
+ if (yych <= 'z') goto yy150;
1346
+ if (yych >= 0x0000007F) goto yy150;
1362
1347
  }
1363
1348
  }
1364
1349
  }
1365
- yy149:
1366
- #line 122 "ext/rbs_extension/lexer.re"
1350
+ yy151:
1351
+ #line 126 "ext/rbs_extension/lexer.re"
1367
1352
  { return next_token(state, tSYMBOL); }
1368
- #line 1369 "ext/rbs_extension/lexer.c"
1369
- yy150:
1353
+ #line 1354 "ext/rbs_extension/lexer.c"
1354
+ yy152:
1370
1355
  rbs_skip(state);
1371
- goto yy149;
1372
- yy151:
1356
+ goto yy151;
1357
+ yy153:
1373
1358
  rbs_skip(state);
1374
- yy152:
1375
- #line 106 "ext/rbs_extension/lexer.re"
1359
+ yy154:
1360
+ #line 110 "ext/rbs_extension/lexer.re"
1376
1361
  { return next_token(state, tSQSYMBOL); }
1377
- #line 1378 "ext/rbs_extension/lexer.c"
1378
- yy153:
1362
+ #line 1363 "ext/rbs_extension/lexer.c"
1363
+ yy155:
1379
1364
  rbs_skip(state);
1380
1365
  yych = peek(state);
1381
1366
  if (yych <= '\'') {
1382
1367
  if (yych <= 0x00000000) goto yy67;
1383
1368
  if (yych <= '&') goto yy87;
1384
- goto yy203;
1369
+ goto yy208;
1385
1370
  } else {
1386
- if (yych == '\\') goto yy153;
1371
+ if (yych == '\\') goto yy155;
1387
1372
  goto yy87;
1388
1373
  }
1389
- yy154:
1374
+ yy156:
1390
1375
  rbs_skip(state);
1391
1376
  yych = peek(state);
1392
1377
  if (yych == '>') goto yy86;
1393
1378
  goto yy83;
1394
- yy155:
1379
+ yy157:
1395
1380
  rbs_skip(state);
1396
1381
  yych = peek(state);
1397
1382
  if (yych == '=') goto yy86;
1398
1383
  goto yy83;
1399
- yy156:
1384
+ yy158:
1400
1385
  rbs_skip(state);
1401
1386
  yych = peek(state);
1402
1387
  if (yych <= '^') {
1403
1388
  if (yych <= '@') goto yy67;
1404
- if (yych <= 'Z') goto yy204;
1389
+ if (yych <= 'Z') goto yy209;
1405
1390
  goto yy67;
1406
1391
  } else {
1407
1392
  if (yych == '`') goto yy67;
1408
- if (yych <= 'z') goto yy204;
1393
+ if (yych <= 'z') goto yy209;
1409
1394
  goto yy67;
1410
1395
  }
1411
- yy157:
1396
+ yy159:
1412
1397
  rbs_skip(state);
1413
1398
  yych = peek(state);
1414
1399
  if (yych <= '>') {
1415
1400
  if (yych <= '/') {
1416
- if (yych == '!') goto yy206;
1401
+ if (yych == '!') goto yy211;
1417
1402
  } else {
1418
- if (yych <= '9') goto yy157;
1419
- if (yych == '=') goto yy206;
1403
+ if (yych <= '9') goto yy159;
1404
+ if (yych == '=') goto yy211;
1420
1405
  }
1421
1406
  } else {
1422
1407
  if (yych <= '^') {
1423
- if (yych <= '?') goto yy206;
1424
- if (yych <= '@') goto yy158;
1425
- if (yych <= 'Z') goto yy157;
1408
+ if (yych <= '?') goto yy211;
1409
+ if (yych <= '@') goto yy160;
1410
+ if (yych <= 'Z') goto yy159;
1426
1411
  } else {
1427
- if (yych == '`') goto yy158;
1428
- if (yych <= 'z') goto yy157;
1412
+ if (yych == '`') goto yy160;
1413
+ if (yych <= 'z') goto yy159;
1429
1414
  }
1430
1415
  }
1431
- yy158:
1432
- #line 120 "ext/rbs_extension/lexer.re"
1416
+ yy160:
1417
+ #line 124 "ext/rbs_extension/lexer.re"
1433
1418
  { return next_token(state, tSYMBOL); }
1434
- #line 1435 "ext/rbs_extension/lexer.c"
1435
- yy159:
1419
+ #line 1420 "ext/rbs_extension/lexer.c"
1420
+ yy161:
1436
1421
  rbs_skip(state);
1437
1422
  goto yy96;
1438
- yy160:
1423
+ yy162:
1439
1424
  rbs_skip(state);
1440
1425
  yych = peek(state);
1441
1426
  if (yych <= 'Z') {
1442
- if (yych <= '/') goto yy161;
1443
- if (yych <= '9') goto yy160;
1444
- if (yych >= 'A') goto yy160;
1427
+ if (yych <= '/') goto yy163;
1428
+ if (yych <= '9') goto yy162;
1429
+ if (yych >= 'A') goto yy162;
1445
1430
  } else {
1446
1431
  if (yych <= '_') {
1447
- if (yych >= '_') goto yy160;
1432
+ if (yych >= '_') goto yy162;
1448
1433
  } else {
1449
- if (yych <= '`') goto yy161;
1450
- if (yych <= 'z') goto yy160;
1434
+ if (yych <= '`') goto yy163;
1435
+ if (yych <= 'z') goto yy162;
1451
1436
  }
1452
1437
  }
1453
- yy161:
1454
- #line 134 "ext/rbs_extension/lexer.re"
1438
+ yy163:
1439
+ #line 138 "ext/rbs_extension/lexer.re"
1455
1440
  { return next_token(state, tA2IDENT); }
1456
- #line 1457 "ext/rbs_extension/lexer.c"
1457
- yy162:
1441
+ #line 1442 "ext/rbs_extension/lexer.c"
1442
+ yy164:
1458
1443
  rbs_skip(state);
1459
1444
  yych = peek(state);
1460
- if (yych == 'o') goto yy207;
1445
+ if (yych == 'o') goto yy212;
1461
1446
  goto yy108;
1462
- yy163:
1447
+ yy165:
1463
1448
  rbs_skip(state);
1464
1449
  #line 41 "ext/rbs_extension/lexer.re"
1465
1450
  { return next_token(state, tQIDENT); }
1466
- #line 1467 "ext/rbs_extension/lexer.c"
1467
- yy164:
1451
+ #line 1452 "ext/rbs_extension/lexer.c"
1452
+ yy166:
1468
1453
  rbs_skip(state);
1469
1454
  yych = peek(state);
1470
- if (yych == 'a') goto yy208;
1455
+ if (yych == 'a') goto yy213;
1471
1456
  goto yy52;
1472
- yy165:
1457
+ yy167:
1473
1458
  rbs_skip(state);
1474
1459
  yych = peek(state);
1475
- if (yych == 'r') goto yy209;
1460
+ if (yych == 'r') goto yy214;
1476
1461
  goto yy52;
1477
- yy166:
1462
+ yy168:
1478
1463
  rbs_skip(state);
1479
1464
  yych = peek(state);
1480
- if (yych == 'l') goto yy210;
1465
+ if (yych == 'l') goto yy215;
1481
1466
  goto yy52;
1482
- yy167:
1467
+ yy169:
1483
1468
  rbs_skip(state);
1484
1469
  yych = peek(state);
1485
1470
  if (yych <= '=') {
@@ -1491,23 +1476,23 @@ yy167:
1491
1476
  }
1492
1477
  } else {
1493
1478
  if (yych <= '^') {
1494
- if (yych <= '@') goto yy168;
1479
+ if (yych <= '@') goto yy170;
1495
1480
  if (yych <= 'Z') goto yy51;
1496
1481
  } else {
1497
- if (yych == '`') goto yy168;
1482
+ if (yych == '`') goto yy170;
1498
1483
  if (yych <= 'z') goto yy51;
1499
1484
  }
1500
1485
  }
1501
- yy168:
1486
+ yy170:
1502
1487
  #line 72 "ext/rbs_extension/lexer.re"
1503
1488
  { return next_token(state, kBOT); }
1504
- #line 1505 "ext/rbs_extension/lexer.c"
1505
- yy169:
1489
+ #line 1490 "ext/rbs_extension/lexer.c"
1490
+ yy171:
1506
1491
  rbs_skip(state);
1507
1492
  yych = peek(state);
1508
- if (yych == 's') goto yy212;
1493
+ if (yych == 's') goto yy217;
1509
1494
  goto yy52;
1510
- yy170:
1495
+ yy172:
1511
1496
  rbs_skip(state);
1512
1497
  yych = peek(state);
1513
1498
  if (yych <= '=') {
@@ -1519,18 +1504,18 @@ yy170:
1519
1504
  }
1520
1505
  } else {
1521
1506
  if (yych <= '^') {
1522
- if (yych <= '@') goto yy171;
1507
+ if (yych <= '@') goto yy173;
1523
1508
  if (yych <= 'Z') goto yy51;
1524
1509
  } else {
1525
- if (yych == '`') goto yy171;
1510
+ if (yych == '`') goto yy173;
1526
1511
  if (yych <= 'z') goto yy51;
1527
1512
  }
1528
1513
  }
1529
- yy171:
1514
+ yy173:
1530
1515
  #line 74 "ext/rbs_extension/lexer.re"
1531
1516
  { return next_token(state, kDEF); }
1532
- #line 1533 "ext/rbs_extension/lexer.c"
1533
- yy172:
1517
+ #line 1518 "ext/rbs_extension/lexer.c"
1518
+ yy174:
1534
1519
  rbs_skip(state);
1535
1520
  yych = peek(state);
1536
1521
  if (yych <= '=') {
@@ -1542,48 +1527,48 @@ yy172:
1542
1527
  }
1543
1528
  } else {
1544
1529
  if (yych <= '^') {
1545
- if (yych <= '@') goto yy173;
1530
+ if (yych <= '@') goto yy175;
1546
1531
  if (yych <= 'Z') goto yy51;
1547
1532
  } else {
1548
- if (yych == '`') goto yy173;
1533
+ if (yych == '`') goto yy175;
1549
1534
  if (yych <= 'z') goto yy51;
1550
1535
  }
1551
1536
  }
1552
- yy173:
1537
+ yy175:
1553
1538
  #line 75 "ext/rbs_extension/lexer.re"
1554
1539
  { return next_token(state, kEND); }
1555
- #line 1556 "ext/rbs_extension/lexer.c"
1556
- yy174:
1540
+ #line 1541 "ext/rbs_extension/lexer.c"
1541
+ yy176:
1557
1542
  rbs_skip(state);
1558
1543
  yych = peek(state);
1559
- if (yych == 'e') goto yy213;
1544
+ if (yych == 'e') goto yy218;
1560
1545
  goto yy52;
1561
- yy175:
1546
+ yy177:
1562
1547
  rbs_skip(state);
1563
1548
  yych = peek(state);
1564
- if (yych == 's') goto yy214;
1549
+ if (yych == 's') goto yy219;
1565
1550
  goto yy52;
1566
- yy176:
1551
+ yy178:
1567
1552
  rbs_skip(state);
1568
1553
  yych = peek(state);
1569
- if (yych == 'l') goto yy215;
1554
+ if (yych == 'l') goto yy220;
1570
1555
  goto yy52;
1571
- yy177:
1556
+ yy179:
1572
1557
  rbs_skip(state);
1573
1558
  yych = peek(state);
1574
- if (yych == 't') goto yy216;
1559
+ if (yych == 't') goto yy221;
1575
1560
  goto yy52;
1576
- yy178:
1561
+ yy180:
1577
1562
  rbs_skip(state);
1578
1563
  yych = peek(state);
1579
- if (yych == 'e') goto yy217;
1564
+ if (yych == 'e') goto yy222;
1580
1565
  goto yy52;
1581
- yy179:
1566
+ yy181:
1582
1567
  rbs_skip(state);
1583
1568
  yych = peek(state);
1584
- if (yych == 'u') goto yy218;
1569
+ if (yych == 'u') goto yy223;
1585
1570
  goto yy52;
1586
- yy180:
1571
+ yy182:
1587
1572
  rbs_skip(state);
1588
1573
  yych = peek(state);
1589
1574
  if (yych <= '=') {
@@ -1595,18 +1580,18 @@ yy180:
1595
1580
  }
1596
1581
  } else {
1597
1582
  if (yych <= '^') {
1598
- if (yych <= '@') goto yy181;
1583
+ if (yych <= '@') goto yy183;
1599
1584
  if (yych <= 'Z') goto yy51;
1600
1585
  } else {
1601
- if (yych == '`') goto yy181;
1586
+ if (yych == '`') goto yy183;
1602
1587
  if (yych <= 'z') goto yy51;
1603
1588
  }
1604
1589
  }
1605
- yy181:
1590
+ yy183:
1606
1591
  #line 83 "ext/rbs_extension/lexer.re"
1607
1592
  { return next_token(state, kNIL); }
1608
- #line 1609 "ext/rbs_extension/lexer.c"
1609
- yy182:
1593
+ #line 1594 "ext/rbs_extension/lexer.c"
1594
+ yy184:
1610
1595
  rbs_skip(state);
1611
1596
  yych = peek(state);
1612
1597
  if (yych <= '=') {
@@ -1618,43 +1603,43 @@ yy182:
1618
1603
  }
1619
1604
  } else {
1620
1605
  if (yych <= '^') {
1621
- if (yych <= '@') goto yy183;
1606
+ if (yych <= '@') goto yy185;
1622
1607
  if (yych <= 'Z') goto yy51;
1623
1608
  } else {
1624
- if (yych == '`') goto yy183;
1609
+ if (yych == '`') goto yy185;
1625
1610
  if (yych <= 'z') goto yy51;
1626
1611
  }
1627
1612
  }
1628
- yy183:
1613
+ yy185:
1629
1614
  #line 84 "ext/rbs_extension/lexer.re"
1630
1615
  { return next_token(state, kOUT); }
1631
- #line 1632 "ext/rbs_extension/lexer.c"
1632
- yy184:
1616
+ #line 1617 "ext/rbs_extension/lexer.c"
1617
+ yy186:
1633
1618
  rbs_skip(state);
1634
1619
  yych = peek(state);
1635
- if (yych == 'p') goto yy219;
1620
+ if (yych == 'p') goto yy224;
1636
1621
  goto yy52;
1637
- yy185:
1622
+ yy187:
1638
1623
  rbs_skip(state);
1639
1624
  yych = peek(state);
1640
- if (yych == 'v') goto yy220;
1625
+ if (yych == 'v') goto yy225;
1641
1626
  goto yy52;
1642
- yy186:
1627
+ yy188:
1643
1628
  rbs_skip(state);
1644
1629
  yych = peek(state);
1645
- if (yych == 'l') goto yy221;
1630
+ if (yych == 'l') goto yy226;
1646
1631
  goto yy52;
1647
- yy187:
1632
+ yy189:
1648
1633
  rbs_skip(state);
1649
1634
  yych = peek(state);
1650
- if (yych == 'f') goto yy222;
1635
+ if (yych == 'f') goto yy227;
1651
1636
  goto yy52;
1652
- yy188:
1637
+ yy190:
1653
1638
  rbs_skip(state);
1654
1639
  yych = peek(state);
1655
- if (yych == 'g') goto yy224;
1640
+ if (yych == 'g') goto yy229;
1656
1641
  goto yy52;
1657
- yy189:
1642
+ yy191:
1658
1643
  rbs_skip(state);
1659
1644
  yych = peek(state);
1660
1645
  if (yych <= '=') {
@@ -1666,38 +1651,38 @@ yy189:
1666
1651
  }
1667
1652
  } else {
1668
1653
  if (yych <= '^') {
1669
- if (yych <= '@') goto yy190;
1654
+ if (yych <= '@') goto yy192;
1670
1655
  if (yych <= 'Z') goto yy51;
1671
1656
  } else {
1672
- if (yych == '`') goto yy190;
1657
+ if (yych == '`') goto yy192;
1673
1658
  if (yych <= 'z') goto yy51;
1674
1659
  }
1675
1660
  }
1676
- yy190:
1661
+ yy192:
1677
1662
  #line 90 "ext/rbs_extension/lexer.re"
1678
1663
  { return next_token(state, kTOP); }
1679
- #line 1680 "ext/rbs_extension/lexer.c"
1680
- yy191:
1664
+ #line 1665 "ext/rbs_extension/lexer.c"
1665
+ yy193:
1681
1666
  rbs_skip(state);
1682
1667
  yych = peek(state);
1683
- if (yych == 'e') goto yy225;
1668
+ if (yych == 'e') goto yy230;
1684
1669
  goto yy52;
1685
- yy192:
1670
+ yy194:
1686
1671
  rbs_skip(state);
1687
1672
  yych = peek(state);
1688
- if (yych == 'e') goto yy227;
1673
+ if (yych == 'e') goto yy232;
1689
1674
  goto yy52;
1690
- yy193:
1675
+ yy195:
1691
1676
  rbs_skip(state);
1692
1677
  yych = peek(state);
1693
- if (yych == 'h') goto yy229;
1678
+ if (yych == 'h') goto yy234;
1694
1679
  goto yy52;
1695
- yy194:
1680
+ yy196:
1696
1681
  rbs_skip(state);
1697
1682
  yych = peek(state);
1698
- if (yych == 'y') goto yy230;
1683
+ if (yych == 'y') goto yy235;
1699
1684
  goto yy52;
1700
- yy195:
1685
+ yy197:
1701
1686
  rbs_skip(state);
1702
1687
  yych = peek(state);
1703
1688
  if (yych <= '=') {
@@ -1709,103 +1694,137 @@ yy195:
1709
1694
  }
1710
1695
  } else {
1711
1696
  if (yych <= '^') {
1712
- if (yych <= '@') goto yy196;
1697
+ if (yych <= '@') goto yy198;
1713
1698
  if (yych <= 'Z') goto yy51;
1714
1699
  } else {
1715
- if (yych == '`') goto yy196;
1700
+ if (yych == '`') goto yy198;
1716
1701
  if (yych <= 'z') goto yy51;
1717
1702
  }
1718
1703
  }
1719
- yy196:
1704
+ yy198:
1720
1705
  #line 96 "ext/rbs_extension/lexer.re"
1721
1706
  { return next_token(state, kUSE); }
1722
- #line 1723 "ext/rbs_extension/lexer.c"
1723
- yy197:
1707
+ #line 1708 "ext/rbs_extension/lexer.c"
1708
+ yy199:
1724
1709
  rbs_skip(state);
1725
1710
  yych = peek(state);
1726
- if (yych == 'd') goto yy231;
1711
+ if (yych == 'd') goto yy236;
1727
1712
  goto yy52;
1728
- yy198:
1713
+ yy200:
1714
+ rbs_skip(state);
1715
+ yych = peek(state);
1716
+ if (yych <= '@') {
1717
+ if (yych <= '/') goto yy67;
1718
+ if (yych <= '9') goto yy238;
1719
+ goto yy67;
1720
+ } else {
1721
+ if (yych <= 'F') goto yy238;
1722
+ if (yych <= '`') goto yy67;
1723
+ if (yych <= 'f') goto yy238;
1724
+ goto yy67;
1725
+ }
1726
+ yy201:
1729
1727
  rbs_skip(state);
1730
1728
  #line 55 "ext/rbs_extension/lexer.re"
1731
1729
  { return next_token(state, tANNOTATION); }
1732
- #line 1733 "ext/rbs_extension/lexer.c"
1733
- yy199:
1730
+ #line 1731 "ext/rbs_extension/lexer.c"
1731
+ yy202:
1734
1732
  rbs_skip(state);
1735
1733
  #line 58 "ext/rbs_extension/lexer.re"
1736
1734
  { return next_token(state, tANNOTATION); }
1737
- #line 1738 "ext/rbs_extension/lexer.c"
1738
- yy200:
1735
+ #line 1736 "ext/rbs_extension/lexer.c"
1736
+ yy203:
1739
1737
  rbs_skip(state);
1740
1738
  #line 56 "ext/rbs_extension/lexer.re"
1741
1739
  { return next_token(state, tANNOTATION); }
1742
- #line 1743 "ext/rbs_extension/lexer.c"
1743
- yy201:
1740
+ #line 1741 "ext/rbs_extension/lexer.c"
1741
+ yy204:
1744
1742
  rbs_skip(state);
1745
1743
  #line 54 "ext/rbs_extension/lexer.re"
1746
1744
  { return next_token(state, tANNOTATION); }
1747
- #line 1748 "ext/rbs_extension/lexer.c"
1748
- yy202:
1745
+ #line 1746 "ext/rbs_extension/lexer.c"
1746
+ yy205:
1749
1747
  rbs_skip(state);
1750
1748
  #line 57 "ext/rbs_extension/lexer.re"
1751
1749
  { return next_token(state, tANNOTATION); }
1752
- #line 1753 "ext/rbs_extension/lexer.c"
1753
- yy203:
1750
+ #line 1751 "ext/rbs_extension/lexer.c"
1751
+ yy206:
1752
+ rbs_skip(state);
1753
+ yych = peek(state);
1754
+ if (yych <= '@') {
1755
+ if (yych <= '/') goto yy67;
1756
+ if (yych <= '9') goto yy239;
1757
+ goto yy67;
1758
+ } else {
1759
+ if (yych <= 'F') goto yy239;
1760
+ if (yych <= '`') goto yy67;
1761
+ if (yych <= 'f') goto yy239;
1762
+ goto yy67;
1763
+ }
1764
+ yy207:
1765
+ rbs_skip(state);
1766
+ yych = peek(state);
1767
+ if (yych <= '/') goto yy67;
1768
+ if (yych <= '9') goto yy84;
1769
+ if (yych <= '`') goto yy67;
1770
+ if (yych <= 'f') goto yy84;
1771
+ goto yy67;
1772
+ yy208:
1754
1773
  yyaccept = 6;
1755
1774
  rbs_skip(state);
1756
1775
  backup = *state;
1757
1776
  yych = peek(state);
1758
1777
  if (yych <= '\'') {
1759
- if (yych <= 0x00000000) goto yy152;
1778
+ if (yych <= 0x00000000) goto yy154;
1760
1779
  if (yych <= '&') goto yy87;
1761
- goto yy151;
1780
+ goto yy153;
1762
1781
  } else {
1763
- if (yych == '\\') goto yy153;
1782
+ if (yych == '\\') goto yy155;
1764
1783
  goto yy87;
1765
1784
  }
1766
- yy204:
1785
+ yy209:
1767
1786
  rbs_skip(state);
1768
1787
  yych = peek(state);
1769
1788
  if (yych <= '>') {
1770
1789
  if (yych <= '/') {
1771
- if (yych == '!') goto yy233;
1790
+ if (yych == '!') goto yy240;
1772
1791
  } else {
1773
- if (yych <= '9') goto yy204;
1774
- if (yych == '=') goto yy233;
1792
+ if (yych <= '9') goto yy209;
1793
+ if (yych == '=') goto yy240;
1775
1794
  }
1776
1795
  } else {
1777
1796
  if (yych <= '^') {
1778
- if (yych <= '?') goto yy233;
1779
- if (yych <= '@') goto yy205;
1780
- if (yych <= 'Z') goto yy204;
1797
+ if (yych <= '?') goto yy240;
1798
+ if (yych <= '@') goto yy210;
1799
+ if (yych <= 'Z') goto yy209;
1781
1800
  } else {
1782
- if (yych == '`') goto yy205;
1783
- if (yych <= 'z') goto yy204;
1801
+ if (yych == '`') goto yy210;
1802
+ if (yych <= 'z') goto yy209;
1784
1803
  }
1785
1804
  }
1786
- yy205:
1787
- #line 121 "ext/rbs_extension/lexer.re"
1805
+ yy210:
1806
+ #line 125 "ext/rbs_extension/lexer.re"
1788
1807
  { return next_token(state, tSYMBOL); }
1789
- #line 1790 "ext/rbs_extension/lexer.c"
1790
- yy206:
1808
+ #line 1809 "ext/rbs_extension/lexer.c"
1809
+ yy211:
1791
1810
  rbs_skip(state);
1792
- goto yy158;
1793
- yy207:
1811
+ goto yy160;
1812
+ yy212:
1794
1813
  rbs_skip(state);
1795
1814
  yych = peek(state);
1796
- if (yych == 'd') goto yy234;
1815
+ if (yych == 'd') goto yy241;
1797
1816
  goto yy108;
1798
- yy208:
1817
+ yy213:
1799
1818
  rbs_skip(state);
1800
1819
  yych = peek(state);
1801
- if (yych == 's') goto yy235;
1820
+ if (yych == 's') goto yy242;
1802
1821
  goto yy52;
1803
- yy209:
1822
+ yy214:
1804
1823
  rbs_skip(state);
1805
1824
  yych = peek(state);
1806
- if (yych == '_') goto yy237;
1825
+ if (yych == '_') goto yy244;
1807
1826
  goto yy52;
1808
- yy210:
1827
+ yy215:
1809
1828
  rbs_skip(state);
1810
1829
  yych = peek(state);
1811
1830
  if (yych <= '=') {
@@ -1817,68 +1836,68 @@ yy210:
1817
1836
  }
1818
1837
  } else {
1819
1838
  if (yych <= '^') {
1820
- if (yych <= '@') goto yy211;
1839
+ if (yych <= '@') goto yy216;
1821
1840
  if (yych <= 'Z') goto yy51;
1822
1841
  } else {
1823
- if (yych == '`') goto yy211;
1842
+ if (yych == '`') goto yy216;
1824
1843
  if (yych <= 'z') goto yy51;
1825
1844
  }
1826
1845
  }
1827
- yy211:
1846
+ yy216:
1828
1847
  #line 71 "ext/rbs_extension/lexer.re"
1829
1848
  { return next_token(state, kBOOL); }
1830
- #line 1831 "ext/rbs_extension/lexer.c"
1831
- yy212:
1849
+ #line 1850 "ext/rbs_extension/lexer.c"
1850
+ yy217:
1832
1851
  rbs_skip(state);
1833
1852
  yych = peek(state);
1834
- if (yych == 's') goto yy238;
1853
+ if (yych == 's') goto yy245;
1835
1854
  goto yy52;
1836
- yy213:
1855
+ yy218:
1837
1856
  rbs_skip(state);
1838
1857
  yych = peek(state);
1839
- if (yych == 'n') goto yy240;
1858
+ if (yych == 'n') goto yy247;
1840
1859
  goto yy52;
1841
- yy214:
1860
+ yy219:
1842
1861
  rbs_skip(state);
1843
1862
  yych = peek(state);
1844
- if (yych == 'e') goto yy241;
1863
+ if (yych == 'e') goto yy248;
1845
1864
  goto yy52;
1846
- yy215:
1865
+ yy220:
1847
1866
  rbs_skip(state);
1848
1867
  yych = peek(state);
1849
- if (yych == 'u') goto yy243;
1868
+ if (yych == 'u') goto yy250;
1850
1869
  goto yy52;
1851
- yy216:
1870
+ yy221:
1852
1871
  rbs_skip(state);
1853
1872
  yych = peek(state);
1854
- if (yych == 'a') goto yy244;
1873
+ if (yych == 'a') goto yy251;
1855
1874
  goto yy52;
1856
- yy217:
1875
+ yy222:
1857
1876
  rbs_skip(state);
1858
1877
  yych = peek(state);
1859
- if (yych == 'r') goto yy245;
1878
+ if (yych == 'r') goto yy252;
1860
1879
  goto yy52;
1861
- yy218:
1880
+ yy223:
1862
1881
  rbs_skip(state);
1863
1882
  yych = peek(state);
1864
- if (yych == 'l') goto yy246;
1883
+ if (yych == 'l') goto yy253;
1865
1884
  goto yy52;
1866
- yy219:
1885
+ yy224:
1867
1886
  rbs_skip(state);
1868
1887
  yych = peek(state);
1869
- if (yych == 'e') goto yy247;
1888
+ if (yych == 'e') goto yy254;
1870
1889
  goto yy52;
1871
- yy220:
1890
+ yy225:
1872
1891
  rbs_skip(state);
1873
1892
  yych = peek(state);
1874
- if (yych == 'a') goto yy248;
1893
+ if (yych == 'a') goto yy255;
1875
1894
  goto yy52;
1876
- yy221:
1895
+ yy226:
1877
1896
  rbs_skip(state);
1878
1897
  yych = peek(state);
1879
- if (yych == 'i') goto yy249;
1898
+ if (yych == 'i') goto yy256;
1880
1899
  goto yy52;
1881
- yy222:
1900
+ yy227:
1882
1901
  rbs_skip(state);
1883
1902
  yych = peek(state);
1884
1903
  if (yych <= '=') {
@@ -1890,23 +1909,23 @@ yy222:
1890
1909
  }
1891
1910
  } else {
1892
1911
  if (yych <= '^') {
1893
- if (yych <= '@') goto yy223;
1912
+ if (yych <= '@') goto yy228;
1894
1913
  if (yych <= 'Z') goto yy51;
1895
1914
  } else {
1896
- if (yych == '`') goto yy223;
1915
+ if (yych == '`') goto yy228;
1897
1916
  if (yych <= 'z') goto yy51;
1898
1917
  }
1899
1918
  }
1900
- yy223:
1919
+ yy228:
1901
1920
  #line 88 "ext/rbs_extension/lexer.re"
1902
1921
  { return next_token(state, kSELF); }
1903
- #line 1904 "ext/rbs_extension/lexer.c"
1904
- yy224:
1922
+ #line 1923 "ext/rbs_extension/lexer.c"
1923
+ yy229:
1905
1924
  rbs_skip(state);
1906
1925
  yych = peek(state);
1907
- if (yych == 'l') goto yy250;
1926
+ if (yych == 'l') goto yy257;
1908
1927
  goto yy52;
1909
- yy225:
1928
+ yy230:
1910
1929
  rbs_skip(state);
1911
1930
  yych = peek(state);
1912
1931
  if (yych <= '=') {
@@ -1918,18 +1937,18 @@ yy225:
1918
1937
  }
1919
1938
  } else {
1920
1939
  if (yych <= '^') {
1921
- if (yych <= '@') goto yy226;
1940
+ if (yych <= '@') goto yy231;
1922
1941
  if (yych <= 'Z') goto yy51;
1923
1942
  } else {
1924
- if (yych == '`') goto yy226;
1943
+ if (yych == '`') goto yy231;
1925
1944
  if (yych <= 'z') goto yy51;
1926
1945
  }
1927
1946
  }
1928
- yy226:
1947
+ yy231:
1929
1948
  #line 91 "ext/rbs_extension/lexer.re"
1930
1949
  { return next_token(state, kTRUE); }
1931
- #line 1932 "ext/rbs_extension/lexer.c"
1932
- yy227:
1950
+ #line 1951 "ext/rbs_extension/lexer.c"
1951
+ yy232:
1933
1952
  rbs_skip(state);
1934
1953
  yych = peek(state);
1935
1954
  if (yych <= '=') {
@@ -1941,28 +1960,28 @@ yy227:
1941
1960
  }
1942
1961
  } else {
1943
1962
  if (yych <= '^') {
1944
- if (yych <= '@') goto yy228;
1963
+ if (yych <= '@') goto yy233;
1945
1964
  if (yych <= 'Z') goto yy51;
1946
1965
  } else {
1947
- if (yych == '`') goto yy228;
1966
+ if (yych == '`') goto yy233;
1948
1967
  if (yych <= 'z') goto yy51;
1949
1968
  }
1950
1969
  }
1951
- yy228:
1970
+ yy233:
1952
1971
  #line 92 "ext/rbs_extension/lexer.re"
1953
1972
  { return next_token(state, kTYPE); }
1954
- #line 1955 "ext/rbs_extension/lexer.c"
1955
- yy229:
1973
+ #line 1974 "ext/rbs_extension/lexer.c"
1974
+ yy234:
1956
1975
  rbs_skip(state);
1957
1976
  yych = peek(state);
1958
- if (yych == 'e') goto yy251;
1977
+ if (yych == 'e') goto yy258;
1959
1978
  goto yy52;
1960
- yy230:
1979
+ yy235:
1961
1980
  rbs_skip(state);
1962
1981
  yych = peek(state);
1963
- if (yych == 'p') goto yy252;
1982
+ if (yych == 'p') goto yy259;
1964
1983
  goto yy52;
1965
- yy231:
1984
+ yy236:
1966
1985
  rbs_skip(state);
1967
1986
  yych = peek(state);
1968
1987
  if (yych <= '=') {
@@ -1974,26 +1993,52 @@ yy231:
1974
1993
  }
1975
1994
  } else {
1976
1995
  if (yych <= '^') {
1977
- if (yych <= '@') goto yy232;
1996
+ if (yych <= '@') goto yy237;
1978
1997
  if (yych <= 'Z') goto yy51;
1979
1998
  } else {
1980
- if (yych == '`') goto yy232;
1999
+ if (yych == '`') goto yy237;
1981
2000
  if (yych <= 'z') goto yy51;
1982
2001
  }
1983
2002
  }
1984
- yy232:
2003
+ yy237:
1985
2004
  #line 95 "ext/rbs_extension/lexer.re"
1986
2005
  { return next_token(state, kVOID); }
1987
- #line 1988 "ext/rbs_extension/lexer.c"
1988
- yy233:
2006
+ #line 2007 "ext/rbs_extension/lexer.c"
2007
+ yy238:
1989
2008
  rbs_skip(state);
1990
- goto yy205;
1991
- yy234:
2009
+ yych = peek(state);
2010
+ if (yych <= '@') {
2011
+ if (yych <= '/') goto yy67;
2012
+ if (yych <= '9') goto yy260;
2013
+ goto yy67;
2014
+ } else {
2015
+ if (yych <= 'F') goto yy260;
2016
+ if (yych <= '`') goto yy67;
2017
+ if (yych <= 'f') goto yy260;
2018
+ goto yy67;
2019
+ }
2020
+ yy239:
2021
+ rbs_skip(state);
2022
+ yych = peek(state);
2023
+ if (yych <= '@') {
2024
+ if (yych <= '/') goto yy67;
2025
+ if (yych <= '9') goto yy261;
2026
+ goto yy67;
2027
+ } else {
2028
+ if (yych <= 'F') goto yy261;
2029
+ if (yych <= '`') goto yy67;
2030
+ if (yych <= 'f') goto yy261;
2031
+ goto yy67;
2032
+ }
2033
+ yy240:
2034
+ rbs_skip(state);
2035
+ goto yy210;
2036
+ yy241:
1992
2037
  rbs_skip(state);
1993
2038
  yych = peek(state);
1994
- if (yych == 'o') goto yy253;
2039
+ if (yych == 'o') goto yy262;
1995
2040
  goto yy108;
1996
- yy235:
2041
+ yy242:
1997
2042
  rbs_skip(state);
1998
2043
  yych = peek(state);
1999
2044
  if (yych <= '=') {
@@ -2005,29 +2050,29 @@ yy235:
2005
2050
  }
2006
2051
  } else {
2007
2052
  if (yych <= '^') {
2008
- if (yych <= '@') goto yy236;
2053
+ if (yych <= '@') goto yy243;
2009
2054
  if (yych <= 'Z') goto yy51;
2010
2055
  } else {
2011
- if (yych == '`') goto yy236;
2056
+ if (yych == '`') goto yy243;
2012
2057
  if (yych <= 'z') goto yy51;
2013
2058
  }
2014
2059
  }
2015
- yy236:
2060
+ yy243:
2016
2061
  #line 67 "ext/rbs_extension/lexer.re"
2017
2062
  { return next_token(state, kALIAS); }
2018
- #line 2019 "ext/rbs_extension/lexer.c"
2019
- yy237:
2063
+ #line 2064 "ext/rbs_extension/lexer.c"
2064
+ yy244:
2020
2065
  rbs_skip(state);
2021
2066
  yych = peek(state);
2022
2067
  if (yych <= 'q') {
2023
- if (yych == 'a') goto yy254;
2068
+ if (yych == 'a') goto yy263;
2024
2069
  goto yy52;
2025
2070
  } else {
2026
- if (yych <= 'r') goto yy255;
2027
- if (yych == 'w') goto yy256;
2071
+ if (yych <= 'r') goto yy264;
2072
+ if (yych == 'w') goto yy265;
2028
2073
  goto yy52;
2029
2074
  }
2030
- yy238:
2075
+ yy245:
2031
2076
  rbs_skip(state);
2032
2077
  yych = peek(state);
2033
2078
  if (yych <= '=') {
@@ -2039,23 +2084,23 @@ yy238:
2039
2084
  }
2040
2085
  } else {
2041
2086
  if (yych <= '^') {
2042
- if (yych <= '@') goto yy239;
2087
+ if (yych <= '@') goto yy246;
2043
2088
  if (yych <= 'Z') goto yy51;
2044
2089
  } else {
2045
- if (yych == '`') goto yy239;
2090
+ if (yych == '`') goto yy246;
2046
2091
  if (yych <= 'z') goto yy51;
2047
2092
  }
2048
2093
  }
2049
- yy239:
2094
+ yy246:
2050
2095
  #line 73 "ext/rbs_extension/lexer.re"
2051
2096
  { return next_token(state, kCLASS); }
2052
- #line 2053 "ext/rbs_extension/lexer.c"
2053
- yy240:
2097
+ #line 2098 "ext/rbs_extension/lexer.c"
2098
+ yy247:
2054
2099
  rbs_skip(state);
2055
2100
  yych = peek(state);
2056
- if (yych == 'd') goto yy257;
2101
+ if (yych == 'd') goto yy266;
2057
2102
  goto yy52;
2058
- yy241:
2103
+ yy248:
2059
2104
  rbs_skip(state);
2060
2105
  yych = peek(state);
2061
2106
  if (yych <= '=') {
@@ -2067,88 +2112,114 @@ yy241:
2067
2112
  }
2068
2113
  } else {
2069
2114
  if (yych <= '^') {
2070
- if (yych <= '@') goto yy242;
2115
+ if (yych <= '@') goto yy249;
2071
2116
  if (yych <= 'Z') goto yy51;
2072
2117
  } else {
2073
- if (yych == '`') goto yy242;
2118
+ if (yych == '`') goto yy249;
2074
2119
  if (yych <= 'z') goto yy51;
2075
2120
  }
2076
2121
  }
2077
- yy242:
2122
+ yy249:
2078
2123
  #line 77 "ext/rbs_extension/lexer.re"
2079
2124
  { return next_token(state, kFALSE); }
2080
- #line 2081 "ext/rbs_extension/lexer.c"
2081
- yy243:
2125
+ #line 2126 "ext/rbs_extension/lexer.c"
2126
+ yy250:
2082
2127
  rbs_skip(state);
2083
2128
  yych = peek(state);
2084
- if (yych == 'd') goto yy259;
2129
+ if (yych == 'd') goto yy268;
2085
2130
  goto yy52;
2086
- yy244:
2131
+ yy251:
2087
2132
  rbs_skip(state);
2088
2133
  yych = peek(state);
2089
- if (yych == 'n') goto yy260;
2134
+ if (yych == 'n') goto yy269;
2090
2135
  goto yy52;
2091
- yy245:
2136
+ yy252:
2092
2137
  rbs_skip(state);
2093
2138
  yych = peek(state);
2094
- if (yych == 'f') goto yy261;
2139
+ if (yych == 'f') goto yy270;
2095
2140
  goto yy52;
2096
- yy246:
2141
+ yy253:
2097
2142
  rbs_skip(state);
2098
2143
  yych = peek(state);
2099
- if (yych == 'e') goto yy262;
2144
+ if (yych == 'e') goto yy271;
2100
2145
  goto yy52;
2101
- yy247:
2146
+ yy254:
2102
2147
  rbs_skip(state);
2103
2148
  yych = peek(state);
2104
- if (yych == 'n') goto yy264;
2149
+ if (yych == 'n') goto yy273;
2105
2150
  goto yy52;
2106
- yy248:
2151
+ yy255:
2107
2152
  rbs_skip(state);
2108
2153
  yych = peek(state);
2109
- if (yych == 't') goto yy265;
2154
+ if (yych == 't') goto yy274;
2110
2155
  goto yy52;
2111
- yy249:
2156
+ yy256:
2112
2157
  rbs_skip(state);
2113
2158
  yych = peek(state);
2114
- if (yych == 'c') goto yy266;
2159
+ if (yych == 'c') goto yy275;
2115
2160
  goto yy52;
2116
- yy250:
2161
+ yy257:
2117
2162
  rbs_skip(state);
2118
2163
  yych = peek(state);
2119
- if (yych == 'e') goto yy268;
2164
+ if (yych == 'e') goto yy277;
2120
2165
  goto yy52;
2121
- yy251:
2166
+ yy258:
2122
2167
  rbs_skip(state);
2123
2168
  yych = peek(state);
2124
- if (yych == 'c') goto yy269;
2169
+ if (yych == 'c') goto yy278;
2125
2170
  goto yy52;
2126
- yy252:
2171
+ yy259:
2127
2172
  rbs_skip(state);
2128
2173
  yych = peek(state);
2129
- if (yych == 'e') goto yy270;
2174
+ if (yych == 'e') goto yy279;
2130
2175
  goto yy52;
2131
- yy253:
2176
+ yy260:
2177
+ rbs_skip(state);
2178
+ yych = peek(state);
2179
+ if (yych <= '@') {
2180
+ if (yych <= '/') goto yy67;
2181
+ if (yych <= '9') goto yy65;
2182
+ goto yy67;
2183
+ } else {
2184
+ if (yych <= 'F') goto yy65;
2185
+ if (yych <= '`') goto yy67;
2186
+ if (yych <= 'f') goto yy65;
2187
+ goto yy67;
2188
+ }
2189
+ yy261:
2190
+ rbs_skip(state);
2191
+ yych = peek(state);
2192
+ if (yych <= '@') {
2193
+ if (yych <= '/') goto yy67;
2194
+ if (yych <= '9') goto yy280;
2195
+ goto yy67;
2196
+ } else {
2197
+ if (yych <= 'F') goto yy280;
2198
+ if (yych <= '`') goto yy67;
2199
+ if (yych <= 'f') goto yy280;
2200
+ goto yy67;
2201
+ }
2202
+ yy262:
2132
2203
  rbs_skip(state);
2133
2204
  yych = peek(state);
2134
- if (yych == '_') goto yy271;
2205
+ if (yych == '_') goto yy281;
2135
2206
  goto yy108;
2136
- yy254:
2207
+ yy263:
2137
2208
  rbs_skip(state);
2138
2209
  yych = peek(state);
2139
- if (yych == 'c') goto yy272;
2210
+ if (yych == 'c') goto yy282;
2140
2211
  goto yy52;
2141
- yy255:
2212
+ yy264:
2142
2213
  rbs_skip(state);
2143
2214
  yych = peek(state);
2144
- if (yych == 'e') goto yy273;
2215
+ if (yych == 'e') goto yy283;
2145
2216
  goto yy52;
2146
- yy256:
2217
+ yy265:
2147
2218
  rbs_skip(state);
2148
2219
  yych = peek(state);
2149
- if (yych == 'r') goto yy274;
2220
+ if (yych == 'r') goto yy284;
2150
2221
  goto yy52;
2151
- yy257:
2222
+ yy266:
2152
2223
  rbs_skip(state);
2153
2224
  yych = peek(state);
2154
2225
  if (yych <= '=') {
@@ -2160,33 +2231,33 @@ yy257:
2160
2231
  }
2161
2232
  } else {
2162
2233
  if (yych <= '^') {
2163
- if (yych <= '@') goto yy258;
2234
+ if (yych <= '@') goto yy267;
2164
2235
  if (yych <= 'Z') goto yy51;
2165
2236
  } else {
2166
- if (yych == '`') goto yy258;
2237
+ if (yych == '`') goto yy267;
2167
2238
  if (yych <= 'z') goto yy51;
2168
2239
  }
2169
2240
  }
2170
- yy258:
2241
+ yy267:
2171
2242
  #line 76 "ext/rbs_extension/lexer.re"
2172
2243
  { return next_token(state, kEXTEND); }
2173
- #line 2174 "ext/rbs_extension/lexer.c"
2174
- yy259:
2244
+ #line 2245 "ext/rbs_extension/lexer.c"
2245
+ yy268:
2175
2246
  rbs_skip(state);
2176
2247
  yych = peek(state);
2177
- if (yych == 'e') goto yy275;
2248
+ if (yych == 'e') goto yy285;
2178
2249
  goto yy52;
2179
- yy260:
2250
+ yy269:
2180
2251
  rbs_skip(state);
2181
2252
  yych = peek(state);
2182
- if (yych == 'c') goto yy277;
2253
+ if (yych == 'c') goto yy287;
2183
2254
  goto yy52;
2184
- yy261:
2255
+ yy270:
2185
2256
  rbs_skip(state);
2186
2257
  yych = peek(state);
2187
- if (yych == 'a') goto yy278;
2258
+ if (yych == 'a') goto yy288;
2188
2259
  goto yy52;
2189
- yy262:
2260
+ yy271:
2190
2261
  rbs_skip(state);
2191
2262
  yych = peek(state);
2192
2263
  if (yych <= '=') {
@@ -2198,28 +2269,28 @@ yy262:
2198
2269
  }
2199
2270
  } else {
2200
2271
  if (yych <= '^') {
2201
- if (yych <= '@') goto yy263;
2272
+ if (yych <= '@') goto yy272;
2202
2273
  if (yych <= 'Z') goto yy51;
2203
2274
  } else {
2204
- if (yych == '`') goto yy263;
2275
+ if (yych == '`') goto yy272;
2205
2276
  if (yych <= 'z') goto yy51;
2206
2277
  }
2207
2278
  }
2208
- yy263:
2279
+ yy272:
2209
2280
  #line 82 "ext/rbs_extension/lexer.re"
2210
2281
  { return next_token(state, kMODULE); }
2211
- #line 2212 "ext/rbs_extension/lexer.c"
2212
- yy264:
2282
+ #line 2283 "ext/rbs_extension/lexer.c"
2283
+ yy273:
2213
2284
  rbs_skip(state);
2214
2285
  yych = peek(state);
2215
- if (yych == 'd') goto yy279;
2286
+ if (yych == 'd') goto yy289;
2216
2287
  goto yy52;
2217
- yy265:
2288
+ yy274:
2218
2289
  rbs_skip(state);
2219
2290
  yych = peek(state);
2220
- if (yych == 'e') goto yy281;
2291
+ if (yych == 'e') goto yy291;
2221
2292
  goto yy52;
2222
- yy266:
2293
+ yy275:
2223
2294
  rbs_skip(state);
2224
2295
  yych = peek(state);
2225
2296
  if (yych <= '=') {
@@ -2231,53 +2302,66 @@ yy266:
2231
2302
  }
2232
2303
  } else {
2233
2304
  if (yych <= '^') {
2234
- if (yych <= '@') goto yy267;
2305
+ if (yych <= '@') goto yy276;
2235
2306
  if (yych <= 'Z') goto yy51;
2236
2307
  } else {
2237
- if (yych == '`') goto yy267;
2308
+ if (yych == '`') goto yy276;
2238
2309
  if (yych <= 'z') goto yy51;
2239
2310
  }
2240
2311
  }
2241
- yy267:
2312
+ yy276:
2242
2313
  #line 87 "ext/rbs_extension/lexer.re"
2243
2314
  { return next_token(state, kPUBLIC); }
2244
- #line 2245 "ext/rbs_extension/lexer.c"
2245
- yy268:
2315
+ #line 2316 "ext/rbs_extension/lexer.c"
2316
+ yy277:
2246
2317
  rbs_skip(state);
2247
2318
  yych = peek(state);
2248
- if (yych == 't') goto yy283;
2319
+ if (yych == 't') goto yy293;
2249
2320
  goto yy52;
2250
- yy269:
2321
+ yy278:
2251
2322
  rbs_skip(state);
2252
2323
  yych = peek(state);
2253
- if (yych == 'k') goto yy284;
2324
+ if (yych == 'k') goto yy294;
2254
2325
  goto yy52;
2255
- yy270:
2326
+ yy279:
2256
2327
  rbs_skip(state);
2257
2328
  yych = peek(state);
2258
- if (yych == 'd') goto yy285;
2329
+ if (yych == 'd') goto yy295;
2259
2330
  goto yy52;
2260
- yy271:
2331
+ yy280:
2261
2332
  rbs_skip(state);
2262
2333
  yych = peek(state);
2263
- if (yych == '_') goto yy287;
2334
+ if (yych <= '@') {
2335
+ if (yych <= '/') goto yy67;
2336
+ if (yych <= '9') goto yy84;
2337
+ goto yy67;
2338
+ } else {
2339
+ if (yych <= 'F') goto yy84;
2340
+ if (yych <= '`') goto yy67;
2341
+ if (yych <= 'f') goto yy84;
2342
+ goto yy67;
2343
+ }
2344
+ yy281:
2345
+ rbs_skip(state);
2346
+ yych = peek(state);
2347
+ if (yych == '_') goto yy297;
2264
2348
  goto yy108;
2265
- yy272:
2349
+ yy282:
2266
2350
  rbs_skip(state);
2267
2351
  yych = peek(state);
2268
- if (yych == 'c') goto yy289;
2352
+ if (yych == 'c') goto yy299;
2269
2353
  goto yy52;
2270
- yy273:
2354
+ yy283:
2271
2355
  rbs_skip(state);
2272
2356
  yych = peek(state);
2273
- if (yych == 'a') goto yy290;
2357
+ if (yych == 'a') goto yy300;
2274
2358
  goto yy52;
2275
- yy274:
2359
+ yy284:
2276
2360
  rbs_skip(state);
2277
2361
  yych = peek(state);
2278
- if (yych == 'i') goto yy291;
2362
+ if (yych == 'i') goto yy301;
2279
2363
  goto yy52;
2280
- yy275:
2364
+ yy285:
2281
2365
  rbs_skip(state);
2282
2366
  yych = peek(state);
2283
2367
  if (yych <= '=') {
@@ -2289,28 +2373,28 @@ yy275:
2289
2373
  }
2290
2374
  } else {
2291
2375
  if (yych <= '^') {
2292
- if (yych <= '@') goto yy276;
2376
+ if (yych <= '@') goto yy286;
2293
2377
  if (yych <= 'Z') goto yy51;
2294
2378
  } else {
2295
- if (yych == '`') goto yy276;
2379
+ if (yych == '`') goto yy286;
2296
2380
  if (yych <= 'z') goto yy51;
2297
2381
  }
2298
2382
  }
2299
- yy276:
2383
+ yy286:
2300
2384
  #line 79 "ext/rbs_extension/lexer.re"
2301
2385
  { return next_token(state, kINCLUDE); }
2302
- #line 2303 "ext/rbs_extension/lexer.c"
2303
- yy277:
2386
+ #line 2387 "ext/rbs_extension/lexer.c"
2387
+ yy287:
2304
2388
  rbs_skip(state);
2305
2389
  yych = peek(state);
2306
- if (yych == 'e') goto yy292;
2390
+ if (yych == 'e') goto yy302;
2307
2391
  goto yy52;
2308
- yy278:
2392
+ yy288:
2309
2393
  rbs_skip(state);
2310
2394
  yych = peek(state);
2311
- if (yych == 'c') goto yy294;
2395
+ if (yych == 'c') goto yy304;
2312
2396
  goto yy52;
2313
- yy279:
2397
+ yy289:
2314
2398
  rbs_skip(state);
2315
2399
  yych = peek(state);
2316
2400
  if (yych <= '=') {
@@ -2322,18 +2406,18 @@ yy279:
2322
2406
  }
2323
2407
  } else {
2324
2408
  if (yych <= '^') {
2325
- if (yych <= '@') goto yy280;
2409
+ if (yych <= '@') goto yy290;
2326
2410
  if (yych <= 'Z') goto yy51;
2327
2411
  } else {
2328
- if (yych == '`') goto yy280;
2412
+ if (yych == '`') goto yy290;
2329
2413
  if (yych <= 'z') goto yy51;
2330
2414
  }
2331
2415
  }
2332
- yy280:
2416
+ yy290:
2333
2417
  #line 85 "ext/rbs_extension/lexer.re"
2334
2418
  { return next_token(state, kPREPEND); }
2335
- #line 2336 "ext/rbs_extension/lexer.c"
2336
- yy281:
2419
+ #line 2420 "ext/rbs_extension/lexer.c"
2420
+ yy291:
2337
2421
  rbs_skip(state);
2338
2422
  yych = peek(state);
2339
2423
  if (yych <= '=') {
@@ -2345,28 +2429,28 @@ yy281:
2345
2429
  }
2346
2430
  } else {
2347
2431
  if (yych <= '^') {
2348
- if (yych <= '@') goto yy282;
2432
+ if (yych <= '@') goto yy292;
2349
2433
  if (yych <= 'Z') goto yy51;
2350
2434
  } else {
2351
- if (yych == '`') goto yy282;
2435
+ if (yych == '`') goto yy292;
2352
2436
  if (yych <= 'z') goto yy51;
2353
2437
  }
2354
2438
  }
2355
- yy282:
2439
+ yy292:
2356
2440
  #line 86 "ext/rbs_extension/lexer.re"
2357
2441
  { return next_token(state, kPRIVATE); }
2358
- #line 2359 "ext/rbs_extension/lexer.c"
2359
- yy283:
2442
+ #line 2443 "ext/rbs_extension/lexer.c"
2443
+ yy293:
2360
2444
  rbs_skip(state);
2361
2445
  yych = peek(state);
2362
- if (yych == 'o') goto yy295;
2446
+ if (yych == 'o') goto yy305;
2363
2447
  goto yy52;
2364
- yy284:
2448
+ yy294:
2365
2449
  rbs_skip(state);
2366
2450
  yych = peek(state);
2367
- if (yych == 'e') goto yy296;
2451
+ if (yych == 'e') goto yy306;
2368
2452
  goto yy52;
2369
- yy285:
2453
+ yy295:
2370
2454
  rbs_skip(state);
2371
2455
  yych = peek(state);
2372
2456
  if (yych <= '=') {
@@ -2378,18 +2462,18 @@ yy285:
2378
2462
  }
2379
2463
  } else {
2380
2464
  if (yych <= '^') {
2381
- if (yych <= '@') goto yy286;
2465
+ if (yych <= '@') goto yy296;
2382
2466
  if (yych <= 'Z') goto yy51;
2383
2467
  } else {
2384
- if (yych == '`') goto yy286;
2468
+ if (yych == '`') goto yy296;
2385
2469
  if (yych <= 'z') goto yy51;
2386
2470
  }
2387
2471
  }
2388
- yy286:
2472
+ yy296:
2389
2473
  #line 94 "ext/rbs_extension/lexer.re"
2390
2474
  { return next_token(state, kUNTYPED); }
2391
- #line 2392 "ext/rbs_extension/lexer.c"
2392
- yy287:
2475
+ #line 2476 "ext/rbs_extension/lexer.c"
2476
+ yy297:
2393
2477
  rbs_skip(state);
2394
2478
  yych = peek(state);
2395
2479
  if (yych <= '=') {
@@ -2401,33 +2485,33 @@ yy287:
2401
2485
  }
2402
2486
  } else {
2403
2487
  if (yych <= '^') {
2404
- if (yych <= '@') goto yy288;
2488
+ if (yych <= '@') goto yy298;
2405
2489
  if (yych <= 'Z') goto yy107;
2406
2490
  } else {
2407
- if (yych == '`') goto yy288;
2491
+ if (yych == '`') goto yy298;
2408
2492
  if (yych <= 'z') goto yy107;
2409
2493
  }
2410
2494
  }
2411
- yy288:
2495
+ yy298:
2412
2496
  #line 98 "ext/rbs_extension/lexer.re"
2413
2497
  { return next_token(state, k__TODO__); }
2414
- #line 2415 "ext/rbs_extension/lexer.c"
2415
- yy289:
2498
+ #line 2499 "ext/rbs_extension/lexer.c"
2499
+ yy299:
2416
2500
  rbs_skip(state);
2417
2501
  yych = peek(state);
2418
- if (yych == 'e') goto yy297;
2502
+ if (yych == 'e') goto yy307;
2419
2503
  goto yy52;
2420
- yy290:
2504
+ yy300:
2421
2505
  rbs_skip(state);
2422
2506
  yych = peek(state);
2423
- if (yych == 'd') goto yy298;
2507
+ if (yych == 'd') goto yy308;
2424
2508
  goto yy52;
2425
- yy291:
2509
+ yy301:
2426
2510
  rbs_skip(state);
2427
2511
  yych = peek(state);
2428
- if (yych == 't') goto yy299;
2512
+ if (yych == 't') goto yy309;
2429
2513
  goto yy52;
2430
- yy292:
2514
+ yy302:
2431
2515
  rbs_skip(state);
2432
2516
  yych = peek(state);
2433
2517
  if (yych <= '=') {
@@ -2439,48 +2523,48 @@ yy292:
2439
2523
  }
2440
2524
  } else {
2441
2525
  if (yych <= '^') {
2442
- if (yych <= '@') goto yy293;
2526
+ if (yych <= '@') goto yy303;
2443
2527
  if (yych <= 'Z') goto yy51;
2444
2528
  } else {
2445
- if (yych == '`') goto yy293;
2529
+ if (yych == '`') goto yy303;
2446
2530
  if (yych <= 'z') goto yy51;
2447
2531
  }
2448
2532
  }
2449
- yy293:
2533
+ yy303:
2450
2534
  #line 80 "ext/rbs_extension/lexer.re"
2451
2535
  { return next_token(state, kINSTANCE); }
2452
- #line 2453 "ext/rbs_extension/lexer.c"
2453
- yy294:
2536
+ #line 2537 "ext/rbs_extension/lexer.c"
2537
+ yy304:
2454
2538
  rbs_skip(state);
2455
2539
  yych = peek(state);
2456
- if (yych == 'e') goto yy300;
2540
+ if (yych == 'e') goto yy310;
2457
2541
  goto yy52;
2458
- yy295:
2542
+ yy305:
2459
2543
  rbs_skip(state);
2460
2544
  yych = peek(state);
2461
- if (yych == 'n') goto yy302;
2545
+ if (yych == 'n') goto yy312;
2462
2546
  goto yy52;
2463
- yy296:
2547
+ yy306:
2464
2548
  rbs_skip(state);
2465
2549
  yych = peek(state);
2466
- if (yych == 'd') goto yy304;
2550
+ if (yych == 'd') goto yy314;
2467
2551
  goto yy52;
2468
- yy297:
2552
+ yy307:
2469
2553
  rbs_skip(state);
2470
2554
  yych = peek(state);
2471
- if (yych == 's') goto yy306;
2555
+ if (yych == 's') goto yy316;
2472
2556
  goto yy52;
2473
- yy298:
2557
+ yy308:
2474
2558
  rbs_skip(state);
2475
2559
  yych = peek(state);
2476
- if (yych == 'e') goto yy307;
2560
+ if (yych == 'e') goto yy317;
2477
2561
  goto yy52;
2478
- yy299:
2562
+ yy309:
2479
2563
  rbs_skip(state);
2480
2564
  yych = peek(state);
2481
- if (yych == 'e') goto yy308;
2565
+ if (yych == 'e') goto yy318;
2482
2566
  goto yy52;
2483
- yy300:
2567
+ yy310:
2484
2568
  rbs_skip(state);
2485
2569
  yych = peek(state);
2486
2570
  if (yych <= '=') {
@@ -2492,18 +2576,18 @@ yy300:
2492
2576
  }
2493
2577
  } else {
2494
2578
  if (yych <= '^') {
2495
- if (yych <= '@') goto yy301;
2579
+ if (yych <= '@') goto yy311;
2496
2580
  if (yych <= 'Z') goto yy51;
2497
2581
  } else {
2498
- if (yych == '`') goto yy301;
2582
+ if (yych == '`') goto yy311;
2499
2583
  if (yych <= 'z') goto yy51;
2500
2584
  }
2501
2585
  }
2502
- yy301:
2586
+ yy311:
2503
2587
  #line 81 "ext/rbs_extension/lexer.re"
2504
2588
  { return next_token(state, kINTERFACE); }
2505
- #line 2506 "ext/rbs_extension/lexer.c"
2506
- yy302:
2589
+ #line 2590 "ext/rbs_extension/lexer.c"
2590
+ yy312:
2507
2591
  rbs_skip(state);
2508
2592
  yych = peek(state);
2509
2593
  if (yych <= '=') {
@@ -2515,18 +2599,18 @@ yy302:
2515
2599
  }
2516
2600
  } else {
2517
2601
  if (yych <= '^') {
2518
- if (yych <= '@') goto yy303;
2602
+ if (yych <= '@') goto yy313;
2519
2603
  if (yych <= 'Z') goto yy51;
2520
2604
  } else {
2521
- if (yych == '`') goto yy303;
2605
+ if (yych == '`') goto yy313;
2522
2606
  if (yych <= 'z') goto yy51;
2523
2607
  }
2524
2608
  }
2525
- yy303:
2609
+ yy313:
2526
2610
  #line 89 "ext/rbs_extension/lexer.re"
2527
2611
  { return next_token(state, kSINGLETON); }
2528
- #line 2529 "ext/rbs_extension/lexer.c"
2529
- yy304:
2612
+ #line 2613 "ext/rbs_extension/lexer.c"
2613
+ yy314:
2530
2614
  rbs_skip(state);
2531
2615
  yych = peek(state);
2532
2616
  if (yych <= '=') {
@@ -2538,38 +2622,38 @@ yy304:
2538
2622
  }
2539
2623
  } else {
2540
2624
  if (yych <= '^') {
2541
- if (yych <= '@') goto yy305;
2625
+ if (yych <= '@') goto yy315;
2542
2626
  if (yych <= 'Z') goto yy51;
2543
2627
  } else {
2544
- if (yych == '`') goto yy305;
2628
+ if (yych == '`') goto yy315;
2545
2629
  if (yych <= 'z') goto yy51;
2546
2630
  }
2547
2631
  }
2548
- yy305:
2632
+ yy315:
2549
2633
  #line 93 "ext/rbs_extension/lexer.re"
2550
2634
  { return next_token(state, kUNCHECKED); }
2551
- #line 2552 "ext/rbs_extension/lexer.c"
2552
- yy306:
2635
+ #line 2636 "ext/rbs_extension/lexer.c"
2636
+ yy316:
2553
2637
  rbs_skip(state);
2554
2638
  yych = peek(state);
2555
- if (yych == 's') goto yy309;
2639
+ if (yych == 's') goto yy319;
2556
2640
  goto yy52;
2557
- yy307:
2641
+ yy317:
2558
2642
  rbs_skip(state);
2559
2643
  yych = peek(state);
2560
- if (yych == 'r') goto yy310;
2644
+ if (yych == 'r') goto yy320;
2561
2645
  goto yy52;
2562
- yy308:
2646
+ yy318:
2563
2647
  rbs_skip(state);
2564
2648
  yych = peek(state);
2565
- if (yych == 'r') goto yy312;
2649
+ if (yych == 'r') goto yy322;
2566
2650
  goto yy52;
2567
- yy309:
2651
+ yy319:
2568
2652
  rbs_skip(state);
2569
2653
  yych = peek(state);
2570
- if (yych == 'o') goto yy314;
2654
+ if (yych == 'o') goto yy324;
2571
2655
  goto yy52;
2572
- yy310:
2656
+ yy320:
2573
2657
  rbs_skip(state);
2574
2658
  yych = peek(state);
2575
2659
  if (yych <= '=') {
@@ -2581,18 +2665,18 @@ yy310:
2581
2665
  }
2582
2666
  } else {
2583
2667
  if (yych <= '^') {
2584
- if (yych <= '@') goto yy311;
2668
+ if (yych <= '@') goto yy321;
2585
2669
  if (yych <= 'Z') goto yy51;
2586
2670
  } else {
2587
- if (yych == '`') goto yy311;
2671
+ if (yych == '`') goto yy321;
2588
2672
  if (yych <= 'z') goto yy51;
2589
2673
  }
2590
2674
  }
2591
- yy311:
2675
+ yy321:
2592
2676
  #line 69 "ext/rbs_extension/lexer.re"
2593
2677
  { return next_token(state, kATTRREADER); }
2594
- #line 2595 "ext/rbs_extension/lexer.c"
2595
- yy312:
2678
+ #line 2679 "ext/rbs_extension/lexer.c"
2679
+ yy322:
2596
2680
  rbs_skip(state);
2597
2681
  yych = peek(state);
2598
2682
  if (yych <= '=') {
@@ -2604,18 +2688,18 @@ yy312:
2604
2688
  }
2605
2689
  } else {
2606
2690
  if (yych <= '^') {
2607
- if (yych <= '@') goto yy313;
2691
+ if (yych <= '@') goto yy323;
2608
2692
  if (yych <= 'Z') goto yy51;
2609
2693
  } else {
2610
- if (yych == '`') goto yy313;
2694
+ if (yych == '`') goto yy323;
2611
2695
  if (yych <= 'z') goto yy51;
2612
2696
  }
2613
2697
  }
2614
- yy313:
2698
+ yy323:
2615
2699
  #line 70 "ext/rbs_extension/lexer.re"
2616
2700
  { return next_token(state, kATTRWRITER); }
2617
- #line 2618 "ext/rbs_extension/lexer.c"
2618
- yy314:
2701
+ #line 2702 "ext/rbs_extension/lexer.c"
2702
+ yy324:
2619
2703
  rbs_skip(state);
2620
2704
  yych = peek(state);
2621
2705
  if (yych != 'r') goto yy52;
@@ -2630,18 +2714,18 @@ yy314:
2630
2714
  }
2631
2715
  } else {
2632
2716
  if (yych <= '^') {
2633
- if (yych <= '@') goto yy315;
2717
+ if (yych <= '@') goto yy325;
2634
2718
  if (yych <= 'Z') goto yy51;
2635
2719
  } else {
2636
- if (yych == '`') goto yy315;
2720
+ if (yych == '`') goto yy325;
2637
2721
  if (yych <= 'z') goto yy51;
2638
2722
  }
2639
2723
  }
2640
- yy315:
2724
+ yy325:
2641
2725
  #line 68 "ext/rbs_extension/lexer.re"
2642
2726
  { return next_token(state, kATTRACCESSOR); }
2643
- #line 2644 "ext/rbs_extension/lexer.c"
2727
+ #line 2728 "ext/rbs_extension/lexer.c"
2644
2728
  }
2645
- #line 143 "ext/rbs_extension/lexer.re"
2729
+ #line 147 "ext/rbs_extension/lexer.re"
2646
2730
 
2647
2731
  }