rbs 4.1.0.pre.2 → 4.1.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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/.dockerignore +37 -0
  3. data/.github/workflows/bundle-update.yml +1 -1
  4. data/.github/workflows/c-check.yml +11 -6
  5. data/.github/workflows/comments.yml +2 -2
  6. data/.github/workflows/dependabot.yml +1 -1
  7. data/.github/workflows/jruby.yml +15 -3
  8. data/.github/workflows/milestone.yml +9 -1
  9. data/.github/workflows/ruby.yml +4 -4
  10. data/.github/workflows/rust.yml +10 -8
  11. data/.github/workflows/truffleruby.yml +1 -1
  12. data/.github/workflows/typecheck.yml +2 -2
  13. data/.github/workflows/wasm.yml +4 -2
  14. data/.github/workflows/windows.yml +2 -2
  15. data/.gitignore +3 -2
  16. data/CHANGELOG.md +88 -0
  17. data/Dockerfile.jruby +53 -0
  18. data/Rakefile +16 -29
  19. data/Steepfile +2 -0
  20. data/core/array.rbs +228 -165
  21. data/core/float.rbs +0 -24
  22. data/core/match_data.rbs +1 -1
  23. data/core/pathname.rbs +0 -10
  24. data/core/ractor.rbs +0 -10
  25. data/core/rubygems/errors.rbs +4 -1
  26. data/core/rubygems/requirement.rbs +0 -10
  27. data/core/rubygems/rubygems.rbs +4 -1
  28. data/core/rubygems/specification.rbs +8 -0
  29. data/core/rubygems/version.rbs +0 -160
  30. data/core/thread.rbs +3 -8
  31. data/docs/CONTRIBUTING.md +1 -1
  32. data/docs/release.md +69 -0
  33. data/ext/rbs_extension/ast_translation.c +2 -2
  34. data/ext/rbs_extension/legacy_location.c +11 -6
  35. data/lib/rbs/parser_aux.rb +4 -2
  36. data/lib/rbs/prototype/rbi.rb +193 -25
  37. data/lib/rbs/version.rb +1 -1
  38. data/lib/rbs/wasm/runtime.rb +7 -28
  39. data/lib/rbs_jars.rb +39 -0
  40. data/lib/rdoc_plugin/parser.rb +5 -0
  41. data/rbs.gemspec +16 -3
  42. data/sig/prototype/rbi.rbs +33 -4
  43. data/src/lexer.c +97 -93
  44. data/src/lexer.re +1 -1
  45. data/src/lexstate.c +6 -2
  46. data/src/util/rbs_allocator.c +13 -4
  47. data/stdlib/delegate/0/delegator.rbs +2 -1
  48. data/stdlib/digest/0/digest.rbs +10 -4
  49. data/stdlib/erb/0/erb.rbs +1 -1
  50. data/stdlib/ipaddr/0/ipaddr.rbs +0 -5
  51. data/stdlib/monitor/0/monitor.rbs +2 -2
  52. data/stdlib/openssl/0/openssl.rbs +39 -33
  53. data/stdlib/tempfile/0/manifest.yaml +3 -0
  54. data/stdlib/timeout/0/timeout.rbs +0 -5
  55. data/stdlib/uri/0/generic.rbs +0 -5
  56. data/stdlib/zlib/0/zstream.rbs +0 -1
  57. data/wasm/README.md +4 -3
  58. data/wasm/rbs_wasm.c +12 -0
  59. metadata +6 -1
data/src/lexer.c CHANGED
@@ -1,4 +1,4 @@
1
- /* Generated by re2c 4.3 */
1
+ /* Generated by re2c 4.5.1 */
2
2
  #line 1 "src/lexer.re"
3
3
  #include "rbs/lexer.h"
4
4
 
@@ -214,8 +214,12 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
214
214
  yy10:
215
215
  rbs_skip(lexer);
216
216
  yych = rbs_peek(lexer);
217
- if (yych <= 0x00000000) goto yy11;
218
- if (yych != '\n') goto yy10;
217
+ if (yych <= '\n') {
218
+ if (yych <= 0x00000000) goto yy11;
219
+ if (yych <= '\t') goto yy10;
220
+ } else {
221
+ if (yych != 0x0000FFFD) goto yy10;
222
+ }
219
223
  yy11:
220
224
  #line 61 "src/lexer.re"
221
225
  {
@@ -224,7 +228,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
224
228
  lexer->first_token_of_line ? tLINECOMMENT : tCOMMENT
225
229
  );
226
230
  }
227
- #line 169 "src/lexer.c"
231
+ #line 173 "src/lexer.c"
228
232
  yy12:
229
233
  rbs_skip(lexer);
