X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Fparser.c;h=47b89cb615d3f3e40150eeb67afbba281a68330e;hp=862c9ad1511f3aa7d1525498d2a3bc05002f5ce4;hb=2559f07a178b681dc240e20153ff5abdff54cb34;hpb=4926283fa0589f3f9c25616304672018dba77429 diff --git a/src/parser.c b/src/parser.c index 862c9ad..47b89cb 100644 --- a/src/parser.c +++ b/src/parser.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.16 on Thu Mar 30 16:01:25 2017 */ +/* Generated by re2c 1.1.1 on Fri Nov 2 07:35:40 2018 */ #line 1 "src/parser.re" /******************************************************************************* Copyright (c) 2016, Michael Wallner . @@ -28,11 +28,15 @@ #include "php_psi_stdinc.h" #include #include +#include #include +#include + #include "parser.h" #define YYMAXFILL 15 + #ifndef YYMAXFILL # define YYMAXFILL 256 #endif @@ -68,7 +72,7 @@ struct psi_parser_input *psi_parser_open_file(struct psi_parser *P, const char * return NULL; } - if (!(fb = malloc(sizeof(*fb) + strlen(filename) + 1 + sb.st_size + YYMAXFILL))) { + if (!(fb = malloc(sizeof(*fb) + sb.st_size + YYMAXFILL))) { if (report_errors) { P->error(PSI_DATA(P), NULL, PSI_WARNING, "Could not allocate %zu bytes for reading '%s': %s", @@ -98,10 +102,8 @@ struct psi_parser_input *psi_parser_open_file(struct psi_parser *P, const char * return NULL; } - memset(fb->buffer + sb.st_size, 0, YYMAXFILL); fb->length = sb.st_size; - fb->file = &fb->buffer[sb.st_size + YYMAXFILL]; - memcpy(fb->file, filename, strlen(filename) + 1); + fb->file = zend_string_init_interned(filename, strlen(filename), 1); return fb; } @@ -110,7 +112,7 @@ struct psi_parser_input *psi_parser_open_string(struct psi_parser *P, const char { struct psi_parser_input *sb; - if (!(sb = malloc(sizeof(*sb) + sizeof("") + length + YYMAXFILL))) { + if (!(sb = malloc(sizeof(*sb) + length + YYMAXFILL))) { P->error(PSI_DATA(P), NULL, PSI_WARNING, "Could not allocate %zu bytes: %s", length + YYMAXFILL, strerror(errno)); @@ -121,68 +123,11 @@ struct psi_parser_input *psi_parser_open_string(struct psi_parser *P, const char memset(sb->buffer + length, 0, YYMAXFILL); sb->length = length; - sb->file = &sb->buffer[length + YYMAXFILL]; - memcpy(sb->file, "", sizeof("")); + sb->file = zend_string_init_interned("", strlen(""), 1); return sb; } -#if 0 -static void psi_parser_register_constants(struct psi_parser *P) -{ - zend_string *key; - zval *val; - - ZEND_HASH_FOREACH_STR_KEY_VAL(&P->cpp.defs, key, val) - { - struct psi_impl_def_val *iv; - struct psi_const_type *ct; - struct psi_const *c; - const char *ctn; - token_t ctt; - impl_val tmp; - zend_string *str; - - ZVAL_DEREF(val); - switch (Z_TYPE_P(val)) { - case IS_TRUE: - case IS_FALSE: - ctt = PSI_T_BOOL; - ctn = "bool"; - tmp.zend.bval = Z_TYPE_P(val) == IS_TRUE; - break; - case IS_LONG: - ctt = PSI_T_INT; - ctn = "int"; - tmp.zend.lval = Z_LVAL_P(val); - break; - case IS_DOUBLE: - ctt = PSI_T_FLOAT; - ctn = "float"; - tmp.dval = Z_DVAL_P(val); - break; - default: - ctt = PSI_T_STRING; - ctn = "string"; - str = zval_get_string(val); - tmp.zend.str = zend_string_dup(str, 1); - zend_string_release(str); - break; - } - - iv = psi_impl_def_val_init(ctt, NULL); - iv->ival = tmp; - ct = psi_const_type_init(ctt, ctn); - c = psi_const_init(ct, key->val, iv); - if (!P->consts) { - P->consts = psi_plist_init((psi_plist_dtor) psi_const_free); - } - P->consts = psi_plist_add(P->consts, &c); - } - ZEND_HASH_FOREACH_END(); -} -#endif - struct psi_plist *psi_parser_preprocess(struct psi_parser *P, struct psi_plist **tokens) { if (psi_cpp_process(P->preproc, tokens)) { @@ -199,6 +144,79 @@ bool psi_parser_process(struct psi_parser *P, struct psi_plist *tokens, size_t * return true; } +void psi_parser_postprocess(struct psi_parser *P) +{ + unsigned flags; + zend_string *name; + struct psi_validate_scope scope = {0}; + + psi_validate_scope_ctor(&scope); + scope.defs = &P->preproc->defs; + + flags = P->flags; + P->flags |= PSI_SILENT; + + /* register const macros */ + ZEND_HASH_FOREACH_STR_KEY_PTR(&P->preproc->defs, name, scope.macro) + { + if (scope.macro->sig) { + } else if (scope.macro->exp) { + if (psi_num_exp_validate(PSI_DATA(P), scope.macro->exp, &scope)) { + struct psi_impl_type *type; + struct psi_impl_def_val *def; + struct psi_const *cnst; + struct psi_num_exp *num; + smart_str ns_name = {0}; + zend_string *name_str, *type_str; + + smart_str_appendl_ex(&ns_name, ZEND_STRL("psi\\"), 1); + smart_str_append_ex(&ns_name, name, 1); + name_str = smart_str_extract(&ns_name); + type_str = zend_string_init_interned(ZEND_STRL(""), 1); + + num = psi_num_exp_copy(scope.macro->exp); + def = psi_impl_def_val_init(PSI_T_NUMBER, num); + type = psi_impl_type_init(PSI_T_NUMBER, type_str); + cnst = psi_const_init(type, name_str, def); + P->consts = psi_plist_add(P->consts, &cnst); + zend_string_release(name_str); + zend_string_release(type_str); + } + } else { + if (psi_plist_count(scope.macro->tokens) == 1) { + struct psi_token *t; + + if (psi_plist_get(scope.macro->tokens, 0, &t)) { + if (t->type == PSI_T_QUOTED_STRING) { + struct psi_impl_type *type; + struct psi_impl_def_val *def; + struct psi_const *cnst; + smart_str ns_name = {0}; + zend_string *name_str, *type_str; + + smart_str_appendl_ex(&ns_name, ZEND_STRL("psi\\"), 1); + smart_str_append_ex(&ns_name, name, 1); + name_str = smart_str_extract(&ns_name); + type_str = zend_string_init_interned(ZEND_STRL("string"), 1); + + type = psi_impl_type_init(PSI_T_STRING, type_str); + def = psi_impl_def_val_init(PSI_T_QUOTED_STRING, t->text); + cnst = psi_const_init(type, name_str, def); + P->consts = psi_plist_add(P->consts, &cnst); + zend_string_release(name_str); + zend_string_release(type_str); + } + } + } + } + } + ZEND_HASH_FOREACH_END(); + + P->flags = flags; + + psi_validate_scope_dtor(&scope); +} + bool psi_parser_parse(struct psi_parser *P, struct psi_parser_input *I) { struct psi_plist *scanned, *preproc; @@ -218,6 +236,8 @@ bool psi_parser_parse(struct psi_parser *P, struct psi_parser_input *I) return false; } + psi_parser_postprocess(P); + psi_plist_free(preproc); return true; } @@ -244,17 +264,17 @@ void psi_parser_free(struct psi_parser **P) ++I->lines #define NEWTOKEN(t) \ - token = psi_token_init(t, tok, cur - tok, tok - eol + 1, I->lines, I->file); \ + if (t == PSI_T_COMMENT || t == PSI_T_WHITESPACE) { \ + token = psi_token_init(t, "", 0, tok - eol + 1, I->lines, I->file); \ + } else { \ + token = psi_token_init(t, tok, cur - tok, tok - eol + 1, I->lines, I->file); \ + } \ tokens = psi_plist_add(tokens, &token); \ if (P->flags & PSI_DEBUG) { \ fprintf(stderr, "PSI< "); \ psi_token_dump(2, token); \ } -union int_suffix { - char s[SIZEOF_UINT32_T]; - uint32_t i; -}; struct psi_plist *psi_parser_scan(struct psi_parser *P, struct psi_parser_input *I) { @@ -265,6 +285,8 @@ struct psi_plist *psi_parser_scan(struct psi_parser *P, struct psi_parser_input bool escaped; token_t char_width; + PSI_DEBUG_PRINT(P, "PSI: scanning %s\n", I->file->val); + tok = mrk = eol = cur = I->buffer; lim = I->buffer + I->length; I->lines = 1; @@ -275,8 +297,10 @@ struct psi_plist *psi_parser_scan(struct psi_parser *P, struct psi_parser_input ctxmrk = NULL; tok = cur; + (void) ctxmrk; + -#line 280 "src/parser.c" +#line 304 "src/parser.c" { unsigned char yych; unsigned int yyaccept = 0; @@ -352,18 +376,12 @@ struct psi_plist *psi_parser_scan(struct psi_parser *P, struct psi_parser_input case '?': goto yy52; case 'A': case 'a': goto yy54; - case 'B': - case 'b': goto yy56; - case 'C': - case 'c': goto yy57; - case 'D': - case 'd': goto yy58; - case 'E': - case 'e': goto yy59; - case 'F': - case 'f': goto yy60; - case 'I': - case 'i': goto yy63; + case 'B': goto yy56; + case 'C': goto yy57; + case 'D': goto yy58; + case 'E': goto yy59; + case 'F': goto yy60; + case 'I': goto yy63; case 'L': goto yy64; case 'M': case 'm': goto yy65; @@ -374,37 +392,42 @@ struct psi_plist *psi_parser_scan(struct psi_parser *P, struct psi_parser_input case 'P': goto yy68; case 'R': case 'r': goto yy69; - case 'S': - case 's': goto yy70; - case 'T': - case 't': goto yy71; + case 'S': goto yy70; + case 'T': goto yy71; case 'U': goto yy72; - case 'V': - case 'v': goto yy73; case 'W': - case 'w': goto yy74; + case 'w': goto yy73; case 'Z': - case 'z': goto yy75; - case '[': goto yy76; - case '\\': goto yy78; - case ']': goto yy80; - case '^': goto yy82; - case '_': goto yy84; - case 'l': goto yy85; - case 'p': goto yy86; - case 'u': goto yy87; - case '{': goto yy88; - case '|': goto yy90; - case '}': goto yy92; - case '~': goto yy94; + case 'z': goto yy74; + case '[': goto yy75; + case '\\': goto yy77; + case ']': goto yy79; + case '^': goto yy81; + case '_': goto yy83; + case 'b': goto yy84; + case 'c': goto yy85; + case 'd': goto yy86; + case 'e': goto yy87; + case 'f': goto yy88; + case 'i': goto yy89; + case 'l': goto yy90; + case 'p': goto yy91; + case 's': goto yy92; + case 't': goto yy93; + case 'u': goto yy94; + case 'v': goto yy95; + case '{': goto yy96; + case '|': goto yy98; + case '}': goto yy100; + case '~': goto yy102; default: goto yy61; } yy2: ++cur; yy3: -#line 450 "src/parser.re" +#line 469 "src/parser.re" { NEWTOKEN(-2); goto error; } -#line 408 "src/parser.c" +#line 431 "src/parser.c" yy4: ++cur; if (lim <= cur) if (cur >= lim) goto done;; @@ -416,39 +439,39 @@ yy4: default: goto yy6; } yy6: -#line 449 "src/parser.re" +#line 468 "src/parser.re" { NEWTOKEN(PSI_T_WHITESPACE); goto start; } -#line 422 "src/parser.c" +#line 445 "src/parser.c" yy7: ++cur; -#line 448 "src/parser.re" +#line 467 "src/parser.re" { NEWTOKEN(PSI_T_EOL); NEWLINE(); goto start; } -#line 427 "src/parser.c" +#line 450 "src/parser.c" yy9: - ++cur; - switch ((yych = *cur)) { - case '=': goto yy96; + yych = *++cur; + switch (yych) { + case '=': goto yy104; default: goto yy10; } yy10: -#line 347 "src/parser.re" +#line 370 "src/parser.re" { NEWTOKEN(PSI_T_NOT); goto start; } -#line 437 "src/parser.c" +#line 460 "src/parser.c" yy11: ++cur; -#line 320 "src/parser.re" +#line 343 "src/parser.re" { escaped = false; tok += 1; goto string; } -#line 442 "src/parser.c" +#line 465 "src/parser.c" yy13: - ++cur; - switch ((yych = *cur)) { - case '#': goto yy98; + yych = *++cur; + switch (yych) { + case '#': goto yy106; default: goto yy14; } yy14: -#line 330 "src/parser.re" +#line 353 "src/parser.re" { NEWTOKEN(PSI_T_HASH); goto start; } -#line 452 "src/parser.c" +#line 475 "src/parser.c" yy15: yych = *++cur; switch (yych) { @@ -517,48 +540,48 @@ yy15: case '}': case '~': case 0x7F: goto yy3; - default: goto yy100; + default: goto yy108; } yy16: ++cur; -#line 348 "src/parser.re" +#line 371 "src/parser.re" { NEWTOKEN(PSI_T_MODULO); goto start; } -#line 527 "src/parser.c" +#line 550 "src/parser.c" yy18: - ++cur; - switch ((yych = *cur)) { - case '&': goto yy103; + yych = *++cur; + switch (yych) { + case '&': goto yy111; default: goto yy19; } yy19: -#line 349 "src/parser.re" +#line 372 "src/parser.re" { NEWTOKEN(PSI_T_AMPERSAND); goto start; } -#line 537 "src/parser.c" +#line 560 "src/parser.c" yy20: ++cur; -#line 319 "src/parser.re" +#line 342 "src/parser.re" { escaped = false; tok += 1; goto character; } -#line 542 "src/parser.c" +#line 565 "src/parser.c" yy22: ++cur; -#line 331 "src/parser.re" +#line 354 "src/parser.re" { NEWTOKEN(PSI_T_LPAREN); goto start; } -#line 547 "src/parser.c" +#line 570 "src/parser.c" yy24: ++cur; -#line 332 "src/parser.re" +#line 355 "src/parser.re" { NEWTOKEN(PSI_T_RPAREN); goto start; } -#line 552 "src/parser.c" +#line 575 "src/parser.c" yy26: ++cur; -#line 345 "src/parser.re" +#line 368 "src/parser.re" { NEWTOKEN(PSI_T_ASTERISK); goto start; } -#line 557 "src/parser.c" +#line 580 "src/parser.c" yy28: yyaccept = 0; yych = *(mrk = ++cur); switch (yych) { - case '.': goto yy105; + case '.': goto yy113; case '0': goto yy38; case '1': case '2': @@ -572,19 +595,19 @@ yy28: default: goto yy29; } yy29: -#line 350 "src/parser.re" +#line 373 "src/parser.re" { NEWTOKEN(PSI_T_PLUS); goto start; } -#line 578 "src/parser.c" +#line 601 "src/parser.c" yy30: ++cur; -#line 334 "src/parser.re" +#line 357 "src/parser.re" { NEWTOKEN(PSI_T_COMMA); goto start; } -#line 583 "src/parser.c" +#line 606 "src/parser.c" yy32: yyaccept = 1; yych = *(mrk = ++cur); switch (yych) { - case '.': goto yy105; + case '.': goto yy113; case '0': goto yy38; case '1': case '2': @@ -598,14 +621,14 @@ yy32: default: goto yy33; } yy33: -#line 351 "src/parser.re" +#line 374 "src/parser.re" { NEWTOKEN(PSI_T_MINUS); goto start; } -#line 604 "src/parser.c" +#line 627 "src/parser.c" yy34: yyaccept = 2; yych = *(mrk = ++cur); switch (yych) { - case '.': goto yy107; + case '.': goto yy115; case '0': case '1': case '2': @@ -615,60 +638,46 @@ yy34: case '6': case '7': case '8': - case '9': goto yy108; + case '9': goto yy116; default: goto yy35; } yy35: -#line 362 "src/parser.re" +#line 385 "src/parser.re" { NEWTOKEN(PSI_T_PERIOD); goto start; } -#line 625 "src/parser.c" +#line 648 "src/parser.c" yy36: - ++cur; - switch ((yych = *cur)) { - case '*': goto yy111; - case '/': goto yy113; + yych = *++cur; + switch (yych) { + case '*': goto yy119; + case '/': goto yy121; default: goto yy37; } yy37: -#line 352 "src/parser.re" +#line 375 "src/parser.re" { NEWTOKEN(PSI_T_SLASH); goto start; } -#line 636 "src/parser.c" +#line 659 "src/parser.c" yy38: yyaccept = 3; yych = *(mrk = ++cur); - ctxmrk = cur; switch (yych) { - case '.': goto yy115; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': goto yy117; + case '.': goto yy123; case 'E': - case 'e': goto yy119; - case 'L': - case 'l': goto yy120; - case 'U': - case 'u': goto yy122; + case 'e': goto yy127; case 'X': - case 'x': goto yy124; - default: goto yy39; + case 'x': goto yy132; + default: goto yy126; } yy39: -#line 306 "src/parser.re" +#line 329 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT; goto start; } -#line 664 "src/parser.c" +#line 674 "src/parser.c" yy40: yyaccept = 3; mrk = ++cur; if ((lim - cur) < 3) if (cur >= lim) goto done;; yych = *cur; - ctxmrk = cur; switch (yych) { - case '.': goto yy115; + case '.': goto yy123; case '0': case '1': case '2': @@ -680,23 +689,23 @@ yy40: case '8': case '9': goto yy40; case 'E': - case 'e': goto yy119; + case 'e': goto yy127; case 'L': - case 'l': goto yy120; + case 'l': goto yy128; case 'U': - case 'u': goto yy122; + case 'u': goto yy130; default: goto yy39; } yy42: ++cur; -#line 335 "src/parser.re" +#line 358 "src/parser.re" { NEWTOKEN(PSI_T_COLON); goto start; } -#line 695 "src/parser.c" +#line 704 "src/parser.c" yy44: ++cur; -#line 333 "src/parser.re" +#line 356 "src/parser.re" { NEWTOKEN(PSI_T_EOS); goto start; } -#line 700 "src/parser.c" +#line 709 "src/parser.c" yy46: yyaccept = 4; yych = *(mrk = ++cur); @@ -766,59 +775,61 @@ yy46: case 'w': case 'x': case 'y': - case 'z': goto yy125; - case '<': goto yy127; - case '=': goto yy129; + case 'z': goto yy133; + case '<': goto yy135; + case '=': goto yy137; default: goto yy47; } yy47: -#line 360 "src/parser.re" +#line 383 "src/parser.re" { NEWTOKEN(PSI_T_LCHEVR); goto start; } -#line 778 "src/parser.c" +#line 787 "src/parser.c" yy48: - ++cur; - switch ((yych = *cur)) { - case '=': goto yy131; + yych = *++cur; + switch (yych) { + case '=': goto yy139; default: goto yy49; } yy49: -#line 344 "src/parser.re" +#line 367 "src/parser.re" { NEWTOKEN(PSI_T_EQUALS); goto start; } -#line 788 "src/parser.c" +#line 797 "src/parser.c" yy50: - ++cur; - switch ((yych = *cur)) { - case '=': goto yy133; - case '>': goto yy135; + yych = *++cur; + switch (yych) { + case '=': goto yy141; + case '>': goto yy143; default: goto yy51; } yy51: -#line 361 "src/parser.re" +#line 384 "src/parser.re" { NEWTOKEN(PSI_T_RCHEVR); goto start; } -#line 799 "src/parser.c" +#line 808 "src/parser.c" yy52: ++cur; -#line 364 "src/parser.re" +#line 387 "src/parser.re" { NEWTOKEN(PSI_T_IIF); goto start; } -#line 804 "src/parser.c" +#line 813 "src/parser.c" yy54: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'R': - case 'r': goto yy137; + case 'r': goto yy145; + case 'S': + case 's': goto yy146; default: goto yy62; } yy55: -#line 443 "src/parser.re" +#line 462 "src/parser.re" { NEWTOKEN(PSI_T_NAME); goto start; } -#line 816 "src/parser.c" +#line 827 "src/parser.c" yy56: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'O': - case 'o': goto yy139; + case 'o': goto yy149; default: goto yy62; } yy57: @@ -826,11 +837,9 @@ yy57: yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy140; - case 'H': - case 'h': goto yy141; + case 'a': goto yy150; case 'O': - case 'o': goto yy142; + case 'o': goto yy151; default: goto yy62; } yy58: @@ -838,9 +847,7 @@ yy58: yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy143; - case 'O': - case 'o': goto yy144; + case 'e': goto yy152; default: goto yy62; } yy59: @@ -848,11 +855,11 @@ yy59: yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy145; + case 'l': goto yy153; case 'N': - case 'n': goto yy146; + case 'n': goto yy154; case 'R': - case 'r': goto yy147; + case 'r': goto yy155; default: goto yy62; } yy60: @@ -860,13 +867,13 @@ yy60: yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy148; + case 'a': goto yy156; case 'L': - case 'l': goto yy149; + case 'l': goto yy157; case 'R': - case 'r': goto yy150; + case 'r': goto yy158; case 'U': - case 'u': goto yy151; + case 'u': goto yy159; default: goto yy62; } yy61: @@ -940,7 +947,7 @@ yy62: case '}': case '~': case 0x7F: goto yy55; - case '\\': goto yy138; + case '\\': goto yy148; default: goto yy61; } yy63: @@ -948,24 +955,21 @@ yy63: yych = *(mrk = ++cur); switch (yych) { case 'F': - case 'f': goto yy152; + case 'f': goto yy160; case 'N': - case 'n': goto yy154; + case 'n': goto yy162; default: goto yy62; } yy64: yyaccept = 5; yych = *(mrk = ++cur); - ctxmrk = cur; switch (yych) { case '"': - case '\'': goto yy155; + case '\'': goto yy163; case 'E': - case 'e': goto yy157; + case 'e': goto yy165; case 'I': - case 'i': goto yy158; - case 'O': - case 'o': goto yy159; + case 'i': goto yy166; default: goto yy62; } yy65: @@ -973,7 +977,7 @@ yy65: yych = *(mrk = ++cur); switch (yych) { case 'I': - case 'i': goto yy160; + case 'i': goto yy167; default: goto yy62; } yy66: @@ -981,7 +985,7 @@ yy66: yych = *(mrk = ++cur); switch (yych) { case 'U': - case 'u': goto yy161; + case 'u': goto yy168; default: goto yy62; } yy67: @@ -989,7 +993,7 @@ yy67: yych = *(mrk = ++cur); switch (yych) { case 'B': - case 'b': goto yy162; + case 'b': goto yy169; default: goto yy62; } yy68: @@ -997,11 +1001,11 @@ yy68: yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy163; + case 'a': goto yy170; case 'O': - case 'o': goto yy164; + case 'o': goto yy171; case 'R': - case 'r': goto yy165; + case 'r': goto yy172; default: goto yy62; } yy69: @@ -1009,7 +1013,7 @@ yy69: yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy166; + case 'e': goto yy173; default: goto yy62; } yy70: @@ -1017,13 +1021,9 @@ yy70: yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy167; - case 'H': - case 'h': goto yy168; - case 'I': - case 'i': goto yy169; + case 'e': goto yy174; case 'T': - case 't': goto yy170; + case 't': goto yy175; default: goto yy62; } yy71: @@ -1031,60 +1031,47 @@ yy71: yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy171; + case 'e': goto yy176; case 'O': - case 'o': goto yy172; + case 'o': goto yy177; case 'R': - case 'r': goto yy173; - case 'Y': - case 'y': goto yy174; + case 'r': goto yy178; default: goto yy62; } yy72: yyaccept = 5; yych = *(mrk = ++cur); - ctxmrk = cur; switch (yych) { case '"': - case '\'': goto yy175; - case 'I': - case 'i': goto yy177; + case '\'': goto yy179; case 'N': - case 'n': goto yy178; + case 'n': goto yy181; default: goto yy62; } yy73: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'O': - case 'o': goto yy179; - default: goto yy62; - } -yy74: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy180; + case 'a': goto yy182; default: goto yy62; } -yy75: +yy74: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'V': - case 'v': goto yy181; + case 'v': goto yy183; default: goto yy62; } -yy76: +yy75: ++cur; -#line 338 "src/parser.re" +#line 361 "src/parser.re" { NEWTOKEN(PSI_T_LBRACKET); goto start; } -#line 1085 "src/parser.c" -yy78: - ++cur; - switch ((yych = *cur)) { +#line 1072 "src/parser.c" +yy77: + yych = *++cur; + switch (yych) { case 0x00: case 0x01: case 0x02: @@ -1159,104 +1146,196 @@ yy78: case '|': case '}': case '~': - case 0x7F: goto yy79; - default: goto yy182; + case 0x7F: goto yy78; + default: goto yy184; } -yy79: -#line 353 "src/parser.re" +yy78: +#line 376 "src/parser.re" { NEWTOKEN(PSI_T_BSLASH); goto start; } -#line 1169 "src/parser.c" -yy80: +#line 1156 "src/parser.c" +yy79: ++cur; -#line 339 "src/parser.re" +#line 362 "src/parser.re" { NEWTOKEN(PSI_T_RBRACKET); goto start; } -#line 1174 "src/parser.c" -yy82: +#line 1161 "src/parser.c" +yy81: ++cur; -#line 355 "src/parser.re" +#line 378 "src/parser.re" { NEWTOKEN(PSI_T_CARET); goto start; } -#line 1179 "src/parser.c" +#line 1166 "src/parser.c" +yy83: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case '_': goto yy187; + default: goto yy62; + } yy84: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '_': goto yy185; + case 'O': goto yy149; + case 'o': goto yy188; default: goto yy62; } yy85: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'E': - case 'e': goto yy157; - case 'I': goto yy158; - case 'O': - case 'o': goto yy159; - case 'i': goto yy186; + case 'A': + case 'a': goto yy150; + case 'O': goto yy151; + case 'h': goto yy189; + case 'o': goto yy190; default: goto yy62; } yy86: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'E': + case 'e': goto yy152; + case 'o': goto yy191; + default: goto yy62; + } +yy87: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'L': + case 'l': goto yy153; + case 'N': goto yy154; + case 'R': + case 'r': goto yy155; + case 'n': goto yy192; + default: goto yy62; + } +yy88: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'A': + case 'a': goto yy156; + case 'L': goto yy157; + case 'R': + case 'r': goto yy158; + case 'U': + case 'u': goto yy159; + case 'l': goto yy193; + default: goto yy62; + } +yy89: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'F': + case 'f': goto yy160; + case 'N': goto yy162; + case 'n': goto yy194; + default: goto yy62; + } +yy90: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'E': + case 'e': goto yy165; + case 'I': goto yy166; + case 'i': goto yy195; + case 'o': goto yy196; + default: goto yy62; + } +yy91: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy163; + case 'a': goto yy170; case 'O': - case 'o': goto yy164; - case 'R': goto yy165; - case 'r': goto yy187; + case 'o': goto yy171; + case 'R': goto yy172; + case 'r': goto yy197; default: goto yy62; } -yy87: +yy92: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'E': + case 'e': goto yy174; + case 'T': goto yy175; + case 'h': goto yy198; + case 'i': goto yy199; + case 't': goto yy200; + default: goto yy62; + } +yy93: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'E': + case 'e': goto yy176; + case 'O': + case 'o': goto yy177; + case 'R': + case 'r': goto yy178; + case 'y': goto yy201; + default: goto yy62; + } +yy94: yyaccept = 5; yych = *(mrk = ++cur); - ctxmrk = cur; switch (yych) { case '"': - case '\'': goto yy188; - case '8': goto yy190; - case 'I': - case 'i': goto yy177; - case 'N': - case 'n': goto yy178; + case '\'': goto yy202; + case '8': goto yy204; + case 'N': goto yy181; + case 'n': goto yy205; default: goto yy62; } -yy88: +yy95: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'o': goto yy206; + default: goto yy62; + } +yy96: ++cur; -#line 336 "src/parser.re" +#line 359 "src/parser.re" { NEWTOKEN(PSI_T_LBRACE); goto start; } -#line 1229 "src/parser.c" -yy90: - ++cur; - switch ((yych = *cur)) { - case '|': goto yy191; - default: goto yy91; +#line 1308 "src/parser.c" +yy98: + yych = *++cur; + switch (yych) { + case '|': goto yy207; + default: goto yy99; } -yy91: -#line 354 "src/parser.re" +yy99: +#line 377 "src/parser.re" { NEWTOKEN(PSI_T_PIPE); goto start; } -#line 1239 "src/parser.c" -yy92: +#line 1318 "src/parser.c" +yy100: ++cur; -#line 337 "src/parser.re" +#line 360 "src/parser.re" { NEWTOKEN(PSI_T_RBRACE); goto start; } -#line 1244 "src/parser.c" -yy94: +#line 1323 "src/parser.c" +yy102: ++cur; -#line 346 "src/parser.re" +#line 369 "src/parser.re" { NEWTOKEN(PSI_T_TILDE); goto start; } -#line 1249 "src/parser.c" -yy96: +#line 1328 "src/parser.c" +yy104: ++cur; -#line 340 "src/parser.re" +#line 363 "src/parser.re" { NEWTOKEN(PSI_T_CMP_NE); goto start; } -#line 1254 "src/parser.c" -yy98: +#line 1333 "src/parser.c" +yy106: ++cur; -#line 329 "src/parser.re" +#line 352 "src/parser.re" { NEWTOKEN(PSI_T_CPP_PASTE); goto start; } -#line 1259 "src/parser.c" -yy100: +#line 1338 "src/parser.c" +yy108: ++cur; if (lim <= cur) if (cur >= lim) goto done;; yych = *cur; @@ -1325,19 +1404,19 @@ yy100: case '|': case '}': case '~': - case 0x7F: goto yy102; - default: goto yy100; + case 0x7F: goto yy110; + default: goto yy108; } -yy102: -#line 445 "src/parser.re" +yy110: +#line 464 "src/parser.re" { NEWTOKEN(PSI_T_DOLLAR_NAME); goto start; } -#line 1335 "src/parser.c" -yy103: +#line 1414 "src/parser.c" +yy111: ++cur; -#line 342 "src/parser.re" +#line 365 "src/parser.re" { NEWTOKEN(PSI_T_AND); goto start; } -#line 1340 "src/parser.c" -yy105: +#line 1419 "src/parser.c" +yy113: yych = *++cur; switch (yych) { case '0': @@ -1349,10 +1428,10 @@ yy105: case '6': case '7': case '8': - case '9': goto yy108; - default: goto yy106; + case '9': goto yy116; + default: goto yy114; } -yy106: +yy114: cur = mrk; switch (yyaccept) { case 0: goto yy29; @@ -1361,100 +1440,95 @@ yy106: case 3: goto yy39; case 4: goto yy47; case 5: goto yy55; - case 6: goto yy110; - case 7: goto yy121; - case 8: goto yy153; - case 9: goto yy184; - case 10: goto yy229; - case 11: goto yy231; - case 12: goto yy233; - case 13: goto yy243; - case 14: goto yy279; - case 15: goto yy282; - case 16: goto yy288; - case 17: goto yy290; - case 18: goto yy293; - case 19: goto yy298; - case 20: goto yy309; - case 21: goto yy312; - case 22: goto yy327; - case 23: goto yy335; - case 24: goto yy342; - case 25: goto yy345; - case 26: goto yy351; - case 27: goto yy354; - case 28: goto yy361; - case 29: goto yy363; - case 30: goto yy367; - case 31: goto yy369; - case 32: goto yy371; - case 33: goto yy373; - case 34: goto yy376; - case 35: goto yy385; - case 36: goto yy393; - case 37: goto yy412; - case 38: goto yy414; - case 39: goto yy423; - case 40: goto yy428; - case 41: goto yy430; - case 42: goto yy432; - case 43: goto yy436; - case 44: goto yy442; - case 45: goto yy444; - case 46: goto yy446; - case 47: goto yy448; - case 48: goto yy453; - case 49: goto yy455; - case 50: goto yy457; - case 51: goto yy459; - case 52: goto yy461; - case 53: goto yy463; - case 54: goto yy465; - case 55: goto yy470; - case 56: goto yy485; - case 57: goto yy487; - case 58: goto yy491; - case 59: goto yy495; - case 60: goto yy497; - case 61: goto yy499; - case 62: goto yy501; - case 63: goto yy503; - case 64: goto yy508; - case 65: goto yy513; - case 66: goto yy518; - case 67: goto yy521; - case 68: goto yy523; - case 69: goto yy530; - case 70: goto yy532; - case 71: goto yy534; - case 72: goto yy536; - case 73: goto yy541; - case 74: goto yy543; - case 75: goto yy547; - case 76: goto yy549; - case 77: goto yy551; - case 78: goto yy553; - case 79: goto yy563; - case 80: goto yy565; - case 81: goto yy573; - case 82: goto yy577; - case 83: goto yy581; - case 84: goto yy585; - case 85: goto yy587; - default: goto yy592; - } -yy107: + case 6: goto yy118; + case 7: goto yy129; + case 8: goto yy147; + case 9: goto yy161; + case 10: goto yy186; + case 11: goto yy242; + case 12: goto yy244; + case 13: goto yy253; + case 14: goto yy273; + case 15: goto yy305; + case 16: goto yy307; + case 17: goto yy313; + case 18: goto yy321; + case 19: goto yy333; + case 20: goto yy341; + case 21: goto yy345; + case 22: goto yy352; + case 23: goto yy354; + case 24: goto yy358; + case 25: goto yy361; + case 26: goto yy363; + case 27: goto yy373; + case 28: goto yy376; + case 29: goto yy383; + case 30: goto yy386; + case 31: goto yy388; + case 32: goto yy390; + case 33: goto yy394; + case 34: goto yy399; + case 35: goto yy417; + case 36: goto yy425; + case 37: goto yy428; + case 38: goto yy431; + case 39: goto yy437; + case 40: goto yy441; + case 41: goto yy446; + case 42: goto yy448; + case 43: goto yy452; + case 44: goto yy455; + case 45: goto yy457; + case 46: goto yy459; + case 47: goto yy464; + case 48: goto yy466; + case 49: goto yy468; + case 50: goto yy470; + case 51: goto yy472; + case 52: goto yy477; + case 53: goto yy487; + case 54: goto yy489; + case 55: goto yy491; + case 56: goto yy493; + case 57: goto yy495; + case 58: goto yy500; + case 59: goto yy504; + case 60: goto yy508; + case 61: goto yy510; + case 62: goto yy515; + case 63: goto yy520; + case 64: goto yy522; + case 65: goto yy530; + case 66: goto yy534; + case 67: goto yy536; + case 68: goto yy538; + case 69: goto yy540; + case 70: goto yy545; + case 71: goto yy547; + case 72: goto yy553; + case 73: goto yy558; + case 74: goto yy560; + case 75: goto yy565; + case 76: goto yy567; + case 77: goto yy575; + case 78: goto yy579; + case 79: goto yy583; + case 80: goto yy587; + case 81: goto yy589; + default: goto yy594; + } +yy115: yych = *++cur; switch (yych) { - case '.': goto yy193; - default: goto yy106; + case '.': goto yy209; + default: goto yy114; } -yy108: +yy116: yyaccept = 6; mrk = ++cur; if ((lim - cur) < 2) if (cur >= lim) goto done;; yych = *cur; - ctxmrk = cur; switch (yych) { case '0': case '1': @@ -1465,35 +1539,34 @@ yy108: case '6': case '7': case '8': - case '9': goto yy108; + case '9': goto yy116; case 'D': - case 'd': goto yy195; + case 'd': goto yy211; case 'F': - case 'f': goto yy196; + case 'f': goto yy212; case 'L': - case 'l': goto yy198; - default: goto yy110; + case 'l': goto yy214; + default: goto yy118; } -yy110: -#line 312 "src/parser.re" +yy118: +#line 335 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT; goto start; } -#line 1481 "src/parser.c" -yy111: +#line 1555 "src/parser.c" +yy119: ++cur; -#line 326 "src/parser.re" +#line 349 "src/parser.re" { goto comment; } -#line 1486 "src/parser.c" -yy113: +#line 1560 "src/parser.c" +yy121: ++cur; -#line 327 "src/parser.re" +#line 350 "src/parser.re" { goto comment_sl; } -#line 1491 "src/parser.c" -yy115: +#line 1565 "src/parser.c" +yy123: yyaccept = 6; mrk = ++cur; if ((lim - cur) < 3) if (cur >= lim) goto done;; yych = *cur; - ctxmrk = cur; switch (yych) { case '0': case '1': @@ -1504,22 +1577,22 @@ yy115: case '6': case '7': case '8': - case '9': goto yy115; + case '9': goto yy123; case 'D': - case 'd': goto yy195; + case 'd': goto yy211; case 'E': - case 'e': goto yy119; + case 'e': goto yy127; case 'F': - case 'f': goto yy196; + case 'f': goto yy212; case 'L': - case 'l': goto yy198; - default: goto yy110; + case 'l': goto yy214; + default: goto yy118; } -yy117: +yy125: ++cur; if ((lim - cur) < 3) if (cur >= lim) goto done;; yych = *cur; - ctxmrk = cur; +yy126: switch (yych) { case '0': case '1': @@ -1528,18 +1601,18 @@ yy117: case '4': case '5': case '6': - case '7': goto yy117; + case '7': goto yy125; case 'L': - case 'l': goto yy120; + case 'l': goto yy128; case 'U': - case 'u': goto yy122; + case 'u': goto yy130; default: goto yy39; } -yy119: +yy127: yych = *++cur; switch (yych) { case '+': - case '-': goto yy105; + case '-': goto yy113; case '0': case '1': case '2': @@ -1549,37 +1622,37 @@ yy119: case '6': case '7': case '8': - case '9': goto yy108; - default: goto yy106; + case '9': goto yy116; + default: goto yy114; } -yy120: +yy128: yyaccept = 7; yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy200; + case 'l': goto yy216; case 'U': - case 'u': goto yy201; - default: goto yy121; + case 'u': goto yy217; + default: goto yy129; } -yy121: - cur = ctxmrk; -#line 308 "src/parser.re" +yy129: + cur -= 1; +#line 331 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_L; cur += 1; goto start; } -#line 1570 "src/parser.c" -yy122: - ++cur; - switch ((yych = *cur)) { +#line 1643 "src/parser.c" +yy130: + yych = *++cur; + switch (yych) { case 'L': - case 'l': goto yy203; - default: goto yy123; + case 'l': goto yy219; + default: goto yy131; } -yy123: - cur = ctxmrk; -#line 307 "src/parser.re" +yy131: + cur -= 1; +#line 330 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_U; cur += 1; goto start; } -#line 1582 "src/parser.c" -yy124: +#line 1655 "src/parser.c" +yy132: yych = *++cur; switch (yych) { case '0': @@ -1603,10 +1676,10 @@ yy124: case 'c': case 'd': case 'e': - case 'f': goto yy204; - default: goto yy106; + case 'f': goto yy220; + default: goto yy114; } -yy125: +yy133: ++cur; if (lim <= cur) if (cur >= lim) goto done;; yych = *cur; @@ -1676,44 +1749,119 @@ yy125: case 'w': case 'x': case 'y': - case 'z': goto yy125; - case '>': goto yy206; - default: goto yy106; + case 'z': goto yy133; + case '>': goto yy222; + default: goto yy114; } -yy127: +yy135: ++cur; -#line 356 "src/parser.re" +#line 379 "src/parser.re" { NEWTOKEN(PSI_T_LSHIFT); goto start; } -#line 1688 "src/parser.c" -yy129: +#line 1761 "src/parser.c" +yy137: ++cur; -#line 358 "src/parser.re" +#line 381 "src/parser.re" { NEWTOKEN(PSI_T_CMP_LE); goto start; } -#line 1693 "src/parser.c" -yy131: +#line 1766 "src/parser.c" +yy139: ++cur; -#line 341 "src/parser.re" +#line 364 "src/parser.re" { NEWTOKEN(PSI_T_CMP_EQ); goto start; } -#line 1698 "src/parser.c" -yy133: +#line 1771 "src/parser.c" +yy141: ++cur; -#line 359 "src/parser.re" +#line 382 "src/parser.re" { NEWTOKEN(PSI_T_CMP_GE); goto start; } -#line 1703 "src/parser.c" -yy135: +#line 1776 "src/parser.c" +yy143: ++cur; -#line 357 "src/parser.re" +#line 380 "src/parser.re" { NEWTOKEN(PSI_T_RSHIFT); goto start; } -#line 1708 "src/parser.c" -yy137: +#line 1781 "src/parser.c" +yy145: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'R': - case 'r': goto yy208; + case 'r': goto yy224; default: goto yy62; } -yy138: +yy146: + yyaccept = 8; + yych = *(mrk = ++cur); + switch (yych) { + case 0x00: + case 0x01: + case 0x02: + case 0x03: + case 0x04: + case 0x05: + case 0x06: + case 0x07: + case 0x08: + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case 0x0E: + case 0x0F: + case 0x10: + case 0x11: + case 0x12: + case 0x13: + case 0x14: + case 0x15: + case 0x16: + case 0x17: + case 0x18: + case 0x19: + case 0x1A: + case 0x1B: + case 0x1C: + case 0x1D: + case 0x1E: + case 0x1F: + case ' ': + case '!': + case '"': + case '#': + case '$': + case '%': + case '&': + case '\'': + case '(': + case ')': + case '*': + case '+': + case ',': + case '-': + case '.': + case '/': + case ':': + case ';': + case '<': + case '=': + case '>': + case '?': + case '@': + case '[': + case ']': + case '^': + case '`': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy147; + case '\\': goto yy148; + default: goto yy61; + } +yy147: +#line 442 "src/parser.re" + { NEWTOKEN(PSI_T_AS); goto start; } +#line 1864 "src/parser.c" +yy148: ++cur; if (lim <= cur) if (cur >= lim) goto done;; yych = *cur; @@ -1792,121 +1940,101 @@ yy138: case '|': case '}': case '~': - case 0x7F: goto yy106; - default: goto yy182; + case 0x7F: goto yy114; + default: goto yy184; } -yy139: +yy149: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'O': - case 'o': goto yy209; + case 'o': goto yy225; default: goto yy62; } -yy140: +yy150: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy210; - default: goto yy62; - } -yy141: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'A': - case 'a': goto yy211; + case 'l': goto yy226; default: goto yy62; } -yy142: +yy151: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'N': - case 'n': goto yy212; case 'U': - case 'u': goto yy213; + case 'u': goto yy227; default: goto yy62; } -yy143: +yy152: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'F': - case 'f': goto yy214; - default: goto yy62; - } -yy144: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'U': - case 'u': goto yy215; + case 'f': goto yy228; default: goto yy62; } -yy145: +yy153: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'I': - case 'i': goto yy216; + case 'i': goto yy229; case 'S': - case 's': goto yy217; + case 's': goto yy230; default: goto yy62; } -yy146: +yy154: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'D': - case 'd': goto yy218; - case 'U': - case 'u': goto yy219; + case 'd': goto yy231; default: goto yy62; } -yy147: +yy155: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'R': - case 'r': goto yy220; + case 'r': goto yy232; default: goto yy62; } -yy148: +yy156: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy221; + case 'l': goto yy233; default: goto yy62; } -yy149: +yy157: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'O': - case 'o': goto yy222; + case 'o': goto yy234; default: goto yy62; } -yy150: +yy158: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy223; + case 'e': goto yy235; default: goto yy62; } -yy151: +yy159: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'N': - case 'n': goto yy224; + case 'n': goto yy236; default: goto yy62; } -yy152: - yyaccept = 8; +yy160: + yyaccept = 9; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -1972,231 +2100,179 @@ yy152: case '|': case '}': case '~': - case 0x7F: goto yy153; + case 0x7F: goto yy161; case 'D': - case 'd': goto yy225; + case 'd': goto yy237; case 'N': - case 'n': goto yy226; - case '\\': goto yy138; + case 'n': goto yy238; + case '\\': goto yy148; default: goto yy61; } -yy153: -#line 371 "src/parser.re" +yy161: +#line 412 "src/parser.re" { NEWTOKEN(PSI_T_IF); goto start; } -#line 1987 "src/parser.c" -yy154: +#line 2115 "src/parser.c" +yy162: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'C': - case 'c': goto yy227; + case 'c': goto yy239; case 'T': - case 't': goto yy228; + case 't': goto yy240; default: goto yy62; } -yy155: +yy163: ++cur; - cur = ctxmrk; -#line 324 "src/parser.re" - { char_width = SIZEOF_WCHAR_T/8; } -#line 2003 "src/parser.c" -yy157: + cur -= 1; +#line 347 "src/parser.re" + { char_width = sizeof(wchar_t)/8; } +#line 2131 "src/parser.c" +yy165: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'T': - case 't': goto yy230; + case 't': goto yy241; default: goto yy62; } -yy158: +yy166: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'B': - case 'b': goto yy232; - default: goto yy62; - } -yy159: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'N': - case 'n': goto yy234; + case 'b': goto yy243; default: goto yy62; } -yy160: +yy167: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'X': - case 'x': goto yy235; + case 'x': goto yy245; default: goto yy62; } -yy161: +yy168: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy236; + case 'l': goto yy246; default: goto yy62; } -yy162: +yy169: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'J': - case 'j': goto yy237; + case 'j': goto yy247; default: goto yy62; } -yy163: +yy170: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'T': - case 't': goto yy238; + case 't': goto yy248; default: goto yy62; } -yy164: +yy171: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'S': - case 's': goto yy239; + case 's': goto yy249; default: goto yy62; } -yy165: +yy172: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy240; + case 'e': goto yy250; default: goto yy62; } -yy166: +yy173: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'T': - case 't': goto yy241; + case 't': goto yy251; default: goto yy62; } -yy167: +yy174: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'T': - case 't': goto yy242; - default: goto yy62; - } -yy168: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'O': - case 'o': goto yy244; - default: goto yy62; - } -yy169: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'G': - case 'g': goto yy245; + case 't': goto yy252; default: goto yy62; } -yy170: +yy175: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy246; + case 'a': goto yy254; case 'R': - case 'r': goto yy247; + case 'r': goto yy255; default: goto yy62; } -yy171: +yy176: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'M': - case 'm': goto yy248; + case 'm': goto yy256; default: goto yy62; } -yy172: +yy177: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '_': goto yy249; + case '_': goto yy257; default: goto yy62; } -yy173: +yy178: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'U': - case 'u': goto yy250; - default: goto yy62; - } -yy174: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'P': - case 'p': goto yy251; + case 'u': goto yy258; default: goto yy62; } -yy175: +yy179: ++cur; - cur = ctxmrk; -#line 323 "src/parser.re" + cur -= 1; +#line 346 "src/parser.re" { char_width = 4; } -#line 2154 "src/parser.c" -yy177: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'N': - case 'n': goto yy252; - default: goto yy62; - } -yy178: +#line 2250 "src/parser.c" +yy181: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'D': - case 'd': goto yy253; - case 'I': - case 'i': goto yy254; - case 'S': - case 's': goto yy255; + case 'd': goto yy259; default: goto yy62; } -yy179: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'I': - case 'i': goto yy256; - default: goto yy62; - } -yy180: +yy182: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'R': - case 'r': goto yy257; + case 'r': goto yy260; default: goto yy62; } -yy181: +yy183: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy258; + case 'a': goto yy261; default: goto yy62; } -yy182: - yyaccept = 9; +yy184: + yyaccept = 10; mrk = ++cur; if (lim <= cur) if (cur >= lim) goto done;; yych = *cur; @@ -2264,117 +2340,231 @@ yy182: case '|': case '}': case '~': - case 0x7F: goto yy184; - case '\\': goto yy138; - default: goto yy182; + case 0x7F: goto yy186; + case '\\': goto yy148; + default: goto yy184; } -yy184: -#line 444 "src/parser.re" - { NEWTOKEN(PSI_T_NSNAME); goto start; } -#line 2275 "src/parser.c" -yy185: +yy186: +#line 463 "src/parser.re" + { NEWTOKEN(PSI_T_NSNAME); goto start; } +#line 2351 "src/parser.c" +yy187: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'a': goto yy259; - case 'e': goto yy260; - case 'r': goto yy261; + case 'a': goto yy262; + case 'e': goto yy263; + case 'i': goto yy264; + case 'r': goto yy265; default: goto yy62; } -yy186: +yy188: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'O': goto yy225; + case 'o': goto yy266; + default: goto yy62; + } +yy189: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'a': goto yy267; + default: goto yy62; + } +yy190: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'U': + case 'u': goto yy227; + case 'n': goto yy268; + default: goto yy62; + } +yy191: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'u': goto yy269; + default: goto yy62; + } +yy192: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'D': + case 'd': goto yy231; + case 'u': goto yy270; + default: goto yy62; + } +yy193: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'O': goto yy234; + case 'o': goto yy271; + default: goto yy62; + } +yy194: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'C': + case 'c': goto yy239; + case 'T': goto yy240; + case 't': goto yy272; + default: goto yy62; + } +yy195: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'B': - case 'b': goto yy232; - case 'n': goto yy262; + case 'b': goto yy243; + case 'n': goto yy274; default: goto yy62; } -yy187: +yy196: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'n': goto yy275; + default: goto yy62; + } +yy197: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy240; - case 'a': goto yy263; + case 'e': goto yy250; + case 'a': goto yy276; default: goto yy62; } -yy188: +yy198: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'o': goto yy277; + default: goto yy62; + } +yy199: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'g': goto yy278; + case 'z': goto yy279; + default: goto yy62; + } +yy200: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'A': + case 'a': goto yy254; + case 'R': goto yy255; + case 'r': goto yy280; + default: goto yy62; + } +yy201: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'p': goto yy281; + default: goto yy62; + } +yy202: ++cur; - cur = ctxmrk; -#line 322 "src/parser.re" + cur -= 1; +#line 345 "src/parser.re" { char_width = 2; } -#line 2308 "src/parser.c" -yy190: +#line 2482 "src/parser.c" +yy204: yyaccept = 5; yych = *(mrk = ++cur); - ctxmrk = cur; switch (yych) { - case '"': goto yy264; + case '"': goto yy282; default: goto yy62; } -yy191: +yy205: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'D': + case 'd': goto yy259; + case 'i': goto yy284; + case 's': goto yy285; + default: goto yy62; + } +yy206: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'i': goto yy286; + case 'l': goto yy287; + default: goto yy62; + } +yy207: ++cur; -#line 343 "src/parser.re" +#line 366 "src/parser.re" { NEWTOKEN(PSI_T_OR); goto start; } -#line 2321 "src/parser.c" -yy193: +#line 2512 "src/parser.c" +yy209: ++cur; -#line 363 "src/parser.re" +#line 386 "src/parser.re" { NEWTOKEN(PSI_T_ELLIPSIS); goto start; } -#line 2326 "src/parser.c" -yy195: +#line 2517 "src/parser.c" +yy211: yych = *++cur; switch (yych) { case 'D': - case 'd': goto yy266; + case 'd': goto yy288; case 'F': - case 'f': goto yy268; + case 'f': goto yy290; case 'L': - case 'l': goto yy270; - default: goto yy106; + case 'l': goto yy292; + default: goto yy114; } -yy196: +yy212: ++cur; - cur = ctxmrk; -#line 313 "src/parser.re" + cur -= 1; +#line 336 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_F; cur += 1; goto start; } -#line 2343 "src/parser.c" -yy198: +#line 2534 "src/parser.c" +yy214: ++cur; - cur = ctxmrk; -#line 314 "src/parser.re" + cur -= 1; +#line 337 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_L; cur += 1; goto start; } -#line 2349 "src/parser.c" -yy200: +#line 2540 "src/parser.c" +yy216: yych = *++cur; switch (yych) { case 'U': - case 'u': goto yy272; - default: goto yy106; + case 'u': goto yy294; + default: goto yy114; } -yy201: +yy217: ++cur; -yy202: - cur = ctxmrk; -#line 309 "src/parser.re" +yy218: + cur -= 2; +#line 332 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_UL; cur += 2; goto start; } -#line 2363 "src/parser.c" -yy203: +#line 2554 "src/parser.c" +yy219: yych = *++cur; switch (yych) { case 'L': - case 'l': goto yy272; - default: goto yy202; + case 'l': goto yy294; + default: goto yy218; } -yy204: +yy220: yyaccept = 3; mrk = ++cur; if ((lim - cur) < 3) if (cur >= lim) goto done;; yych = *cur; - ctxmrk = cur; switch (yych) { - case '.': goto yy274; + case '.': goto yy296; case '0': case '1': case '2': @@ -2396,184 +2586,160 @@ yy204: case 'c': case 'd': case 'e': - case 'f': goto yy204; + case 'f': goto yy220; case 'L': - case 'l': goto yy120; + case 'l': goto yy128; case 'P': - case 'p': goto yy119; + case 'p': goto yy127; case 'U': - case 'u': goto yy122; + case 'u': goto yy130; default: goto yy39; } -yy206: +yy222: ++cur; -#line 446 "src/parser.re" +#line 465 "src/parser.re" { tok += 1; cur -= 1; NEWTOKEN(PSI_T_CPP_HEADER); cur += 1; goto start; } -#line 2413 "src/parser.c" -yy208: +#line 2603 "src/parser.c" +yy224: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy276; + case 'a': goto yy298; case 'V': - case 'v': goto yy277; + case 'v': goto yy299; default: goto yy62; } -yy209: +yy225: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy278; + case 'l': goto yy300; default: goto yy62; } -yy210: +yy226: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy280; - default: goto yy62; - } -yy211: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'R': - case 'r': goto yy281; - default: goto yy62; - } -yy212: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'S': - case 's': goto yy283; + case 'l': goto yy301; default: goto yy62; } -yy213: +yy227: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'N': - case 'n': goto yy284; + case 'n': goto yy302; default: goto yy62; } -yy214: +yy228: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'I': - case 'i': goto yy285; - default: goto yy62; - } -yy215: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'B': - case 'b': goto yy286; + case 'i': goto yy303; default: goto yy62; } -yy216: +yy229: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'F': - case 'f': goto yy287; + case 'f': goto yy304; default: goto yy62; } -yy217: +yy230: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy289; + case 'e': goto yy306; default: goto yy62; } -yy218: +yy231: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'I': - case 'i': goto yy291; - default: goto yy62; - } -yy219: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'M': - case 'm': goto yy292; + case 'i': goto yy308; default: goto yy62; } -yy220: +yy232: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'O': - case 'o': goto yy294; + case 'o': goto yy309; default: goto yy62; } -yy221: +yy233: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'S': - case 's': goto yy295; + case 's': goto yy310; default: goto yy62; } -yy222: +yy234: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy296; + case 'a': goto yy311; default: goto yy62; } -yy223: +yy235: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy297; + case 'e': goto yy312; default: goto yy62; } -yy224: +yy236: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'C': - case 'c': goto yy299; + case 'c': goto yy314; default: goto yy62; } -yy225: +yy237: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy300; + case 'e': goto yy315; default: goto yy62; } -yy226: +yy238: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'D': - case 'd': goto yy301; + case 'd': goto yy316; default: goto yy62; } -yy227: +yy239: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy302; + case 'l': goto yy317; default: goto yy62; } -yy228: - yyaccept = 10; +yy240: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'V': + case 'v': goto yy318; + default: goto yy62; + } +yy241: + yyaccept = 11; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -2639,22 +2805,16 @@ yy228: case '|': case '}': case '~': - case 0x7F: goto yy229; - case '1': goto yy303; - case '3': goto yy304; - case '6': goto yy305; - case '8': goto yy306; - case 'V': - case 'v': goto yy307; - case '\\': goto yy138; + case 0x7F: goto yy242; + case '\\': goto yy148; default: goto yy61; } -yy229: -#line 393 "src/parser.re" - { NEWTOKEN(PSI_T_INT); goto start; } -#line 2656 "src/parser.c" -yy230: - yyaccept = 11; +yy242: +#line 437 "src/parser.re" + { NEWTOKEN(PSI_T_LET); goto start; } +#line 2816 "src/parser.c" +yy243: + yyaccept = 12; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -2720,155 +2880,72 @@ yy230: case '|': case '}': case '~': - case 0x7F: goto yy231; - case '\\': goto yy138; + case 0x7F: goto yy244; + case '\\': goto yy148; default: goto yy61; } -yy231: -#line 419 "src/parser.re" - { NEWTOKEN(PSI_T_LET); goto start; } -#line 2731 "src/parser.c" -yy232: - yyaccept = 12; - yych = *(mrk = ++cur); - switch (yych) { - case 0x00: - case 0x01: - case 0x02: - case 0x03: - case 0x04: - case 0x05: - case 0x06: - case 0x07: - case 0x08: - case '\t': - case '\n': - case '\v': - case '\f': - case '\r': - case 0x0E: - case 0x0F: - case 0x10: - case 0x11: - case 0x12: - case 0x13: - case 0x14: - case 0x15: - case 0x16: - case 0x17: - case 0x18: - case 0x19: - case 0x1A: - case 0x1B: - case 0x1C: - case 0x1D: - case 0x1E: - case 0x1F: - case ' ': - case '!': - case '"': - case '#': - case '$': - case '%': - case '&': - case '\'': - case '(': - case ')': - case '*': - case '+': - case ',': - case '-': - case '.': - case '/': - case ':': - case ';': - case '<': - case '=': - case '>': - case '?': - case '@': - case '[': - case ']': - case '^': - case '`': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy233; - case '\\': goto yy138; - default: goto yy61; - } -yy233: -#line 418 "src/parser.re" - { NEWTOKEN(PSI_T_LIB); goto start; } -#line 2806 "src/parser.c" -yy234: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'G': - case 'g': goto yy308; - default: goto yy62; - } -yy235: - yyaccept = 5; +yy244: +#line 436 "src/parser.re" + { NEWTOKEN(PSI_T_LIB); goto start; } +#line 2891 "src/parser.c" +yy245: + yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy310; + case 'e': goto yy319; default: goto yy62; } -yy236: +yy246: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy311; + case 'l': goto yy320; default: goto yy62; } -yy237: +yy247: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy313; + case 'e': goto yy322; case 'V': - case 'v': goto yy314; + case 'v': goto yy323; default: goto yy62; } -yy238: +yy248: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'H': - case 'h': goto yy315; + case 'h': goto yy324; default: goto yy62; } -yy239: +yy249: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'T': - case 't': goto yy316; + case 't': goto yy325; default: goto yy62; } -yy240: +yy250: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '_': goto yy317; + case '_': goto yy326; default: goto yy62; } -yy241: +yy251: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'U': - case 'u': goto yy318; + case 'u': goto yy327; default: goto yy62; } -yy242: +yy252: yyaccept = 13; yych = *(mrk = ++cur); switch (yych) { @@ -2935,264 +3012,166 @@ yy242: case '|': case '}': case '~': - case 0x7F: goto yy243; - case '\\': goto yy138; + case 0x7F: goto yy253; + case '\\': goto yy148; default: goto yy61; } -yy243: -#line 420 "src/parser.re" +yy253: +#line 438 "src/parser.re" { NEWTOKEN(PSI_T_SET); goto start; } -#line 2946 "src/parser.c" -yy244: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'R': - case 'r': goto yy319; - default: goto yy62; - } -yy245: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'N': - case 'n': goto yy320; - default: goto yy62; - } -yy246: +#line 3023 "src/parser.c" +yy254: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'T': - case 't': goto yy321; + case 't': goto yy328; default: goto yy62; } -yy247: +yy255: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'I': - case 'i': goto yy322; + case 'i': goto yy329; case 'L': - case 'l': goto yy323; - case 'U': - case 'u': goto yy324; + case 'l': goto yy330; case 'V': - case 'v': goto yy325; + case 'v': goto yy331; default: goto yy62; } -yy248: +yy256: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'P': - case 'p': goto yy326; + case 'p': goto yy332; default: goto yy62; } -yy249: +yy257: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy328; + case 'a': goto yy334; case 'B': - case 'b': goto yy329; + case 'b': goto yy335; case 'F': - case 'f': goto yy330; + case 'f': goto yy336; case 'I': - case 'i': goto yy331; + case 'i': goto yy337; case 'O': - case 'o': goto yy332; + case 'o': goto yy338; case 'S': - case 's': goto yy333; - default: goto yy62; - } -yy250: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'E': - case 'e': goto yy334; + case 's': goto yy339; default: goto yy62; } -yy251: +yy258: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy336; - default: goto yy62; - } -yy252: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'T': - case 't': goto yy337; + case 'e': goto yy340; default: goto yy62; } -yy253: +yy259: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy338; + case 'e': goto yy342; default: goto yy62; } -yy254: +yy260: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'O': - case 'o': goto yy339; + case 'N': + case 'n': goto yy343; default: goto yy62; } -yy255: +yy261: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'I': - case 'i': goto yy340; + case 'L': + case 'l': goto yy344; default: goto yy62; } -yy256: +yy262: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'D': - case 'd': goto yy341; + case 's': goto yy346; + case 't': goto yy347; default: goto yy62; } -yy257: +yy263: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'N': - case 'n': goto yy343; + case 'x': goto yy348; default: goto yy62; } -yy258: +yy264: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'L': - case 'l': goto yy344; + case 'n': goto yy349; default: goto yy62; } -yy259: +yy265: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 's': goto yy346; - case 't': goto yy347; + case 'e': goto yy350; default: goto yy62; } -yy260: +yy266: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'x': goto yy348; + case 'L': goto yy300; + case 'l': goto yy351; default: goto yy62; } -yy261: +yy267: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'e': goto yy349; + case 'r': goto yy353; default: goto yy62; } -yy262: +yy268: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'e': goto yy350; + case 's': goto yy355; default: goto yy62; } -yy263: +yy269: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'g': goto yy352; + case 'b': goto yy356; default: goto yy62; } -yy264: - ++cur; - cur = ctxmrk; -#line 321 "src/parser.re" - { char_width = 1; } -#line 3124 "src/parser.c" -yy266: - ++cur; - cur = ctxmrk; -#line 316 "src/parser.re" - { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_DD; cur += 2; goto start; } -#line 3130 "src/parser.c" -yy268: - ++cur; - cur = ctxmrk; -#line 315 "src/parser.re" - { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_DF; cur += 2; goto start; } -#line 3136 "src/parser.c" yy270: - ++cur; - cur = ctxmrk; -#line 317 "src/parser.re" - { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_DL; cur += 2; goto start; } -#line 3142 "src/parser.c" -yy272: - ++cur; - cur = ctxmrk; -#line 310 "src/parser.re" - { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_ULL; cur += 3; goto start; } -#line 3148 "src/parser.c" -yy274: - ++cur; - if ((lim - cur) < 3) if (cur >= lim) goto done;; - yych = *cur; - 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 yy274; - case 'P': - case 'p': goto yy119; - default: goto yy106; - } -yy276: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'Y': - case 'y': goto yy353; + case 'm': goto yy357; default: goto yy62; } -yy277: +yy271: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'A': - case 'a': goto yy355; + case 'A': goto yy311; + case 'a': goto yy359; default: goto yy62; } -yy278: +yy272: yyaccept = 14; yych = *(mrk = ++cur); switch (yych) { @@ -3259,137 +3238,221 @@ yy278: case '|': case '}': case '~': - case 0x7F: goto yy279; + case 0x7F: goto yy273; case 'V': - case 'v': goto yy356; - case '\\': goto yy138; + case 'v': goto yy318; + case '\\': goto yy148; default: goto yy61; } +yy273: +#line 406 "src/parser.re" + { NEWTOKEN(PSI_T_INT); goto start; } +#line 3251 "src/parser.c" +yy274: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'e': goto yy360; + default: goto yy62; + } +yy275: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'g': goto yy362; + default: goto yy62; + } +yy276: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'g': goto yy364; + default: goto yy62; + } +yy277: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'r': goto yy365; + default: goto yy62; + } +yy278: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'n': goto yy366; + default: goto yy62; + } yy279: -#line 390 "src/parser.re" - { NEWTOKEN(PSI_T_BOOL); goto start; } -#line 3272 "src/parser.c" + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'e': goto yy367; + default: goto yy62; + } yy280: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'A': - case 'a': goto yy357; - case 'B': - case 'b': goto yy358; - case 'O': - case 'o': goto yy359; + case 'I': + case 'i': goto yy329; + case 'L': + case 'l': goto yy330; + case 'V': + case 'v': goto yy331; + case 'u': goto yy368; default: goto yy62; } yy281: - yyaccept = 15; + yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 0x00: - case 0x01: - case 0x02: - case 0x03: - case 0x04: - case 0x05: - case 0x06: - case 0x07: - case 0x08: - case '\t': - case '\n': - case '\v': - case '\f': - case '\r': - case 0x0E: - case 0x0F: - case 0x10: - case 0x11: - case 0x12: - case 0x13: - case 0x14: - case 0x15: - case 0x16: - case 0x17: - case 0x18: - case 0x19: - case 0x1A: - case 0x1B: - case 0x1C: - case 0x1D: - case 0x1E: - case 0x1F: - case ' ': - case '!': - case '"': - case '#': - case '$': - case '%': - case '&': - case '\'': - case '(': - case ')': - case '*': - case '+': - case ',': - case '-': - case '.': - case '/': - case ':': - case ';': - case '<': - case '=': - case '>': - case '?': - case '@': - case '[': - case ']': - case '^': - case '`': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy282; - case '\\': goto yy138; - default: goto yy61; + case 'e': goto yy369; + default: goto yy62; } yy282: -#line 391 "src/parser.re" - { NEWTOKEN(PSI_T_CHAR); goto start; } + ++cur; + cur -= 1; +#line 344 "src/parser.re" + { char_width = 1; } +#line 3319 "src/parser.c" +yy284: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'o': goto yy370; + default: goto yy62; + } +yy285: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'i': goto yy371; + default: goto yy62; + } +yy286: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'd': goto yy372; + default: goto yy62; + } +yy287: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'a': goto yy374; + default: goto yy62; + } +yy288: + ++cur; + cur -= 2; +#line 339 "src/parser.re" + { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_DD; cur += 2; goto start; } +#line 3353 "src/parser.c" +yy290: + ++cur; + cur -= 2; +#line 338 "src/parser.re" + { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_DF; cur += 2; goto start; } #line 3359 "src/parser.c" -yy283: +yy292: + ++cur; + cur -= 2; +#line 340 "src/parser.re" + { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_DL; cur += 2; goto start; } +#line 3365 "src/parser.c" +yy294: + ++cur; + cur -= 3; +#line 333 "src/parser.re" + { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_ULL; cur += 3; goto start; } +#line 3371 "src/parser.c" +yy296: + ++cur; + if ((lim - cur) < 3) if (cur >= lim) goto done;; + yych = *cur; + 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 yy296; + case 'P': + case 'p': goto yy127; + default: goto yy114; + } +yy298: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'T': - case 't': goto yy360; + case 'Y': + case 'y': goto yy375; default: goto yy62; } -yy284: +yy299: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'T': - case 't': goto yy362; + case 'A': + case 'a': goto yy377; default: goto yy62; } -yy285: +yy300: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'N': - case 'n': goto yy364; + case 'V': + case 'v': goto yy378; default: goto yy62; } -yy286: +yy301: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'L': - case 'l': goto yy365; + case 'A': + case 'a': goto yy379; + case 'B': + case 'b': goto yy380; + case 'O': + case 'o': goto yy381; default: goto yy62; } -yy287: - yyaccept = 16; +yy302: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'T': + case 't': goto yy382; + default: goto yy62; + } +yy303: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'N': + case 'n': goto yy384; + default: goto yy62; + } +yy304: + yyaccept = 15; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -3455,16 +3518,16 @@ yy287: case '|': case '}': case '~': - case 0x7F: goto yy288; - case '\\': goto yy138; + case 0x7F: goto yy305; + case '\\': goto yy148; default: goto yy61; } -yy288: -#line 375 "src/parser.re" +yy305: +#line 416 "src/parser.re" { NEWTOKEN(PSI_T_ELIF); goto start; } -#line 3466 "src/parser.c" -yy289: - yyaccept = 17; +#line 3529 "src/parser.c" +yy306: + yyaccept = 16; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -3530,24 +3593,48 @@ yy289: case '|': case '}': case '~': - case 0x7F: goto yy290; - case '\\': goto yy138; + case 0x7F: goto yy307; + case '\\': goto yy148; default: goto yy61; } -yy290: -#line 374 "src/parser.re" +yy307: +#line 415 "src/parser.re" { NEWTOKEN(PSI_T_ELSE); goto start; } -#line 3541 "src/parser.c" -yy291: +#line 3604 "src/parser.c" +yy308: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'F': - case 'f': goto yy366; + case 'f': goto yy385; default: goto yy62; } -yy292: - yyaccept = 18; +yy309: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'R': + case 'r': goto yy387; + default: goto yy62; + } +yy310: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'E': + case 'e': goto yy389; + default: goto yy62; + } +yy311: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'T': + case 't': goto yy391; + default: goto yy62; + } +yy312: + yyaccept = 17; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -3613,40 +3700,64 @@ yy292: case '|': case '}': case '~': - case 0x7F: goto yy293; - case '\\': goto yy138; + case 0x7F: goto yy313; + case '\\': goto yy148; default: goto yy61; } -yy293: -#line 416 "src/parser.re" - { NEWTOKEN(PSI_T_ENUM); goto start; } -#line 3624 "src/parser.c" -yy294: +yy313: +#line 443 "src/parser.re" + { NEWTOKEN(PSI_T_FREE); goto start; } +#line 3711 "src/parser.c" +yy314: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'R': - case 'r': goto yy368; + case 'T': + case 't': goto yy392; + default: goto yy62; + } +yy315: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'F': + case 'f': goto yy393; default: goto yy62; } -yy295: +yy316: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy370; + case 'e': goto yy395; default: goto yy62; } -yy296: +yy317: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'T': - case 't': goto yy372; + case 'U': + case 'u': goto yy396; default: goto yy62; } -yy297: - yyaccept = 19; +yy318: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'A': + case 'a': goto yy397; + default: goto yy62; + } +yy319: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'D': + case 'd': goto yy398; + default: goto yy62; + } +yy320: + yyaccept = 18; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -3712,84 +3823,95 @@ yy297: case '|': case '}': case '~': - case 0x7F: goto yy298; - case '\\': goto yy138; + case 0x7F: goto yy321; + case '\\': goto yy148; default: goto yy61; } -yy298: -#line 424 "src/parser.re" - { NEWTOKEN(PSI_T_FREE); goto start; } -#line 3723 "src/parser.c" -yy299: +yy321: +#line 427 "src/parser.re" + { NEWTOKEN(PSI_T_NULL); goto start; } +#line 3834 "src/parser.c" +yy322: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'T': - case 't': goto yy374; + case 'C': + case 'c': goto yy400; default: goto yy62; } -yy300: +yy323: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'F': - case 'f': goto yy375; + case 'A': + case 'a': goto yy401; default: goto yy62; } -yy301: +yy324: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'E': - case 'e': goto yy377; + case 'V': + case 'v': goto yy402; default: goto yy62; } -yy302: +yy325: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'U': - case 'u': goto yy378; + case '_': goto yy403; default: goto yy62; } -yy303: +yy326: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '6': goto yy379; + case 'A': + case 'a': goto yy404; default: goto yy62; } -yy304: +yy327: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '2': goto yy380; + case 'R': + case 'r': goto yy405; default: goto yy62; } -yy305: +yy328: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '4': goto yy381; + case 'I': + case 'i': goto yy406; default: goto yy62; } -yy306: +yy329: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '_': goto yy382; + case 'N': + case 'n': goto yy407; default: goto yy62; } -yy307: +yy330: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'A': - case 'a': goto yy383; + case 'E': + case 'e': goto yy408; default: goto yy62; } -yy308: - yyaccept = 20; +yy331: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'A': + case 'a': goto yy409; + default: goto yy62; + } +yy332: + yyaccept = 19; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -3855,24 +3977,64 @@ yy308: case '|': case '}': case '~': - case 0x7F: goto yy309; - case '\\': goto yy138; + case 0x7F: goto yy333; + case '\\': goto yy148; default: goto yy61; } -yy309: -#line 394 "src/parser.re" - { NEWTOKEN(PSI_T_LONG); goto start; } -#line 3866 "src/parser.c" -yy310: +yy333: +#line 444 "src/parser.re" + { NEWTOKEN(PSI_T_TEMP); goto start; } +#line 3988 "src/parser.c" +yy334: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'D': - case 'd': goto yy384; + case 'R': + case 'r': goto yy410; default: goto yy62; } -yy311: - yyaccept = 21; +yy335: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'O': + case 'o': goto yy411; + default: goto yy62; + } +yy336: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'L': + case 'l': goto yy412; + default: goto yy62; + } +yy337: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'N': + case 'n': goto yy413; + default: goto yy62; + } +yy338: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'B': + case 'b': goto yy414; + default: goto yy62; + } +yy339: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'T': + case 't': goto yy415; + default: goto yy62; + } +yy340: + yyaccept = 20; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -3938,119 +4100,32 @@ yy311: case '|': case '}': case '~': - case 0x7F: goto yy312; - case '\\': goto yy138; + case 0x7F: goto yy341; + case '\\': goto yy148; default: goto yy61; } -yy312: -#line 386 "src/parser.re" - { NEWTOKEN(PSI_T_NULL); goto start; } -#line 3949 "src/parser.c" -yy313: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'C': - case 'c': goto yy386; - default: goto yy62; - } -yy314: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'A': - case 'a': goto yy387; - default: goto yy62; - } -yy315: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'V': - case 'v': goto yy388; - default: goto yy62; - } -yy316: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case '_': goto yy389; - default: goto yy62; - } -yy317: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'A': - case 'a': goto yy390; - default: goto yy62; - } -yy318: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'R': - case 'r': goto yy391; - default: goto yy62; - } -yy319: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'T': - case 't': goto yy392; - default: goto yy62; - } -yy320: +yy341: +#line 425 "src/parser.re" + { NEWTOKEN(PSI_T_TRUE); goto start; } +#line 4111 "src/parser.c" +yy342: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'E': - case 'e': goto yy394; + case 'F': + case 'f': goto yy416; default: goto yy62; } -yy321: +yy343: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'I': - case 'i': goto yy395; - default: goto yy62; - } -yy322: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'N': - case 'n': goto yy396; - default: goto yy62; - } -yy323: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'E': - case 'e': goto yy397; - default: goto yy62; - } -yy324: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'C': - case 'c': goto yy398; - default: goto yy62; - } -yy325: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'A': - case 'a': goto yy399; + case 'i': goto yy418; default: goto yy62; } -yy326: - yyaccept = 22; +yy344: + yyaccept = 21; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -4116,64 +4191,51 @@ yy326: case '|': case '}': case '~': - case 0x7F: goto yy327; - case '\\': goto yy138; + case 0x7F: goto yy345; + case '\\': goto yy148; default: goto yy61; } -yy327: -#line 425 "src/parser.re" - { NEWTOKEN(PSI_T_TEMP); goto start; } -#line 4127 "src/parser.c" -yy328: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'R': - case 'r': goto yy400; - default: goto yy62; - } -yy329: +yy345: +#line 453 "src/parser.re" + { NEWTOKEN(PSI_T_ZVAL); goto start; } +#line 4202 "src/parser.c" +yy346: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'O': - case 'o': goto yy401; + case 'm': goto yy419; default: goto yy62; } -yy330: +yy347: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'L': - case 'l': goto yy402; + case 't': goto yy420; default: goto yy62; } -yy331: +yy348: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'N': - case 'n': goto yy403; + case 't': goto yy421; default: goto yy62; } -yy332: +yy349: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'B': - case 'b': goto yy404; + case 'l': goto yy422; default: goto yy62; } -yy333: +yy350: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'T': - case 't': goto yy405; + case 's': goto yy423; default: goto yy62; } -yy334: - yyaccept = 23; +yy351: + yyaccept = 22; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -4239,58 +4301,18 @@ yy334: case '|': case '}': case '~': - case 0x7F: goto yy335; - case '\\': goto yy138; + case 0x7F: goto yy352; + case 'V': + case 'v': goto yy378; + case '\\': goto yy148; default: goto yy61; } -yy335: -#line 384 "src/parser.re" - { NEWTOKEN(PSI_T_TRUE); goto start; } -#line 4250 "src/parser.c" -yy336: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'D': - case 'd': goto yy406; - default: goto yy62; - } -yy337: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case '1': goto yy407; - case '3': goto yy408; - case '6': goto yy409; - case '8': goto yy410; - default: goto yy62; - } -yy338: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'F': - case 'f': goto yy411; - default: goto yy62; - } -yy339: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'N': - case 'n': goto yy413; - default: goto yy62; - } -yy340: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'G': - case 'g': goto yy415; - default: goto yy62; - } -yy341: - yyaccept = 24; +yy352: +#line 403 "src/parser.re" + { NEWTOKEN(PSI_T_BOOL); goto start; } +#line 4314 "src/parser.c" +yy353: + yyaccept = 23; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -4356,24 +4378,30 @@ yy341: case '|': case '}': case '~': - case 0x7F: goto yy342; - case '\\': goto yy138; + case 0x7F: goto yy354; + case '\\': goto yy148; default: goto yy61; } -yy342: -#line 389 "src/parser.re" - { NEWTOKEN(PSI_T_VOID); goto start; } -#line 4367 "src/parser.c" -yy343: +yy354: +#line 404 "src/parser.re" + { NEWTOKEN(PSI_T_CHAR); goto start; } +#line 4389 "src/parser.c" +yy355: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'I': - case 'i': goto yy416; + case 't': goto yy424; default: goto yy62; } -yy344: - yyaccept = 25; +yy356: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'l': goto yy426; + default: goto yy62; + } +yy357: + yyaccept = 24; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -4439,44 +4467,24 @@ yy344: case '|': case '}': case '~': - case 0x7F: goto yy345; - case '\\': goto yy138; + case 0x7F: goto yy358; + case '\\': goto yy148; default: goto yy61; } -yy345: -#line 434 "src/parser.re" - { NEWTOKEN(PSI_T_ZVAL); goto start; } -#line 4450 "src/parser.c" -yy346: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'm': goto yy417; - default: goto yy62; - } -yy347: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 't': goto yy418; - default: goto yy62; - } -yy348: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 't': goto yy419; - default: goto yy62; - } -yy349: +yy358: +#line 400 "src/parser.re" + { NEWTOKEN(PSI_T_ENUM); goto start; } +#line 4478 "src/parser.c" +yy359: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 's': goto yy420; + case 'T': goto yy391; + case 't': goto yy427; default: goto yy62; } -yy350: - yyaccept = 26; +yy360: + yyaccept = 25; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -4542,23 +4550,16 @@ yy350: case '|': case '}': case '~': - case 0x7F: goto yy351; - case '\\': goto yy138; + case 0x7F: goto yy361; + case '\\': goto yy148; default: goto yy61; } -yy351: -#line 370 "src/parser.re" +yy361: +#line 396 "src/parser.re" { NEWTOKEN(PSI_T_LINE); goto start; } -#line 4553 "src/parser.c" -yy352: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'm': goto yy421; - default: goto yy62; - } -yy353: - yyaccept = 27; +#line 4561 "src/parser.c" +yy362: + yyaccept = 26; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -4624,56 +4625,72 @@ yy353: case '|': case '}': case '~': - case 0x7F: goto yy354; - case '\\': goto yy138; + case 0x7F: goto yy363; + case '\\': goto yy148; default: goto yy61; } -yy354: -#line 408 "src/parser.re" - { NEWTOKEN(PSI_T_ARRAY); goto start; } -#line 4635 "src/parser.c" -yy355: +yy363: +#line 407 "src/parser.re" + { NEWTOKEN(PSI_T_LONG); goto start; } +#line 4636 "src/parser.c" +yy364: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'L': - case 'l': goto yy422; + case 'm': goto yy429; default: goto yy62; } -yy356: +yy365: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'A': - case 'a': goto yy424; + case 't': goto yy430; default: goto yy62; } -yy357: +yy366: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'B': - case 'b': goto yy425; + case 'e': goto yy432; default: goto yy62; } -yy358: +yy367: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'A': - case 'a': goto yy426; + case 'o': goto yy433; default: goto yy62; } -yy359: +yy368: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'C': - case 'c': goto yy427; + case 'c': goto yy434; default: goto yy62; } -yy360: - yyaccept = 28; +yy369: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'd': goto yy435; + default: goto yy62; + } +yy370: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'n': goto yy436; + default: goto yy62; + } +yy371: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'g': goto yy438; + default: goto yy62; + } +yy372: + yyaccept = 27; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -4739,16 +4756,23 @@ yy360: case '|': case '}': case '~': - case 0x7F: goto yy361; - case '\\': goto yy138; + case 0x7F: goto yy373; + case '\\': goto yy148; default: goto yy61; } -yy361: -#line 417 "src/parser.re" - { NEWTOKEN(PSI_T_CONST); goto start; } -#line 4750 "src/parser.c" -yy362: - yyaccept = 29; +yy373: +#line 402 "src/parser.re" + { NEWTOKEN(PSI_T_VOID); goto start; } +#line 4767 "src/parser.c" +yy374: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 't': goto yy439; + default: goto yy62; + } +yy375: + yyaccept = 28; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -4814,32 +4838,56 @@ yy362: case '|': case '}': case '~': - case 0x7F: goto yy363; - case '\\': goto yy138; + case 0x7F: goto yy376; + case '\\': goto yy148; default: goto yy61; } -yy363: -#line 435 "src/parser.re" - { NEWTOKEN(PSI_T_COUNT); goto start; } -#line 4825 "src/parser.c" -yy364: +yy376: +#line 431 "src/parser.re" + { NEWTOKEN(PSI_T_ARRAY); goto start; } +#line 4849 "src/parser.c" +yy377: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'E': - case 'e': goto yy429; + case 'L': + case 'l': goto yy440; default: goto yy62; } -yy365: +yy378: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'E': - case 'e': goto yy431; + case 'A': + case 'a': goto yy442; default: goto yy62; } -yy366: - yyaccept = 30; +yy379: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'B': + case 'b': goto yy443; + default: goto yy62; + } +yy380: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'A': + case 'a': goto yy444; + default: goto yy62; + } +yy381: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'C': + case 'c': goto yy445; + default: goto yy62; + } +yy382: + yyaccept = 29; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -4905,16 +4953,24 @@ yy366: case '|': case '}': case '~': - case 0x7F: goto yy367; - case '\\': goto yy138; + case 0x7F: goto yy383; + case '\\': goto yy148; default: goto yy61; } -yy367: -#line 376 "src/parser.re" - { NEWTOKEN(PSI_T_ENDIF); goto start; } -#line 4916 "src/parser.c" -yy368: - yyaccept = 31; +yy383: +#line 454 "src/parser.re" + { NEWTOKEN(PSI_T_COUNT); goto start; } +#line 4964 "src/parser.c" +yy384: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'E': + case 'e': goto yy447; + default: goto yy62; + } +yy385: + yyaccept = 30; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -4980,16 +5036,16 @@ yy368: case '|': case '}': case '~': - case 0x7F: goto yy369; - case '\\': goto yy138; + case 0x7F: goto yy386; + case '\\': goto yy148; default: goto yy61; } -yy369: -#line 381 "src/parser.re" - { NEWTOKEN(PSI_T_ERROR); goto start; } -#line 4991 "src/parser.c" -yy370: - yyaccept = 32; +yy386: +#line 417 "src/parser.re" + { NEWTOKEN(PSI_T_ENDIF); goto start; } +#line 5047 "src/parser.c" +yy387: + yyaccept = 31; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -5055,16 +5111,16 @@ yy370: case '|': case '}': case '~': - case 0x7F: goto yy371; - case '\\': goto yy138; + case 0x7F: goto yy388; + case '\\': goto yy148; default: goto yy61; } -yy371: -#line 385 "src/parser.re" - { NEWTOKEN(PSI_T_FALSE); goto start; } -#line 5066 "src/parser.c" -yy372: - yyaccept = 33; +yy388: +#line 422 "src/parser.re" + { NEWTOKEN(PSI_T_ERROR); goto start; } +#line 5122 "src/parser.c" +yy389: + yyaccept = 32; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -5130,26 +5186,32 @@ yy372: case '|': case '}': case '~': - case 0x7F: goto yy373; - case 'V': - case 'v': goto yy433; - case '\\': goto yy138; + case 0x7F: goto yy390; + case '\\': goto yy148; default: goto yy61; } -yy373: -#line 395 "src/parser.re" - { NEWTOKEN(PSI_T_FLOAT); goto start; } -#line 5143 "src/parser.c" -yy374: +yy390: +#line 426 "src/parser.re" + { NEWTOKEN(PSI_T_FALSE); goto start; } +#line 5197 "src/parser.c" +yy391: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'V': + case 'v': goto yy449; + default: goto yy62; + } +yy392: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'I': - case 'i': goto yy434; + case 'i': goto yy450; default: goto yy62; } -yy375: - yyaccept = 34; +yy393: + yyaccept = 33; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -5215,600 +5277,40 @@ yy375: case '|': case '}': case '~': - case 0x7F: goto yy376; - case '\\': goto yy138; + case 0x7F: goto yy394; + case '\\': goto yy148; default: goto yy61; } -yy376: -#line 372 "src/parser.re" +yy394: +#line 413 "src/parser.re" { NEWTOKEN(PSI_T_IFDEF); goto start; } -#line 5226 "src/parser.c" -yy377: +#line 5288 "src/parser.c" +yy395: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'F': - case 'f': goto yy435; - default: goto yy62; - } -yy378: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'D': - case 'd': goto yy437; - default: goto yy62; - } -yy379: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case '_': goto yy438; + case 'f': goto yy451; default: goto yy62; } -yy380: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case '_': goto yy439; - default: goto yy62; - } -yy381: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case '_': goto yy440; - default: goto yy62; - } -yy382: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'T': - case 't': goto yy441; - default: goto yy62; - } -yy383: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'L': - case 'l': goto yy443; - default: goto yy62; - } -yy384: - yyaccept = 35; - yych = *(mrk = ++cur); - switch (yych) { - case 0x00: - case 0x01: - case 0x02: - case 0x03: - case 0x04: - case 0x05: - case 0x06: - case 0x07: - case 0x08: - case '\t': - case '\n': - case '\v': - case '\f': - case '\r': - case 0x0E: - case 0x0F: - case 0x10: - case 0x11: - case 0x12: - case 0x13: - case 0x14: - case 0x15: - case 0x16: - case 0x17: - case 0x18: - case 0x19: - case 0x1A: - case 0x1B: - case 0x1C: - case 0x1D: - case 0x1E: - case 0x1F: - case ' ': - case '!': - case '"': - case '#': - case '$': - case '%': - case '&': - case '\'': - case '(': - case ')': - case '*': - case '+': - case ',': - case '-': - case '.': - case '/': - case ':': - case ';': - case '<': - case '=': - case '>': - case '?': - case '@': - case '[': - case ']': - case '^': - case '`': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy385; - case '\\': goto yy138; - default: goto yy61; - } -yy385: -#line 387 "src/parser.re" - { NEWTOKEN(PSI_T_MIXED); goto start; } -#line 5354 "src/parser.c" -yy386: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'T': - case 't': goto yy445; - default: goto yy62; - } -yy387: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'L': - case 'l': goto yy447; - default: goto yy62; - } -yy388: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'A': - case 'a': goto yy449; - default: goto yy62; - } -yy389: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'A': - case 'a': goto yy450; - default: goto yy62; - } -yy390: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'S': - case 's': goto yy451; - default: goto yy62; - } -yy391: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'N': - case 'n': goto yy452; - default: goto yy62; - } -yy392: - yyaccept = 36; - yych = *(mrk = ++cur); - switch (yych) { - case 0x00: - case 0x01: - case 0x02: - case 0x03: - case 0x04: - case 0x05: - case 0x06: - case 0x07: - case 0x08: - case '\t': - case '\n': - case '\v': - case '\f': - case '\r': - case 0x0E: - case 0x0F: - case 0x10: - case 0x11: - case 0x12: - case 0x13: - case 0x14: - case 0x15: - case 0x16: - case 0x17: - case 0x18: - case 0x19: - case 0x1A: - case 0x1B: - case 0x1C: - case 0x1D: - case 0x1E: - case 0x1F: - case ' ': - case '!': - case '"': - case '#': - case '$': - case '%': - case '&': - case '\'': - case '(': - case ')': - case '*': - case '+': - case ',': - case '-': - case '.': - case '/': - case ':': - case ';': - case '<': - case '=': - case '>': - case '?': - case '@': - case '[': - case ']': - case '^': - case '`': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy393; - case '\\': goto yy138; - default: goto yy61; - } -yy393: -#line 392 "src/parser.re" - { NEWTOKEN(PSI_T_SHORT); goto start; } -#line 5477 "src/parser.c" -yy394: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'D': - case 'd': goto yy454; - default: goto yy62; - } -yy395: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'C': - case 'c': goto yy456; - default: goto yy62; - } -yy396: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'G': - case 'g': goto yy458; - default: goto yy62; - } -yy397: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'N': - case 'n': goto yy460; - default: goto yy62; - } -yy398: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'T': - case 't': goto yy462; - default: goto yy62; - } -yy399: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'L': - case 'l': goto yy464; - default: goto yy62; - } -yy400: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'R': - case 'r': goto yy466; - default: goto yy62; - } -yy401: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'O': - case 'o': goto yy467; - default: goto yy62; - } -yy402: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'O': - case 'o': goto yy468; - default: goto yy62; - } -yy403: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'T': - case 't': goto yy469; - default: goto yy62; - } -yy404: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'J': - case 'j': goto yy471; - default: goto yy62; - } -yy405: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'R': - case 'r': goto yy472; - default: goto yy62; - } -yy406: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'E': - case 'e': goto yy473; - default: goto yy62; - } -yy407: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case '6': goto yy474; - default: goto yy62; - } -yy408: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case '2': goto yy475; - default: goto yy62; - } -yy409: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case '4': goto yy476; - default: goto yy62; - } -yy410: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case '_': goto yy477; - default: goto yy62; - } -yy411: - yyaccept = 37; - yych = *(mrk = ++cur); - switch (yych) { - case 0x00: - case 0x01: - case 0x02: - case 0x03: - case 0x04: - case 0x05: - case 0x06: - case 0x07: - case 0x08: - case '\t': - case '\n': - case '\v': - case '\f': - case '\r': - case 0x0E: - case 0x0F: - case 0x10: - case 0x11: - case 0x12: - case 0x13: - case 0x14: - case 0x15: - case 0x16: - case 0x17: - case 0x18: - case 0x19: - case 0x1A: - case 0x1B: - case 0x1C: - case 0x1D: - case 0x1E: - case 0x1F: - case ' ': - case '!': - case '"': - case '#': - case '$': - case '%': - case '&': - case '\'': - case '(': - case ')': - case '*': - case '+': - case ',': - case '-': - case '.': - case '/': - case ':': - case ';': - case '<': - case '=': - case '>': - case '?': - case '@': - case '[': - case ']': - case '^': - case '`': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy412; - case '\\': goto yy138; - default: goto yy61; - } -yy412: -#line 379 "src/parser.re" - { NEWTOKEN(PSI_T_UNDEF); goto start; } -#line 5684 "src/parser.c" -yy413: - yyaccept = 38; - yych = *(mrk = ++cur); - switch (yych) { - case 0x00: - case 0x01: - case 0x02: - case 0x03: - case 0x04: - case 0x05: - case 0x06: - case 0x07: - case 0x08: - case '\t': - case '\n': - case '\v': - case '\f': - case '\r': - case 0x0E: - case 0x0F: - case 0x10: - case 0x11: - case 0x12: - case 0x13: - case 0x14: - case 0x15: - case 0x16: - case 0x17: - case 0x18: - case 0x19: - case 0x1A: - case 0x1B: - case 0x1C: - case 0x1D: - case 0x1E: - case 0x1F: - case ' ': - case '!': - case '"': - case '#': - case '$': - case '%': - case '&': - case '\'': - case '(': - case ')': - case '*': - case '+': - case ',': - case '-': - case '.': - case '/': - case ':': - case ';': - case '<': - case '=': - case '>': - case '?': - case '@': - case '[': - case ']': - case '^': - case '`': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy414; - case '\\': goto yy138; - default: goto yy61; - } -yy414: -#line 415 "src/parser.re" - { NEWTOKEN(PSI_T_UNION); goto start; } -#line 5759 "src/parser.c" -yy415: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'N': - case 'n': goto yy478; - default: goto yy62; - } -yy416: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'N': - case 'n': goto yy479; - default: goto yy62; - } -yy417: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case '_': goto yy480; - default: goto yy62; - } -yy418: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'r': goto yy481; - default: goto yy62; - } -yy419: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'e': goto yy482; - default: goto yy62; - } -yy420: +yy396: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 't': goto yy483; + case 'D': + case 'd': goto yy453; default: goto yy62; } -yy421: +yy397: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'a': goto yy484; + case 'L': + case 'l': goto yy454; default: goto yy62; } -yy422: - yyaccept = 39; +yy398: + yyaccept = 34; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -5874,40 +5376,144 @@ yy422: case '|': case '}': case '~': - case 0x7F: goto yy423; - case '\\': goto yy138; + case 0x7F: goto yy399; + case '\\': goto yy148; default: goto yy61; } -yy423: -#line 432 "src/parser.re" - { NEWTOKEN(PSI_T_ARRVAL); goto start; } -#line 5885 "src/parser.c" -yy424: +yy399: +#line 428 "src/parser.re" + { NEWTOKEN(PSI_T_MIXED); goto start; } +#line 5387 "src/parser.c" +yy400: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'L': - case 'l': goto yy486; + case 'T': + case 't': goto yy456; default: goto yy62; } -yy425: +yy401: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy488; + case 'l': goto yy458; default: goto yy62; } -yy426: +yy402: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'A': + case 'a': goto yy460; + default: goto yy62; + } +yy403: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'A': + case 'a': goto yy461; + default: goto yy62; + } +yy404: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'S': + case 's': goto yy462; + default: goto yy62; + } +yy405: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'N': + case 'n': goto yy463; + default: goto yy62; + } +yy406: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'C': - case 'c': goto yy489; + case 'c': goto yy465; default: goto yy62; } -yy427: - yyaccept = 40; +yy407: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'G': + case 'g': goto yy467; + default: goto yy62; + } +yy408: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'N': + case 'n': goto yy469; + default: goto yy62; + } +yy409: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'L': + case 'l': goto yy471; + default: goto yy62; + } +yy410: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'R': + case 'r': goto yy473; + default: goto yy62; + } +yy411: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'O': + case 'o': goto yy474; + default: goto yy62; + } +yy412: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'O': + case 'o': goto yy475; + default: goto yy62; + } +yy413: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'T': + case 't': goto yy476; + default: goto yy62; + } +yy414: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'J': + case 'j': goto yy478; + default: goto yy62; + } +yy415: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'R': + case 'r': goto yy479; + default: goto yy62; + } +yy416: + yyaccept = 35; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -5973,16 +5579,59 @@ yy427: case '|': case '}': case '~': - case 0x7F: goto yy428; - case '\\': goto yy138; + case 0x7F: goto yy417; + case '\\': goto yy148; default: goto yy61; } -yy428: -#line 436 "src/parser.re" - { NEWTOKEN(PSI_T_CALLOC); goto start; } -#line 5984 "src/parser.c" -yy429: - yyaccept = 41; +yy417: +#line 420 "src/parser.re" + { NEWTOKEN(PSI_T_UNDEF); goto start; } +#line 5590 "src/parser.c" +yy418: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'N': + case 'n': goto yy480; + default: goto yy62; + } +yy419: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case '_': goto yy481; + default: goto yy62; + } +yy420: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'r': goto yy482; + default: goto yy62; + } +yy421: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'e': goto yy483; + default: goto yy62; + } +yy422: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'i': goto yy484; + default: goto yy62; + } +yy423: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 't': goto yy485; + default: goto yy62; + } +yy424: + yyaccept = 36; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -6048,18 +5697,23 @@ yy429: case '|': case '}': case '~': - case 0x7F: goto yy430; - case 'D': - case 'd': goto yy490; - case '\\': goto yy138; + case 0x7F: goto yy425; + case '\\': goto yy148; default: goto yy61; } -yy430: -#line 377 "src/parser.re" - { NEWTOKEN(PSI_T_DEFINE); goto start; } -#line 6061 "src/parser.c" -yy431: - yyaccept = 42; +yy425: +#line 401 "src/parser.re" + { NEWTOKEN(PSI_T_CONST); goto start; } +#line 5708 "src/parser.c" +yy426: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'e': goto yy486; + default: goto yy62; + } +yy427: + yyaccept = 37; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -6125,32 +5779,25 @@ yy431: case '|': case '}': case '~': - case 0x7F: goto yy432; - case '\\': goto yy138; + case 0x7F: goto yy428; + case 'V': + case 'v': goto yy449; + case '\\': goto yy148; default: goto yy61; } -yy432: -#line 396 "src/parser.re" - { NEWTOKEN(PSI_T_DOUBLE); goto start; } -#line 6136 "src/parser.c" -yy433: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'A': - case 'a': goto yy492; - default: goto yy62; - } -yy434: +yy428: +#line 408 "src/parser.re" + { NEWTOKEN(PSI_T_FLOAT); goto start; } +#line 5792 "src/parser.c" +yy429: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'O': - case 'o': goto yy493; + case 'a': goto yy488; default: goto yy62; } -yy435: - yyaccept = 43; +yy430: + yyaccept = 38; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -6216,48 +5863,44 @@ yy435: case '|': case '}': case '~': - case 0x7F: goto yy436; - case '\\': goto yy138; + case 0x7F: goto yy431; + case '\\': goto yy148; default: goto yy61; } -yy436: -#line 373 "src/parser.re" - { NEWTOKEN(PSI_T_IFNDEF); goto start; } -#line 6227 "src/parser.c" -yy437: +yy431: +#line 405 "src/parser.re" + { NEWTOKEN(PSI_T_SHORT); goto start; } +#line 5874 "src/parser.c" +yy432: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'E': - case 'e': goto yy494; + case 'd': goto yy490; default: goto yy62; } -yy438: +yy433: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'T': - case 't': goto yy496; + case 'f': goto yy492; default: goto yy62; } -yy439: +yy434: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'T': - case 't': goto yy498; + case 't': goto yy494; default: goto yy62; } -yy440: +yy435: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'T': - case 't': goto yy500; + case 'e': goto yy496; default: goto yy62; } -yy441: - yyaccept = 44; +yy436: + yyaccept = 39; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -6323,16 +5966,30 @@ yy441: case '|': case '}': case '~': - case 0x7F: goto yy442; - case '\\': goto yy138; + case 0x7F: goto yy437; + case '\\': goto yy148; default: goto yy61; } -yy442: -#line 397 "src/parser.re" - { NEWTOKEN(PSI_T_INT8); goto start; } -#line 6334 "src/parser.c" -yy443: - yyaccept = 45; +yy437: +#line 399 "src/parser.re" + { NEWTOKEN(PSI_T_UNION); goto start; } +#line 5977 "src/parser.c" +yy438: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'n': goto yy497; + default: goto yy62; + } +yy439: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'i': goto yy498; + default: goto yy62; + } +yy440: + yyaccept = 40; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -6398,16 +6055,40 @@ yy443: case '|': case '}': case '~': - case 0x7F: goto yy444; - case '\\': goto yy138; + case 0x7F: goto yy441; + case '\\': goto yy148; default: goto yy61; } +yy441: +#line 451 "src/parser.re" + { NEWTOKEN(PSI_T_ARRVAL); goto start; } +#line 6066 "src/parser.c" +yy442: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'L': + case 'l': goto yy499; + default: goto yy62; + } +yy443: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'L': + case 'l': goto yy501; + default: goto yy62; + } yy444: -#line 429 "src/parser.re" - { NEWTOKEN(PSI_T_INTVAL); goto start; } -#line 6409 "src/parser.c" + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'C': + case 'c': goto yy502; + default: goto yy62; + } yy445: - yyaccept = 46; + yyaccept = 41; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -6474,15 +6155,15 @@ yy445: case '}': case '~': case 0x7F: goto yy446; - case '\\': goto yy138; + case '\\': goto yy148; default: goto yy61; } yy446: -#line 409 "src/parser.re" - { NEWTOKEN(PSI_T_OBJECT); goto start; } -#line 6484 "src/parser.c" +#line 455 "src/parser.re" + { NEWTOKEN(PSI_T_CALLOC); goto start; } +#line 6165 "src/parser.c" yy447: - yyaccept = 47; + yyaccept = 42; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -6549,39 +6230,33 @@ yy447: case '}': case '~': case 0x7F: goto yy448; - case '\\': goto yy138; + case 'D': + case 'd': goto yy503; + case '\\': goto yy148; default: goto yy61; } yy448: -#line 433 "src/parser.re" - { NEWTOKEN(PSI_T_OBJVAL); goto start; } -#line 6559 "src/parser.c" +#line 418 "src/parser.re" + { NEWTOKEN(PSI_T_DEFINE); goto start; } +#line 6242 "src/parser.c" yy449: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'L': - case 'l': goto yy502; + case 'A': + case 'a': goto yy505; default: goto yy62; } yy450: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'S': - case 's': goto yy504; + case 'O': + case 'o': goto yy506; default: goto yy62; } yy451: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'S': - case 's': goto yy505; - default: goto yy62; - } -yy452: - yyaccept = 48; + yyaccept = 43; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -6647,16 +6322,24 @@ yy452: case '|': case '}': case '~': - case 0x7F: goto yy453; - case '\\': goto yy138; + case 0x7F: goto yy452; + case '\\': goto yy148; default: goto yy61; } +yy452: +#line 414 "src/parser.re" + { NEWTOKEN(PSI_T_IFNDEF); goto start; } +#line 6333 "src/parser.c" yy453: -#line 423 "src/parser.re" - { NEWTOKEN(PSI_T_RETURN); goto start; } -#line 6658 "src/parser.c" + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'E': + case 'e': goto yy507; + default: goto yy62; + } yy454: - yyaccept = 49; + yyaccept = 44; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -6723,15 +6406,15 @@ yy454: case '}': case '~': case 0x7F: goto yy455; - case '\\': goto yy138; + case '\\': goto yy148; default: goto yy61; } yy455: -#line 406 "src/parser.re" - { NEWTOKEN(PSI_T_SIGNED); goto start; } -#line 6733 "src/parser.c" +#line 448 "src/parser.re" + { NEWTOKEN(PSI_T_INTVAL); goto start; } +#line 6416 "src/parser.c" yy456: - yyaccept = 50; + yyaccept = 45; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -6798,15 +6481,15 @@ yy456: case '}': case '~': case 0x7F: goto yy457; - case '\\': goto yy138; + case '\\': goto yy148; default: goto yy61; } yy457: -#line 411 "src/parser.re" - { NEWTOKEN(PSI_T_STATIC); goto start; } -#line 6808 "src/parser.c" +#line 432 "src/parser.re" + { NEWTOKEN(PSI_T_OBJECT); goto start; } +#line 6491 "src/parser.c" yy458: - yyaccept = 51; + yyaccept = 46; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -6873,15 +6556,39 @@ yy458: case '}': case '~': case 0x7F: goto yy459; - case '\\': goto yy138; + case '\\': goto yy148; default: goto yy61; } yy459: -#line 407 "src/parser.re" - { NEWTOKEN(PSI_T_STRING); goto start; } -#line 6883 "src/parser.c" +#line 452 "src/parser.re" + { NEWTOKEN(PSI_T_OBJVAL); goto start; } +#line 6566 "src/parser.c" yy460: - yyaccept = 52; + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'L': + case 'l': goto yy509; + default: goto yy62; + } +yy461: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'S': + case 's': goto yy511; + default: goto yy62; + } +yy462: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'S': + case 's': goto yy512; + default: goto yy62; + } +yy463: + yyaccept = 47; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -6947,16 +6654,16 @@ yy460: case '|': case '}': case '~': - case 0x7F: goto yy461; - case '\\': goto yy138; + case 0x7F: goto yy464; + case '\\': goto yy148; default: goto yy61; } -yy461: -#line 426 "src/parser.re" - { NEWTOKEN(PSI_T_STRLEN); goto start; } -#line 6958 "src/parser.c" -yy462: - yyaccept = 53; +yy464: +#line 441 "src/parser.re" + { NEWTOKEN(PSI_T_RETURN); goto start; } +#line 6665 "src/parser.c" +yy465: + yyaccept = 48; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -7022,16 +6729,16 @@ yy462: case '|': case '}': case '~': - case 0x7F: goto yy463; - case '\\': goto yy138; + case 0x7F: goto yy466; + case '\\': goto yy148; default: goto yy61; } -yy463: -#line 414 "src/parser.re" - { NEWTOKEN(PSI_T_STRUCT); goto start; } -#line 7033 "src/parser.c" -yy464: - yyaccept = 54; +yy466: +#line 434 "src/parser.re" + { NEWTOKEN(PSI_T_STATIC); goto start; } +#line 6740 "src/parser.c" +yy467: + yyaccept = 49; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -7097,40 +6804,16 @@ yy464: case '|': case '}': case '~': - case 0x7F: goto yy465; - case '\\': goto yy138; + case 0x7F: goto yy468; + case '\\': goto yy148; default: goto yy61; } -yy465: -#line 427 "src/parser.re" - { NEWTOKEN(PSI_T_STRVAL); goto start; } -#line 7108 "src/parser.c" -yy466: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'A': - case 'a': goto yy506; - default: goto yy62; - } -yy467: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'L': - case 'l': goto yy507; - default: goto yy62; - } yy468: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'A': - case 'a': goto yy509; - default: goto yy62; - } +#line 430 "src/parser.re" + { NEWTOKEN(PSI_T_STRING); goto start; } +#line 6815 "src/parser.c" yy469: - yyaccept = 55; + yyaccept = 50; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -7197,112 +6880,114 @@ yy469: case '}': case '~': case 0x7F: goto yy470; - case '\\': goto yy138; + case '\\': goto yy148; default: goto yy61; } yy470: -#line 440 "src/parser.re" - { NEWTOKEN(PSI_T_TO_INT); goto start; } -#line 7207 "src/parser.c" +#line 445 "src/parser.re" + { NEWTOKEN(PSI_T_STRLEN); goto start; } +#line 6890 "src/parser.c" yy471: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'E': - case 'e': goto yy510; - default: goto yy62; - } -yy472: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'I': - case 'i': goto yy511; - default: goto yy62; - } -yy473: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'F': - case 'f': goto yy512; - default: goto yy62; - } -yy474: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case '_': goto yy514; - default: goto yy62; - } -yy475: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case '_': goto yy515; - default: goto yy62; - } -yy476: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case '_': goto yy516; - default: goto yy62; - } -yy477: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'T': - case 't': goto yy517; - default: goto yy62; - } -yy478: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'E': - case 'e': goto yy519; - default: goto yy62; - } -yy479: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'G': - case 'g': goto yy520; - default: goto yy62; - } -yy480: - yyaccept = 5; + yyaccept = 51; yych = *(mrk = ++cur); switch (yych) { - case '_': goto yy522; - default: goto yy62; + case 0x00: + case 0x01: + case 0x02: + case 0x03: + case 0x04: + case 0x05: + case 0x06: + case 0x07: + case 0x08: + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case 0x0E: + case 0x0F: + case 0x10: + case 0x11: + case 0x12: + case 0x13: + case 0x14: + case 0x15: + case 0x16: + case 0x17: + case 0x18: + case 0x19: + case 0x1A: + case 0x1B: + case 0x1C: + case 0x1D: + case 0x1E: + case 0x1F: + case ' ': + case '!': + case '"': + case '#': + case '$': + case '%': + case '&': + case '\'': + case '(': + case ')': + case '*': + case '+': + case ',': + case '-': + case '.': + case '/': + case ':': + case ';': + case '<': + case '=': + case '>': + case '?': + case '@': + case '[': + case ']': + case '^': + case '`': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy472; + case '\\': goto yy148; + default: goto yy61; } -yy481: +yy472: +#line 446 "src/parser.re" + { NEWTOKEN(PSI_T_STRVAL); goto start; } +#line 6965 "src/parser.c" +yy473: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'i': goto yy524; + case 'A': + case 'a': goto yy513; default: goto yy62; } -yy482: +yy474: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'n': goto yy525; + case 'L': + case 'l': goto yy514; default: goto yy62; } -yy483: +yy475: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'r': goto yy526; + case 'A': + case 'a': goto yy516; default: goto yy62; } -yy484: - yyaccept = 56; +yy476: + yyaccept = 52; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -7368,16 +7053,75 @@ yy484: case '|': case '}': case '~': - case 0x7F: goto yy485; - case '\\': goto yy138; - default: goto yy527; + case 0x7F: goto yy477; + case '\\': goto yy148; + default: goto yy61; + } +yy477: +#line 459 "src/parser.re" + { NEWTOKEN(PSI_T_TO_INT); goto start; } +#line 7064 "src/parser.c" +yy478: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'E': + case 'e': goto yy517; + default: goto yy62; + } +yy479: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'I': + case 'i': goto yy518; + default: goto yy62; + } +yy480: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'G': + case 'g': goto yy519; + default: goto yy62; + } +yy481: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case '_': goto yy521; + default: goto yy62; + } +yy482: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'i': goto yy523; + default: goto yy62; + } +yy483: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'n': goto yy524; + default: goto yy62; + } +yy484: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'n': goto yy525; + default: goto yy62; } yy485: -#line 365 "src/parser.re" - { NEWTOKEN(PSI_T_PRAGMA); goto start; } -#line 7379 "src/parser.c" + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'r': goto yy526; + default: goto yy62; + } yy486: - yyaccept = 57; + yyaccept = 53; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -7444,31 +7188,15 @@ yy486: case '}': case '~': case 0x7F: goto yy487; - case '\\': goto yy138; + case '\\': goto yy148; default: goto yy61; } yy487: -#line 431 "src/parser.re" - { NEWTOKEN(PSI_T_BOOLVAL); goto start; } -#line 7454 "src/parser.c" +#line 409 "src/parser.re" + { NEWTOKEN(PSI_T_DOUBLE); goto start; } +#line 7198 "src/parser.c" yy488: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'E': - case 'e': goto yy529; - default: goto yy62; - } -yy489: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'K': - case 'k': goto yy531; - default: goto yy62; - } -yy490: - yyaccept = 58; + yyaccept = 54; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -7534,32 +7262,16 @@ yy490: case '|': case '}': case '~': - case 0x7F: goto yy491; - case '\\': goto yy138; - default: goto yy61; - } -yy491: -#line 378 "src/parser.re" - { NEWTOKEN(PSI_T_DEFINED); goto start; } -#line 7545 "src/parser.c" -yy492: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'L': - case 'l': goto yy533; - default: goto yy62; - } -yy493: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'N': - case 'n': goto yy535; - default: goto yy62; + case 0x7F: goto yy489; + case '\\': goto yy148; + default: goto yy527; } -yy494: - yyaccept = 59; +yy489: +#line 388 "src/parser.re" + { NEWTOKEN(PSI_T_PRAGMA); goto start; } +#line 7273 "src/parser.c" +yy490: + yyaccept = 55; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -7625,17 +7337,16 @@ yy494: case '|': case '}': case '~': - case 0x7F: goto yy495; - case '\\': goto yy138; - case '_': goto yy537; + case 0x7F: goto yy491; + case '\\': goto yy148; default: goto yy61; } -yy495: -#line 382 "src/parser.re" - { NEWTOKEN(PSI_T_INCLUDE); goto start; } -#line 7637 "src/parser.c" -yy496: - yyaccept = 60; +yy491: +#line 411 "src/parser.re" + { NEWTOKEN(PSI_T_SIGNED); goto start; } +#line 7348 "src/parser.c" +yy492: + yyaccept = 56; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -7701,16 +7412,16 @@ yy496: case '|': case '}': case '~': - case 0x7F: goto yy497; - case '\\': goto yy138; + case 0x7F: goto yy493; + case '\\': goto yy148; default: goto yy61; } -yy497: -#line 399 "src/parser.re" - { NEWTOKEN(PSI_T_INT16); goto start; } -#line 7712 "src/parser.c" -yy498: - yyaccept = 61; +yy493: +#line 395 "src/parser.re" + { NEWTOKEN(PSI_T_SIZEOF); goto start; } +#line 7423 "src/parser.c" +yy494: + yyaccept = 57; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -7776,16 +7487,37 @@ yy498: case '|': case '}': case '~': - case 0x7F: goto yy499; - case '\\': goto yy138; + case 0x7F: goto yy495; + case '\\': goto yy148; default: goto yy61; } +yy495: +#line 398 "src/parser.re" + { NEWTOKEN(PSI_T_STRUCT); goto start; } +#line 7498 "src/parser.c" +yy496: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'f': goto yy529; + default: goto yy62; + } +yy497: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'e': goto yy531; + default: goto yy62; + } +yy498: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'l': goto yy532; + default: goto yy62; + } yy499: -#line 401 "src/parser.re" - { NEWTOKEN(PSI_T_INT32); goto start; } -#line 7787 "src/parser.c" -yy500: - yyaccept = 62; + yyaccept = 58; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -7851,16 +7583,32 @@ yy500: case '|': case '}': case '~': - case 0x7F: goto yy501; - case '\\': goto yy138; + case 0x7F: goto yy500; + case '\\': goto yy148; default: goto yy61; } +yy500: +#line 450 "src/parser.re" + { NEWTOKEN(PSI_T_BOOLVAL); goto start; } +#line 7594 "src/parser.c" yy501: -#line 403 "src/parser.re" - { NEWTOKEN(PSI_T_INT64); goto start; } -#line 7862 "src/parser.c" + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'E': + case 'e': goto yy533; + default: goto yy62; + } yy502: - yyaccept = 63; + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'K': + case 'k': goto yy535; + default: goto yy62; + } +yy503: + yyaccept = 59; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -7926,40 +7674,32 @@ yy502: case '|': case '}': case '~': - case 0x7F: goto yy503; - case '\\': goto yy138; + case 0x7F: goto yy504; + case '\\': goto yy148; default: goto yy61; } -yy503: -#line 428 "src/parser.re" - { NEWTOKEN(PSI_T_PATHVAL); goto start; } -#line 7937 "src/parser.c" yy504: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'S': - case 's': goto yy538; - default: goto yy62; - } +#line 419 "src/parser.re" + { NEWTOKEN(PSI_T_DEFINED); goto start; } +#line 7685 "src/parser.c" yy505: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'E': - case 'e': goto yy539; + case 'L': + case 'l': goto yy537; default: goto yy62; } yy506: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'Y': - case 'y': goto yy540; + case 'N': + case 'n': goto yy539; default: goto yy62; } yy507: - yyaccept = 64; + yyaccept = 60; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -8019,46 +7759,23 @@ yy507: case '@': case '[': case ']': - case '^': - case '`': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy508; - case '\\': goto yy138; - default: goto yy61; - } -yy508: -#line 442 "src/parser.re" - { NEWTOKEN(PSI_T_TO_BOOL); goto start; } -#line 8036 "src/parser.c" -yy509: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'T': - case 't': goto yy542; - default: goto yy62; - } -yy510: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'C': - case 'c': goto yy544; - default: goto yy62; - } -yy511: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'N': - case 'n': goto yy545; - default: goto yy62; + case '^': + case '`': + case '{': + case '|': + case '}': + case '~': + case 0x7F: goto yy508; + case '\\': goto yy148; + case '_': goto yy541; + default: goto yy61; } -yy512: - yyaccept = 65; +yy508: +#line 423 "src/parser.re" + { NEWTOKEN(PSI_T_INCLUDE); goto start; } +#line 7777 "src/parser.c" +yy509: + yyaccept = 61; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -8124,40 +7841,40 @@ yy512: case '|': case '}': case '~': - case 0x7F: goto yy513; - case '\\': goto yy138; + case 0x7F: goto yy510; + case '\\': goto yy148; default: goto yy61; } -yy513: -#line 413 "src/parser.re" - { NEWTOKEN(PSI_T_TYPEDEF); goto start; } -#line 8135 "src/parser.c" -yy514: +yy510: +#line 447 "src/parser.re" + { NEWTOKEN(PSI_T_PATHVAL); goto start; } +#line 7852 "src/parser.c" +yy511: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'T': - case 't': goto yy546; + case 'S': + case 's': goto yy542; default: goto yy62; } -yy515: +yy512: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'T': - case 't': goto yy548; + case 'E': + case 'e': goto yy543; default: goto yy62; } -yy516: +yy513: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'T': - case 't': goto yy550; + case 'Y': + case 'y': goto yy544; default: goto yy62; } -yy517: - yyaccept = 66; +yy514: + yyaccept = 62; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -8223,24 +7940,40 @@ yy517: case '|': case '}': case '~': - case 0x7F: goto yy518; - case '\\': goto yy138; + case 0x7F: goto yy515; + case '\\': goto yy148; default: goto yy61; } +yy515: +#line 461 "src/parser.re" + { NEWTOKEN(PSI_T_TO_BOOL); goto start; } +#line 7951 "src/parser.c" +yy516: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'T': + case 't': goto yy546; + default: goto yy62; + } +yy517: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'C': + case 'c': goto yy548; + default: goto yy62; + } yy518: -#line 398 "src/parser.re" - { NEWTOKEN(PSI_T_UINT8); goto start; } -#line 8234 "src/parser.c" -yy519: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'D': - case 'd': goto yy552; + case 'N': + case 'n': goto yy549; default: goto yy62; } -yy520: - yyaccept = 67; +yy519: + yyaccept = 63; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -8306,16 +8039,16 @@ yy520: case '|': case '}': case '~': - case 0x7F: goto yy521; - case '\\': goto yy138; + case 0x7F: goto yy520; + case '\\': goto yy148; default: goto yy61; } -yy521: -#line 380 "src/parser.re" +yy520: +#line 421 "src/parser.re" { NEWTOKEN(PSI_T_WARNING); goto start; } -#line 8317 "src/parser.c" -yy522: - yyaccept = 68; +#line 8050 "src/parser.c" +yy521: + yyaccept = 64; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -8381,33 +8114,40 @@ yy522: case '|': case '}': case '~': - case 0x7F: goto yy523; - case '\\': goto yy138; + case 0x7F: goto yy522; + case '\\': goto yy148; default: goto yy61; } -yy523: -#line 369 "src/parser.re" +yy522: +#line 393 "src/parser.re" { NEWTOKEN(PSI_T_CPP_ASM); goto start; } -#line 8392 "src/parser.c" +#line 8125 "src/parser.c" +yy523: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'b': goto yy550; + default: goto yy62; + } yy524: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'b': goto yy554; + case 's': goto yy551; default: goto yy62; } yy525: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 's': goto yy555; + case 'e': goto yy552; default: goto yy62; } yy526: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'i': goto yy556; + case 'i': goto yy554; default: goto yy62; } yy527: @@ -8480,12 +8220,12 @@ yy527: case '}': case '~': case 0x7F: goto yy55; - case '\\': goto yy138; - case 'o': goto yy557; + case '\\': goto yy148; + case 'o': goto yy555; default: goto yy527; } yy529: - yyaccept = 69; + yyaccept = 65; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -8552,15 +8292,29 @@ yy529: case '}': case '~': case 0x7F: goto yy530; - case '\\': goto yy138; + case '\\': goto yy148; default: goto yy61; } yy530: -#line 388 "src/parser.re" - { NEWTOKEN(PSI_T_CALLABLE); goto start; } -#line 8562 "src/parser.c" +#line 397 "src/parser.re" + { NEWTOKEN(PSI_T_TYPEDEF); goto start; } +#line 8302 "src/parser.c" yy531: - yyaccept = 70; + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'd': goto yy557; + default: goto yy62; + } +yy532: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'e': goto yy559; + default: goto yy62; + } +yy533: + yyaccept = 66; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -8626,16 +8380,16 @@ yy531: case '|': case '}': case '~': - case 0x7F: goto yy532; - case '\\': goto yy138; + case 0x7F: goto yy534; + case '\\': goto yy148; default: goto yy61; } -yy532: -#line 410 "src/parser.re" - { NEWTOKEN(PSI_T_CALLBACK); goto start; } -#line 8637 "src/parser.c" -yy533: - yyaccept = 71; +yy534: +#line 429 "src/parser.re" + { NEWTOKEN(PSI_T_CALLABLE); goto start; } +#line 8391 "src/parser.c" +yy535: + yyaccept = 67; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -8701,16 +8455,16 @@ yy533: case '|': case '}': case '~': - case 0x7F: goto yy534; - case '\\': goto yy138; + case 0x7F: goto yy536; + case '\\': goto yy148; default: goto yy61; } -yy534: -#line 430 "src/parser.re" - { NEWTOKEN(PSI_T_FLOATVAL); goto start; } -#line 8712 "src/parser.c" -yy535: - yyaccept = 72; +yy536: +#line 433 "src/parser.re" + { NEWTOKEN(PSI_T_CALLBACK); goto start; } +#line 8466 "src/parser.c" +yy537: + yyaccept = 68; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -8776,40 +8530,16 @@ yy535: case '|': case '}': case '~': - case 0x7F: goto yy536; - case '\\': goto yy138; + case 0x7F: goto yy538; + case '\\': goto yy148; default: goto yy61; } -yy536: -#line 412 "src/parser.re" - { NEWTOKEN(PSI_T_FUNCTION); goto start; } -#line 8787 "src/parser.c" -yy537: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'N': - case 'n': goto yy559; - default: goto yy62; - } yy538: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'E': - case 'e': goto yy560; - default: goto yy62; - } +#line 449 "src/parser.re" + { NEWTOKEN(PSI_T_FLOATVAL); goto start; } +#line 8541 "src/parser.c" yy539: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'R': - case 'r': goto yy561; - default: goto yy62; - } -yy540: - yyaccept = 73; + yyaccept = 69; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -8875,16 +8605,40 @@ yy540: case '|': case '}': case '~': - case 0x7F: goto yy541; - case '\\': goto yy138; + case 0x7F: goto yy540; + case '\\': goto yy148; default: goto yy61; } +yy540: +#line 435 "src/parser.re" + { NEWTOKEN(PSI_T_FUNCTION); goto start; } +#line 8616 "src/parser.c" yy541: -#line 438 "src/parser.re" - { NEWTOKEN(PSI_T_TO_ARRAY); goto start; } -#line 8886 "src/parser.c" + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'N': + case 'n': goto yy561; + default: goto yy62; + } yy542: - yyaccept = 74; + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'E': + case 'e': goto yy562; + default: goto yy62; + } +yy543: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'R': + case 'r': goto yy563; + default: goto yy62; + } +yy544: + yyaccept = 70; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -8950,32 +8704,16 @@ yy542: case '|': case '}': case '~': - case 0x7F: goto yy543; - case '\\': goto yy138; + case 0x7F: goto yy545; + case '\\': goto yy148; default: goto yy61; } -yy543: -#line 441 "src/parser.re" - { NEWTOKEN(PSI_T_TO_FLOAT); goto start; } -#line 8961 "src/parser.c" -yy544: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'T': - case 't': goto yy562; - default: goto yy62; - } yy545: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'G': - case 'g': goto yy564; - default: goto yy62; - } +#line 457 "src/parser.re" + { NEWTOKEN(PSI_T_TO_ARRAY); goto start; } +#line 8715 "src/parser.c" yy546: - yyaccept = 75; + yyaccept = 71; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -9042,15 +8780,45 @@ yy546: case '}': case '~': case 0x7F: goto yy547; - case '\\': goto yy138; + case '\\': goto yy148; default: goto yy61; } yy547: -#line 400 "src/parser.re" - { NEWTOKEN(PSI_T_UINT16); goto start; } -#line 9052 "src/parser.c" +#line 460 "src/parser.re" + { NEWTOKEN(PSI_T_TO_FLOAT); goto start; } +#line 8790 "src/parser.c" yy548: - yyaccept = 76; + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'T': + case 't': goto yy564; + default: goto yy62; + } +yy549: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'G': + case 'g': goto yy566; + default: goto yy62; + } +yy550: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'u': goto yy568; + default: goto yy62; + } +yy551: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'i': goto yy569; + default: goto yy62; + } +yy552: + yyaccept = 72; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -9116,18 +8884,27 @@ yy548: case '|': case '}': case '~': - case 0x7F: goto yy549; - case '\\': goto yy138; + case 0x7F: goto yy553; + case '\\': goto yy148; default: goto yy61; } -yy549: -#line 402 "src/parser.re" - { NEWTOKEN(PSI_T_UINT32); goto start; } -#line 9127 "src/parser.c" -yy550: - yyaccept = 77; +yy553: +#line 390 "src/parser.re" + { NEWTOKEN(PSI_T_CPP_INLINE); goto start; } +#line 8895 "src/parser.c" +yy554: + yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { + case 'c': goto yy570; + default: goto yy62; + } +yy555: + yyaccept = 5; + mrk = ++cur; + if (lim <= cur) if (cur >= lim) goto done;; + yych = *cur; + switch (yych) { case 0x00: case 0x01: case 0x02: @@ -9191,16 +8968,14 @@ yy550: case '|': case '}': case '~': - case 0x7F: goto yy551; - case '\\': goto yy138; - default: goto yy61; - } -yy551: -#line 404 "src/parser.re" - { NEWTOKEN(PSI_T_UINT64); goto start; } -#line 9202 "src/parser.c" -yy552: - yyaccept = 78; + case 0x7F: goto yy55; + case '\\': goto yy148; + case 'n': goto yy571; + case 'o': goto yy555; + default: goto yy527; + } +yy557: + yyaccept = 73; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -9266,41 +9041,18 @@ yy552: case '|': case '}': case '~': - case 0x7F: goto yy553; - case '\\': goto yy138; + case 0x7F: goto yy558; + case '\\': goto yy148; default: goto yy61; } -yy553: -#line 405 "src/parser.re" +yy558: +#line 410 "src/parser.re" { NEWTOKEN(PSI_T_UNSIGNED); goto start; } -#line 9277 "src/parser.c" -yy554: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'u': goto yy566; - default: goto yy62; - } -yy555: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'i': goto yy567; - default: goto yy62; - } -yy556: - yyaccept = 5; +#line 9052 "src/parser.c" +yy559: + yyaccept = 74; yych = *(mrk = ++cur); switch (yych) { - case 'c': goto yy568; - default: goto yy62; - } -yy557: - yyaccept = 5; - mrk = ++cur; - if (lim <= cur) if (cur >= lim) goto done;; - yych = *cur; - switch (yych) { case 0x00: case 0x01: case 0x02: @@ -9364,38 +9116,40 @@ yy557: case '|': case '}': case '~': - case 0x7F: goto yy55; - case '\\': goto yy138; - case 'n': goto yy569; - case 'o': goto yy557; - default: goto yy527; + case 0x7F: goto yy560; + case '\\': goto yy148; + default: goto yy61; } -yy559: +yy560: +#line 394 "src/parser.re" + { NEWTOKEN(PSI_T_VOLATILE); goto start; } +#line 9127 "src/parser.c" +yy561: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy570; + case 'e': goto yy572; default: goto yy62; } -yy560: +yy562: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'R': - case 'r': goto yy571; + case 'r': goto yy573; default: goto yy62; } -yy561: +yy563: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'T': - case 't': goto yy572; + case 't': goto yy574; default: goto yy62; } -yy562: - yyaccept = 79; +yy564: + yyaccept = 75; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -9461,16 +9215,16 @@ yy562: case '|': case '}': case '~': - case 0x7F: goto yy563; - case '\\': goto yy138; + case 0x7F: goto yy565; + case '\\': goto yy148; default: goto yy61; } -yy563: -#line 437 "src/parser.re" +yy565: +#line 456 "src/parser.re" { NEWTOKEN(PSI_T_TO_OBJECT); goto start; } -#line 9472 "src/parser.c" -yy564: - yyaccept = 80; +#line 9226 "src/parser.c" +yy566: + yyaccept = 76; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -9536,36 +9290,36 @@ yy564: case '|': case '}': case '~': - case 0x7F: goto yy565; - case '\\': goto yy138; + case 0x7F: goto yy567; + case '\\': goto yy148; default: goto yy61; } -yy565: -#line 439 "src/parser.re" +yy567: +#line 458 "src/parser.re" { NEWTOKEN(PSI_T_TO_STRING); goto start; } -#line 9547 "src/parser.c" -yy566: +#line 9301 "src/parser.c" +yy568: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 't': goto yy574; + case 't': goto yy576; default: goto yy62; } -yy567: +yy569: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'o': goto yy575; + case 'o': goto yy577; default: goto yy62; } -yy568: +yy570: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 't': goto yy576; + case 't': goto yy578; default: goto yy62; } -yy569: +yy571: yyaccept = 5; mrk = ++cur; if (lim <= cur) if (cur >= lim) goto done;; @@ -9635,29 +9389,29 @@ yy569: case '}': case '~': case 0x7F: goto yy55; - case '\\': goto yy138; - case 'c': goto yy578; - case 'o': goto yy557; + case '\\': goto yy148; + case 'c': goto yy580; + case 'o': goto yy555; default: goto yy527; } -yy570: +yy572: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'X': - case 'x': goto yy579; + case 'x': goto yy581; default: goto yy62; } -yy571: +yy573: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'T': - case 't': goto yy580; + case 't': goto yy582; default: goto yy62; } -yy572: - yyaccept = 81; +yy574: + yyaccept = 77; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -9723,30 +9477,30 @@ yy572: case '|': case '}': case '~': - case 0x7F: goto yy573; - case '\\': goto yy138; + case 0x7F: goto yy575; + case '\\': goto yy148; default: goto yy61; } -yy573: -#line 421 "src/parser.re" +yy575: +#line 439 "src/parser.re" { NEWTOKEN(PSI_T_PRE_ASSERT); goto start; } -#line 9734 "src/parser.c" -yy574: +#line 9488 "src/parser.c" +yy576: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'e': goto yy582; + case 'e': goto yy584; default: goto yy62; } -yy575: +yy577: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'n': goto yy583; + case 'n': goto yy585; default: goto yy62; } -yy576: - yyaccept = 82; +yy578: + yyaccept = 78; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -9812,15 +9566,15 @@ yy576: case '|': case '}': case '~': - case 0x7F: goto yy577; - case '\\': goto yy138; + case 0x7F: goto yy579; + case '\\': goto yy148; default: goto yy61; } -yy577: -#line 367 "src/parser.re" +yy579: +#line 391 "src/parser.re" { NEWTOKEN(PSI_T_CPP_RESTRICT); goto start; } -#line 9823 "src/parser.c" -yy578: +#line 9577 "src/parser.c" +yy580: yyaccept = 5; mrk = ++cur; if (lim <= cur) if (cur >= lim) goto done;; @@ -9890,21 +9644,21 @@ yy578: case '}': case '~': case 0x7F: goto yy55; - case '\\': goto yy138; - case 'e': goto yy584; - case 'o': goto yy557; + case '\\': goto yy148; + case 'e': goto yy586; + case 'o': goto yy555; default: goto yy527; } -yy579: +yy581: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'T': - case 't': goto yy586; + case 't': goto yy588; default: goto yy62; } -yy580: - yyaccept = 83; +yy582: + yyaccept = 79; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -9970,30 +9724,30 @@ yy580: case '|': case '}': case '~': - case 0x7F: goto yy581; - case '\\': goto yy138; + case 0x7F: goto yy583; + case '\\': goto yy148; default: goto yy61; } -yy581: -#line 422 "src/parser.re" +yy583: +#line 440 "src/parser.re" { NEWTOKEN(PSI_T_POST_ASSERT); goto start; } -#line 9981 "src/parser.c" -yy582: +#line 9735 "src/parser.c" +yy584: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '_': goto yy588; + case '_': goto yy590; default: goto yy62; } -yy583: +yy585: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '_': goto yy589; + case '_': goto yy591; default: goto yy62; } -yy584: - yyaccept = 84; +yy586: + yyaccept = 80; mrk = ++cur; if (lim <= cur) if (cur >= lim) goto done;; yych = *cur; @@ -10061,17 +9815,17 @@ yy584: case '|': case '}': case '~': - case 0x7F: goto yy585; - case '\\': goto yy138; - case 'o': goto yy557; + case 0x7F: goto yy587; + case '\\': goto yy148; + case 'o': goto yy555; default: goto yy527; } -yy585: -#line 366 "src/parser.re" +yy587: +#line 389 "src/parser.re" { NEWTOKEN(PSI_T_PRAGMA_ONCE); goto start; } -#line 10073 "src/parser.c" -yy586: - yyaccept = 85; +#line 9827 "src/parser.c" +yy588: + yyaccept = 81; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -10137,101 +9891,40 @@ yy586: case '|': case '}': case '~': - case 0x7F: goto yy587; - case '\\': goto yy138; + case 0x7F: goto yy589; + case '\\': goto yy148; default: goto yy61; } -yy587: -#line 383 "src/parser.re" +yy589: +#line 424 "src/parser.re" { NEWTOKEN(PSI_T_INCLUDE_NEXT); goto start; } -#line 10148 "src/parser.c" -yy588: +#line 9902 "src/parser.c" +yy590: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '_': goto yy590; + case '_': goto yy592; default: goto yy62; } -yy589: +yy591: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '_': goto yy591; + case '_': goto yy593; default: goto yy62; } -yy590: +yy592: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 0x00: - case 0x01: - case 0x02: - case 0x03: - case 0x04: - case 0x05: - case 0x06: - case 0x07: - case 0x08: - case '\n': - case '\v': - case '\r': - case 0x0E: - case 0x0F: - case 0x10: - case 0x11: - case 0x12: - case 0x13: - case 0x14: - case 0x15: - case 0x16: - case 0x17: - case 0x18: - case 0x19: - case 0x1A: - case 0x1B: - case 0x1C: - case 0x1D: - case 0x1E: - case 0x1F: - case '!': - case '"': - case '#': - case '$': - case '%': - case '&': - case '\'': - case ')': - case '*': - case '+': - case ',': - case '-': - case '.': - case '/': - case ':': - case ';': - case '<': - case '=': - case '>': - case '?': - case '@': - case '[': - case ']': - case '^': - case '`': - case '{': - case '|': - case '}': - case '~': - case 0x7F: goto yy55; case '\t': case '\f': - case ' ': goto yy593; - case '(': goto yy595; - case '\\': goto yy138; - default: goto yy61; + case ' ': goto yy595; + case '(': goto yy597; + default: goto yy62; } -yy591: - yyaccept = 86; +yy593: + yyaccept = 82; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -10297,222 +9990,243 @@ yy591: case '|': case '}': case '~': - case 0x7F: goto yy592; - case '\\': goto yy138; + case 0x7F: goto yy594; + case '\\': goto yy148; default: goto yy61; } -yy592: -#line 368 "src/parser.re" +yy594: +#line 392 "src/parser.re" { NEWTOKEN(PSI_T_CPP_EXTENSION); goto start; } -#line 10308 "src/parser.c" -yy593: +#line 10001 "src/parser.c" +yy595: ++cur; if ((lim - cur) < 2) if (cur >= lim) goto done;; yych = *cur; switch (yych) { case '\t': case '\f': - case ' ': goto yy593; - case '(': goto yy595; - default: goto yy106; + case ' ': goto yy595; + case '(': goto yy597; + default: goto yy114; } -yy595: +yy597: yych = *++cur; switch (yych) { - case '(': goto yy596; - default: goto yy106; + case '(': goto yy598; + default: goto yy114; } -yy596: +yy598: ++cur; -#line 447 "src/parser.re" +#line 466 "src/parser.re" { parens = 2; goto cpp_attribute; } -#line 10330 "src/parser.c" +#line 10023 "src/parser.c" } -#line 453 "src/parser.re" +#line 472 "src/parser.re" character: ; -#line 10337 "src/parser.c" +#line 10030 "src/parser.c" { unsigned char yych; if (lim <= cur) if (cur >= lim) goto done;; yych = *cur; switch (yych) { case '\n': - case '\r': goto yy602; - case '\'': goto yy604; - case '\\': goto yy606; - default: goto yy600; + case '\r': goto yy604; + case '\'': goto yy606; + case '\\': goto yy608; + default: goto yy602; } -yy600: - ++cur; -#line 461 "src/parser.re" - { goto character; } -#line 10353 "src/parser.c" yy602: ++cur; -#line 459 "src/parser.re" - { NEWLINE(); goto character; } -#line 10358 "src/parser.c" +#line 490 "src/parser.re" + { escaped = false; goto character; } +#line 10046 "src/parser.c" yy604: ++cur; -#line 458 "src/parser.re" - { if (escaped) goto character; cur -= 1; NEWTOKEN(PSI_T_QUOTED_CHAR); cur += 1; token->flags = char_width; goto start; } -#line 10363 "src/parser.c" +#line 477 "src/parser.re" + { NEWLINE(); goto character; } +#line 10051 "src/parser.c" yy606: ++cur; -#line 460 "src/parser.re" - { escaped = !escaped; } -#line 10368 "src/parser.c" +#line 479 "src/parser.re" + { + if (escaped) { + escaped = false; + goto character; + } + cur -= 1; + NEWTOKEN(PSI_T_QUOTED_CHAR); + cur += 1; + token->flags = char_width; + goto start; } -#line 463 "src/parser.re" +#line 10066 "src/parser.c" +yy608: + ++cur; +#line 478 "src/parser.re" + { escaped = !escaped; goto character; } +#line 10071 "src/parser.c" + } +#line 492 "src/parser.re" + string: ; -#line 10374 "src/parser.c" +#line 10078 "src/parser.c" { unsigned char yych; if (lim <= cur) if (cur >= lim) goto done;; yych = *cur; switch (yych) { case '\n': - case '\r': goto yy612; - case '"': goto yy614; - case '\\': goto yy616; - default: goto yy610; + case '\r': goto yy614; + case '"': goto yy616; + case '\\': goto yy618; + default: goto yy612; } -yy610: - ++cur; -#line 470 "src/parser.re" - { goto string; } -#line 10390 "src/parser.c" yy612: ++cur; -#line 468 "src/parser.re" - { NEWLINE(); goto string; } -#line 10395 "src/parser.c" +#line 510 "src/parser.re" + { escaped = false; goto string; } +#line 10094 "src/parser.c" yy614: ++cur; -#line 467 "src/parser.re" - { if (escaped) goto string; cur -= 1; NEWTOKEN(PSI_T_QUOTED_STRING); cur += 1; token->flags = char_width; goto start; } -#line 10400 "src/parser.c" +#line 497 "src/parser.re" + { NEWLINE(); goto string; } +#line 10099 "src/parser.c" yy616: ++cur; -#line 469 "src/parser.re" +#line 499 "src/parser.re" + { + if (escaped) { + escaped = false; + goto string; + } + cur -= 1; + NEWTOKEN(PSI_T_QUOTED_STRING); + cur += 1; + token->flags = char_width; + goto start; + } +#line 10114 "src/parser.c" +yy618: + ++cur; +#line 498 "src/parser.re" { escaped = !escaped; goto string; } -#line 10405 "src/parser.c" +#line 10119 "src/parser.c" } -#line 472 "src/parser.re" +#line 512 "src/parser.re" comment: ; -#line 10412 "src/parser.c" +#line 10126 "src/parser.c" { unsigned char yych; if ((lim - cur) < 2) if (cur >= lim) goto done;; yych = *cur; switch (yych) { case '\n': - case '\r': goto yy622; - case '*': goto yy624; - default: goto yy620; + case '\r': goto yy624; + case '*': goto yy626; + default: goto yy622; } -yy620: +yy622: ++cur; -yy621: -#line 479 "src/parser.re" +yy623: +#line 519 "src/parser.re" { goto comment; } -#line 10428 "src/parser.c" -yy622: +#line 10142 "src/parser.c" +yy624: ++cur; -#line 477 "src/parser.re" +#line 517 "src/parser.re" { NEWLINE(); goto comment; } -#line 10433 "src/parser.c" -yy624: +#line 10147 "src/parser.c" +yy626: yych = *++cur; switch (yych) { - case '/': goto yy625; - default: goto yy621; + case '/': goto yy627; + default: goto yy623; } -yy625: +yy627: ++cur; -#line 478 "src/parser.re" +#line 518 "src/parser.re" { NEWTOKEN(PSI_T_COMMENT); goto start; } -#line 10444 "src/parser.c" +#line 10158 "src/parser.c" } -#line 481 "src/parser.re" +#line 521 "src/parser.re" comment_sl: ; -#line 10451 "src/parser.c" +#line 10165 "src/parser.c" { unsigned char yych; if (lim <= cur) if (cur >= lim) goto done;; yych = *cur; switch (yych) { case '\n': - case '\r': goto yy631; - default: goto yy629; + case '\r': goto yy633; + default: goto yy631; } -yy629: +yy631: ++cur; -#line 487 "src/parser.re" +#line 527 "src/parser.re" { goto comment_sl; } -#line 10465 "src/parser.c" -yy631: +#line 10179 "src/parser.c" +yy633: ++cur; -#line 486 "src/parser.re" +#line 526 "src/parser.re" { NEWTOKEN(PSI_T_COMMENT); NEWLINE(); goto start; } -#line 10470 "src/parser.c" +#line 10184 "src/parser.c" } -#line 489 "src/parser.re" +#line 529 "src/parser.re" cpp_attribute: ; -#line 10478 "src/parser.c" +#line 10192 "src/parser.c" { unsigned char yych; if (lim <= cur) if (cur >= lim) goto done;; yych = *cur; switch (yych) { case '\n': - case '\r': goto yy637; - case '(': goto yy639; - case ')': goto yy641; - default: goto yy635; + case '\r': goto yy639; + case '(': goto yy641; + case ')': goto yy643; + default: goto yy637; } -yy635: +yy637: ++cur; -#line 498 "src/parser.re" +#line 538 "src/parser.re" { goto cpp_attribute; } -#line 10494 "src/parser.c" -yy637: +#line 10208 "src/parser.c" +yy639: ++cur; -#line 497 "src/parser.re" +#line 537 "src/parser.re" { NEWLINE(); goto cpp_attribute; } -#line 10499 "src/parser.c" -yy639: +#line 10213 "src/parser.c" +yy641: ++cur; -#line 495 "src/parser.re" +#line 535 "src/parser.re" { ++parens; goto cpp_attribute; } -#line 10504 "src/parser.c" -yy641: +#line 10218 "src/parser.c" +yy643: ++cur; -#line 496 "src/parser.re" +#line 536 "src/parser.re" { if (parens == 1) { NEWTOKEN(PSI_T_CPP_ATTRIBUTE); goto start; } else { --parens; goto cpp_attribute; } } -#line 10509 "src/parser.c" +#line 10223 "src/parser.c" } -#line 500 "src/parser.re" +#line 540 "src/parser.re" error: ; P->error(PSI_DATA(P), token, PSI_WARNING, "PSI syntax error: unexpected input (%d) '%.*s' at col %tu", - token->type, token->size, token->text, tok - eol + 1); + token->type, token->text->len, token->text->val, tok - eol + 1); psi_plist_free(tokens); return NULL;