From 378e045d2c693ecc76b0c1aae2c9f54f7d30ea76 Mon Sep 17 00:00:00 2001 From: Soutaro Matsumoto Date: Wed, 29 May 2024 12:02:45 +0900 Subject: [PATCH] Include trivia tokens to lex result --- ext/rbs_extension/lexer.c | 2679 +++++++++++++++---------------- ext/rbs_extension/lexer.h | 2 + ext/rbs_extension/lexer.re | 5 +- ext/rbs_extension/lexstate.c | 6 +- ext/rbs_extension/parserstate.c | 2 + test/rbs/parser_test.rb | 35 +- 6 files changed, 1371 insertions(+), 1358 deletions(-) diff --git a/ext/rbs_extension/lexer.c b/ext/rbs_extension/lexer.c index 040d537a0..81a9e36a4 100644 --- a/ext/rbs_extension/lexer.c +++ b/ext/rbs_extension/lexer.c @@ -5,11 +5,10 @@ token rbsparser_next_token(lexstate *state) { lexstate backup; -start: backup = *state; -#line 13 "ext/rbs_extension/lexer.c" +#line 12 "ext/rbs_extension/lexer.c" { unsigned int yych; unsigned int yyaccept = 0; @@ -17,25 +16,25 @@ token rbsparser_next_token(lexstate *state) { switch (yych) { case 0x00000000: goto yy1; case '\t': - case '\n': - case '\r': case ' ': goto yy4; - case '!': goto yy6; - case '"': goto yy8; - case '#': goto yy9; - case '$': goto yy11; - case '%': goto yy12; - case '&': goto yy13; - case '\'': goto yy14; - case '(': goto yy15; - case ')': goto yy16; - case '*': goto yy17; - case '+': goto yy18; - case ',': goto yy19; - case '-': goto yy20; - case '.': goto yy21; + case '\n': + case '\r': goto yy6; + case '!': goto yy7; + case '"': goto yy9; + case '#': goto yy10; + case '$': goto yy12; + case '%': goto yy13; + case '&': goto yy14; + case '\'': goto yy15; + case '(': goto yy16; + case ')': goto yy17; + case '*': goto yy18; + case '+': goto yy19; + case ',': goto yy20; + case '-': goto yy21; + case '.': goto yy22; case '/': - case '~': goto yy23; + case '~': goto yy24; case '0': case '1': case '2': @@ -45,13 +44,13 @@ token rbsparser_next_token(lexstate *state) { case '6': case '7': case '8': - case '9': goto yy24; - case ':': goto yy26; - case '<': goto yy28; - case '=': goto yy30; - case '>': goto yy32; - case '?': goto yy33; - case '@': goto yy34; + case '9': goto yy25; + case ':': goto yy27; + case '<': goto yy29; + case '=': goto yy31; + case '>': goto yy33; + case '?': goto yy34; + case '@': goto yy35; case 'A': case 'B': case 'C': @@ -77,18 +76,18 @@ token rbsparser_next_token(lexstate *state) { case 'W': case 'X': case 'Y': - case 'Z': goto yy35; - case '[': goto yy37; - case ']': goto yy38; - case '^': goto yy39; - case '_': goto yy40; - case '`': goto yy42; - case 'a': goto yy44; - case 'b': goto yy46; - case 'c': goto yy47; - case 'd': goto yy48; - case 'e': goto yy49; - case 'f': goto yy50; + case 'Z': goto yy36; + case '[': goto yy38; + case ']': goto yy39; + case '^': goto yy40; + case '_': goto yy41; + case '`': goto yy43; + case 'a': goto yy45; + case 'b': goto yy47; + case 'c': goto yy48; + case 'd': goto yy49; + case 'e': goto yy50; + case 'f': goto yy51; case 'g': case 'h': case 'j': @@ -99,230 +98,228 @@ token rbsparser_next_token(lexstate *state) { case 'w': case 'x': case 'y': - case 'z': goto yy51; - case 'i': goto yy53; - case 'm': goto yy54; - case 'n': goto yy55; - case 'o': goto yy56; - case 'p': goto yy57; - case 's': goto yy58; - case 't': goto yy59; - case 'u': goto yy60; - case 'v': goto yy61; - case '{': goto yy62; - case '|': goto yy63; - case '}': goto yy64; + case 'z': goto yy52; + case 'i': goto yy54; + case 'm': goto yy55; + case 'n': goto yy56; + case 'o': goto yy57; + case 'p': goto yy58; + case 's': goto yy59; + case 't': goto yy60; + case 'u': goto yy61; + case 'v': goto yy62; + case '{': goto yy63; + case '|': goto yy64; + case '}': goto yy65; default: goto yy2; } yy1: rbs_skip(state); -#line 145 "ext/rbs_extension/lexer.re" +#line 144 "ext/rbs_extension/lexer.re" { return next_token(state, pEOF); } -#line 122 "ext/rbs_extension/lexer.c" +#line 121 "ext/rbs_extension/lexer.c" yy2: rbs_skip(state); yy3: -#line 146 "ext/rbs_extension/lexer.re" +#line 145 "ext/rbs_extension/lexer.re" { return next_token(state, ErrorToken); } -#line 128 "ext/rbs_extension/lexer.c" +#line 127 "ext/rbs_extension/lexer.c" yy4: rbs_skip(state); yych = peek(state); - if (yych <= '\f') { - if (yych <= 0x00000008) goto yy5; - if (yych <= '\n') goto yy4; - } else { - if (yych <= '\r') goto yy4; - if (yych == ' ') goto yy4; - } + if (yych == '\t') goto yy4; + if (yych == ' ') goto yy4; yy5: -#line 144 "ext/rbs_extension/lexer.re" - { state->start = state->current; goto start; } -#line 142 "ext/rbs_extension/lexer.c" +#line 143 "ext/rbs_extension/lexer.re" + { return next_token(state, tTRIVIA); } +#line 136 "ext/rbs_extension/lexer.c" yy6: rbs_skip(state); - yych = peek(state); - if (yych == '=') goto yy23; - if (yych == '~') goto yy23; + goto yy5; yy7: -#line 49 "ext/rbs_extension/lexer.re" - { return next_token(state, tOPERATOR); } -#line 151 "ext/rbs_extension/lexer.c" + rbs_skip(state); + yych = peek(state); + if (yych == '=') goto yy24; + if (yych == '~') goto yy24; yy8: +#line 48 "ext/rbs_extension/lexer.re" + { return next_token(state, tOPERATOR); } +#line 148 "ext/rbs_extension/lexer.c" +yy9: yyaccept = 0; rbs_skip(state); backup = *state; yych = peek(state); if (yych <= 0x00000000) goto yy3; - goto yy66; -yy9: + goto yy67; +yy10: rbs_skip(state); yych = peek(state); - if (yych <= 0x00000000) goto yy10; - if (yych != '\n') goto yy9; -yy10: -#line 60 "ext/rbs_extension/lexer.re" + if (yych <= 0x00000000) goto yy11; + if (yych != '\n') goto yy10; +yy11: +#line 59 "ext/rbs_extension/lexer.re" { return next_token( state, state->first_token_of_line ? tLINECOMMENT : tCOMMENT ); } -#line 172 "ext/rbs_extension/lexer.c" -yy11: +#line 169 "ext/rbs_extension/lexer.c" +yy12: rbs_skip(state); yych = peek(state); if (yych <= ')') { if (yych <= 0x0000001F) { if (yych <= '\n') { if (yych <= 0x00000000) goto yy3; - if (yych <= 0x00000008) goto yy70; + if (yych <= 0x00000008) goto yy71; goto yy3; } else { if (yych == '\r') goto yy3; - goto yy70; + goto yy71; } } else { if (yych <= '#') { if (yych <= ' ') goto yy3; - if (yych <= '"') goto yy72; - goto yy70; + if (yych <= '"') goto yy73; + goto yy71; } else { if (yych == '%') goto yy3; - if (yych <= '\'') goto yy72; + if (yych <= '\'') goto yy73; goto yy3; } } } else { if (yych <= 'Z') { if (yych <= '/') { - if (yych == '-') goto yy70; - goto yy72; + if (yych == '-') goto yy71; + goto yy73; } else { - if (yych <= '9') goto yy70; - if (yych <= '>') goto yy72; - goto yy70; + if (yych <= '9') goto yy71; + if (yych <= '>') goto yy73; + goto yy71; } } else { if (yych <= '^') { - if (yych == '\\') goto yy72; + if (yych == '\\') goto yy73; goto yy3; } else { - if (yych <= 'z') goto yy70; + if (yych <= 'z') goto yy71; if (yych <= '}') goto yy3; - if (yych <= '~') goto yy72; - goto yy70; + if (yych <= '~') goto yy73; + goto yy71; } } } -yy12: +yy13: yyaccept = 1; rbs_skip(state); backup = *state; yych = peek(state); - if (yych == 'a') goto yy73; - goto yy7; -yy13: + if (yych == 'a') goto yy74; + goto yy8; +yy14: rbs_skip(state); -#line 34 "ext/rbs_extension/lexer.re" +#line 33 "ext/rbs_extension/lexer.re" { return next_token(state, pAMP); } -#line 230 "ext/rbs_extension/lexer.c" -yy14: +#line 227 "ext/rbs_extension/lexer.c" +yy15: yyaccept = 0; rbs_skip(state); backup = *state; yych = peek(state); if (yych <= 0x00000000) goto yy3; - goto yy75; -yy15: + goto yy76; +yy16: rbs_skip(state); -#line 25 "ext/rbs_extension/lexer.re" +#line 24 "ext/rbs_extension/lexer.re" { return next_token(state, pLPAREN); } -#line 242 "ext/rbs_extension/lexer.c" -yy16: +#line 239 "ext/rbs_extension/lexer.c" +yy17: rbs_skip(state); -#line 26 "ext/rbs_extension/lexer.re" +#line 25 "ext/rbs_extension/lexer.re" { return next_token(state, pRPAREN); } -#line 247 "ext/rbs_extension/lexer.c" -yy17: +#line 244 "ext/rbs_extension/lexer.c" +yy18: rbs_skip(state); yych = peek(state); - if (yych == '*') goto yy79; -#line 36 "ext/rbs_extension/lexer.re" + if (yych == '*') goto yy80; +#line 35 "ext/rbs_extension/lexer.re" { return next_token(state, pSTAR); } -#line 254 "ext/rbs_extension/lexer.c" -yy18: +#line 251 "ext/rbs_extension/lexer.c" +yy19: rbs_skip(state); yych = peek(state); - if (yych <= '/') goto yy7; - if (yych <= '9') goto yy24; - if (yych == '@') goto yy23; - goto yy7; -yy19: + if (yych <= '/') goto yy8; + if (yych <= '9') goto yy25; + if (yych == '@') goto yy24; + goto yy8; +yy20: rbs_skip(state); -#line 31 "ext/rbs_extension/lexer.re" +#line 30 "ext/rbs_extension/lexer.re" { return next_token(state, pCOMMA); } -#line 266 "ext/rbs_extension/lexer.c" -yy20: +#line 263 "ext/rbs_extension/lexer.c" +yy21: rbs_skip(state); yych = peek(state); if (yych <= '=') { - if (yych <= '/') goto yy7; - if (yych <= '9') goto yy24; - goto yy7; + if (yych <= '/') goto yy8; + if (yych <= '9') goto yy25; + goto yy8; } else { - if (yych <= '>') goto yy80; - if (yych == '@') goto yy23; - goto yy7; + if (yych <= '>') goto yy81; + if (yych == '@') goto yy24; + goto yy8; } -yy21: +yy22: yyaccept = 2; rbs_skip(state); backup = *state; yych = peek(state); - if (yych == '.') goto yy81; -yy22: -#line 38 "ext/rbs_extension/lexer.re" - { return next_token(state, pDOT); } -#line 288 "ext/rbs_extension/lexer.c" + if (yych == '.') goto yy82; yy23: - rbs_skip(state); - goto yy7; +#line 37 "ext/rbs_extension/lexer.re" + { return next_token(state, pDOT); } +#line 285 "ext/rbs_extension/lexer.c" yy24: rbs_skip(state); - yych = peek(state); - if (yych <= '/') goto yy25; - if (yych <= '9') goto yy24; - if (yych == '_') goto yy24; + goto yy8; yy25: -#line 52 "ext/rbs_extension/lexer.re" - { return next_token(state, tINTEGER); } -#line 301 "ext/rbs_extension/lexer.c" + rbs_skip(state); + yych = peek(state); + if (yych <= '/') goto yy26; + if (yych <= '9') goto yy25; + if (yych == '_') goto yy25; yy26: +#line 51 "ext/rbs_extension/lexer.re" + { return next_token(state, tINTEGER); } +#line 298 "ext/rbs_extension/lexer.c" +yy27: yyaccept = 3; rbs_skip(state); backup = *state; yych = peek(state); switch (yych) { - case '!': goto yy82; - case '"': goto yy84; - case '$': goto yy85; + case '!': goto yy83; + case '"': goto yy85; + case '$': goto yy86; case '%': case '&': case '/': case '^': case '`': case '|': - case '~': goto yy86; - case '\'': goto yy87; - case '*': goto yy88; + case '~': goto yy87; + case '\'': goto yy88; + case '*': goto yy89; case '+': - case '-': goto yy89; - case ':': goto yy90; - case '<': goto yy91; - case '=': goto yy92; - case '>': goto yy93; - case '@': goto yy94; + case '-': goto yy90; + case ':': goto yy91; + case '<': goto yy92; + case '=': goto yy93; + case '>': goto yy94; + case '@': goto yy95; case 'A': case 'B': case 'C': @@ -375,2357 +372,2357 @@ token rbsparser_next_token(lexstate *state) { case 'w': case 'x': case 'y': - case 'z': goto yy95; - case '[': goto yy97; - default: goto yy27; + case 'z': goto yy96; + case '[': goto yy98; + default: goto yy28; } -yy27: -#line 45 "ext/rbs_extension/lexer.re" - { return next_token(state, pCOLON); } -#line 386 "ext/rbs_extension/lexer.c" yy28: +#line 44 "ext/rbs_extension/lexer.re" + { return next_token(state, pCOLON); } +#line 383 "ext/rbs_extension/lexer.c" +yy29: rbs_skip(state); yych = peek(state); - if (yych <= ';') goto yy29; - if (yych <= '<') goto yy23; - if (yych <= '=') goto yy98; -yy29: -#line 47 "ext/rbs_extension/lexer.re" - { return next_token(state, pLT); } -#line 396 "ext/rbs_extension/lexer.c" + if (yych <= ';') goto yy30; + if (yych <= '<') goto yy24; + if (yych <= '=') goto yy99; yy30: +#line 46 "ext/rbs_extension/lexer.re" + { return next_token(state, pLT); } +#line 393 "ext/rbs_extension/lexer.c" +yy31: rbs_skip(state); yych = peek(state); if (yych <= '>') { - if (yych <= '<') goto yy31; - if (yych <= '=') goto yy99; - goto yy100; + if (yych <= '<') goto yy32; + if (yych <= '=') goto yy100; + goto yy101; } else { - if (yych == '~') goto yy23; + if (yych == '~') goto yy24; } -yy31: -#line 44 "ext/rbs_extension/lexer.re" - { return next_token(state, pEQ); } -#line 410 "ext/rbs_extension/lexer.c" yy32: +#line 43 "ext/rbs_extension/lexer.re" + { return next_token(state, pEQ); } +#line 407 "ext/rbs_extension/lexer.c" +yy33: rbs_skip(state); yych = peek(state); - if (yych <= '<') goto yy7; - if (yych <= '>') goto yy23; - goto yy7; -yy33: + if (yych <= '<') goto yy8; + if (yych <= '>') goto yy24; + goto yy8; +yy34: rbs_skip(state); -#line 35 "ext/rbs_extension/lexer.re" +#line 34 "ext/rbs_extension/lexer.re" { return next_token(state, pQUESTION); } -#line 421 "ext/rbs_extension/lexer.c" -yy34: +#line 418 "ext/rbs_extension/lexer.c" +yy35: yyaccept = 0; rbs_skip(state); backup = *state; yych = peek(state); if (yych <= '^') { if (yych <= '?') goto yy3; - if (yych <= '@') goto yy101; - if (yych <= 'Z') goto yy102; + if (yych <= '@') goto yy102; + if (yych <= 'Z') goto yy103; goto yy3; } else { if (yych == '`') goto yy3; - if (yych <= 'z') goto yy102; + if (yych <= 'z') goto yy103; goto yy3; } -yy35: +yy36: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy35; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy36; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy36; - if (yych <= 'Z') goto yy35; + if (yych <= '@') goto yy37; + if (yych <= 'Z') goto yy36; } else { - if (yych == '`') goto yy36; - if (yych <= 'z') goto yy35; + if (yych == '`') goto yy37; + if (yych <= 'z') goto yy36; } } -yy36: -#line 130 "ext/rbs_extension/lexer.re" - { return next_token(state, tUIDENT); } -#line 459 "ext/rbs_extension/lexer.c" yy37: +#line 129 "ext/rbs_extension/lexer.re" + { return next_token(state, tUIDENT); } +#line 456 "ext/rbs_extension/lexer.c" +yy38: rbs_skip(state); yych = peek(state); - if (yych == ']') goto yy106; -#line 27 "ext/rbs_extension/lexer.re" + if (yych == ']') goto yy107; +#line 26 "ext/rbs_extension/lexer.re" { return next_token(state, pLBRACKET); } -#line 466 "ext/rbs_extension/lexer.c" -yy38: +#line 463 "ext/rbs_extension/lexer.c" +yy39: rbs_skip(state); -#line 28 "ext/rbs_extension/lexer.re" +#line 27 "ext/rbs_extension/lexer.re" { return next_token(state, pRBRACKET); } -#line 471 "ext/rbs_extension/lexer.c" -yy39: +#line 468 "ext/rbs_extension/lexer.c" +yy40: rbs_skip(state); -#line 33 "ext/rbs_extension/lexer.re" +#line 32 "ext/rbs_extension/lexer.re" { return next_token(state, pHAT); } -#line 476 "ext/rbs_extension/lexer.c" -yy40: +#line 473 "ext/rbs_extension/lexer.c" +yy41: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy107; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy108; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy41; - if (yych <= 'Z') goto yy110; + if (yych <= '@') goto yy42; + if (yych <= 'Z') goto yy111; } else { - if (yych <= '_') goto yy112; - if (yych <= '`') goto yy41; - if (yych <= 'z') goto yy107; + if (yych <= '_') goto yy113; + if (yych <= '`') goto yy42; + if (yych <= 'z') goto yy108; } } -yy41: -#line 133 "ext/rbs_extension/lexer.re" - { return next_token(state, tULLIDENT); } -#line 500 "ext/rbs_extension/lexer.c" yy42: +#line 132 "ext/rbs_extension/lexer.re" + { return next_token(state, tULLIDENT); } +#line 497 "ext/rbs_extension/lexer.c" +yy43: yyaccept = 4; rbs_skip(state); backup = *state; yych = peek(state); if (yych <= ' ') { - if (yych <= 0x00000000) goto yy43; - if (yych <= 0x0000001F) goto yy113; + if (yych <= 0x00000000) goto yy44; + if (yych <= 0x0000001F) goto yy114; } else { - if (yych != ':') goto yy113; + if (yych != ':') goto yy114; } -yy43: -#line 40 "ext/rbs_extension/lexer.re" - { return next_token(state, tOPERATOR); } -#line 515 "ext/rbs_extension/lexer.c" yy44: +#line 39 "ext/rbs_extension/lexer.re" + { return next_token(state, tOPERATOR); } +#line 512 "ext/rbs_extension/lexer.c" +yy45: rbs_skip(state); yych = peek(state); if (yych <= 'r') { - if (yych == 'l') goto yy114; - goto yy52; + if (yych == 'l') goto yy115; + goto yy53; } else { - if (yych <= 's') goto yy115; - if (yych <= 't') goto yy117; - goto yy52; + if (yych <= 's') goto yy116; + if (yych <= 't') goto yy118; + goto yy53; } -yy45: -#line 129 "ext/rbs_extension/lexer.re" - { return next_token(state, tLIDENT); } -#line 530 "ext/rbs_extension/lexer.c" yy46: - rbs_skip(state); - yych = peek(state); - if (yych == 'o') goto yy118; - goto yy52; +#line 128 "ext/rbs_extension/lexer.re" + { return next_token(state, tLIDENT); } +#line 527 "ext/rbs_extension/lexer.c" yy47: rbs_skip(state); yych = peek(state); - if (yych == 'l') goto yy119; - goto yy52; + if (yych == 'o') goto yy119; + goto yy53; yy48: rbs_skip(state); yych = peek(state); - if (yych == 'e') goto yy120; - goto yy52; + if (yych == 'l') goto yy120; + goto yy53; yy49: rbs_skip(state); yych = peek(state); - if (yych == 'n') goto yy121; - if (yych == 'x') goto yy122; - goto yy52; + if (yych == 'e') goto yy121; + goto yy53; yy50: rbs_skip(state); yych = peek(state); - if (yych == 'a') goto yy123; - goto yy52; + if (yych == 'n') goto yy122; + if (yych == 'x') goto yy123; + goto yy53; yy51: rbs_skip(state); yych = peek(state); + if (yych == 'a') goto yy124; + goto yy53; yy52: + rbs_skip(state); + yych = peek(state); +yy53: if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; - goto yy45; + if (yych == '!') goto yy105; + goto yy46; } else { - if (yych <= '9') goto yy51; - if (yych <= '<') goto yy45; - goto yy105; + if (yych <= '9') goto yy52; + if (yych <= '<') goto yy46; + goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy45; - if (yych <= 'Z') goto yy51; - goto yy45; + if (yych <= '@') goto yy46; + if (yych <= 'Z') goto yy52; + goto yy46; } else { - if (yych == '`') goto yy45; - if (yych <= 'z') goto yy51; - goto yy45; + if (yych == '`') goto yy46; + if (yych <= 'z') goto yy52; + goto yy46; } } -yy53: - rbs_skip(state); - yych = peek(state); - if (yych == 'n') goto yy124; - goto yy52; yy54: rbs_skip(state); yych = peek(state); - if (yych == 'o') goto yy126; - goto yy52; + if (yych == 'n') goto yy125; + goto yy53; yy55: rbs_skip(state); yych = peek(state); - if (yych == 'i') goto yy127; - goto yy52; + if (yych == 'o') goto yy127; + goto yy53; yy56: rbs_skip(state); yych = peek(state); - if (yych == 'u') goto yy128; - goto yy52; + if (yych == 'i') goto yy128; + goto yy53; yy57: rbs_skip(state); yych = peek(state); - if (yych == 'r') goto yy129; - if (yych == 'u') goto yy130; - goto yy52; + if (yych == 'u') goto yy129; + goto yy53; yy58: rbs_skip(state); yych = peek(state); - if (yych == 'e') goto yy131; - if (yych == 'i') goto yy132; - goto yy52; + if (yych == 'r') goto yy130; + if (yych == 'u') goto yy131; + goto yy53; yy59: rbs_skip(state); yych = peek(state); - if (yych <= 'q') { - if (yych == 'o') goto yy133; - goto yy52; - } else { - if (yych <= 'r') goto yy134; - if (yych == 'y') goto yy135; - goto yy52; - } + if (yych == 'e') goto yy132; + if (yych == 'i') goto yy133; + goto yy53; yy60: rbs_skip(state); yych = peek(state); - if (yych == 'n') goto yy136; - if (yych == 's') goto yy137; - goto yy52; + if (yych <= 'q') { + if (yych == 'o') goto yy134; + goto yy53; + } else { + if (yych <= 'r') goto yy135; + if (yych == 'y') goto yy136; + goto yy53; + } yy61: rbs_skip(state); yych = peek(state); - if (yych == 'o') goto yy138; - goto yy52; + if (yych == 'n') goto yy137; + if (yych == 's') goto yy138; + goto yy53; yy62: rbs_skip(state); -#line 29 "ext/rbs_extension/lexer.re" - { return next_token(state, pLBRACE); } -#line 639 "ext/rbs_extension/lexer.c" + yych = peek(state); + if (yych == 'o') goto yy139; + goto yy53; yy63: rbs_skip(state); -#line 32 "ext/rbs_extension/lexer.re" - { return next_token(state, pBAR); } -#line 644 "ext/rbs_extension/lexer.c" +#line 28 "ext/rbs_extension/lexer.re" + { return next_token(state, pLBRACE); } +#line 636 "ext/rbs_extension/lexer.c" yy64: rbs_skip(state); -#line 30 "ext/rbs_extension/lexer.re" - { return next_token(state, pRBRACE); } -#line 649 "ext/rbs_extension/lexer.c" +#line 31 "ext/rbs_extension/lexer.re" + { return next_token(state, pBAR); } +#line 641 "ext/rbs_extension/lexer.c" yy65: rbs_skip(state); - yych = peek(state); +#line 29 "ext/rbs_extension/lexer.re" + { return next_token(state, pRBRACE); } +#line 646 "ext/rbs_extension/lexer.c" yy66: + rbs_skip(state); + yych = peek(state); +yy67: if (yych <= '"') { - if (yych <= 0x00000000) goto yy67; - if (yych <= '!') goto yy65; - goto yy68; + if (yych <= 0x00000000) goto yy68; + if (yych <= '!') goto yy66; + goto yy69; } else { - if (yych == '\\') goto yy69; - goto yy65; + if (yych == '\\') goto yy70; + goto yy66; } -yy67: +yy68: *state = backup; if (yyaccept <= 3) { if (yyaccept <= 1) { if (yyaccept == 0) { goto yy3; } else { - goto yy7; + goto yy8; } } else { if (yyaccept == 2) { - goto yy22; + goto yy23; } else { - goto yy27; + goto yy28; } } } else { if (yyaccept <= 5) { if (yyaccept == 4) { - goto yy43; + goto yy44; } else { - goto yy77; + goto yy78; } } else { - goto yy154; + goto yy155; } } -yy68: +yy69: rbs_skip(state); -#line 107 "ext/rbs_extension/lexer.re" +#line 106 "ext/rbs_extension/lexer.re" { return next_token(state, tDQSTRING); } -#line 693 "ext/rbs_extension/lexer.c" -yy69: +#line 690 "ext/rbs_extension/lexer.c" +yy70: rbs_skip(state); yych = peek(state); - if (yych == 'u') goto yy139; - if (yych == 'x') goto yy140; - goto yy65; -yy70: + if (yych == 'u') goto yy140; + if (yych == 'x') goto yy141; + goto yy66; +yy71: rbs_skip(state); yych = peek(state); if (yych <= ',') { if (yych <= '\f') { - if (yych <= 0x00000000) goto yy71; - if (yych <= 0x00000008) goto yy70; - if (yych >= '\v') goto yy70; + if (yych <= 0x00000000) goto yy72; + if (yych <= 0x00000008) goto yy71; + if (yych >= '\v') goto yy71; } else { if (yych <= 0x0000001F) { - if (yych >= 0x0000000E) goto yy70; + if (yych >= 0x0000000E) goto yy71; } else { - if (yych == '#') goto yy70; + if (yych == '#') goto yy71; } } } else { if (yych <= '>') { - if (yych <= '-') goto yy70; - if (yych <= '/') goto yy71; - if (yych <= '9') goto yy70; + if (yych <= '-') goto yy71; + if (yych <= '/') goto yy72; + if (yych <= '9') goto yy71; } else { if (yych <= '^') { - if (yych <= 'Z') goto yy70; + if (yych <= 'Z') goto yy71; } else { - if (yych <= 'z') goto yy70; - if (yych >= 0x0000007F) goto yy70; + if (yych <= 'z') goto yy71; + if (yych >= 0x0000007F) goto yy71; } } } -yy71: -#line 140 "ext/rbs_extension/lexer.re" - { return next_token(state, tGIDENT); } -#line 732 "ext/rbs_extension/lexer.c" yy72: - rbs_skip(state); - goto yy71; +#line 139 "ext/rbs_extension/lexer.re" + { return next_token(state, tGIDENT); } +#line 729 "ext/rbs_extension/lexer.c" yy73: + rbs_skip(state); + goto yy72; +yy74: rbs_skip(state); yych = peek(state); if (yych <= 'Z') { if (yych <= '(') { - if (yych <= '\'') goto yy67; - goto yy141; + if (yych <= '\'') goto yy68; + goto yy142; } else { - if (yych == '<') goto yy142; - goto yy67; + if (yych == '<') goto yy143; + goto yy68; } } else { if (yych <= 'z') { - if (yych <= '[') goto yy143; - goto yy67; + if (yych <= '[') goto yy144; + goto yy68; } else { - if (yych <= '{') goto yy144; - if (yych <= '|') goto yy145; - goto yy67; + if (yych <= '{') goto yy145; + if (yych <= '|') goto yy146; + goto yy68; } } -yy74: +yy75: rbs_skip(state); yych = peek(state); -yy75: +yy76: if (yych <= '\'') { - if (yych <= 0x00000000) goto yy67; - if (yych <= '&') goto yy74; + if (yych <= 0x00000000) goto yy68; + if (yych <= '&') goto yy75; } else { - if (yych == '\\') goto yy78; - goto yy74; + if (yych == '\\') goto yy79; + goto yy75; } -yy76: - rbs_skip(state); yy77: -#line 108 "ext/rbs_extension/lexer.re" - { return next_token(state, tSQSTRING); } -#line 773 "ext/rbs_extension/lexer.c" + rbs_skip(state); yy78: +#line 107 "ext/rbs_extension/lexer.re" + { return next_token(state, tSQSTRING); } +#line 770 "ext/rbs_extension/lexer.c" +yy79: rbs_skip(state); yych = peek(state); if (yych <= '\'') { - if (yych <= 0x00000000) goto yy67; - if (yych <= '&') goto yy74; - goto yy146; + if (yych <= 0x00000000) goto yy68; + if (yych <= '&') goto yy75; + goto yy147; } else { - if (yych == '\\') goto yy78; - goto yy74; + if (yych == '\\') goto yy79; + goto yy75; } -yy79: - rbs_skip(state); -#line 37 "ext/rbs_extension/lexer.re" - { return next_token(state, pSTAR2); } -#line 789 "ext/rbs_extension/lexer.c" yy80: rbs_skip(state); -#line 42 "ext/rbs_extension/lexer.re" - { return next_token(state, pARROW); } -#line 794 "ext/rbs_extension/lexer.c" +#line 36 "ext/rbs_extension/lexer.re" + { return next_token(state, pSTAR2); } +#line 786 "ext/rbs_extension/lexer.c" yy81: rbs_skip(state); - yych = peek(state); - if (yych == '.') goto yy147; - goto yy67; +#line 41 "ext/rbs_extension/lexer.re" + { return next_token(state, pARROW); } +#line 791 "ext/rbs_extension/lexer.c" yy82: rbs_skip(state); yych = peek(state); - if (yych == '=') goto yy86; - if (yych == '~') goto yy86; + if (yych == '.') goto yy148; + goto yy68; yy83: -#line 127 "ext/rbs_extension/lexer.re" - { return next_token(state, tSYMBOL); } -#line 808 "ext/rbs_extension/lexer.c" + rbs_skip(state); + yych = peek(state); + if (yych == '=') goto yy87; + if (yych == '~') goto yy87; yy84: +#line 126 "ext/rbs_extension/lexer.re" + { return next_token(state, tSYMBOL); } +#line 805 "ext/rbs_extension/lexer.c" +yy85: rbs_skip(state); yych = peek(state); if (yych <= '"') { - if (yych <= 0x00000000) goto yy67; - if (yych <= '!') goto yy84; - goto yy148; + if (yych <= 0x00000000) goto yy68; + if (yych <= '!') goto yy85; + goto yy149; } else { - if (yych == '\\') goto yy149; - goto yy84; + if (yych == '\\') goto yy150; + goto yy85; } -yy85: +yy86: rbs_skip(state); yych = peek(state); if (yych <= ')') { if (yych <= 0x0000001F) { if (yych <= '\n') { - if (yych <= 0x00000000) goto yy67; - if (yych <= 0x00000008) goto yy150; - goto yy67; + if (yych <= 0x00000000) goto yy68; + if (yych <= 0x00000008) goto yy151; + goto yy68; } else { - if (yych == '\r') goto yy67; - goto yy150; + if (yych == '\r') goto yy68; + goto yy151; } } else { if (yych <= '#') { - if (yych <= ' ') goto yy67; - if (yych <= '"') goto yy152; - goto yy150; + if (yych <= ' ') goto yy68; + if (yych <= '"') goto yy153; + goto yy151; } else { - if (yych == '%') goto yy67; - if (yych <= '\'') goto yy152; - goto yy67; + if (yych == '%') goto yy68; + if (yych <= '\'') goto yy153; + goto yy68; } } } else { if (yych <= 'Z') { if (yych <= '/') { - if (yych == '-') goto yy150; - goto yy152; + if (yych == '-') goto yy151; + goto yy153; } else { - if (yych <= '9') goto yy150; - if (yych <= '>') goto yy152; - goto yy150; + if (yych <= '9') goto yy151; + if (yych <= '>') goto yy153; + goto yy151; } } else { if (yych <= '^') { - if (yych == '\\') goto yy152; - goto yy67; + if (yych == '\\') goto yy153; + goto yy68; } else { - if (yych <= 'z') goto yy150; - if (yych <= '}') goto yy67; - if (yych <= '~') goto yy152; - goto yy150; + if (yych <= 'z') goto yy151; + if (yych <= '}') goto yy68; + if (yych <= '~') goto yy153; + goto yy151; } } } -yy86: - rbs_skip(state); - goto yy83; yy87: + rbs_skip(state); + goto yy84; +yy88: rbs_skip(state); yych = peek(state); if (yych <= '\'') { - if (yych <= 0x00000000) goto yy67; - if (yych <= '&') goto yy87; - goto yy153; + if (yych <= 0x00000000) goto yy68; + if (yych <= '&') goto yy88; + goto yy154; } else { - if (yych == '\\') goto yy155; - goto yy87; + if (yych == '\\') goto yy156; + goto yy88; } -yy88: - rbs_skip(state); - yych = peek(state); - if (yych == '*') goto yy86; - goto yy83; yy89: rbs_skip(state); yych = peek(state); - if (yych == '@') goto yy86; - goto yy83; + if (yych == '*') goto yy87; + goto yy84; yy90: rbs_skip(state); -#line 46 "ext/rbs_extension/lexer.re" - { return next_token(state, pCOLON2); } -#line 894 "ext/rbs_extension/lexer.c" + yych = peek(state); + if (yych == '@') goto yy87; + goto yy84; yy91: rbs_skip(state); - yych = peek(state); - if (yych <= ';') goto yy83; - if (yych <= '<') goto yy86; - if (yych <= '=') goto yy156; - goto yy83; +#line 45 "ext/rbs_extension/lexer.re" + { return next_token(state, pCOLON2); } +#line 891 "ext/rbs_extension/lexer.c" yy92: rbs_skip(state); yych = peek(state); - if (yych == '=') goto yy157; - if (yych == '~') goto yy86; - goto yy67; + if (yych <= ';') goto yy84; + if (yych <= '<') goto yy87; + if (yych <= '=') goto yy157; + goto yy84; yy93: rbs_skip(state); yych = peek(state); - if (yych <= '<') goto yy83; - if (yych <= '>') goto yy86; - goto yy83; + if (yych == '=') goto yy158; + if (yych == '~') goto yy87; + goto yy68; yy94: + rbs_skip(state); + yych = peek(state); + if (yych <= '<') goto yy84; + if (yych <= '>') goto yy87; + goto yy84; +yy95: rbs_skip(state); yych = peek(state); if (yych <= '^') { - if (yych <= '?') goto yy67; - if (yych <= '@') goto yy158; - if (yych <= 'Z') goto yy159; - goto yy67; + if (yych <= '?') goto yy68; + if (yych <= '@') goto yy159; + if (yych <= 'Z') goto yy160; + goto yy68; } else { - if (yych == '`') goto yy67; - if (yych <= 'z') goto yy159; - goto yy67; + if (yych == '`') goto yy68; + if (yych <= 'z') goto yy160; + goto yy68; } -yy95: +yy96: rbs_skip(state); yych = peek(state); if (yych <= '>') { if (yych <= '/') { - if (yych == '!') goto yy161; + if (yych == '!') goto yy162; } else { - if (yych <= '9') goto yy95; - if (yych == '=') goto yy161; + if (yych <= '9') goto yy96; + if (yych == '=') goto yy162; } } else { if (yych <= '^') { - if (yych <= '?') goto yy161; - if (yych <= '@') goto yy96; - if (yych <= 'Z') goto yy95; + if (yych <= '?') goto yy162; + if (yych <= '@') goto yy97; + if (yych <= 'Z') goto yy96; } else { - if (yych == '`') goto yy96; - if (yych <= 'z') goto yy95; + if (yych == '`') goto yy97; + if (yych <= 'z') goto yy96; } } -yy96: -#line 123 "ext/rbs_extension/lexer.re" - { return next_token(state, tSYMBOL); } -#line 950 "ext/rbs_extension/lexer.c" yy97: - rbs_skip(state); - yych = peek(state); - if (yych == ']') goto yy157; - goto yy67; +#line 122 "ext/rbs_extension/lexer.re" + { return next_token(state, tSYMBOL); } +#line 947 "ext/rbs_extension/lexer.c" yy98: rbs_skip(state); yych = peek(state); - if (yych == '>') goto yy23; - goto yy7; + if (yych == ']') goto yy158; + goto yy68; yy99: rbs_skip(state); yych = peek(state); - if (yych == '=') goto yy23; - goto yy7; + if (yych == '>') goto yy24; + goto yy8; yy100: rbs_skip(state); -#line 43 "ext/rbs_extension/lexer.re" - { return next_token(state, pFATARROW); } -#line 970 "ext/rbs_extension/lexer.c" + yych = peek(state); + if (yych == '=') goto yy24; + goto yy8; yy101: rbs_skip(state); +#line 42 "ext/rbs_extension/lexer.re" + { return next_token(state, pFATARROW); } +#line 967 "ext/rbs_extension/lexer.c" +yy102: + rbs_skip(state); yych = peek(state); if (yych <= '^') { - if (yych <= '@') goto yy67; - if (yych <= 'Z') goto yy162; - goto yy67; + if (yych <= '@') goto yy68; + if (yych <= 'Z') goto yy163; + goto yy68; } else { - if (yych == '`') goto yy67; - if (yych <= 'z') goto yy162; - goto yy67; + if (yych == '`') goto yy68; + if (yych <= 'z') goto yy163; + goto yy68; } -yy102: +yy103: rbs_skip(state); yych = peek(state); if (yych <= 'Z') { - if (yych <= '/') goto yy103; - if (yych <= '9') goto yy102; - if (yych >= 'A') goto yy102; + if (yych <= '/') goto yy104; + if (yych <= '9') goto yy103; + if (yych >= 'A') goto yy103; } else { if (yych <= '_') { - if (yych >= '_') goto yy102; + if (yych >= '_') goto yy103; } else { - if (yych <= '`') goto yy103; - if (yych <= 'z') goto yy102; + if (yych <= '`') goto yy104; + if (yych <= 'z') goto yy103; } } -yy103: -#line 137 "ext/rbs_extension/lexer.re" - { return next_token(state, tAIDENT); } -#line 1001 "ext/rbs_extension/lexer.c" yy104: +#line 136 "ext/rbs_extension/lexer.re" + { return next_token(state, tAIDENT); } +#line 998 "ext/rbs_extension/lexer.c" +yy105: rbs_skip(state); -#line 134 "ext/rbs_extension/lexer.re" +#line 133 "ext/rbs_extension/lexer.re" { return next_token(state, tBANGIDENT); } -#line 1006 "ext/rbs_extension/lexer.c" -yy105: +#line 1003 "ext/rbs_extension/lexer.c" +yy106: rbs_skip(state); -#line 135 "ext/rbs_extension/lexer.re" +#line 134 "ext/rbs_extension/lexer.re" { return next_token(state, tEQIDENT); } -#line 1011 "ext/rbs_extension/lexer.c" -yy106: +#line 1008 "ext/rbs_extension/lexer.c" +yy107: rbs_skip(state); yych = peek(state); - if (yych == '=') goto yy23; -#line 48 "ext/rbs_extension/lexer.re" + if (yych == '=') goto yy24; +#line 47 "ext/rbs_extension/lexer.re" { return next_token(state, pAREF_OPR); } -#line 1018 "ext/rbs_extension/lexer.c" -yy107: +#line 1015 "ext/rbs_extension/lexer.c" +yy108: rbs_skip(state); yych = peek(state); -yy108: +yy109: if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy107; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy108; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy109; - if (yych <= 'Z') goto yy107; + if (yych <= '@') goto yy110; + if (yych <= 'Z') goto yy108; } else { - if (yych == '`') goto yy109; - if (yych <= 'z') goto yy107; + if (yych == '`') goto yy110; + if (yych <= 'z') goto yy108; } } -yy109: -#line 131 "ext/rbs_extension/lexer.re" - { return next_token(state, tULLIDENT); } -#line 1042 "ext/rbs_extension/lexer.c" yy110: +#line 130 "ext/rbs_extension/lexer.re" + { return next_token(state, tULLIDENT); } +#line 1039 "ext/rbs_extension/lexer.c" +yy111: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy110; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy111; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy111; - if (yych <= 'Z') goto yy110; + if (yych <= '@') goto yy112; + if (yych <= 'Z') goto yy111; } else { - if (yych == '`') goto yy111; - if (yych <= 'z') goto yy110; + if (yych == '`') goto yy112; + if (yych <= 'z') goto yy111; } } -yy111: -#line 132 "ext/rbs_extension/lexer.re" - { return next_token(state, tULIDENT); } -#line 1065 "ext/rbs_extension/lexer.c" yy112: - rbs_skip(state); - yych = peek(state); - if (yych == 't') goto yy164; - goto yy108; +#line 131 "ext/rbs_extension/lexer.re" + { return next_token(state, tULIDENT); } +#line 1062 "ext/rbs_extension/lexer.c" yy113: rbs_skip(state); yych = peek(state); - if (yych <= 0x00000000) goto yy67; - if (yych == '`') goto yy165; - goto yy113; + if (yych == 't') goto yy165; + goto yy109; yy114: rbs_skip(state); yych = peek(state); - if (yych == 'i') goto yy166; - goto yy52; + if (yych <= 0x00000000) goto yy68; + if (yych == '`') goto yy166; + goto yy114; yy115: + rbs_skip(state); + yych = peek(state); + if (yych == 'i') goto yy167; + goto yy53; +yy116: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy116; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy117; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy116; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy117; + if (yych <= 'z') goto yy52; } } -yy116: -#line 97 "ext/rbs_extension/lexer.re" - { return next_token(state, kAS); } -#line 1104 "ext/rbs_extension/lexer.c" yy117: - rbs_skip(state); - yych = peek(state); - if (yych == 't') goto yy167; - goto yy52; +#line 96 "ext/rbs_extension/lexer.re" + { return next_token(state, kAS); } +#line 1101 "ext/rbs_extension/lexer.c" yy118: rbs_skip(state); yych = peek(state); - if (yych == 'o') goto yy168; - if (yych == 't') goto yy169; - goto yy52; + if (yych == 't') goto yy168; + goto yy53; yy119: rbs_skip(state); yych = peek(state); - if (yych == 'a') goto yy171; - goto yy52; + if (yych == 'o') goto yy169; + if (yych == 't') goto yy170; + goto yy53; yy120: rbs_skip(state); yych = peek(state); - if (yych == 'f') goto yy172; - goto yy52; + if (yych == 'a') goto yy172; + goto yy53; yy121: rbs_skip(state); yych = peek(state); - if (yych == 'd') goto yy174; - goto yy52; + if (yych == 'f') goto yy173; + goto yy53; yy122: rbs_skip(state); yych = peek(state); - if (yych == 't') goto yy176; - goto yy52; + if (yych == 'd') goto yy175; + goto yy53; yy123: rbs_skip(state); yych = peek(state); - if (yych == 'l') goto yy177; - goto yy52; + if (yych == 't') goto yy177; + goto yy53; yy124: + rbs_skip(state); + yych = peek(state); + if (yych == 'l') goto yy178; + goto yy53; +yy125: rbs_skip(state); yych = peek(state); if (yych <= '^') { if (yych <= '9') { - if (yych == '!') goto yy104; - if (yych >= '0') goto yy51; + if (yych == '!') goto yy105; + if (yych >= '0') goto yy52; } else { if (yych <= '=') { - if (yych >= '=') goto yy105; + if (yych >= '=') goto yy106; } else { - if (yych <= '@') goto yy125; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy126; + if (yych <= 'Z') goto yy52; } } } else { if (yych <= 'c') { - if (yych == '`') goto yy125; - if (yych <= 'b') goto yy51; - goto yy178; + if (yych == '`') goto yy126; + if (yych <= 'b') goto yy52; + goto yy179; } else { if (yych <= 's') { - if (yych <= 'r') goto yy51; - goto yy179; + if (yych <= 'r') goto yy52; + goto yy180; } else { - if (yych <= 't') goto yy180; - if (yych <= 'z') goto yy51; + if (yych <= 't') goto yy181; + if (yych <= 'z') goto yy52; } } } -yy125: -#line 78 "ext/rbs_extension/lexer.re" - { return next_token(state, kIN); } -#line 1174 "ext/rbs_extension/lexer.c" yy126: - rbs_skip(state); - yych = peek(state); - if (yych == 'd') goto yy181; - goto yy52; +#line 77 "ext/rbs_extension/lexer.re" + { return next_token(state, kIN); } +#line 1171 "ext/rbs_extension/lexer.c" yy127: rbs_skip(state); yych = peek(state); - if (yych == 'l') goto yy182; - goto yy52; + if (yych == 'd') goto yy182; + goto yy53; yy128: rbs_skip(state); yych = peek(state); - if (yych == 't') goto yy184; - goto yy52; + if (yych == 'l') goto yy183; + goto yy53; yy129: rbs_skip(state); yych = peek(state); - if (yych == 'e') goto yy186; - if (yych == 'i') goto yy187; - goto yy52; + if (yych == 't') goto yy185; + goto yy53; yy130: rbs_skip(state); yych = peek(state); - if (yych == 'b') goto yy188; - goto yy52; + if (yych == 'e') goto yy187; + if (yych == 'i') goto yy188; + goto yy53; yy131: rbs_skip(state); yych = peek(state); - if (yych == 'l') goto yy189; - goto yy52; + if (yych == 'b') goto yy189; + goto yy53; yy132: rbs_skip(state); yych = peek(state); - if (yych == 'n') goto yy190; - goto yy52; + if (yych == 'l') goto yy190; + goto yy53; yy133: rbs_skip(state); yych = peek(state); - if (yych == 'p') goto yy191; - goto yy52; + if (yych == 'n') goto yy191; + goto yy53; yy134: rbs_skip(state); yych = peek(state); - if (yych == 'u') goto yy193; - goto yy52; + if (yych == 'p') goto yy192; + goto yy53; yy135: rbs_skip(state); yych = peek(state); - if (yych == 'p') goto yy194; - goto yy52; + if (yych == 'u') goto yy194; + goto yy53; yy136: rbs_skip(state); yych = peek(state); - if (yych == 'c') goto yy195; - if (yych == 't') goto yy196; - goto yy52; + if (yych == 'p') goto yy195; + goto yy53; yy137: rbs_skip(state); yych = peek(state); - if (yych == 'e') goto yy197; - goto yy52; + if (yych == 'c') goto yy196; + if (yych == 't') goto yy197; + goto yy53; yy138: rbs_skip(state); yych = peek(state); - if (yych == 'i') goto yy199; - goto yy52; + if (yych == 'e') goto yy198; + goto yy53; yy139: rbs_skip(state); yych = peek(state); - if (yych <= '@') { - if (yych <= '/') goto yy67; - if (yych <= '9') goto yy200; - goto yy67; - } else { - if (yych <= 'F') goto yy200; - if (yych <= '`') goto yy67; - if (yych <= 'f') goto yy200; - goto yy67; - } + if (yych == 'i') goto yy200; + goto yy53; yy140: rbs_skip(state); yych = peek(state); - if (yych <= '/') goto yy67; - if (yych <= '9') goto yy65; - if (yych <= '`') goto yy67; - if (yych <= 'f') goto yy65; - goto yy67; + if (yych <= '@') { + if (yych <= '/') goto yy68; + if (yych <= '9') goto yy201; + goto yy68; + } else { + if (yych <= 'F') goto yy201; + if (yych <= '`') goto yy68; + if (yych <= 'f') goto yy201; + goto yy68; + } yy141: rbs_skip(state); yych = peek(state); - if (yych <= 0x00000000) goto yy67; - if (yych == ')') goto yy201; - goto yy141; + if (yych <= '/') goto yy68; + if (yych <= '9') goto yy66; + if (yych <= '`') goto yy68; + if (yych <= 'f') goto yy66; + goto yy68; yy142: rbs_skip(state); yych = peek(state); - if (yych <= 0x00000000) goto yy67; - if (yych == '>') goto yy202; + if (yych <= 0x00000000) goto yy68; + if (yych == ')') goto yy202; goto yy142; yy143: rbs_skip(state); yych = peek(state); - if (yych <= 0x00000000) goto yy67; - if (yych == ']') goto yy203; + if (yych <= 0x00000000) goto yy68; + if (yych == '>') goto yy203; goto yy143; yy144: rbs_skip(state); yych = peek(state); - if (yych <= 0x00000000) goto yy67; - if (yych == '}') goto yy204; + if (yych <= 0x00000000) goto yy68; + if (yych == ']') goto yy204; goto yy144; yy145: rbs_skip(state); yych = peek(state); - if (yych <= 0x00000000) goto yy67; - if (yych == '|') goto yy205; + if (yych <= 0x00000000) goto yy68; + if (yych == '}') goto yy205; goto yy145; yy146: + rbs_skip(state); + yych = peek(state); + if (yych <= 0x00000000) goto yy68; + if (yych == '|') goto yy206; + goto yy146; +yy147: yyaccept = 5; rbs_skip(state); backup = *state; yych = peek(state); if (yych <= '\'') { - if (yych <= 0x00000000) goto yy77; - if (yych <= '&') goto yy74; - goto yy76; + if (yych <= 0x00000000) goto yy78; + if (yych <= '&') goto yy75; + goto yy77; } else { - if (yych == '\\') goto yy78; - goto yy74; + if (yych == '\\') goto yy79; + goto yy75; } -yy147: +yy148: rbs_skip(state); -#line 39 "ext/rbs_extension/lexer.re" +#line 38 "ext/rbs_extension/lexer.re" { return next_token(state, pDOT3); } -#line 1310 "ext/rbs_extension/lexer.c" -yy148: +#line 1307 "ext/rbs_extension/lexer.c" +yy149: rbs_skip(state); -#line 109 "ext/rbs_extension/lexer.re" +#line 108 "ext/rbs_extension/lexer.re" { return next_token(state, tDQSYMBOL); } -#line 1315 "ext/rbs_extension/lexer.c" -yy149: +#line 1312 "ext/rbs_extension/lexer.c" +yy150: rbs_skip(state); yych = peek(state); - if (yych == 'u') goto yy206; - if (yych == 'x') goto yy207; - goto yy84; -yy150: + if (yych == 'u') goto yy207; + if (yych == 'x') goto yy208; + goto yy85; +yy151: rbs_skip(state); yych = peek(state); if (yych <= ',') { if (yych <= '\f') { - if (yych <= 0x00000000) goto yy151; - if (yych <= 0x00000008) goto yy150; - if (yych >= '\v') goto yy150; + if (yych <= 0x00000000) goto yy152; + if (yych <= 0x00000008) goto yy151; + if (yych >= '\v') goto yy151; } else { if (yych <= 0x0000001F) { - if (yych >= 0x0000000E) goto yy150; + if (yych >= 0x0000000E) goto yy151; } else { - if (yych == '#') goto yy150; + if (yych == '#') goto yy151; } } } else { if (yych <= '>') { - if (yych <= '-') goto yy150; - if (yych <= '/') goto yy151; - if (yych <= '9') goto yy150; + if (yych <= '-') goto yy151; + if (yych <= '/') goto yy152; + if (yych <= '9') goto yy151; } else { if (yych <= '^') { - if (yych <= 'Z') goto yy150; + if (yych <= 'Z') goto yy151; } else { - if (yych <= 'z') goto yy150; - if (yych >= 0x0000007F) goto yy150; + if (yych <= 'z') goto yy151; + if (yych >= 0x0000007F) goto yy151; } } } -yy151: -#line 126 "ext/rbs_extension/lexer.re" - { return next_token(state, tSYMBOL); } -#line 1354 "ext/rbs_extension/lexer.c" yy152: - rbs_skip(state); - goto yy151; +#line 125 "ext/rbs_extension/lexer.re" + { return next_token(state, tSYMBOL); } +#line 1351 "ext/rbs_extension/lexer.c" yy153: rbs_skip(state); + goto yy152; yy154: -#line 110 "ext/rbs_extension/lexer.re" - { return next_token(state, tSQSYMBOL); } -#line 1363 "ext/rbs_extension/lexer.c" + rbs_skip(state); yy155: +#line 109 "ext/rbs_extension/lexer.re" + { return next_token(state, tSQSYMBOL); } +#line 1360 "ext/rbs_extension/lexer.c" +yy156: rbs_skip(state); yych = peek(state); if (yych <= '\'') { - if (yych <= 0x00000000) goto yy67; - if (yych <= '&') goto yy87; - goto yy208; + if (yych <= 0x00000000) goto yy68; + if (yych <= '&') goto yy88; + goto yy209; } else { - if (yych == '\\') goto yy155; - goto yy87; + if (yych == '\\') goto yy156; + goto yy88; } -yy156: - rbs_skip(state); - yych = peek(state); - if (yych == '>') goto yy86; - goto yy83; yy157: rbs_skip(state); yych = peek(state); - if (yych == '=') goto yy86; - goto yy83; + if (yych == '>') goto yy87; + goto yy84; yy158: + rbs_skip(state); + yych = peek(state); + if (yych == '=') goto yy87; + goto yy84; +yy159: rbs_skip(state); yych = peek(state); if (yych <= '^') { - if (yych <= '@') goto yy67; - if (yych <= 'Z') goto yy209; - goto yy67; + if (yych <= '@') goto yy68; + if (yych <= 'Z') goto yy210; + goto yy68; } else { - if (yych == '`') goto yy67; - if (yych <= 'z') goto yy209; - goto yy67; + if (yych == '`') goto yy68; + if (yych <= 'z') goto yy210; + goto yy68; } -yy159: +yy160: rbs_skip(state); yych = peek(state); if (yych <= '>') { if (yych <= '/') { - if (yych == '!') goto yy211; + if (yych == '!') goto yy212; } else { - if (yych <= '9') goto yy159; - if (yych == '=') goto yy211; + if (yych <= '9') goto yy160; + if (yych == '=') goto yy212; } } else { if (yych <= '^') { - if (yych <= '?') goto yy211; - if (yych <= '@') goto yy160; - if (yych <= 'Z') goto yy159; + if (yych <= '?') goto yy212; + if (yych <= '@') goto yy161; + if (yych <= 'Z') goto yy160; } else { - if (yych == '`') goto yy160; - if (yych <= 'z') goto yy159; + if (yych == '`') goto yy161; + if (yych <= 'z') goto yy160; } } -yy160: -#line 124 "ext/rbs_extension/lexer.re" - { return next_token(state, tSYMBOL); } -#line 1420 "ext/rbs_extension/lexer.c" yy161: - rbs_skip(state); - goto yy96; +#line 123 "ext/rbs_extension/lexer.re" + { return next_token(state, tSYMBOL); } +#line 1417 "ext/rbs_extension/lexer.c" yy162: + rbs_skip(state); + goto yy97; +yy163: rbs_skip(state); yych = peek(state); if (yych <= 'Z') { - if (yych <= '/') goto yy163; - if (yych <= '9') goto yy162; - if (yych >= 'A') goto yy162; + if (yych <= '/') goto yy164; + if (yych <= '9') goto yy163; + if (yych >= 'A') goto yy163; } else { if (yych <= '_') { - if (yych >= '_') goto yy162; + if (yych >= '_') goto yy163; } else { - if (yych <= '`') goto yy163; - if (yych <= 'z') goto yy162; + if (yych <= '`') goto yy164; + if (yych <= 'z') goto yy163; } } -yy163: -#line 138 "ext/rbs_extension/lexer.re" - { return next_token(state, tA2IDENT); } -#line 1442 "ext/rbs_extension/lexer.c" yy164: - rbs_skip(state); - yych = peek(state); - if (yych == 'o') goto yy212; - goto yy108; +#line 137 "ext/rbs_extension/lexer.re" + { return next_token(state, tA2IDENT); } +#line 1439 "ext/rbs_extension/lexer.c" yy165: rbs_skip(state); -#line 41 "ext/rbs_extension/lexer.re" - { return next_token(state, tQIDENT); } -#line 1452 "ext/rbs_extension/lexer.c" + yych = peek(state); + if (yych == 'o') goto yy213; + goto yy109; yy166: rbs_skip(state); - yych = peek(state); - if (yych == 'a') goto yy213; - goto yy52; +#line 40 "ext/rbs_extension/lexer.re" + { return next_token(state, tQIDENT); } +#line 1449 "ext/rbs_extension/lexer.c" yy167: rbs_skip(state); yych = peek(state); - if (yych == 'r') goto yy214; - goto yy52; + if (yych == 'a') goto yy214; + goto yy53; yy168: rbs_skip(state); yych = peek(state); - if (yych == 'l') goto yy215; - goto yy52; + if (yych == 'r') goto yy215; + goto yy53; yy169: + rbs_skip(state); + yych = peek(state); + if (yych == 'l') goto yy216; + goto yy53; +yy170: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy170; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy171; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy170; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy171; + if (yych <= 'z') goto yy52; } } -yy170: -#line 72 "ext/rbs_extension/lexer.re" - { return next_token(state, kBOT); } -#line 1490 "ext/rbs_extension/lexer.c" yy171: +#line 71 "ext/rbs_extension/lexer.re" + { return next_token(state, kBOT); } +#line 1487 "ext/rbs_extension/lexer.c" +yy172: rbs_skip(state); yych = peek(state); - if (yych == 's') goto yy217; - goto yy52; -yy172: + if (yych == 's') goto yy218; + goto yy53; +yy173: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy173; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy174; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy173; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy174; + if (yych <= 'z') goto yy52; } } -yy173: -#line 74 "ext/rbs_extension/lexer.re" - { return next_token(state, kDEF); } -#line 1518 "ext/rbs_extension/lexer.c" yy174: +#line 73 "ext/rbs_extension/lexer.re" + { return next_token(state, kDEF); } +#line 1515 "ext/rbs_extension/lexer.c" +yy175: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy175; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy176; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy175; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy176; + if (yych <= 'z') goto yy52; } } -yy175: -#line 75 "ext/rbs_extension/lexer.re" - { return next_token(state, kEND); } -#line 1541 "ext/rbs_extension/lexer.c" yy176: - rbs_skip(state); - yych = peek(state); - if (yych == 'e') goto yy218; - goto yy52; +#line 74 "ext/rbs_extension/lexer.re" + { return next_token(state, kEND); } +#line 1538 "ext/rbs_extension/lexer.c" yy177: rbs_skip(state); yych = peek(state); - if (yych == 's') goto yy219; - goto yy52; + if (yych == 'e') goto yy219; + goto yy53; yy178: rbs_skip(state); yych = peek(state); - if (yych == 'l') goto yy220; - goto yy52; + if (yych == 's') goto yy220; + goto yy53; yy179: rbs_skip(state); yych = peek(state); - if (yych == 't') goto yy221; - goto yy52; + if (yych == 'l') goto yy221; + goto yy53; yy180: rbs_skip(state); yych = peek(state); - if (yych == 'e') goto yy222; - goto yy52; + if (yych == 't') goto yy222; + goto yy53; yy181: rbs_skip(state); yych = peek(state); - if (yych == 'u') goto yy223; - goto yy52; + if (yych == 'e') goto yy223; + goto yy53; yy182: + rbs_skip(state); + yych = peek(state); + if (yych == 'u') goto yy224; + goto yy53; +yy183: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy183; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy184; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy183; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy184; + if (yych <= 'z') goto yy52; } } -yy183: -#line 83 "ext/rbs_extension/lexer.re" - { return next_token(state, kNIL); } -#line 1594 "ext/rbs_extension/lexer.c" yy184: +#line 82 "ext/rbs_extension/lexer.re" + { return next_token(state, kNIL); } +#line 1591 "ext/rbs_extension/lexer.c" +yy185: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy185; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy186; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy185; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy186; + if (yych <= 'z') goto yy52; } } -yy185: -#line 84 "ext/rbs_extension/lexer.re" - { return next_token(state, kOUT); } -#line 1617 "ext/rbs_extension/lexer.c" yy186: - rbs_skip(state); - yych = peek(state); - if (yych == 'p') goto yy224; - goto yy52; +#line 83 "ext/rbs_extension/lexer.re" + { return next_token(state, kOUT); } +#line 1614 "ext/rbs_extension/lexer.c" yy187: rbs_skip(state); yych = peek(state); - if (yych == 'v') goto yy225; - goto yy52; + if (yych == 'p') goto yy225; + goto yy53; yy188: rbs_skip(state); yych = peek(state); - if (yych == 'l') goto yy226; - goto yy52; + if (yych == 'v') goto yy226; + goto yy53; yy189: rbs_skip(state); yych = peek(state); - if (yych == 'f') goto yy227; - goto yy52; + if (yych == 'l') goto yy227; + goto yy53; yy190: rbs_skip(state); yych = peek(state); - if (yych == 'g') goto yy229; - goto yy52; + if (yych == 'f') goto yy228; + goto yy53; yy191: + rbs_skip(state); + yych = peek(state); + if (yych == 'g') goto yy230; + goto yy53; +yy192: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy192; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy193; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy192; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy193; + if (yych <= 'z') goto yy52; } } -yy192: -#line 90 "ext/rbs_extension/lexer.re" - { return next_token(state, kTOP); } -#line 1665 "ext/rbs_extension/lexer.c" yy193: - rbs_skip(state); - yych = peek(state); - if (yych == 'e') goto yy230; - goto yy52; +#line 89 "ext/rbs_extension/lexer.re" + { return next_token(state, kTOP); } +#line 1662 "ext/rbs_extension/lexer.c" yy194: rbs_skip(state); yych = peek(state); - if (yych == 'e') goto yy232; - goto yy52; + if (yych == 'e') goto yy231; + goto yy53; yy195: rbs_skip(state); yych = peek(state); - if (yych == 'h') goto yy234; - goto yy52; + if (yych == 'e') goto yy233; + goto yy53; yy196: rbs_skip(state); yych = peek(state); - if (yych == 'y') goto yy235; - goto yy52; + if (yych == 'h') goto yy235; + goto yy53; yy197: + rbs_skip(state); + yych = peek(state); + if (yych == 'y') goto yy236; + goto yy53; +yy198: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy198; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy199; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy198; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy199; + if (yych <= 'z') goto yy52; } } -yy198: -#line 96 "ext/rbs_extension/lexer.re" - { return next_token(state, kUSE); } -#line 1708 "ext/rbs_extension/lexer.c" yy199: +#line 95 "ext/rbs_extension/lexer.re" + { return next_token(state, kUSE); } +#line 1705 "ext/rbs_extension/lexer.c" +yy200: rbs_skip(state); yych = peek(state); - if (yych == 'd') goto yy236; - goto yy52; -yy200: + if (yych == 'd') goto yy237; + goto yy53; +yy201: rbs_skip(state); yych = peek(state); if (yych <= '@') { - if (yych <= '/') goto yy67; - if (yych <= '9') goto yy238; - goto yy67; + if (yych <= '/') goto yy68; + if (yych <= '9') goto yy239; + goto yy68; } else { - if (yych <= 'F') goto yy238; - if (yych <= '`') goto yy67; - if (yych <= 'f') goto yy238; - goto yy67; + if (yych <= 'F') goto yy239; + if (yych <= '`') goto yy68; + if (yych <= 'f') goto yy239; + goto yy68; } -yy201: - rbs_skip(state); -#line 55 "ext/rbs_extension/lexer.re" - { return next_token(state, tANNOTATION); } -#line 1731 "ext/rbs_extension/lexer.c" yy202: rbs_skip(state); -#line 58 "ext/rbs_extension/lexer.re" +#line 54 "ext/rbs_extension/lexer.re" { return next_token(state, tANNOTATION); } -#line 1736 "ext/rbs_extension/lexer.c" +#line 1728 "ext/rbs_extension/lexer.c" yy203: rbs_skip(state); -#line 56 "ext/rbs_extension/lexer.re" +#line 57 "ext/rbs_extension/lexer.re" { return next_token(state, tANNOTATION); } -#line 1741 "ext/rbs_extension/lexer.c" +#line 1733 "ext/rbs_extension/lexer.c" yy204: rbs_skip(state); -#line 54 "ext/rbs_extension/lexer.re" +#line 55 "ext/rbs_extension/lexer.re" { return next_token(state, tANNOTATION); } -#line 1746 "ext/rbs_extension/lexer.c" +#line 1738 "ext/rbs_extension/lexer.c" yy205: rbs_skip(state); -#line 57 "ext/rbs_extension/lexer.re" +#line 53 "ext/rbs_extension/lexer.re" { return next_token(state, tANNOTATION); } -#line 1751 "ext/rbs_extension/lexer.c" +#line 1743 "ext/rbs_extension/lexer.c" yy206: rbs_skip(state); +#line 56 "ext/rbs_extension/lexer.re" + { return next_token(state, tANNOTATION); } +#line 1748 "ext/rbs_extension/lexer.c" +yy207: + rbs_skip(state); yych = peek(state); if (yych <= '@') { - if (yych <= '/') goto yy67; - if (yych <= '9') goto yy239; - goto yy67; + if (yych <= '/') goto yy68; + if (yych <= '9') goto yy240; + goto yy68; } else { - if (yych <= 'F') goto yy239; - if (yych <= '`') goto yy67; - if (yych <= 'f') goto yy239; - goto yy67; + if (yych <= 'F') goto yy240; + if (yych <= '`') goto yy68; + if (yych <= 'f') goto yy240; + goto yy68; } -yy207: +yy208: rbs_skip(state); yych = peek(state); - if (yych <= '/') goto yy67; - if (yych <= '9') goto yy84; - if (yych <= '`') goto yy67; - if (yych <= 'f') goto yy84; - goto yy67; -yy208: + if (yych <= '/') goto yy68; + if (yych <= '9') goto yy85; + if (yych <= '`') goto yy68; + if (yych <= 'f') goto yy85; + goto yy68; +yy209: yyaccept = 6; rbs_skip(state); backup = *state; yych = peek(state); if (yych <= '\'') { - if (yych <= 0x00000000) goto yy154; - if (yych <= '&') goto yy87; - goto yy153; + if (yych <= 0x00000000) goto yy155; + if (yych <= '&') goto yy88; + goto yy154; } else { - if (yych == '\\') goto yy155; - goto yy87; + if (yych == '\\') goto yy156; + goto yy88; } -yy209: +yy210: rbs_skip(state); yych = peek(state); if (yych <= '>') { if (yych <= '/') { - if (yych == '!') goto yy240; + if (yych == '!') goto yy241; } else { - if (yych <= '9') goto yy209; - if (yych == '=') goto yy240; + if (yych <= '9') goto yy210; + if (yych == '=') goto yy241; } } else { if (yych <= '^') { - if (yych <= '?') goto yy240; - if (yych <= '@') goto yy210; - if (yych <= 'Z') goto yy209; + if (yych <= '?') goto yy241; + if (yych <= '@') goto yy211; + if (yych <= 'Z') goto yy210; } else { - if (yych == '`') goto yy210; - if (yych <= 'z') goto yy209; + if (yych == '`') goto yy211; + if (yych <= 'z') goto yy210; } } -yy210: -#line 125 "ext/rbs_extension/lexer.re" - { return next_token(state, tSYMBOL); } -#line 1809 "ext/rbs_extension/lexer.c" yy211: - rbs_skip(state); - goto yy160; +#line 124 "ext/rbs_extension/lexer.re" + { return next_token(state, tSYMBOL); } +#line 1806 "ext/rbs_extension/lexer.c" yy212: rbs_skip(state); - yych = peek(state); - if (yych == 'd') goto yy241; - goto yy108; + goto yy161; yy213: rbs_skip(state); yych = peek(state); - if (yych == 's') goto yy242; - goto yy52; + if (yych == 'd') goto yy242; + goto yy109; yy214: rbs_skip(state); yych = peek(state); - if (yych == '_') goto yy244; - goto yy52; + if (yych == 's') goto yy243; + goto yy53; yy215: + rbs_skip(state); + yych = peek(state); + if (yych == '_') goto yy245; + goto yy53; +yy216: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy216; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy217; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy216; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy217; + if (yych <= 'z') goto yy52; } } -yy216: -#line 71 "ext/rbs_extension/lexer.re" - { return next_token(state, kBOOL); } -#line 1850 "ext/rbs_extension/lexer.c" yy217: - rbs_skip(state); - yych = peek(state); - if (yych == 's') goto yy245; - goto yy52; +#line 70 "ext/rbs_extension/lexer.re" + { return next_token(state, kBOOL); } +#line 1847 "ext/rbs_extension/lexer.c" yy218: rbs_skip(state); yych = peek(state); - if (yych == 'n') goto yy247; - goto yy52; + if (yych == 's') goto yy246; + goto yy53; yy219: rbs_skip(state); yych = peek(state); - if (yych == 'e') goto yy248; - goto yy52; + if (yych == 'n') goto yy248; + goto yy53; yy220: rbs_skip(state); yych = peek(state); - if (yych == 'u') goto yy250; - goto yy52; + if (yych == 'e') goto yy249; + goto yy53; yy221: rbs_skip(state); yych = peek(state); - if (yych == 'a') goto yy251; - goto yy52; + if (yych == 'u') goto yy251; + goto yy53; yy222: rbs_skip(state); yych = peek(state); - if (yych == 'r') goto yy252; - goto yy52; + if (yych == 'a') goto yy252; + goto yy53; yy223: rbs_skip(state); yych = peek(state); - if (yych == 'l') goto yy253; - goto yy52; + if (yych == 'r') goto yy253; + goto yy53; yy224: rbs_skip(state); yych = peek(state); - if (yych == 'e') goto yy254; - goto yy52; + if (yych == 'l') goto yy254; + goto yy53; yy225: rbs_skip(state); yych = peek(state); - if (yych == 'a') goto yy255; - goto yy52; + if (yych == 'e') goto yy255; + goto yy53; yy226: rbs_skip(state); yych = peek(state); - if (yych == 'i') goto yy256; - goto yy52; + if (yych == 'a') goto yy256; + goto yy53; yy227: + rbs_skip(state); + yych = peek(state); + if (yych == 'i') goto yy257; + goto yy53; +yy228: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy228; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy229; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy228; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy229; + if (yych <= 'z') goto yy52; } } -yy228: -#line 88 "ext/rbs_extension/lexer.re" - { return next_token(state, kSELF); } -#line 1923 "ext/rbs_extension/lexer.c" yy229: +#line 87 "ext/rbs_extension/lexer.re" + { return next_token(state, kSELF); } +#line 1920 "ext/rbs_extension/lexer.c" +yy230: rbs_skip(state); yych = peek(state); - if (yych == 'l') goto yy257; - goto yy52; -yy230: + if (yych == 'l') goto yy258; + goto yy53; +yy231: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy231; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy232; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy231; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy232; + if (yych <= 'z') goto yy52; } } -yy231: -#line 91 "ext/rbs_extension/lexer.re" - { return next_token(state, kTRUE); } -#line 1951 "ext/rbs_extension/lexer.c" yy232: +#line 90 "ext/rbs_extension/lexer.re" + { return next_token(state, kTRUE); } +#line 1948 "ext/rbs_extension/lexer.c" +yy233: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy233; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy234; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy233; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy234; + if (yych <= 'z') goto yy52; } } -yy233: -#line 92 "ext/rbs_extension/lexer.re" - { return next_token(state, kTYPE); } -#line 1974 "ext/rbs_extension/lexer.c" yy234: - rbs_skip(state); - yych = peek(state); - if (yych == 'e') goto yy258; - goto yy52; +#line 91 "ext/rbs_extension/lexer.re" + { return next_token(state, kTYPE); } +#line 1971 "ext/rbs_extension/lexer.c" yy235: rbs_skip(state); yych = peek(state); - if (yych == 'p') goto yy259; - goto yy52; + if (yych == 'e') goto yy259; + goto yy53; yy236: + rbs_skip(state); + yych = peek(state); + if (yych == 'p') goto yy260; + goto yy53; +yy237: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy237; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy238; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy237; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy238; + if (yych <= 'z') goto yy52; } } -yy237: -#line 95 "ext/rbs_extension/lexer.re" - { return next_token(state, kVOID); } -#line 2007 "ext/rbs_extension/lexer.c" yy238: - rbs_skip(state); - yych = peek(state); - if (yych <= '@') { - if (yych <= '/') goto yy67; - if (yych <= '9') goto yy260; - goto yy67; - } else { - if (yych <= 'F') goto yy260; - if (yych <= '`') goto yy67; - if (yych <= 'f') goto yy260; - goto yy67; - } +#line 94 "ext/rbs_extension/lexer.re" + { return next_token(state, kVOID); } +#line 2004 "ext/rbs_extension/lexer.c" yy239: rbs_skip(state); yych = peek(state); if (yych <= '@') { - if (yych <= '/') goto yy67; + if (yych <= '/') goto yy68; if (yych <= '9') goto yy261; - goto yy67; + goto yy68; } else { if (yych <= 'F') goto yy261; - if (yych <= '`') goto yy67; + if (yych <= '`') goto yy68; if (yych <= 'f') goto yy261; - goto yy67; + goto yy68; } yy240: rbs_skip(state); - goto yy210; + yych = peek(state); + if (yych <= '@') { + if (yych <= '/') goto yy68; + if (yych <= '9') goto yy262; + goto yy68; + } else { + if (yych <= 'F') goto yy262; + if (yych <= '`') goto yy68; + if (yych <= 'f') goto yy262; + goto yy68; + } yy241: rbs_skip(state); - yych = peek(state); - if (yych == 'o') goto yy262; - goto yy108; + goto yy211; yy242: + rbs_skip(state); + yych = peek(state); + if (yych == 'o') goto yy263; + goto yy109; +yy243: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy243; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy244; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy243; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy244; + if (yych <= 'z') goto yy52; } } -yy243: -#line 67 "ext/rbs_extension/lexer.re" - { return next_token(state, kALIAS); } -#line 2064 "ext/rbs_extension/lexer.c" yy244: +#line 66 "ext/rbs_extension/lexer.re" + { return next_token(state, kALIAS); } +#line 2061 "ext/rbs_extension/lexer.c" +yy245: rbs_skip(state); yych = peek(state); if (yych <= 'q') { - if (yych == 'a') goto yy263; - goto yy52; + if (yych == 'a') goto yy264; + goto yy53; } else { - if (yych <= 'r') goto yy264; - if (yych == 'w') goto yy265; - goto yy52; + if (yych <= 'r') goto yy265; + if (yych == 'w') goto yy266; + goto yy53; } -yy245: +yy246: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy246; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy247; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy246; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy247; + if (yych <= 'z') goto yy52; } } -yy246: -#line 73 "ext/rbs_extension/lexer.re" - { return next_token(state, kCLASS); } -#line 2098 "ext/rbs_extension/lexer.c" yy247: +#line 72 "ext/rbs_extension/lexer.re" + { return next_token(state, kCLASS); } +#line 2095 "ext/rbs_extension/lexer.c" +yy248: rbs_skip(state); yych = peek(state); - if (yych == 'd') goto yy266; - goto yy52; -yy248: + if (yych == 'd') goto yy267; + goto yy53; +yy249: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy249; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy250; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy249; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy250; + if (yych <= 'z') goto yy52; } } -yy249: -#line 77 "ext/rbs_extension/lexer.re" - { return next_token(state, kFALSE); } -#line 2126 "ext/rbs_extension/lexer.c" yy250: - rbs_skip(state); - yych = peek(state); - if (yych == 'd') goto yy268; - goto yy52; +#line 76 "ext/rbs_extension/lexer.re" + { return next_token(state, kFALSE); } +#line 2123 "ext/rbs_extension/lexer.c" yy251: rbs_skip(state); yych = peek(state); - if (yych == 'n') goto yy269; - goto yy52; + if (yych == 'd') goto yy269; + goto yy53; yy252: rbs_skip(state); yych = peek(state); - if (yych == 'f') goto yy270; - goto yy52; + if (yych == 'n') goto yy270; + goto yy53; yy253: rbs_skip(state); yych = peek(state); - if (yych == 'e') goto yy271; - goto yy52; + if (yych == 'f') goto yy271; + goto yy53; yy254: rbs_skip(state); yych = peek(state); - if (yych == 'n') goto yy273; - goto yy52; + if (yych == 'e') goto yy272; + goto yy53; yy255: rbs_skip(state); yych = peek(state); - if (yych == 't') goto yy274; - goto yy52; + if (yych == 'n') goto yy274; + goto yy53; yy256: rbs_skip(state); yych = peek(state); - if (yych == 'c') goto yy275; - goto yy52; + if (yych == 't') goto yy275; + goto yy53; yy257: rbs_skip(state); yych = peek(state); - if (yych == 'e') goto yy277; - goto yy52; + if (yych == 'c') goto yy276; + goto yy53; yy258: rbs_skip(state); yych = peek(state); - if (yych == 'c') goto yy278; - goto yy52; + if (yych == 'e') goto yy278; + goto yy53; yy259: rbs_skip(state); yych = peek(state); - if (yych == 'e') goto yy279; - goto yy52; + if (yych == 'c') goto yy279; + goto yy53; yy260: rbs_skip(state); yych = peek(state); - if (yych <= '@') { - if (yych <= '/') goto yy67; - if (yych <= '9') goto yy65; - goto yy67; - } else { - if (yych <= 'F') goto yy65; - if (yych <= '`') goto yy67; - if (yych <= 'f') goto yy65; - goto yy67; - } + if (yych == 'e') goto yy280; + goto yy53; yy261: rbs_skip(state); yych = peek(state); if (yych <= '@') { - if (yych <= '/') goto yy67; - if (yych <= '9') goto yy280; - goto yy67; + if (yych <= '/') goto yy68; + if (yych <= '9') goto yy66; + goto yy68; } else { - if (yych <= 'F') goto yy280; - if (yych <= '`') goto yy67; - if (yych <= 'f') goto yy280; - goto yy67; + if (yych <= 'F') goto yy66; + if (yych <= '`') goto yy68; + if (yych <= 'f') goto yy66; + goto yy68; } yy262: rbs_skip(state); yych = peek(state); - if (yych == '_') goto yy281; - goto yy108; + if (yych <= '@') { + if (yych <= '/') goto yy68; + if (yych <= '9') goto yy281; + goto yy68; + } else { + if (yych <= 'F') goto yy281; + if (yych <= '`') goto yy68; + if (yych <= 'f') goto yy281; + goto yy68; + } yy263: rbs_skip(state); yych = peek(state); - if (yych == 'c') goto yy282; - goto yy52; + if (yych == '_') goto yy282; + goto yy109; yy264: rbs_skip(state); yych = peek(state); - if (yych == 'e') goto yy283; - goto yy52; + if (yych == 'c') goto yy283; + goto yy53; yy265: rbs_skip(state); yych = peek(state); - if (yych == 'r') goto yy284; - goto yy52; + if (yych == 'e') goto yy284; + goto yy53; yy266: + rbs_skip(state); + yych = peek(state); + if (yych == 'r') goto yy285; + goto yy53; +yy267: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy267; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy268; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy267; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy268; + if (yych <= 'z') goto yy52; } } -yy267: -#line 76 "ext/rbs_extension/lexer.re" - { return next_token(state, kEXTEND); } -#line 2245 "ext/rbs_extension/lexer.c" yy268: - rbs_skip(state); - yych = peek(state); - if (yych == 'e') goto yy285; - goto yy52; +#line 75 "ext/rbs_extension/lexer.re" + { return next_token(state, kEXTEND); } +#line 2242 "ext/rbs_extension/lexer.c" yy269: rbs_skip(state); yych = peek(state); - if (yych == 'c') goto yy287; - goto yy52; + if (yych == 'e') goto yy286; + goto yy53; yy270: rbs_skip(state); yych = peek(state); - if (yych == 'a') goto yy288; - goto yy52; + if (yych == 'c') goto yy288; + goto yy53; yy271: + rbs_skip(state); + yych = peek(state); + if (yych == 'a') goto yy289; + goto yy53; +yy272: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy272; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy273; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy272; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy273; + if (yych <= 'z') goto yy52; } } -yy272: -#line 82 "ext/rbs_extension/lexer.re" - { return next_token(state, kMODULE); } -#line 2283 "ext/rbs_extension/lexer.c" yy273: - rbs_skip(state); - yych = peek(state); - if (yych == 'd') goto yy289; - goto yy52; +#line 81 "ext/rbs_extension/lexer.re" + { return next_token(state, kMODULE); } +#line 2280 "ext/rbs_extension/lexer.c" yy274: rbs_skip(state); yych = peek(state); - if (yych == 'e') goto yy291; - goto yy52; + if (yych == 'd') goto yy290; + goto yy53; yy275: + rbs_skip(state); + yych = peek(state); + if (yych == 'e') goto yy292; + goto yy53; +yy276: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy276; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy277; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy276; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy277; + if (yych <= 'z') goto yy52; } } -yy276: -#line 87 "ext/rbs_extension/lexer.re" - { return next_token(state, kPUBLIC); } -#line 2316 "ext/rbs_extension/lexer.c" yy277: - rbs_skip(state); - yych = peek(state); - if (yych == 't') goto yy293; - goto yy52; +#line 86 "ext/rbs_extension/lexer.re" + { return next_token(state, kPUBLIC); } +#line 2313 "ext/rbs_extension/lexer.c" yy278: rbs_skip(state); yych = peek(state); - if (yych == 'k') goto yy294; - goto yy52; + if (yych == 't') goto yy294; + goto yy53; yy279: rbs_skip(state); yych = peek(state); - if (yych == 'd') goto yy295; - goto yy52; + if (yych == 'k') goto yy295; + goto yy53; yy280: rbs_skip(state); yych = peek(state); - if (yych <= '@') { - if (yych <= '/') goto yy67; - if (yych <= '9') goto yy84; - goto yy67; - } else { - if (yych <= 'F') goto yy84; - if (yych <= '`') goto yy67; - if (yych <= 'f') goto yy84; - goto yy67; - } + if (yych == 'd') goto yy296; + goto yy53; yy281: rbs_skip(state); yych = peek(state); - if (yych == '_') goto yy297; - goto yy108; + if (yych <= '@') { + if (yych <= '/') goto yy68; + if (yych <= '9') goto yy85; + goto yy68; + } else { + if (yych <= 'F') goto yy85; + if (yych <= '`') goto yy68; + if (yych <= 'f') goto yy85; + goto yy68; + } yy282: rbs_skip(state); yych = peek(state); - if (yych == 'c') goto yy299; - goto yy52; + if (yych == '_') goto yy298; + goto yy109; yy283: rbs_skip(state); yych = peek(state); - if (yych == 'a') goto yy300; - goto yy52; + if (yych == 'c') goto yy300; + goto yy53; yy284: rbs_skip(state); yych = peek(state); - if (yych == 'i') goto yy301; - goto yy52; + if (yych == 'a') goto yy301; + goto yy53; yy285: + rbs_skip(state); + yych = peek(state); + if (yych == 'i') goto yy302; + goto yy53; +yy286: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy286; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy287; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy286; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy287; + if (yych <= 'z') goto yy52; } } -yy286: -#line 79 "ext/rbs_extension/lexer.re" - { return next_token(state, kINCLUDE); } -#line 2387 "ext/rbs_extension/lexer.c" yy287: - rbs_skip(state); - yych = peek(state); - if (yych == 'e') goto yy302; - goto yy52; +#line 78 "ext/rbs_extension/lexer.re" + { return next_token(state, kINCLUDE); } +#line 2384 "ext/rbs_extension/lexer.c" yy288: rbs_skip(state); yych = peek(state); - if (yych == 'c') goto yy304; - goto yy52; + if (yych == 'e') goto yy303; + goto yy53; yy289: + rbs_skip(state); + yych = peek(state); + if (yych == 'c') goto yy305; + goto yy53; +yy290: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy290; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy291; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy290; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy291; + if (yych <= 'z') goto yy52; } } -yy290: -#line 85 "ext/rbs_extension/lexer.re" - { return next_token(state, kPREPEND); } -#line 2420 "ext/rbs_extension/lexer.c" yy291: +#line 84 "ext/rbs_extension/lexer.re" + { return next_token(state, kPREPEND); } +#line 2417 "ext/rbs_extension/lexer.c" +yy292: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy292; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy293; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy292; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy293; + if (yych <= 'z') goto yy52; } } -yy292: -#line 86 "ext/rbs_extension/lexer.re" - { return next_token(state, kPRIVATE); } -#line 2443 "ext/rbs_extension/lexer.c" yy293: - rbs_skip(state); - yych = peek(state); - if (yych == 'o') goto yy305; - goto yy52; +#line 85 "ext/rbs_extension/lexer.re" + { return next_token(state, kPRIVATE); } +#line 2440 "ext/rbs_extension/lexer.c" yy294: rbs_skip(state); yych = peek(state); - if (yych == 'e') goto yy306; - goto yy52; + if (yych == 'o') goto yy306; + goto yy53; yy295: + rbs_skip(state); + yych = peek(state); + if (yych == 'e') goto yy307; + goto yy53; +yy296: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy296; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy297; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy296; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy297; + if (yych <= 'z') goto yy52; } } -yy296: -#line 94 "ext/rbs_extension/lexer.re" - { return next_token(state, kUNTYPED); } -#line 2476 "ext/rbs_extension/lexer.c" yy297: +#line 93 "ext/rbs_extension/lexer.re" + { return next_token(state, kUNTYPED); } +#line 2473 "ext/rbs_extension/lexer.c" +yy298: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy107; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy108; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy298; - if (yych <= 'Z') goto yy107; + if (yych <= '@') goto yy299; + if (yych <= 'Z') goto yy108; } else { - if (yych == '`') goto yy298; - if (yych <= 'z') goto yy107; + if (yych == '`') goto yy299; + if (yych <= 'z') goto yy108; } } -yy298: -#line 98 "ext/rbs_extension/lexer.re" - { return next_token(state, k__TODO__); } -#line 2499 "ext/rbs_extension/lexer.c" yy299: - rbs_skip(state); - yych = peek(state); - if (yych == 'e') goto yy307; - goto yy52; +#line 97 "ext/rbs_extension/lexer.re" + { return next_token(state, k__TODO__); } +#line 2496 "ext/rbs_extension/lexer.c" yy300: rbs_skip(state); yych = peek(state); - if (yych == 'd') goto yy308; - goto yy52; + if (yych == 'e') goto yy308; + goto yy53; yy301: rbs_skip(state); yych = peek(state); - if (yych == 't') goto yy309; - goto yy52; + if (yych == 'd') goto yy309; + goto yy53; yy302: + rbs_skip(state); + yych = peek(state); + if (yych == 't') goto yy310; + goto yy53; +yy303: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy303; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy304; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy303; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy304; + if (yych <= 'z') goto yy52; } } -yy303: -#line 80 "ext/rbs_extension/lexer.re" - { return next_token(state, kINSTANCE); } -#line 2537 "ext/rbs_extension/lexer.c" yy304: - rbs_skip(state); - yych = peek(state); - if (yych == 'e') goto yy310; - goto yy52; +#line 79 "ext/rbs_extension/lexer.re" + { return next_token(state, kINSTANCE); } +#line 2534 "ext/rbs_extension/lexer.c" yy305: rbs_skip(state); yych = peek(state); - if (yych == 'n') goto yy312; - goto yy52; + if (yych == 'e') goto yy311; + goto yy53; yy306: rbs_skip(state); yych = peek(state); - if (yych == 'd') goto yy314; - goto yy52; + if (yych == 'n') goto yy313; + goto yy53; yy307: rbs_skip(state); yych = peek(state); - if (yych == 's') goto yy316; - goto yy52; + if (yych == 'd') goto yy315; + goto yy53; yy308: rbs_skip(state); yych = peek(state); - if (yych == 'e') goto yy317; - goto yy52; + if (yych == 's') goto yy317; + goto yy53; yy309: rbs_skip(state); yych = peek(state); if (yych == 'e') goto yy318; - goto yy52; + goto yy53; yy310: + rbs_skip(state); + yych = peek(state); + if (yych == 'e') goto yy319; + goto yy53; +yy311: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy311; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy312; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy311; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy312; + if (yych <= 'z') goto yy52; } } -yy311: -#line 81 "ext/rbs_extension/lexer.re" - { return next_token(state, kINTERFACE); } -#line 2590 "ext/rbs_extension/lexer.c" yy312: +#line 80 "ext/rbs_extension/lexer.re" + { return next_token(state, kINTERFACE); } +#line 2587 "ext/rbs_extension/lexer.c" +yy313: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy313; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy314; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy313; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy314; + if (yych <= 'z') goto yy52; } } -yy313: -#line 89 "ext/rbs_extension/lexer.re" - { return next_token(state, kSINGLETON); } -#line 2613 "ext/rbs_extension/lexer.c" yy314: +#line 88 "ext/rbs_extension/lexer.re" + { return next_token(state, kSINGLETON); } +#line 2610 "ext/rbs_extension/lexer.c" +yy315: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy315; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy316; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy315; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy316; + if (yych <= 'z') goto yy52; } } -yy315: -#line 93 "ext/rbs_extension/lexer.re" - { return next_token(state, kUNCHECKED); } -#line 2636 "ext/rbs_extension/lexer.c" yy316: - rbs_skip(state); - yych = peek(state); - if (yych == 's') goto yy319; - goto yy52; +#line 92 "ext/rbs_extension/lexer.re" + { return next_token(state, kUNCHECKED); } +#line 2633 "ext/rbs_extension/lexer.c" yy317: rbs_skip(state); yych = peek(state); - if (yych == 'r') goto yy320; - goto yy52; + if (yych == 's') goto yy320; + goto yy53; yy318: rbs_skip(state); yych = peek(state); - if (yych == 'r') goto yy322; - goto yy52; + if (yych == 'r') goto yy321; + goto yy53; yy319: rbs_skip(state); yych = peek(state); - if (yych == 'o') goto yy324; - goto yy52; + if (yych == 'r') goto yy323; + goto yy53; yy320: + rbs_skip(state); + yych = peek(state); + if (yych == 'o') goto yy325; + goto yy53; +yy321: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy321; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy322; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy321; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy322; + if (yych <= 'z') goto yy52; } } -yy321: -#line 69 "ext/rbs_extension/lexer.re" - { return next_token(state, kATTRREADER); } -#line 2679 "ext/rbs_extension/lexer.c" yy322: +#line 68 "ext/rbs_extension/lexer.re" + { return next_token(state, kATTRREADER); } +#line 2676 "ext/rbs_extension/lexer.c" +yy323: rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy323; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy324; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy323; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy324; + if (yych <= 'z') goto yy52; } } -yy323: -#line 70 "ext/rbs_extension/lexer.re" - { return next_token(state, kATTRWRITER); } -#line 2702 "ext/rbs_extension/lexer.c" yy324: +#line 69 "ext/rbs_extension/lexer.re" + { return next_token(state, kATTRWRITER); } +#line 2699 "ext/rbs_extension/lexer.c" +yy325: rbs_skip(state); yych = peek(state); - if (yych != 'r') goto yy52; + if (yych != 'r') goto yy53; rbs_skip(state); yych = peek(state); if (yych <= '=') { if (yych <= '/') { - if (yych == '!') goto yy104; + if (yych == '!') goto yy105; } else { - if (yych <= '9') goto yy51; - if (yych >= '=') goto yy105; + if (yych <= '9') goto yy52; + if (yych >= '=') goto yy106; } } else { if (yych <= '^') { - if (yych <= '@') goto yy325; - if (yych <= 'Z') goto yy51; + if (yych <= '@') goto yy326; + if (yych <= 'Z') goto yy52; } else { - if (yych == '`') goto yy325; - if (yych <= 'z') goto yy51; + if (yych == '`') goto yy326; + if (yych <= 'z') goto yy52; } } -yy325: -#line 68 "ext/rbs_extension/lexer.re" +yy326: +#line 67 "ext/rbs_extension/lexer.re" { return next_token(state, kATTRACCESSOR); } -#line 2728 "ext/rbs_extension/lexer.c" +#line 2725 "ext/rbs_extension/lexer.c" } -#line 147 "ext/rbs_extension/lexer.re" +#line 146 "ext/rbs_extension/lexer.re" } diff --git a/ext/rbs_extension/lexer.h b/ext/rbs_extension/lexer.h index 9e4228d81..c426647f2 100644 --- a/ext/rbs_extension/lexer.h +++ b/ext/rbs_extension/lexer.h @@ -78,6 +78,8 @@ enum TokenType { tCOMMENT, /* Comment */ tLINECOMMENT, /* Comment of all line */ + tTRIVIA, /* Trivia tokens -- space and new line */ + tDQSTRING, /* Double quoted string */ tSQSTRING, /* Single quoted string */ tINTEGER, /* Integer */ diff --git a/ext/rbs_extension/lexer.re b/ext/rbs_extension/lexer.re index 1547f96f6..cfd84f8e8 100644 --- a/ext/rbs_extension/lexer.re +++ b/ext/rbs_extension/lexer.re @@ -3,7 +3,6 @@ token rbsparser_next_token(lexstate *state) { lexstate backup; -start: backup = *state; /*!re2c @@ -139,9 +138,9 @@ start: "$" global_ident { return next_token(state, tGIDENT); } - skip = [ \t\n\r]+; + skip = ([ \t]+|[\r\n]); - skip { state->start = state->current; goto start; } + skip { return next_token(state, tTRIVIA); } "\x00" { return next_token(state, pEOF); } * { return next_token(state, ErrorToken); } */ diff --git a/ext/rbs_extension/lexstate.c b/ext/rbs_extension/lexstate.c index 0f7c2f454..b6cb95a07 100644 --- a/ext/rbs_extension/lexstate.c +++ b/ext/rbs_extension/lexstate.c @@ -77,6 +77,8 @@ static const char *RBS_TOKENTYPE_NAMES[] = { "tCOMMENT", "tLINECOMMENT", + "tTRIVIA", + "tDQSTRING", /* Double quoted string */ "tSQSTRING", /* Single quoted string */ "tINTEGER", /* Integer */ @@ -120,7 +122,9 @@ token next_token(lexstate *state, enum TokenType type) { t.range.start = state->start; t.range.end = state->current; state->start = state->current; - state->first_token_of_line = false; + if (type != tTRIVIA) { + state->first_token_of_line = false; + } return t; } diff --git a/ext/rbs_extension/parserstate.c b/ext/rbs_extension/parserstate.c index 5e300a373..58e4b0206 100644 --- a/ext/rbs_extension/parserstate.c +++ b/ext/rbs_extension/parserstate.c @@ -109,6 +109,8 @@ void parser_advance(parserstate *state) { // skip } else if (state->next_token3.type == tLINECOMMENT) { insert_comment_line(state, state->next_token3); + } else if (state->next_token3.type == tTRIVIA) { + //skip } else { break; } diff --git a/test/rbs/parser_test.rb b/test/rbs/parser_test.rb index b1b9b3e04..e0e217e49 100644 --- a/test/rbs/parser_test.rb +++ b/test/rbs/parser_test.rb @@ -775,18 +775,27 @@ class Foo[T < Integer] < Bar # Comment end RBS tokens = RBS::Parser._lex(buffer(content), content.length) - assert_equal [:tLINECOMMENT, '# LineComment', 0...13], tokens[0].then { |t| [t[0], t[1].source, t[1].range] } - assert_equal [:kCLASS, 'class', 14...19], tokens[1].then { |t| [t[0], t[1].source, t[1].range] } - assert_equal [:tUIDENT, 'Foo', 20...23], tokens[2].then { |t| [t[0], t[1].source, t[1].range] } - assert_equal [:pLBRACKET, '[', 23...24], tokens[3].then { |t| [t[0], t[1].source, t[1].range] } - assert_equal [:tUIDENT, 'T', 24...25], tokens[4].then { |t| [t[0], t[1].source, t[1].range] } - assert_equal [:pLT, '<', 26...27], tokens[5].then { |t| [t[0], t[1].source, t[1].range] } - assert_equal [:tUIDENT, 'Integer', 28...35], tokens[6].then { |t| [t[0], t[1].source, t[1].range] } - assert_equal [:pRBRACKET, ']', 35...36], tokens[7].then { |t| [t[0], t[1].source, t[1].range] } - assert_equal [:pLT, '<', 37...38], tokens[8].then { |t| [t[0], t[1].source, t[1].range] } - assert_equal [:tUIDENT, 'Bar', 39...42], tokens[9].then { |t| [t[0], t[1].source, t[1].range] } - assert_equal [:tCOMMENT, '# Comment', 43...52], tokens[10].then { |t| [t[0], t[1].source, t[1].range] } - assert_equal [:kEND, 'end', 53...56], tokens[11].then { |t| [t[0], t[1].source, t[1].range] } - assert_equal [:pEOF, '', 57...58], tokens[12].then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tLINECOMMENT, '# LineComment', 0...13], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tTRIVIA, "\n", 13...14], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:kCLASS, 'class', 14...19], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tTRIVIA, " ", 19...20], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tUIDENT, 'Foo', 20...23], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:pLBRACKET, '[', 23...24], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tUIDENT, 'T', 24...25], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tTRIVIA, " ", 25...26], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:pLT, '<', 26...27], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tTRIVIA, " ", 27...28], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tUIDENT, 'Integer', 28...35], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:pRBRACKET, ']', 35...36], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tTRIVIA, " ", 36...37], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:pLT, '<', 37...38], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tTRIVIA, " ", 38...39], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tUIDENT, 'Bar', 39...42], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tTRIVIA, " ", 42...43], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tCOMMENT, '# Comment', 43...52], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tTRIVIA, "\n", 52...53], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:kEND, 'end', 53...56], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:tTRIVIA, "\n", 56...57], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } + assert_equal [:pEOF, '', 57...58], tokens.shift.then { |t| [t[0], t[1].source, t[1].range] } end end