230
234
  yych = rbs_peek(lexer);
@@ -284,7 +288,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
284
288
  {
285
289
  return rbs_next_token(lexer, pAMP);
286
290
  }
287
- #line 227 "src/lexer.c"
291
+ #line 231 "src/lexer.c"
288
292
  yy15:
289
293
  yyaccept = 0;
290
294
  rbs_skip(lexer);
@@ -298,14 +302,14 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
298
302
  {
299
303
  return rbs_next_token(lexer, pLPAREN);
300
304
  }
301
- #line 239 "src/lexer.c"
305
+ #line 243 "src/lexer.c"
302
306
  yy17:
303
307
  rbs_skip(lexer);
304
308
  #line 25 "src/lexer.re"
305
309
  {
306
310
  return rbs_next_token(lexer, pRPAREN);
307
311
  }
308
- #line 244 "src/lexer.c"
312
+ #line 248 "src/lexer.c"
309
313
  yy18:
310
314
  rbs_skip(lexer);
311
315
  yych = rbs_peek(lexer);
@@ -314,7 +318,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
314
318
  {
315
319
  return rbs_next_token(lexer, pSTAR);
316
320
  }
317
- #line 251 "src/lexer.c"
321
+ #line 255 "src/lexer.c"
318
322
  yy19:
319
323
  rbs_skip(lexer);
320
324
  yych = rbs_peek(lexer);
@@ -328,7 +332,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
328
332
  {
329
333
  return rbs_next_token(lexer, pCOMMA);
330
334
  }
331
- #line 263 "src/lexer.c"
335
+ #line 267 "src/lexer.c"
332
336
  yy21:
333
337
  rbs_skip(lexer);
334
338
  yych = rbs_peek(lexer);
@@ -364,7 +368,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
364
368
  {
365
369
  return rbs_next_token(lexer, pDOT);
366
370
  }
367
- #line 292 "src/lexer.c"
371
+ #line 296 "src/lexer.c"
368
372
  yy24:
369
373
  rbs_skip(lexer);
370
374
  goto yy8;
@@ -379,7 +383,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
379
383
  {
380
384
  return rbs_next_token(lexer, tINTEGER);
381
385
  }
382
- #line 305 "src/lexer.c"
386
+ #line 309 "src/lexer.c"
383
387
  yy27:
384
388
  yyaccept = 3;
385
389
  rbs_skip(lexer);
@@ -481,7 +485,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
481
485
  {
482
486
  return rbs_next_token(lexer, pCOLON);
483
487
  }
484
- #line 390 "src/lexer.c"
488
+ #line 394 "src/lexer.c"
485
489
  yy29:
486
490
  rbs_skip(lexer);
487
491
  yych = rbs_peek(lexer);
@@ -493,7 +497,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
493
497
  {
494
498
  return rbs_next_token(lexer, pLT);
495
499
  }
496
- #line 400 "src/lexer.c"
500
+ #line 404 "src/lexer.c"
497
501
  yy31:
498
502
  rbs_skip(lexer);
499
503
  yych = rbs_peek(lexer);
@@ -509,7 +513,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
509
513
  {
510
514
  return rbs_next_token(lexer, pEQ);
511
515
  }
512
- #line 414 "src/lexer.c"
516
+ #line 418 "src/lexer.c"
513
517
  yy33:
514
518
  rbs_skip(lexer);
515
519
  yych = rbs_peek(lexer);
@@ -520,14 +524,14 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
520
524
  {
521
525
  return rbs_next_token(lexer, pGT);
522
526
  }
523
- #line 423 "src/lexer.c"
527
+ #line 427 "src/lexer.c"
524
528
  yy35:
525
529
  rbs_skip(lexer);
526
530
  #line 34 "src/lexer.re"
527
531
  {
528
532
  return rbs_next_token(lexer, pQUESTION);
529
533
  }
530
- #line 428 "src/lexer.c"
534
+ #line 432 "src/lexer.c"
531
535
  yy36:
532
536
  yyaccept = 0;
533
537
  rbs_skip(lexer);
@@ -576,7 +580,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
576
580
  {
577
581
  return rbs_next_token(lexer, tUIDENT);
578
582
  }
579
- #line 475 "src/lexer.c"
583
+ #line 479 "src/lexer.c"
580
584
  yy39:
581
585
  rbs_skip(lexer);
582
586
  yych = rbs_peek(lexer);
@@ -585,21 +589,21 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
585
589
  {
586
590
  return rbs_next_token(lexer, pLBRACKET);
587
591
  }
588
- #line 482 "src/lexer.c"
592
+ #line 486 "src/lexer.c"
589
593
  yy40:
590
594
  rbs_skip(lexer);
