X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Fparser.c;h=719c551fdb7bdd1bc76a7229d26c929e959d89f2;hp=4e979dd0fa684cfa0861455a7cc68719320a0ce1;hb=c0873cbbe9e5a83305adbc2bbd94aede5437f33d;hpb=3d77b5b65efb78c1da9485dfde1fcd417066b803 diff --git a/src/parser.c b/src/parser.c index 4e979dd..719c551 100644 --- a/src/parser.c +++ b/src/parser.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.16 on Thu Jul 27 12:41:40 2017 */ +/* Generated by re2c 1.1.1 on Fri Nov 2 08:39:44 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 @@ -48,8 +52,6 @@ struct psi_parser *psi_parser_init(struct psi_parser *P, psi_error_cb error, uns P->preproc = psi_cpp_init(P); - psi_cpp_load_defaults(P->preproc); - return P; } @@ -68,7 +70,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 +100,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 +110,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 +121,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 +142,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 +234,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 +262,19 @@ 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,7 +285,7 @@ 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); + PSI_DEBUG_PRINT(P, "PSI: scanning %s\n", I->file->val); tok = mrk = eol = cur = I->buffer; lim = I->buffer + I->length; @@ -277,8 +297,10 @@ struct psi_plist *psi_parser_scan(struct psi_parser *P, struct psi_parser_input ctxmrk = NULL; tok = cur; + (void) ctxmrk; + -#line 282 "src/parser.c" +#line 304 "src/parser.c" { unsigned char yych; unsigned int yyaccept = 0; @@ -403,9 +425,9 @@ struct psi_plist *psi_parser_scan(struct psi_parser *P, struct psi_parser_input yy2: ++cur; yy3: -#line 452 "src/parser.re" +#line 469 "src/parser.re" { NEWTOKEN(-2); goto error; } -#line 409 "src/parser.c" +#line 431 "src/parser.c" yy4: ++cur; if (lim <= cur) if (cur >= lim) goto done;; @@ -417,39 +439,39 @@ yy4: default: goto yy6; } yy6: -#line 451 "src/parser.re" +#line 468 "src/parser.re" { NEWTOKEN(PSI_T_WHITESPACE); goto start; } -#line 423 "src/parser.c" +#line 445 "src/parser.c" yy7: ++cur; -#line 450 "src/parser.re" +#line 467 "src/parser.re" { NEWTOKEN(PSI_T_EOL); NEWLINE(); goto start; } -#line 428 "src/parser.c" +#line 450 "src/parser.c" yy9: - ++cur; - switch ((yych = *cur)) { + yych = *++cur; + switch (yych) { case '=': goto yy104; default: goto yy10; } yy10: -#line 349 "src/parser.re" +#line 370 "src/parser.re" { NEWTOKEN(PSI_T_NOT); goto start; } -#line 438 "src/parser.c" +#line 460 "src/parser.c" yy11: ++cur; -#line 322 "src/parser.re" +#line 343 "src/parser.re" { escaped = false; tok += 1; goto string; } -#line 443 "src/parser.c" +#line 465 "src/parser.c" yy13: - ++cur; - switch ((yych = *cur)) { + yych = *++cur; + switch (yych) { case '#': goto yy106; default: goto yy14; } yy14: -#line 332 "src/parser.re" +#line 353 "src/parser.re" { NEWTOKEN(PSI_T_HASH); goto start; } -#line 453 "src/parser.c" +#line 475 "src/parser.c" yy15: yych = *++cur; switch (yych) { @@ -522,39 +544,39 @@ yy15: } yy16: ++cur; -#line 350 "src/parser.re" +#line 371 "src/parser.re" { NEWTOKEN(PSI_T_MODULO); goto start; } -#line 528 "src/parser.c" +#line 550 "src/parser.c" yy18: - ++cur; - switch ((yych = *cur)) { + yych = *++cur; + switch (yych) { case '&': goto yy111; default: goto yy19; } yy19: -#line 351 "src/parser.re" +#line 372 "src/parser.re" { NEWTOKEN(PSI_T_AMPERSAND); goto start; } -#line 538 "src/parser.c" +#line 560 "src/parser.c" yy20: ++cur; -#line 321 "src/parser.re" +#line 342 "src/parser.re" { escaped = false; tok += 1; goto character; } -#line 543 "src/parser.c" +#line 565 "src/parser.c" yy22: ++cur; -#line 333 "src/parser.re" +#line 354 "src/parser.re" { NEWTOKEN(PSI_T_LPAREN); goto start; } -#line 548 "src/parser.c" +#line 570 "src/parser.c" yy24: ++cur; -#line 334 "src/parser.re" +#line 355 "src/parser.re" { NEWTOKEN(PSI_T_RPAREN); goto start; } -#line 553 "src/parser.c" +#line 575 "src/parser.c" yy26: ++cur; -#line 347 "src/parser.re" +#line 368 "src/parser.re" { NEWTOKEN(PSI_T_ASTERISK); goto start; } -#line 558 "src/parser.c" +#line 580 "src/parser.c" yy28: yyaccept = 0; yych = *(mrk = ++cur); @@ -573,14 +595,14 @@ yy28: default: goto yy29; } yy29: -#line 352 "src/parser.re" +#line 373 "src/parser.re" { NEWTOKEN(PSI_T_PLUS); goto start; } -#line 579 "src/parser.c" +#line 601 "src/parser.c" yy30: ++cur; -#line 336 "src/parser.re" +#line 357 "src/parser.re" { NEWTOKEN(PSI_T_COMMA); goto start; } -#line 584 "src/parser.c" +#line 606 "src/parser.c" yy32: yyaccept = 1; yych = *(mrk = ++cur); @@ -599,9 +621,9 @@ yy32: default: goto yy33; } yy33: -#line 353 "src/parser.re" +#line 374 "src/parser.re" { NEWTOKEN(PSI_T_MINUS); goto start; } -#line 605 "src/parser.c" +#line 627 "src/parser.c" yy34: yyaccept = 2; yych = *(mrk = ++cur); @@ -620,54 +642,40 @@ yy34: default: goto yy35; } yy35: -#line 364 "src/parser.re" +#line 385 "src/parser.re" { NEWTOKEN(PSI_T_PERIOD); goto start; } -#line 626 "src/parser.c" +#line 648 "src/parser.c" yy36: - ++cur; - switch ((yych = *cur)) { + yych = *++cur; + switch (yych) { case '*': goto yy119; case '/': goto yy121; default: goto yy37; } yy37: -#line 354 "src/parser.re" +#line 375 "src/parser.re" { NEWTOKEN(PSI_T_SLASH); goto start; } -#line 637 "src/parser.c" +#line 659 "src/parser.c" yy38: yyaccept = 3; yych = *(mrk = ++cur); - ctxmrk = cur; switch (yych) { case '.': goto yy123; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': goto yy125; case 'E': case 'e': goto yy127; - case 'L': - case 'l': goto yy128; - case 'U': - case 'u': goto yy130; case 'X': case 'x': goto yy132; - default: goto yy39; + default: goto yy126; } yy39: -#line 308 "src/parser.re" +#line 329 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT; goto start; } -#line 665 "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 yy123; case '0': @@ -690,14 +698,14 @@ yy40: } yy42: ++cur; -#line 337 "src/parser.re" +#line 358 "src/parser.re" { NEWTOKEN(PSI_T_COLON); goto start; } -#line 696 "src/parser.c" +#line 704 "src/parser.c" yy44: ++cur; -#line 335 "src/parser.re" +#line 356 "src/parser.re" { NEWTOKEN(PSI_T_EOS); goto start; } -#line 701 "src/parser.c" +#line 709 "src/parser.c" yy46: yyaccept = 4; yych = *(mrk = ++cur); @@ -773,53 +781,55 @@ yy46: default: goto yy47; } yy47: -#line 362 "src/parser.re" +#line 383 "src/parser.re" { NEWTOKEN(PSI_T_LCHEVR); goto start; } -#line 779 "src/parser.c" +#line 787 "src/parser.c" yy48: - ++cur; - switch ((yych = *cur)) { + yych = *++cur; + switch (yych) { case '=': goto yy139; default: goto yy49; } yy49: -#line 346 "src/parser.re" +#line 367 "src/parser.re" { NEWTOKEN(PSI_T_EQUALS); goto start; } -#line 789 "src/parser.c" +#line 797 "src/parser.c" yy50: - ++cur; - switch ((yych = *cur)) { + yych = *++cur; + switch (yych) { case '=': goto yy141; case '>': goto yy143; default: goto yy51; } yy51: -#line 363 "src/parser.re" +#line 384 "src/parser.re" { NEWTOKEN(PSI_T_RCHEVR); goto start; } -#line 800 "src/parser.c" +#line 808 "src/parser.c" yy52: ++cur; -#line 366 "src/parser.re" +#line 387 "src/parser.re" { NEWTOKEN(PSI_T_IIF); goto start; } -#line 805 "src/parser.c" +#line 813 "src/parser.c" yy54: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'R': case 'r': goto yy145; + case 'S': + case 's': goto yy146; default: goto yy62; } yy55: -#line 445 "src/parser.re" +#line 462 "src/parser.re" { NEWTOKEN(PSI_T_NAME); goto start; } -#line 817 "src/parser.c" +#line 827 "src/parser.c" yy56: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'O': - case 'o': goto yy147; + case 'o': goto yy149; default: goto yy62; } yy57: @@ -827,9 +837,9 @@ yy57: yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy148; + case 'a': goto yy150; case 'O': - case 'o': goto yy149; + case 'o': goto yy151; default: goto yy62; } yy58: @@ -837,7 +847,7 @@ yy58: yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy150; + case 'e': goto yy152; default: goto yy62; } yy59: @@ -845,11 +855,11 @@ yy59: yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy151; + case 'l': goto yy153; case 'N': - case 'n': goto yy152; + case 'n': goto yy154; case 'R': - case 'r': goto yy153; + case 'r': goto yy155; default: goto yy62; } yy60: @@ -857,13 +867,13 @@ yy60: yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy154; + case 'a': goto yy156; case 'L': - case 'l': goto yy155; + case 'l': goto yy157; case 'R': - case 'r': goto yy156; + case 'r': goto yy158; case 'U': - case 'u': goto yy157; + case 'u': goto yy159; default: goto yy62; } yy61: @@ -937,7 +947,7 @@ yy62: case '}': case '~': case 0x7F: goto yy55; - case '\\': goto yy146; + case '\\': goto yy148; default: goto yy61; } yy63: @@ -945,22 +955,21 @@ yy63: yych = *(mrk = ++cur); switch (yych) { case 'F': - case 'f': goto yy158; + case 'f': goto yy160; case 'N': - case 'n': goto yy160; + case 'n': goto yy162; default: goto yy62; } yy64: yyaccept = 5; yych = *(mrk = ++cur); - ctxmrk = cur; switch (yych) { case '"': - case '\'': goto yy161; + case '\'': goto yy163; case 'E': - case 'e': goto yy163; + case 'e': goto yy165; case 'I': - case 'i': goto yy164; + case 'i': goto yy166; default: goto yy62; } yy65: @@ -968,7 +977,7 @@ yy65: yych = *(mrk = ++cur); switch (yych) { case 'I': - case 'i': goto yy165; + case 'i': goto yy167; default: goto yy62; } yy66: @@ -976,7 +985,7 @@ yy66: yych = *(mrk = ++cur); switch (yych) { case 'U': - case 'u': goto yy166; + case 'u': goto yy168; default: goto yy62; } yy67: @@ -984,7 +993,7 @@ yy67: yych = *(mrk = ++cur); switch (yych) { case 'B': - case 'b': goto yy167; + case 'b': goto yy169; default: goto yy62; } yy68: @@ -992,11 +1001,11 @@ yy68: yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy168; + case 'a': goto yy170; case 'O': - case 'o': goto yy169; + case 'o': goto yy171; case 'R': - case 'r': goto yy170; + case 'r': goto yy172; default: goto yy62; } yy69: @@ -1004,7 +1013,7 @@ yy69: yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy171; + case 'e': goto yy173; default: goto yy62; } yy70: @@ -1012,9 +1021,9 @@ yy70: yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy172; + case 'e': goto yy174; case 'T': - case 't': goto yy173; + case 't': goto yy175; default: goto yy62; } yy71: @@ -1022,22 +1031,21 @@ yy71: yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy174; + case 'e': goto yy176; case 'O': - case 'o': goto yy175; + case 'o': goto yy177; case 'R': - case 'r': goto yy176; + case 'r': goto yy178; default: goto yy62; } yy72: yyaccept = 5; yych = *(mrk = ++cur); - ctxmrk = cur; switch (yych) { case '"': - case '\'': goto yy177; + case '\'': goto yy179; case 'N': - case 'n': goto yy179; + case 'n': goto yy181; default: goto yy62; } yy73: @@ -1045,7 +1053,7 @@ yy73: yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy180; + case 'a': goto yy182; default: goto yy62; } yy74: @@ -1053,17 +1061,17 @@ yy74: yych = *(mrk = ++cur); switch (yych) { case 'V': - case 'v': goto yy181; + case 'v': goto yy183; default: goto yy62; } yy75: ++cur; -#line 340 "src/parser.re" +#line 361 "src/parser.re" { NEWTOKEN(PSI_T_LBRACKET); goto start; } -#line 1064 "src/parser.c" +#line 1072 "src/parser.c" yy77: - ++cur; - switch ((yych = *cur)) { + yych = *++cur; + switch (yych) { case 0x00: case 0x01: case 0x02: @@ -1139,35 +1147,35 @@ yy77: case '}': case '~': case 0x7F: goto yy78; - default: goto yy182; + default: goto yy184; } yy78: -#line 355 "src/parser.re" +#line 376 "src/parser.re" { NEWTOKEN(PSI_T_BSLASH); goto start; } -#line 1148 "src/parser.c" +#line 1156 "src/parser.c" yy79: ++cur; -#line 341 "src/parser.re" +#line 362 "src/parser.re" { NEWTOKEN(PSI_T_RBRACKET); goto start; } -#line 1153 "src/parser.c" +#line 1161 "src/parser.c" yy81: ++cur; -#line 357 "src/parser.re" +#line 378 "src/parser.re" { NEWTOKEN(PSI_T_CARET); goto start; } -#line 1158 "src/parser.c" +#line 1166 "src/parser.c" yy83: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '_': goto yy185; + case '_': goto yy187; default: goto yy62; } yy84: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'O': goto yy147; - case 'o': goto yy186; + case 'O': goto yy149; + case 'o': goto yy188; default: goto yy62; } yy85: @@ -1175,10 +1183,10 @@ yy85: yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy148; - case 'O': goto yy149; - case 'h': goto yy187; - case 'o': goto yy188; + case 'a': goto yy150; + case 'O': goto yy151; + case 'h': goto yy189; + case 'o': goto yy190; default: goto yy62; } yy86: @@ -1186,8 +1194,8 @@ yy86: yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy150; - case 'o': goto yy189; + case 'e': goto yy152; + case 'o': goto yy191; default: goto yy62; } yy87: @@ -1195,11 +1203,11 @@ yy87: yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy151; - case 'N': goto yy152; + case 'l': goto yy153; + case 'N': goto yy154; case 'R': - case 'r': goto yy153; - case 'n': goto yy190; + case 'r': goto yy155; + case 'n': goto yy192; default: goto yy62; } yy88: @@ -1207,13 +1215,13 @@ yy88: yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy154; - case 'L': goto yy155; + case 'a': goto yy156; + case 'L': goto yy157; case 'R': - case 'r': goto yy156; + case 'r': goto yy158; case 'U': - case 'u': goto yy157; - case 'l': goto yy191; + case 'u': goto yy159; + case 'l': goto yy193; default: goto yy62; } yy89: @@ -1221,9 +1229,9 @@ yy89: yych = *(mrk = ++cur); switch (yych) { case 'F': - case 'f': goto yy158; - case 'N': goto yy160; - case 'n': goto yy192; + case 'f': goto yy160; + case 'N': goto yy162; + case 'n': goto yy194; default: goto yy62; } yy90: @@ -1231,10 +1239,10 @@ yy90: yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy163; - case 'I': goto yy164; - case 'i': goto yy193; - case 'o': goto yy194; + case 'e': goto yy165; + case 'I': goto yy166; + case 'i': goto yy195; + case 'o': goto yy196; default: goto yy62; } yy91: @@ -1242,11 +1250,11 @@ yy91: yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy168; + case 'a': goto yy170; case 'O': - case 'o': goto yy169; - case 'R': goto yy170; - case 'r': goto yy195; + case 'o': goto yy171; + case 'R': goto yy172; + case 'r': goto yy197; default: goto yy62; } yy92: @@ -1254,11 +1262,11 @@ yy92: yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy172; - case 'T': goto yy173; - case 'h': goto yy196; - case 'i': goto yy197; - case 't': goto yy198; + case 'e': goto yy174; + case 'T': goto yy175; + case 'h': goto yy198; + case 'i': goto yy199; + case 't': goto yy200; default: goto yy62; } yy93: @@ -1266,69 +1274,67 @@ yy93: yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy174; + case 'e': goto yy176; case 'O': - case 'o': goto yy175; + case 'o': goto yy177; case 'R': - case 'r': goto yy176; - case 'y': goto yy199; + case 'r': goto yy178; + case 'y': goto yy201; default: goto yy62; } yy94: yyaccept = 5; yych = *(mrk = ++cur); - ctxmrk = cur; switch (yych) { case '"': - case '\'': goto yy200; - case '8': goto yy202; - case 'N': goto yy179; - case 'i': goto yy203; - case 'n': goto yy204; + case '\'': goto yy202; + case '8': goto yy204; + case 'N': goto yy181; + case 'n': goto yy205; default: goto yy62; } yy95: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'o': goto yy205; + case 'o': goto yy206; default: goto yy62; } yy96: ++cur; -#line 338 "src/parser.re" +#line 359 "src/parser.re" { NEWTOKEN(PSI_T_LBRACE); goto start; } -#line 1302 "src/parser.c" +#line 1308 "src/parser.c" yy98: - ++cur; - switch ((yych = *cur)) { - case '|': goto yy206; + yych = *++cur; + switch (yych) { + case '|': goto yy207; default: goto yy99; } yy99: -#line 356 "src/parser.re" +#line 377 "src/parser.re" { NEWTOKEN(PSI_T_PIPE); goto start; } -#line 1312 "src/parser.c" +#line 1318 "src/parser.c" yy100: ++cur; -#line 339 "src/parser.re" +#line 360 "src/parser.re" { NEWTOKEN(PSI_T_RBRACE); goto start; } -#line 1317 "src/parser.c" +#line 1323 "src/parser.c" yy102: ++cur; -#line 348 "src/parser.re" +#line 369 "src/parser.re" { NEWTOKEN(PSI_T_TILDE); goto start; } -#line 1322 "src/parser.c" +#line 1328 "src/parser.c" yy104: ++cur; -#line 342 "src/parser.re" +#line 363 "src/parser.re" { NEWTOKEN(PSI_T_CMP_NE); goto start; } -#line 1327 "src/parser.c" +#line 1333 "src/parser.c" yy106: ++cur; -#line 331 "src/parser.re" +#line 352 "src/parser.re" { NEWTOKEN(PSI_T_CPP_PASTE); goto start; } -#line 1332 "src/parser.c" +#line 1338 "src/parser.c" yy108: ++cur; if (lim <= cur) if (cur >= lim) goto done;; @@ -1402,14 +1408,14 @@ yy108: default: goto yy108; } yy110: -#line 447 "src/parser.re" +#line 464 "src/parser.re" { NEWTOKEN(PSI_T_DOLLAR_NAME); goto start; } -#line 1408 "src/parser.c" +#line 1414 "src/parser.c" yy111: ++cur; -#line 344 "src/parser.re" +#line 365 "src/parser.re" { NEWTOKEN(PSI_T_AND); goto start; } -#line 1413 "src/parser.c" +#line 1419 "src/parser.c" yy113: yych = *++cur; switch (yych) { @@ -1436,90 +1442,86 @@ yy114: case 5: goto yy55; case 6: goto yy118; case 7: goto yy129; - case 8: goto yy159; - case 9: goto yy184; - case 10: goto yy241; - case 11: goto yy243; - case 12: goto yy252; - case 13: goto yy271; - case 14: goto yy302; - case 15: goto yy304; - case 16: goto yy310; - case 17: goto yy318; - case 18: goto yy330; - case 19: goto yy338; - case 20: goto yy342; - case 21: goto yy348; - case 22: goto yy350; + 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 yy361; - case 25: goto yy363; - case 26: goto yy373; - case 27: goto yy375; - case 28: goto yy382; - case 29: goto yy385; - case 30: goto yy387; - case 31: goto yy389; - case 32: goto yy393; - case 33: goto yy398; - case 34: goto yy416; - case 35: goto yy423; - case 36: goto yy426; - case 37: goto yy433; - case 38: goto yy442; - case 39: goto yy445; - case 40: goto yy450; - case 41: goto yy452; - case 42: goto yy456; - case 43: goto yy459; - case 44: goto yy461; - case 45: goto yy463; - case 46: goto yy468; - case 47: goto yy470; - case 48: goto yy472; - case 49: goto yy474; - case 50: goto yy476; - case 51: goto yy481; - case 52: goto yy490; - case 53: goto yy495; - case 54: goto yy497; - case 55: goto yy499; - case 56: goto yy501; - case 57: goto yy509; - case 58: goto yy513; - case 59: goto yy517; - case 60: goto yy519; - case 61: goto yy524; - case 62: goto yy529; - case 63: goto yy531; - case 64: goto yy536; - case 65: goto yy538; - case 66: goto yy540; - case 67: goto yy544; - case 68: goto yy549; - case 69: goto yy552; - case 70: goto yy554; - case 71: goto yy556; - case 72: goto yy558; - case 73: goto yy563; - case 74: goto yy565; - case 75: goto yy574; - case 76: goto yy576; - case 77: goto yy578; - case 78: goto yy580; - case 79: goto yy585; + 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 yy595; - case 82: goto yy599; - case 83: goto yy603; - case 84: goto yy607; - case 85: goto yy609; - default: goto yy614; + case 81: goto yy589; + default: goto yy594; } yy115: yych = *++cur; switch (yych) { - case '.': goto yy208; + case '.': goto yy209; default: goto yy114; } yy116: @@ -1527,7 +1529,6 @@ yy116: mrk = ++cur; if ((lim - cur) < 2) if (cur >= lim) goto done;; yych = *cur; - ctxmrk = cur; switch (yych) { case '0': case '1': @@ -1540,33 +1541,32 @@ yy116: case '8': case '9': goto yy116; case 'D': - case 'd': goto yy210; + case 'd': goto yy211; case 'F': - case 'f': goto yy211; + case 'f': goto yy212; case 'L': - case 'l': goto yy213; + case 'l': goto yy214; default: goto yy118; } yy118: -#line 314 "src/parser.re" +#line 335 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT; goto start; } -#line 1554 "src/parser.c" +#line 1555 "src/parser.c" yy119: ++cur; -#line 328 "src/parser.re" +#line 349 "src/parser.re" { goto comment; } -#line 1559 "src/parser.c" +#line 1560 "src/parser.c" yy121: ++cur; -#line 329 "src/parser.re" +#line 350 "src/parser.re" { goto comment_sl; } -#line 1564 "src/parser.c" +#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': @@ -1579,20 +1579,20 @@ yy123: case '8': case '9': goto yy123; case 'D': - case 'd': goto yy210; + case 'd': goto yy211; case 'E': case 'e': goto yy127; case 'F': - case 'f': goto yy211; + case 'f': goto yy212; case 'L': - case 'l': goto yy213; + case 'l': goto yy214; default: goto yy118; } yy125: ++cur; if ((lim - cur) < 3) if (cur >= lim) goto done;; yych = *cur; - ctxmrk = cur; +yy126: switch (yych) { case '0': case '1': @@ -1630,26 +1630,26 @@ yy128: yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy215; + case 'l': goto yy216; case 'U': - case 'u': goto yy216; + case 'u': goto yy217; default: goto yy129; } yy129: - cur = ctxmrk; -#line 310 "src/parser.re" + cur -= 1; +#line 331 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_L; cur += 1; goto start; } #line 1643 "src/parser.c" yy130: - ++cur; - switch ((yych = *cur)) { + yych = *++cur; + switch (yych) { case 'L': - case 'l': goto yy218; + case 'l': goto yy219; default: goto yy131; } yy131: - cur = ctxmrk; -#line 309 "src/parser.re" + cur -= 1; +#line 330 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_U; cur += 1; goto start; } #line 1655 "src/parser.c" yy132: @@ -1676,7 +1676,7 @@ yy132: case 'c': case 'd': case 'e': - case 'f': goto yy219; + case 'f': goto yy220; default: goto yy114; } yy133: @@ -1750,32 +1750,32 @@ yy133: case 'x': case 'y': case 'z': goto yy133; - case '>': goto yy221; + case '>': goto yy222; default: goto yy114; } yy135: ++cur; -#line 358 "src/parser.re" +#line 379 "src/parser.re" { NEWTOKEN(PSI_T_LSHIFT); goto start; } #line 1761 "src/parser.c" yy137: ++cur; -#line 360 "src/parser.re" +#line 381 "src/parser.re" { NEWTOKEN(PSI_T_CMP_LE); goto start; } #line 1766 "src/parser.c" yy139: ++cur; -#line 343 "src/parser.re" +#line 364 "src/parser.re" { NEWTOKEN(PSI_T_CMP_EQ); goto start; } #line 1771 "src/parser.c" yy141: ++cur; -#line 361 "src/parser.re" +#line 382 "src/parser.re" { NEWTOKEN(PSI_T_CMP_GE); goto start; } #line 1776 "src/parser.c" yy143: ++cur; -#line 359 "src/parser.re" +#line 380 "src/parser.re" { NEWTOKEN(PSI_T_RSHIFT); goto start; } #line 1781 "src/parser.c" yy145: @@ -1783,10 +1783,85 @@ yy145: yych = *(mrk = ++cur); switch (yych) { case 'R': - case 'r': goto yy223; + case 'r': goto yy224; default: goto yy62; } 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; @@ -1866,100 +1941,100 @@ yy146: case '}': case '~': case 0x7F: goto yy114; - default: goto yy182; + default: goto yy184; } -yy147: +yy149: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'O': - case 'o': goto yy224; + case 'o': goto yy225; default: goto yy62; } -yy148: +yy150: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy225; + case 'l': goto yy226; default: goto yy62; } -yy149: +yy151: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'U': - case 'u': goto yy226; + case 'u': goto yy227; default: goto yy62; } -yy150: +yy152: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'F': - case 'f': goto yy227; + case 'f': goto yy228; default: goto yy62; } -yy151: +yy153: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'I': - case 'i': goto yy228; + case 'i': goto yy229; case 'S': - case 's': goto yy229; + case 's': goto yy230; default: goto yy62; } -yy152: +yy154: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'D': - case 'd': goto yy230; + case 'd': goto yy231; default: goto yy62; } -yy153: +yy155: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'R': - case 'r': goto yy231; + case 'r': goto yy232; default: goto yy62; } -yy154: +yy156: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy232; + case 'l': goto yy233; default: goto yy62; } -yy155: +yy157: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'O': - case 'o': goto yy233; + case 'o': goto yy234; default: goto yy62; } -yy156: +yy158: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy234; + case 'e': goto yy235; default: goto yy62; } -yy157: +yy159: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'N': - case 'n': goto yy235; + case 'n': goto yy236; default: goto yy62; } -yy158: - yyaccept = 8; +yy160: + yyaccept = 9; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -2025,179 +2100,179 @@ yy158: case '|': case '}': case '~': - case 0x7F: goto yy159; + case 0x7F: goto yy161; case 'D': - case 'd': goto yy236; + case 'd': goto yy237; case 'N': - case 'n': goto yy237; - case '\\': goto yy146; + case 'n': goto yy238; + case '\\': goto yy148; default: goto yy61; } -yy159: -#line 396 "src/parser.re" +yy161: +#line 412 "src/parser.re" { NEWTOKEN(PSI_T_IF); goto start; } -#line 2040 "src/parser.c" -yy160: +#line 2115 "src/parser.c" +yy162: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'C': - case 'c': goto yy238; + case 'c': goto yy239; case 'T': - case 't': goto yy239; + case 't': goto yy240; default: goto yy62; } -yy161: - ++cur; - cur = ctxmrk; -#line 326 "src/parser.re" - { char_width = SIZEOF_WCHAR_T/8; } -#line 2056 "src/parser.c" yy163: + ++cur; + 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 yy240; + case 't': goto yy241; default: goto yy62; } -yy164: +yy166: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'B': - case 'b': goto yy242; + case 'b': goto yy243; default: goto yy62; } -yy165: +yy167: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'X': - case 'x': goto yy244; + case 'x': goto yy245; default: goto yy62; } -yy166: +yy168: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy245; + case 'l': goto yy246; default: goto yy62; } -yy167: +yy169: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'J': - case 'j': goto yy246; + case 'j': goto yy247; default: goto yy62; } -yy168: +yy170: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'T': - case 't': goto yy247; + case 't': goto yy248; default: goto yy62; } -yy169: +yy171: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'S': - case 's': goto yy248; + case 's': goto yy249; default: goto yy62; } -yy170: +yy172: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy249; + case 'e': goto yy250; default: goto yy62; } -yy171: +yy173: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'T': - case 't': goto yy250; + case 't': goto yy251; default: goto yy62; } -yy172: +yy174: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'T': - case 't': goto yy251; + case 't': goto yy252; default: goto yy62; } -yy173: +yy175: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy253; + case 'a': goto yy254; case 'R': - case 'r': goto yy254; + case 'r': goto yy255; default: goto yy62; } -yy174: +yy176: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'M': - case 'm': goto yy255; + case 'm': goto yy256; default: goto yy62; } -yy175: +yy177: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '_': goto yy256; + case '_': goto yy257; default: goto yy62; } -yy176: +yy178: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'U': - case 'u': goto yy257; + case 'u': goto yy258; default: goto yy62; } -yy177: +yy179: ++cur; - cur = ctxmrk; -#line 325 "src/parser.re" + cur -= 1; +#line 346 "src/parser.re" { char_width = 4; } -#line 2175 "src/parser.c" -yy179: +#line 2250 "src/parser.c" +yy181: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'D': - case 'd': goto yy258; + case 'd': goto yy259; default: goto yy62; } -yy180: +yy182: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'R': - case 'r': goto yy259; + case 'r': goto yy260; default: goto yy62; } -yy181: +yy183: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy260; + 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; @@ -2265,237 +2340,231 @@ yy182: case '|': case '}': case '~': - case 0x7F: goto yy184; - case '\\': goto yy146; - default: goto yy182; - } -yy184: -#line 446 "src/parser.re" - { NEWTOKEN(PSI_T_NSNAME); goto start; } -#line 2276 "src/parser.c" -yy185: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'a': goto yy261; - case 'e': goto yy262; - case 'r': goto yy263; - default: goto yy62; + case 0x7F: goto yy186; + case '\\': goto yy148; + default: goto yy184; } yy186: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'O': goto yy224; - case 'o': goto yy264; - default: goto yy62; - } +#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 yy265; + case 'a': goto yy262; + case 'e': goto yy263; + case 'i': goto yy264; + case 'r': goto yy265; default: goto yy62; } yy188: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'U': - case 'u': goto yy226; - case 'n': goto yy266; + case 'O': goto yy225; + case 'o': goto yy266; default: goto yy62; } yy189: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'u': goto yy267; + case 'a': goto yy267; default: goto yy62; } yy190: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'D': - case 'd': goto yy230; - case 'u': goto yy268; + case 'U': + case 'u': goto yy227; + case 'n': goto yy268; default: goto yy62; } yy191: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'O': goto yy233; - case 'o': goto yy269; + case 'u': goto yy269; default: goto yy62; } yy192: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'C': - case 'c': goto yy238; - case 'T': goto yy239; - case 't': goto yy270; + case 'D': + case 'd': goto yy231; + case 'u': goto yy270; default: goto yy62; } yy193: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'B': - case 'b': goto yy242; - case 'n': goto yy272; + case 'O': goto yy234; + case 'o': goto yy271; default: goto yy62; } yy194: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'n': goto yy273; + 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 'E': - case 'e': goto yy249; - case 'a': goto yy274; + case 'B': + case 'b': goto yy243; + case 'n': goto yy274; default: goto yy62; } yy196: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'o': goto yy275; + case 'n': goto yy275; default: goto yy62; } yy197: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'g': goto yy276; + case 'E': + case 'e': goto yy250; + case 'a': goto yy276; default: goto yy62; } yy198: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'A': - case 'a': goto yy253; - case 'R': goto yy254; - case 'r': goto yy277; + case 'o': goto yy277; default: goto yy62; } yy199: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'p': goto yy278; + case 'g': goto yy278; + case 'z': goto yy279; default: goto yy62; } yy200: - ++cur; - cur = ctxmrk; -#line 324 "src/parser.re" - { char_width = 2; } -#line 2405 "src/parser.c" -yy202: yyaccept = 5; yych = *(mrk = ++cur); - ctxmrk = cur; switch (yych) { - case '"': goto yy279; + case 'A': + case 'a': goto yy254; + case 'R': goto yy255; + case 'r': goto yy280; default: goto yy62; } -yy203: +yy201: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'n': goto yy281; + case 'p': goto yy281; default: goto yy62; } +yy202: + ++cur; + cur -= 1; +#line 345 "src/parser.re" + { char_width = 2; } +#line 2482 "src/parser.c" yy204: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'D': - case 'd': goto yy258; - case 'i': goto yy282; - case 's': goto yy283; + case '"': goto yy282; default: goto yy62; } 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 345 "src/parser.re" +#line 366 "src/parser.re" { NEWTOKEN(PSI_T_OR); goto start; } -#line 2442 "src/parser.c" -yy208: +#line 2512 "src/parser.c" +yy209: ++cur; -#line 365 "src/parser.re" +#line 386 "src/parser.re" { NEWTOKEN(PSI_T_ELLIPSIS); goto start; } -#line 2447 "src/parser.c" -yy210: +#line 2517 "src/parser.c" +yy211: yych = *++cur; switch (yych) { case 'D': - case 'd': goto yy285; + case 'd': goto yy288; case 'F': - case 'f': goto yy287; + case 'f': goto yy290; case 'L': - case 'l': goto yy289; + case 'l': goto yy292; default: goto yy114; } -yy211: +yy212: ++cur; - cur = ctxmrk; -#line 315 "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 2464 "src/parser.c" -yy213: +#line 2534 "src/parser.c" +yy214: ++cur; - cur = ctxmrk; -#line 316 "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 2470 "src/parser.c" -yy215: +#line 2540 "src/parser.c" +yy216: yych = *++cur; switch (yych) { case 'U': - case 'u': goto yy291; + case 'u': goto yy294; default: goto yy114; } -yy216: - ++cur; yy217: - cur = ctxmrk; -#line 311 "src/parser.re" - { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_UL; cur += 2; goto start; } -#line 2484 "src/parser.c" + ++cur; 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 2554 "src/parser.c" +yy219: yych = *++cur; switch (yych) { case 'L': - case 'l': goto yy291; - default: goto yy217; + case 'l': goto yy294; + default: goto yy218; } -yy219: +yy220: yyaccept = 3; mrk = ++cur; if ((lim - cur) < 3) if (cur >= lim) goto done;; yych = *cur; - ctxmrk = cur; switch (yych) { - case '.': goto yy293; + case '.': goto yy296; case '0': case '1': case '2': @@ -2517,7 +2586,7 @@ yy219: case 'c': case 'd': case 'e': - case 'f': goto yy219; + case 'f': goto yy220; case 'L': case 'l': goto yy128; case 'P': @@ -2526,151 +2595,151 @@ yy219: case 'u': goto yy130; default: goto yy39; } -yy221: +yy222: ++cur; -#line 448 "src/parser.re" +#line 465 "src/parser.re" { tok += 1; cur -= 1; NEWTOKEN(PSI_T_CPP_HEADER); cur += 1; goto start; } -#line 2534 "src/parser.c" -yy223: +#line 2603 "src/parser.c" +yy224: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy295; + case 'a': goto yy298; case 'V': - case 'v': goto yy296; + case 'v': goto yy299; default: goto yy62; } -yy224: +yy225: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy297; + case 'l': goto yy300; default: goto yy62; } -yy225: +yy226: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy298; + case 'l': goto yy301; default: goto yy62; } -yy226: +yy227: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'N': - case 'n': goto yy299; + case 'n': goto yy302; default: goto yy62; } -yy227: +yy228: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'I': - case 'i': goto yy300; + case 'i': goto yy303; default: goto yy62; } -yy228: +yy229: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'F': - case 'f': goto yy301; + case 'f': goto yy304; default: goto yy62; } -yy229: +yy230: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy303; + case 'e': goto yy306; default: goto yy62; } -yy230: +yy231: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'I': - case 'i': goto yy305; + case 'i': goto yy308; default: goto yy62; } -yy231: +yy232: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'O': - case 'o': goto yy306; + case 'o': goto yy309; default: goto yy62; } -yy232: +yy233: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'S': - case 's': goto yy307; + case 's': goto yy310; default: goto yy62; } -yy233: +yy234: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy308; + case 'a': goto yy311; default: goto yy62; } -yy234: +yy235: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy309; + case 'e': goto yy312; default: goto yy62; } -yy235: +yy236: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'C': - case 'c': goto yy311; + case 'c': goto yy314; default: goto yy62; } -yy236: +yy237: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy312; + case 'e': goto yy315; default: goto yy62; } -yy237: +yy238: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'D': - case 'd': goto yy313; + case 'd': goto yy316; default: goto yy62; } -yy238: +yy239: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy314; + case 'l': goto yy317; default: goto yy62; } -yy239: +yy240: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'V': - case 'v': goto yy315; + case 'v': goto yy318; default: goto yy62; } -yy240: - yyaccept = 10; +yy241: + yyaccept = 11; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -2736,16 +2805,16 @@ yy240: case '|': case '}': case '~': - case 0x7F: goto yy241; - case '\\': goto yy146; + case 0x7F: goto yy242; + case '\\': goto yy148; default: goto yy61; } -yy241: -#line 421 "src/parser.re" - { NEWTOKEN(PSI_T_LET); goto start; } -#line 2747 "src/parser.c" yy242: - yyaccept = 11; +#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: @@ -2811,73 +2880,73 @@ yy242: case '|': case '}': case '~': - case 0x7F: goto yy243; - case '\\': goto yy146; + case 0x7F: goto yy244; + case '\\': goto yy148; default: goto yy61; } -yy243: -#line 420 "src/parser.re" - { NEWTOKEN(PSI_T_LIB); goto start; } -#line 2822 "src/parser.c" 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 yy316; + case 'e': goto yy319; default: goto yy62; } -yy245: +yy246: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy317; + case 'l': goto yy320; default: goto yy62; } -yy246: +yy247: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy319; + case 'e': goto yy322; case 'V': - case 'v': goto yy320; + case 'v': goto yy323; default: goto yy62; } -yy247: +yy248: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'H': - case 'h': goto yy321; + case 'h': goto yy324; default: goto yy62; } -yy248: +yy249: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'T': - case 't': goto yy322; + case 't': goto yy325; default: goto yy62; } -yy249: +yy250: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '_': goto yy323; + case '_': goto yy326; default: goto yy62; } -yy250: +yy251: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'U': - case 'u': goto yy324; + case 'u': goto yy327; default: goto yy62; } -yy251: - yyaccept = 12; +yy252: + yyaccept = 13; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -2943,66 +3012,58 @@ yy251: case '|': case '}': case '~': - case 0x7F: goto yy252; - case '\\': goto yy146; + case 0x7F: goto yy253; + case '\\': goto yy148; default: goto yy61; } -yy252: -#line 422 "src/parser.re" - { NEWTOKEN(PSI_T_SET); goto start; } -#line 2954 "src/parser.c" yy253: +#line 438 "src/parser.re" + { NEWTOKEN(PSI_T_SET); goto start; } +#line 3023 "src/parser.c" +yy254: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'T': - case 't': goto yy325; + case 't': goto yy328; default: goto yy62; } -yy254: +yy255: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'I': - case 'i': goto yy326; + case 'i': goto yy329; case 'L': - case 'l': goto yy327; + case 'l': goto yy330; case 'V': - case 'v': goto yy328; + case 'v': goto yy331; default: goto yy62; } -yy255: +yy256: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'P': - case 'p': goto yy329; + case 'p': goto yy332; default: goto yy62; } -yy256: +yy257: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy331; + case 'a': goto yy334; case 'B': - case 'b': goto yy332; + case 'b': goto yy335; case 'F': - case 'f': goto yy333; + case 'f': goto yy336; case 'I': - case 'i': goto yy334; + case 'i': goto yy337; case 'O': - case 'o': goto yy335; + case 'o': goto yy338; case 'S': - case 's': goto yy336; - default: goto yy62; - } -yy257: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'E': - case 'e': goto yy337; + case 's': goto yy339; default: goto yy62; } yy258: @@ -3010,93 +3071,108 @@ yy258: yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy339; + case 'e': goto yy340; default: goto yy62; } yy259: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'N': - case 'n': goto yy340; + case 'E': + case 'e': goto yy342; default: goto yy62; } yy260: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'L': - case 'l': goto yy341; + case 'N': + case 'n': goto yy343; default: goto yy62; } yy261: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 's': goto yy343; - case 't': goto yy344; + case 'L': + case 'l': goto yy344; default: goto yy62; } yy262: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'x': goto yy345; + case 's': goto yy346; + case 't': goto yy347; default: goto yy62; } yy263: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'e': goto yy346; + case 'x': goto yy348; default: goto yy62; } yy264: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'L': goto yy297; - case 'l': goto yy347; + case 'n': goto yy349; default: goto yy62; } yy265: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'r': goto yy349; + case 'e': goto yy350; default: goto yy62; } yy266: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 's': goto yy351; + case 'L': goto yy300; + case 'l': goto yy351; default: goto yy62; } yy267: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'b': goto yy352; + case 'r': goto yy353; default: goto yy62; } yy268: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'm': goto yy353; + case 's': goto yy355; default: goto yy62; } yy269: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'A': goto yy308; - case 'a': goto yy355; + case 'b': goto yy356; default: goto yy62; } yy270: - yyaccept = 13; + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'm': goto yy357; + default: goto yy62; + } +yy271: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'A': goto yy311; + case 'a': goto yy359; + default: goto yy62; + } +yy272: + yyaccept = 14; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -3162,134 +3238,137 @@ yy270: case '|': case '}': case '~': - case 0x7F: goto yy271; - case '1': goto yy356; - case '3': goto yy357; - case '6': goto yy358; - case '8': goto yy359; + case 0x7F: goto yy273; case 'V': - case 'v': goto yy315; - case '\\': goto yy146; + case 'v': goto yy318; + case '\\': goto yy148; default: goto yy61; } -yy271: -#line 382 "src/parser.re" +yy273: +#line 406 "src/parser.re" { NEWTOKEN(PSI_T_INT); goto start; } -#line 3179 "src/parser.c" -yy272: +#line 3251 "src/parser.c" +yy274: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'e': goto yy360; default: goto yy62; } -yy273: +yy275: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'g': goto yy362; default: goto yy62; } -yy274: +yy276: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'g': goto yy364; default: goto yy62; } -yy275: +yy277: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'r': goto yy365; default: goto yy62; } -yy276: +yy278: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'n': goto yy366; default: goto yy62; } -yy277: +yy279: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'I': - case 'i': goto yy326; - case 'L': - case 'l': goto yy327; - case 'V': - case 'v': goto yy328; - case 'u': goto yy367; + case 'e': goto yy367; default: goto yy62; } -yy278: +yy280: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'e': goto yy368; + 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; } -yy279: - ++cur; - cur = ctxmrk; -#line 323 "src/parser.re" - { char_width = 1; } -#line 3240 "src/parser.c" yy281: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 't': goto yy369; + case 'e': goto yy369; default: goto yy62; } yy282: + ++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; } -yy283: +yy285: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'i': goto yy371; default: goto yy62; } -yy284: +yy286: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'd': goto yy372; default: goto yy62; } -yy285: +yy287: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'a': goto yy374; + default: goto yy62; + } +yy288: ++cur; - cur = ctxmrk; -#line 318 "src/parser.re" + cur -= 2; +#line 339 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_DD; cur += 2; goto start; } -#line 3274 "src/parser.c" -yy287: +#line 3353 "src/parser.c" +yy290: ++cur; - cur = ctxmrk; -#line 317 "src/parser.re" + cur -= 2; +#line 338 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_DF; cur += 2; goto start; } -#line 3280 "src/parser.c" -yy289: +#line 3359 "src/parser.c" +yy292: ++cur; - cur = ctxmrk; -#line 319 "src/parser.re" + cur -= 2; +#line 340 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_DL; cur += 2; goto start; } -#line 3286 "src/parser.c" -yy291: +#line 3365 "src/parser.c" +yy294: ++cur; - cur = ctxmrk; -#line 312 "src/parser.re" + cur -= 3; +#line 333 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_ULL; cur += 3; goto start; } -#line 3292 "src/parser.c" -yy293: +#line 3371 "src/parser.c" +yy296: ++cur; if ((lim - cur) < 3) if (cur >= lim) goto done;; yych = *cur; @@ -3315,65 +3394,65 @@ yy293: case 'c': case 'd': case 'e': - case 'f': goto yy293; + case 'f': goto yy296; case 'P': case 'p': goto yy127; default: goto yy114; } -yy295: +yy298: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'Y': - case 'y': goto yy374; + case 'y': goto yy375; default: goto yy62; } -yy296: +yy299: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy376; + case 'a': goto yy377; default: goto yy62; } -yy297: +yy300: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'V': - case 'v': goto yy377; + case 'v': goto yy378; default: goto yy62; } -yy298: +yy301: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy378; + case 'a': goto yy379; case 'B': - case 'b': goto yy379; + case 'b': goto yy380; case 'O': - case 'o': goto yy380; + case 'o': goto yy381; default: goto yy62; } -yy299: +yy302: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'T': - case 't': goto yy381; + case 't': goto yy382; default: goto yy62; } -yy300: +yy303: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'N': - case 'n': goto yy383; + case 'n': goto yy384; default: goto yy62; } -yy301: - yyaccept = 14; +yy304: + yyaccept = 15; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -3439,16 +3518,16 @@ yy301: case '|': case '}': case '~': - case 0x7F: goto yy302; - case '\\': goto yy146; + case 0x7F: goto yy305; + case '\\': goto yy148; default: goto yy61; } -yy302: -#line 400 "src/parser.re" +yy305: +#line 416 "src/parser.re" { NEWTOKEN(PSI_T_ELIF); goto start; } -#line 3450 "src/parser.c" -yy303: - yyaccept = 15; +#line 3529 "src/parser.c" +yy306: + yyaccept = 16; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -3514,48 +3593,48 @@ yy303: case '|': case '}': case '~': - case 0x7F: goto yy304; - case '\\': goto yy146; + case 0x7F: goto yy307; + case '\\': goto yy148; default: goto yy61; } -yy304: -#line 399 "src/parser.re" +yy307: +#line 415 "src/parser.re" { NEWTOKEN(PSI_T_ELSE); goto start; } -#line 3525 "src/parser.c" -yy305: +#line 3604 "src/parser.c" +yy308: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'F': - case 'f': goto yy384; + case 'f': goto yy385; default: goto yy62; } -yy306: +yy309: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'R': - case 'r': goto yy386; + case 'r': goto yy387; default: goto yy62; } -yy307: +yy310: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy388; + case 'e': goto yy389; default: goto yy62; } -yy308: +yy311: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'T': - case 't': goto yy390; + case 't': goto yy391; default: goto yy62; } -yy309: - yyaccept = 16; +yy312: + yyaccept = 17; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -3621,64 +3700,64 @@ yy309: case '|': case '}': case '~': - case 0x7F: goto yy310; - case '\\': goto yy146; + case 0x7F: goto yy313; + case '\\': goto yy148; default: goto yy61; } -yy310: -#line 426 "src/parser.re" +yy313: +#line 443 "src/parser.re" { NEWTOKEN(PSI_T_FREE); goto start; } -#line 3632 "src/parser.c" -yy311: +#line 3711 "src/parser.c" +yy314: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'T': - case 't': goto yy391; + case 't': goto yy392; default: goto yy62; } -yy312: +yy315: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'F': - case 'f': goto yy392; + case 'f': goto yy393; default: goto yy62; } -yy313: +yy316: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy394; + case 'e': goto yy395; default: goto yy62; } -yy314: +yy317: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'U': - case 'u': goto yy395; + case 'u': goto yy396; default: goto yy62; } -yy315: +yy318: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy396; + case 'a': goto yy397; default: goto yy62; } -yy316: +yy319: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'D': - case 'd': goto yy397; + case 'd': goto yy398; default: goto yy62; } -yy317: - yyaccept = 17; +yy320: + yyaccept = 18; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -3744,95 +3823,95 @@ yy317: case '|': case '}': case '~': - case 0x7F: goto yy318; - case '\\': goto yy146; + case 0x7F: goto yy321; + case '\\': goto yy148; default: goto yy61; } -yy318: -#line 411 "src/parser.re" +yy321: +#line 427 "src/parser.re" { NEWTOKEN(PSI_T_NULL); goto start; } -#line 3755 "src/parser.c" -yy319: +#line 3834 "src/parser.c" +yy322: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'C': - case 'c': goto yy399; + case 'c': goto yy400; default: goto yy62; } -yy320: +yy323: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy400; + case 'a': goto yy401; default: goto yy62; } -yy321: +yy324: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'V': - case 'v': goto yy401; + case 'v': goto yy402; default: goto yy62; } -yy322: +yy325: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '_': goto yy402; + case '_': goto yy403; default: goto yy62; } -yy323: +yy326: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy403; + case 'a': goto yy404; default: goto yy62; } -yy324: +yy327: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'R': - case 'r': goto yy404; + case 'r': goto yy405; default: goto yy62; } -yy325: +yy328: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'I': - case 'i': goto yy405; + case 'i': goto yy406; default: goto yy62; } -yy326: +yy329: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'N': - case 'n': goto yy406; + case 'n': goto yy407; default: goto yy62; } -yy327: +yy330: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy407; + case 'e': goto yy408; default: goto yy62; } -yy328: +yy331: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy408; + case 'a': goto yy409; default: goto yy62; } -yy329: - yyaccept = 18; +yy332: + yyaccept = 19; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -3898,64 +3977,64 @@ yy329: case '|': case '}': case '~': - case 0x7F: goto yy330; - case '\\': goto yy146; + case 0x7F: goto yy333; + case '\\': goto yy148; default: goto yy61; } -yy330: -#line 427 "src/parser.re" +yy333: +#line 444 "src/parser.re" { NEWTOKEN(PSI_T_TEMP); goto start; } -#line 3909 "src/parser.c" -yy331: +#line 3988 "src/parser.c" +yy334: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'R': - case 'r': goto yy409; + case 'r': goto yy410; default: goto yy62; } -yy332: +yy335: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'O': - case 'o': goto yy410; + case 'o': goto yy411; default: goto yy62; } -yy333: +yy336: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy411; + case 'l': goto yy412; default: goto yy62; } -yy334: +yy337: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'N': - case 'n': goto yy412; + case 'n': goto yy413; default: goto yy62; } -yy335: +yy338: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'B': - case 'b': goto yy413; + case 'b': goto yy414; default: goto yy62; } -yy336: +yy339: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'T': - case 't': goto yy414; + case 't': goto yy415; default: goto yy62; } -yy337: - yyaccept = 19; +yy340: + yyaccept = 20; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -4021,32 +4100,32 @@ yy337: case '|': case '}': case '~': - case 0x7F: goto yy338; - case '\\': goto yy146; + case 0x7F: goto yy341; + case '\\': goto yy148; default: goto yy61; } -yy338: -#line 409 "src/parser.re" +yy341: +#line 425 "src/parser.re" { NEWTOKEN(PSI_T_TRUE); goto start; } -#line 4032 "src/parser.c" -yy339: +#line 4111 "src/parser.c" +yy342: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'F': - case 'f': goto yy415; + case 'f': goto yy416; default: goto yy62; } -yy340: +yy343: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'I': - case 'i': goto yy417; + case 'i': goto yy418; default: goto yy62; } -yy341: - yyaccept = 20; +yy344: + yyaccept = 21; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -4112,44 +4191,51 @@ yy341: case '|': case '}': case '~': - case 0x7F: goto yy342; - case '\\': goto yy146; + case 0x7F: goto yy345; + case '\\': goto yy148; default: goto yy61; } -yy342: -#line 436 "src/parser.re" +yy345: +#line 453 "src/parser.re" { NEWTOKEN(PSI_T_ZVAL); goto start; } -#line 4123 "src/parser.c" -yy343: +#line 4202 "src/parser.c" +yy346: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'm': goto yy418; + case 'm': goto yy419; default: goto yy62; } -yy344: +yy347: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 't': goto yy419; + case 't': goto yy420; default: goto yy62; } -yy345: +yy348: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 't': goto yy420; + case 't': goto yy421; default: goto yy62; } -yy346: +yy349: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 's': goto yy421; + case 'l': goto yy422; default: goto yy62; } -yy347: - yyaccept = 21; +yy350: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 's': goto yy423; + default: goto yy62; + } +yy351: + yyaccept = 22; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -4215,18 +4301,18 @@ yy347: case '|': case '}': case '~': - case 0x7F: goto yy348; + case 0x7F: goto yy352; case 'V': - case 'v': goto yy377; - case '\\': goto yy146; + case 'v': goto yy378; + case '\\': goto yy148; default: goto yy61; } -yy348: -#line 379 "src/parser.re" +yy352: +#line 403 "src/parser.re" { NEWTOKEN(PSI_T_BOOL); goto start; } -#line 4228 "src/parser.c" -yy349: - yyaccept = 22; +#line 4314 "src/parser.c" +yy353: + yyaccept = 23; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -4292,30 +4378,30 @@ yy349: case '|': case '}': case '~': - case 0x7F: goto yy350; - case '\\': goto yy146; + case 0x7F: goto yy354; + case '\\': goto yy148; default: goto yy61; } -yy350: -#line 380 "src/parser.re" +yy354: +#line 404 "src/parser.re" { NEWTOKEN(PSI_T_CHAR); goto start; } -#line 4303 "src/parser.c" -yy351: +#line 4389 "src/parser.c" +yy355: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 't': goto yy422; + case 't': goto yy424; default: goto yy62; } -yy352: +yy356: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'l': goto yy424; + case 'l': goto yy426; default: goto yy62; } -yy353: - yyaccept = 23; +yy357: + yyaccept = 24; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -4381,52 +4467,24 @@ yy353: case '|': case '}': case '~': - case 0x7F: goto yy354; - case '\\': goto yy146; + case 0x7F: goto yy358; + case '\\': goto yy148; default: goto yy61; } -yy354: -#line 376 "src/parser.re" - { NEWTOKEN(PSI_T_ENUM); goto start; } -#line 4392 "src/parser.c" -yy355: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'T': goto yy390; - case 't': goto yy425; - default: goto yy62; - } -yy356: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case '6': goto yy427; - default: goto yy62; - } -yy357: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case '2': goto yy428; - default: goto yy62; - } yy358: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case '4': goto yy429; - default: goto yy62; - } +#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 '_': goto yy430; + case 'T': goto yy391; + case 't': goto yy427; default: goto yy62; } yy360: - yyaccept = 24; + yyaccept = 25; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -4493,15 +4551,15 @@ yy360: case '}': case '~': case 0x7F: goto yy361; - case '\\': goto yy146; + case '\\': goto yy148; default: goto yy61; } yy361: -#line 372 "src/parser.re" +#line 396 "src/parser.re" { NEWTOKEN(PSI_T_LINE); goto start; } -#line 4503 "src/parser.c" +#line 4561 "src/parser.c" yy362: - yyaccept = 25; + yyaccept = 26; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -4568,74 +4626,71 @@ yy362: case '}': case '~': case 0x7F: goto yy363; - case '\\': goto yy146; + case '\\': goto yy148; default: goto yy61; } yy363: -#line 383 "src/parser.re" +#line 407 "src/parser.re" { NEWTOKEN(PSI_T_LONG); goto start; } -#line 4578 "src/parser.c" +#line 4636 "src/parser.c" yy364: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'm': goto yy431; + case 'm': goto yy429; default: goto yy62; } yy365: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 't': goto yy432; + case 't': goto yy430; default: goto yy62; } yy366: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'e': goto yy434; + case 'e': goto yy432; default: goto yy62; } yy367: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'c': goto yy435; + case 'o': goto yy433; default: goto yy62; } yy368: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'd': goto yy436; + case 'c': goto yy434; default: goto yy62; } yy369: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '1': goto yy437; - case '3': goto yy438; - case '6': goto yy439; - case '8': goto yy440; + case 'd': goto yy435; default: goto yy62; } yy370: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'n': goto yy441; + case 'n': goto yy436; default: goto yy62; } yy371: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'g': goto yy443; + case 'g': goto yy438; default: goto yy62; } yy372: - yyaccept = 26; + yyaccept = 27; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -4702,15 +4757,22 @@ yy372: case '}': case '~': case 0x7F: goto yy373; - case '\\': goto yy146; + case '\\': goto yy148; default: goto yy61; } yy373: -#line 378 "src/parser.re" +#line 402 "src/parser.re" { NEWTOKEN(PSI_T_VOID); goto start; } -#line 4712 "src/parser.c" +#line 4767 "src/parser.c" yy374: - yyaccept = 27; + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 't': goto yy439; + default: goto yy62; + } +yy375: + yyaccept = 28; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -4776,56 +4838,56 @@ yy374: case '|': case '}': case '~': - case 0x7F: goto yy375; - case '\\': goto yy146; + case 0x7F: goto yy376; + case '\\': goto yy148; default: goto yy61; } -yy375: -#line 415 "src/parser.re" - { NEWTOKEN(PSI_T_ARRAY); goto start; } -#line 4787 "src/parser.c" 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 'L': - case 'l': goto yy444; + case 'l': goto yy440; default: goto yy62; } -yy377: +yy378: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy446; + case 'a': goto yy442; default: goto yy62; } -yy378: +yy379: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'B': - case 'b': goto yy447; + case 'b': goto yy443; default: goto yy62; } -yy379: +yy380: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy448; + case 'a': goto yy444; default: goto yy62; } -yy380: +yy381: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'C': - case 'c': goto yy449; + case 'c': goto yy445; default: goto yy62; } -yy381: - yyaccept = 28; +yy382: + yyaccept = 29; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -4891,24 +4953,24 @@ yy381: case '|': case '}': case '~': - case 0x7F: goto yy382; - case '\\': goto yy146; + case 0x7F: goto yy383; + case '\\': goto yy148; default: goto yy61; } -yy382: -#line 437 "src/parser.re" - { NEWTOKEN(PSI_T_COUNT); goto start; } -#line 4902 "src/parser.c" 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 yy451; + case 'e': goto yy447; default: goto yy62; } -yy384: - yyaccept = 29; +yy385: + yyaccept = 30; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -4974,16 +5036,16 @@ yy384: case '|': case '}': case '~': - case 0x7F: goto yy385; - case '\\': goto yy146; + case 0x7F: goto yy386; + case '\\': goto yy148; default: goto yy61; } -yy385: -#line 401 "src/parser.re" - { NEWTOKEN(PSI_T_ENDIF); goto start; } -#line 4985 "src/parser.c" yy386: - yyaccept = 30; +#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: @@ -5049,16 +5111,16 @@ yy386: case '|': case '}': case '~': - case 0x7F: goto yy387; - case '\\': goto yy146; + case 0x7F: goto yy388; + case '\\': goto yy148; default: goto yy61; } -yy387: -#line 406 "src/parser.re" - { NEWTOKEN(PSI_T_ERROR); goto start; } -#line 5060 "src/parser.c" yy388: - yyaccept = 31; +#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: @@ -5124,32 +5186,32 @@ yy388: case '|': case '}': case '~': - case 0x7F: goto yy389; - case '\\': goto yy146; + case 0x7F: goto yy390; + case '\\': goto yy148; default: goto yy61; } -yy389: -#line 410 "src/parser.re" - { NEWTOKEN(PSI_T_FALSE); goto start; } -#line 5135 "src/parser.c" 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 yy453; + case 'v': goto yy449; default: goto yy62; } -yy391: +yy392: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'I': - case 'i': goto yy454; + case 'i': goto yy450; default: goto yy62; } -yy392: - yyaccept = 32; +yy393: + yyaccept = 33; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -5215,40 +5277,40 @@ yy392: case '|': case '}': case '~': - case 0x7F: goto yy393; - case '\\': goto yy146; + case 0x7F: goto yy394; + case '\\': goto yy148; default: goto yy61; } -yy393: -#line 397 "src/parser.re" - { NEWTOKEN(PSI_T_IFDEF); goto start; } -#line 5226 "src/parser.c" yy394: +#line 413 "src/parser.re" + { NEWTOKEN(PSI_T_IFDEF); goto start; } +#line 5288 "src/parser.c" +yy395: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'F': - case 'f': goto yy455; + case 'f': goto yy451; default: goto yy62; } -yy395: +yy396: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'D': - case 'd': goto yy457; + case 'd': goto yy453; default: goto yy62; } -yy396: +yy397: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy458; + case 'l': goto yy454; default: goto yy62; } -yy397: - yyaccept = 33; +yy398: + yyaccept = 34; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -5314,144 +5376,144 @@ yy397: case '|': case '}': case '~': - case 0x7F: goto yy398; - case '\\': goto yy146; + case 0x7F: goto yy399; + case '\\': goto yy148; default: goto yy61; } -yy398: -#line 412 "src/parser.re" - { NEWTOKEN(PSI_T_MIXED); goto start; } -#line 5325 "src/parser.c" 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 'T': - case 't': goto yy460; + case 't': goto yy456; default: goto yy62; } -yy400: +yy401: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy462; + case 'l': goto yy458; default: goto yy62; } -yy401: +yy402: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy464; + case 'a': goto yy460; default: goto yy62; } -yy402: +yy403: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy465; + case 'a': goto yy461; default: goto yy62; } -yy403: +yy404: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'S': - case 's': goto yy466; + case 's': goto yy462; default: goto yy62; } -yy404: +yy405: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'N': - case 'n': goto yy467; + case 'n': goto yy463; default: goto yy62; } -yy405: +yy406: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'C': - case 'c': goto yy469; + case 'c': goto yy465; default: goto yy62; } -yy406: +yy407: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'G': - case 'g': goto yy471; + case 'g': goto yy467; default: goto yy62; } -yy407: +yy408: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'N': - case 'n': goto yy473; + case 'n': goto yy469; default: goto yy62; } -yy408: +yy409: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy475; + case 'l': goto yy471; default: goto yy62; } -yy409: +yy410: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'R': - case 'r': goto yy477; + case 'r': goto yy473; default: goto yy62; } -yy410: +yy411: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'O': - case 'o': goto yy478; + case 'o': goto yy474; default: goto yy62; } -yy411: +yy412: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'O': - case 'o': goto yy479; + case 'o': goto yy475; default: goto yy62; } -yy412: +yy413: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'T': - case 't': goto yy480; + case 't': goto yy476; default: goto yy62; } -yy413: +yy414: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'J': - case 'j': goto yy482; + case 'j': goto yy478; default: goto yy62; } -yy414: +yy415: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'R': - case 'r': goto yy483; + case 'r': goto yy479; default: goto yy62; } -yy415: - yyaccept = 34; +yy416: + yyaccept = 35; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -5517,52 +5579,59 @@ yy415: case '|': case '}': case '~': - case 0x7F: goto yy416; - case '\\': goto yy146; + case 0x7F: goto yy417; + case '\\': goto yy148; default: goto yy61; } -yy416: -#line 404 "src/parser.re" - { NEWTOKEN(PSI_T_UNDEF); goto start; } -#line 5528 "src/parser.c" 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 yy484; + case 'n': goto yy480; default: goto yy62; } -yy418: +yy419: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '_': goto yy485; + case '_': goto yy481; default: goto yy62; } -yy419: +yy420: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'r': goto yy486; + case 'r': goto yy482; default: goto yy62; } -yy420: +yy421: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'e': goto yy487; + case 'e': goto yy483; default: goto yy62; } -yy421: +yy422: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 't': goto yy488; + case 'i': goto yy484; default: goto yy62; } -yy422: - yyaccept = 35; +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: @@ -5628,23 +5697,23 @@ yy422: case '|': case '}': case '~': - case 0x7F: goto yy423; - case '\\': goto yy146; + case 0x7F: goto yy425; + case '\\': goto yy148; default: goto yy61; } -yy423: -#line 377 "src/parser.re" +yy425: +#line 401 "src/parser.re" { NEWTOKEN(PSI_T_CONST); goto start; } -#line 5639 "src/parser.c" -yy424: +#line 5708 "src/parser.c" +yy426: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'e': goto yy489; + case 'e': goto yy486; default: goto yy62; } -yy425: - yyaccept = 36; +yy427: + yyaccept = 37; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -5710,53 +5779,25 @@ yy425: case '|': case '}': case '~': - case 0x7F: goto yy426; + case 0x7F: goto yy428; case 'V': - case 'v': goto yy453; - case '\\': goto yy146; + case 'v': goto yy449; + case '\\': goto yy148; default: goto yy61; } -yy426: -#line 384 "src/parser.re" - { NEWTOKEN(PSI_T_FLOAT); goto start; } -#line 5723 "src/parser.c" -yy427: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case '_': goto yy491; - default: goto yy62; - } yy428: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case '_': goto yy492; - default: goto yy62; - } +#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 '_': goto yy493; + case 'a': goto yy488; default: goto yy62; } yy430: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 't': goto yy494; - default: goto yy62; - } -yy431: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'a': goto yy496; - default: goto yy62; - } -yy432: - yyaccept = 37; + yyaccept = 38; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -5822,65 +5863,44 @@ yy432: case '|': case '}': case '~': - case 0x7F: goto yy433; - case '\\': goto yy146; + case 0x7F: goto yy431; + case '\\': goto yy148; default: goto yy61; } -yy433: -#line 381 "src/parser.re" +yy431: +#line 405 "src/parser.re" { NEWTOKEN(PSI_T_SHORT); goto start; } -#line 5833 "src/parser.c" -yy434: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'd': goto yy498; - default: goto yy62; - } -yy435: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 't': goto yy500; - default: goto yy62; - } -yy436: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'e': goto yy502; - default: goto yy62; - } -yy437: +#line 5874 "src/parser.c" +yy432: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '6': goto yy503; + case 'd': goto yy490; default: goto yy62; } -yy438: +yy433: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '2': goto yy504; + case 'f': goto yy492; default: goto yy62; } -yy439: +yy434: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '4': goto yy505; + case 't': goto yy494; default: goto yy62; } -yy440: +yy435: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '_': goto yy506; + case 'e': goto yy496; default: goto yy62; } -yy441: - yyaccept = 38; +yy436: + yyaccept = 39; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -5946,23 +5966,30 @@ yy441: case '|': case '}': case '~': - case 0x7F: goto yy442; - case '\\': goto yy146; + case 0x7F: goto yy437; + case '\\': goto yy148; default: goto yy61; } -yy442: -#line 375 "src/parser.re" +yy437: +#line 399 "src/parser.re" { NEWTOKEN(PSI_T_UNION); goto start; } -#line 5957 "src/parser.c" -yy443: +#line 5977 "src/parser.c" +yy438: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'n': goto yy507; + case 'n': goto yy497; default: goto yy62; } -yy444: - yyaccept = 39; +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: @@ -6028,40 +6055,40 @@ yy444: case '|': case '}': case '~': - case 0x7F: goto yy445; - case '\\': goto yy146; + case 0x7F: goto yy441; + case '\\': goto yy148; default: goto yy61; } -yy445: -#line 434 "src/parser.re" +yy441: +#line 451 "src/parser.re" { NEWTOKEN(PSI_T_ARRVAL); goto start; } -#line 6039 "src/parser.c" -yy446: +#line 6066 "src/parser.c" +yy442: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy508; + case 'l': goto yy499; default: goto yy62; } -yy447: +yy443: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy510; + case 'l': goto yy501; default: goto yy62; } -yy448: +yy444: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'C': - case 'c': goto yy511; + case 'c': goto yy502; default: goto yy62; } -yy449: - yyaccept = 40; +yy445: + yyaccept = 41; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -6127,16 +6154,16 @@ yy449: case '|': case '}': case '~': - case 0x7F: goto yy450; - case '\\': goto yy146; + case 0x7F: goto yy446; + case '\\': goto yy148; default: goto yy61; } -yy450: -#line 438 "src/parser.re" +yy446: +#line 455 "src/parser.re" { NEWTOKEN(PSI_T_CALLOC); goto start; } -#line 6138 "src/parser.c" -yy451: - yyaccept = 41; +#line 6165 "src/parser.c" +yy447: + yyaccept = 42; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -6202,34 +6229,34 @@ yy451: case '|': case '}': case '~': - case 0x7F: goto yy452; + case 0x7F: goto yy448; case 'D': - case 'd': goto yy512; - case '\\': goto yy146; + case 'd': goto yy503; + case '\\': goto yy148; default: goto yy61; } -yy452: -#line 402 "src/parser.re" +yy448: +#line 418 "src/parser.re" { NEWTOKEN(PSI_T_DEFINE); goto start; } -#line 6215 "src/parser.c" -yy453: +#line 6242 "src/parser.c" +yy449: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy514; + case 'a': goto yy505; default: goto yy62; } -yy454: +yy450: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'O': - case 'o': goto yy515; + case 'o': goto yy506; default: goto yy62; } -yy455: - yyaccept = 42; +yy451: + yyaccept = 43; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -6295,24 +6322,24 @@ yy455: case '|': case '}': case '~': - case 0x7F: goto yy456; - case '\\': goto yy146; + case 0x7F: goto yy452; + case '\\': goto yy148; default: goto yy61; } -yy456: -#line 398 "src/parser.re" +yy452: +#line 414 "src/parser.re" { NEWTOKEN(PSI_T_IFNDEF); goto start; } -#line 6306 "src/parser.c" -yy457: +#line 6333 "src/parser.c" +yy453: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy516; + case 'e': goto yy507; default: goto yy62; } -yy458: - yyaccept = 43; +yy454: + yyaccept = 44; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -6378,16 +6405,16 @@ yy458: case '|': case '}': case '~': - case 0x7F: goto yy459; - case '\\': goto yy146; + case 0x7F: goto yy455; + case '\\': goto yy148; default: goto yy61; } -yy459: -#line 431 "src/parser.re" +yy455: +#line 448 "src/parser.re" { NEWTOKEN(PSI_T_INTVAL); goto start; } -#line 6389 "src/parser.c" -yy460: - yyaccept = 44; +#line 6416 "src/parser.c" +yy456: + yyaccept = 45; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -6453,16 +6480,16 @@ yy460: case '|': case '}': case '~': - case 0x7F: goto yy461; - case '\\': goto yy146; + case 0x7F: goto yy457; + case '\\': goto yy148; default: goto yy61; } -yy461: -#line 416 "src/parser.re" +yy457: +#line 432 "src/parser.re" { NEWTOKEN(PSI_T_OBJECT); goto start; } -#line 6464 "src/parser.c" -yy462: - yyaccept = 45; +#line 6491 "src/parser.c" +yy458: + yyaccept = 46; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -6528,40 +6555,40 @@ yy462: case '|': case '}': case '~': - case 0x7F: goto yy463; - case '\\': goto yy146; + case 0x7F: goto yy459; + case '\\': goto yy148; default: goto yy61; } -yy463: -#line 435 "src/parser.re" +yy459: +#line 452 "src/parser.re" { NEWTOKEN(PSI_T_OBJVAL); goto start; } -#line 6539 "src/parser.c" -yy464: +#line 6566 "src/parser.c" +yy460: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy518; + case 'l': goto yy509; default: goto yy62; } -yy465: +yy461: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'S': - case 's': goto yy520; + case 's': goto yy511; default: goto yy62; } -yy466: +yy462: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'S': - case 's': goto yy521; + case 's': goto yy512; default: goto yy62; } -yy467: - yyaccept = 46; +yy463: + yyaccept = 47; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -6627,16 +6654,16 @@ yy467: case '|': case '}': case '~': - case 0x7F: goto yy468; - case '\\': goto yy146; + case 0x7F: goto yy464; + case '\\': goto yy148; default: goto yy61; } -yy468: -#line 425 "src/parser.re" +yy464: +#line 441 "src/parser.re" { NEWTOKEN(PSI_T_RETURN); goto start; } -#line 6638 "src/parser.c" -yy469: - yyaccept = 47; +#line 6665 "src/parser.c" +yy465: + yyaccept = 48; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -6702,16 +6729,16 @@ yy469: case '|': case '}': case '~': - case 0x7F: goto yy470; - case '\\': goto yy146; + case 0x7F: goto yy466; + case '\\': goto yy148; default: goto yy61; } -yy470: -#line 418 "src/parser.re" +yy466: +#line 434 "src/parser.re" { NEWTOKEN(PSI_T_STATIC); goto start; } -#line 6713 "src/parser.c" -yy471: - yyaccept = 48; +#line 6740 "src/parser.c" +yy467: + yyaccept = 49; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -6777,16 +6804,16 @@ yy471: case '|': case '}': case '~': - case 0x7F: goto yy472; - case '\\': goto yy146; + case 0x7F: goto yy468; + case '\\': goto yy148; default: goto yy61; } -yy472: -#line 414 "src/parser.re" +yy468: +#line 430 "src/parser.re" { NEWTOKEN(PSI_T_STRING); goto start; } -#line 6788 "src/parser.c" -yy473: - yyaccept = 49; +#line 6815 "src/parser.c" +yy469: + yyaccept = 50; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -6852,16 +6879,16 @@ yy473: case '|': case '}': case '~': - case 0x7F: goto yy474; - case '\\': goto yy146; + case 0x7F: goto yy470; + case '\\': goto yy148; default: goto yy61; } -yy474: -#line 428 "src/parser.re" +yy470: +#line 445 "src/parser.re" { NEWTOKEN(PSI_T_STRLEN); goto start; } -#line 6863 "src/parser.c" -yy475: - yyaccept = 50; +#line 6890 "src/parser.c" +yy471: + yyaccept = 51; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -6927,40 +6954,40 @@ yy475: case '|': case '}': case '~': - case 0x7F: goto yy476; - case '\\': goto yy146; + case 0x7F: goto yy472; + case '\\': goto yy148; default: goto yy61; } -yy476: -#line 429 "src/parser.re" +yy472: +#line 446 "src/parser.re" { NEWTOKEN(PSI_T_STRVAL); goto start; } -#line 6938 "src/parser.c" -yy477: +#line 6965 "src/parser.c" +yy473: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy522; + case 'a': goto yy513; default: goto yy62; } -yy478: +yy474: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy523; + case 'l': goto yy514; default: goto yy62; } -yy479: +yy475: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'A': - case 'a': goto yy525; + case 'a': goto yy516; default: goto yy62; } -yy480: - yyaccept = 51; +yy476: + yyaccept = 52; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -7026,68 +7053,75 @@ yy480: case '|': case '}': case '~': - case 0x7F: goto yy481; - case '\\': goto yy146; + case 0x7F: goto yy477; + case '\\': goto yy148; default: goto yy61; } -yy481: -#line 442 "src/parser.re" +yy477: +#line 459 "src/parser.re" { NEWTOKEN(PSI_T_TO_INT); goto start; } -#line 7037 "src/parser.c" -yy482: +#line 7064 "src/parser.c" +yy478: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy526; + case 'e': goto yy517; default: goto yy62; } -yy483: +yy479: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'I': - case 'i': goto yy527; + case 'i': goto yy518; default: goto yy62; } -yy484: +yy480: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'G': - case 'g': goto yy528; + case 'g': goto yy519; default: goto yy62; } -yy485: +yy481: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '_': goto yy530; + case '_': goto yy521; default: goto yy62; } -yy486: +yy482: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'i': goto yy532; + case 'i': goto yy523; default: goto yy62; } -yy487: +yy483: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'n': goto yy533; + case 'n': goto yy524; default: goto yy62; } -yy488: +yy484: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'r': goto yy534; + case 'n': goto yy525; default: goto yy62; } -yy489: - yyaccept = 52; +yy485: + yyaccept = 5; + yych = *(mrk = ++cur); + switch (yych) { + case 'r': goto yy526; + default: goto yy62; + } +yy486: + yyaccept = 53; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -7153,37 +7187,16 @@ yy489: case '|': case '}': case '~': - case 0x7F: goto yy490; - case '\\': goto yy146; + case 0x7F: goto yy487; + case '\\': goto yy148; default: goto yy61; } -yy490: -#line 385 "src/parser.re" +yy487: +#line 409 "src/parser.re" { NEWTOKEN(PSI_T_DOUBLE); goto start; } -#line 7164 "src/parser.c" -yy491: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 't': goto yy535; - default: goto yy62; - } -yy492: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 't': goto yy537; - default: goto yy62; - } -yy493: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 't': goto yy539; - default: goto yy62; - } -yy494: - yyaccept = 53; +#line 7198 "src/parser.c" +yy488: + yyaccept = 54; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -7249,16 +7262,16 @@ yy494: case '|': case '}': case '~': - case 0x7F: goto yy495; - case '\\': goto yy146; - default: goto yy61; + case 0x7F: goto yy489; + case '\\': goto yy148; + default: goto yy527; } -yy495: -#line 386 "src/parser.re" - { NEWTOKEN(PSI_T_INT8); goto start; } -#line 7260 "src/parser.c" -yy496: - yyaccept = 54; +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: @@ -7324,16 +7337,16 @@ yy496: case '|': case '}': case '~': - case 0x7F: goto yy497; - case '\\': goto yy146; - default: goto yy541; + case 0x7F: goto yy491; + case '\\': goto yy148; + default: goto yy61; } -yy497: -#line 367 "src/parser.re" - { NEWTOKEN(PSI_T_PRAGMA); goto start; } -#line 7335 "src/parser.c" -yy498: - yyaccept = 55; +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: @@ -7399,16 +7412,16 @@ yy498: case '|': case '}': case '~': - case 0x7F: goto yy499; - case '\\': goto yy146; + case 0x7F: goto yy493; + case '\\': goto yy148; default: goto yy61; } -yy499: +yy493: #line 395 "src/parser.re" - { NEWTOKEN(PSI_T_SIGNED); goto start; } -#line 7410 "src/parser.c" -yy500: - yyaccept = 56; + { NEWTOKEN(PSI_T_SIZEOF); goto start; } +#line 7423 "src/parser.c" +yy494: + yyaccept = 57; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -7474,58 +7487,37 @@ yy500: case '|': case '}': case '~': - case 0x7F: goto yy501; - case '\\': goto yy146; + case 0x7F: goto yy495; + case '\\': goto yy148; default: goto yy61; } -yy501: -#line 374 "src/parser.re" +yy495: +#line 398 "src/parser.re" { NEWTOKEN(PSI_T_STRUCT); goto start; } -#line 7485 "src/parser.c" -yy502: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'f': goto yy543; - default: goto yy62; - } -yy503: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case '_': goto yy545; - default: goto yy62; - } -yy504: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case '_': goto yy546; - default: goto yy62; - } -yy505: +#line 7498 "src/parser.c" +yy496: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '_': goto yy547; + case 'f': goto yy529; default: goto yy62; } -yy506: +yy497: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 't': goto yy548; + case 'e': goto yy531; default: goto yy62; } -yy507: +yy498: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'e': goto yy550; + case 'l': goto yy532; default: goto yy62; } -yy508: - yyaccept = 57; +yy499: + yyaccept = 58; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -7591,32 +7583,32 @@ yy508: case '|': case '}': case '~': - case 0x7F: goto yy509; - case '\\': goto yy146; + case 0x7F: goto yy500; + case '\\': goto yy148; default: goto yy61; } -yy509: -#line 433 "src/parser.re" +yy500: +#line 450 "src/parser.re" { NEWTOKEN(PSI_T_BOOLVAL); goto start; } -#line 7602 "src/parser.c" -yy510: +#line 7594 "src/parser.c" +yy501: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy551; + case 'e': goto yy533; default: goto yy62; } -yy511: +yy502: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'K': - case 'k': goto yy553; + case 'k': goto yy535; default: goto yy62; } -yy512: - yyaccept = 58; +yy503: + yyaccept = 59; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -7682,32 +7674,32 @@ yy512: case '|': case '}': case '~': - case 0x7F: goto yy513; - case '\\': goto yy146; + case 0x7F: goto yy504; + case '\\': goto yy148; default: goto yy61; } -yy513: -#line 403 "src/parser.re" +yy504: +#line 419 "src/parser.re" { NEWTOKEN(PSI_T_DEFINED); goto start; } -#line 7693 "src/parser.c" -yy514: +#line 7685 "src/parser.c" +yy505: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'L': - case 'l': goto yy555; + case 'l': goto yy537; default: goto yy62; } -yy515: +yy506: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'N': - case 'n': goto yy557; + case 'n': goto yy539; default: goto yy62; } -yy516: - yyaccept = 59; +yy507: + yyaccept = 60; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -7773,17 +7765,17 @@ yy516: case '|': case '}': case '~': - case 0x7F: goto yy517; - case '\\': goto yy146; - case '_': goto yy559; + case 0x7F: goto yy508; + case '\\': goto yy148; + case '_': goto yy541; default: goto yy61; } -yy517: -#line 407 "src/parser.re" +yy508: +#line 423 "src/parser.re" { NEWTOKEN(PSI_T_INCLUDE); goto start; } -#line 7785 "src/parser.c" -yy518: - yyaccept = 60; +#line 7777 "src/parser.c" +yy509: + yyaccept = 61; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -7849,40 +7841,40 @@ yy518: case '|': case '}': case '~': - case 0x7F: goto yy519; - case '\\': goto yy146; + case 0x7F: goto yy510; + case '\\': goto yy148; default: goto yy61; } -yy519: -#line 430 "src/parser.re" +yy510: +#line 447 "src/parser.re" { NEWTOKEN(PSI_T_PATHVAL); goto start; } -#line 7860 "src/parser.c" -yy520: +#line 7852 "src/parser.c" +yy511: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'S': - case 's': goto yy560; + case 's': goto yy542; default: goto yy62; } -yy521: +yy512: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy561; + case 'e': goto yy543; default: goto yy62; } -yy522: +yy513: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'Y': - case 'y': goto yy562; + case 'y': goto yy544; default: goto yy62; } -yy523: - yyaccept = 61; +yy514: + yyaccept = 62; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -7948,40 +7940,40 @@ yy523: case '|': case '}': case '~': - case 0x7F: goto yy524; - case '\\': goto yy146; + case 0x7F: goto yy515; + case '\\': goto yy148; default: goto yy61; } -yy524: -#line 444 "src/parser.re" +yy515: +#line 461 "src/parser.re" { NEWTOKEN(PSI_T_TO_BOOL); goto start; } -#line 7959 "src/parser.c" -yy525: +#line 7951 "src/parser.c" +yy516: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'T': - case 't': goto yy564; + case 't': goto yy546; default: goto yy62; } -yy526: +yy517: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'C': - case 'c': goto yy566; + case 'c': goto yy548; default: goto yy62; } -yy527: +yy518: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'N': - case 'n': goto yy567; + case 'n': goto yy549; default: goto yy62; } -yy528: - yyaccept = 62; +yy519: + yyaccept = 63; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -8047,16 +8039,16 @@ yy528: case '|': case '}': case '~': - case 0x7F: goto yy529; - case '\\': goto yy146; + case 0x7F: goto yy520; + case '\\': goto yy148; default: goto yy61; } -yy529: -#line 405 "src/parser.re" +yy520: +#line 421 "src/parser.re" { NEWTOKEN(PSI_T_WARNING); goto start; } -#line 8058 "src/parser.c" -yy530: - yyaccept = 63; +#line 8050 "src/parser.c" +yy521: + yyaccept = 64; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -8122,261 +8114,43 @@ yy530: case '|': case '}': case '~': - case 0x7F: goto yy531; - case '\\': goto yy146; + case 0x7F: goto yy522; + case '\\': goto yy148; default: goto yy61; } -yy531: -#line 371 "src/parser.re" +yy522: +#line 393 "src/parser.re" { NEWTOKEN(PSI_T_CPP_ASM); goto start; } -#line 8133 "src/parser.c" -yy532: +#line 8125 "src/parser.c" +yy523: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'b': goto yy568; + case 'b': goto yy550; default: goto yy62; } -yy533: +yy524: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 's': goto yy569; + case 's': goto yy551; default: goto yy62; } -yy534: +yy525: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'i': goto yy570; + case 'e': goto yy552; default: goto yy62; } -yy535: - yyaccept = 64; - 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 yy536; - case '\\': goto yy146; - default: goto yy61; - } -yy536: -#line 388 "src/parser.re" - { NEWTOKEN(PSI_T_INT16); goto start; } -#line 8229 "src/parser.c" -yy537: - yyaccept = 65; - 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 yy538; - case '\\': goto yy146; - default: goto yy61; - } -yy538: -#line 390 "src/parser.re" - { NEWTOKEN(PSI_T_INT32); goto start; } -#line 8304 "src/parser.c" -yy539: - yyaccept = 66; +yy526: + 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 yy540; - case '\\': goto yy146; - default: goto yy61; + case 'i': goto yy554; + default: goto yy62; } -yy540: -#line 392 "src/parser.re" - { NEWTOKEN(PSI_T_INT64); goto start; } -#line 8379 "src/parser.c" -yy541: +yy527: yyaccept = 5; mrk = ++cur; if (lim <= cur) if (cur >= lim) goto done;; @@ -8446,12 +8220,12 @@ yy541: case '}': case '~': case 0x7F: goto yy55; - case '\\': goto yy146; - case 'o': goto yy571; - default: goto yy541; + case '\\': goto yy148; + case 'o': goto yy555; + default: goto yy527; } -yy543: - yyaccept = 67; +yy529: + yyaccept = 65; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -8517,119 +8291,30 @@ yy543: case '|': case '}': case '~': - case 0x7F: goto yy544; - case '\\': goto yy146; + case 0x7F: goto yy530; + case '\\': goto yy148; default: goto yy61; } -yy544: -#line 373 "src/parser.re" +yy530: +#line 397 "src/parser.re" { NEWTOKEN(PSI_T_TYPEDEF); goto start; } -#line 8528 "src/parser.c" -yy545: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 't': goto yy573; - default: goto yy62; - } -yy546: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 't': goto yy575; - default: goto yy62; - } -yy547: +#line 8302 "src/parser.c" +yy531: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 't': goto yy577; + case 'd': goto yy557; default: goto yy62; } -yy548: - yyaccept = 68; - 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 yy549; - case '\\': goto yy146; - default: goto yy61; - } -yy549: -#line 387 "src/parser.re" - { NEWTOKEN(PSI_T_UINT8); goto start; } -#line 8624 "src/parser.c" -yy550: +yy532: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'd': goto yy579; + case 'e': goto yy559; default: goto yy62; } -yy551: - yyaccept = 69; +yy533: + yyaccept = 66; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -8695,16 +8380,16 @@ yy551: case '|': case '}': case '~': - case 0x7F: goto yy552; - case '\\': goto yy146; + case 0x7F: goto yy534; + case '\\': goto yy148; default: goto yy61; } -yy552: -#line 413 "src/parser.re" +yy534: +#line 429 "src/parser.re" { NEWTOKEN(PSI_T_CALLABLE); goto start; } -#line 8706 "src/parser.c" -yy553: - yyaccept = 70; +#line 8391 "src/parser.c" +yy535: + yyaccept = 67; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -8770,16 +8455,16 @@ yy553: case '|': case '}': case '~': - case 0x7F: goto yy554; - case '\\': goto yy146; + case 0x7F: goto yy536; + case '\\': goto yy148; default: goto yy61; } -yy554: -#line 417 "src/parser.re" +yy536: +#line 433 "src/parser.re" { NEWTOKEN(PSI_T_CALLBACK); goto start; } -#line 8781 "src/parser.c" -yy555: - yyaccept = 71; +#line 8466 "src/parser.c" +yy537: + yyaccept = 68; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -8845,16 +8530,16 @@ yy555: case '|': case '}': case '~': - case 0x7F: goto yy556; - case '\\': goto yy146; + case 0x7F: goto yy538; + case '\\': goto yy148; default: goto yy61; } -yy556: -#line 432 "src/parser.re" +yy538: +#line 449 "src/parser.re" { NEWTOKEN(PSI_T_FLOATVAL); goto start; } -#line 8856 "src/parser.c" -yy557: - yyaccept = 72; +#line 8541 "src/parser.c" +yy539: + yyaccept = 69; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -8920,40 +8605,40 @@ yy557: case '|': case '}': case '~': - case 0x7F: goto yy558; - case '\\': goto yy146; + case 0x7F: goto yy540; + case '\\': goto yy148; default: goto yy61; } -yy558: -#line 419 "src/parser.re" +yy540: +#line 435 "src/parser.re" { NEWTOKEN(PSI_T_FUNCTION); goto start; } -#line 8931 "src/parser.c" -yy559: +#line 8616 "src/parser.c" +yy541: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'N': - case 'n': goto yy581; + case 'n': goto yy561; default: goto yy62; } -yy560: +yy542: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy582; + case 'e': goto yy562; default: goto yy62; } -yy561: +yy543: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'R': - case 'r': goto yy583; + case 'r': goto yy563; default: goto yy62; } -yy562: - yyaccept = 73; +yy544: + yyaccept = 70; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -9019,16 +8704,16 @@ yy562: case '|': case '}': case '~': - case 0x7F: goto yy563; - case '\\': goto yy146; + case 0x7F: goto yy545; + case '\\': goto yy148; default: goto yy61; } -yy563: -#line 440 "src/parser.re" +yy545: +#line 457 "src/parser.re" { NEWTOKEN(PSI_T_TO_ARRAY); goto start; } -#line 9030 "src/parser.c" -yy564: - yyaccept = 74; +#line 8715 "src/parser.c" +yy546: + yyaccept = 71; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -9094,128 +8779,46 @@ yy564: case '|': case '}': case '~': - case 0x7F: goto yy565; - case '\\': goto yy146; + case 0x7F: goto yy547; + case '\\': goto yy148; default: goto yy61; } -yy565: -#line 443 "src/parser.re" - { NEWTOKEN(PSI_T_TO_FLOAT); goto start; } -#line 9105 "src/parser.c" -yy566: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'T': - case 't': goto yy584; - default: goto yy62; - } -yy567: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'G': - case 'g': goto yy586; - default: goto yy62; - } -yy568: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'u': goto yy588; - default: goto yy62; - } -yy569: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'i': goto yy589; - default: goto yy62; - } -yy570: - yyaccept = 5; - yych = *(mrk = ++cur); - switch (yych) { - case 'c': goto yy590; - default: goto yy62; - } -yy571: - yyaccept = 5; - mrk = ++cur; - if (lim <= cur) if (cur >= lim) goto done;; - yych = *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 yy55; - case '\\': goto yy146; - case 'n': goto yy591; - case 'o': goto yy571; - default: goto yy541; - } -yy573: - yyaccept = 75; +yy547: +#line 460 "src/parser.re" + { NEWTOKEN(PSI_T_TO_FLOAT); goto start; } +#line 8790 "src/parser.c" +yy548: + 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: @@ -9281,18 +8884,27 @@ yy573: case '|': case '}': case '~': - case 0x7F: goto yy574; - case '\\': goto yy146; + case 0x7F: goto yy553; + case '\\': goto yy148; default: goto yy61; } -yy574: -#line 389 "src/parser.re" - { NEWTOKEN(PSI_T_UINT16); goto start; } -#line 9292 "src/parser.c" -yy575: - yyaccept = 76; +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: @@ -9356,16 +8968,14 @@ yy575: case '|': case '}': case '~': - case 0x7F: goto yy576; - case '\\': goto yy146; - default: goto yy61; + case 0x7F: goto yy55; + case '\\': goto yy148; + case 'n': goto yy571; + case 'o': goto yy555; + default: goto yy527; } -yy576: -#line 391 "src/parser.re" - { NEWTOKEN(PSI_T_UINT32); goto start; } -#line 9367 "src/parser.c" -yy577: - yyaccept = 77; +yy557: + yyaccept = 73; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -9431,16 +9041,16 @@ yy577: case '|': case '}': case '~': - case 0x7F: goto yy578; - case '\\': goto yy146; + case 0x7F: goto yy558; + case '\\': goto yy148; default: goto yy61; } -yy578: -#line 393 "src/parser.re" - { NEWTOKEN(PSI_T_UINT64); goto start; } -#line 9442 "src/parser.c" -yy579: - yyaccept = 78; +yy558: +#line 410 "src/parser.re" + { NEWTOKEN(PSI_T_UNSIGNED); goto start; } +#line 9052 "src/parser.c" +yy559: + yyaccept = 74; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -9506,40 +9116,40 @@ yy579: case '|': case '}': case '~': - case 0x7F: goto yy580; - case '\\': goto yy146; + case 0x7F: goto yy560; + case '\\': goto yy148; default: goto yy61; } -yy580: +yy560: #line 394 "src/parser.re" - { NEWTOKEN(PSI_T_UNSIGNED); goto start; } -#line 9517 "src/parser.c" -yy581: + { NEWTOKEN(PSI_T_VOLATILE); goto start; } +#line 9127 "src/parser.c" +yy561: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'E': - case 'e': goto yy592; + case 'e': goto yy572; default: goto yy62; } -yy582: +yy562: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'R': - case 'r': goto yy593; + case 'r': goto yy573; default: goto yy62; } -yy583: +yy563: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'T': - case 't': goto yy594; + case 't': goto yy574; default: goto yy62; } -yy584: - yyaccept = 79; +yy564: + yyaccept = 75; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -9605,16 +9215,16 @@ yy584: case '|': case '}': case '~': - case 0x7F: goto yy585; - case '\\': goto yy146; + case 0x7F: goto yy565; + case '\\': goto yy148; default: goto yy61; } -yy585: -#line 439 "src/parser.re" +yy565: +#line 456 "src/parser.re" { NEWTOKEN(PSI_T_TO_OBJECT); goto start; } -#line 9616 "src/parser.c" -yy586: - yyaccept = 80; +#line 9226 "src/parser.c" +yy566: + yyaccept = 76; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -9680,36 +9290,36 @@ yy586: case '|': case '}': case '~': - case 0x7F: goto yy587; - case '\\': goto yy146; + case 0x7F: goto yy567; + case '\\': goto yy148; default: goto yy61; } -yy587: -#line 441 "src/parser.re" +yy567: +#line 458 "src/parser.re" { NEWTOKEN(PSI_T_TO_STRING); goto start; } -#line 9691 "src/parser.c" -yy588: +#line 9301 "src/parser.c" +yy568: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 't': goto yy596; + case 't': goto yy576; default: goto yy62; } -yy589: +yy569: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'o': goto yy597; + case 'o': goto yy577; default: goto yy62; } -yy590: +yy570: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 't': goto yy598; + case 't': goto yy578; default: goto yy62; } -yy591: +yy571: yyaccept = 5; mrk = ++cur; if (lim <= cur) if (cur >= lim) goto done;; @@ -9779,29 +9389,29 @@ yy591: case '}': case '~': case 0x7F: goto yy55; - case '\\': goto yy146; - case 'c': goto yy600; - case 'o': goto yy571; - default: goto yy541; + case '\\': goto yy148; + case 'c': goto yy580; + case 'o': goto yy555; + default: goto yy527; } -yy592: +yy572: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'X': - case 'x': goto yy601; + case 'x': goto yy581; default: goto yy62; } -yy593: +yy573: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'T': - case 't': goto yy602; + case 't': goto yy582; default: goto yy62; } -yy594: - yyaccept = 81; +yy574: + yyaccept = 77; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -9867,30 +9477,30 @@ yy594: case '|': case '}': case '~': - case 0x7F: goto yy595; - case '\\': goto yy146; + case 0x7F: goto yy575; + case '\\': goto yy148; default: goto yy61; } -yy595: -#line 423 "src/parser.re" +yy575: +#line 439 "src/parser.re" { NEWTOKEN(PSI_T_PRE_ASSERT); goto start; } -#line 9878 "src/parser.c" -yy596: +#line 9488 "src/parser.c" +yy576: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'e': goto yy604; + case 'e': goto yy584; default: goto yy62; } -yy597: +yy577: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case 'n': goto yy605; + case 'n': goto yy585; default: goto yy62; } -yy598: - yyaccept = 82; +yy578: + yyaccept = 78; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -9956,15 +9566,15 @@ yy598: case '|': case '}': case '~': - case 0x7F: goto yy599; - case '\\': goto yy146; + case 0x7F: goto yy579; + case '\\': goto yy148; default: goto yy61; } -yy599: -#line 369 "src/parser.re" +yy579: +#line 391 "src/parser.re" { NEWTOKEN(PSI_T_CPP_RESTRICT); goto start; } -#line 9967 "src/parser.c" -yy600: +#line 9577 "src/parser.c" +yy580: yyaccept = 5; mrk = ++cur; if (lim <= cur) if (cur >= lim) goto done;; @@ -10034,21 +9644,21 @@ yy600: case '}': case '~': case 0x7F: goto yy55; - case '\\': goto yy146; - case 'e': goto yy606; - case 'o': goto yy571; - default: goto yy541; + case '\\': goto yy148; + case 'e': goto yy586; + case 'o': goto yy555; + default: goto yy527; } -yy601: +yy581: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { case 'T': - case 't': goto yy608; + case 't': goto yy588; default: goto yy62; } -yy602: - yyaccept = 83; +yy582: + yyaccept = 79; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -10114,30 +9724,30 @@ yy602: case '|': case '}': case '~': - case 0x7F: goto yy603; - case '\\': goto yy146; + case 0x7F: goto yy583; + case '\\': goto yy148; default: goto yy61; } -yy603: -#line 424 "src/parser.re" +yy583: +#line 440 "src/parser.re" { NEWTOKEN(PSI_T_POST_ASSERT); goto start; } -#line 10125 "src/parser.c" -yy604: +#line 9735 "src/parser.c" +yy584: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '_': goto yy610; + case '_': goto yy590; default: goto yy62; } -yy605: +yy585: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '_': goto yy611; + case '_': goto yy591; default: goto yy62; } -yy606: - yyaccept = 84; +yy586: + yyaccept = 80; mrk = ++cur; if (lim <= cur) if (cur >= lim) goto done;; yych = *cur; @@ -10205,17 +9815,17 @@ yy606: case '|': case '}': case '~': - case 0x7F: goto yy607; - case '\\': goto yy146; - case 'o': goto yy571; - default: goto yy541; + case 0x7F: goto yy587; + case '\\': goto yy148; + case 'o': goto yy555; + default: goto yy527; } -yy607: -#line 368 "src/parser.re" +yy587: +#line 389 "src/parser.re" { NEWTOKEN(PSI_T_PRAGMA_ONCE); goto start; } -#line 10217 "src/parser.c" -yy608: - yyaccept = 85; +#line 9827 "src/parser.c" +yy588: + yyaccept = 81; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -10281,101 +9891,40 @@ yy608: case '|': case '}': case '~': - case 0x7F: goto yy609; - case '\\': goto yy146; + case 0x7F: goto yy589; + case '\\': goto yy148; default: goto yy61; } -yy609: -#line 408 "src/parser.re" +yy589: +#line 424 "src/parser.re" { NEWTOKEN(PSI_T_INCLUDE_NEXT); goto start; } -#line 10292 "src/parser.c" -yy610: +#line 9902 "src/parser.c" +yy590: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '_': goto yy612; + case '_': goto yy592; default: goto yy62; } -yy611: +yy591: yyaccept = 5; yych = *(mrk = ++cur); switch (yych) { - case '_': goto yy613; + case '_': goto yy593; default: goto yy62; } -yy612: +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 yy615; - case '(': goto yy617; - case '\\': goto yy146; - default: goto yy61; + case ' ': goto yy595; + case '(': goto yy597; + default: goto yy62; } -yy613: - yyaccept = 86; +yy593: + yyaccept = 82; yych = *(mrk = ++cur); switch (yych) { case 0x00: @@ -10441,67 +9990,67 @@ yy613: case '|': case '}': case '~': - case 0x7F: goto yy614; - case '\\': goto yy146; + case 0x7F: goto yy594; + case '\\': goto yy148; default: goto yy61; } -yy614: -#line 370 "src/parser.re" +yy594: +#line 392 "src/parser.re" { NEWTOKEN(PSI_T_CPP_EXTENSION); goto start; } -#line 10452 "src/parser.c" -yy615: +#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 yy615; - case '(': goto yy617; + case ' ': goto yy595; + case '(': goto yy597; default: goto yy114; } -yy617: +yy597: yych = *++cur; switch (yych) { - case '(': goto yy618; + case '(': goto yy598; default: goto yy114; } -yy618: +yy598: ++cur; -#line 449 "src/parser.re" +#line 466 "src/parser.re" { parens = 2; goto cpp_attribute; } -#line 10474 "src/parser.c" +#line 10023 "src/parser.c" } -#line 455 "src/parser.re" +#line 472 "src/parser.re" character: ; -#line 10481 "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 yy624; - case '\'': goto yy626; - case '\\': goto yy628; - default: goto yy622; + case '\r': goto yy604; + case '\'': goto yy606; + case '\\': goto yy608; + default: goto yy602; } -yy622: +yy602: ++cur; -#line 473 "src/parser.re" +#line 490 "src/parser.re" { escaped = false; goto character; } -#line 10497 "src/parser.c" -yy624: +#line 10046 "src/parser.c" +yy604: ++cur; -#line 460 "src/parser.re" +#line 477 "src/parser.re" { NEWLINE(); goto character; } -#line 10502 "src/parser.c" -yy626: +#line 10051 "src/parser.c" +yy606: ++cur; -#line 462 "src/parser.re" +#line 479 "src/parser.re" { if (escaped) { escaped = false; @@ -10513,43 +10062,43 @@ yy626: token->flags = char_width; goto start; } -#line 10517 "src/parser.c" -yy628: +#line 10066 "src/parser.c" +yy608: ++cur; -#line 461 "src/parser.re" +#line 478 "src/parser.re" { escaped = !escaped; goto character; } -#line 10522 "src/parser.c" +#line 10071 "src/parser.c" } -#line 475 "src/parser.re" +#line 492 "src/parser.re" string: ; -#line 10529 "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 yy634; - case '"': goto yy636; - case '\\': goto yy638; - default: goto yy632; + case '\r': goto yy614; + case '"': goto yy616; + case '\\': goto yy618; + default: goto yy612; } -yy632: +yy612: ++cur; -#line 493 "src/parser.re" +#line 510 "src/parser.re" { escaped = false; goto string; } -#line 10545 "src/parser.c" -yy634: +#line 10094 "src/parser.c" +yy614: ++cur; -#line 480 "src/parser.re" +#line 497 "src/parser.re" { NEWLINE(); goto string; } -#line 10550 "src/parser.c" -yy636: +#line 10099 "src/parser.c" +yy616: ++cur; -#line 482 "src/parser.re" +#line 499 "src/parser.re" { if (escaped) { escaped = false; @@ -10561,123 +10110,123 @@ yy636: token->flags = char_width; goto start; } -#line 10565 "src/parser.c" -yy638: +#line 10114 "src/parser.c" +yy618: ++cur; -#line 481 "src/parser.re" +#line 498 "src/parser.re" { escaped = !escaped; goto string; } -#line 10570 "src/parser.c" +#line 10119 "src/parser.c" } -#line 495 "src/parser.re" +#line 512 "src/parser.re" comment: ; -#line 10577 "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 yy644; - case '*': goto yy646; - default: goto yy642; + case '\r': goto yy624; + case '*': goto yy626; + default: goto yy622; } -yy642: +yy622: ++cur; -yy643: -#line 502 "src/parser.re" +yy623: +#line 519 "src/parser.re" { goto comment; } -#line 10593 "src/parser.c" -yy644: +#line 10142 "src/parser.c" +yy624: ++cur; -#line 500 "src/parser.re" +#line 517 "src/parser.re" { NEWLINE(); goto comment; } -#line 10598 "src/parser.c" -yy646: +#line 10147 "src/parser.c" +yy626: yych = *++cur; switch (yych) { - case '/': goto yy647; - default: goto yy643; + case '/': goto yy627; + default: goto yy623; } -yy647: +yy627: ++cur; -#line 501 "src/parser.re" +#line 518 "src/parser.re" { NEWTOKEN(PSI_T_COMMENT); goto start; } -#line 10609 "src/parser.c" +#line 10158 "src/parser.c" } -#line 504 "src/parser.re" +#line 521 "src/parser.re" comment_sl: ; -#line 10616 "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 yy653; - default: goto yy651; + case '\r': goto yy633; + default: goto yy631; } -yy651: +yy631: ++cur; -#line 510 "src/parser.re" +#line 527 "src/parser.re" { goto comment_sl; } -#line 10630 "src/parser.c" -yy653: +#line 10179 "src/parser.c" +yy633: ++cur; -#line 509 "src/parser.re" +#line 526 "src/parser.re" { NEWTOKEN(PSI_T_COMMENT); NEWLINE(); goto start; } -#line 10635 "src/parser.c" +#line 10184 "src/parser.c" } -#line 512 "src/parser.re" +#line 529 "src/parser.re" cpp_attribute: ; -#line 10643 "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 yy659; - case '(': goto yy661; - case ')': goto yy663; - default: goto yy657; + case '\r': goto yy639; + case '(': goto yy641; + case ')': goto yy643; + default: goto yy637; } -yy657: +yy637: ++cur; -#line 521 "src/parser.re" +#line 538 "src/parser.re" { goto cpp_attribute; } -#line 10659 "src/parser.c" -yy659: +#line 10208 "src/parser.c" +yy639: ++cur; -#line 520 "src/parser.re" +#line 537 "src/parser.re" { NEWLINE(); goto cpp_attribute; } -#line 10664 "src/parser.c" -yy661: +#line 10213 "src/parser.c" +yy641: ++cur; -#line 518 "src/parser.re" +#line 535 "src/parser.re" { ++parens; goto cpp_attribute; } -#line 10669 "src/parser.c" -yy663: +#line 10218 "src/parser.c" +yy643: ++cur; -#line 519 "src/parser.re" +#line 536 "src/parser.re" { if (parens == 1) { NEWTOKEN(PSI_T_CPP_ATTRIBUTE); goto start; } else { --parens; goto cpp_attribute; } } -#line 10674 "src/parser.c" +#line 10223 "src/parser.c" } -#line 523 "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;