ext/yylex.c in cast-0.3.0 vs ext/yylex.c in cast-0.3.1

- old
+ new

@@ -1,6 +1,6 @@ -/* Generated by re2c 0.14.3 on Sun Mar 20 23:58:53 2016 */ +/* 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. @@ -88,49 +88,48 @@ #line 90 "<stdout>" { YYCTYPE yych; unsigned int yyaccept = 0; - if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11); yych = *YYCURSOR; switch (yych) { - case 0x00: goto yy76; + case 0x00: goto yy2; case '\t': case '\v': case '\f': - case ' ': goto yy74; - case '\n': goto yy78; - case '!': goto yy50; - case '"': goto yy29; - case '%': goto yy40; - case '&': goto yy42; - case '\'': goto yy27; - case '(': goto yy62; - case ')': goto yy64; - case '*': goto yy38; - case '+': goto yy34; - case ',': goto yy58; - case '-': goto yy36; - case '.': goto yy25; - case '/': goto yy2; - case '0': goto yy22; + 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 yy24; - case ':': goto yy60; - case ';': goto yy52; - case '<': goto yy32; - case '=': goto yy48; - case '>': goto yy30; - case '?': goto yy72; + 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': @@ -163,989 +162,830 @@ case 'o': case 'p': case 'q': case 'x': case 'y': - case 'z': goto yy21; - case '[': goto yy66; - case ']': goto yy68; - case '^': goto yy44; - case '_': goto yy20; - case 'a': goto yy4; - case 'b': goto yy6; - case 'c': goto yy7; - case 'd': goto yy8; - case 'e': goto yy9; - case 'f': goto yy10; - case 'g': goto yy11; - case 'i': goto yy12; - case 'l': goto yy13; - case 'r': goto yy14; - case 's': goto yy15; - case 't': goto yy16; - case 'u': goto yy17; - case 'v': goto yy18; - case 'w': goto yy19; - case '{': goto yy54; - case '|': goto yy46; - case '}': goto yy56; - case '~': goto yy70; - default: goto yy80; + 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; - switch ((yych = *YYCURSOR)) { - case '*': goto yy432; - case '/': goto yy430; - case '=': goto yy428; - default: goto yy3; - } -yy3: -#line 270 "ext/yylex.re" - { RET(cast_sym_DIV); } -#line 206 "<stdout>" +#line 286 "ext/yylex.re" + { + if(cursor == p->eof) RET(Qnil); + goto std; + } +#line 201 "<stdout>" yy4: - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - switch (yych) { - case '"': goto yy131; - case '\'': goto yy232; - 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 yy233; - case 'u': goto yy424; - default: goto yy5; - } + ++YYCURSOR; yy5: -#line 139 "ext/yylex.re" +#line 298 "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); + rb_raise(cast_eParseError, "%ld: unexpected character: %c (ASCII %d)\n", p->lineno, *p->tok, (int)*p->tok); + goto std; } - } -#line 289 "<stdout>" +#line 210 "<stdout>" 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 "<stdout>" +yy9: + ++YYCURSOR; +#line 292 "ext/yylex.re" + { + p->pos = cursor; ++p->lineno; + goto std; + } +#line 233 "<stdout>" +yy11: + yych = *++YYCURSOR; + switch (yych) { + case '=': goto yy83; + default: goto yy12; + } +yy12: +#line 265 "ext/yylex.re" + { RET(cast_sym_BANG); } +#line 243 "<stdout>" +yy13: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); + goto yy86; +yy14: + yych = *++YYCURSOR; switch (yych) { - case '"': goto yy131; - case '\'': goto yy232; - 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 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto yy233; - case 'r': goto yy419; - default: goto yy5; + case '=': goto yy91; + case '>': goto yy93; + default: goto yy15; } -yy7: +yy15: +#line 271 "ext/yylex.re" + { RET(cast_sym_MOD); } +#line 258 "<stdout>" +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 "<stdout>" +yy18: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '"': goto yy131; - case '\'': goto yy232; - 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 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto yy233; - case 'a': goto yy400; - case 'h': goto yy401; - case 'o': goto yy402; - default: goto yy5; + case '\'': goto yy5; + default: goto yy100; } -yy8: - yyaccept = 0; +yy19: + ++YYCURSOR; +#line 259 "ext/yylex.re" + { RET(cast_sym_LPAREN); } +#line 281 "<stdout>" +yy21: + ++YYCURSOR; +#line 260 "ext/yylex.re" + { RET(cast_sym_RPAREN); } +#line 286 "<stdout>" +yy23: + yych = *++YYCURSOR; + switch (yych) { + case '=': goto yy102; + default: goto yy24; + } +yy24: +#line 269 "ext/yylex.re" + { RET(cast_sym_MUL); } +#line 296 "<stdout>" +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 "<stdout>" +yy27: + ++YYCURSOR; +#line 256 "ext/yylex.re" + { RET(cast_sym_COMMA); } +#line 312 "<stdout>" +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 "<stdout>" +yy31: + yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '"': goto yy131; - case '\'': goto yy232; + case '.': goto yy114; 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 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto yy233; - case 'e': goto yy386; - case 'o': goto yy387; - default: goto yy5; + case '9': goto yy115; + default: goto yy32; } -yy9: - yyaccept = 0; +yy32: +#line 263 "ext/yylex.re" + { RET(cast_sym_DOT); } +#line 345 "<stdout>" +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 "<stdout>" +yy35: + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '"': goto yy131; - case '\'': goto yy232; + case '.': goto yy115; 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 '9': goto yy124; 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 'e': goto yy127; + case 'L': goto yy128; case 'U': - case 'V': - case 'W': + case 'u': goto yy129; 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 'm': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'y': - case 'z': goto yy233; - case 'l': goto yy372; - case 'n': goto yy373; - case 'x': goto yy374; - default: goto yy5; + case 'x': goto yy130; + case 'l': goto yy131; + default: goto yy36; } -yy10: - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); +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 "<stdout>" +yy37: + yyaccept = 2; + YYMARKER = ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); + yych = *YYCURSOR; switch (yych) { - case '"': goto yy131; - case '\'': goto yy232; + case '.': goto yy115; 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 '9': goto yy37; 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 'e': goto yy127; + case 'L': goto yy128; 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 'm': - case 'n': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto yy233; - case 'l': goto yy364; - case 'o': goto yy365; - default: goto yy5; + case 'u': goto yy129; + case 'l': goto yy131; + default: goto yy36; } -yy11: - yyaccept = 0; +yy39: + yych = *++YYCURSOR; + switch (yych) { + case '>': goto yy132; + default: goto yy40; + } +yy40: +#line 257 "ext/yylex.re" + { RET(cast_sym_COLON); } +#line 428 "<stdout>" +yy41: + ++YYCURSOR; +#line 253 "ext/yylex.re" + { RET(cast_sym_SEMICOLON); } +#line 433 "<stdout>" +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 "<stdout>" +yy45: + yych = *++YYCURSOR; + switch (yych) { + case '=': goto yy142; + default: goto yy46; + } +yy46: +#line 258 "ext/yylex.re" + { RET(cast_sym_EQ); } +#line 456 "<stdout>" +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 "<stdout>" +yy49: + ++YYCURSOR; +#line 276 "ext/yylex.re" + { RET(cast_sym_QUESTION); } +#line 472 "<stdout>" +yy51: + yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '"': goto yy131; - case '\'': goto yy232; - 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 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto yy233; - case 'o': goto yy360; - default: goto yy5; + case '"': goto yy85; + case '\'': goto yy148; + default: goto yy150; } -yy12: - yyaccept = 0; +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 "<stdout>" +yy53: + ++YYCURSOR; +#line 261 "ext/yylex.re" + { RET(cast_sym_LBRACKET); } +#line 497 "<stdout>" +yy55: + ++YYCURSOR; +#line 262 "ext/yylex.re" + { RET(cast_sym_RBRACKET); } +#line 502 "<stdout>" +yy57: + yych = *++YYCURSOR; + switch (yych) { + case '=': goto yy151; + default: goto yy58; + } +yy58: +#line 274 "ext/yylex.re" + { RET(cast_sym_XOR); } +#line 512 "<stdout>" +yy59: + yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '"': goto yy131; - case '\'': goto yy232; - 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 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - 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 yy233; - case 'f': goto yy350; - case 'n': goto yy352; - default: goto yy5; + case '"': goto yy85; + case '\'': goto yy148; + case 'B': goto yy153; + case 'C': goto yy154; + case 'I': goto yy155; + default: goto yy150; } -yy13: - yyaccept = 0; +yy60: + yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); switch (yych) { - case '"': goto yy131; - case '\'': goto yy232; + 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 "<stdout>" +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 "<stdout>" +yy79: + ++YYCURSOR; +#line 255 "ext/yylex.re" + { RET(cast_sym_RBRACE); } +#line 689 "<stdout>" +yy81: + ++YYCURSOR; +#line 266 "ext/yylex.re" + { RET(cast_sym_NOT); } +#line 694 "<stdout>" +yy83: + ++YYCURSOR; +#line 252 "ext/yylex.re" + { RET(cast_sym_NEQ); } +#line 699 "<stdout>" +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 "<stdout>" +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 '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 '?': + 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 'p': - case 'q': case 'r': - case 's': case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto yy233; - case 'o': goto yy346; - default: goto yy5; + case 'v': goto yy85; + case 'x': goto yy187; + default: goto yy90; } -yy14: - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); +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 "<stdout>" +yy93: + ++YYCURSOR; +#line 281 "ext/yylex.re" + { RET(cast_sym_RBRACE); } +#line 772 "<stdout>" +yy95: + ++YYCURSOR; +#line 247 "ext/yylex.re" + { RET(cast_sym_ANDAND); } +#line 777 "<stdout>" +yy97: + ++YYCURSOR; +#line 239 "ext/yylex.re" + { RET(cast_sym_ANDEQ); } +#line 782 "<stdout>" +yy99: + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; +yy100: switch (yych) { - case '"': goto yy131; - case '\'': goto yy232; + 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 '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 '?': + case '\\': case 'a': case 'b': - case 'c': - case 'd': 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 yy233; - case 'e': goto yy326; - default: goto yy5; + case 'v': goto yy99; + case 'x': goto yy190; + default: goto yy90; } -yy15: - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); +yy102: + ++YYCURSOR; +#line 236 "ext/yylex.re" + { RET(cast_sym_MULEQ); } +#line 824 "<stdout>" +yy104: + ++YYCURSOR; +#line 244 "ext/yylex.re" + { RET(cast_sym_INC); } +#line 829 "<stdout>" +yy106: + ++YYCURSOR; +#line 234 "ext/yylex.re" + { RET(cast_sym_ADDEQ); } +#line 834 "<stdout>" +yy108: + ++YYCURSOR; +#line 245 "ext/yylex.re" + { RET(cast_sym_DEC); } +#line 839 "<stdout>" +yy110: + ++YYCURSOR; +#line 235 "ext/yylex.re" + { RET(cast_sym_SUBEQ); } +#line 844 "<stdout>" +yy112: + ++YYCURSOR; +#line 246 "ext/yylex.re" + { RET(cast_sym_ARROW); } +#line 849 "<stdout>" +yy114: + yych = *++YYCURSOR; switch (yych) { - case '"': goto yy131; - case '\'': goto yy232; + 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': - case 'A': - case 'B': - case 'C': - case 'D': + case '9': goto yy115; case 'E': + case 'e': goto yy127; 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 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 'u': - case 'v': - case 'x': - case 'y': - case 'z': goto yy233; - case 'h': goto yy293; - case 'i': goto yy294; - case 't': goto yy295; - case 'w': goto yy296; - default: goto yy5; + case 'l': goto yy193; + default: goto yy117; } -yy16: - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); +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 "<stdout>" +yy118: + ++YYCURSOR; +#line 98 "ext/yylex.re" + { goto comment; } +#line 902 "<stdout>" +yy120: + ++YYCURSOR; +#line 99 "ext/yylex.re" + { goto comment2; } +#line 907 "<stdout>" +yy122: + ++YYCURSOR; +#line 237 "ext/yylex.re" + { RET(cast_sym_DIVEQ); } +#line 912 "<stdout>" +yy124: + yyaccept = 5; + YYMARKER = ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); + yych = *YYCURSOR; switch (yych) { - case '"': goto yy131; - case '\'': goto yy232; + case '.': goto yy115; 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 '9': goto yy124; 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 'e': goto yy127; + case 'L': goto yy194; 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 'z': goto yy233; - case 'y': goto yy286; - default: goto yy5; + case 'u': goto yy195; + case 'l': goto yy196; + default: goto yy126; } -yy17: - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); +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 "<stdout>" +yy127: + yych = *++YYCURSOR; switch (yych) { - case '"': goto yy131; - case '\'': goto yy232; + case '+': + case '-': goto yy197; 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 '9': goto yy198; + default: goto yy90; + } +yy128: + yych = *++YYCURSOR; + switch (yych) { + case 'L': goto yy200; 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 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto yy233; - case 'n': goto yy274; - default: goto yy5; + case 'u': goto yy201; + default: goto yy36; } -yy18: - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); +yy129: + yych = *++YYCURSOR; switch (yych) { - case '"': goto yy131; - case '\'': goto yy232; + 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': @@ -1158,65 +998,88 @@ 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 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto yy233; - case 'o': goto yy263; - default: goto yy5; + case 'f': goto yy205; + default: goto yy90; } -yy19: - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); +yy131: + yych = *++YYCURSOR; switch (yych) { - case '"': goto yy131; - case '\'': goto yy232; + 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 "<stdout>" +yy134: + ++YYCURSOR; +#line 279 "ext/yylex.re" + { RET(cast_sym_LBRACE); } +#line 1029 "<stdout>" +yy136: + ++YYCURSOR; +#line 278 "ext/yylex.re" + { RET(cast_sym_LBRACKET); } +#line 1034 "<stdout>" +yy138: + yych = *++YYCURSOR; + switch (yych) { + case '=': goto yy208; + default: goto yy139; + } +yy139: +#line 243 "ext/yylex.re" + { RET(cast_sym_LSHIFT); } +#line 1044 "<stdout>" +yy140: + ++YYCURSOR; +#line 249 "ext/yylex.re" + { RET(cast_sym_LEQ); } +#line 1049 "<stdout>" +yy142: + ++YYCURSOR; +#line 251 "ext/yylex.re" + { RET(cast_sym_EQEQ); } +#line 1054 "<stdout>" +yy144: + ++YYCURSOR; +#line 250 "ext/yylex.re" + { RET(cast_sym_GEQ); } +#line 1059 "<stdout>" +yy146: + yych = *++YYCURSOR; + switch (yych) { + case '=': goto yy210; + default: goto yy147; + } +yy147: +#line 242 "ext/yylex.re" + { RET(cast_sym_RSHIFT); } +#line 1069 "<stdout>" +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': @@ -1257,10 +1120,11 @@ case 'c': case 'd': case 'e': case 'f': case 'g': + case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': @@ -1274,20 +1138,75 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - case 'h': goto yy258; - default: goto yy5; + case 'z': goto yy149; + default: goto yy52; } -yy20: - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); +yy151: + ++YYCURSOR; +#line 240 "ext/yylex.re" + { RET(cast_sym_XOREQ); } +#line 1151 "<stdout>" +yy153: + yych = *++YYCURSOR; switch (yych) { - case '"': goto yy131; - case '\'': goto yy232; + 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': @@ -1295,15 +1214,18 @@ 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': @@ -1338,27 +1260,61 @@ case 'p': case 'q': case 'r': case 's': case 't': - case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - case 'B': goto yy235; - case 'C': goto yy236; - case 'I': goto yy237; - default: goto yy5; + case 'z': goto yy149; + case 'u': goto yy221; + default: goto yy163; } -yy21: - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); +yy163: +#line 108 "ext/yylex.re" + { RET(cast_sym_DO); } +#line 1277 "<stdout>" +yy164: + yych = *++YYCURSOR; switch (yych) { - case '"': goto yy131; - case '\'': goto yy232; + 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': @@ -1417,645 +1373,101 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy5; + case 'z': goto yy149; + default: goto yy171; } -yy22: - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); +yy171: +#line 116 "ext/yylex.re" + { RET(cast_sym_IF); } +#line 1385 "<stdout>" +yy172: + yych = *++YYCURSOR; switch (yych) { - case '.': goto yy163; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy188; - case 'E': - case 'e': goto yy166; - case 'L': goto yy168; - case 'U': - case 'u': goto yy167; - case 'X': - case 'x': goto yy187; - case 'l': goto yy169; - default: goto yy23; + case 'l': goto yy229; + case 't': goto yy230; + default: goto yy150; } -yy23: -#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 1461 "<stdout>" -yy24: - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - goto yy165; -yy25: - yyaccept = 2; - yych = *(YYMARKER = ++YYCURSOR); +yy173: + yych = *++YYCURSOR; switch (yych) { - case '.': goto yy152; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy153; - default: goto yy26; + case 'n': goto yy232; + default: goto yy150; } -yy26: -#line 263 "ext/yylex.re" - { RET(cast_sym_DOT); } -#line 1486 "<stdout>" -yy27: - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); +yy174: + yych = *++YYCURSOR; switch (yych) { - case '\'': goto yy28; - default: goto yy143; + case 'g': goto yy233; + case 's': goto yy234; + case 't': goto yy235; + default: goto yy150; } -yy28: -#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 1500 "<stdout>" -yy29: - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); - goto yy132; -yy30: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '=': goto yy125; - case '>': goto yy127; - default: goto yy31; - } -yy31: -#line 273 "ext/yylex.re" - { RET(cast_sym_GT); } -#line 1515 "<stdout>" -yy32: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '%': goto yy115; - case ':': goto yy117; - case '<': goto yy121; - case '=': goto yy119; - default: goto yy33; - } -yy33: -#line 272 "ext/yylex.re" - { RET(cast_sym_LT); } -#line 1528 "<stdout>" -yy34: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '+': goto yy111; - case '=': goto yy113; - default: goto yy35; - } -yy35: -#line 268 "ext/yylex.re" - { RET(cast_sym_ADD); } -#line 1539 "<stdout>" -yy36: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '-': goto yy107; - case '=': goto yy109; - case '>': goto yy105; - default: goto yy37; - } -yy37: -#line 267 "ext/yylex.re" - { RET(cast_sym_SUB); } -#line 1551 "<stdout>" -yy38: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '=': goto yy103; - default: goto yy39; - } -yy39: -#line 269 "ext/yylex.re" - { RET(cast_sym_MUL); } -#line 1561 "<stdout>" -yy40: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '=': goto yy101; - case '>': goto yy99; - default: goto yy41; - } -yy41: -#line 271 "ext/yylex.re" - { RET(cast_sym_MOD); } -#line 1572 "<stdout>" -yy42: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '&': goto yy95; - case '=': goto yy97; - default: goto yy43; - } -yy43: -#line 264 "ext/yylex.re" - { RET(cast_sym_AND); } -#line 1583 "<stdout>" -yy44: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '=': goto yy93; - default: goto yy45; - } -yy45: -#line 274 "ext/yylex.re" - { RET(cast_sym_XOR); } -#line 1593 "<stdout>" -yy46: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '=': goto yy91; - case '|': goto yy89; - default: goto yy47; - } -yy47: -#line 275 "ext/yylex.re" - { RET(cast_sym_OR); } -#line 1604 "<stdout>" -yy48: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '=': goto yy87; - default: goto yy49; - } -yy49: -#line 258 "ext/yylex.re" - { RET(cast_sym_EQ); } -#line 1614 "<stdout>" -yy50: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '=': goto yy85; - default: goto yy51; - } -yy51: -#line 265 "ext/yylex.re" - { RET(cast_sym_BANG); } -#line 1624 "<stdout>" -yy52: - ++YYCURSOR; -#line 253 "ext/yylex.re" - { RET(cast_sym_SEMICOLON); } -#line 1629 "<stdout>" -yy54: - ++YYCURSOR; -#line 254 "ext/yylex.re" - { RET(cast_sym_LBRACE); } -#line 1634 "<stdout>" -yy56: - ++YYCURSOR; -#line 255 "ext/yylex.re" - { RET(cast_sym_RBRACE); } -#line 1639 "<stdout>" -yy58: - ++YYCURSOR; -#line 256 "ext/yylex.re" - { RET(cast_sym_COMMA); } -#line 1644 "<stdout>" -yy60: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '>': goto yy83; - default: goto yy61; - } -yy61: -#line 257 "ext/yylex.re" - { RET(cast_sym_COLON); } -#line 1654 "<stdout>" -yy62: - ++YYCURSOR; -#line 259 "ext/yylex.re" - { RET(cast_sym_LPAREN); } -#line 1659 "<stdout>" -yy64: - ++YYCURSOR; -#line 260 "ext/yylex.re" - { RET(cast_sym_RPAREN); } -#line 1664 "<stdout>" -yy66: - ++YYCURSOR; -#line 261 "ext/yylex.re" - { RET(cast_sym_LBRACKET); } -#line 1669 "<stdout>" -yy68: - ++YYCURSOR; -#line 262 "ext/yylex.re" - { RET(cast_sym_RBRACKET); } -#line 1674 "<stdout>" -yy70: - ++YYCURSOR; -#line 266 "ext/yylex.re" - { RET(cast_sym_NOT); } -#line 1679 "<stdout>" -yy72: - ++YYCURSOR; -#line 276 "ext/yylex.re" - { RET(cast_sym_QUESTION); } -#line 1684 "<stdout>" -yy74: - ++YYCURSOR; - yych = *YYCURSOR; - goto yy82; -yy75: -#line 283 "ext/yylex.re" - { goto std; } -#line 1692 "<stdout>" -yy76: - ++YYCURSOR; -#line 286 "ext/yylex.re" - { - if(cursor == p->eof) RET(Qnil); - goto std; - } -#line 1700 "<stdout>" -yy78: - ++YYCURSOR; -#line 292 "ext/yylex.re" - { - p->pos = cursor; ++p->lineno; - goto std; - } -#line 1708 "<stdout>" -yy80: +yy175: yych = *++YYCURSOR; - goto yy28; -yy81: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy82: switch (yych) { - case '\t': - case '\v': - case '\f': - case ' ': goto yy81; - default: goto yy75; + case 'o': goto yy236; + default: goto yy150; } -yy83: - ++YYCURSOR; -#line 280 "ext/yylex.re" - { RET(cast_sym_RBRACKET); } -#line 1728 "<stdout>" -yy85: - ++YYCURSOR; -#line 252 "ext/yylex.re" - { RET(cast_sym_NEQ); } -#line 1733 "<stdout>" -yy87: - ++YYCURSOR; -#line 251 "ext/yylex.re" - { RET(cast_sym_EQEQ); } -#line 1738 "<stdout>" -yy89: - ++YYCURSOR; -#line 248 "ext/yylex.re" - { RET(cast_sym_OROR); } -#line 1743 "<stdout>" -yy91: - ++YYCURSOR; -#line 241 "ext/yylex.re" - { RET(cast_sym_OREQ); } -#line 1748 "<stdout>" -yy93: - ++YYCURSOR; -#line 240 "ext/yylex.re" - { RET(cast_sym_XOREQ); } -#line 1753 "<stdout>" -yy95: - ++YYCURSOR; -#line 247 "ext/yylex.re" - { RET(cast_sym_ANDAND); } -#line 1758 "<stdout>" -yy97: - ++YYCURSOR; -#line 239 "ext/yylex.re" - { RET(cast_sym_ANDEQ); } -#line 1763 "<stdout>" -yy99: - ++YYCURSOR; -#line 281 "ext/yylex.re" - { RET(cast_sym_RBRACE); } -#line 1768 "<stdout>" -yy101: - ++YYCURSOR; -#line 238 "ext/yylex.re" - { RET(cast_sym_MODEQ); } -#line 1773 "<stdout>" -yy103: - ++YYCURSOR; -#line 236 "ext/yylex.re" - { RET(cast_sym_MULEQ); } -#line 1778 "<stdout>" -yy105: - ++YYCURSOR; -#line 246 "ext/yylex.re" - { RET(cast_sym_ARROW); } -#line 1783 "<stdout>" -yy107: - ++YYCURSOR; -#line 245 "ext/yylex.re" - { RET(cast_sym_DEC); } -#line 1788 "<stdout>" -yy109: - ++YYCURSOR; -#line 235 "ext/yylex.re" - { RET(cast_sym_SUBEQ); } -#line 1793 "<stdout>" -yy111: - ++YYCURSOR; -#line 244 "ext/yylex.re" - { RET(cast_sym_INC); } -#line 1798 "<stdout>" -yy113: - ++YYCURSOR; -#line 234 "ext/yylex.re" - { RET(cast_sym_ADDEQ); } -#line 1803 "<stdout>" -yy115: - ++YYCURSOR; -#line 279 "ext/yylex.re" - { RET(cast_sym_LBRACE); } -#line 1808 "<stdout>" -yy117: - ++YYCURSOR; -#line 278 "ext/yylex.re" - { RET(cast_sym_LBRACKET); } -#line 1813 "<stdout>" -yy119: - ++YYCURSOR; -#line 249 "ext/yylex.re" - { RET(cast_sym_LEQ); } -#line 1818 "<stdout>" -yy121: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '=': goto yy123; - default: goto yy122; - } -yy122: -#line 243 "ext/yylex.re" - { RET(cast_sym_LSHIFT); } -#line 1828 "<stdout>" -yy123: - ++YYCURSOR; -#line 233 "ext/yylex.re" - { RET(cast_sym_LSHIFTEQ); } -#line 1833 "<stdout>" -yy125: - ++YYCURSOR; -#line 250 "ext/yylex.re" - { RET(cast_sym_GEQ); } -#line 1838 "<stdout>" -yy127: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '=': goto yy129; - default: goto yy128; - } -yy128: -#line 242 "ext/yylex.re" - { RET(cast_sym_RSHIFT); } -#line 1848 "<stdout>" -yy129: - ++YYCURSOR; -#line 232 "ext/yylex.re" - { RET(cast_sym_RSHIFTEQ); } -#line 1853 "<stdout>" -yy131: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy132: +yy176: + yych = *++YYCURSOR; switch (yych) { - case '"': goto yy135; - case '\\': goto yy133; - default: goto yy131; + case 'g': goto yy237; + case 'z': goto yy238; + default: goto yy150; } -yy133: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; +yy177: + yych = *++YYCURSOR; switch (yych) { - case '"': - case '\'': - case '?': - case '\\': - case 'a': - case 'b': - case 'f': - case 'n': - case 'r': - case 't': - case 'v': goto yy131; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': goto yy137; - case 'x': goto yy138; - default: goto yy134; + case 'a': goto yy239; + case 'r': goto yy240; + default: goto yy150; } -yy134: - YYCURSOR = YYMARKER; - switch (yyaccept) { - case 0: goto yy5; - case 1: goto yy23; - case 2: goto yy26; - case 3: goto yy28; - case 4: goto yy155; - case 5: goto yy190; - default: goto yy200; - } -yy135: - ++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 1916 "<stdout>" -yy137: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; +yy178: + yych = *++YYCURSOR; switch (yych) { - case '"': goto yy135; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': goto yy141; - case '\\': goto yy133; - default: goto yy131; + case 'i': goto yy241; + default: goto yy150; } -yy138: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; +yy179: + 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 yy139; - default: goto yy134; + case 'p': goto yy242; + default: goto yy150; } -yy139: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; +yy180: + yych = *++YYCURSOR; switch (yych) { - case '"': goto yy135; - 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 yy139; - case '\\': goto yy133; - default: goto yy131; + case 'i': goto yy243; + case 's': goto yy244; + default: goto yy150; } -yy141: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; +yy181: + yych = *++YYCURSOR; switch (yych) { - case '"': goto yy135; - case '\\': goto yy133; - default: goto yy131; + case 'i': goto yy245; + case 'l': goto yy246; + default: goto yy150; } -yy142: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy143: +yy182: + yych = *++YYCURSOR; switch (yych) { - case '\'': goto yy149; - case '\\': goto yy144; - default: goto yy142; + case 'i': goto yy247; + default: goto yy150; } -yy144: +yy183: ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - switch (yych) { - case '"': - case '\'': - case '?': - case '\\': - case 'a': - case 'b': - case 'f': - case 'n': - case 'r': - case 't': - case 'v': goto yy142; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': goto yy145; - case 'x': goto yy146; - default: goto yy134; - } -yy145: +#line 241 "ext/yylex.re" + { RET(cast_sym_OREQ); } +#line 1463 "<stdout>" +yy185: ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - switch (yych) { - case '\'': goto yy149; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': goto yy151; - case '\\': goto yy144; - default: goto yy142; - } -yy146: +#line 248 "ext/yylex.re" + { RET(cast_sym_OROR); } +#line 1468 "<stdout>" +yy187: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; switch (yych) { case '0': @@ -2077,46 +1489,15 @@ case 'a': case 'b': case 'c': case 'd': case 'e': - case 'f': goto yy147; - default: goto yy134; + case 'f': goto yy85; + default: goto yy90; } -yy147: +yy188: ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - switch (yych) { - case '\'': goto yy149; - 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 yy147; - case '\\': goto yy144; - default: goto yy142; - } -yy149: - ++YYCURSOR; #line 208 "ext/yylex.re" { value = cast_new_CharLiteral_at(p->lineno); if (p->tok[0] == '\'') { cp = p->tok; @@ -2125,241 +1506,87 @@ cp = p->tok + 1; } cast_CharLiteral_set_val(value, rb_str_new(cp + 1, cursor - cp - 2)); RETVALUE(cast_sym_CCON); } -#line 2131 "<stdout>" -yy151: +#line 1512 "<stdout>" +yy190: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; switch (yych) { - case '\'': goto yy149; - case '\\': goto yy144; - default: goto yy142; - } -yy152: - yych = *++YYCURSOR; - switch (yych) { - case '.': goto yy161; - default: goto yy134; - } -yy153: - 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 yy153; + case '9': + case 'A': + case 'B': + case 'C': + case 'D': case 'E': - case 'e': goto yy156; case 'F': - case 'L': - case 'f': - case 'l': goto yy157; - default: goto yy155; + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': goto yy99; + default: goto yy90; } -yy155: -#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 2188 "<stdout>" -yy156: - yych = *++YYCURSOR; - switch (yych) { - case '+': - case '-': goto yy158; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy159; - default: goto yy134; - } -yy157: - yych = *++YYCURSOR; - goto yy155; -yy158: - 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 yy159; - default: goto yy134; - } -yy159: +yy191: ++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 yy159; - case 'F': - case 'L': - case 'f': - case 'l': goto yy157; - default: goto yy155; - } -yy161: - ++YYCURSOR; #line 231 "ext/yylex.re" { RET(cast_sym_ELLIPSIS); } -#line 2249 "<stdout>" -yy163: - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - switch (yych) { - case 'E': - case 'e': goto yy179; - default: goto yy178; - } -yy164: - yyaccept = 1; - YYMARKER = ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4); - yych = *YYCURSOR; -yy165: - switch (yych) { - case '.': goto yy163; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy164; - case 'E': - case 'e': goto yy166; - case 'L': goto yy168; - case 'U': - case 'u': goto yy167; - case 'l': goto yy169; - default: goto yy23; - } -yy166: +#line 1546 "<stdout>" +yy193: + ++YYCURSOR; + goto yy117; +yy194: yych = *++YYCURSOR; switch (yych) { - case '+': - case '-': goto yy174; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy175; - default: goto yy134; - } -yy167: - yych = *++YYCURSOR; - switch (yych) { - case 'L': goto yy172; - case 'l': goto yy173; - default: goto yy23; - } -yy168: - yych = *++YYCURSOR; - switch (yych) { - case 'L': goto yy170; + case 'L': goto yy248; case 'U': - case 'u': goto yy171; - default: goto yy23; + case 'u': goto yy249; + default: goto yy126; } -yy169: +yy195: yych = *++YYCURSOR; switch (yych) { - case 'U': - case 'u': goto yy171; - case 'l': goto yy170; - default: goto yy23; + case 'L': goto yy250; + case 'l': goto yy251; + default: goto yy126; } -yy170: +yy196: yych = *++YYCURSOR; switch (yych) { case 'U': - case 'u': goto yy171; - default: goto yy23; + case 'u': goto yy249; + case 'l': goto yy248; + default: goto yy126; } -yy171: +yy197: yych = *++YYCURSOR; - goto yy23; -yy172: - yych = *++YYCURSOR; switch (yych) { - case 'L': goto yy171; - default: goto yy23; - } -yy173: - yych = *++YYCURSOR; - switch (yych) { - case 'l': goto yy171; - default: goto yy23; - } -yy174: - 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 yy175; - default: goto yy134; + case '9': goto yy198; + default: goto yy90; } -yy175: +yy198: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; switch (yych) { case '0': @@ -2369,267 +1596,53 @@ case '4': case '5': case '6': case '7': case '8': - case '9': goto yy175; + case '9': goto yy198; case 'F': case 'L': case 'f': - case 'l': goto yy157; - default: goto yy155; - } -yy177: - yyaccept = 4; - YYMARKER = ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); - yych = *YYCURSOR; -yy178: - switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy177; - case 'E': - case 'e': goto yy183; - case 'F': - case 'L': - case 'f': - case 'l': goto yy157; - default: goto yy155; - } -yy179: - yych = *++YYCURSOR; - switch (yych) { - case '+': - case '-': goto yy180; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy181; - default: goto yy134; - } -yy180: - 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 yy181; - default: goto yy134; - } -yy181: - ++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 yy181; - case 'F': - case 'L': - case 'f': - case 'l': goto yy157; - default: goto yy155; - } -yy183: - yych = *++YYCURSOR; - switch (yych) { - case '+': - case '-': goto yy184; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy185; - default: goto yy134; - } -yy184: - 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 yy185; - default: goto yy134; - } -yy185: - ++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 yy185; - case 'F': - case 'L': - case 'f': - case 'l': goto yy157; - default: goto yy155; - } -yy187: - yych = *++YYCURSOR; - switch (yych) { - case '.': goto yy201; - 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 yy198; - default: goto yy134; - } -yy188: - yyaccept = 5; - YYMARKER = ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4); - yych = *YYCURSOR; - switch (yych) { - case '.': goto yy163; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy188; - case 'E': - case 'e': goto yy166; - case 'L': goto yy192; - case 'U': - case 'u': goto yy191; case 'l': goto yy193; - default: goto yy190; + default: goto yy117; } -yy190: -#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 2579 "<stdout>" -yy191: +yy200: yych = *++YYCURSOR; switch (yych) { - case 'L': goto yy196; - case 'l': goto yy197; - default: goto yy190; - } -yy192: - yych = *++YYCURSOR; - switch (yych) { - case 'L': goto yy194; case 'U': - case 'u': goto yy195; - default: goto yy190; + case 'u': goto yy201; + default: goto yy36; } -yy193: +yy201: + ++YYCURSOR; + goto yy36; +yy202: yych = *++YYCURSOR; switch (yych) { - case 'U': - case 'u': goto yy195; - case 'l': goto yy194; - default: goto yy190; + case 'L': goto yy201; + default: goto yy36; } -yy194: +yy203: yych = *++YYCURSOR; switch (yych) { - case 'U': - case 'u': goto yy195; - default: goto yy190; + case 'l': goto yy201; + default: goto yy36; } -yy195: +yy204: yych = *++YYCURSOR; - goto yy190; -yy196: - yych = *++YYCURSOR; switch (yych) { - case 'L': goto yy195; - default: goto yy190; + case 'P': + case 'p': goto yy90; + default: goto yy253; } -yy197: - yych = *++YYCURSOR; - switch (yych) { - case 'l': goto yy195; - default: goto yy190; - } -yy198: +yy205: yyaccept = 6; YYMARKER = ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4); + if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); yych = *YYCURSOR; switch (yych) { - case '.': goto yy210; + case '.': goto yy252; case '0': case '1': case '2': case '3': case '4': @@ -2647,398 +1660,212 @@ case 'a': case 'b': case 'c': case 'd': case 'e': - case 'f': goto yy198; - case 'L': goto yy213; + case 'f': goto yy205; + case 'L': goto yy254; case 'P': - case 'p': goto yy211; + case 'p': goto yy255; case 'U': - case 'u': goto yy212; - case 'l': goto yy214; - default: goto yy200; + case 'u': goto yy256; + case 'l': goto yy257; + default: goto yy207; } -yy200: +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 2672 "<stdout>" -yy201: +#line 1685 "<stdout>" +yy208: + ++YYCURSOR; +#line 233 "ext/yylex.re" + { RET(cast_sym_LSHIFTEQ); } +#line 1690 "<stdout>" +yy210: + ++YYCURSOR; +#line 232 "ext/yylex.re" + { RET(cast_sym_RSHIFTEQ); } +#line 1695 "<stdout>" +yy212: yych = *++YYCURSOR; switch (yych) { - case 'P': - case 'p': goto yy134; - default: goto yy203; + case 'o': goto yy258; + default: goto yy150; } -yy202: - ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); - yych = *YYCURSOR; -yy203: +yy213: + 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 yy202; - case 'P': - case 'p': goto yy204; - default: goto yy134; + case 'm': goto yy259; + default: goto yy150; } -yy204: +yy214: yych = *++YYCURSOR; switch (yych) { - case '+': - case '-': goto yy205; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy206; - default: goto yy134; + case 'a': goto yy260; + default: goto yy150; } -yy205: +yy215: 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 yy206; - default: goto yy134; + case 'o': goto yy261; + default: goto yy150; } -yy206: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; +yy216: + 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 yy206; - case 'F': - case 'L': - case 'f': - case 'l': goto yy209; - default: goto yy208; + case 'a': goto yy263; + default: goto yy150; } -yy208: -#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 2782 "<stdout>" -yy209: +yy217: yych = *++YYCURSOR; - goto yy208; -yy210: - yych = *++YYCURSOR; switch (yych) { - case 'P': - case 'p': goto yy224; - default: goto yy223; + case 'e': goto yy264; + default: goto yy150; } -yy211: +yy218: yych = *++YYCURSOR; switch (yych) { - case '+': - case '-': goto yy219; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy220; - default: goto yy134; + case 'r': goto yy266; + default: goto yy150; } -yy212: +yy219: yych = *++YYCURSOR; switch (yych) { - case 'L': goto yy217; - case 'l': goto yy218; - default: goto yy200; + case 's': goto yy268; + case 't': goto yy269; + default: goto yy150; } -yy213: +yy220: yych = *++YYCURSOR; switch (yych) { - case 'L': goto yy215; - case 'U': - case 'u': goto yy216; - default: goto yy200; + case 'a': goto yy270; + default: goto yy150; } -yy214: +yy221: yych = *++YYCURSOR; switch (yych) { - case 'U': - case 'u': goto yy216; - case 'l': goto yy215; - default: goto yy200; + case 'b': goto yy271; + default: goto yy150; } -yy215: +yy222: yych = *++YYCURSOR; switch (yych) { - case 'U': - case 'u': goto yy216; - default: goto yy200; + case 'e': goto yy272; + default: goto yy150; } -yy216: +yy223: yych = *++YYCURSOR; - goto yy200; -yy217: - yych = *++YYCURSOR; switch (yych) { - case 'L': goto yy216; - default: goto yy200; + case 'm': goto yy274; + default: goto yy150; } -yy218: +yy224: yych = *++YYCURSOR; switch (yych) { - case 'l': goto yy216; - default: goto yy200; + case 'e': goto yy276; + default: goto yy150; } -yy219: +yy225: 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 yy220; - default: goto yy134; + case 'a': goto yy277; + default: goto yy150; } -yy220: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; +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': goto yy220; - case 'F': - case 'L': - case 'f': - case 'l': goto yy209; - default: goto yy208; - } -yy222: - ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); - yych = *YYCURSOR; -yy223: - 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': goto yy222; - case 'P': - case 'p': goto yy228; - default: goto yy134; - } -yy224: - yych = *++YYCURSOR; - switch (yych) { - case '+': - case '-': goto yy225; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy226; - default: goto yy134; - } -yy225: - 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 yy226; - default: goto yy134; - } -yy226: - ++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 yy226; - case 'F': - case 'L': case 'f': - case 'l': goto yy209; - default: goto yy208; + 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 "<stdout>" yy228: yych = *++YYCURSOR; switch (yych) { - case '+': - case '-': goto yy229; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy230; - default: goto yy134; + case 'o': goto yy278; + default: goto yy150; } yy229: 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 yy230; - default: goto yy134; + case 'i': goto yy280; + default: goto yy150; } yy230: - ++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 yy230; - case 'F': - case 'L': - case 'f': - case 'l': goto yy209; - default: goto yy208; - } -yy232: yych = *++YYCURSOR; switch (yych) { - case '\'': goto yy134; - default: goto yy143; - } -yy233: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy234: - switch (yych) { case '0': case '1': case '2': case '3': case '4': @@ -3097,76 +1924,141 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy5; + case 'z': goto yy149; + default: goto yy231; } +yy231: +#line 117 "ext/yylex.re" + { RET(cast_sym_INT); } +#line 1936 "<stdout>" +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 'o': goto yy254; - default: goto yy234; + case 'u': goto yy285; + default: goto yy150; } yy236: yych = *++YYCURSOR; switch (yych) { - case 'o': goto yy247; - default: goto yy234; + case 'r': goto yy286; + default: goto yy150; } yy237: yych = *++YYCURSOR; switch (yych) { - case 'm': goto yy238; - default: goto yy234; + case 'n': goto yy287; + default: goto yy150; } yy238: yych = *++YYCURSOR; switch (yych) { - case 'a': goto yy239; - default: goto yy234; + case 'e': goto yy288; + default: goto yy150; } yy239: yych = *++YYCURSOR; switch (yych) { - case 'g': goto yy240; - default: goto yy234; + case 't': goto yy289; + default: goto yy150; } yy240: yych = *++YYCURSOR; switch (yych) { - case 'i': goto yy241; - default: goto yy234; + case 'u': goto yy290; + default: goto yy150; } yy241: yych = *++YYCURSOR; switch (yych) { - case 'n': goto yy242; - default: goto yy234; + case 't': goto yy291; + default: goto yy150; } yy242: yych = *++YYCURSOR; switch (yych) { - case 'a': goto yy243; - default: goto yy234; + case 'e': goto yy292; + default: goto yy150; } yy243: yych = *++YYCURSOR; switch (yych) { - case 'r': goto yy244; - default: goto yy234; + case 'o': goto yy293; + default: goto yy150; } yy244: yych = *++YYCURSOR; switch (yych) { - case 'y': goto yy245; - default: goto yy234; + 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; - switch ((yych = *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': @@ -3179,96 +2071,81 @@ 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 yy233; - default: goto yy246; + case 'f': goto yy252; + case 'P': + case 'p': goto yy255; + default: goto yy90; } -yy246: -#line 137 "ext/yylex.re" - { RET(cast_sym_IMAGINARY); } -#line 3237 "<stdout>" -yy247: +yy254: yych = *++YYCURSOR; switch (yych) { - case 'm': goto yy248; - default: goto yy234; + case 'L': goto yy299; + case 'U': + case 'u': goto yy300; + default: goto yy207; } -yy248: +yy255: yych = *++YYCURSOR; switch (yych) { - case 'p': goto yy249; - default: goto yy234; + 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; } -yy249: +yy256: yych = *++YYCURSOR; switch (yych) { - case 'l': goto yy250; - default: goto yy234; + case 'L': goto yy305; + case 'l': goto yy306; + default: goto yy207; } -yy250: +yy257: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy251; - default: goto yy234; + case 'U': + case 'u': goto yy300; + case 'l': goto yy299; + default: goto yy207; } -yy251: +yy258: yych = *++YYCURSOR; switch (yych) { - case 'x': goto yy252; - default: goto yy234; + case 'l': goto yy307; + default: goto yy150; } -yy252: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +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': @@ -3327,32 +2204,26 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy253; + case 'z': goto yy149; + default: goto yy262; } -yy253: -#line 136 "ext/yylex.re" - { RET(cast_sym_COMPLEX); } -#line 3339 "<stdout>" -yy254: +yy262: +#line 101 "ext/yylex.re" + { RET(cast_sym_AUTO); } +#line 2216 "<stdout>" +yy263: yych = *++YYCURSOR; switch (yych) { - case 'o': goto yy255; - default: goto yy234; + case 'k': goto yy311; + default: goto yy150; } -yy255: +yy264: yych = *++YYCURSOR; switch (yych) { - case 'l': goto yy256; - default: goto yy234; - } -yy256: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { case '0': case '1': case '2': case '3': case '4': @@ -3411,38 +2282,20 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy257; + case 'z': goto yy149; + default: goto yy265; } -yy257: -#line 135 "ext/yylex.re" - { RET(cast_sym_BOOL); } -#line 3423 "<stdout>" -yy258: +yy265: +#line 103 "ext/yylex.re" + { RET(cast_sym_CASE); } +#line 2294 "<stdout>" +yy266: yych = *++YYCURSOR; switch (yych) { - case 'i': goto yy259; - default: goto yy234; - } -yy259: - yych = *++YYCURSOR; - switch (yych) { - case 'l': goto yy260; - default: goto yy234; - } -yy260: - yych = *++YYCURSOR; - switch (yych) { - case 'e': goto yy261; - default: goto yy234; - } -yy261: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { case '0': case '1': case '2': case '3': case '4': @@ -3501,63 +2354,44 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy262; + case 'z': goto yy149; + default: goto yy267; } -yy262: -#line 132 "ext/yylex.re" - { RET(cast_sym_WHILE); } -#line 3513 "<stdout>" -yy263: +yy267: +#line 104 "ext/yylex.re" + { RET(cast_sym_CHAR); } +#line 2366 "<stdout>" +yy268: yych = *++YYCURSOR; switch (yych) { - case 'i': goto yy264; - case 'l': goto yy265; - default: goto yy234; + case 't': goto yy313; + default: goto yy150; } -yy264: +yy269: yych = *++YYCURSOR; switch (yych) { - case 'd': goto yy272; - default: goto yy234; + case 'i': goto yy315; + default: goto yy150; } -yy265: +yy270: yych = *++YYCURSOR; switch (yych) { - case 'a': goto yy266; - default: goto yy234; + case 'u': goto yy316; + default: goto yy150; } -yy266: +yy271: yych = *++YYCURSOR; switch (yych) { - case 't': goto yy267; - default: goto yy234; + case 'l': goto yy317; + default: goto yy150; } -yy267: +yy272: yych = *++YYCURSOR; switch (yych) { - case 'i': goto yy268; - default: goto yy234; - } -yy268: - yych = *++YYCURSOR; - switch (yych) { - case 'l': goto yy269; - default: goto yy234; - } -yy269: - yych = *++YYCURSOR; - switch (yych) { - case 'e': goto yy270; - default: goto yy234; - } -yy270: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { case '0': case '1': case '2': case '3': case '4': @@ -3616,20 +2450,20 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy271; + case 'z': goto yy149; + default: goto yy273; } -yy271: -#line 131 "ext/yylex.re" - { RET(cast_sym_VOLATILE); } -#line 3628 "<stdout>" -yy272: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +yy273: +#line 110 "ext/yylex.re" + { RET(cast_sym_ELSE); } +#line 2462 "<stdout>" +yy274: + yych = *++YYCURSOR; + switch (yych) { case '0': case '1': case '2': case '3': case '4': @@ -3688,63 +2522,32 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy273; + case 'z': goto yy149; + default: goto yy275; } -yy273: -#line 130 "ext/yylex.re" - { RET(cast_sym_VOID); } -#line 3700 "<stdout>" -yy274: - yych = *++YYCURSOR; - switch (yych) { - case 'i': goto yy275; - case 's': goto yy276; - default: goto yy234; - } yy275: - yych = *++YYCURSOR; - switch (yych) { - case 'o': goto yy283; - default: goto yy234; - } +#line 111 "ext/yylex.re" + { RET(cast_sym_ENUM); } +#line 2534 "<stdout>" yy276: yych = *++YYCURSOR; switch (yych) { - case 'i': goto yy277; - default: goto yy234; + case 'r': goto yy318; + default: goto yy150; } yy277: yych = *++YYCURSOR; switch (yych) { - case 'g': goto yy278; - default: goto yy234; + case 't': goto yy319; + default: goto yy150; } yy278: yych = *++YYCURSOR; switch (yych) { - case 'n': goto yy279; - default: goto yy234; - } -yy279: - yych = *++YYCURSOR; - switch (yych) { - case 'e': goto yy280; - default: goto yy234; - } -yy280: - yych = *++YYCURSOR; - switch (yych) { - case 'd': goto yy281; - default: goto yy234; - } -yy281: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { case '0': case '1': case '2': case '3': case '4': @@ -3803,26 +2606,26 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy282; + case 'z': goto yy149; + default: goto yy279; } -yy282: -#line 129 "ext/yylex.re" - { RET(cast_sym_UNSIGNED); } -#line 3815 "<stdout>" -yy283: +yy279: +#line 115 "ext/yylex.re" + { RET(cast_sym_GOTO); } +#line 2618 "<stdout>" +yy280: yych = *++YYCURSOR; switch (yych) { - case 'n': goto yy284; - default: goto yy234; + case 'n': goto yy321; + default: goto yy150; } -yy284: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +yy281: + yych = *++YYCURSOR; + switch (yych) { case '0': case '1': case '2': case '3': case '4': @@ -3881,50 +2684,92 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy285; + case 'z': goto yy149; + default: goto yy282; } +yy282: +#line 118 "ext/yylex.re" + { RET(cast_sym_LONG); } +#line 2696 "<stdout>" +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: -#line 128 "ext/yylex.re" - { RET(cast_sym_UNION); } -#line 3893 "<stdout>" + yych = *++YYCURSOR; + switch (yych) { + case 'r': goto yy324; + default: goto yy150; + } yy286: yych = *++YYCURSOR; switch (yych) { - case 'p': goto yy287; - default: goto yy234; + case 't': goto yy325; + default: goto yy150; } yy287: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy288; - default: goto yy234; + case 'e': goto yy327; + default: goto yy150; } yy288: yych = *++YYCURSOR; switch (yych) { - case 'd': goto yy289; - default: goto yy234; + case 'o': goto yy328; + default: goto yy150; } yy289: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy290; - default: goto yy234; + case 'i': goto yy329; + default: goto yy150; } yy290: yych = *++YYCURSOR; switch (yych) { - case 'f': goto yy291; - default: goto yy234; + case 'c': goto yy330; + default: goto yy150; } yy291: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { + 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': @@ -3983,160 +2828,108 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy292; + case 'z': goto yy149; + default: goto yy296; } -yy292: -#line 127 "ext/yylex.re" - { RET(cast_sym_TYPEDEF); } -#line 3995 "<stdout>" -yy293: - yych = *++YYCURSOR; - switch (yych) { - case 'o': goto yy322; - default: goto yy234; - } -yy294: - yych = *++YYCURSOR; - switch (yych) { - case 'g': goto yy312; - case 'z': goto yy313; - default: goto yy234; - } -yy295: - yych = *++YYCURSOR; - switch (yych) { - case 'a': goto yy302; - case 'r': goto yy303; - default: goto yy234; - } yy296: - yych = *++YYCURSOR; - switch (yych) { - case 'i': goto yy297; - default: goto yy234; - } +#line 130 "ext/yylex.re" + { RET(cast_sym_VOID); } +#line 2840 "<stdout>" yy297: yych = *++YYCURSOR; switch (yych) { - case 't': goto yy298; - default: goto yy234; + case 't': goto yy336; + default: goto yy150; } yy298: yych = *++YYCURSOR; switch (yych) { - case 'c': goto yy299; - default: goto yy234; + case 'e': goto yy337; + default: goto yy150; } yy299: yych = *++YYCURSOR; switch (yych) { - case 'h': goto yy300; - default: goto yy234; + case 'U': + case 'u': goto yy300; + default: goto yy207; } yy300: ++YYCURSOR; - switch ((yych = *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': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': + 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 '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 yy233; - default: goto yy301; + case 'l': goto yy339; + default: goto yy304; } -yy301: -#line 126 "ext/yylex.re" - { RET(cast_sym_SWITCH); } -#line 4111 "<stdout>" -yy302: +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 "<stdout>" +yy305: yych = *++YYCURSOR; switch (yych) { - case 't': goto yy308; - default: goto yy234; + case 'L': goto yy300; + default: goto yy207; } -yy303: +yy306: yych = *++YYCURSOR; switch (yych) { - case 'u': goto yy304; - default: goto yy234; + case 'l': goto yy300; + default: goto yy207; } -yy304: +yy307: yych = *++YYCURSOR; switch (yych) { - case 'c': goto yy305; - default: goto yy234; - } -yy305: - yych = *++YYCURSOR; - switch (yych) { - case 't': goto yy306; - default: goto yy234; - } -yy306: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { case '0': case '1': case '2': case '3': case '4': @@ -4195,32 +2988,32 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy307; + case 'z': goto yy149; + default: goto yy308; } -yy307: -#line 125 "ext/yylex.re" - { RET(cast_sym_STRUCT); } -#line 4207 "<stdout>" yy308: +#line 135 "ext/yylex.re" + { RET(cast_sym_BOOL); } +#line 3000 "<stdout>" +yy309: yych = *++YYCURSOR; switch (yych) { - case 'i': goto yy309; - default: goto yy234; + case 'l': goto yy340; + default: goto yy150; } -yy309: +yy310: yych = *++YYCURSOR; switch (yych) { - case 'c': goto yy310; - default: goto yy234; + case 'i': goto yy341; + default: goto yy150; } -yy310: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +yy311: + yych = *++YYCURSOR; + switch (yych) { case '0': case '1': case '2': case '3': case '4': @@ -4279,44 +3072,20 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy311; + case 'z': goto yy149; + default: goto yy312; } -yy311: -#line 124 "ext/yylex.re" - { RET(cast_sym_STATIC); } -#line 4291 "<stdout>" yy312: - yych = *++YYCURSOR; - switch (yych) { - case 'n': goto yy318; - default: goto yy234; - } +#line 102 "ext/yylex.re" + { RET(cast_sym_BREAK); } +#line 3084 "<stdout>" yy313: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy314; - default: goto yy234; - } -yy314: - yych = *++YYCURSOR; - switch (yych) { - case 'o': goto yy315; - default: goto yy234; - } -yy315: - yych = *++YYCURSOR; - switch (yych) { - case 'f': goto yy316; - default: goto yy234; - } -yy316: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { case '0': case '1': case '2': case '3': case '4': @@ -4375,32 +3144,44 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy317; + case 'z': goto yy149; + default: goto yy314; } +yy314: +#line 105 "ext/yylex.re" + { RET(cast_sym_CONST); } +#line 3156 "<stdout>" +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: -#line 123 "ext/yylex.re" - { RET(cast_sym_SIZEOF); } -#line 4387 "<stdout>" + yych = *++YYCURSOR; + switch (yych) { + case 'e': goto yy344; + default: goto yy150; + } yy318: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy319; - default: goto yy234; + case 'n': goto yy346; + default: goto yy150; } yy319: yych = *++YYCURSOR; switch (yych) { - case 'd': goto yy320; - default: goto yy234; - } -yy320: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { case '0': case '1': case '2': case '3': case '4': @@ -4459,32 +3240,44 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy321; + case 'z': goto yy149; + default: goto yy320; } +yy320: +#line 113 "ext/yylex.re" + { RET(cast_sym_FLOAT); } +#line 3252 "<stdout>" yy321: -#line 122 "ext/yylex.re" - { RET(cast_sym_SIGNED); } -#line 4471 "<stdout>" + yych = *++YYCURSOR; + switch (yych) { + case 'e': goto yy348; + default: goto yy150; + } yy322: yych = *++YYCURSOR; switch (yych) { - case 'r': goto yy323; - default: goto yy234; + case 't': goto yy350; + default: goto yy150; } yy323: yych = *++YYCURSOR; switch (yych) { - case 't': goto yy324; - default: goto yy234; + case 'i': goto yy351; + default: goto yy150; } yy324: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { + 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': @@ -4543,70 +3336,56 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy325; + case 'z': goto yy149; + default: goto yy326; } -yy325: +yy326: #line 121 "ext/yylex.re" { RET(cast_sym_SHORT); } -#line 4555 "<stdout>" -yy326: - yych = *++YYCURSOR; - switch (yych) { - case 'g': goto yy327; - case 's': goto yy329; - case 't': goto yy328; - default: goto yy234; - } +#line 3348 "<stdout>" yy327: yych = *++YYCURSOR; switch (yych) { - case 'i': goto yy340; - default: goto yy234; + case 'd': goto yy354; + default: goto yy150; } yy328: yych = *++YYCURSOR; switch (yych) { - case 'u': goto yy336; - default: goto yy234; + case 'f': goto yy356; + default: goto yy150; } yy329: yych = *++YYCURSOR; switch (yych) { - case 't': goto yy330; - default: goto yy234; + case 'c': goto yy358; + default: goto yy150; } yy330: yych = *++YYCURSOR; switch (yych) { - case 'r': goto yy331; - default: goto yy234; + case 't': goto yy360; + default: goto yy150; } yy331: yych = *++YYCURSOR; switch (yych) { - case 'i': goto yy332; - default: goto yy234; + case 'h': goto yy362; + default: goto yy150; } yy332: yych = *++YYCURSOR; switch (yych) { - case 'c': goto yy333; - default: goto yy234; + case 'e': goto yy364; + default: goto yy150; } yy333: yych = *++YYCURSOR; switch (yych) { - case 't': goto yy334; - default: goto yy234; - } -yy334: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { case '0': case '1': case '2': case '3': case '4': @@ -4665,32 +3444,32 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy335; + case 'z': goto yy149; + default: goto yy334; } +yy334: +#line 128 "ext/yylex.re" + { RET(cast_sym_UNION); } +#line 3456 "<stdout>" yy335: -#line 134 "ext/yylex.re" - { RET(cast_sym_RESTRICT); } -#line 4677 "<stdout>" + yych = *++YYCURSOR; + switch (yych) { + case 'n': goto yy365; + default: goto yy150; + } yy336: yych = *++YYCURSOR; switch (yych) { - case 'r': goto yy337; - default: goto yy234; + case 'i': goto yy366; + default: goto yy150; } yy337: yych = *++YYCURSOR; switch (yych) { - case 'n': goto yy338; - default: goto yy234; - } -yy338: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { case '0': case '1': case '2': case '3': case '4': @@ -4749,44 +3528,47 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy339; + case 'z': goto yy149; + default: goto yy338; } +yy338: +#line 132 "ext/yylex.re" + { RET(cast_sym_WHILE); } +#line 3540 "<stdout>" yy339: -#line 120 "ext/yylex.re" - { RET(cast_sym_RETURN); } -#line 4761 "<stdout>" + ++YYCURSOR; + goto yy304; yy340: yych = *++YYCURSOR; switch (yych) { - case 's': goto yy341; - default: goto yy234; + case 'e': goto yy367; + default: goto yy150; } yy341: yych = *++YYCURSOR; switch (yych) { - case 't': goto yy342; - default: goto yy234; + case 'n': goto yy368; + default: goto yy150; } yy342: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy343; - default: goto yy234; + case 'u': goto yy369; + default: goto yy150; } yy343: yych = *++YYCURSOR; switch (yych) { - case 'r': goto yy344; - default: goto yy234; + case 't': goto yy370; + default: goto yy150; } yy344: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { + yych = *++YYCURSOR; + switch (yych) { case '0': case '1': case '2': case '3': case '4': @@ -4845,32 +3627,20 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; + case 'z': goto yy149; default: goto yy345; } yy345: -#line 119 "ext/yylex.re" - { RET(cast_sym_REGISTER); } -#line 4857 "<stdout>" +#line 109 "ext/yylex.re" + { RET(cast_sym_DOUBLE); } +#line 3639 "<stdout>" yy346: yych = *++YYCURSOR; switch (yych) { - case 'n': goto yy347; - default: goto yy234; - } -yy347: - yych = *++YYCURSOR; - switch (yych) { - case 'g': goto yy348; - default: goto yy234; - } -yy348: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { case '0': case '1': case '2': case '3': case '4': @@ -4929,99 +3699,20 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy349; + case 'z': goto yy149; + default: goto yy347; } -yy349: -#line 118 "ext/yylex.re" - { RET(cast_sym_LONG); } -#line 4941 "<stdout>" -yy350: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - 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 yy233; - default: goto yy351; - } -yy351: -#line 116 "ext/yylex.re" - { RET(cast_sym_IF); } -#line 5013 "<stdout>" -yy352: +yy347: +#line 112 "ext/yylex.re" + { RET(cast_sym_EXTERN); } +#line 3711 "<stdout>" +yy348: yych = *++YYCURSOR; switch (yych) { - case 'l': goto yy355; - case 't': goto yy353; - default: goto yy234; - } -yy353: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { case '0': case '1': case '2': case '3': case '4': @@ -5080,38 +3771,32 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy354; + case 'z': goto yy149; + default: goto yy349; } -yy354: -#line 117 "ext/yylex.re" - { RET(cast_sym_INT); } -#line 5092 "<stdout>" -yy355: +yy349: +#line 133 "ext/yylex.re" + { RET(cast_sym_INLINE); } +#line 3783 "<stdout>" +yy350: yych = *++YYCURSOR; switch (yych) { - case 'i': goto yy356; - default: goto yy234; + case 'e': goto yy372; + default: goto yy150; } -yy356: +yy351: yych = *++YYCURSOR; switch (yych) { - case 'n': goto yy357; - default: goto yy234; + case 'c': goto yy373; + default: goto yy150; } -yy357: +yy352: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy358; - default: goto yy234; - } -yy358: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { case '0': case '1': case '2': case '3': case '4': @@ -5170,32 +3855,20 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy359; + case 'z': goto yy149; + default: goto yy353; } -yy359: -#line 133 "ext/yylex.re" - { RET(cast_sym_INLINE); } -#line 5182 "<stdout>" -yy360: +yy353: +#line 120 "ext/yylex.re" + { RET(cast_sym_RETURN); } +#line 3867 "<stdout>" +yy354: yych = *++YYCURSOR; switch (yych) { - case 't': goto yy361; - default: goto yy234; - } -yy361: - yych = *++YYCURSOR; - switch (yych) { - case 'o': goto yy362; - default: goto yy234; - } -yy362: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { case '0': case '1': case '2': case '3': case '4': @@ -5254,32 +3927,20 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy363; + case 'z': goto yy149; + default: goto yy355; } -yy363: -#line 115 "ext/yylex.re" - { RET(cast_sym_GOTO); } -#line 5266 "<stdout>" -yy364: +yy355: +#line 122 "ext/yylex.re" + { RET(cast_sym_SIGNED); } +#line 3939 "<stdout>" +yy356: yych = *++YYCURSOR; switch (yych) { - case 'o': goto yy368; - default: goto yy234; - } -yy365: - yych = *++YYCURSOR; - switch (yych) { - case 'r': goto yy366; - default: goto yy234; - } -yy366: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { case '0': case '1': case '2': case '3': case '4': @@ -5338,32 +3999,20 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy367; + case 'z': goto yy149; + default: goto yy357; } -yy367: -#line 114 "ext/yylex.re" - { RET(cast_sym_FOR); } -#line 5350 "<stdout>" -yy368: +yy357: +#line 123 "ext/yylex.re" + { RET(cast_sym_SIZEOF); } +#line 4011 "<stdout>" +yy358: yych = *++YYCURSOR; switch (yych) { - case 'a': goto yy369; - default: goto yy234; - } -yy369: - yych = *++YYCURSOR; - switch (yych) { - case 't': goto yy370; - default: goto yy234; - } -yy370: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { case '0': case '1': case '2': case '3': case '4': @@ -5422,56 +4071,20 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy371; + case 'z': goto yy149; + default: goto yy359; } -yy371: -#line 113 "ext/yylex.re" - { RET(cast_sym_FLOAT); } -#line 5434 "<stdout>" -yy372: +yy359: +#line 124 "ext/yylex.re" + { RET(cast_sym_STATIC); } +#line 4083 "<stdout>" +yy360: yych = *++YYCURSOR; switch (yych) { - case 's': goto yy383; - default: goto yy234; - } -yy373: - yych = *++YYCURSOR; - switch (yych) { - case 'u': goto yy380; - default: goto yy234; - } -yy374: - yych = *++YYCURSOR; - switch (yych) { - case 't': goto yy375; - default: goto yy234; - } -yy375: - yych = *++YYCURSOR; - switch (yych) { - case 'e': goto yy376; - default: goto yy234; - } -yy376: - yych = *++YYCURSOR; - switch (yych) { - case 'r': goto yy377; - default: goto yy234; - } -yy377: - yych = *++YYCURSOR; - switch (yych) { - case 'n': goto yy378; - default: goto yy234; - } -yy378: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { case '0': case '1': case '2': case '3': case '4': @@ -5530,26 +4143,20 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy379; + case 'z': goto yy149; + default: goto yy361; } -yy379: -#line 112 "ext/yylex.re" - { RET(cast_sym_EXTERN); } -#line 5542 "<stdout>" -yy380: +yy361: +#line 125 "ext/yylex.re" + { RET(cast_sym_STRUCT); } +#line 4155 "<stdout>" +yy362: yych = *++YYCURSOR; switch (yych) { - case 'm': goto yy381; - default: goto yy234; - } -yy381: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { case '0': case '1': case '2': case '3': case '4': @@ -5608,104 +4215,56 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy382; + case 'z': goto yy149; + default: goto yy363; } -yy382: -#line 111 "ext/yylex.re" - { RET(cast_sym_ENUM); } -#line 5620 "<stdout>" -yy383: +yy363: +#line 126 "ext/yylex.re" + { RET(cast_sym_SWITCH); } +#line 4227 "<stdout>" +yy364: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy384; - default: goto yy234; + case 'f': goto yy374; + default: goto yy150; } -yy384: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - 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 yy233; - default: goto yy385; +yy365: + yych = *++YYCURSOR; + switch (yych) { + case 'e': goto yy376; + default: goto yy150; } -yy385: -#line 110 "ext/yylex.re" - { RET(cast_sym_ELSE); } -#line 5698 "<stdout>" -yy386: +yy366: yych = *++YYCURSOR; switch (yych) { - case 'f': goto yy394; - default: goto yy234; + case 'l': goto yy377; + default: goto yy150; } -yy387: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +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': @@ -5759,43 +4318,37 @@ case 'p': case 'q': case 'r': case 's': case 't': + case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - case 'u': goto yy389; - default: goto yy388; + case 'z': goto yy149; + default: goto yy371; } -yy388: -#line 108 "ext/yylex.re" - { RET(cast_sym_DO); } -#line 5776 "<stdout>" -yy389: +yy371: +#line 107 "ext/yylex.re" + { RET(cast_sym_DEFAULT); } +#line 4335 "<stdout>" +yy372: yych = *++YYCURSOR; switch (yych) { - case 'b': goto yy390; - default: goto yy234; + case 'r': goto yy383; + default: goto yy150; } -yy390: +yy373: yych = *++YYCURSOR; switch (yych) { - case 'l': goto yy391; - default: goto yy234; + case 't': goto yy385; + default: goto yy150; } -yy391: +yy374: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy392; - default: goto yy234; - } -yy392: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { case '0': case '1': case '2': case '3': case '4': @@ -5854,44 +4407,32 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy393; + case 'z': goto yy149; + default: goto yy375; } -yy393: -#line 109 "ext/yylex.re" - { RET(cast_sym_DOUBLE); } -#line 5866 "<stdout>" -yy394: +yy375: +#line 127 "ext/yylex.re" + { RET(cast_sym_TYPEDEF); } +#line 4419 "<stdout>" +yy376: yych = *++YYCURSOR; switch (yych) { - case 'a': goto yy395; - default: goto yy234; + case 'd': goto yy387; + default: goto yy150; } -yy395: +yy377: yych = *++YYCURSOR; switch (yych) { - case 'u': goto yy396; - default: goto yy234; + case 'e': goto yy389; + default: goto yy150; } -yy396: +yy378: yych = *++YYCURSOR; switch (yych) { - case 'l': goto yy397; - default: goto yy234; - } -yy397: - yych = *++YYCURSOR; - switch (yych) { - case 't': goto yy398; - default: goto yy234; - } -yy398: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { case '0': case '1': case '2': case '3': case '4': @@ -5950,75 +4491,26 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy399; + case 'z': goto yy149; + default: goto yy379; } -yy399: -#line 107 "ext/yylex.re" - { RET(cast_sym_DEFAULT); } -#line 5962 "<stdout>" -yy400: +yy379: +#line 136 "ext/yylex.re" + { RET(cast_sym_COMPLEX); } +#line 4503 "<stdout>" +yy380: yych = *++YYCURSOR; switch (yych) { - case 's': goto yy416; - default: goto yy234; + case 'r': goto yy391; + default: goto yy150; } -yy401: +yy381: yych = *++YYCURSOR; switch (yych) { - case 'a': goto yy413; - default: goto yy234; - } -yy402: - yych = *++YYCURSOR; - switch (yych) { - case 'n': goto yy403; - default: goto yy234; - } -yy403: - yych = *++YYCURSOR; - switch (yych) { - case 's': goto yy404; - case 't': goto yy405; - default: goto yy234; - } -yy404: - yych = *++YYCURSOR; - switch (yych) { - case 't': goto yy411; - default: goto yy234; - } -yy405: - yych = *++YYCURSOR; - switch (yych) { - case 'i': goto yy406; - default: goto yy234; - } -yy406: - yych = *++YYCURSOR; - switch (yych) { - case 'n': goto yy407; - default: goto yy234; - } -yy407: - yych = *++YYCURSOR; - switch (yych) { - case 'u': goto yy408; - default: goto yy234; - } -yy408: - yych = *++YYCURSOR; - switch (yych) { - case 'e': goto yy409; - default: goto yy234; - } -yy409: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { case '0': case '1': case '2': case '3': case '4': @@ -6077,20 +4569,20 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy410; + case 'z': goto yy149; + default: goto yy382; } -yy410: +yy382: #line 106 "ext/yylex.re" { RET(cast_sym_CONTINUE); } -#line 6089 "<stdout>" -yy411: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { +#line 4581 "<stdout>" +yy383: + yych = *++YYCURSOR; + switch (yych) { case '0': case '1': case '2': case '3': case '4': @@ -6149,26 +4641,20 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy412; + case 'z': goto yy149; + default: goto yy384; } -yy412: -#line 105 "ext/yylex.re" - { RET(cast_sym_CONST); } -#line 6161 "<stdout>" -yy413: +yy384: +#line 119 "ext/yylex.re" + { RET(cast_sym_REGISTER); } +#line 4653 "<stdout>" +yy385: yych = *++YYCURSOR; switch (yych) { - case 'r': goto yy414; - default: goto yy234; - } -yy414: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { case '0': case '1': case '2': case '3': case '4': @@ -6227,26 +4713,20 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy415; + case 'z': goto yy149; + default: goto yy386; } -yy415: -#line 104 "ext/yylex.re" - { RET(cast_sym_CHAR); } -#line 6239 "<stdout>" -yy416: +yy386: +#line 134 "ext/yylex.re" + { RET(cast_sym_RESTRICT); } +#line 4725 "<stdout>" +yy387: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy417; - default: goto yy234; - } -yy417: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { case '0': case '1': case '2': case '3': case '4': @@ -6305,38 +4785,20 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy418; + case 'z': goto yy149; + default: goto yy388; } -yy418: -#line 103 "ext/yylex.re" - { RET(cast_sym_CASE); } -#line 6317 "<stdout>" -yy419: +yy388: +#line 129 "ext/yylex.re" + { RET(cast_sym_UNSIGNED); } +#line 4797 "<stdout>" +yy389: yych = *++YYCURSOR; switch (yych) { - case 'e': goto yy420; - default: goto yy234; - } -yy420: - yych = *++YYCURSOR; - switch (yych) { - case 'a': goto yy421; - default: goto yy234; - } -yy421: - yych = *++YYCURSOR; - switch (yych) { - case 'k': goto yy422; - default: goto yy234; - } -yy422: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { case '0': case '1': case '2': case '3': case '4': @@ -6395,32 +4857,26 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy423; + case 'z': goto yy149; + default: goto yy390; } -yy423: -#line 102 "ext/yylex.re" - { RET(cast_sym_BREAK); } -#line 6407 "<stdout>" -yy424: +yy390: +#line 131 "ext/yylex.re" + { RET(cast_sym_VOLATILE); } +#line 4869 "<stdout>" +yy391: yych = *++YYCURSOR; switch (yych) { - case 't': goto yy425; - default: goto yy234; + case 'y': goto yy392; + default: goto yy150; } -yy425: +yy392: yych = *++YYCURSOR; switch (yych) { - case 'o': goto yy426; - default: goto yy234; - } -yy426: - ++YYCURSOR; - switch ((yych = *YYCURSOR)) { case '0': case '1': case '2': case '3': case '4': @@ -6479,121 +4935,105 @@ case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy233; - default: goto yy427; + case 'z': goto yy149; + default: goto yy393; } -yy427: -#line 101 "ext/yylex.re" - { RET(cast_sym_AUTO); } -#line 6491 "<stdout>" -yy428: - ++YYCURSOR; -#line 237 "ext/yylex.re" - { RET(cast_sym_DIVEQ); } -#line 6496 "<stdout>" -yy430: - ++YYCURSOR; -#line 99 "ext/yylex.re" - { goto comment2; } -#line 6501 "<stdout>" -yy432: - ++YYCURSOR; -#line 98 "ext/yylex.re" - { goto comment; } -#line 6506 "<stdout>" +yy393: +#line 137 "ext/yylex.re" + { RET(cast_sym_IMAGINARY); } +#line 4947 "<stdout>" } #line 302 "ext/yylex.re" comment: -#line 6513 "<stdout>" +#line 4954 "<stdout>" { YYCTYPE yych; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; switch (yych) { - case 0x00: goto yy440; - case '\n': goto yy438; - case '*': goto yy436; - default: goto yy442; + case 0x00: goto yy396; + case '\n': goto yy400; + case '*': goto yy402; + default: goto yy398; } -yy436: +yy396: ++YYCURSOR; - switch ((yych = *YYCURSOR)) { - case '/': goto yy443; - default: goto yy437; - } -yy437: +#line 314 "ext/yylex.re" + { + if (cursor == p->eof) + rb_raise(cast_eParseError, + "%ld: unclosed multiline comment", + p->lineno); + } +#line 4974 "<stdout>" +yy398: + ++YYCURSOR; +yy399: #line 321 "ext/yylex.re" { goto comment; } -#line 6533 "<stdout>" -yy438: +#line 4980 "<stdout>" +yy400: ++YYCURSOR; #line 308 "ext/yylex.re" { p->tok = p->pos = cursor; ++p->lineno; goto comment; } -#line 6541 "<stdout>" -yy440: - ++YYCURSOR; -#line 314 "ext/yylex.re" - { - if (cursor == p->eof) - rb_raise(cast_eParseError, - "%ld: unclosed multiline comment", - p->lineno); - } -#line 6551 "<stdout>" -yy442: +#line 4988 "<stdout>" +yy402: yych = *++YYCURSOR; - goto yy437; -yy443: + switch (yych) { + case '/': goto yy403; + default: goto yy399; + } +yy403: ++YYCURSOR; #line 306 "ext/yylex.re" { goto std; } -#line 6559 "<stdout>" +#line 4999 "<stdout>" } #line 322 "ext/yylex.re" comment2: -#line 6566 "<stdout>" +#line 5006 "<stdout>" { YYCTYPE yych; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; switch (yych) { - case 0x00: goto yy449; - case '\n': goto yy447; - default: goto yy451; + case 0x00: goto yy407; + case '\n': goto yy411; + default: goto yy409; } -yy447: +yy407: ++YYCURSOR; -#line 327 "ext/yylex.re" - { - p->tok = p->pos = cursor; ++p->lineno; - goto std; - } -#line 6583 "<stdout>" -yy449: - ++YYCURSOR; #line 333 "ext/yylex.re" { if (cursor == p->eof) RET(Qnil); goto std; } -#line 6591 "<stdout>" -yy451: +#line 5023 "<stdout>" +yy409: ++YYCURSOR; #line 338 "ext/yylex.re" { goto comment2; } -#line 6596 "<stdout>" +#line 5028 "<stdout>" +yy411: + ++YYCURSOR; +#line 327 "ext/yylex.re" + { + p->tok = p->pos = cursor; ++p->lineno; + goto std; + } +#line 5036 "<stdout>" } #line 339 "ext/yylex.re" }