591
595
  #line 27 "src/lexer.re"
592
596
  {
593
597
  return rbs_next_token(lexer, pRBRACKET);
594
598
  }
595
- #line 487 "src/lexer.c"
599
+ #line 491 "src/lexer.c"
596
600
  yy41:
597
601
  rbs_skip(lexer);
598
602
  #line 32 "src/lexer.re"
599
603
  {
600
604
  return rbs_next_token(lexer, pHAT);
601
605
  }
602
- #line 492 "src/lexer.c"
606
+ #line 496 "src/lexer.c"
603
607
  yy42:
604
608
  rbs_skip(lexer);
605
609
  yych = rbs_peek(lexer);
@@ -625,7 +629,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
625
629
  {
626
630
  return rbs_next_token(lexer, tULLIDENT);
627
631
  }
628
- #line 516 "src/lexer.c"
632
+ #line 520 "src/lexer.c"
629
633
  yy44:
630
634
  yyaccept = 4;
631
635
  rbs_skip(lexer);
@@ -642,7 +646,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
642
646
  {
643
647
  return rbs_next_token(lexer, tOPERATOR);
644
648
  }
645
- #line 531 "src/lexer.c"
649
+ #line 535 "src/lexer.c"
646
650
  yy46:
647
651
  rbs_skip(lexer);
648
652
  yych = rbs_peek(lexer);
@@ -659,7 +663,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
659
663
  {
660
664
  return rbs_next_token(lexer, tLIDENT);
661
665
  }
662
- #line 546 "src/lexer.c"
666
+ #line 550 "src/lexer.c"
663
667
  yy48:
664
668
  rbs_skip(lexer);
665
669
  yych = rbs_peek(lexer);
@@ -780,21 +784,21 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
780
784
  {
781
785
  return rbs_next_token(lexer, pLBRACE);
782
786
  }
783
- #line 665 "src/lexer.c"
787
+ #line 669 "src/lexer.c"
784
788
  yy66:
785
789
  rbs_skip(lexer);
786
790
  #line 31 "src/lexer.re"
787
791
  {
788
792
  return rbs_next_token(lexer, pBAR);
789
793
  }
790
- #line 670 "src/lexer.c"
794
+ #line 674 "src/lexer.c"
791
795
  yy67:
792
796
  rbs_skip(lexer);
793
797
  #line 29 "src/lexer.re"
794
798
  {
795
799
  return rbs_next_token(lexer, pRBRACE);
796
800
  }
797
- #line 675 "src/lexer.c"
801
+ #line 679 "src/lexer.c"
798
802
  yy68:
799
803
  rbs_skip(lexer);
800
804
  yych = rbs_peek(lexer);
@@ -840,7 +844,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
840
844
  {
841
845
  return rbs_next_token(lexer, tDQSTRING);
842
846
  }
843
- #line 715 "src/lexer.c"
847
+ #line 719 "src/lexer.c"
844
848
  yy72:
845
849
  rbs_skip(lexer);
846
850
  yych = rbs_peek(lexer);
@@ -881,7 +885,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
881
885
  {
882
886
  return rbs_next_token(lexer, tGIDENT);
883
887
  }
884
- #line 754 "src/lexer.c"
888
+ #line 758 "src/lexer.c"
885
889
  yy75:
886
890
  rbs_skip(lexer);
887
891
  goto yy74;
@@ -924,7 +928,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
924
928
  {
925
929
  return rbs_next_token(lexer, tSQSTRING);
926
930
  }
927
- #line 795 "src/lexer.c"
931
+ #line 799 "src/lexer.c"
928
932
  yy81:
929
933
  rbs_skip(lexer);
930
934
  yych = rbs_peek(lexer);
@@ -942,7 +946,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
942
946
  {
943
947
  return rbs_next_token(lexer, pSTAR2);
944
948
  }
945
- #line 811 "src/lexer.c"
949
+ #line 815 "src/lexer.c"
946
950
  yy83:
947
951
  rbs_skip(lexer);
948
952
  yych = rbs_peek(lexer);
@@ -951,14 +955,14 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
951
955
  {
952
956
  return rbs_next_token(lexer, tINLINECOMMENT);
953
957
  }
954
- #line 818 "src/lexer.c"
958
+ #line 822 "src/lexer.c"
955
959
  yy84:
956
960
  rbs_skip(lexer);
957
961
  #line 41 "src/lexer.re"
958
962
  {
959
963
  return rbs_next_token(lexer, pARROW);
960
964
  }
961
- #line 823 "src/lexer.c"
965
+ #line 827 "src/lexer.c"
962
966
  yy85:
963
967
  rbs_skip(lexer);
964
968
  yych = rbs_peek(lexer);
