/* Generated by re2c 1.3 on Wed Jul 15 00:23:13 2020 */ #line 1 "ext/yylex.re" /* -*- mode: c -*- */ /* Given to re2c to generate the lexer `yylex'. * * Based on c.re in the exmaples distributed with re2c. */ #include #include #include "cast.h" /* * ------------------------------------------------------------------- * Helpers * ------------------------------------------------------------------- */ #define new_func(Foo) \ VALUE cast_new_##Foo##_at(long pos) { \ VALUE c##Foo; \ c##Foo = rb_const_get(cast_mC, rb_intern(#Foo)); \ return rb_funcall2(c##Foo, rb_intern("new"), 0, NULL); \ } #define set_func(Foo, field) \ VALUE cast_##Foo##_set_##field(VALUE self, VALUE value) { \ return rb_funcall2(self, rb_intern(#field "="), 1, &value); \ } new_func(IntLiteral); set_func(IntLiteral, format); set_func(IntLiteral, val); set_func(IntLiteral, suffix); new_func(FloatLiteral); set_func(FloatLiteral, format); set_func(FloatLiteral, val); set_func(FloatLiteral, exponent); set_func(FloatLiteral, suffix); new_func(CharLiteral); set_func(CharLiteral, prefix); set_func(CharLiteral, val); new_func(StringLiteral); set_func(StringLiteral, prefix); set_func(StringLiteral, val); /* * ------------------------------------------------------------------- * yylex * ------------------------------------------------------------------- */ #define BSIZE 8192 #define YYLTYPE VALUE #define YYCTYPE char #define YYCURSOR cursor #define YYLIMIT p->lim #define YYMARKER p->ptr #define YYFILL(n) {} #define RET(sym) {p->cur = cursor; rb_ary_store(p->token, 0, sym); rb_ary_store(p->token, 1, sym ); return;} #define RETVALUE(sym) {p->cur = cursor; rb_ary_store(p->token, 0, sym); rb_ary_store(p->token, 1, value); return;} /* Raise a ParseError. `s' is the format string for the exception * message, which must contain exactly one '%s', which is replaced by * the string delimited by `b' and `e'. */ static void error1(char *s, char *b, char *e) { char *str; str = ALLOCA_N(char, e - b + 1); memcpy(str, b, e-b); str[e-b] = '\0'; rb_raise(cast_eParseError, s, str); } /* `token' is assumed to be a two element array, which is filled in. */ void yylex(VALUE self, cast_Parser *p) { char *cursor = p->cur; char *cp, *ep; VALUE value; std: p->tok = cursor; #line 96 "ext/yylex.re" #line 90 "" { YYCTYPE yych; unsigned int yyaccept = 0; if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11); yych = *YYCURSOR; switch (yych) { case 0x00: goto yy2; case '\t': case '\v': case '\f': case ' ': goto yy6; case '\n': goto yy9; case '!': goto yy11; case '"': goto yy13; case '%': goto yy14; case '&': goto yy16; case '\'': goto yy18; case '(': goto yy19; case ')': goto yy21; case '*': goto yy23; case '+': goto yy25; case ',': goto yy27; case '-': goto yy29; case '.': goto yy31; case '/': goto yy33; case '0': goto yy35; case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto yy37; case ':': goto yy39; case ';': goto yy41; case '<': goto yy43; case '=': goto yy45; case '>': goto yy47; case '?': goto yy49; case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case 'h': case 'j': case 'k': case 'm': case 'n': case 'o': case 'p': case 'q': case 'x': case 'y': case 'z': goto yy51; case '[': goto yy53; case ']': goto yy55; case '^': goto yy57; case '_': goto yy59; case 'a': goto yy60; case 'b': goto yy61; case 'c': goto yy62; case 'd': goto yy63; case 'e': goto yy64; case 'f': goto yy65; case 'g': goto yy66; case 'i': goto yy67; case 'l': goto yy68; case 'r': goto yy69; case 's': goto yy70; case 't': goto yy71; case 'u': goto yy72; case 'v': goto yy73; case 'w': goto yy74; case '{': goto yy75; case '|': goto yy77; case '}': goto yy79; case '~': goto yy81; default: goto yy4; } yy2: ++YYCURSOR; #line 286 "ext/yylex.re" { if(cursor == p->eof) RET(Qnil); goto std; } #line 201 "" yy4: ++YYCURSOR; yy5: #line 298 "ext/yylex.re" { rb_raise(cast_eParseError, "%ld: unexpected character: %c (ASCII %d)\n", p->lineno, *p->tok, (int)*p->tok); goto std; } #line 210 "" yy6: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; switch (yych) { case '\t': case '\v': case '\f': case ' ': goto yy6; default: goto yy8; } yy8: #line 283 "ext/yylex.re" { goto std; } #line 225 "" yy9: ++YYCURSOR; #line 292 "ext/yylex.re" { p->pos = cursor; ++p->lineno; goto std; } #line 233 "" yy11: yych = *++YYCURSOR; switch (yych) { case '=': goto yy83; default: goto yy12; } yy12: #line 265 "ext/yylex.re" { RET(cast_sym_BANG); } #line 243 "" yy13: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); goto yy86; yy14: yych = *++YYCURSOR; switch (yych) { case '=': goto yy91; case '>': goto yy93; default: goto yy15; } yy15: #line 271 "ext/yylex.re" { RET(cast_sym_MOD); } #line 258 "" yy16: yych = *++YYCURSOR; switch (yych) { case '&': goto yy95; case '=': goto yy97; default: goto yy17; } yy17: #line 264 "ext/yylex.re" { RET(cast_sym_AND); } #line 269 "" yy18: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '\'': goto yy5; default: goto yy100; } yy19: ++YYCURSOR; #line 259 "ext/yylex.re" { RET(cast_sym_LPAREN); } #line 281 "" yy21: ++YYCURSOR; #line 260 "ext/yylex.re" { RET(cast_sym_RPAREN); } #line 286 "" yy23: yych = *++YYCURSOR; switch (yych) { case '=': goto yy102; default: goto yy24; } yy24: #line 269 "ext/yylex.re" { RET(cast_sym_MUL); } #line 296 "" yy25: yych = *++YYCURSOR; switch (yych) { case '+': goto yy104; case '=': goto yy106; default: goto yy26; } yy26: #line 268 "ext/yylex.re" { RET(cast_sym_ADD); } #line 307 "" yy27: ++YYCURSOR; #line 256 "ext/yylex.re" { RET(cast_sym_COMMA); } #line 312 "" yy29: yych = *++YYCURSOR; switch (yych) { case '-': goto yy108; case '=': goto yy110; case '>': goto yy112; default: goto yy30; } yy30: #line 267 "ext/yylex.re" { RET(cast_sym_SUB); } #line 324 "" yy31: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '.': goto yy114; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto yy115; default: goto yy32; } yy32: #line 263 "ext/yylex.re" { RET(cast_sym_DOT); } #line 345 "" yy33: yych = *++YYCURSOR; switch (yych) { case '*': goto yy118; case '/': goto yy120; case '=': goto yy122; default: goto yy34; } yy34: #line 270 "ext/yylex.re" { RET(cast_sym_DIV); } #line 357 "" yy35: yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '.': goto yy115; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto yy124; case 'E': case 'e': goto yy127; case 'L': goto yy128; case 'U': case 'u': goto yy129; case 'X': case 'x': goto yy130; case 'l': goto yy131; default: goto yy36; } yy36: #line 168 "ext/yylex.re" { value = cast_new_IntLiteral_at(p->lineno); cast_IntLiteral_set_format(value, ID2SYM(rb_intern("dec"))); cast_IntLiteral_set_val(value, LONG2NUM(strtol(p->tok, (char **)&cp, 10))); if (cp < cursor) cast_IntLiteral_set_suffix(value, rb_str_new(cp, cursor - cp)); RETVALUE(cast_sym_ICON); } #line 393 "" yy37: yyaccept = 2; YYMARKER = ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); yych = *YYCURSOR; switch (yych) { case '.': goto yy115; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto yy37; case 'E': case 'e': goto yy127; case 'L': goto yy128; case 'U': case 'u': goto yy129; case 'l': goto yy131; default: goto yy36; } yy39: yych = *++YYCURSOR; switch (yych) { case '>': goto yy132; default: goto yy40; } yy40: #line 257 "ext/yylex.re" { RET(cast_sym_COLON); } #line 428 "" yy41: ++YYCURSOR; #line 253 "ext/yylex.re" { RET(cast_sym_SEMICOLON); } #line 433 "" yy43: yych = *++YYCURSOR; switch (yych) { case '%': goto yy134; case ':': goto yy136; case '<': goto yy138; case '=': goto yy140; default: goto yy44; } yy44: #line 272 "ext/yylex.re" { RET(cast_sym_LT); } #line 446 "" yy45: yych = *++YYCURSOR; switch (yych) { case '=': goto yy142; default: goto yy46; } yy46: #line 258 "ext/yylex.re" { RET(cast_sym_EQ); } #line 456 "" yy47: yych = *++YYCURSOR; switch (yych) { case '=': goto yy144; case '>': goto yy146; default: goto yy48; } yy48: #line 273 "ext/yylex.re" { RET(cast_sym_GT); } #line 467 "" yy49: ++YYCURSOR; #line 276 "ext/yylex.re" { RET(cast_sym_QUESTION); } #line 472 "" yy51: yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '"': goto yy85; case '\'': goto yy148; default: goto yy150; } yy52: #line 139 "ext/yylex.re" { value = rb_str_new(p->tok, cursor - p->tok); if (rb_funcall2(rb_funcall2(self, rb_intern("type_names"), 0, NULL), rb_intern("include?"), 1, &value) == Qtrue) { RETVALUE(cast_sym_TYPENAME); } else { RETVALUE(cast_sym_ID); } } #line 492 "" yy53: ++YYCURSOR; #line 261 "ext/yylex.re" { RET(cast_sym_LBRACKET); } #line 497 "" yy55: ++YYCURSOR; #line 262 "ext/yylex.re" { RET(cast_sym_RBRACKET); } #line 502 "" yy57: yych = *++YYCURSOR; switch (yych) { case '=': goto yy151; default: goto yy58; } yy58: #line 274 "ext/yylex.re" { RET(cast_sym_XOR); } #line 512 "" yy59: yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '"': goto yy85; case '\'': goto yy148; case 'B': goto yy153; case 'C': goto yy154; case 'I': goto yy155; default: goto yy150; } yy60: yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '"': goto yy85; case '\'': goto yy148; case 'u': goto yy156; default: goto yy150; } yy61: yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '"': goto yy85; case '\'': goto yy148; case 'r': goto yy157; default: goto yy150; } yy62: yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '"': goto yy85; case '\'': goto yy148; case 'a': goto yy158; case 'h': goto yy159; case 'o': goto yy160; default: goto yy150; } yy63: yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '"': goto yy85; case '\'': goto yy148; case 'e': goto yy161; case 'o': goto yy162; default: goto yy150; } yy64: yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '"': goto yy85; case '\'': goto yy148; case 'l': goto yy164; case 'n': goto yy165; case 'x': goto yy166; default: goto yy150; } yy65: yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '"': goto yy85; case '\'': goto yy148; case 'l': goto yy167; case 'o': goto yy168; default: goto yy150; } yy66: yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '"': goto yy85; case '\'': goto yy148; case 'o': goto yy169; default: goto yy150; } yy67: yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '"': goto yy85; case '\'': goto yy148; case 'f': goto yy170; case 'n': goto yy172; default: goto yy150; } yy68: yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '"': goto yy85; case '\'': goto yy148; case 'o': goto yy173; default: goto yy150; } yy69: yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '"': goto yy85; case '\'': goto yy148; case 'e': goto yy174; default: goto yy150; } yy70: yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '"': goto yy85; case '\'': goto yy148; case 'h': goto yy175; case 'i': goto yy176; case 't': goto yy177; case 'w': goto yy178; default: goto yy150; } yy71: yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '"': goto yy85; case '\'': goto yy148; case 'y': goto yy179; default: goto yy150; } yy72: yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '"': goto yy85; case '\'': goto yy148; case 'n': goto yy180; default: goto yy150; } yy73: yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '"': goto yy85; case '\'': goto yy148; case 'o': goto yy181; default: goto yy150; } yy74: yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { case '"': goto yy85; case '\'': goto yy148; case 'h': goto yy182; default: goto yy150; } yy75: ++YYCURSOR; #line 254 "ext/yylex.re" { RET(cast_sym_LBRACE); } #line 673 "" yy77: yych = *++YYCURSOR; switch (yych) { case '=': goto yy183; case '|': goto yy185; default: goto yy78; } yy78: #line 275 "ext/yylex.re" { RET(cast_sym_OR); } #line 684 "" yy79: ++YYCURSOR; #line 255 "ext/yylex.re" { RET(cast_sym_RBRACE); } #line 689 "" yy81: ++YYCURSOR; #line 266 "ext/yylex.re" { RET(cast_sym_NOT); } #line 694 "" yy83: ++YYCURSOR; #line 252 "ext/yylex.re" { RET(cast_sym_NEQ); } #line 699 "" yy85: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; yy86: switch (yych) { case '"': goto yy87; case '\\': goto yy89; default: goto yy85; } yy87: ++YYCURSOR; #line 219 "ext/yylex.re" { value = cast_new_StringLiteral_at(p->lineno); if (p->tok[0] == '"') { cp = p->tok; } else { cast_StringLiteral_set_prefix(value, rb_str_new(p->tok, 1)); cp = p->tok + 1; } cast_StringLiteral_set_val(value, rb_str_new(cp + 1, cursor - cp - 2)); RETVALUE(cast_sym_SCON); } #line 724 "" yy89: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; switch (yych) { case '"': case '\'': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '?': case '\\': case 'a': case 'b': case 'f': case 'n': case 'r': case 't': case 'v': goto yy85; case 'x': goto yy187; default: goto yy90; } yy90: YYCURSOR = YYMARKER; switch (yyaccept) { case 0: goto yy5; case 1: goto yy32; case 2: goto yy36; case 3: goto yy52; case 4: goto yy117; case 5: goto yy126; default: goto yy207; } yy91: ++YYCURSOR; #line 238 "ext/yylex.re" { RET(cast_sym_MODEQ); } #line 767 "" yy93: ++YYCURSOR; #line 281 "ext/yylex.re" { RET(cast_sym_RBRACE); } #line 772 "" yy95: ++YYCURSOR; #line 247 "ext/yylex.re" { RET(cast_sym_ANDAND); } #line 777 "" yy97: ++YYCURSOR; #line 239 "ext/yylex.re" { RET(cast_sym_ANDEQ); } #line 782 "" yy99: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; yy100: switch (yych) { case '\'': goto yy188; case '\\': goto yy101; default: goto yy99; } yy101: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; switch (yych) { case '"': case '\'': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '?': case '\\': case 'a': case 'b': case 'f': case 'n': case 'r': case 't': case 'v': goto yy99; case 'x': goto yy190; default: goto yy90; } yy102: ++YYCURSOR; #line 236 "ext/yylex.re" { RET(cast_sym_MULEQ); } #line 824 "" yy104: ++YYCURSOR; #line 244 "ext/yylex.re" { RET(cast_sym_INC); } #line 829 "" yy106: ++YYCURSOR; #line 234 "ext/yylex.re" { RET(cast_sym_ADDEQ); } #line 834 "" yy108: ++YYCURSOR; #line 245 "ext/yylex.re" { RET(cast_sym_DEC); } #line 839 "" yy110: ++YYCURSOR; #line 235 "ext/yylex.re" { RET(cast_sym_SUBEQ); } #line 844 "" yy112: ++YYCURSOR; #line 246 "ext/yylex.re" { RET(cast_sym_ARROW); } #line 849 "" yy114: yych = *++YYCURSOR; switch (yych) { case '.': goto yy191; default: goto yy90; } yy115: yyaccept = 4; YYMARKER = ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); yych = *YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto yy115; case 'E': case 'e': goto yy127; case 'F': case 'L': case 'f': case 'l': goto yy193; default: goto yy117; } yy117: #line 177 "ext/yylex.re" { value = cast_new_FloatLiteral_at(p->lineno); cast_FloatLiteral_set_format(value, ID2SYM(rb_intern("dec"))); cast_FloatLiteral_set_val(value, rb_float_new(strtod(p->tok, (char **)&cp))); if (cp < cursor) cast_FloatLiteral_set_suffix(value, rb_str_new(cp, cursor - cp)); ep = (char *)memchr(p->tok, 'e', cp - p->tok); if (!ep) ep = (char *)memchr(p->tok, 'E', cp - p->tok); if (ep) cast_FloatLiteral_set_exponent(value, LONG2NUM(strtod(ep + 1, NULL))); RETVALUE(cast_sym_FCON); } #line 897 "" yy118: ++YYCURSOR; #line 98 "ext/yylex.re" { goto comment; } #line 902 "" yy120: ++YYCURSOR; #line 99 "ext/yylex.re" { goto comment2; } #line 907 "" yy122: ++YYCURSOR; #line 237 "ext/yylex.re" { RET(cast_sym_DIVEQ); } #line 912 "" yy124: yyaccept = 5; YYMARKER = ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); yych = *YYCURSOR; switch (yych) { case '.': goto yy115; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto yy124; case 'E': case 'e': goto yy127; case 'L': goto yy194; case 'U': case 'u': goto yy195; case 'l': goto yy196; default: goto yy126; } yy126: #line 157 "ext/yylex.re" { value = cast_new_IntLiteral_at(p->lineno); cast_IntLiteral_set_format(value, ID2SYM(rb_intern("oct"))); cast_IntLiteral_set_val(value, LONG2NUM(strtol(p->tok, (char **)&cp, 8))); if (cp < cursor) { if (cp[0] == '8' || cp[0] == '9') rb_raise(cast_eParseError, "bad octal digit: %c", cp[0]); cast_IntLiteral_set_suffix(value, rb_str_new(cp, cursor - cp)); } RETVALUE(cast_sym_ICON); } #line 951 "" yy127: yych = *++YYCURSOR; switch (yych) { case '+': case '-': goto yy197; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto yy198; default: goto yy90; } yy128: yych = *++YYCURSOR; switch (yych) { case 'L': goto yy200; case 'U': case 'u': goto yy201; default: goto yy36; } yy129: yych = *++YYCURSOR; switch (yych) { case 'L': goto yy202; case 'l': goto yy203; default: goto yy36; } yy130: yych = *++YYCURSOR; switch (yych) { case '.': goto yy204; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': goto yy205; default: goto yy90; } yy131: yych = *++YYCURSOR; switch (yych) { case 'U': case 'u': goto yy201; case 'l': goto yy200; default: goto yy36; } yy132: ++YYCURSOR; #line 280 "ext/yylex.re" { RET(cast_sym_RBRACKET); } #line 1024 "" yy134: ++YYCURSOR; #line 279 "ext/yylex.re" { RET(cast_sym_LBRACE); } #line 1029 "" yy136: ++YYCURSOR; #line 278 "ext/yylex.re" { RET(cast_sym_LBRACKET); } #line 1034 "" yy138: yych = *++YYCURSOR; switch (yych) { case '=': goto yy208; default: goto yy139; } yy139: #line 243 "ext/yylex.re" { RET(cast_sym_LSHIFT); } #line 1044 "" yy140: ++YYCURSOR; #line 249 "ext/yylex.re" { RET(cast_sym_LEQ); } #line 1049 "" yy142: ++YYCURSOR; #line 251 "ext/yylex.re" { RET(cast_sym_EQEQ); } #line 1054 "" yy144: ++YYCURSOR; #line 250 "ext/yylex.re" { RET(cast_sym_GEQ); } #line 1059 "" yy146: yych = *++YYCURSOR; switch (yych) { case '=': goto yy210; default: goto yy147; } yy147: #line 242 "ext/yylex.re" { RET(cast_sym_RSHIFT); } #line 1069 "" yy148: yych = *++YYCURSOR; switch (yych) { case '\'': goto yy90; default: goto yy100; } yy149: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; yy150: switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy52; } yy151: ++YYCURSOR; #line 240 "ext/yylex.re" { RET(cast_sym_XOREQ); } #line 1151 "" yy153: yych = *++YYCURSOR; switch (yych) { case 'o': goto yy212; default: goto yy150; } yy154: yych = *++YYCURSOR; switch (yych) { case 'o': goto yy213; default: goto yy150; } yy155: yych = *++YYCURSOR; switch (yych) { case 'm': goto yy214; default: goto yy150; } yy156: yych = *++YYCURSOR; switch (yych) { case 't': goto yy215; default: goto yy150; } yy157: yych = *++YYCURSOR; switch (yych) { case 'e': goto yy216; default: goto yy150; } yy158: yych = *++YYCURSOR; switch (yych) { case 's': goto yy217; default: goto yy150; } yy159: yych = *++YYCURSOR; switch (yych) { case 'a': goto yy218; default: goto yy150; } yy160: yych = *++YYCURSOR; switch (yych) { case 'n': goto yy219; default: goto yy150; } yy161: yych = *++YYCURSOR; switch (yych) { case 'f': goto yy220; default: goto yy150; } yy162: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; case 'u': goto yy221; default: goto yy163; } yy163: #line 108 "ext/yylex.re" { RET(cast_sym_DO); } #line 1277 "" yy164: yych = *++YYCURSOR; switch (yych) { case 's': goto yy222; default: goto yy150; } yy165: yych = *++YYCURSOR; switch (yych) { case 'u': goto yy223; default: goto yy150; } yy166: yych = *++YYCURSOR; switch (yych) { case 't': goto yy224; default: goto yy150; } yy167: yych = *++YYCURSOR; switch (yych) { case 'o': goto yy225; default: goto yy150; } yy168: yych = *++YYCURSOR; switch (yych) { case 'r': goto yy226; default: goto yy150; } yy169: yych = *++YYCURSOR; switch (yych) { case 't': goto yy228; default: goto yy150; } yy170: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy171; } yy171: #line 116 "ext/yylex.re" { RET(cast_sym_IF); } #line 1385 "" yy172: yych = *++YYCURSOR; switch (yych) { case 'l': goto yy229; case 't': goto yy230; default: goto yy150; } yy173: yych = *++YYCURSOR; switch (yych) { case 'n': goto yy232; default: goto yy150; } yy174: yych = *++YYCURSOR; switch (yych) { case 'g': goto yy233; case 's': goto yy234; case 't': goto yy235; default: goto yy150; } yy175: yych = *++YYCURSOR; switch (yych) { case 'o': goto yy236; default: goto yy150; } yy176: yych = *++YYCURSOR; switch (yych) { case 'g': goto yy237; case 'z': goto yy238; default: goto yy150; } yy177: yych = *++YYCURSOR; switch (yych) { case 'a': goto yy239; case 'r': goto yy240; default: goto yy150; } yy178: yych = *++YYCURSOR; switch (yych) { case 'i': goto yy241; default: goto yy150; } yy179: yych = *++YYCURSOR; switch (yych) { case 'p': goto yy242; default: goto yy150; } yy180: yych = *++YYCURSOR; switch (yych) { case 'i': goto yy243; case 's': goto yy244; default: goto yy150; } yy181: yych = *++YYCURSOR; switch (yych) { case 'i': goto yy245; case 'l': goto yy246; default: goto yy150; } yy182: yych = *++YYCURSOR; switch (yych) { case 'i': goto yy247; default: goto yy150; } yy183: ++YYCURSOR; #line 241 "ext/yylex.re" { RET(cast_sym_OREQ); } #line 1463 "" yy185: ++YYCURSOR; #line 248 "ext/yylex.re" { RET(cast_sym_OROR); } #line 1468 "" yy187: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': goto yy85; default: goto yy90; } yy188: ++YYCURSOR; #line 208 "ext/yylex.re" { value = cast_new_CharLiteral_at(p->lineno); if (p->tok[0] == '\'') { cp = p->tok; } else { cast_CharLiteral_set_prefix(value, rb_str_new(p->tok, 1)); cp = p->tok + 1; } cast_CharLiteral_set_val(value, rb_str_new(cp + 1, cursor - cp - 2)); RETVALUE(cast_sym_CCON); } #line 1512 "" yy190: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': goto yy99; default: goto yy90; } yy191: ++YYCURSOR; #line 231 "ext/yylex.re" { RET(cast_sym_ELLIPSIS); } #line 1546 "" yy193: ++YYCURSOR; goto yy117; yy194: yych = *++YYCURSOR; switch (yych) { case 'L': goto yy248; case 'U': case 'u': goto yy249; default: goto yy126; } yy195: yych = *++YYCURSOR; switch (yych) { case 'L': goto yy250; case 'l': goto yy251; default: goto yy126; } yy196: yych = *++YYCURSOR; switch (yych) { case 'U': case 'u': goto yy249; case 'l': goto yy248; default: goto yy126; } yy197: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto yy198; default: goto yy90; } yy198: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto yy198; case 'F': case 'L': case 'f': case 'l': goto yy193; default: goto yy117; } yy200: yych = *++YYCURSOR; switch (yych) { case 'U': case 'u': goto yy201; default: goto yy36; } yy201: ++YYCURSOR; goto yy36; yy202: yych = *++YYCURSOR; switch (yych) { case 'L': goto yy201; default: goto yy36; } yy203: yych = *++YYCURSOR; switch (yych) { case 'l': goto yy201; default: goto yy36; } yy204: yych = *++YYCURSOR; switch (yych) { case 'P': case 'p': goto yy90; default: goto yy253; } yy205: yyaccept = 6; YYMARKER = ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); yych = *YYCURSOR; switch (yych) { case '.': goto yy252; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': goto yy205; case 'L': goto yy254; case 'P': case 'p': goto yy255; case 'U': case 'u': goto yy256; case 'l': goto yy257; default: goto yy207; } yy207: #line 149 "ext/yylex.re" { value = cast_new_IntLiteral_at(p->lineno); cast_IntLiteral_set_format(value, ID2SYM(rb_intern("hex"))); cast_IntLiteral_set_val(value, LONG2NUM(strtol(p->tok, (char **)&cp, 16))); if (cp < cursor) cast_IntLiteral_set_suffix(value, rb_str_new(cp, cursor - cp)); RETVALUE(cast_sym_ICON); } #line 1685 "" yy208: ++YYCURSOR; #line 233 "ext/yylex.re" { RET(cast_sym_LSHIFTEQ); } #line 1690 "" yy210: ++YYCURSOR; #line 232 "ext/yylex.re" { RET(cast_sym_RSHIFTEQ); } #line 1695 "" yy212: yych = *++YYCURSOR; switch (yych) { case 'o': goto yy258; default: goto yy150; } yy213: yych = *++YYCURSOR; switch (yych) { case 'm': goto yy259; default: goto yy150; } yy214: yych = *++YYCURSOR; switch (yych) { case 'a': goto yy260; default: goto yy150; } yy215: yych = *++YYCURSOR; switch (yych) { case 'o': goto yy261; default: goto yy150; } yy216: yych = *++YYCURSOR; switch (yych) { case 'a': goto yy263; default: goto yy150; } yy217: yych = *++YYCURSOR; switch (yych) { case 'e': goto yy264; default: goto yy150; } yy218: yych = *++YYCURSOR; switch (yych) { case 'r': goto yy266; default: goto yy150; } yy219: yych = *++YYCURSOR; switch (yych) { case 's': goto yy268; case 't': goto yy269; default: goto yy150; } yy220: yych = *++YYCURSOR; switch (yych) { case 'a': goto yy270; default: goto yy150; } yy221: yych = *++YYCURSOR; switch (yych) { case 'b': goto yy271; default: goto yy150; } yy222: yych = *++YYCURSOR; switch (yych) { case 'e': goto yy272; default: goto yy150; } yy223: yych = *++YYCURSOR; switch (yych) { case 'm': goto yy274; default: goto yy150; } yy224: yych = *++YYCURSOR; switch (yych) { case 'e': goto yy276; default: goto yy150; } yy225: yych = *++YYCURSOR; switch (yych) { case 'a': goto yy277; default: goto yy150; } yy226: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy227; } yy227: #line 114 "ext/yylex.re" { RET(cast_sym_FOR); } #line 1852 "" yy228: yych = *++YYCURSOR; switch (yych) { case 'o': goto yy278; default: goto yy150; } yy229: yych = *++YYCURSOR; switch (yych) { case 'i': goto yy280; default: goto yy150; } yy230: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy231; } yy231: #line 117 "ext/yylex.re" { RET(cast_sym_INT); } #line 1936 "" yy232: yych = *++YYCURSOR; switch (yych) { case 'g': goto yy281; default: goto yy150; } yy233: yych = *++YYCURSOR; switch (yych) { case 'i': goto yy283; default: goto yy150; } yy234: yych = *++YYCURSOR; switch (yych) { case 't': goto yy284; default: goto yy150; } yy235: yych = *++YYCURSOR; switch (yych) { case 'u': goto yy285; default: goto yy150; } yy236: yych = *++YYCURSOR; switch (yych) { case 'r': goto yy286; default: goto yy150; } yy237: yych = *++YYCURSOR; switch (yych) { case 'n': goto yy287; default: goto yy150; } yy238: yych = *++YYCURSOR; switch (yych) { case 'e': goto yy288; default: goto yy150; } yy239: yych = *++YYCURSOR; switch (yych) { case 't': goto yy289; default: goto yy150; } yy240: yych = *++YYCURSOR; switch (yych) { case 'u': goto yy290; default: goto yy150; } yy241: yych = *++YYCURSOR; switch (yych) { case 't': goto yy291; default: goto yy150; } yy242: yych = *++YYCURSOR; switch (yych) { case 'e': goto yy292; default: goto yy150; } yy243: yych = *++YYCURSOR; switch (yych) { case 'o': goto yy293; default: goto yy150; } yy244: yych = *++YYCURSOR; switch (yych) { case 'i': goto yy294; default: goto yy150; } yy245: yych = *++YYCURSOR; switch (yych) { case 'd': goto yy295; default: goto yy150; } yy246: yych = *++YYCURSOR; switch (yych) { case 'a': goto yy297; default: goto yy150; } yy247: yych = *++YYCURSOR; switch (yych) { case 'l': goto yy298; default: goto yy150; } yy248: yych = *++YYCURSOR; switch (yych) { case 'U': case 'u': goto yy249; default: goto yy126; } yy249: ++YYCURSOR; goto yy126; yy250: yych = *++YYCURSOR; switch (yych) { case 'L': goto yy249; default: goto yy126; } yy251: yych = *++YYCURSOR; switch (yych) { case 'l': goto yy249; default: goto yy126; } yy252: ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); yych = *YYCURSOR; yy253: switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': goto yy252; case 'P': case 'p': goto yy255; default: goto yy90; } yy254: yych = *++YYCURSOR; switch (yych) { case 'L': goto yy299; case 'U': case 'u': goto yy300; default: goto yy207; } yy255: yych = *++YYCURSOR; switch (yych) { case '+': case '-': goto yy301; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto yy302; default: goto yy90; } yy256: yych = *++YYCURSOR; switch (yych) { case 'L': goto yy305; case 'l': goto yy306; default: goto yy207; } yy257: yych = *++YYCURSOR; switch (yych) { case 'U': case 'u': goto yy300; case 'l': goto yy299; default: goto yy207; } yy258: yych = *++YYCURSOR; switch (yych) { case 'l': goto yy307; default: goto yy150; } yy259: yych = *++YYCURSOR; switch (yych) { case 'p': goto yy309; default: goto yy150; } yy260: yych = *++YYCURSOR; switch (yych) { case 'g': goto yy310; default: goto yy150; } yy261: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy262; } yy262: #line 101 "ext/yylex.re" { RET(cast_sym_AUTO); } #line 2216 "" yy263: yych = *++YYCURSOR; switch (yych) { case 'k': goto yy311; default: goto yy150; } yy264: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy265; } yy265: #line 103 "ext/yylex.re" { RET(cast_sym_CASE); } #line 2294 "" yy266: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy267; } yy267: #line 104 "ext/yylex.re" { RET(cast_sym_CHAR); } #line 2366 "" yy268: yych = *++YYCURSOR; switch (yych) { case 't': goto yy313; default: goto yy150; } yy269: yych = *++YYCURSOR; switch (yych) { case 'i': goto yy315; default: goto yy150; } yy270: yych = *++YYCURSOR; switch (yych) { case 'u': goto yy316; default: goto yy150; } yy271: yych = *++YYCURSOR; switch (yych) { case 'l': goto yy317; default: goto yy150; } yy272: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy273; } yy273: #line 110 "ext/yylex.re" { RET(cast_sym_ELSE); } #line 2462 "" yy274: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy275; } yy275: #line 111 "ext/yylex.re" { RET(cast_sym_ENUM); } #line 2534 "" yy276: yych = *++YYCURSOR; switch (yych) { case 'r': goto yy318; default: goto yy150; } yy277: yych = *++YYCURSOR; switch (yych) { case 't': goto yy319; default: goto yy150; } yy278: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy279; } yy279: #line 115 "ext/yylex.re" { RET(cast_sym_GOTO); } #line 2618 "" yy280: yych = *++YYCURSOR; switch (yych) { case 'n': goto yy321; default: goto yy150; } yy281: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy282; } yy282: #line 118 "ext/yylex.re" { RET(cast_sym_LONG); } #line 2696 "" yy283: yych = *++YYCURSOR; switch (yych) { case 's': goto yy322; default: goto yy150; } yy284: yych = *++YYCURSOR; switch (yych) { case 'r': goto yy323; default: goto yy150; } yy285: yych = *++YYCURSOR; switch (yych) { case 'r': goto yy324; default: goto yy150; } yy286: yych = *++YYCURSOR; switch (yych) { case 't': goto yy325; default: goto yy150; } yy287: yych = *++YYCURSOR; switch (yych) { case 'e': goto yy327; default: goto yy150; } yy288: yych = *++YYCURSOR; switch (yych) { case 'o': goto yy328; default: goto yy150; } yy289: yych = *++YYCURSOR; switch (yych) { case 'i': goto yy329; default: goto yy150; } yy290: yych = *++YYCURSOR; switch (yych) { case 'c': goto yy330; default: goto yy150; } yy291: yych = *++YYCURSOR; switch (yych) { case 'c': goto yy331; default: goto yy150; } yy292: yych = *++YYCURSOR; switch (yych) { case 'd': goto yy332; default: goto yy150; } yy293: yych = *++YYCURSOR; switch (yych) { case 'n': goto yy333; default: goto yy150; } yy294: yych = *++YYCURSOR; switch (yych) { case 'g': goto yy335; default: goto yy150; } yy295: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy296; } yy296: #line 130 "ext/yylex.re" { RET(cast_sym_VOID); } #line 2840 "" yy297: yych = *++YYCURSOR; switch (yych) { case 't': goto yy336; default: goto yy150; } yy298: yych = *++YYCURSOR; switch (yych) { case 'e': goto yy337; default: goto yy150; } yy299: yych = *++YYCURSOR; switch (yych) { case 'U': case 'u': goto yy300; default: goto yy207; } yy300: ++YYCURSOR; goto yy207; yy301: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto yy302; default: goto yy90; } yy302: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': goto yy302; case 'F': case 'L': case 'f': case 'l': goto yy339; default: goto yy304; } yy304: #line 192 "ext/yylex.re" { value = cast_new_FloatLiteral_at(p->lineno); cast_FloatLiteral_set_format(value, ID2SYM(rb_intern("hex"))); cast_FloatLiteral_set_val(value, rb_float_new(strtod(p->tok, (char **)&cp))); if (cp < cursor) cast_FloatLiteral_set_suffix(value, rb_str_new(cp, cursor - cp)); ep = (char *)memchr(p->tok, 'p', cp - p->tok); if (!ep) ep = (char *)memchr(p->tok, 'P', cp - p->tok); if (ep) cast_FloatLiteral_set_exponent(value, LONG2NUM(strtod(ep + 1, NULL))); RETVALUE(cast_sym_FCON); } #line 2916 "" yy305: yych = *++YYCURSOR; switch (yych) { case 'L': goto yy300; default: goto yy207; } yy306: yych = *++YYCURSOR; switch (yych) { case 'l': goto yy300; default: goto yy207; } yy307: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy308; } yy308: #line 135 "ext/yylex.re" { RET(cast_sym_BOOL); } #line 3000 "" yy309: yych = *++YYCURSOR; switch (yych) { case 'l': goto yy340; default: goto yy150; } yy310: yych = *++YYCURSOR; switch (yych) { case 'i': goto yy341; default: goto yy150; } yy311: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy312; } yy312: #line 102 "ext/yylex.re" { RET(cast_sym_BREAK); } #line 3084 "" yy313: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy314; } yy314: #line 105 "ext/yylex.re" { RET(cast_sym_CONST); } #line 3156 "" yy315: yych = *++YYCURSOR; switch (yych) { case 'n': goto yy342; default: goto yy150; } yy316: yych = *++YYCURSOR; switch (yych) { case 'l': goto yy343; default: goto yy150; } yy317: yych = *++YYCURSOR; switch (yych) { case 'e': goto yy344; default: goto yy150; } yy318: yych = *++YYCURSOR; switch (yych) { case 'n': goto yy346; default: goto yy150; } yy319: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy320; } yy320: #line 113 "ext/yylex.re" { RET(cast_sym_FLOAT); } #line 3252 "" yy321: yych = *++YYCURSOR; switch (yych) { case 'e': goto yy348; default: goto yy150; } yy322: yych = *++YYCURSOR; switch (yych) { case 't': goto yy350; default: goto yy150; } yy323: yych = *++YYCURSOR; switch (yych) { case 'i': goto yy351; default: goto yy150; } yy324: yych = *++YYCURSOR; switch (yych) { case 'n': goto yy352; default: goto yy150; } yy325: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy326; } yy326: #line 121 "ext/yylex.re" { RET(cast_sym_SHORT); } #line 3348 "" yy327: yych = *++YYCURSOR; switch (yych) { case 'd': goto yy354; default: goto yy150; } yy328: yych = *++YYCURSOR; switch (yych) { case 'f': goto yy356; default: goto yy150; } yy329: yych = *++YYCURSOR; switch (yych) { case 'c': goto yy358; default: goto yy150; } yy330: yych = *++YYCURSOR; switch (yych) { case 't': goto yy360; default: goto yy150; } yy331: yych = *++YYCURSOR; switch (yych) { case 'h': goto yy362; default: goto yy150; } yy332: yych = *++YYCURSOR; switch (yych) { case 'e': goto yy364; default: goto yy150; } yy333: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy334; } yy334: #line 128 "ext/yylex.re" { RET(cast_sym_UNION); } #line 3456 "" yy335: yych = *++YYCURSOR; switch (yych) { case 'n': goto yy365; default: goto yy150; } yy336: yych = *++YYCURSOR; switch (yych) { case 'i': goto yy366; default: goto yy150; } yy337: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy338; } yy338: #line 132 "ext/yylex.re" { RET(cast_sym_WHILE); } #line 3540 "" yy339: ++YYCURSOR; goto yy304; yy340: yych = *++YYCURSOR; switch (yych) { case 'e': goto yy367; default: goto yy150; } yy341: yych = *++YYCURSOR; switch (yych) { case 'n': goto yy368; default: goto yy150; } yy342: yych = *++YYCURSOR; switch (yych) { case 'u': goto yy369; default: goto yy150; } yy343: yych = *++YYCURSOR; switch (yych) { case 't': goto yy370; default: goto yy150; } yy344: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy345; } yy345: #line 109 "ext/yylex.re" { RET(cast_sym_DOUBLE); } #line 3639 "" yy346: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy347; } yy347: #line 112 "ext/yylex.re" { RET(cast_sym_EXTERN); } #line 3711 "" yy348: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy349; } yy349: #line 133 "ext/yylex.re" { RET(cast_sym_INLINE); } #line 3783 "" yy350: yych = *++YYCURSOR; switch (yych) { case 'e': goto yy372; default: goto yy150; } yy351: yych = *++YYCURSOR; switch (yych) { case 'c': goto yy373; default: goto yy150; } yy352: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy353; } yy353: #line 120 "ext/yylex.re" { RET(cast_sym_RETURN); } #line 3867 "" yy354: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy355; } yy355: #line 122 "ext/yylex.re" { RET(cast_sym_SIGNED); } #line 3939 "" yy356: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy357; } yy357: #line 123 "ext/yylex.re" { RET(cast_sym_SIZEOF); } #line 4011 "" yy358: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy359; } yy359: #line 124 "ext/yylex.re" { RET(cast_sym_STATIC); } #line 4083 "" yy360: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy361; } yy361: #line 125 "ext/yylex.re" { RET(cast_sym_STRUCT); } #line 4155 "" yy362: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy363; } yy363: #line 126 "ext/yylex.re" { RET(cast_sym_SWITCH); } #line 4227 "" yy364: yych = *++YYCURSOR; switch (yych) { case 'f': goto yy374; default: goto yy150; } yy365: yych = *++YYCURSOR; switch (yych) { case 'e': goto yy376; default: goto yy150; } yy366: yych = *++YYCURSOR; switch (yych) { case 'l': goto yy377; default: goto yy150; } yy367: yych = *++YYCURSOR; switch (yych) { case 'x': goto yy378; default: goto yy150; } yy368: yych = *++YYCURSOR; switch (yych) { case 'a': goto yy380; default: goto yy150; } yy369: yych = *++YYCURSOR; switch (yych) { case 'e': goto yy381; default: goto yy150; } yy370: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy371; } yy371: #line 107 "ext/yylex.re" { RET(cast_sym_DEFAULT); } #line 4335 "" yy372: yych = *++YYCURSOR; switch (yych) { case 'r': goto yy383; default: goto yy150; } yy373: yych = *++YYCURSOR; switch (yych) { case 't': goto yy385; default: goto yy150; } yy374: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy375; } yy375: #line 127 "ext/yylex.re" { RET(cast_sym_TYPEDEF); } #line 4419 "" yy376: yych = *++YYCURSOR; switch (yych) { case 'd': goto yy387; default: goto yy150; } yy377: yych = *++YYCURSOR; switch (yych) { case 'e': goto yy389; default: goto yy150; } yy378: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy379; } yy379: #line 136 "ext/yylex.re" { RET(cast_sym_COMPLEX); } #line 4503 "" yy380: yych = *++YYCURSOR; switch (yych) { case 'r': goto yy391; default: goto yy150; } yy381: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy382; } yy382: #line 106 "ext/yylex.re" { RET(cast_sym_CONTINUE); } #line 4581 "" yy383: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy384; } yy384: #line 119 "ext/yylex.re" { RET(cast_sym_REGISTER); } #line 4653 "" yy385: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy386; } yy386: #line 134 "ext/yylex.re" { RET(cast_sym_RESTRICT); } #line 4725 "" yy387: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy388; } yy388: #line 129 "ext/yylex.re" { RET(cast_sym_UNSIGNED); } #line 4797 "" yy389: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy390; } yy390: #line 131 "ext/yylex.re" { RET(cast_sym_VOLATILE); } #line 4869 "" yy391: yych = *++YYCURSOR; switch (yych) { case 'y': goto yy392; default: goto yy150; } yy392: yych = *++YYCURSOR; switch (yych) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '_': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': goto yy149; default: goto yy393; } yy393: #line 137 "ext/yylex.re" { RET(cast_sym_IMAGINARY); } #line 4947 "" } #line 302 "ext/yylex.re" comment: #line 4954 "" { YYCTYPE yych; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; switch (yych) { case 0x00: goto yy396; case '\n': goto yy400; case '*': goto yy402; default: goto yy398; } yy396: ++YYCURSOR; #line 314 "ext/yylex.re" { if (cursor == p->eof) rb_raise(cast_eParseError, "%ld: unclosed multiline comment", p->lineno); } #line 4974 "" yy398: ++YYCURSOR; yy399: #line 321 "ext/yylex.re" { goto comment; } #line 4980 "" yy400: ++YYCURSOR; #line 308 "ext/yylex.re" { p->tok = p->pos = cursor; ++p->lineno; goto comment; } #line 4988 "" yy402: yych = *++YYCURSOR; switch (yych) { case '/': goto yy403; default: goto yy399; } yy403: ++YYCURSOR; #line 306 "ext/yylex.re" { goto std; } #line 4999 "" } #line 322 "ext/yylex.re" comment2: #line 5006 "" { YYCTYPE yych; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; switch (yych) { case 0x00: goto yy407; case '\n': goto yy411; default: goto yy409; } yy407: ++YYCURSOR; #line 333 "ext/yylex.re" { if (cursor == p->eof) RET(Qnil); goto std; } #line 5023 "" yy409: ++YYCURSOR; #line 338 "ext/yylex.re" { goto comment2; } #line 5028 "" yy411: ++YYCURSOR; #line 327 "ext/yylex.re" { p->tok = p->pos = cursor; ++p->lineno; goto std; } #line 5036 "" } #line 339 "ext/yylex.re" }