X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Fparser.c;h=2b6c11ef10e8eb9c3172a3fb73b9b0917255c041;hp=97ef23f5a595345a572cd03318e03d8d6953d30e;hb=1b6db76e3005344b33ab45b00e7e61386a33932a;hpb=4d2c075c160bbc1ff49c3499f8fdd07d9c447a12 diff --git a/src/parser.c b/src/parser.c index 97ef23f..2b6c11e 100644 --- a/src/parser.c +++ b/src/parser.c @@ -1,15 +1,52 @@ -/* Generated by re2c 0.16 on Mon Feb 20 20:39:25 2017 */ +/* Generated by re2c 0.16 on Tue Mar 7 09:49:40 2017 */ #line 1 "src/parser.re" +/******************************************************************************* + Copyright (c) 2016, Michael Wallner . + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*******************************************************************************/ + #include "php_psi_stdinc.h" #include #include +#include #include "parser.h" -void *psi_parser_proc_init(void); -void psi_parser_proc_free(void **parser_proc); -void psi_parser_proc_parse(void *parser_proc, token_t r, struct psi_token *token, struct psi_parser *parser); -void psi_parser_proc_trace(FILE *out, char *prefix); +#define YYMAXFILL 12 +#ifndef YYMAXFILL +# define YYMAXFILL 256 +#endif +#line 57 "src/parser.re" + + +static void free_cpp_def(zval *p) +{ + if (Z_TYPE_P(p) == IS_PTR) { + psi_cpp_macro_decl_free((void *) &Z_PTR_P(p)); + } else if (Z_REFCOUNTED_P(p)) { + zval_ptr_dtor(p); + } +} struct psi_parser *psi_parser_init(struct psi_parser *P, psi_error_cb error, unsigned flags) { @@ -24,6 +61,11 @@ struct psi_parser *psi_parser_init(struct psi_parser *P, psi_error_cb error, uns P->line = 1; P->proc = psi_parser_proc_init(); + zend_hash_init(&P->cpp.defs, 0, NULL, free_cpp_def, 1); + zval tmp; + ZVAL_ARR(&tmp, &P->cpp.defs); + add_assoc_string(&tmp, "PHP_OS", PHP_OS); + if (flags & PSI_DEBUG) { psi_parser_proc_trace(stderr, "PSI> "); } @@ -31,162 +73,183 @@ struct psi_parser *psi_parser_init(struct psi_parser *P, psi_error_cb error, uns return P; } +void psi_parser_reset(struct psi_parser *P) +{ + P->cur = P->tok = P->mrk = P->input.buffer; + P->lim = P->input.buffer + P->input.length; +} + bool psi_parser_open_file(struct psi_parser *P, const char *filename) { - FILE *fp = fopen(filename, "r"); + struct stat sb; + FILE *fp; + char *fb; - if (!fp) { + if (stat(filename, &sb)) { P->error(PSI_DATA(P), NULL, PSI_WARNING, - "Could not open '%s' for reading: %s", + "Could not stat '%s': %s", filename, strerror(errno)); return false; } - P->input.type = PSI_PARSE_FILE; - P->input.data.file.handle = fp; - -#if HAVE_MMAP - struct stat sb; - int fd = fileno(fp); + if (!(fb = malloc(sb.st_size + YYMAXFILL))) { + P->error(PSI_DATA(P), NULL, PSI_WARNING, + "Could not allocate %zu bytes for reading '%s': %s", + sb.st_size + YYMAXFILL, filename, strerror(errno)); + return false; + } - if (fstat(fd, &sb)) { + if (!(fp = fopen(filename, "r"))) { + free(fb); P->error(PSI_DATA(P), NULL, PSI_WARNING, - "Could not stat '%s': %s", + "Could not open '%s' for reading: %s", filename, strerror(errno)); return false; } - P->input.data.file.buffer = mmap(NULL, sb.st_size, PROT_READ, MAP_SHARED, fd, 0); - if (MAP_FAILED == P->input.data.file.buffer) { + if (sb.st_size != fread(fb, 1, sb.st_size, fp)) { + free(fb); + fclose(fp); P->error(PSI_DATA(P), NULL, PSI_WARNING, - "Could not map '%s' for reading: %s", - filename, strerror(errno)); + "Could not read %zu bytes from '%s': %s", + sb.st_size + YYMAXFILL, filename, strerror(errno)); return false; } - P->input.data.file.length = sb.st_size; -#else - P->input.data.file.buffer = malloc(BSIZE); -#endif + memset(fb + sb.st_size, 0, YYMAXFILL); + + if (P->input.buffer) { + free(P->input.buffer); + } + P->input.buffer = fb; + P->input.length = sb.st_size; P->file.fn = strdup(filename); + psi_parser_reset(P); + return true; } bool psi_parser_open_string(struct psi_parser *P, const char *string, size_t length) { - P->input.type = PSI_PARSE_STRING; - P->input.data.string.length = length; - if (!(P->input.data.string.buffer = strndup(string, length))) { + char *sb; + + if (!(sb = malloc(length + YYMAXFILL))) { + P->error(PSI_DATA(P), NULL, PSI_WARNING, + "Could not allocate %zu bytes: %s", + length + YYMAXFILL, strerror(errno)); return false; } + memcpy(sb, string, length); + memset(sb + length, 0, YYMAXFILL); + + if (P->input.buffer) { + free(P->input.buffer); + } + P->input.buffer = sb; + P->input.length = length; + P->file.fn = strdup(""); + psi_parser_reset(P); + return true; } -static ssize_t psi_parser_fill(struct psi_parser *P, size_t n) +#if 0 +static void psi_parser_register_constants(struct psi_parser *P) { - PSI_DEBUG_PRINT(P, "PSI< Fill: n=%zu (input.type=%d)\n", n, P->input.type); + zend_string *key; + zval *val; - /* init if n==0 */ - if (!n) { - switch (P->input.type) { - case PSI_PARSE_FILE: - P->cur = P->tok = P->mrk = P->input.data.file.buffer; -#if HAVE_MMAP - P->eof = P->input.data.file.buffer + P->input.data.file.length; - P->lim = P->eof; -#else - P->eof = NULL; - P->lim = P->input.data.file.buffer; -#endif - break; + 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; - case PSI_PARSE_STRING: - P->cur = P->tok = P->mrk = P->input.data.string.buffer; - P->eof = P->input.data.string.buffer + P->input.data.string.length; - P->lim = P->eof; + 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; } - PSI_DEBUG_PRINT(P, "PSI< Fill: cur=%p lim=%p eof=%p\n", P->cur, P->lim, P->eof); + 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 - switch (P->input.type) { - case PSI_PARSE_STRING: - break; +void psi_parser_parse(struct psi_parser *P) +{ + size_t i = 0; + struct psi_token *T; - case PSI_PARSE_FILE: -#if !HAVE_MMAP - if (!P->eof) { - size_t consumed = P->tok - P->buf; - size_t reserved = P->lim - P->tok; - size_t available = BSIZE - reserved; - size_t didread; + P->cpp.tokens = psi_parser_scan(P); - if (consumed) { - memmove(P->buf, P->tok, reserved); - P->tok -= consumed; - P->cur -= consumed; - P->lim -= consumed; - P->mrk -= consumed; - } + psi_cpp_preprocess(P, &P->cpp); - didread = fread(P->lim, 1, available, P->fp); - P->lim += didread; - if (didread < available) { - P->eof = P->lim; + if (psi_plist_count(P->cpp.tokens)) { + while (psi_plist_get(P->cpp.tokens, i++, &T)) { + if (P->flags & PSI_DEBUG) { + fprintf(stderr, "PSI> "); + psi_token_dump(2, T); } - PSI_DEBUG_PRINT(P, "PSI< Fill: consumed=%zu reserved=%zu available=%zu didread=%zu\n", - consumed, reserved, available, didread); + psi_parser_proc_parse(P->proc, T->type, T, P); } -#endif - break; - } - - PSI_DEBUG_PRINT(P, "PSI< Fill: avail=%td\n", P->lim - P->cur); - - return P->lim - P->cur; -} - -void psi_parser_parse(struct psi_parser *P, struct psi_token *T) -{ - if (T) { - psi_parser_proc_parse(P->proc, T->type, T, P); - } else { psi_parser_proc_parse(P->proc, 0, NULL, P); } + + psi_plist_free(P->cpp.tokens); + P->cpp.tokens = NULL; } void psi_parser_dtor(struct psi_parser *P) { psi_parser_proc_free(&P->proc); - switch (P->input.type) { - case PSI_PARSE_FILE: - if (P->input.data.file.buffer) { -#if HAVE_MMAP - munmap(P->input.data.file.buffer, P->input.data.file.length); -#else - free(P->input.data.file.buffer); -#endif - } - if (P->input.data.file.handle) { - fclose(P->input.data.file.handle); - } - break; - - case PSI_PARSE_STRING: - if (P->input.data.string.buffer) { - free(P->input.data.string.buffer); - } - break; + if (P->input.buffer) { + free(P->input.buffer); + P->input.buffer = NULL; } psi_data_dtor(PSI_DATA(P)); + zend_hash_destroy(&P->cpp.defs); + memset(P, 0, sizeof(*P)); } @@ -199,42 +262,42 @@ void psi_parser_free(struct psi_parser **P) } } -#define YYMAXFILL 12 -#if BSIZE < YYMAXFILL -# error BSIZE must be greater than YYMAXFILL -#endif +#define NEWLINE() \ + P->col = 1; \ + ++P->line -#define RETURN(t) do { \ +#define NEWTOKEN(t) \ P->num = t; \ - PSI_DEBUG_PRINT(P, "PSI< TOKEN: %d %.*s (EOF=%d %s:%u:%u)\n", \ - P->num, (int) (P->cur-P->tok), P->tok, P->num == PSI_T_EOF, \ - P->file.fn, P->line, P->col); \ - return t; \ -} while(1) - -#define ADDCOLS \ - P->col += P->cur - P->tok + token = psi_token_alloc(P); \ + tokens = psi_plist_add(tokens, &token); \ + P->col += P->cur - P->tok; \ + if (P->flags & PSI_DEBUG) { \ + fprintf(stderr, "PSI< "); \ + psi_token_dump(2, token); \ + } \ + token = NULL -#define NEWLINE(label) \ - P->col = 1; \ - ++P->line; \ - goto label -token_t psi_parser_scan(struct psi_parser *P) +struct psi_plist *psi_parser_scan(struct psi_parser *P) { + struct psi_plist *tokens; + struct psi_token *token; + if (!P->cur) { - psi_parser_fill(P, 0); + return NULL; } - for (;;) { - ADDCOLS; - nextline: + + tokens = psi_plist_init(NULL); + + start: ; P->tok = P->cur; + -#line 234 "src/parser.c" +#line 297 "src/parser.c" { unsigned char yych; unsigned int yyaccept = 0; - if ((P->lim - P->cur) < 12) { if (!psi_parser_fill(P,12)) RETURN(PSI_T_EOF); }; + if ((P->lim - P->cur) < 12) if (P->cur >= P->lim) goto done;; yych = *P->cur; switch (yych) { case '\t': @@ -244,17 +307,17 @@ token_t psi_parser_scan(struct psi_parser *P) case '!': goto yy9; case '"': goto yy11; case '#': goto yy12; - case '$': goto yy13; - case '%': goto yy14; - case '&': goto yy16; - case '(': goto yy18; - case ')': goto yy20; - case '*': goto yy22; - case '+': goto yy24; - case ',': goto yy26; - case '-': goto yy28; - case '.': goto yy30; - case '/': goto yy31; + case '$': goto yy14; + case '%': goto yy15; + case '&': goto yy17; + case '(': goto yy19; + case ')': goto yy21; + case '*': goto yy23; + case '+': goto yy25; + case ',': goto yy27; + case '-': goto yy29; + case '.': goto yy31; + case '/': goto yy32; case '0': case '1': case '2': @@ -264,30 +327,29 @@ token_t psi_parser_scan(struct psi_parser *P) case '6': case '7': case '8': - case '9': goto yy33; - case ':': goto yy36; - case ';': goto yy38; - case '<': goto yy40; - case '=': goto yy42; - case '>': goto yy44; + case '9': goto yy34; + case ':': goto yy37; + case ';': goto yy39; + case '<': goto yy41; + case '=': goto yy43; + case '>': goto yy45; case 'A': - case 'a': goto yy46; + case 'a': goto yy47; case 'B': - case 'b': goto yy48; + case 'b': goto yy49; case 'C': - case 'c': goto yy49; + case 'c': goto yy50; case 'D': - case 'd': goto yy50; + case 'd': goto yy51; case 'E': - case 'e': goto yy51; + case 'e': goto yy52; case 'F': - case 'f': goto yy52; + case 'f': goto yy53; case 'G': case 'H': case 'J': case 'K': case 'Q': - case 'W': case 'X': case 'Y': case '_': @@ -296,52 +358,53 @@ token_t psi_parser_scan(struct psi_parser *P) case 'j': case 'k': case 'q': - case 'w': case 'x': - case 'y': goto yy53; + case 'y': goto yy54; case 'I': - case 'i': goto yy55; + case 'i': goto yy56; case 'L': - case 'l': goto yy56; + case 'l': goto yy57; case 'M': - case 'm': goto yy57; + case 'm': goto yy58; case 'N': - case 'n': goto yy58; + case 'n': goto yy59; case 'O': - case 'o': goto yy59; + case 'o': goto yy60; case 'P': - case 'p': goto yy60; + case 'p': goto yy61; case 'R': - case 'r': goto yy61; + case 'r': goto yy62; case 'S': - case 's': goto yy62; + case 's': goto yy63; case 'T': - case 't': goto yy63; + case 't': goto yy64; case 'U': - case 'u': goto yy64; + case 'u': goto yy65; case 'V': - case 'v': goto yy65; + case 'v': goto yy66; + case 'W': + case 'w': goto yy67; case 'Z': - case 'z': goto yy66; - case '[': goto yy67; - case '\\': goto yy69; - case ']': goto yy70; - case '^': goto yy72; - case '{': goto yy74; - case '|': goto yy76; - case '}': goto yy78; - case '~': goto yy80; + case 'z': goto yy68; + case '[': goto yy69; + case '\\': goto yy71; + case ']': goto yy73; + case '^': goto yy75; + case '{': goto yy77; + case '|': goto yy79; + case '}': goto yy81; + case '~': goto yy83; default: goto yy2; } yy2: ++P->cur; yy3: -#line 346 "src/parser.re" - {break;} -#line 342 "src/parser.c" +#line 426 "src/parser.re" + { goto error; } +#line 405 "src/parser.c" yy4: ++P->cur; - if (P->lim <= P->cur) { if (!psi_parser_fill(P,1)) RETURN(PSI_T_EOF); }; + if (P->lim <= P->cur) if (P->cur >= P->lim) goto done;; yych = *P->cur; switch (yych) { case '\t': @@ -349,36 +412,37 @@ yy4: default: goto yy6; } yy6: -#line 281 "src/parser.re" - { continue; } -#line 355 "src/parser.c" +#line 425 "src/parser.re" + { NEWTOKEN(PSI_T_WHITESPACE); goto start; } +#line 418 "src/parser.c" yy7: ++P->cur; -#line 280 "src/parser.re" - { NEWLINE(nextline); } -#line 360 "src/parser.c" +#line 424 "src/parser.re" + { NEWTOKEN(PSI_T_EOL); NEWLINE(); goto start; } +#line 423 "src/parser.c" yy9: ++P->cur; switch ((yych = *P->cur)) { - case '=': goto yy82; + case '=': goto yy85; default: goto yy10; } yy10: -#line 265 "src/parser.re" - {RETURN(PSI_T_NOT);} -#line 370 "src/parser.c" +#line 333 "src/parser.re" + { NEWTOKEN(PSI_T_NOT); goto start; } +#line 433 "src/parser.c" yy11: yyaccept = 0; yych = *(P->mrk = ++P->cur); switch (yych) { case '"': goto yy3; - default: goto yy84; + default: goto yy87; } yy12: - yyaccept = 0; - yych = *(P->mrk = ++P->cur); - goto yy87; -yy13: + ++P->cur; +#line 316 "src/parser.re" + { NEWTOKEN(PSI_T_HASH); goto start; } +#line 445 "src/parser.c" +yy14: yych = *++P->cur; switch (yych) { case '0': @@ -443,44 +507,44 @@ yy13: case 'w': case 'x': case 'y': - case 'z': goto yy90; + case 'z': goto yy89; default: goto yy3; } -yy14: +yy15: ++P->cur; -#line 266 "src/parser.re" - {RETURN(PSI_T_MODULO);} -#line 454 "src/parser.c" -yy16: +#line 334 "src/parser.re" + { NEWTOKEN(PSI_T_MODULO); goto start; } +#line 518 "src/parser.c" +yy17: ++P->cur; switch ((yych = *P->cur)) { - case '&': goto yy93; - default: goto yy17; + case '&': goto yy92; + default: goto yy18; } -yy17: -#line 267 "src/parser.re" - {RETURN(PSI_T_AMPERSAND);} -#line 464 "src/parser.c" yy18: +#line 335 "src/parser.re" + { NEWTOKEN(PSI_T_AMPERSAND); goto start; } +#line 528 "src/parser.c" +yy19: ++P->cur; -#line 249 "src/parser.re" - {RETURN(PSI_T_LPAREN);} -#line 469 "src/parser.c" -yy20: +#line 317 "src/parser.re" + { NEWTOKEN(PSI_T_LPAREN); goto start; } +#line 533 "src/parser.c" +yy21: ++P->cur; -#line 250 "src/parser.re" - {RETURN(PSI_T_RPAREN);} -#line 474 "src/parser.c" -yy22: +#line 318 "src/parser.re" + { NEWTOKEN(PSI_T_RPAREN); goto start; } +#line 538 "src/parser.c" +yy23: ++P->cur; -#line 263 "src/parser.re" - {RETURN(PSI_T_ASTERISK);} -#line 479 "src/parser.c" -yy24: +#line 331 "src/parser.re" + { NEWTOKEN(PSI_T_ASTERISK); goto start; } +#line 543 "src/parser.c" +yy25: yyaccept = 1; yych = *(P->mrk = ++P->cur); switch (yych) { - case '.': goto yy95; + case '.': goto yy94; case '0': case '1': case '2': @@ -490,23 +554,23 @@ yy24: case '6': case '7': case '8': - case '9': goto yy33; - default: goto yy25; + case '9': goto yy34; + default: goto yy26; } -yy25: -#line 268 "src/parser.re" - {RETURN(PSI_T_PLUS);} -#line 500 "src/parser.c" yy26: +#line 336 "src/parser.re" + { NEWTOKEN(PSI_T_PLUS); goto start; } +#line 564 "src/parser.c" +yy27: ++P->cur; -#line 252 "src/parser.re" - {RETURN(PSI_T_COMMA);} -#line 505 "src/parser.c" -yy28: +#line 320 "src/parser.re" + { NEWTOKEN(PSI_T_COMMA); goto start; } +#line 569 "src/parser.c" +yy29: yyaccept = 2; yych = *(P->mrk = ++P->cur); switch (yych) { - case '.': goto yy95; + case '.': goto yy94; case '0': case '1': case '2': @@ -516,18 +580,18 @@ yy28: case '6': case '7': case '8': - case '9': goto yy33; - default: goto yy29; + case '9': goto yy34; + default: goto yy30; } -yy29: -#line 269 "src/parser.re" - {RETURN(PSI_T_MINUS);} -#line 526 "src/parser.c" yy30: +#line 337 "src/parser.re" + { NEWTOKEN(PSI_T_MINUS); goto start; } +#line 590 "src/parser.c" +yy31: yyaccept = 0; yych = *(P->mrk = ++P->cur); switch (yych) { - case '.': goto yy97; + case '.': goto yy96; case '0': case '1': case '2': @@ -537,28 +601,27 @@ yy30: case '6': case '7': case '8': - case '9': goto yy98; + case '9': goto yy97; default: goto yy3; } -yy31: - yyaccept = 3; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case '*': goto yy100; - case '/': goto yy86; - default: goto yy32; - } yy32: -#line 270 "src/parser.re" - {RETURN(PSI_T_SLASH);} -#line 555 "src/parser.c" + ++P->cur; + switch ((yych = *P->cur)) { + case '*': goto yy99; + case '/': goto yy101; + default: goto yy33; + } yy33: - yyaccept = 4; +#line 338 "src/parser.re" + { NEWTOKEN(PSI_T_SLASH); goto start; } +#line 618 "src/parser.c" +yy34: + yyaccept = 3; P->mrk = ++P->cur; - if ((P->lim - P->cur) < 3) { if (!psi_parser_fill(P,3)) RETURN(PSI_T_EOF); }; + if ((P->lim - P->cur) < 3) if (P->cur >= P->lim) goto done;; yych = *P->cur; switch (yych) { - case '.': goto yy95; + case '.': goto yy94; case '0': case '1': case '2': @@ -568,125 +631,131 @@ yy33: case '6': case '7': case '8': - case '9': goto yy33; + case '9': goto yy34; case 'E': - case 'e': goto yy102; - default: goto yy35; + case 'e': goto yy103; + default: goto yy36; } -yy35: -#line 341 "src/parser.re" - {RETURN(PSI_T_NUMBER);} -#line 580 "src/parser.c" yy36: +#line 419 "src/parser.re" + { NEWTOKEN(PSI_T_NUMBER); goto start; } +#line 643 "src/parser.c" +yy37: ++P->cur; -#line 253 "src/parser.re" - {RETURN(PSI_T_COLON);} -#line 585 "src/parser.c" -yy38: +#line 321 "src/parser.re" + { NEWTOKEN(PSI_T_COLON); goto start; } +#line 648 "src/parser.c" +yy39: ++P->cur; -#line 251 "src/parser.re" - {RETURN(PSI_T_EOS);} -#line 590 "src/parser.c" -yy40: +#line 319 "src/parser.re" + { NEWTOKEN(PSI_T_EOS); goto start; } +#line 653 "src/parser.c" +yy41: ++P->cur; switch ((yych = *P->cur)) { - case '<': goto yy103; - case '=': goto yy105; - default: goto yy41; + case '<': goto yy104; + case '=': goto yy106; + default: goto yy42; } -yy41: -#line 277 "src/parser.re" - {RETURN(PSI_T_LCHEVR);} -#line 601 "src/parser.c" yy42: +#line 346 "src/parser.re" + { NEWTOKEN(PSI_T_LCHEVR); goto start; } +#line 664 "src/parser.c" +yy43: ++P->cur; switch ((yych = *P->cur)) { - case '=': goto yy107; - default: goto yy43; + case '=': goto yy108; + default: goto yy44; } -yy43: -#line 262 "src/parser.re" - {RETURN(PSI_T_EQUALS);} -#line 611 "src/parser.c" yy44: +#line 330 "src/parser.re" + { NEWTOKEN(PSI_T_EQUALS); goto start; } +#line 674 "src/parser.c" +yy45: ++P->cur; switch ((yych = *P->cur)) { - case '=': goto yy109; - case '>': goto yy111; - default: goto yy45; + case '=': goto yy110; + case '>': goto yy112; + default: goto yy46; } -yy45: -#line 278 "src/parser.re" - {RETURN(PSI_T_RCHEVR);} -#line 622 "src/parser.c" yy46: - yyaccept = 5; +#line 347 "src/parser.re" + { NEWTOKEN(PSI_T_RCHEVR); goto start; } +#line 685 "src/parser.c" +yy47: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'R': - case 'r': goto yy113; - default: goto yy54; + case 'r': goto yy114; + default: goto yy55; } -yy47: -#line 342 "src/parser.re" - {RETURN(PSI_T_NAME);} -#line 634 "src/parser.c" yy48: - yyaccept = 5; +#line 420 "src/parser.re" + { NEWTOKEN(PSI_T_NAME); goto start; } +#line 697 "src/parser.c" +yy49: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'O': - case 'o': goto yy115; - default: goto yy54; + case 'o': goto yy116; + default: goto yy55; } -yy49: - yyaccept = 5; +yy50: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'A': - case 'a': goto yy116; + case 'a': goto yy117; case 'H': - case 'h': goto yy117; + case 'h': goto yy118; case 'O': - case 'o': goto yy118; - default: goto yy54; + case 'o': goto yy119; + default: goto yy55; } -yy50: - yyaccept = 5; +yy51: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { + case 'E': + case 'e': goto yy120; case 'O': - case 'o': goto yy119; - default: goto yy54; + case 'o': goto yy121; + default: goto yy55; } -yy51: - yyaccept = 5; +yy52: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { + case 'L': + case 'l': goto yy122; case 'N': - case 'n': goto yy120; - default: goto yy54; + case 'n': goto yy123; + case 'R': + case 'r': goto yy124; + default: goto yy55; } -yy52: - yyaccept = 5; +yy53: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'A': - case 'a': goto yy121; + case 'a': goto yy125; case 'L': - case 'l': goto yy122; + case 'l': goto yy126; case 'R': - case 'r': goto yy123; + case 'r': goto yy127; case 'U': - case 'u': goto yy124; - default: goto yy54; + case 'u': goto yy128; + default: goto yy55; } -yy53: - yyaccept = 5; +yy54: + yyaccept = 4; P->mrk = ++P->cur; - if (P->lim <= P->cur) { if (!psi_parser_fill(P,1)) RETURN(PSI_T_EOF); }; + if (P->lim <= P->cur) if (P->cur >= P->lim) goto done;; yych = *P->cur; -yy54: +yy55: switch (yych) { case '0': case '1': @@ -750,136 +819,146 @@ yy54: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy47; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy48; } -yy55: - yyaccept = 5; +yy56: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { + case 'F': + case 'f': goto yy129; case 'N': - case 'n': goto yy125; - default: goto yy54; + case 'n': goto yy131; + default: goto yy55; } -yy56: - yyaccept = 5; +yy57: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'E': - case 'e': goto yy126; + case 'e': goto yy132; case 'I': - case 'i': goto yy127; + case 'i': goto yy133; case 'O': - case 'o': goto yy128; - default: goto yy54; + case 'o': goto yy134; + default: goto yy55; } -yy57: - yyaccept = 5; +yy58: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'I': - case 'i': goto yy129; - default: goto yy54; + case 'i': goto yy135; + default: goto yy55; } -yy58: - yyaccept = 5; +yy59: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'U': - case 'u': goto yy130; - default: goto yy54; + case 'u': goto yy136; + default: goto yy55; } -yy59: - yyaccept = 5; +yy60: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'B': - case 'b': goto yy131; - default: goto yy54; + case 'b': goto yy137; + default: goto yy55; } -yy60: - yyaccept = 5; +yy61: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'A': - case 'a': goto yy132; + case 'a': goto yy138; case 'O': - case 'o': goto yy133; + case 'o': goto yy139; case 'R': - case 'r': goto yy134; - default: goto yy54; + case 'r': goto yy140; + default: goto yy55; } -yy61: - yyaccept = 5; +yy62: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'E': - case 'e': goto yy135; - default: goto yy54; + case 'e': goto yy141; + default: goto yy55; } -yy62: - yyaccept = 5; +yy63: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'E': - case 'e': goto yy136; + case 'e': goto yy142; case 'H': - case 'h': goto yy137; + case 'h': goto yy143; case 'I': - case 'i': goto yy138; + case 'i': goto yy144; case 'T': - case 't': goto yy139; - default: goto yy54; + case 't': goto yy145; + default: goto yy55; } -yy63: - yyaccept = 5; +yy64: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'E': - case 'e': goto yy140; + case 'e': goto yy146; case 'O': - case 'o': goto yy141; + case 'o': goto yy147; case 'R': - case 'r': goto yy142; + case 'r': goto yy148; case 'Y': - case 'y': goto yy143; - default: goto yy54; + case 'y': goto yy149; + default: goto yy55; } -yy64: - yyaccept = 5; +yy65: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'I': - case 'i': goto yy144; + case 'i': goto yy150; case 'N': - case 'n': goto yy145; - default: goto yy54; + case 'n': goto yy151; + default: goto yy55; } -yy65: - yyaccept = 5; +yy66: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'O': - case 'o': goto yy146; - default: goto yy54; + case 'o': goto yy152; + default: goto yy55; } -yy66: - yyaccept = 5; +yy67: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'A': + case 'a': goto yy153; + default: goto yy55; + } +yy68: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'V': - case 'v': goto yy147; - default: goto yy54; + case 'v': goto yy154; + default: goto yy55; } -yy67: - ++P->cur; -#line 256 "src/parser.re" - {RETURN(PSI_T_LBRACKET);} -#line 880 "src/parser.c" yy69: - yych = *++P->cur; - switch (yych) { + ++P->cur; +#line 324 "src/parser.re" + { NEWTOKEN(PSI_T_LBRACKET); goto start; } +#line 959 "src/parser.c" +yy71: + ++P->cur; + switch ((yych = *P->cur)) { case 'A': case 'B': case 'C': @@ -932,74 +1011,64 @@ yy69: case 'w': case 'x': case 'y': - case 'z': goto yy148; - default: goto yy3; + case 'z': goto yy155; + default: goto yy72; } -yy70: - ++P->cur; -#line 257 "src/parser.re" - {RETURN(PSI_T_RBRACKET);} -#line 943 "src/parser.c" yy72: +#line 339 "src/parser.re" + { NEWTOKEN(PSI_T_BSLASH); goto start; } +#line 1021 "src/parser.c" +yy73: ++P->cur; -#line 272 "src/parser.re" - {RETURN(PSI_T_CARET);} -#line 948 "src/parser.c" -yy74: +#line 325 "src/parser.re" + { NEWTOKEN(PSI_T_RBRACKET); goto start; } +#line 1026 "src/parser.c" +yy75: + ++P->cur; +#line 341 "src/parser.re" + { NEWTOKEN(PSI_T_CARET); goto start; } +#line 1031 "src/parser.c" +yy77: ++P->cur; -#line 254 "src/parser.re" - {RETURN(PSI_T_LBRACE);} -#line 953 "src/parser.c" -yy76: +#line 322 "src/parser.re" + { NEWTOKEN(PSI_T_LBRACE); goto start; } +#line 1036 "src/parser.c" +yy79: ++P->cur; switch ((yych = *P->cur)) { - case '|': goto yy151; - default: goto yy77; + case '|': goto yy158; + default: goto yy80; } -yy77: -#line 271 "src/parser.re" - {RETURN(PSI_T_PIPE);} -#line 963 "src/parser.c" -yy78: - ++P->cur; -#line 255 "src/parser.re" - {RETURN(PSI_T_RBRACE);} -#line 968 "src/parser.c" yy80: +#line 340 "src/parser.re" + { NEWTOKEN(PSI_T_PIPE); goto start; } +#line 1046 "src/parser.c" +yy81: ++P->cur; -#line 264 "src/parser.re" - {RETURN(PSI_T_TILDE);} -#line 973 "src/parser.c" -yy82: +#line 323 "src/parser.re" + { NEWTOKEN(PSI_T_RBRACE); goto start; } +#line 1051 "src/parser.c" +yy83: ++P->cur; -#line 258 "src/parser.re" - {RETURN(PSI_T_CMP_NE);} -#line 978 "src/parser.c" -yy84: +#line 332 "src/parser.re" + { NEWTOKEN(PSI_T_TILDE); goto start; } +#line 1056 "src/parser.c" +yy85: ++P->cur; - if (P->lim <= P->cur) { if (!psi_parser_fill(P,1)) RETURN(PSI_T_EOF); }; - yych = *P->cur; - switch (yych) { - case '"': goto yy153; - default: goto yy84; - } -yy86: +#line 326 "src/parser.re" + { NEWTOKEN(PSI_T_CMP_NE); goto start; } +#line 1061 "src/parser.c" +yy87: ++P->cur; - if (P->lim <= P->cur) { if (!psi_parser_fill(P,1)) RETURN(PSI_T_EOF); }; + if (P->lim <= P->cur) if (P->cur >= P->lim) goto done;; yych = *P->cur; -yy87: switch (yych) { - case '\n': goto yy88; - default: goto yy86; + case '"': goto yy160; + default: goto yy87; } -yy88: +yy89: ++P->cur; -#line 248 "src/parser.re" - { NEWLINE(nextline); } -#line 1000 "src/parser.c" -yy90: - ++P->cur; - if (P->lim <= P->cur) { if (!psi_parser_fill(P,1)) RETURN(PSI_T_EOF); }; + if (P->lim <= P->cur) if (P->cur >= P->lim) goto done;; yych = *P->cur; switch (yych) { case '0': @@ -1064,19 +1133,19 @@ yy90: case 'w': case 'x': case 'y': - case 'z': goto yy90; - default: goto yy92; + case 'z': goto yy89; + default: goto yy91; } +yy91: +#line 422 "src/parser.re" + { NEWTOKEN(PSI_T_DOLLAR_NAME); goto start; } +#line 1143 "src/parser.c" yy92: -#line 344 "src/parser.re" - {RETURN(PSI_T_DOLLAR_NAME);} -#line 1074 "src/parser.c" -yy93: ++P->cur; -#line 260 "src/parser.re" - {RETURN(PSI_T_AND);} -#line 1079 "src/parser.c" -yy95: +#line 328 "src/parser.re" + { NEWTOKEN(PSI_T_AND); goto start; } +#line 1148 "src/parser.c" +yy94: yych = *++P->cur; switch (yych) { case '0': @@ -1088,89 +1157,99 @@ yy95: case '6': case '7': case '8': - case '9': goto yy98; - default: goto yy96; + case '9': goto yy97; + default: goto yy95; } -yy96: +yy95: P->cur = P->mrk; switch (yyaccept) { case 0: goto yy3; - case 1: goto yy25; - case 2: goto yy29; - case 3: goto yy32; - case 4: goto yy35; - case 5: goto yy47; - case 6: goto yy150; - case 7: goto yy173; - case 8: goto yy175; - case 9: goto yy177; - case 10: goto yy187; - case 11: goto yy204; - case 12: goto yy207; - case 13: goto yy212; - case 14: goto yy216; - case 15: goto yy224; - case 16: goto yy227; - case 17: goto yy242; - case 18: goto yy250; - case 19: goto yy256; - case 20: goto yy258; - case 21: goto yy260; - case 22: goto yy267; - case 23: goto yy269; - case 24: goto yy272; - case 25: goto yy274; - case 26: goto yy282; - case 27: goto yy290; - case 28: goto yy309; - case 29: goto yy312; - case 30: goto yy317; - case 31: goto yy319; - case 32: goto yy326; - case 33: goto yy328; - case 34: goto yy330; - case 35: goto yy332; - case 36: goto yy337; - case 37: goto yy339; - case 38: goto yy341; - case 39: goto yy343; - case 40: goto yy345; - case 41: goto yy347; - case 42: goto yy349; - case 43: goto yy354; - case 44: goto yy364; - case 45: goto yy370; - case 46: goto yy372; - case 47: goto yy374; - case 48: goto yy376; - case 49: goto yy381; - case 50: goto yy386; - case 51: goto yy391; - case 52: goto yy394; - case 53: goto yy396; - case 54: goto yy398; - case 55: goto yy400; - case 56: goto yy404; - case 57: goto yy406; - case 58: goto yy410; - case 59: goto yy412; - case 60: goto yy414; - case 61: goto yy416; - case 62: goto yy420; - case 63: goto yy422; - case 64: goto yy425; - default: goto yy427; + case 1: goto yy26; + case 2: goto yy30; + case 3: goto yy36; + case 4: goto yy48; + case 5: goto yy130; + case 6: goto yy157; + case 7: goto yy187; + case 8: goto yy189; + case 9: goto yy191; + case 10: goto yy201; + case 11: goto yy220; + case 12: goto yy223; + case 13: goto yy229; + case 14: goto yy231; + case 15: goto yy234; + case 16: goto yy239; + case 17: goto yy249; + case 18: goto yy252; + case 19: goto yy267; + case 20: goto yy275; + case 21: goto yy282; + case 22: goto yy285; + case 23: goto yy287; + case 24: goto yy294; + case 25: goto yy296; + case 26: goto yy300; + case 27: goto yy302; + case 28: goto yy304; + case 29: goto yy306; + case 30: goto yy309; + case 31: goto yy317; + case 32: goto yy325; + case 33: goto yy344; + case 34: goto yy346; + case 35: goto yy350; + case 36: goto yy355; + case 37: goto yy357; + case 38: goto yy359; + case 39: goto yy363; + case 40: goto yy368; + case 41: goto yy370; + case 42: goto yy372; + case 43: goto yy374; + case 44: goto yy379; + case 45: goto yy381; + case 46: goto yy383; + case 47: goto yy385; + case 48: goto yy387; + case 49: goto yy389; + case 50: goto yy391; + case 51: goto yy396; + case 52: goto yy407; + case 53: goto yy411; + case 54: goto yy415; + case 55: goto yy417; + case 56: goto yy419; + case 57: goto yy421; + case 58: goto yy426; + case 59: goto yy431; + case 60: goto yy436; + case 61: goto yy439; + case 62: goto yy441; + case 63: goto yy443; + case 64: goto yy445; + case 65: goto yy447; + case 66: goto yy451; + case 67: goto yy453; + case 68: goto yy457; + case 69: goto yy459; + case 70: goto yy461; + case 71: goto yy463; + case 72: goto yy467; + case 73: goto yy469; + case 74: goto yy472; + default: goto yy474; } -yy97: +yy96: yych = *++P->cur; switch (yych) { - case '.': goto yy155; - default: goto yy96; + case '.': goto yy162; + default: goto yy95; } -yy98: - yyaccept = 4; +yy97: + yyaccept = 3; P->mrk = ++P->cur; - if ((P->lim - P->cur) < 3) { if (!psi_parser_fill(P,3)) RETURN(PSI_T_EOF); }; + if ((P->lim - P->cur) < 3) if (P->cur >= P->lim) goto done;; yych = *P->cur; switch (yych) { case '0': @@ -1182,21 +1261,26 @@ yy98: case '6': case '7': case '8': - case '9': goto yy98; + case '9': goto yy97; case 'E': - case 'e': goto yy102; - default: goto yy35; + case 'e': goto yy103; + default: goto yy36; } -yy100: +yy99: ++P->cur; -#line 247 "src/parser.re" +#line 314 "src/parser.re" { goto comment; } -#line 1195 "src/parser.c" -yy102: +#line 1274 "src/parser.c" +yy101: + ++P->cur; +#line 315 "src/parser.re" + { goto comment_sl; } +#line 1279 "src/parser.c" +yy103: yych = *++P->cur; switch (yych) { case '+': - case '-': goto yy157; + case '-': goto yy164; case '0': case '1': case '2': @@ -1206,45 +1290,45 @@ yy102: case '6': case '7': case '8': - case '9': goto yy158; - default: goto yy96; + case '9': goto yy165; + default: goto yy95; } -yy103: +yy104: ++P->cur; -#line 273 "src/parser.re" - {RETURN(PSI_T_LSHIFT);} -#line 1217 "src/parser.c" -yy105: +#line 342 "src/parser.re" + { NEWTOKEN(PSI_T_LSHIFT); goto start; } +#line 1301 "src/parser.c" +yy106: ++P->cur; -#line 275 "src/parser.re" - {RETURN(PSI_T_CMP_LE);} -#line 1222 "src/parser.c" -yy107: +#line 344 "src/parser.re" + { NEWTOKEN(PSI_T_CMP_LE); goto start; } +#line 1306 "src/parser.c" +yy108: ++P->cur; -#line 259 "src/parser.re" - {RETURN(PSI_T_CMP_EQ);} -#line 1227 "src/parser.c" -yy109: +#line 327 "src/parser.re" + { NEWTOKEN(PSI_T_CMP_EQ); goto start; } +#line 1311 "src/parser.c" +yy110: ++P->cur; -#line 276 "src/parser.re" - {RETURN(PSI_T_CMP_GE);} -#line 1232 "src/parser.c" -yy111: +#line 345 "src/parser.re" + { NEWTOKEN(PSI_T_CMP_GE); goto start; } +#line 1316 "src/parser.c" +yy112: ++P->cur; -#line 274 "src/parser.re" - {RETURN(PSI_T_RSHIFT);} -#line 1237 "src/parser.c" -yy113: - yyaccept = 5; +#line 343 "src/parser.re" + { NEWTOKEN(PSI_T_RSHIFT); goto start; } +#line 1321 "src/parser.c" +yy114: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'R': - case 'r': goto yy160; - default: goto yy54; + case 'r': goto yy167; + default: goto yy55; } -yy114: +yy115: ++P->cur; - if (P->lim <= P->cur) { if (!psi_parser_fill(P,1)) RETURN(PSI_T_EOF); }; + if (P->lim <= P->cur) if (P->cur >= P->lim) goto done;; yych = *P->cur; switch (yych) { case 'A': @@ -1299,282 +1383,394 @@ yy114: case 'w': case 'x': case 'y': - case 'z': goto yy148; - default: goto yy96; + case 'z': goto yy155; + default: goto yy95; } -yy115: - yyaccept = 5; +yy116: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'O': - case 'o': goto yy161; - default: goto yy54; + case 'o': goto yy168; + default: goto yy55; } -yy116: - yyaccept = 5; +yy117: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'L': - case 'l': goto yy162; - default: goto yy54; + case 'l': goto yy169; + default: goto yy55; } -yy117: - yyaccept = 5; +yy118: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'A': - case 'a': goto yy163; - default: goto yy54; + case 'a': goto yy170; + default: goto yy55; } -yy118: - yyaccept = 5; +yy119: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'N': - case 'n': goto yy164; + case 'n': goto yy171; case 'U': - case 'u': goto yy165; - default: goto yy54; + case 'u': goto yy172; + default: goto yy55; } -yy119: - yyaccept = 5; +yy120: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'F': + case 'f': goto yy173; + default: goto yy55; + } +yy121: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'U': - case 'u': goto yy166; - default: goto yy54; + case 'u': goto yy174; + default: goto yy55; } -yy120: - yyaccept = 5; +yy122: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'I': + case 'i': goto yy175; + case 'S': + case 's': goto yy176; + default: goto yy55; + } +yy123: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { + case 'D': + case 'd': goto yy177; case 'U': - case 'u': goto yy167; - default: goto yy54; + case 'u': goto yy178; + default: goto yy55; } -yy121: - yyaccept = 5; +yy124: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'R': + case 'r': goto yy179; + default: goto yy55; + } +yy125: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'L': - case 'l': goto yy168; - default: goto yy54; + case 'l': goto yy180; + default: goto yy55; } -yy122: - yyaccept = 5; +yy126: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'O': - case 'o': goto yy169; - default: goto yy54; + case 'o': goto yy181; + default: goto yy55; } -yy123: - yyaccept = 5; +yy127: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'E': - case 'e': goto yy170; - default: goto yy54; + case 'e': goto yy182; + default: goto yy55; } -yy124: - yyaccept = 5; +yy128: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'N': - case 'n': goto yy171; - default: goto yy54; + case 'n': goto yy183; + default: goto yy55; } -yy125: +yy129: yyaccept = 5; yych = *(P->mrk = ++P->cur); switch (yych) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy54; + case 'D': + case 'd': goto yy184; + case 'N': + case 'n': goto yy185; + case '\\': goto yy115; + default: goto yy130; + } +yy130: +#line 349 "src/parser.re" + { NEWTOKEN(PSI_T_IF); goto start; } +#line 1573 "src/parser.c" +yy131: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { case 'T': - case 't': goto yy172; - default: goto yy54; + case 't': goto yy186; + default: goto yy55; } -yy126: - yyaccept = 5; +yy132: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'T': - case 't': goto yy174; - default: goto yy54; + case 't': goto yy188; + default: goto yy55; } -yy127: - yyaccept = 5; +yy133: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'B': - case 'b': goto yy176; - default: goto yy54; + case 'b': goto yy190; + default: goto yy55; } -yy128: - yyaccept = 5; +yy134: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'N': - case 'n': goto yy178; - default: goto yy54; + case 'n': goto yy192; + default: goto yy55; } -yy129: - yyaccept = 5; +yy135: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'X': - case 'x': goto yy179; - default: goto yy54; + case 'x': goto yy193; + default: goto yy55; } -yy130: - yyaccept = 5; +yy136: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'L': - case 'l': goto yy180; - default: goto yy54; + case 'l': goto yy194; + default: goto yy55; } -yy131: - yyaccept = 5; +yy137: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'J': - case 'j': goto yy181; - default: goto yy54; + case 'j': goto yy195; + default: goto yy55; } -yy132: - yyaccept = 5; +yy138: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'T': - case 't': goto yy182; - default: goto yy54; + case 't': goto yy196; + default: goto yy55; } -yy133: - yyaccept = 5; +yy139: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'S': - case 's': goto yy183; - default: goto yy54; + case 's': goto yy197; + default: goto yy55; } -yy134: - yyaccept = 5; +yy140: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'E': - case 'e': goto yy184; - default: goto yy54; + case 'e': goto yy198; + default: goto yy55; } -yy135: - yyaccept = 5; +yy141: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'T': - case 't': goto yy185; - default: goto yy54; + case 't': goto yy199; + default: goto yy55; } -yy136: - yyaccept = 5; +yy142: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'T': - case 't': goto yy186; - default: goto yy54; + case 't': goto yy200; + default: goto yy55; } -yy137: - yyaccept = 5; +yy143: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'O': - case 'o': goto yy188; - default: goto yy54; + case 'o': goto yy202; + default: goto yy55; } -yy138: - yyaccept = 5; +yy144: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'G': - case 'g': goto yy189; - default: goto yy54; + case 'g': goto yy203; + default: goto yy55; } -yy139: - yyaccept = 5; +yy145: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'A': - case 'a': goto yy190; + case 'a': goto yy204; case 'R': - case 'r': goto yy191; - default: goto yy54; + case 'r': goto yy205; + default: goto yy55; } -yy140: - yyaccept = 5; +yy146: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'M': - case 'm': goto yy192; - default: goto yy54; + case 'm': goto yy206; + default: goto yy55; } -yy141: - yyaccept = 5; +yy147: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case '_': goto yy193; - default: goto yy54; + case '_': goto yy207; + default: goto yy55; } -yy142: - yyaccept = 5; +yy148: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'U': - case 'u': goto yy194; - default: goto yy54; + case 'u': goto yy208; + default: goto yy55; } -yy143: - yyaccept = 5; +yy149: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'P': - case 'p': goto yy195; - default: goto yy54; + case 'p': goto yy209; + default: goto yy55; } -yy144: - yyaccept = 5; +yy150: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'N': - case 'n': goto yy196; - default: goto yy54; + case 'n': goto yy210; + default: goto yy55; } -yy145: - yyaccept = 5; +yy151: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { + case 'D': + case 'd': goto yy211; case 'I': - case 'i': goto yy197; + case 'i': goto yy212; case 'S': - case 's': goto yy198; - default: goto yy54; + case 's': goto yy213; + default: goto yy55; } -yy146: - yyaccept = 5; +yy152: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'I': - case 'i': goto yy199; - default: goto yy54; + case 'i': goto yy214; + default: goto yy55; } -yy147: - yyaccept = 5; +yy153: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'R': + case 'r': goto yy215; + default: goto yy55; + } +yy154: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'A': - case 'a': goto yy200; - default: goto yy54; + case 'a': goto yy216; + default: goto yy55; } -yy148: +yy155: yyaccept = 6; P->mrk = ++P->cur; - if (P->lim <= P->cur) { if (!psi_parser_fill(P,1)) RETURN(PSI_T_EOF); }; + if (P->lim <= P->cur) if (P->cur >= P->lim) goto done;; yych = *P->cur; switch (yych) { case '0': @@ -1639,30 +1835,30 @@ yy148: case 'w': case 'x': case 'y': - case 'z': goto yy148; - case '\\': goto yy114; - default: goto yy150; + case 'z': goto yy155; + case '\\': goto yy115; + default: goto yy157; } -yy150: -#line 343 "src/parser.re" - {RETURN(PSI_T_NSNAME);} -#line 1650 "src/parser.c" -yy151: +yy157: +#line 421 "src/parser.re" + { NEWTOKEN(PSI_T_NSNAME); goto start; } +#line 1846 "src/parser.c" +yy158: ++P->cur; -#line 261 "src/parser.re" - {RETURN(PSI_T_OR);} -#line 1655 "src/parser.c" -yy153: +#line 329 "src/parser.re" + { NEWTOKEN(PSI_T_OR); goto start; } +#line 1851 "src/parser.c" +yy160: ++P->cur; -#line 345 "src/parser.re" - {RETURN(PSI_T_QUOTED_STRING);} -#line 1660 "src/parser.c" -yy155: +#line 423 "src/parser.re" + { NEWTOKEN(PSI_T_QUOTED_STRING); goto start; } +#line 1856 "src/parser.c" +yy162: ++P->cur; -#line 279 "src/parser.re" - {RETURN(PSI_T_ELLIPSIS);} -#line 1665 "src/parser.c" -yy157: +#line 348 "src/parser.re" + { NEWTOKEN(PSI_T_ELLIPSIS); goto start; } +#line 1861 "src/parser.c" +yy164: yych = *++P->cur; switch (yych) { case '0': @@ -1674,12 +1870,12 @@ yy157: case '6': case '7': case '8': - case '9': goto yy158; - default: goto yy96; + case '9': goto yy165; + default: goto yy95; } -yy158: +yy165: ++P->cur; - if (P->lim <= P->cur) { if (!psi_parser_fill(P,1)) RETURN(PSI_T_EOF); }; + if (P->lim <= P->cur) if (P->cur >= P->lim) goto done;; yych = *P->cur; switch (yych) { case '0': @@ -1691,108 +1887,164 @@ yy158: case '6': case '7': case '8': - case '9': goto yy158; - default: goto yy35; + case '9': goto yy165; + default: goto yy36; } -yy160: - yyaccept = 5; +yy167: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'A': - case 'a': goto yy201; + case 'a': goto yy217; case 'V': - case 'v': goto yy202; - default: goto yy54; + case 'v': goto yy218; + default: goto yy55; } -yy161: - yyaccept = 5; +yy168: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'L': - case 'l': goto yy203; - default: goto yy54; + case 'l': goto yy219; + default: goto yy55; } -yy162: - yyaccept = 5; +yy169: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'L': - case 'l': goto yy205; - default: goto yy54; + case 'l': goto yy221; + default: goto yy55; } -yy163: - yyaccept = 5; +yy170: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'R': - case 'r': goto yy206; - default: goto yy54; + case 'r': goto yy222; + default: goto yy55; } -yy164: - yyaccept = 5; +yy171: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'S': - case 's': goto yy208; - default: goto yy54; + case 's': goto yy224; + default: goto yy55; } -yy165: - yyaccept = 5; +yy172: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'N': - case 'n': goto yy209; - default: goto yy54; + case 'n': goto yy225; + default: goto yy55; } -yy166: - yyaccept = 5; +yy173: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'I': + case 'i': goto yy226; + default: goto yy55; + } +yy174: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'B': - case 'b': goto yy210; - default: goto yy54; + case 'b': goto yy227; + default: goto yy55; } -yy167: - yyaccept = 5; +yy175: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'F': + case 'f': goto yy228; + default: goto yy55; + } +yy176: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'E': + case 'e': goto yy230; + default: goto yy55; + } +yy177: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'I': + case 'i': goto yy232; + default: goto yy55; + } +yy178: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'M': - case 'm': goto yy211; - default: goto yy54; + case 'm': goto yy233; + default: goto yy55; } -yy168: - yyaccept = 5; +yy179: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'O': + case 'o': goto yy235; + default: goto yy55; + } +yy180: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'S': - case 's': goto yy213; - default: goto yy54; + case 's': goto yy236; + default: goto yy55; } -yy169: - yyaccept = 5; +yy181: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'A': - case 'a': goto yy214; - default: goto yy54; + case 'a': goto yy237; + default: goto yy55; } -yy170: - yyaccept = 5; +yy182: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'E': - case 'e': goto yy215; - default: goto yy54; + case 'e': goto yy238; + default: goto yy55; } -yy171: - yyaccept = 5; +yy183: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'C': - case 'c': goto yy217; - default: goto yy54; + case 'c': goto yy240; + default: goto yy55; } -yy172: +yy184: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'E': + case 'e': goto yy241; + default: goto yy55; + } +yy185: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'D': + case 'd': goto yy242; + default: goto yy55; + } +yy186: yyaccept = 7; yych = *(P->mrk = ++P->cur); switch (yych) { @@ -1852,21 +2104,21 @@ yy172: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '1': goto yy218; - case '3': goto yy219; - case '6': goto yy220; - case '8': goto yy221; + case 'z': goto yy54; + case '1': goto yy243; + case '3': goto yy244; + case '6': goto yy245; + case '8': goto yy246; case 'V': - case 'v': goto yy222; - case '\\': goto yy114; - default: goto yy173; + case 'v': goto yy247; + case '\\': goto yy115; + default: goto yy187; } -yy173: -#line 291 "src/parser.re" - {RETURN(PSI_T_INT);} -#line 1869 "src/parser.c" -yy174: +yy187: +#line 369 "src/parser.re" + { NEWTOKEN(PSI_T_INT); goto start; } +#line 2121 "src/parser.c" +yy188: yyaccept = 8; yych = *(P->mrk = ++P->cur); switch (yych) { @@ -1932,15 +2184,15 @@ yy174: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy175; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy189; } -yy175: -#line 317 "src/parser.re" - {RETURN(PSI_T_LET);} -#line 1943 "src/parser.c" -yy176: +yy189: +#line 395 "src/parser.re" + { NEWTOKEN(PSI_T_LET); goto start; } +#line 2195 "src/parser.c" +yy190: yyaccept = 9; yych = *(P->mrk = ++P->cur); switch (yych) { @@ -2006,80 +2258,80 @@ yy176: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy177; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy191; } -yy177: -#line 316 "src/parser.re" - {RETURN(PSI_T_LIB);} -#line 2017 "src/parser.c" -yy178: - yyaccept = 5; +yy191: +#line 394 "src/parser.re" + { NEWTOKEN(PSI_T_LIB); goto start; } +#line 2269 "src/parser.c" +yy192: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'G': - case 'g': goto yy223; - default: goto yy54; + case 'g': goto yy248; + default: goto yy55; } -yy179: - yyaccept = 5; +yy193: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'E': - case 'e': goto yy225; - default: goto yy54; + case 'e': goto yy250; + default: goto yy55; } -yy180: - yyaccept = 5; +yy194: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'L': - case 'l': goto yy226; - default: goto yy54; + case 'l': goto yy251; + default: goto yy55; } -yy181: - yyaccept = 5; +yy195: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'E': - case 'e': goto yy228; + case 'e': goto yy253; case 'V': - case 'v': goto yy229; - default: goto yy54; + case 'v': goto yy254; + default: goto yy55; } -yy182: - yyaccept = 5; +yy196: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'H': - case 'h': goto yy230; - default: goto yy54; + case 'h': goto yy255; + default: goto yy55; } -yy183: - yyaccept = 5; +yy197: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'T': - case 't': goto yy231; - default: goto yy54; + case 't': goto yy256; + default: goto yy55; } -yy184: - yyaccept = 5; +yy198: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case '_': goto yy232; - default: goto yy54; + case '_': goto yy257; + default: goto yy55; } -yy185: - yyaccept = 5; +yy199: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'U': - case 'u': goto yy233; - default: goto yy54; + case 'u': goto yy258; + default: goto yy55; } -yy186: +yy200: yyaccept = 10; yych = *(P->mrk = ++P->cur); switch (yych) { @@ -2145,151 +2397,167 @@ yy186: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy187; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy201; } -yy187: -#line 318 "src/parser.re" - {RETURN(PSI_T_SET);} -#line 2156 "src/parser.c" -yy188: - yyaccept = 5; +yy201: +#line 396 "src/parser.re" + { NEWTOKEN(PSI_T_SET); goto start; } +#line 2408 "src/parser.c" +yy202: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'R': - case 'r': goto yy234; - default: goto yy54; + case 'r': goto yy259; + default: goto yy55; } -yy189: - yyaccept = 5; +yy203: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'N': - case 'n': goto yy235; - default: goto yy54; + case 'n': goto yy260; + default: goto yy55; } -yy190: - yyaccept = 5; +yy204: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'T': - case 't': goto yy236; - default: goto yy54; + case 't': goto yy261; + default: goto yy55; } -yy191: - yyaccept = 5; +yy205: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'I': - case 'i': goto yy237; + case 'i': goto yy262; case 'L': - case 'l': goto yy238; + case 'l': goto yy263; case 'U': - case 'u': goto yy239; + case 'u': goto yy264; case 'V': - case 'v': goto yy240; - default: goto yy54; + case 'v': goto yy265; + default: goto yy55; } -yy192: - yyaccept = 5; +yy206: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'P': - case 'p': goto yy241; - default: goto yy54; + case 'p': goto yy266; + default: goto yy55; } -yy193: - yyaccept = 5; +yy207: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'A': - case 'a': goto yy243; + case 'a': goto yy268; case 'B': - case 'b': goto yy244; + case 'b': goto yy269; case 'F': - case 'f': goto yy245; + case 'f': goto yy270; case 'I': - case 'i': goto yy246; + case 'i': goto yy271; case 'O': - case 'o': goto yy247; + case 'o': goto yy272; case 'S': - case 's': goto yy248; - default: goto yy54; + case 's': goto yy273; + default: goto yy55; } -yy194: - yyaccept = 5; +yy208: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'E': - case 'e': goto yy249; - default: goto yy54; + case 'e': goto yy274; + default: goto yy55; } -yy195: - yyaccept = 5; +yy209: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'E': - case 'e': goto yy251; - default: goto yy54; + case 'e': goto yy276; + default: goto yy55; } -yy196: - yyaccept = 5; +yy210: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'T': - case 't': goto yy252; - default: goto yy54; + case 't': goto yy277; + default: goto yy55; } -yy197: - yyaccept = 5; +yy211: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'E': + case 'e': goto yy278; + default: goto yy55; + } +yy212: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'O': - case 'o': goto yy253; - default: goto yy54; + case 'o': goto yy279; + default: goto yy55; } -yy198: - yyaccept = 5; +yy213: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'I': - case 'i': goto yy254; - default: goto yy54; + case 'i': goto yy280; + default: goto yy55; } -yy199: - yyaccept = 5; +yy214: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'D': - case 'd': goto yy255; - default: goto yy54; + case 'd': goto yy281; + default: goto yy55; } -yy200: - yyaccept = 5; +yy215: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'N': + case 'n': goto yy283; + default: goto yy55; + } +yy216: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'L': - case 'l': goto yy257; - default: goto yy54; + case 'l': goto yy284; + default: goto yy55; } -yy201: - yyaccept = 5; +yy217: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'Y': - case 'y': goto yy259; - default: goto yy54; + case 'y': goto yy286; + default: goto yy55; } -yy202: - yyaccept = 5; +yy218: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'A': - case 'a': goto yy261; - default: goto yy54; + case 'a': goto yy288; + default: goto yy55; } -yy203: +yy219: yyaccept = 11; yych = *(P->mrk = ++P->cur); switch (yych) { @@ -2353,29 +2621,29 @@ yy203: case 'w': case 'x': case 'y': - case 'z': goto yy53; + case 'z': goto yy54; case 'V': - case 'v': goto yy262; - case '\\': goto yy114; - default: goto yy204; + case 'v': goto yy289; + case '\\': goto yy115; + default: goto yy220; } -yy204: -#line 288 "src/parser.re" - {RETURN(PSI_T_BOOL);} -#line 2366 "src/parser.c" -yy205: - yyaccept = 5; +yy220: +#line 366 "src/parser.re" + { NEWTOKEN(PSI_T_BOOL); goto start; } +#line 2634 "src/parser.c" +yy221: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'A': - case 'a': goto yy263; + case 'a': goto yy290; case 'B': - case 'b': goto yy264; + case 'b': goto yy291; case 'O': - case 'o': goto yy265; - default: goto yy54; + case 'o': goto yy292; + default: goto yy55; } -yy206: +yy222: yyaccept = 12; yych = *(P->mrk = ++P->cur); switch (yych) { @@ -2441,39 +2709,47 @@ yy206: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy207; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy223; } -yy207: -#line 289 "src/parser.re" - {RETURN(PSI_T_CHAR);} -#line 2452 "src/parser.c" -yy208: - yyaccept = 5; +yy223: +#line 367 "src/parser.re" + { NEWTOKEN(PSI_T_CHAR); goto start; } +#line 2720 "src/parser.c" +yy224: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'T': - case 't': goto yy266; - default: goto yy54; + case 't': goto yy293; + default: goto yy55; } -yy209: - yyaccept = 5; +yy225: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'T': - case 't': goto yy268; - default: goto yy54; + case 't': goto yy295; + default: goto yy55; } -yy210: - yyaccept = 5; +yy226: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'N': + case 'n': goto yy297; + default: goto yy55; + } +yy227: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'L': - case 'l': goto yy270; - default: goto yy54; + case 'l': goto yy298; + default: goto yy55; } -yy211: +yy228: yyaccept = 13; yych = *(P->mrk = ++P->cur); switch (yych) { @@ -2539,32 +2815,16 @@ yy211: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy212; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy229; } -yy212: -#line 314 "src/parser.re" - {RETURN(PSI_T_ENUM);} -#line 2550 "src/parser.c" -yy213: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'E': - case 'e': goto yy271; - default: goto yy54; - } -yy214: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'T': - case 't': goto yy273; - default: goto yy54; - } -yy215: - yyaccept = 14; +yy229: +#line 353 "src/parser.re" + { NEWTOKEN(PSI_T_ELIF); goto start; } +#line 2826 "src/parser.c" +yy230: + yyaccept = 14; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -2629,59 +2889,23 @@ yy215: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy216; - } -yy216: -#line 322 "src/parser.re" - {RETURN(PSI_T_FREE);} -#line 2640 "src/parser.c" -yy217: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'T': - case 't': goto yy275; - default: goto yy54; - } -yy218: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case '6': goto yy276; - default: goto yy54; - } -yy219: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case '2': goto yy277; - default: goto yy54; - } -yy220: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case '4': goto yy278; - default: goto yy54; - } -yy221: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case '_': goto yy279; - default: goto yy54; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy231; } -yy222: - yyaccept = 5; +yy231: +#line 352 "src/parser.re" + { NEWTOKEN(PSI_T_ELSE); goto start; } +#line 2900 "src/parser.c" +yy232: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case 'A': - case 'a': goto yy280; - default: goto yy54; + case 'F': + case 'f': goto yy299; + default: goto yy55; } -yy223: +yy233: yyaccept = 15; yych = *(P->mrk = ++P->cur); switch (yych) { @@ -2747,23 +2971,39 @@ yy223: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy224; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy234; } -yy224: -#line 292 "src/parser.re" - {RETURN(PSI_T_LONG);} -#line 2758 "src/parser.c" -yy225: - yyaccept = 5; +yy234: +#line 392 "src/parser.re" + { NEWTOKEN(PSI_T_ENUM); goto start; } +#line 2982 "src/parser.c" +yy235: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case 'D': - case 'd': goto yy281; - default: goto yy54; + case 'R': + case 'r': goto yy301; + default: goto yy55; } -yy226: +yy236: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'E': + case 'e': goto yy303; + default: goto yy55; + } +yy237: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'T': + case 't': goto yy305; + default: goto yy55; + } +yy238: yyaccept = 16; yych = *(P->mrk = ++P->cur); switch (yych) { @@ -2829,118 +3069,75 @@ yy226: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy227; - } -yy227: -#line 284 "src/parser.re" - {RETURN(PSI_T_NULL);} -#line 2840 "src/parser.c" -yy228: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'C': - case 'c': goto yy283; - default: goto yy54; - } -yy229: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'A': - case 'a': goto yy284; - default: goto yy54; - } -yy230: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'V': - case 'v': goto yy285; - default: goto yy54; - } -yy231: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case '_': goto yy286; - default: goto yy54; - } -yy232: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'A': - case 'a': goto yy287; - default: goto yy54; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy239; } -yy233: - yyaccept = 5; +yy239: +#line 400 "src/parser.re" + { NEWTOKEN(PSI_T_FREE); goto start; } +#line 3080 "src/parser.c" +yy240: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case 'R': - case 'r': goto yy288; - default: goto yy54; + case 'T': + case 't': goto yy307; + default: goto yy55; } -yy234: - yyaccept = 5; +yy241: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case 'T': - case 't': goto yy289; - default: goto yy54; + case 'F': + case 'f': goto yy308; + default: goto yy55; } -yy235: - yyaccept = 5; +yy242: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'E': - case 'e': goto yy291; - default: goto yy54; + case 'e': goto yy310; + default: goto yy55; } -yy236: - yyaccept = 5; +yy243: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case 'I': - case 'i': goto yy292; - default: goto yy54; + case '6': goto yy311; + default: goto yy55; } -yy237: - yyaccept = 5; +yy244: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case 'N': - case 'n': goto yy293; - default: goto yy54; + case '2': goto yy312; + default: goto yy55; } -yy238: - yyaccept = 5; +yy245: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case 'E': - case 'e': goto yy294; - default: goto yy54; + case '4': goto yy313; + default: goto yy55; } -yy239: - yyaccept = 5; +yy246: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case 'C': - case 'c': goto yy295; - default: goto yy54; + case '_': goto yy314; + default: goto yy55; } -yy240: - yyaccept = 5; +yy247: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'A': - case 'a': goto yy296; - default: goto yy54; + case 'a': goto yy315; + default: goto yy55; } -yy241: +yy248: yyaccept = 17; yych = *(P->mrk = ++P->cur); switch (yych) { @@ -3006,63 +3203,23 @@ yy241: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy242; - } -yy242: -#line 323 "src/parser.re" - {RETURN(PSI_T_TEMP);} -#line 3017 "src/parser.c" -yy243: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'R': - case 'r': goto yy297; - default: goto yy54; - } -yy244: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'O': - case 'o': goto yy298; - default: goto yy54; - } -yy245: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'L': - case 'l': goto yy299; - default: goto yy54; - } -yy246: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'N': - case 'n': goto yy300; - default: goto yy54; - } -yy247: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'B': - case 'b': goto yy301; - default: goto yy54; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy249; } -yy248: - yyaccept = 5; +yy249: +#line 370 "src/parser.re" + { NEWTOKEN(PSI_T_LONG); goto start; } +#line 3214 "src/parser.c" +yy250: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case 'T': - case 't': goto yy302; - default: goto yy54; + case 'D': + case 'd': goto yy316; + default: goto yy55; } -yy249: +yy251: yyaccept = 18; yych = *(P->mrk = ++P->cur); switch (yych) { @@ -3128,88 +3285,157 @@ yy249: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy250; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy252; } -yy250: -#line 282 "src/parser.re" - {RETURN(PSI_T_TRUE);} -#line 3139 "src/parser.c" -yy251: - yyaccept = 5; +yy252: +#line 362 "src/parser.re" + { NEWTOKEN(PSI_T_NULL); goto start; } +#line 3296 "src/parser.c" +yy253: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case 'D': - case 'd': goto yy303; - default: goto yy54; + case 'C': + case 'c': goto yy318; + default: goto yy55; } -yy252: - yyaccept = 5; +yy254: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case '1': goto yy304; - case '3': goto yy305; - case '6': goto yy306; - case '8': goto yy307; - default: goto yy54; + case 'A': + case 'a': goto yy319; + default: goto yy55; } -yy253: - yyaccept = 5; +yy255: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case 'N': - case 'n': goto yy308; - default: goto yy54; + case 'V': + case 'v': goto yy320; + default: goto yy55; } -yy254: - yyaccept = 5; +yy256: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case 'G': - case 'g': goto yy310; - default: goto yy54; + case '_': goto yy321; + default: goto yy55; } -yy255: - yyaccept = 19; +yy257: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': + case 'a': goto yy322; + default: goto yy55; + } +yy258: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { case 'R': - case 'S': + case 'r': goto yy323; + default: goto yy55; + } +yy259: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': + case 't': goto yy324; + default: goto yy55; + } +yy260: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'E': + case 'e': goto yy326; + default: goto yy55; + } +yy261: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'I': + case 'i': goto yy327; + default: goto yy55; + } +yy262: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'N': + case 'n': goto yy328; + default: goto yy55; + } +yy263: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'E': + case 'e': goto yy329; + default: goto yy55; + } +yy264: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'C': + case 'c': goto yy330; + default: goto yy55; + } +yy265: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'A': + case 'a': goto yy331; + default: goto yy55; + } +yy266: + yyaccept = 19; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': case '_': case 'a': case 'b': @@ -3236,15 +3462,63 @@ yy255: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy256; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy267; } -yy256: -#line 287 "src/parser.re" - {RETURN(PSI_T_VOID);} -#line 3247 "src/parser.c" -yy257: +yy267: +#line 401 "src/parser.re" + { NEWTOKEN(PSI_T_TEMP); goto start; } +#line 3473 "src/parser.c" +yy268: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'R': + case 'r': goto yy332; + default: goto yy55; + } +yy269: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'O': + case 'o': goto yy333; + default: goto yy55; + } +yy270: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'L': + case 'l': goto yy334; + default: goto yy55; + } +yy271: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'N': + case 'n': goto yy335; + default: goto yy55; + } +yy272: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'B': + case 'b': goto yy336; + default: goto yy55; + } +yy273: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'T': + case 't': goto yy337; + default: goto yy55; + } +yy274: yyaccept = 20; yych = *(P->mrk = ++P->cur); switch (yych) { @@ -3310,15 +3584,57 @@ yy257: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy258; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy275; } -yy258: -#line 332 "src/parser.re" - {RETURN(PSI_T_ZVAL);} -#line 3321 "src/parser.c" -yy259: +yy275: +#line 360 "src/parser.re" + { NEWTOKEN(PSI_T_TRUE); goto start; } +#line 3595 "src/parser.c" +yy276: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'D': + case 'd': goto yy338; + default: goto yy55; + } +yy277: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case '1': goto yy339; + case '3': goto yy340; + case '6': goto yy341; + case '8': goto yy342; + default: goto yy55; + } +yy278: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'F': + case 'f': goto yy343; + default: goto yy55; + } +yy279: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'N': + case 'n': goto yy345; + default: goto yy55; + } +yy280: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'G': + case 'g': goto yy347; + default: goto yy55; + } +yy281: yyaccept = 21; yych = *(P->mrk = ++P->cur); switch (yych) { @@ -3384,55 +3700,23 @@ yy259: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy260; - } -yy260: -#line 306 "src/parser.re" - {RETURN(PSI_T_ARRAY);} -#line 3395 "src/parser.c" -yy261: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'L': - case 'l': goto yy311; - default: goto yy54; - } -yy262: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'A': - case 'a': goto yy313; - default: goto yy54; - } -yy263: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'B': - case 'b': goto yy314; - default: goto yy54; - } -yy264: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'A': - case 'a': goto yy315; - default: goto yy54; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy282; } -yy265: - yyaccept = 5; +yy282: +#line 365 "src/parser.re" + { NEWTOKEN(PSI_T_VOID); goto start; } +#line 3711 "src/parser.c" +yy283: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case 'C': - case 'c': goto yy316; - default: goto yy54; + case 'I': + case 'i': goto yy348; + default: goto yy55; } -yy266: +yy284: yyaccept = 22; yych = *(P->mrk = ++P->cur); switch (yych) { @@ -3498,15 +3782,15 @@ yy266: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy267; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy285; } -yy267: -#line 315 "src/parser.re" - {RETURN(PSI_T_CONST);} -#line 3509 "src/parser.c" -yy268: +yy285: +#line 410 "src/parser.re" + { NEWTOKEN(PSI_T_ZVAL); goto start; } +#line 3793 "src/parser.c" +yy286: yyaccept = 23; yych = *(P->mrk = ++P->cur); switch (yych) { @@ -3572,23 +3856,55 @@ yy268: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy269; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy287; } -yy269: -#line 333 "src/parser.re" - {RETURN(PSI_T_COUNT);} -#line 3583 "src/parser.c" -yy270: - yyaccept = 5; +yy287: +#line 384 "src/parser.re" + { NEWTOKEN(PSI_T_ARRAY); goto start; } +#line 3867 "src/parser.c" +yy288: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case 'E': - case 'e': goto yy318; - default: goto yy54; + case 'L': + case 'l': goto yy349; + default: goto yy55; } -yy271: +yy289: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'A': + case 'a': goto yy351; + default: goto yy55; + } +yy290: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'B': + case 'b': goto yy352; + default: goto yy55; + } +yy291: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'A': + case 'a': goto yy353; + default: goto yy55; + } +yy292: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'C': + case 'c': goto yy354; + default: goto yy55; + } +yy293: yyaccept = 24; yych = *(P->mrk = ++P->cur); switch (yych) { @@ -3654,15 +3970,15 @@ yy271: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy272; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy294; } -yy272: -#line 283 "src/parser.re" - {RETURN(PSI_T_FALSE);} -#line 3665 "src/parser.c" -yy273: +yy294: +#line 393 "src/parser.re" + { NEWTOKEN(PSI_T_CONST); goto start; } +#line 3981 "src/parser.c" +yy295: yyaccept = 25; yych = *(P->mrk = ++P->cur); switch (yych) { @@ -3697,6 +4013,7 @@ yy273: case 'S': case 'T': case 'U': + case 'V': case 'W': case 'X': case 'Y': @@ -3723,66 +4040,861 @@ yy273: case 's': case 't': case 'u': + case 'v': case 'w': case 'x': case 'y': - case 'z': goto yy53; - case 'V': - case 'v': goto yy320; - case '\\': goto yy114; - default: goto yy274; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy296; } -yy274: -#line 293 "src/parser.re" - {RETURN(PSI_T_FLOAT);} -#line 3739 "src/parser.c" -yy275: - yyaccept = 5; +yy296: +#line 411 "src/parser.re" + { NEWTOKEN(PSI_T_COUNT); goto start; } +#line 4055 "src/parser.c" +yy297: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case 'I': - case 'i': goto yy321; - default: goto yy54; + case 'E': + case 'e': goto yy356; + default: goto yy55; } -yy276: - yyaccept = 5; +yy298: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case '_': goto yy322; - default: goto yy54; + case 'E': + case 'e': goto yy358; + default: goto yy55; } -yy277: - yyaccept = 5; +yy299: + yyaccept = 26; yych = *(P->mrk = ++P->cur); switch (yych) { - case '_': goto yy323; - default: goto yy54; - } -yy278: - yyaccept = 5; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy300; + } +yy300: +#line 354 "src/parser.re" + { NEWTOKEN(PSI_T_ENDIF); goto start; } +#line 4145 "src/parser.c" +yy301: + yyaccept = 27; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy302; + } +yy302: +#line 359 "src/parser.re" + { NEWTOKEN(PSI_T_ERROR); goto start; } +#line 4219 "src/parser.c" +yy303: + yyaccept = 28; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy304; + } +yy304: +#line 361 "src/parser.re" + { NEWTOKEN(PSI_T_FALSE); goto start; } +#line 4293 "src/parser.c" +yy305: + yyaccept = 29; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'w': + case 'x': + case 'y': + case 'z': goto yy54; + case 'V': + case 'v': goto yy360; + case '\\': goto yy115; + default: goto yy306; + } +yy306: +#line 371 "src/parser.re" + { NEWTOKEN(PSI_T_FLOAT); goto start; } +#line 4367 "src/parser.c" +yy307: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'I': + case 'i': goto yy361; + default: goto yy55; + } +yy308: + yyaccept = 30; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy309; + } +yy309: +#line 350 "src/parser.re" + { NEWTOKEN(PSI_T_IFDEF); goto start; } +#line 4449 "src/parser.c" +yy310: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'F': + case 'f': goto yy362; + default: goto yy55; + } +yy311: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case '_': goto yy364; + default: goto yy55; + } +yy312: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case '_': goto yy365; + default: goto yy55; + } +yy313: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case '_': goto yy366; + default: goto yy55; + } +yy314: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'T': + case 't': goto yy367; + default: goto yy55; + } +yy315: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'L': + case 'l': goto yy369; + default: goto yy55; + } +yy316: + yyaccept = 31; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy317; + } +yy317: +#line 363 "src/parser.re" + { NEWTOKEN(PSI_T_MIXED); goto start; } +#line 4568 "src/parser.c" +yy318: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case '_': goto yy324; - default: goto yy54; + case 'T': + case 't': goto yy371; + default: goto yy55; } -yy279: - yyaccept = 5; +yy319: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { + case 'L': + case 'l': goto yy373; + default: goto yy55; + } +yy320: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'A': + case 'a': goto yy375; + default: goto yy55; + } +yy321: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'A': + case 'a': goto yy376; + default: goto yy55; + } +yy322: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'S': + case 's': goto yy377; + default: goto yy55; + } +yy323: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'N': + case 'n': goto yy378; + default: goto yy55; + } +yy324: + yyaccept = 32; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': case 'T': - case 't': goto yy325; - default: goto yy54; + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy325; } -yy280: - yyaccept = 5; +yy325: +#line 368 "src/parser.re" + { NEWTOKEN(PSI_T_SHORT); goto start; } +#line 4690 "src/parser.c" +yy326: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'D': + case 'd': goto yy380; + default: goto yy55; + } +yy327: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'C': + case 'c': goto yy382; + default: goto yy55; + } +yy328: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'G': + case 'g': goto yy384; + default: goto yy55; + } +yy329: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'N': + case 'n': goto yy386; + default: goto yy55; + } +yy330: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'T': + case 't': goto yy388; + default: goto yy55; + } +yy331: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'L': + case 'l': goto yy390; + default: goto yy55; + } +yy332: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'R': + case 'r': goto yy392; + default: goto yy55; + } +yy333: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'O': + case 'o': goto yy393; + default: goto yy55; + } +yy334: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'O': + case 'o': goto yy394; + default: goto yy55; + } +yy335: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'T': + case 't': goto yy395; + default: goto yy55; + } +yy336: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'J': + case 'j': goto yy397; + default: goto yy55; + } +yy337: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'R': + case 'r': goto yy398; + default: goto yy55; + } +yy338: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'E': + case 'e': goto yy399; + default: goto yy55; + } +yy339: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case '6': goto yy400; + default: goto yy55; + } +yy340: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case '2': goto yy401; + default: goto yy55; + } +yy341: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case '4': goto yy402; + default: goto yy55; + } +yy342: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case '_': goto yy403; + default: goto yy55; + } +yy343: + yyaccept = 33; yych = *(P->mrk = ++P->cur); switch (yych) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': case 'L': - case 'l': goto yy327; - default: goto yy54; + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy344; } -yy281: - yyaccept = 26; +yy344: +#line 357 "src/parser.re" + { NEWTOKEN(PSI_T_UNDEF); goto start; } +#line 4896 "src/parser.c" +yy345: + yyaccept = 34; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -3847,64 +4959,32 @@ yy281: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy282; - } -yy282: -#line 285 "src/parser.re" - {RETURN(PSI_T_MIXED);} -#line 3858 "src/parser.c" -yy283: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'T': - case 't': goto yy329; - default: goto yy54; - } -yy284: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'L': - case 'l': goto yy331; - default: goto yy54; - } -yy285: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'A': - case 'a': goto yy333; - default: goto yy54; - } -yy286: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'A': - case 'a': goto yy334; - default: goto yy54; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy346; } -yy287: - yyaccept = 5; +yy346: +#line 391 "src/parser.re" + { NEWTOKEN(PSI_T_UNION); goto start; } +#line 4970 "src/parser.c" +yy347: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case 'S': - case 's': goto yy335; - default: goto yy54; + case 'N': + case 'n': goto yy404; + default: goto yy55; } -yy288: - yyaccept = 5; +yy348: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'N': - case 'n': goto yy336; - default: goto yy54; + case 'n': goto yy405; + default: goto yy55; } -yy289: - yyaccept = 27; +yy349: + yyaccept = 35; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -3969,148 +5049,40 @@ yy289: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy290; - } -yy290: -#line 290 "src/parser.re" - {RETURN(PSI_T_SHORT);} -#line 3980 "src/parser.c" -yy291: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'D': - case 'd': goto yy338; - default: goto yy54; - } -yy292: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'C': - case 'c': goto yy340; - default: goto yy54; - } -yy293: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'G': - case 'g': goto yy342; - default: goto yy54; - } -yy294: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'N': - case 'n': goto yy344; - default: goto yy54; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy350; } -yy295: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'T': - case 't': goto yy346; - default: goto yy54; - } -yy296: - yyaccept = 5; +yy350: +#line 408 "src/parser.re" + { NEWTOKEN(PSI_T_ARRVAL); goto start; } +#line 5060 "src/parser.c" +yy351: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'L': - case 'l': goto yy348; - default: goto yy54; - } -yy297: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'R': - case 'r': goto yy350; - default: goto yy54; - } -yy298: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'O': - case 'o': goto yy351; - default: goto yy54; - } -yy299: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'O': - case 'o': goto yy352; - default: goto yy54; - } -yy300: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'T': - case 't': goto yy353; - default: goto yy54; - } -yy301: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'J': - case 'j': goto yy355; - default: goto yy54; - } -yy302: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'R': - case 'r': goto yy356; - default: goto yy54; - } -yy303: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'E': - case 'e': goto yy357; - default: goto yy54; - } -yy304: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case '6': goto yy358; - default: goto yy54; - } -yy305: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case '2': goto yy359; - default: goto yy54; + case 'l': goto yy406; + default: goto yy55; } -yy306: - yyaccept = 5; +yy352: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case '4': goto yy360; - default: goto yy54; + case 'L': + case 'l': goto yy408; + default: goto yy55; } -yy307: - yyaccept = 5; +yy353: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case '_': goto yy361; - default: goto yy54; + case 'C': + case 'c': goto yy409; + default: goto yy55; } -yy308: - yyaccept = 28; +yy354: + yyaccept = 36; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -4175,24 +5147,16 @@ yy308: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy309; - } -yy309: -#line 313 "src/parser.re" - {RETURN(PSI_T_UNION);} -#line 4186 "src/parser.c" -yy310: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'N': - case 'n': goto yy362; - default: goto yy54; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy355; } -yy311: - yyaccept = 29; +yy355: +#line 412 "src/parser.re" + { NEWTOKEN(PSI_T_CALLOC); goto start; } +#line 5158 "src/parser.c" +yy356: + yyaccept = 37; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -4208,7 +5172,6 @@ yy311: case 'A': case 'B': case 'C': - case 'D': case 'E': case 'F': case 'G': @@ -4235,7 +5198,6 @@ yy311: case 'a': case 'b': case 'c': - case 'd': case 'e': case 'f': case 'g': @@ -4257,40 +5219,18 @@ yy311: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy312; - } -yy312: -#line 330 "src/parser.re" - {RETURN(PSI_T_ARRVAL);} -#line 4268 "src/parser.c" -yy313: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'L': - case 'l': goto yy363; - default: goto yy54; - } -yy314: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'L': - case 'l': goto yy365; - default: goto yy54; - } -yy315: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'C': - case 'c': goto yy366; - default: goto yy54; + case 'z': goto yy54; + case 'D': + case 'd': goto yy410; + case '\\': goto yy115; + default: goto yy357; } -yy316: - yyaccept = 30; +yy357: +#line 355 "src/parser.re" + { NEWTOKEN(PSI_T_DEFINE); goto start; } +#line 5232 "src/parser.c" +yy358: + yyaccept = 38; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -4355,16 +5295,32 @@ yy316: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy317; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy359; } -yy317: -#line 334 "src/parser.re" - {RETURN(PSI_T_CALLOC);} -#line 4366 "src/parser.c" -yy318: - yyaccept = 31; +yy359: +#line 372 "src/parser.re" + { NEWTOKEN(PSI_T_DOUBLE); goto start; } +#line 5306 "src/parser.c" +yy360: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'A': + case 'a': goto yy412; + default: goto yy55; + } +yy361: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'O': + case 'o': goto yy413; + default: goto yy55; + } +yy362: + yyaccept = 39; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -4429,56 +5385,40 @@ yy318: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy319; - } -yy319: -#line 294 "src/parser.re" - {RETURN(PSI_T_DOUBLE);} -#line 4440 "src/parser.c" -yy320: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'A': - case 'a': goto yy367; - default: goto yy54; - } -yy321: - yyaccept = 5; - yych = *(P->mrk = ++P->cur); - switch (yych) { - case 'O': - case 'o': goto yy368; - default: goto yy54; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy363; } -yy322: - yyaccept = 5; +yy363: +#line 351 "src/parser.re" + { NEWTOKEN(PSI_T_IFNDEF); goto start; } +#line 5396 "src/parser.c" +yy364: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'T': - case 't': goto yy369; - default: goto yy54; + case 't': goto yy414; + default: goto yy55; } -yy323: - yyaccept = 5; +yy365: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'T': - case 't': goto yy371; - default: goto yy54; + case 't': goto yy416; + default: goto yy55; } -yy324: - yyaccept = 5; +yy366: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'T': - case 't': goto yy373; - default: goto yy54; + case 't': goto yy418; + default: goto yy55; } -yy325: - yyaccept = 32; +yy367: + yyaccept = 40; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -4543,16 +5483,16 @@ yy325: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy326; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy368; } -yy326: -#line 295 "src/parser.re" - {RETURN(PSI_T_INT8);} -#line 4554 "src/parser.c" -yy327: - yyaccept = 33; +yy368: +#line 373 "src/parser.re" + { NEWTOKEN(PSI_T_INT8); goto start; } +#line 5494 "src/parser.c" +yy369: + yyaccept = 41; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -4617,16 +5557,16 @@ yy327: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy328; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy370; } -yy328: -#line 327 "src/parser.re" - {RETURN(PSI_T_INTVAL);} -#line 4628 "src/parser.c" -yy329: - yyaccept = 34; +yy370: +#line 405 "src/parser.re" + { NEWTOKEN(PSI_T_INTVAL); goto start; } +#line 5568 "src/parser.c" +yy371: + yyaccept = 42; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -4691,16 +5631,16 @@ yy329: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy330; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy372; } -yy330: -#line 307 "src/parser.re" - {RETURN(PSI_T_OBJECT);} -#line 4702 "src/parser.c" -yy331: - yyaccept = 35; +yy372: +#line 385 "src/parser.re" + { NEWTOKEN(PSI_T_OBJECT); goto start; } +#line 5642 "src/parser.c" +yy373: + yyaccept = 43; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -4765,40 +5705,40 @@ yy331: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy332; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy374; } -yy332: -#line 331 "src/parser.re" - {RETURN(PSI_T_OBJVAL);} -#line 4776 "src/parser.c" -yy333: - yyaccept = 5; +yy374: +#line 409 "src/parser.re" + { NEWTOKEN(PSI_T_OBJVAL); goto start; } +#line 5716 "src/parser.c" +yy375: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'L': - case 'l': goto yy375; - default: goto yy54; + case 'l': goto yy420; + default: goto yy55; } -yy334: - yyaccept = 5; +yy376: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'S': - case 's': goto yy377; - default: goto yy54; + case 's': goto yy422; + default: goto yy55; } -yy335: - yyaccept = 5; +yy377: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'S': - case 's': goto yy378; - default: goto yy54; + case 's': goto yy423; + default: goto yy55; } -yy336: - yyaccept = 36; +yy378: + yyaccept = 44; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -4863,16 +5803,16 @@ yy336: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy337; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy379; } -yy337: -#line 321 "src/parser.re" - {RETURN(PSI_T_RETURN);} -#line 4874 "src/parser.c" -yy338: - yyaccept = 37; +yy379: +#line 399 "src/parser.re" + { NEWTOKEN(PSI_T_RETURN); goto start; } +#line 5814 "src/parser.c" +yy380: + yyaccept = 45; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -4937,16 +5877,16 @@ yy338: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy339; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy381; } -yy339: -#line 304 "src/parser.re" - {RETURN(PSI_T_SIGNED);} -#line 4948 "src/parser.c" -yy340: - yyaccept = 38; +yy381: +#line 382 "src/parser.re" + { NEWTOKEN(PSI_T_SIGNED); goto start; } +#line 5888 "src/parser.c" +yy382: + yyaccept = 46; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -5011,16 +5951,16 @@ yy340: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy341; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy383; } -yy341: -#line 309 "src/parser.re" - {RETURN(PSI_T_STATIC);} -#line 5022 "src/parser.c" -yy342: - yyaccept = 39; +yy383: +#line 387 "src/parser.re" + { NEWTOKEN(PSI_T_STATIC); goto start; } +#line 5962 "src/parser.c" +yy384: + yyaccept = 47; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -5085,16 +6025,16 @@ yy342: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy343; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy385; } -yy343: -#line 305 "src/parser.re" - {RETURN(PSI_T_STRING);} -#line 5096 "src/parser.c" -yy344: - yyaccept = 40; +yy385: +#line 383 "src/parser.re" + { NEWTOKEN(PSI_T_STRING); goto start; } +#line 6036 "src/parser.c" +yy386: + yyaccept = 48; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -5159,16 +6099,16 @@ yy344: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy345; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy387; } -yy345: -#line 324 "src/parser.re" - {RETURN(PSI_T_STRLEN);} -#line 5170 "src/parser.c" -yy346: - yyaccept = 41; +yy387: +#line 402 "src/parser.re" + { NEWTOKEN(PSI_T_STRLEN); goto start; } +#line 6110 "src/parser.c" +yy388: + yyaccept = 49; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -5233,16 +6173,16 @@ yy346: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy347; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy389; } -yy347: -#line 312 "src/parser.re" - {RETURN(PSI_T_STRUCT);} -#line 5244 "src/parser.c" -yy348: - yyaccept = 42; +yy389: +#line 390 "src/parser.re" + { NEWTOKEN(PSI_T_STRUCT); goto start; } +#line 6184 "src/parser.c" +yy390: + yyaccept = 50; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -5307,40 +6247,40 @@ yy348: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy349; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy391; } -yy349: -#line 325 "src/parser.re" - {RETURN(PSI_T_STRVAL);} -#line 5318 "src/parser.c" -yy350: - yyaccept = 5; +yy391: +#line 403 "src/parser.re" + { NEWTOKEN(PSI_T_STRVAL); goto start; } +#line 6258 "src/parser.c" +yy392: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'A': - case 'a': goto yy379; - default: goto yy54; + case 'a': goto yy424; + default: goto yy55; } -yy351: - yyaccept = 5; +yy393: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'L': - case 'l': goto yy380; - default: goto yy54; + case 'l': goto yy425; + default: goto yy55; } -yy352: - yyaccept = 5; +yy394: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'A': - case 'a': goto yy382; - default: goto yy54; + case 'a': goto yy427; + default: goto yy55; } -yy353: - yyaccept = 43; +yy395: + yyaccept = 51; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -5405,77 +6345,85 @@ yy353: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy354; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy396; } -yy354: -#line 338 "src/parser.re" - {RETURN(PSI_T_TO_INT);} -#line 5416 "src/parser.c" -yy355: - yyaccept = 5; +yy396: +#line 416 "src/parser.re" + { NEWTOKEN(PSI_T_TO_INT); goto start; } +#line 6356 "src/parser.c" +yy397: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'E': - case 'e': goto yy383; - default: goto yy54; + case 'e': goto yy428; + default: goto yy55; } -yy356: - yyaccept = 5; +yy398: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'I': - case 'i': goto yy384; - default: goto yy54; + case 'i': goto yy429; + default: goto yy55; } -yy357: - yyaccept = 5; +yy399: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'F': - case 'f': goto yy385; - default: goto yy54; + case 'f': goto yy430; + default: goto yy55; } -yy358: - yyaccept = 5; +yy400: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case '_': goto yy387; - default: goto yy54; + case '_': goto yy432; + default: goto yy55; } -yy359: - yyaccept = 5; +yy401: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case '_': goto yy388; - default: goto yy54; + case '_': goto yy433; + default: goto yy55; } -yy360: - yyaccept = 5; +yy402: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { - case '_': goto yy389; - default: goto yy54; + case '_': goto yy434; + default: goto yy55; } -yy361: - yyaccept = 5; +yy403: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'T': - case 't': goto yy390; - default: goto yy54; + case 't': goto yy435; + default: goto yy55; } -yy362: - yyaccept = 5; +yy404: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'E': - case 'e': goto yy392; - default: goto yy54; + case 'e': goto yy437; + default: goto yy55; } -yy363: - yyaccept = 44; +yy405: + yyaccept = 4; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case 'G': + case 'g': goto yy438; + default: goto yy55; + } +yy406: + yyaccept = 52; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -5540,48 +6488,122 @@ yy363: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy364; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy407; } -yy364: -#line 329 "src/parser.re" - {RETURN(PSI_T_BOOLVAL);} -#line 5551 "src/parser.c" -yy365: - yyaccept = 5; +yy407: +#line 407 "src/parser.re" + { NEWTOKEN(PSI_T_BOOLVAL); goto start; } +#line 6499 "src/parser.c" +yy408: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'E': - case 'e': goto yy393; - default: goto yy54; + case 'e': goto yy440; + default: goto yy55; } -yy366: - yyaccept = 5; +yy409: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'K': - case 'k': goto yy395; - default: goto yy54; + case 'k': goto yy442; + default: goto yy55; } -yy367: - yyaccept = 5; +yy410: + yyaccept = 53; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy411; + } +yy411: +#line 356 "src/parser.re" + { NEWTOKEN(PSI_T_DEFINED); goto start; } +#line 6589 "src/parser.c" +yy412: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'L': - case 'l': goto yy397; - default: goto yy54; + case 'l': goto yy444; + default: goto yy55; } -yy368: - yyaccept = 5; +yy413: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'N': - case 'n': goto yy399; - default: goto yy54; + case 'n': goto yy446; + default: goto yy55; } -yy369: - yyaccept = 45; +yy414: + yyaccept = 54; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -5646,16 +6668,16 @@ yy369: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy370; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy415; } -yy370: -#line 297 "src/parser.re" - {RETURN(PSI_T_INT16);} -#line 5657 "src/parser.c" -yy371: - yyaccept = 46; +yy415: +#line 375 "src/parser.re" + { NEWTOKEN(PSI_T_INT16); goto start; } +#line 6679 "src/parser.c" +yy416: + yyaccept = 55; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -5720,16 +6742,16 @@ yy371: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy372; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy417; } -yy372: -#line 299 "src/parser.re" - {RETURN(PSI_T_INT32);} -#line 5731 "src/parser.c" -yy373: - yyaccept = 47; +yy417: +#line 377 "src/parser.re" + { NEWTOKEN(PSI_T_INT32); goto start; } +#line 6753 "src/parser.c" +yy418: + yyaccept = 56; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -5794,16 +6816,16 @@ yy373: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy374; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy419; } -yy374: -#line 301 "src/parser.re" - {RETURN(PSI_T_INT64);} -#line 5805 "src/parser.c" -yy375: - yyaccept = 48; +yy419: +#line 379 "src/parser.re" + { NEWTOKEN(PSI_T_INT64); goto start; } +#line 6827 "src/parser.c" +yy420: + yyaccept = 57; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -5868,40 +6890,40 @@ yy375: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy376; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy421; } -yy376: -#line 326 "src/parser.re" - {RETURN(PSI_T_PATHVAL);} -#line 5879 "src/parser.c" -yy377: - yyaccept = 5; +yy421: +#line 404 "src/parser.re" + { NEWTOKEN(PSI_T_PATHVAL); goto start; } +#line 6901 "src/parser.c" +yy422: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'S': - case 's': goto yy401; - default: goto yy54; + case 's': goto yy448; + default: goto yy55; } -yy378: - yyaccept = 5; +yy423: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'E': - case 'e': goto yy402; - default: goto yy54; + case 'e': goto yy449; + default: goto yy55; } -yy379: - yyaccept = 5; +yy424: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'Y': - case 'y': goto yy403; - default: goto yy54; + case 'y': goto yy450; + default: goto yy55; } -yy380: - yyaccept = 49; +yy425: + yyaccept = 58; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -5966,40 +6988,40 @@ yy380: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy381; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy426; } -yy381: -#line 340 "src/parser.re" - {RETURN(PSI_T_TO_BOOL);} -#line 5977 "src/parser.c" -yy382: - yyaccept = 5; +yy426: +#line 418 "src/parser.re" + { NEWTOKEN(PSI_T_TO_BOOL); goto start; } +#line 6999 "src/parser.c" +yy427: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'T': - case 't': goto yy405; - default: goto yy54; + case 't': goto yy452; + default: goto yy55; } -yy383: - yyaccept = 5; +yy428: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'C': - case 'c': goto yy407; - default: goto yy54; + case 'c': goto yy454; + default: goto yy55; } -yy384: - yyaccept = 5; +yy429: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'N': - case 'n': goto yy408; - default: goto yy54; + case 'n': goto yy455; + default: goto yy55; } -yy385: - yyaccept = 50; +yy430: + yyaccept = 59; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -6064,40 +7086,40 @@ yy385: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy386; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy431; } -yy386: -#line 311 "src/parser.re" - {RETURN(PSI_T_TYPEDEF);} -#line 6075 "src/parser.c" -yy387: - yyaccept = 5; +yy431: +#line 389 "src/parser.re" + { NEWTOKEN(PSI_T_TYPEDEF); goto start; } +#line 7097 "src/parser.c" +yy432: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'T': - case 't': goto yy409; - default: goto yy54; + case 't': goto yy456; + default: goto yy55; } -yy388: - yyaccept = 5; +yy433: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'T': - case 't': goto yy411; - default: goto yy54; + case 't': goto yy458; + default: goto yy55; } -yy389: - yyaccept = 5; +yy434: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'T': - case 't': goto yy413; - default: goto yy54; + case 't': goto yy460; + default: goto yy55; } -yy390: - yyaccept = 51; +yy435: + yyaccept = 60; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -6162,24 +7184,24 @@ yy390: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy391; - } -yy391: -#line 296 "src/parser.re" - {RETURN(PSI_T_UINT8);} -#line 6173 "src/parser.c" -yy392: - yyaccept = 5; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy436; + } +yy436: +#line 374 "src/parser.re" + { NEWTOKEN(PSI_T_UINT8); goto start; } +#line 7195 "src/parser.c" +yy437: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'D': - case 'd': goto yy415; - default: goto yy54; + case 'd': goto yy462; + default: goto yy55; } -yy393: - yyaccept = 52; +yy438: + yyaccept = 61; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -6244,16 +7266,16 @@ yy393: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy394; - } -yy394: -#line 286 "src/parser.re" - {RETURN(PSI_T_CALLABLE);} -#line 6255 "src/parser.c" -yy395: - yyaccept = 53; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy439; + } +yy439: +#line 358 "src/parser.re" + { NEWTOKEN(PSI_T_WARNING); goto start; } +#line 7277 "src/parser.c" +yy440: + yyaccept = 62; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -6318,16 +7340,16 @@ yy395: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy396; - } -yy396: -#line 308 "src/parser.re" - {RETURN(PSI_T_CALLBACK);} -#line 6329 "src/parser.c" -yy397: - yyaccept = 54; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy441; + } +yy441: +#line 364 "src/parser.re" + { NEWTOKEN(PSI_T_CALLABLE); goto start; } +#line 7351 "src/parser.c" +yy442: + yyaccept = 63; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -6392,16 +7414,16 @@ yy397: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy398; - } -yy398: -#line 328 "src/parser.re" - {RETURN(PSI_T_FLOATVAL);} -#line 6403 "src/parser.c" -yy399: - yyaccept = 55; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy443; + } +yy443: +#line 386 "src/parser.re" + { NEWTOKEN(PSI_T_CALLBACK); goto start; } +#line 7425 "src/parser.c" +yy444: + yyaccept = 64; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -6466,32 +7488,106 @@ yy399: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy400; - } -yy400: -#line 310 "src/parser.re" - {RETURN(PSI_T_FUNCTION);} -#line 6477 "src/parser.c" -yy401: - yyaccept = 5; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy445; + } +yy445: +#line 406 "src/parser.re" + { NEWTOKEN(PSI_T_FLOATVAL); goto start; } +#line 7499 "src/parser.c" +yy446: + yyaccept = 65; + yych = *(P->mrk = ++P->cur); + switch (yych) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'O': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Y': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'o': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'u': + case 'v': + case 'w': + case 'x': + case 'y': + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy447; + } +yy447: +#line 388 "src/parser.re" + { NEWTOKEN(PSI_T_FUNCTION); goto start; } +#line 7573 "src/parser.c" +yy448: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'E': - case 'e': goto yy417; - default: goto yy54; + case 'e': goto yy464; + default: goto yy55; } -yy402: - yyaccept = 5; +yy449: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'R': - case 'r': goto yy418; - default: goto yy54; + case 'r': goto yy465; + default: goto yy55; } -yy403: - yyaccept = 56; +yy450: + yyaccept = 66; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -6556,16 +7652,16 @@ yy403: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy404; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy451; } -yy404: -#line 336 "src/parser.re" - {RETURN(PSI_T_TO_ARRAY);} -#line 6567 "src/parser.c" -yy405: - yyaccept = 57; +yy451: +#line 414 "src/parser.re" + { NEWTOKEN(PSI_T_TO_ARRAY); goto start; } +#line 7663 "src/parser.c" +yy452: + yyaccept = 67; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -6630,32 +7726,32 @@ yy405: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy406; - } -yy406: -#line 339 "src/parser.re" - {RETURN(PSI_T_TO_FLOAT);} -#line 6641 "src/parser.c" -yy407: - yyaccept = 5; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy453; + } +yy453: +#line 417 "src/parser.re" + { NEWTOKEN(PSI_T_TO_FLOAT); goto start; } +#line 7737 "src/parser.c" +yy454: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'T': - case 't': goto yy419; - default: goto yy54; + case 't': goto yy466; + default: goto yy55; } -yy408: - yyaccept = 5; +yy455: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'G': - case 'g': goto yy421; - default: goto yy54; + case 'g': goto yy468; + default: goto yy55; } -yy409: - yyaccept = 58; +yy456: + yyaccept = 68; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -6720,16 +7816,16 @@ yy409: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy410; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy457; } -yy410: -#line 298 "src/parser.re" - {RETURN(PSI_T_UINT16);} -#line 6731 "src/parser.c" -yy411: - yyaccept = 59; +yy457: +#line 376 "src/parser.re" + { NEWTOKEN(PSI_T_UINT16); goto start; } +#line 7827 "src/parser.c" +yy458: + yyaccept = 69; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -6794,16 +7890,16 @@ yy411: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy412; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy459; } -yy412: -#line 300 "src/parser.re" - {RETURN(PSI_T_UINT32);} -#line 6805 "src/parser.c" -yy413: - yyaccept = 60; +yy459: +#line 378 "src/parser.re" + { NEWTOKEN(PSI_T_UINT32); goto start; } +#line 7901 "src/parser.c" +yy460: + yyaccept = 70; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -6868,16 +7964,16 @@ yy413: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy414; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy461; } -yy414: -#line 302 "src/parser.re" - {RETURN(PSI_T_UINT64);} -#line 6879 "src/parser.c" -yy415: - yyaccept = 61; +yy461: +#line 380 "src/parser.re" + { NEWTOKEN(PSI_T_UINT64); goto start; } +#line 7975 "src/parser.c" +yy462: + yyaccept = 71; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -6942,32 +8038,32 @@ yy415: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy416; - } -yy416: -#line 303 "src/parser.re" - {RETURN(PSI_T_UNSIGNED);} -#line 6953 "src/parser.c" -yy417: - yyaccept = 5; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy463; + } +yy463: +#line 381 "src/parser.re" + { NEWTOKEN(PSI_T_UNSIGNED); goto start; } +#line 8049 "src/parser.c" +yy464: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'R': - case 'r': goto yy423; - default: goto yy54; + case 'r': goto yy470; + default: goto yy55; } -yy418: - yyaccept = 5; +yy465: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'T': - case 't': goto yy424; - default: goto yy54; + case 't': goto yy471; + default: goto yy55; } -yy419: - yyaccept = 62; +yy466: + yyaccept = 72; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -7032,16 +8128,16 @@ yy419: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy420; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy467; } -yy420: -#line 335 "src/parser.re" - {RETURN(PSI_T_TO_OBJECT);} -#line 7043 "src/parser.c" -yy421: - yyaccept = 63; +yy467: +#line 413 "src/parser.re" + { NEWTOKEN(PSI_T_TO_OBJECT); goto start; } +#line 8139 "src/parser.c" +yy468: + yyaccept = 73; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -7106,24 +8202,24 @@ yy421: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy422; - } -yy422: -#line 337 "src/parser.re" - {RETURN(PSI_T_TO_STRING);} -#line 7117 "src/parser.c" -yy423: - yyaccept = 5; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy469; + } +yy469: +#line 415 "src/parser.re" + { NEWTOKEN(PSI_T_TO_STRING); goto start; } +#line 8213 "src/parser.c" +yy470: + yyaccept = 4; yych = *(P->mrk = ++P->cur); switch (yych) { case 'T': - case 't': goto yy426; - default: goto yy54; + case 't': goto yy473; + default: goto yy55; } -yy424: - yyaccept = 64; +yy471: + yyaccept = 74; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -7188,16 +8284,16 @@ yy424: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy425; + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy472; } -yy425: -#line 319 "src/parser.re" - {RETURN(PSI_T_PRE_ASSERT);} -#line 7199 "src/parser.c" -yy426: - yyaccept = 65; +yy472: +#line 397 "src/parser.re" + { NEWTOKEN(PSI_T_PRE_ASSERT); goto start; } +#line 8295 "src/parser.c" +yy473: + yyaccept = 75; yych = *(P->mrk = ++P->cur); switch (yych) { case '0': @@ -7262,56 +8358,85 @@ yy426: case 'w': case 'x': case 'y': - case 'z': goto yy53; - case '\\': goto yy114; - default: goto yy427; - } -yy427: -#line 320 "src/parser.re" - {RETURN(PSI_T_POST_ASSERT);} -#line 7273 "src/parser.c" + case 'z': goto yy54; + case '\\': goto yy115; + default: goto yy474; + } +yy474: +#line 398 "src/parser.re" + { NEWTOKEN(PSI_T_POST_ASSERT); goto start; } +#line 8369 "src/parser.c" } -#line 347 "src/parser.re" +#line 428 "src/parser.re" - comment: - P->tok = P->cur; + comment: ; -#line 7281 "src/parser.c" +#line 8376 "src/parser.c" { unsigned char yych; - if ((P->lim - P->cur) < 2) { if (!psi_parser_fill(P,2)) RETURN(PSI_T_EOF); }; + if ((P->lim - P->cur) < 2) if (P->cur >= P->lim) goto done;; yych = *P->cur; switch (yych) { - case '\n': goto yy432; - case '*': goto yy434; - default: goto yy430; + case '\n': + case '\r': goto yy479; + case '*': goto yy481; + default: goto yy477; } -yy430: +yy477: ++P->cur; -yy431: -#line 354 "src/parser.re" +yy478: +#line 435 "src/parser.re" { goto comment; } -#line 7296 "src/parser.c" -yy432: +#line 8392 "src/parser.c" +yy479: ++P->cur; -#line 352 "src/parser.re" - { NEWLINE(comment); } -#line 7301 "src/parser.c" -yy434: +#line 433 "src/parser.re" + { NEWLINE(); goto comment; } +#line 8397 "src/parser.c" +yy481: yych = *++P->cur; switch (yych) { - case '/': goto yy435; - default: goto yy431; + case '/': goto yy482; + default: goto yy478; } -yy435: +yy482: ++P->cur; -#line 353 "src/parser.re" - { continue; } -#line 7312 "src/parser.c" +#line 434 "src/parser.re" + { NEWTOKEN(PSI_T_COMMENT); goto start; } +#line 8408 "src/parser.c" } -#line 355 "src/parser.re" +#line 437 "src/parser.re" - } - return -1; + + comment_sl: ; + +#line 8415 "src/parser.c" + { + unsigned char yych; + if (P->lim <= P->cur) if (P->cur >= P->lim) goto done;; + yych = *P->cur; + switch (yych) { + case '\n': + case '\r': goto yy488; + default: goto yy486; + } +yy486: + ++P->cur; +#line 443 "src/parser.re" + { goto comment_sl; } +#line 8429 "src/parser.c" +yy488: + ++P->cur; +#line 442 "src/parser.re" + { NEWTOKEN(PSI_T_COMMENT); NEWLINE(); goto start; } +#line 8434 "src/parser.c" + } +#line 445 "src/parser.re" + +error: + psi_plist_free(tokens); + return NULL; +done: + return tokens; }