@@ -974,7 +978,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
974
978
  {
975
979
  return rbs_next_token(lexer, tSYMBOL);
976
980
  }
977
- #line 837 "src/lexer.c"
981
+ #line 841 "src/lexer.c"
978
982
  yy88:
979
983
  rbs_skip(lexer);
980
984
  yych = rbs_peek(lexer);
@@ -1062,7 +1066,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
1062
1066
  {
1063
1067
  return rbs_next_token(lexer, pCOLON2);
1064
1068
  }
1065
- #line 923 "src/lexer.c"
1069
+ #line 927 "src/lexer.c"
1066
1070
  yy95:
1067
1071
  rbs_skip(lexer);
1068
1072
  yych = rbs_peek(lexer);
@@ -1120,7 +1124,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
1120
1124
  {
1121
1125
  return rbs_next_token(lexer, tSYMBOL);
1122
1126
  }
1123
- #line 979 "src/lexer.c"
1127
+ #line 983 "src/lexer.c"
1124
1128
  yy101:
1125
1129
  rbs_skip(lexer);
1126
1130
  yych = rbs_peek(lexer);
@@ -1142,7 +1146,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
1142
1146
  {
1143
1147
  return rbs_next_token(lexer, pFATARROW);
1144
1148
  }
1145
- #line 999 "src/lexer.c"
1149
+ #line 1003 "src/lexer.c"
1146
1150
  yy105:
1147
1151
  rbs_skip(lexer);
1148
1152
  yych = rbs_peek(lexer);
@@ -1176,7 +1180,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
1176
1180
  {
1177
1181
  return rbs_next_token(lexer, tAIDENT);
1178
1182
  }
1179
- #line 1031 "src/lexer.c"
1183
+ #line 1035 "src/lexer.c"
1180
1184
  yy109:
1181
1185
  rbs_skip(lexer);
1182
1186
  yych = rbs_peek(lexer);
@@ -1188,14 +1192,14 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
1188
1192
  {
1189
1193
  return rbs_next_token(lexer, tBANGIDENT);
1190
1194
  }
1191
- #line 1041 "src/lexer.c"
1195
+ #line 1045 "src/lexer.c"
1192
1196
  yy111:
1193
1197
  rbs_skip(lexer);
1194
1198
  #line 142 "src/lexer.re"
1195
1199
  {
1196
1200
  return rbs_next_token(lexer, tEQIDENT);
1197
1201
  }
1198
- #line 1046 "src/lexer.c"
1202
+ #line 1050 "src/lexer.c"
1199
1203
  yy112:
1200
1204
  rbs_skip(lexer);
1201
1205
  yych = rbs_peek(lexer);
@@ -1204,7 +1208,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
1204
1208
  {
1205
1209
  return rbs_next_token(lexer, pAREF_OPR);
1206
1210
  }
1207
- #line 1053 "src/lexer.c"
1211
+ #line 1057 "src/lexer.c"
1208
1212
  yy113:
1209
1213
  rbs_skip(lexer);
1210
1214
  yych = rbs_peek(lexer);
@@ -1230,7 +1234,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
1230
1234
  {
1231
1235
  return rbs_next_token(lexer, tULLIDENT);
1232
1236
  }
1233
- #line 1077 "src/lexer.c"
1237
+ #line 1081 "src/lexer.c"
1234
1238
  yy116:
1235
1239
  rbs_skip(lexer);
1236
1240
  yych = rbs_peek(lexer);
@@ -1255,7 +1259,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
1255
1259
  {
1256
1260
  return rbs_next_token(lexer, tULIDENT);
1257
1261
  }
1258
- #line 1100 "src/lexer.c"
1262
+ #line 1104 "src/lexer.c"
1259
1263
  yy118:
1260
1264
  rbs_skip(lexer);
1261
1265
  yych = rbs_peek(lexer);
@@ -1296,7 +1300,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
1296
1300
  {
1297
1301
  return rbs_next_token(lexer, kAS);
1298
1302
  }
1299
- #line 1139 "src/lexer.c"
1303
+ #line 1143 "src/lexer.c"
1300
1304
  yy123:
1301
1305
  rbs_skip(lexer);
1302
1306
  yych = rbs_peek(lexer);
@@ -1368,7 +1372,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
1368
1372
  {
1369
1373
  return rbs_next_token(lexer, kIN);
1370
1374
  }
1371
- #line 1209 "src/lexer.c"
1375
+ #line 1213 "src/lexer.c"
1372
1376
  yy132:
1373
1377
  rbs_skip(lexer);
1374
1378
  yych = rbs_peek(lexer);
@@ -1516,14 +1520,14 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
1516
1520
  {
1517
1521
  return rbs_next_token(lexer, pDOT3);
1518
1522
  }
