From 552d5ae72dc991d2c48860483ccf0567035a2b28 Mon Sep 17 00:00:00 2001 From: tufusa Date: Thu, 6 Aug 2026 21:54:18 +0900 Subject: [PATCH 1/3] Add lexer test on CRLF --- test/rbs/parser_test.rb | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/test/rbs/parser_test.rb b/test/rbs/parser_test.rb index f78a8597d8..8670b5745b 100644 --- a/test/rbs/parser_test.rb +++ b/test/rbs/parser_test.rb @@ -1030,6 +1030,36 @@ class Foo[T < Integer] < Bar # Comment assert_equal [:pEOF, '', 57...57], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } end + def test__lex_crlf + content = "# LineComment\r\nclass Foo[T < Integer] < Bar # Comment\r\nend\r\n" + tokens = RBS::Parser._lex(buffer(content), content.length) + assert_equal [:tLINECOMMENT, '# LineComment', 0...13], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tTRIVIA, "\r", 13...14], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tTRIVIA, "\n", 14...15], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:kCLASS, 'class', 15...20], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tTRIVIA, " ", 20...21], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tUIDENT, 'Foo', 21...24], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:pLBRACKET, '[', 24...25], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tUIDENT, 'T', 25...26], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tTRIVIA, " ", 26...27], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:pLT, '<', 27...28], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tTRIVIA, " ", 28...29], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tUIDENT, 'Integer', 29...36], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:pRBRACKET, ']', 36...37], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tTRIVIA, " ", 37...38], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:pLT, '<', 38...39], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tTRIVIA, " ", 39...40], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tUIDENT, 'Bar', 40...43], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tTRIVIA, " ", 43...44], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tCOMMENT, '# Comment', 44...53], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tTRIVIA, "\r", 53...54], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tTRIVIA, "\n", 54...55], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:kEND, 'end', 55...58], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tTRIVIA, "\r", 58...59], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tTRIVIA, "\n", 59...60], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:pEOF, '', 60...60], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + end + def test_invalid_position_range_raises # Regression: start_pos > end_pos used to cause an infinite loop in the lexer. assert_raises(ArgumentError) do From 42882b709872445c6db58c792463155d82964998 Mon Sep 17 00:00:00 2001 From: tufusa Date: Thu, 6 Aug 2026 21:54:22 +0900 Subject: [PATCH 2/3] Exclude CR from comment token pattern --- src/lexer.re | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lexer.re b/src/lexer.re index cab3b62799..7407061637 100644 --- a/src/lexer.re +++ b/src/lexer.re @@ -58,7 +58,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { "%a|" [^|\x00]* "|" { return rbs_next_token(lexer, tANNOTATION); } "%a<" [^>\x00]* ">" { return rbs_next_token(lexer, tANNOTATION); } - "#" (. \ [\x00\uFFFD])* { + "#" (. \ [\x00\r\uFFFD])* { return rbs_next_token( lexer, lexer->first_token_of_line ? tLINECOMMENT : tCOMMENT From b56341c5e9cd36d58f85c265ddbc914297377368 Mon Sep 17 00:00:00 2001 From: tufusa Date: Thu, 6 Aug 2026 21:54:30 +0900 Subject: [PATCH 3/3] Update lexer.c --- src/lexer.c | 185 ++++++++++++++++++++++++++-------------------------- 1 file changed, 93 insertions(+), 92 deletions(-) diff --git a/src/lexer.c b/src/lexer.c index ebbaa650d8..1e7d4c321b 100644 --- a/src/lexer.c +++ b/src/lexer.c @@ -214,10 +214,11 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { yy10: rbs_skip(lexer); yych = rbs_peek(lexer); - if (yych <= '\n') { + if (yych <= '\f') { if (yych <= 0x00000000) goto yy11; - if (yych <= '\t') goto yy10; + if (yych != '\n') goto yy10; } else { + if (yych <= '\r') goto yy11; if (yych != 0x0000FFFD) goto yy10; } yy11: @@ -228,7 +229,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { lexer->first_token_of_line ? tLINECOMMENT : tCOMMENT ); } -#line 173 "src/lexer.c" +#line 174 "src/lexer.c" yy12: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -288,7 +289,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, pAMP); } -#line 231 "src/lexer.c" +#line 232 "src/lexer.c" yy15: yyaccept = 0; rbs_skip(lexer); @@ -302,14 +303,14 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, pLPAREN); } -#line 243 "src/lexer.c" +#line 244 "src/lexer.c" yy17: rbs_skip(lexer); #line 25 "src/lexer.re" { return rbs_next_token(lexer, pRPAREN); } -#line 248 "src/lexer.c" +#line 249 "src/lexer.c" yy18: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -318,7 +319,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, pSTAR); } -#line 255 "src/lexer.c" +#line 256 "src/lexer.c" yy19: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -332,7 +333,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, pCOMMA); } -#line 267 "src/lexer.c" +#line 268 "src/lexer.c" yy21: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -368,7 +369,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, pDOT); } -#line 296 "src/lexer.c" +#line 297 "src/lexer.c" yy24: rbs_skip(lexer); goto yy8; @@ -383,7 +384,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, tINTEGER); } -#line 309 "src/lexer.c" +#line 310 "src/lexer.c" yy27: yyaccept = 3; rbs_skip(lexer); @@ -485,7 +486,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, pCOLON); } -#line 394 "src/lexer.c" +#line 395 "src/lexer.c" yy29: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -497,7 +498,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, pLT); } -#line 404 "src/lexer.c" +#line 405 "src/lexer.c" yy31: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -513,7 +514,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, pEQ); } -#line 418 "src/lexer.c" +#line 419 "src/lexer.c" yy33: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -524,14 +525,14 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, pGT); } -#line 427 "src/lexer.c" +#line 428 "src/lexer.c" yy35: rbs_skip(lexer); #line 34 "src/lexer.re" { return rbs_next_token(lexer, pQUESTION); } -#line 432 "src/lexer.c" +#line 433 "src/lexer.c" yy36: yyaccept = 0; rbs_skip(lexer); @@ -580,7 +581,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, tUIDENT); } -#line 479 "src/lexer.c" +#line 480 "src/lexer.c" yy39: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -589,21 +590,21 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, pLBRACKET); } -#line 486 "src/lexer.c" +#line 487 "src/lexer.c" yy40: rbs_skip(lexer); #line 27 "src/lexer.re" { return rbs_next_token(lexer, pRBRACKET); } -#line 491 "src/lexer.c" +#line 492 "src/lexer.c" yy41: rbs_skip(lexer); #line 32 "src/lexer.re" { return rbs_next_token(lexer, pHAT); } -#line 496 "src/lexer.c" +#line 497 "src/lexer.c" yy42: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -629,7 +630,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, tULLIDENT); } -#line 520 "src/lexer.c" +#line 521 "src/lexer.c" yy44: yyaccept = 4; rbs_skip(lexer); @@ -646,7 +647,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, tOPERATOR); } -#line 535 "src/lexer.c" +#line 536 "src/lexer.c" yy46: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -663,7 +664,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, tLIDENT); } -#line 550 "src/lexer.c" +#line 551 "src/lexer.c" yy48: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -784,21 +785,21 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, pLBRACE); } -#line 669 "src/lexer.c" +#line 670 "src/lexer.c" yy66: rbs_skip(lexer); #line 31 "src/lexer.re" { return rbs_next_token(lexer, pBAR); } -#line 674 "src/lexer.c" +#line 675 "src/lexer.c" yy67: rbs_skip(lexer); #line 29 "src/lexer.re" { return rbs_next_token(lexer, pRBRACE); } -#line 679 "src/lexer.c" +#line 680 "src/lexer.c" yy68: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -844,7 +845,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, tDQSTRING); } -#line 719 "src/lexer.c" +#line 720 "src/lexer.c" yy72: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -885,7 +886,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, tGIDENT); } -#line 758 "src/lexer.c" +#line 759 "src/lexer.c" yy75: rbs_skip(lexer); goto yy74; @@ -928,7 +929,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, tSQSTRING); } -#line 799 "src/lexer.c" +#line 800 "src/lexer.c" yy81: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -946,7 +947,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, pSTAR2); } -#line 815 "src/lexer.c" +#line 816 "src/lexer.c" yy83: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -955,14 +956,14 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, tINLINECOMMENT); } -#line 822 "src/lexer.c" +#line 823 "src/lexer.c" yy84: rbs_skip(lexer); #line 41 "src/lexer.re" { return rbs_next_token(lexer, pARROW); } -#line 827 "src/lexer.c" +#line 828 "src/lexer.c" yy85: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -978,7 +979,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, tSYMBOL); } -#line 841 "src/lexer.c" +#line 842 "src/lexer.c" yy88: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -1066,7 +1067,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, pCOLON2); } -#line 927 "src/lexer.c" +#line 928 "src/lexer.c" yy95: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -1124,7 +1125,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, tSYMBOL); } -#line 983 "src/lexer.c" +#line 984 "src/lexer.c" yy101: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -1146,7 +1147,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, pFATARROW); } -#line 1003 "src/lexer.c" +#line 1004 "src/lexer.c" yy105: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -1180,7 +1181,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, tAIDENT); } -#line 1035 "src/lexer.c" +#line 1036 "src/lexer.c" yy109: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -1192,14 +1193,14 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, tBANGIDENT); } -#line 1045 "src/lexer.c" +#line 1046 "src/lexer.c" yy111: rbs_skip(lexer); #line 142 "src/lexer.re" { return rbs_next_token(lexer, tEQIDENT); } -#line 1050 "src/lexer.c" +#line 1051 "src/lexer.c" yy112: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -1208,7 +1209,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, pAREF_OPR); } -#line 1057 "src/lexer.c" +#line 1058 "src/lexer.c" yy113: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -1234,7 +1235,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, tULLIDENT); } -#line 1081 "src/lexer.c" +#line 1082 "src/lexer.c" yy116: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -1259,7 +1260,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, tULIDENT); } -#line 1104 "src/lexer.c" +#line 1105 "src/lexer.c" yy118: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -1300,7 +1301,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kAS); } -#line 1143 "src/lexer.c" +#line 1144 "src/lexer.c" yy123: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -1372,7 +1373,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kIN); } -#line 1213 "src/lexer.c" +#line 1214 "src/lexer.c" yy132: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -1520,14 +1521,14 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, pDOT3); } -#line 1359 "src/lexer.c" +#line 1360 "src/lexer.c" yy156: rbs_skip(lexer); #line 116 "src/lexer.re" { return rbs_next_token(lexer, tDQSYMBOL); } -#line 1364 "src/lexer.c" +#line 1365 "src/lexer.c" yy157: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -1568,7 +1569,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, tSYMBOL); } -#line 1403 "src/lexer.c" +#line 1404 "src/lexer.c" yy160: rbs_skip(lexer); goto yy159; @@ -1579,7 +1580,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, tSQSYMBOL); } -#line 1412 "src/lexer.c" +#line 1413 "src/lexer.c" yy163: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -1638,7 +1639,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, tSYMBOL); } -#line 1469 "src/lexer.c" +#line 1470 "src/lexer.c" yy169: rbs_skip(lexer); goto yy100; @@ -1662,7 +1663,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, tA2IDENT); } -#line 1491 "src/lexer.c" +#line 1492 "src/lexer.c" yy172: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -1679,7 +1680,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, tQIDENT); } -#line 1506 "src/lexer.c" +#line 1507 "src/lexer.c" yy175: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -1719,7 +1720,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kBOT); } -#line 1544 "src/lexer.c" +#line 1545 "src/lexer.c" yy180: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -1749,7 +1750,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kDEF); } -#line 1572 "src/lexer.c" +#line 1573 "src/lexer.c" yy183: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -1774,7 +1775,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kEND); } -#line 1595 "src/lexer.c" +#line 1596 "src/lexer.c" yy185: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -1829,7 +1830,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kNIL); } -#line 1648 "src/lexer.c" +#line 1649 "src/lexer.c" yy193: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -1854,7 +1855,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kOUT); } -#line 1671 "src/lexer.c" +#line 1672 "src/lexer.c" yy195: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -1914,7 +1915,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kTOP); } -#line 1729 "src/lexer.c" +#line 1730 "src/lexer.c" yy204: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -1959,7 +1960,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kUSE); } -#line 1772 "src/lexer.c" +#line 1773 "src/lexer.c" yy210: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -1984,35 +1985,35 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, tANNOTATION); } -#line 1795 "src/lexer.c" +#line 1796 "src/lexer.c" yy213: rbs_skip(lexer); #line 59 "src/lexer.re" { return rbs_next_token(lexer, tANNOTATION); } -#line 1800 "src/lexer.c" +#line 1801 "src/lexer.c" yy214: rbs_skip(lexer); #line 57 "src/lexer.re" { return rbs_next_token(lexer, tANNOTATION); } -#line 1805 "src/lexer.c" +#line 1806 "src/lexer.c" yy215: rbs_skip(lexer); #line 55 "src/lexer.re" { return rbs_next_token(lexer, tANNOTATION); } -#line 1810 "src/lexer.c" +#line 1811 "src/lexer.c" yy216: rbs_skip(lexer); #line 58 "src/lexer.re" { return rbs_next_token(lexer, tANNOTATION); } -#line 1815 "src/lexer.c" +#line 1816 "src/lexer.c" yy217: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -2072,7 +2073,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, tSYMBOL); } -#line 1873 "src/lexer.c" +#line 1874 "src/lexer.c" yy222: rbs_skip(lexer); goto yy168; @@ -2096,7 +2097,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kATRBS); } -#line 1895 "src/lexer.c" +#line 1896 "src/lexer.c" yy225: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -2136,7 +2137,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kBOOL); } -#line 1933 "src/lexer.c" +#line 1934 "src/lexer.c" yy230: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -2216,7 +2217,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kSELF); } -#line 2011 "src/lexer.c" +#line 2012 "src/lexer.c" yy243: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -2246,7 +2247,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kSKIP); } -#line 2039 "src/lexer.c" +#line 2040 "src/lexer.c" yy246: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -2271,7 +2272,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kTRUE); } -#line 2062 "src/lexer.c" +#line 2063 "src/lexer.c" yy248: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -2296,7 +2297,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kTYPE); } -#line 2085 "src/lexer.c" +#line 2086 "src/lexer.c" yy250: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -2331,7 +2332,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kVOID); } -#line 2118 "src/lexer.c" +#line 2119 "src/lexer.c" yy254: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -2390,7 +2391,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kALIAS); } -#line 2175 "src/lexer.c" +#line 2176 "src/lexer.c" yy260: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -2430,7 +2431,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kCLASS); } -#line 2213 "src/lexer.c" +#line 2214 "src/lexer.c" yy263: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -2460,7 +2461,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kFALSE); } -#line 2241 "src/lexer.c" +#line 2242 "src/lexer.c" yy266: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -2591,7 +2592,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kEXTEND); } -#line 2370 "src/lexer.c" +#line 2371 "src/lexer.c" yy286: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -2635,7 +2636,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kMODULE); } -#line 2412 "src/lexer.c" +#line 2413 "src/lexer.c" yy291: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -2670,7 +2671,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kPUBLIC); } -#line 2445 "src/lexer.c" +#line 2446 "src/lexer.c" yy295: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -2695,7 +2696,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kRETURN); } -#line 2468 "src/lexer.c" +#line 2469 "src/lexer.c" yy297: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -2773,7 +2774,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kINCLUDE); } -#line 2544 "src/lexer.c" +#line 2545 "src/lexer.c" yy308: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -2814,7 +2815,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kPREPEND); } -#line 2583 "src/lexer.c" +#line 2584 "src/lexer.c" yy313: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -2839,7 +2840,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kPRIVATE); } -#line 2606 "src/lexer.c" +#line 2607 "src/lexer.c" yy315: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -2874,7 +2875,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kUNTYPED); } -#line 2639 "src/lexer.c" +#line 2640 "src/lexer.c" yy319: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -2899,7 +2900,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, k__TODO__); } -#line 2662 "src/lexer.c" +#line 2663 "src/lexer.c" yy321: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -2944,7 +2945,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kINSTANCE); } -#line 2705 "src/lexer.c" +#line 2706 "src/lexer.c" yy327: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -3014,7 +3015,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kINTERFACE); } -#line 2773 "src/lexer.c" +#line 2774 "src/lexer.c" yy338: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -3049,7 +3050,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kSINGLETON); } -#line 2806 "src/lexer.c" +#line 2807 "src/lexer.c" yy342: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -3074,7 +3075,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kUNCHECKED); } -#line 2829 "src/lexer.c" +#line 2830 "src/lexer.c" yy344: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -3134,7 +3135,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kATTRREADER); } -#line 2887 "src/lexer.c" +#line 2888 "src/lexer.c" yy353: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -3159,14 +3160,14 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kATTRWRITER); } -#line 2910 "src/lexer.c" +#line 2911 "src/lexer.c" yy355: rbs_skip(lexer); #line 75 "src/lexer.re" { return rbs_next_token(lexer, kCLASSALIAS); } -#line 2915 "src/lexer.c" +#line 2916 "src/lexer.c" yy356: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -3178,7 +3179,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kMODULESELF); } -#line 2925 "src/lexer.c" +#line 2926 "src/lexer.c" yy358: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -3190,7 +3191,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kMODULEALIAS); } -#line 2935 "src/lexer.c" +#line 2936 "src/lexer.c" yy360: rbs_skip(lexer); yych = rbs_peek(lexer); @@ -3215,7 +3216,7 @@ rbs_token_t rbs_lexer_next_token(rbs_lexer_t *lexer) { { return rbs_next_token(lexer, kATTRACCESSOR); } -#line 2958 "src/lexer.c" +#line 2959 "src/lexer.c" } #line 154 "src/lexer.re" }