1519
- #line 1355 "src/lexer.c"
1523
+ #line 1359 "src/lexer.c"
1520
1524
  yy156:
1521
1525
  rbs_skip(lexer);
1522
1526
  #line 116 "src/lexer.re"
1523
1527
  {
1524
1528
  return rbs_next_token(lexer, tDQSYMBOL);
1525
1529
  }
1526
- #line 1360 "src/lexer.c"
1530
+ #line 1364 "src/lexer.c"
1527
1531
  yy157:
1528
1532
  rbs_skip(lexer);
1529
1533
  yych = rbs_peek(lexer);
@@ -1564,7 +1568,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
1564
1568
  {
1565
1569
  return rbs_next_token(lexer, tSYMBOL);
1566
1570
  }
1567
- #line 1399 "src/lexer.c"
1571
+ #line 1403 "src/lexer.c"
1568
1572
  yy160:
1569
1573
  rbs_skip(lexer);
1570
1574
  goto yy159;
@@ -1575,7 +1579,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
1575
1579
  {
1576
1580
  return rbs_next_token(lexer, tSQSYMBOL);
1577
1581
  }
1578
- #line 1408 "src/lexer.c"
1582
+ #line 1412 "src/lexer.c"
1579
1583
  yy163:
1580
1584
  rbs_skip(lexer);
1581
1585
  yych = rbs_peek(lexer);
@@ -1634,7 +1638,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
1634
1638
  {
1635
1639
  return rbs_next_token(lexer, tSYMBOL);
1636
1640
  }
1637
- #line 1465 "src/lexer.c"
1641
+ #line 1469 "src/lexer.c"
1638
1642
  yy169:
1639
1643
  rbs_skip(lexer);
1640
1644
  goto yy100;
@@ -1658,7 +1662,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
1658
1662
  {
1659
1663
  return rbs_next_token(lexer, tA2IDENT);
1660
1664
  }
1661
- #line 1487 "src/lexer.c"
1665
+ #line 1491 "src/lexer.c"
1662
1666
  yy172:
1663
1667
  rbs_skip(lexer);
1664
1668
  yych = rbs_peek(lexer);
@@ -1675,7 +1679,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
1675
1679
  {
1676
1680
  return rbs_next_token(lexer, tQIDENT);
1677
1681
  }
1678
- #line 1502 "src/lexer.c"
1682
+ #line 1506 "src/lexer.c"
1679
1683
  yy175:
1680
1684
  rbs_skip(lexer);
1681
1685
  yych = rbs_peek(lexer);
@@ -1715,7 +1719,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
1715
1719
  {
1716
1720
  return rbs_next_token(lexer, kBOT);
1717
1721
  }
1718
- #line 1540 "src/lexer.c"
1722
+ #line 1544 "src/lexer.c"
1719
1723
  yy180:
1720
1724
  rbs_skip(lexer);
1721
1725
  yych = rbs_peek(lexer);
@@ -1745,7 +1749,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
1745
1749
  {
1746
1750
  return rbs_next_token(lexer, kDEF);
1747
1751
  }
1748
- #line 1568 "src/lexer.c"
1752
+ #line 1572 "src/lexer.c"
1749
1753
  yy183:
1750
1754
  rbs_skip(lexer);
1751
1755
  yych = rbs_peek(lexer);
@@ -1770,7 +1774,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
1770
1774
  {
1771
1775
  return rbs_next_token(lexer, kEND);
1772
1776
  }
1773
- #line 1591 "src/lexer.c"
1777
+ #line 1595 "src/lexer.c"
1774
1778
  yy185:
1775
1779
  rbs_skip(lexer);
1776
1780
  yych = rbs_peek(lexer);
@@ -1825,7 +1829,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
1825
1829
  {
1826
1830
  return rbs_next_token(lexer, kNIL);
1827
1831
  }
1828
- #line 1644 "src/lexer.c"
1832
+ #line 1648 "src/lexer.c"
1829
1833
  yy193:
1830
1834
  rbs_skip(lexer);
1831
1835
  yych = rbs_peek(lexer);
@@ -1850,7 +1854,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
1850
1854
  {
1851
1855
  return rbs_next_token(lexer, kOUT);
1852
1856
  }
1853
- #line 1667 "src/lexer.c"
1857
+ #line 1671 "src/lexer.c"
1854
1858
  yy195:
1855
1859
  rbs_skip(lexer);
1856
1860
  yych = rbs_peek(lexer);
@@ -1910,7 +1914,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
1910
1914
  {
1911
1915
  return rbs_next_token(lexer, kTOP);
1912
1916
  }
1913
- #line 1725 "src/lexer.c"
1917
+ #line 1729 "src/lexer.c"
1914
1918
  yy204:
1915
1919
  rbs_skip(lexer);
1916
1920
  yych = rbs_peek(lexer);
@@ -1955,7 +1959,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
1955
1959
  {
1956
1960
  return rbs_next_token(lexer, kUSE);
1957
1961
  }
1958
- #line 1768 "src/lexer.c"
1962
+ #line 1772 "src/lexer.c"
1959
1963
  yy210:
1960
1964
  rbs_skip(lexer);
1961
1965
  yych = rbs_peek(lexer);
@@ -1980,35 +1984,35 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
1980
1984
  {
1981
1985
  return rbs_next_token(lexer, tANNOTATION);
1982
1986
  }
1983
- #line 1791 "src/lexer.c"
1987
+ #line 1795 "src/lexer.c"
1984
1988
  yy213:
1985
1989
  rbs_skip(lexer);
1986
1990
  #line 59 "src/lexer.re"
1987
1991
  {
1988
1992
  return rbs_next_token(lexer, tANNOTATION);
1989
1993
  }
1990
- #line 1796 "src/lexer.c"
1994
+ #line 1800 "src/lexer.c"
1991
1995
  yy214:
1992
1996
  rbs_skip(lexer);
1993
1997
  #line 57 "src/lexer.re"
1994
1998
  {
1995
1999
  return rbs_next_token(lexer, tANNOTATION);
1996
2000
  }
1997
- #line 1801 "src/lexer.c"
2001
+ #line 1805 "src/lexer.c"
1998
2002
  yy215:
1999
2003
  rbs_skip(lexer);
2000
2004
  #line 55 "src/lexer.re"
2001
2005
  {
2002
2006
  return rbs_next_token(lexer, tANNOTATION);
2003
2007
  }
2004
- #line 1806 "src/lexer.c"
2008
+ #line 1810 "src/lexer.c"
2005
2009
  yy216:
2006
2010
  rbs_skip(lexer);
2007
2011
  #line 58 "src/lexer.re"
2008
2012
  {
2009
2013
  return rbs_next_token(lexer, tANNOTATION);
2010
2014
  }
2011
- #line 1811 "src/lexer.c"
2015
+ #line 1815 "src/lexer.c"
2012
2016
  yy217:
2013
2017
  rbs_skip(lexer);
2014
2018
  yych = rbs_peek(lexer);
@@ -2068,7 +2072,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
2068
2072
  {
2069
2073
  return rbs_next_token(lexer, tSYMBOL);
2070
2074
  }
2071
- #line 1869 "src/lexer.c"
2075
+ #line 1873 "src/lexer.c"
2072
2076
  yy222:
2073
2077
  rbs_skip(lexer);
2074
2078
  goto yy168;
@@ -2092,7 +2096,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
2092
2096
  {
2093
2097
  return rbs_next_token(lexer, kATRBS);
2094
2098
  }
2095
- #line 1891 "src/lexer.c"
2099
+ #line 1895 "src/lexer.c"
2096
2100
  yy225:
2097
2101
  rbs_skip(lexer);
2098
2102
  yych = rbs_peek(lexer);
@@ -2132,7 +2136,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
2132
2136
  {
2133
2137
  return rbs_next_token(lexer, kBOOL);
2134
2138
  }
2135
- #line 1929 "src/lexer.c"
2139
+ #line 1933 "src/lexer.c"
2136
2140
  yy230:
2137
2141
  rbs_skip(lexer);
2138
2142
  yych = rbs_peek(lexer);
@@ -2212,7 +2216,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
2212
2216
  {
2213
2217
  return rbs_next_token(lexer, kSELF);
2214
2218
  }
2215
- #line 2007 "src/lexer.c"
2219
+ #line 2011 "src/lexer.c"
2216
2220
  yy243:
2217
2221
  rbs_skip(lexer);
2218
2222
  yych = rbs_peek(lexer);
@@ -2242,7 +2246,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
2242
2246
  {
2243
2247
  return rbs_next_token(lexer, kSKIP);
2244
2248
  }
2245
- #line 2035 "src/lexer.c"
2249
+ #line 2039 "src/lexer.c"
2246
2250
  yy246:
2247
2251
  rbs_skip(lexer);
2248
2252
  yych = rbs_peek(lexer);
@@ -2267,7 +2271,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
2267
2271
  {
2268
2272
  return rbs_next_token(lexer, kTRUE);
2269
2273
  }
2270
- #line 2058 "src/lexer.c"
2274
+ #line 2062 "src/lexer.c"
2271
2275
  yy248:
2272
2276
  rbs_skip(lexer);
2273
2277
  yych = rbs_peek(lexer);
@@ -2292,7 +2296,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
2292
2296
  {
2293
2297
  return rbs_next_token(lexer, kTYPE);
2294
2298
  }
2295
- #line 2081 "src/lexer.c"
2299
+ #line 2085 "src/lexer.c"
2296
2300
  yy250:
2297
2301
  rbs_skip(lexer);
2298
2302
  yych = rbs_peek(lexer);
@@ -2327,7 +2331,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
2327
2331
  {
2328
2332
  return rbs_next_token(lexer, kVOID);
2329
2333
  }
2330
- #line 2114 "src/lexer.c"
2334
+ #line 2118 "src/lexer.c"
2331
2335
  yy254:
2332
2336
  rbs_skip(lexer);
2333
2337
  yych = rbs_peek(lexer);
@@ -2386,7 +2390,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
2386
2390
  {
2387
2391
  return rbs_next_token(lexer, kALIAS);
2388
2392
  }
2389
- #line 2171 "src/lexer.c"
2393
+ #line 2175 "src/lexer.c"
2390
2394
  yy260:
2391
2395
  rbs_skip(lexer);
2392
2396
  yych = rbs_peek(lexer);
@@ -2426,7 +2430,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
2426
2430
  {
2427
2431
  return rbs_next_token(lexer, kCLASS);
2428
2432
  }
2429
- #line 2209 "src/lexer.c"
2433
+ #line 2213 "src/lexer.c"
2430
2434
  yy263:
2431
2435
  rbs_skip(lexer);
2432
2436
  yych = rbs_peek(lexer);
@@ -2456,7 +2460,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
2456
2460
  {
2457
2461
  return rbs_next_token(lexer, kFALSE);
2458
2462
  }
2459
- #line 2237 "src/lexer.c"
2463
+ #line 2241 "src/lexer.c"
2460
2464
  yy266:
2461
2465
  rbs_skip(lexer);
2462
2466
  yych = rbs_peek(lexer);
@@ -2587,7 +2591,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
2587
2591
  {
2588
2592
  return rbs_next_token(lexer, kEXTEND);
2589
2593
  }
2590
- #line 2366 "src/lexer.c"
2594
+ #line 2370 "src/lexer.c"
2591
2595
  yy286:
2592
2596
  rbs_skip(lexer);
2593
2597
  yych = rbs_peek(lexer);
@@ -2631,7 +2635,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
2631
2635
  {
2632
2636
  return rbs_next_token(lexer, kMODULE);
2633
2637
  }
2634
- #line 2408 "src/lexer.c"
2638
+ #line 2412 "src/lexer.c"
2635
2639
  yy291:
2636
2640
  rbs_skip(lexer);
2637
2641
  yych = rbs_peek(lexer);
@@ -2666,7 +2670,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
2666
2670
  {
2667
2671
  return rbs_next_token(lexer, kPUBLIC);
2668
2672
  }
2669
- #line 2441 "src/lexer.c"
2673
+ #line 2445 "src/lexer.c"
2670
2674
  yy295:
2671
2675
  rbs_skip(lexer);
2672
2676
  yych = rbs_peek(lexer);
@@ -2691,7 +2695,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
2691
2695
  {
2692
2696
  return rbs_next_token(lexer, kRETURN);
2693
2697
  }
2694
- #line 2464 "src/lexer.c"
2698
+ #line 2468 "src/lexer.c"
2695
2699
  yy297:
2696
2700
  rbs_skip(lexer);
2697
2701
  yych = rbs_peek(lexer);
@@ -2769,7 +2773,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
2769
2773
  {
2770
2774
  return rbs_next_token(lexer, kINCLUDE);
2771
2775
  }
2772
- #line 2540 "src/lexer.c"
2776
+ #line 2544 "src/lexer.c"
2773
2777
  yy308:
2774
2778
  rbs_skip(lexer);
2775
2779
  yych = rbs_peek(lexer);
@@ -2810,7 +2814,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
2810
2814
  {
2811
2815
  return rbs_next_token(lexer, kPREPEND);
2812
2816
  }
2813
- #line 2579 "src/lexer.c"
2817
+ #line 2583 "src/lexer.c"
2814
2818
  yy313:
2815
2819
  rbs_skip(lexer);
2816
2820
  yych = rbs_peek(lexer);
@@ -2835,7 +2839,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
2835
2839
  {
2836
2840
  return rbs_next_token(lexer, kPRIVATE);
2837
2841
  }
2838
- #line 2602 "src/lexer.c"
2842
+ #line 2606 "src/lexer.c"
2839
2843
  yy315:
2840
2844
  rbs_skip(lexer);
2841
2845
  yych = rbs_peek(lexer);
@@ -2870,7 +2874,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
2870
2874
  {
2871
2875
  return rbs_next_token(lexer, kUNTYPED);
2872
2876
  }
2873
- #line 2635 "src/lexer.c"
2877
+ #line 2639 "src/lexer.c"
2874
2878
  yy319:
2875
2879
  rbs_skip(lexer);
2876
2880
  yych = rbs_peek(lexer);
@@ -2895,7 +2899,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
2895
2899
  {
2896
2900
  return rbs_next_token(lexer, k__TODO__);
2897
2901
  }
2898
- #line 2658 "src/lexer.c"
2902
+ #line 2662 "src/lexer.c"
2899
2903
  yy321:
2900
2904
  rbs_skip(lexer);
2901
2905
  yych = rbs_peek(lexer);
@@ -2940,7 +2944,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
2940
2944
  {
2941
2945
  return rbs_next_token(lexer, kINSTANCE);
2942
2946
  }
2943
- #line 2701 "src/lexer.c"
2947
+ #line 2705 "src/lexer.c"
2944
2948
  yy327:
2945
2949
  rbs_skip(lexer);
2946
2950
  yych = rbs_peek(lexer);
@@ -3010,7 +3014,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
3010
3014
  {
3011
3015
  return rbs_next_token(lexer, kINTERFACE);
3012
3016
  }
3013
- #line 2769 "src/lexer.c"
3017
+ #line 2773 "src/lexer.c"
3014
3018
  yy338:
3015
3019
  rbs_skip(lexer);
3016
3020
  yych = rbs_peek(lexer);
@@ -3045,7 +3049,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
3045
3049
  {
3046
3050
  return rbs_next_token(lexer, kSINGLETON);
3047
3051
  }
3048
- #line 2802 "src/lexer.c"
3052
+ #line 2806 "src/lexer.c"
3049
3053
  yy342:
3050
3054
  rbs_skip(lexer);
3051
3055
  yych = rbs_peek(lexer);
@@ -3070,7 +3074,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
3070
3074
  {
3071
3075
  return rbs_next_token(lexer, kUNCHECKED);
3072
3076
  }
3073
- #line 2825 "src/lexer.c"
3077
+ #line 2829 "src/lexer.c"
3074
3078
  yy344:
3075
3079
  rbs_skip(lexer);
3076
3080
  yych = rbs_peek(lexer);
@@ -3130,7 +3134,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
3130
3134
  {
3131
3135
  return rbs_next_token(lexer, kATTRREADER);
3132
3136
  }
3133
- #line 2883 "src/lexer.c"
3137
+ #line 2887 "src/lexer.c"
3134
3138
  yy353:
3135
3139
  rbs_skip(lexer);
3136
3140
  yych = rbs_peek(lexer);
@@ -3155,14 +3159,14 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
3155
3159
  {
3156
3160
  return rbs_next_token(lexer, kATTRWRITER);
3157
3161
  }
3158
- #line 2906 "src/lexer.c"
3162
+ #line 2910 "src/lexer.c"
3159
3163
  yy355:
3160
3164
  rbs_skip(lexer);
3161
3165
  #line 75 "src/lexer.re"
3162
3166
  {
3163
3167
  return rbs_next_token(lexer, kCLASSALIAS);
3164
3168
  }
3165
- #line 2911 "src/lexer.c"
3169
+ #line 2915 "src/lexer.c"
3166
3170
  yy356:
3167
3171
  rbs_skip(lexer);
3168
3172
  yych = rbs_peek(lexer);
@@ -3174,7 +3178,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
3174
3178
  {
3175
3179
  return rbs_next_token(lexer, kMODULESELF);
3176
3180
  }
3177
- #line 2921 "src/lexer.c"
3181
+ #line 2925 "src/lexer.c"
3178
3182
  yy358:
3179
3183
  rbs_skip(lexer);
3180
3184
  yych = rbs_peek(lexer);
@@ -3186,7 +3190,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
3186
3190
  {
3187
3191
  return rbs_next_token(lexer, kMODULEALIAS);
3188
3192
  }
3189
- #line 2931 "src/lexer.c"
3193
+ #line 2935 "src/lexer.c"
3190
3194
  yy360:
3191
3195
  rbs_skip(lexer);
3192
3196
  yych = rbs_peek(lexer);
@@ -3211,7 +3215,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) {
3211
3215
  {
3212
3216
  return rbs_next_token(lexer, kATTRACCESSOR);
3213
3217
  }
3214
- #line 2954 "src/lexer.c"
3218
+ #line 2958 "src/lexer.c"
3215
3219
  }
3216
3220
  #line 154 "src/lexer.re"
3217
3221
  }