cpp: avoid errenous multiple expansions
[m6w6/ext-psi] / src / parser.c
index 2b62a49f31fbef3466ddc8bd2c3ed55ce5e04ffa..f2d2473c53b42a6c74be4b37b49bd122fa91d104 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.16 on Tue Jul 25 12:21:22 2017 */
+/* Generated by re2c 0.16 on Thu Jul 27 10:44:33 2017 */
 #line 1 "src/parser.re"
 /*******************************************************************************
  Copyright (c) 2016, Michael Wallner <mike@php.net>.
 #line 1 "src/parser.re"
 /*******************************************************************************
  Copyright (c) 2016, Michael Wallner <mike@php.net>.
@@ -265,6 +265,8 @@ struct psi_plist *psi_parser_scan(struct psi_parser *P, struct psi_parser_input
        bool escaped;
        token_t char_width;
 
        bool escaped;
        token_t char_width;
 
+       PSI_DEBUG_PRINT(P, "PSI: scanning %s\n", I->file);
+
        tok = mrk = eol = cur = I->buffer;
        lim = I->buffer + I->length;
        I->lines = 1;
        tok = mrk = eol = cur = I->buffer;
        lim = I->buffer + I->length;
        I->lines = 1;
@@ -276,7 +278,7 @@ struct psi_plist *psi_parser_scan(struct psi_parser *P, struct psi_parser_input
                tok = cur;
 
                
                tok = cur;
 
                
-#line 280 "src/parser.c"
+#line 282 "src/parser.c"
                {
                        unsigned char yych;
                        unsigned int yyaccept = 0;
                {
                        unsigned char yych;
                        unsigned int yyaccept = 0;
@@ -402,9 +404,9 @@ struct psi_plist *psi_parser_scan(struct psi_parser *P, struct psi_parser_input
 yy2:
                        ++cur;
 yy3:
 yy2:
                        ++cur;
 yy3:
-#line 450 "src/parser.re"
+#line 452 "src/parser.re"
                        { NEWTOKEN(-2); goto error; }
                        { NEWTOKEN(-2); goto error; }
-#line 408 "src/parser.c"
+#line 410 "src/parser.c"
 yy4:
                        ++cur;
                        if (lim <= cur) if (cur >= lim) goto done;;
 yy4:
                        ++cur;
                        if (lim <= cur) if (cur >= lim) goto done;;
@@ -416,14 +418,14 @@ yy4:
                        default:        goto yy6;
                        }
 yy6:
                        default:        goto yy6;
                        }
 yy6:
-#line 449 "src/parser.re"
+#line 451 "src/parser.re"
                        { NEWTOKEN(PSI_T_WHITESPACE); goto start; }
                        { NEWTOKEN(PSI_T_WHITESPACE); goto start; }
-#line 422 "src/parser.c"
+#line 424 "src/parser.c"
 yy7:
                        ++cur;
 yy7:
                        ++cur;
-#line 448 "src/parser.re"
+#line 450 "src/parser.re"
                        { NEWTOKEN(PSI_T_EOL); NEWLINE(); goto start; }
                        { NEWTOKEN(PSI_T_EOL); NEWLINE(); goto start; }
-#line 427 "src/parser.c"
+#line 429 "src/parser.c"
 yy9:
                        ++cur;
                        switch ((yych = *cur)) {
 yy9:
                        ++cur;
                        switch ((yych = *cur)) {
@@ -431,14 +433,14 @@ yy9:
                        default:        goto yy10;
                        }
 yy10:
                        default:        goto yy10;
                        }
 yy10:
-#line 347 "src/parser.re"
+#line 349 "src/parser.re"
                        { NEWTOKEN(PSI_T_NOT); goto start; }
                        { NEWTOKEN(PSI_T_NOT); goto start; }
-#line 437 "src/parser.c"
+#line 439 "src/parser.c"
 yy11:
                        ++cur;
 yy11:
                        ++cur;
-#line 320 "src/parser.re"
+#line 322 "src/parser.re"
                        { escaped = false; tok += 1; goto string; }
                        { escaped = false; tok += 1; goto string; }
-#line 442 "src/parser.c"
+#line 444 "src/parser.c"
 yy13:
                        ++cur;
                        switch ((yych = *cur)) {
 yy13:
                        ++cur;
                        switch ((yych = *cur)) {
@@ -446,9 +448,9 @@ yy13:
                        default:        goto yy14;
                        }
 yy14:
                        default:        goto yy14;
                        }
 yy14:
-#line 330 "src/parser.re"
+#line 332 "src/parser.re"
                        { NEWTOKEN(PSI_T_HASH); goto start; }
                        { NEWTOKEN(PSI_T_HASH); goto start; }
-#line 452 "src/parser.c"
+#line 454 "src/parser.c"
 yy15:
                        yych = *++cur;
                        switch (yych) {
 yy15:
                        yych = *++cur;
                        switch (yych) {
@@ -521,9 +523,9 @@ yy15:
                        }
 yy16:
                        ++cur;
                        }
 yy16:
                        ++cur;
-#line 348 "src/parser.re"
+#line 350 "src/parser.re"
                        { NEWTOKEN(PSI_T_MODULO); goto start; }
                        { NEWTOKEN(PSI_T_MODULO); goto start; }
-#line 527 "src/parser.c"
+#line 529 "src/parser.c"
 yy18:
                        ++cur;
                        switch ((yych = *cur)) {
 yy18:
                        ++cur;
                        switch ((yych = *cur)) {
@@ -531,29 +533,29 @@ yy18:
                        default:        goto yy19;
                        }
 yy19:
                        default:        goto yy19;
                        }
 yy19:
-#line 349 "src/parser.re"
+#line 351 "src/parser.re"
                        { NEWTOKEN(PSI_T_AMPERSAND); goto start; }
                        { NEWTOKEN(PSI_T_AMPERSAND); goto start; }
-#line 537 "src/parser.c"
+#line 539 "src/parser.c"
 yy20:
                        ++cur;
 yy20:
                        ++cur;
-#line 319 "src/parser.re"
+#line 321 "src/parser.re"
                        { escaped = false; tok += 1; goto character; }
                        { escaped = false; tok += 1; goto character; }
-#line 542 "src/parser.c"
+#line 544 "src/parser.c"
 yy22:
                        ++cur;
 yy22:
                        ++cur;
-#line 331 "src/parser.re"
+#line 333 "src/parser.re"
                        { NEWTOKEN(PSI_T_LPAREN); goto start; }
                        { NEWTOKEN(PSI_T_LPAREN); goto start; }
-#line 547 "src/parser.c"
+#line 549 "src/parser.c"
 yy24:
                        ++cur;
 yy24:
                        ++cur;
-#line 332 "src/parser.re"
+#line 334 "src/parser.re"
                        { NEWTOKEN(PSI_T_RPAREN); goto start; }
                        { NEWTOKEN(PSI_T_RPAREN); goto start; }
-#line 552 "src/parser.c"
+#line 554 "src/parser.c"
 yy26:
                        ++cur;
 yy26:
                        ++cur;
-#line 345 "src/parser.re"
+#line 347 "src/parser.re"
                        { NEWTOKEN(PSI_T_ASTERISK); goto start; }
                        { NEWTOKEN(PSI_T_ASTERISK); goto start; }
-#line 557 "src/parser.c"
+#line 559 "src/parser.c"
 yy28:
                        yyaccept = 0;
                        yych = *(mrk = ++cur);
 yy28:
                        yyaccept = 0;
                        yych = *(mrk = ++cur);
@@ -572,14 +574,14 @@ yy28:
                        default:        goto yy29;
                        }
 yy29:
                        default:        goto yy29;
                        }
 yy29:
-#line 350 "src/parser.re"
+#line 352 "src/parser.re"
                        { NEWTOKEN(PSI_T_PLUS); goto start; }
                        { NEWTOKEN(PSI_T_PLUS); goto start; }
-#line 578 "src/parser.c"
+#line 580 "src/parser.c"
 yy30:
                        ++cur;
 yy30:
                        ++cur;
-#line 334 "src/parser.re"
+#line 336 "src/parser.re"
                        { NEWTOKEN(PSI_T_COMMA); goto start; }
                        { NEWTOKEN(PSI_T_COMMA); goto start; }
-#line 583 "src/parser.c"
+#line 585 "src/parser.c"
 yy32:
                        yyaccept = 1;
                        yych = *(mrk = ++cur);
 yy32:
                        yyaccept = 1;
                        yych = *(mrk = ++cur);
@@ -598,9 +600,9 @@ yy32:
                        default:        goto yy33;
                        }
 yy33:
                        default:        goto yy33;
                        }
 yy33:
-#line 351 "src/parser.re"
+#line 353 "src/parser.re"
                        { NEWTOKEN(PSI_T_MINUS); goto start; }
                        { NEWTOKEN(PSI_T_MINUS); goto start; }
-#line 604 "src/parser.c"
+#line 606 "src/parser.c"
 yy34:
                        yyaccept = 2;
                        yych = *(mrk = ++cur);
 yy34:
                        yyaccept = 2;
                        yych = *(mrk = ++cur);
@@ -619,9 +621,9 @@ yy34:
                        default:        goto yy35;
                        }
 yy35:
                        default:        goto yy35;
                        }
 yy35:
-#line 362 "src/parser.re"
+#line 364 "src/parser.re"
                        { NEWTOKEN(PSI_T_PERIOD); goto start; }
                        { NEWTOKEN(PSI_T_PERIOD); goto start; }
-#line 625 "src/parser.c"
+#line 627 "src/parser.c"
 yy36:
                        ++cur;
                        switch ((yych = *cur)) {
 yy36:
                        ++cur;
                        switch ((yych = *cur)) {
@@ -630,9 +632,9 @@ yy36:
                        default:        goto yy37;
                        }
 yy37:
                        default:        goto yy37;
                        }
 yy37:
-#line 352 "src/parser.re"
+#line 354 "src/parser.re"
                        { NEWTOKEN(PSI_T_SLASH); goto start; }
                        { NEWTOKEN(PSI_T_SLASH); goto start; }
-#line 636 "src/parser.c"
+#line 638 "src/parser.c"
 yy38:
                        yyaccept = 3;
                        yych = *(mrk = ++cur);
 yy38:
                        yyaccept = 3;
                        yych = *(mrk = ++cur);
@@ -658,9 +660,9 @@ yy38:
                        default:        goto yy39;
                        }
 yy39:
                        default:        goto yy39;
                        }
 yy39:
-#line 306 "src/parser.re"
+#line 308 "src/parser.re"
                        { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT; goto start; }
                        { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT; goto start; }
-#line 664 "src/parser.c"
+#line 666 "src/parser.c"
 yy40:
                        yyaccept = 3;
                        mrk = ++cur;
 yy40:
                        yyaccept = 3;
                        mrk = ++cur;
@@ -689,14 +691,14 @@ yy40:
                        }
 yy42:
                        ++cur;
                        }
 yy42:
                        ++cur;
-#line 335 "src/parser.re"
+#line 337 "src/parser.re"
                        { NEWTOKEN(PSI_T_COLON); goto start; }
                        { NEWTOKEN(PSI_T_COLON); goto start; }
-#line 695 "src/parser.c"
+#line 697 "src/parser.c"
 yy44:
                        ++cur;
 yy44:
                        ++cur;
-#line 333 "src/parser.re"
+#line 335 "src/parser.re"
                        { NEWTOKEN(PSI_T_EOS); goto start; }
                        { NEWTOKEN(PSI_T_EOS); goto start; }
-#line 700 "src/parser.c"
+#line 702 "src/parser.c"
 yy46:
                        yyaccept = 4;
                        yych = *(mrk = ++cur);
 yy46:
                        yyaccept = 4;
                        yych = *(mrk = ++cur);
@@ -772,9 +774,9 @@ yy46:
                        default:        goto yy47;
                        }
 yy47:
                        default:        goto yy47;
                        }
 yy47:
-#line 360 "src/parser.re"
+#line 362 "src/parser.re"
                        { NEWTOKEN(PSI_T_LCHEVR); goto start; }
                        { NEWTOKEN(PSI_T_LCHEVR); goto start; }
-#line 778 "src/parser.c"
+#line 780 "src/parser.c"
 yy48:
                        ++cur;
                        switch ((yych = *cur)) {
 yy48:
                        ++cur;
                        switch ((yych = *cur)) {
@@ -782,9 +784,9 @@ yy48:
                        default:        goto yy49;
                        }
 yy49:
                        default:        goto yy49;
                        }
 yy49:
-#line 344 "src/parser.re"
+#line 346 "src/parser.re"
                        { NEWTOKEN(PSI_T_EQUALS); goto start; }
                        { NEWTOKEN(PSI_T_EQUALS); goto start; }
-#line 788 "src/parser.c"
+#line 790 "src/parser.c"
 yy50:
                        ++cur;
                        switch ((yych = *cur)) {
 yy50:
                        ++cur;
                        switch ((yych = *cur)) {
@@ -793,14 +795,14 @@ yy50:
                        default:        goto yy51;
                        }
 yy51:
                        default:        goto yy51;
                        }
 yy51:
-#line 361 "src/parser.re"
+#line 363 "src/parser.re"
                        { NEWTOKEN(PSI_T_RCHEVR); goto start; }
                        { NEWTOKEN(PSI_T_RCHEVR); goto start; }
-#line 799 "src/parser.c"
+#line 801 "src/parser.c"
 yy52:
                        ++cur;
 yy52:
                        ++cur;
-#line 364 "src/parser.re"
+#line 366 "src/parser.re"
                        { NEWTOKEN(PSI_T_IIF); goto start; }
                        { NEWTOKEN(PSI_T_IIF); goto start; }
-#line 804 "src/parser.c"
+#line 806 "src/parser.c"
 yy54:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy54:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -810,9 +812,9 @@ yy54:
                        default:        goto yy62;
                        }
 yy55:
                        default:        goto yy62;
                        }
 yy55:
-#line 443 "src/parser.re"
+#line 445 "src/parser.re"
                        { NEWTOKEN(PSI_T_NAME); goto start; }
                        { NEWTOKEN(PSI_T_NAME); goto start; }
-#line 816 "src/parser.c"
+#line 818 "src/parser.c"
 yy56:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy56:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -1079,9 +1081,9 @@ yy75:
                        }
 yy76:
                        ++cur;
                        }
 yy76:
                        ++cur;
-#line 338 "src/parser.re"
+#line 340 "src/parser.re"
                        { NEWTOKEN(PSI_T_LBRACKET); goto start; }
                        { NEWTOKEN(PSI_T_LBRACKET); goto start; }
-#line 1085 "src/parser.c"
+#line 1087 "src/parser.c"
 yy78:
                        ++cur;
                        switch ((yych = *cur)) {
 yy78:
                        ++cur;
                        switch ((yych = *cur)) {
@@ -1163,19 +1165,19 @@ yy78:
                        default:        goto yy182;
                        }
 yy79:
                        default:        goto yy182;
                        }
 yy79:
-#line 353 "src/parser.re"
+#line 355 "src/parser.re"
                        { NEWTOKEN(PSI_T_BSLASH); goto start; }
                        { NEWTOKEN(PSI_T_BSLASH); goto start; }
-#line 1169 "src/parser.c"
+#line 1171 "src/parser.c"
 yy80:
                        ++cur;
 yy80:
                        ++cur;
-#line 339 "src/parser.re"
+#line 341 "src/parser.re"
                        { NEWTOKEN(PSI_T_RBRACKET); goto start; }
                        { NEWTOKEN(PSI_T_RBRACKET); goto start; }
-#line 1174 "src/parser.c"
+#line 1176 "src/parser.c"
 yy82:
                        ++cur;
 yy82:
                        ++cur;
-#line 355 "src/parser.re"
+#line 357 "src/parser.re"
                        { NEWTOKEN(PSI_T_CARET); goto start; }
                        { NEWTOKEN(PSI_T_CARET); goto start; }
-#line 1179 "src/parser.c"
+#line 1181 "src/parser.c"
 yy84:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy84:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -1223,9 +1225,9 @@ yy87:
                        }
 yy88:
                        ++cur;
                        }
 yy88:
                        ++cur;
-#line 336 "src/parser.re"
+#line 338 "src/parser.re"
                        { NEWTOKEN(PSI_T_LBRACE); goto start; }
                        { NEWTOKEN(PSI_T_LBRACE); goto start; }
-#line 1229 "src/parser.c"
+#line 1231 "src/parser.c"
 yy90:
                        ++cur;
                        switch ((yych = *cur)) {
 yy90:
                        ++cur;
                        switch ((yych = *cur)) {
@@ -1233,29 +1235,29 @@ yy90:
                        default:        goto yy91;
                        }
 yy91:
                        default:        goto yy91;
                        }
 yy91:
-#line 354 "src/parser.re"
+#line 356 "src/parser.re"
                        { NEWTOKEN(PSI_T_PIPE); goto start; }
                        { NEWTOKEN(PSI_T_PIPE); goto start; }
-#line 1239 "src/parser.c"
+#line 1241 "src/parser.c"
 yy92:
                        ++cur;
 yy92:
                        ++cur;
-#line 337 "src/parser.re"
+#line 339 "src/parser.re"
                        { NEWTOKEN(PSI_T_RBRACE); goto start; }
                        { NEWTOKEN(PSI_T_RBRACE); goto start; }
-#line 1244 "src/parser.c"
+#line 1246 "src/parser.c"
 yy94:
                        ++cur;
 yy94:
                        ++cur;
-#line 346 "src/parser.re"
+#line 348 "src/parser.re"
                        { NEWTOKEN(PSI_T_TILDE); goto start; }
                        { NEWTOKEN(PSI_T_TILDE); goto start; }
-#line 1249 "src/parser.c"
+#line 1251 "src/parser.c"
 yy96:
                        ++cur;
 yy96:
                        ++cur;
-#line 340 "src/parser.re"
+#line 342 "src/parser.re"
                        { NEWTOKEN(PSI_T_CMP_NE); goto start; }
                        { NEWTOKEN(PSI_T_CMP_NE); goto start; }
-#line 1254 "src/parser.c"
+#line 1256 "src/parser.c"
 yy98:
                        ++cur;
 yy98:
                        ++cur;
-#line 329 "src/parser.re"
+#line 331 "src/parser.re"
                        { NEWTOKEN(PSI_T_CPP_PASTE); goto start; }
                        { NEWTOKEN(PSI_T_CPP_PASTE); goto start; }
-#line 1259 "src/parser.c"
+#line 1261 "src/parser.c"
 yy100:
                        ++cur;
                        if (lim <= cur) if (cur >= lim) goto done;;
 yy100:
                        ++cur;
                        if (lim <= cur) if (cur >= lim) goto done;;
@@ -1329,14 +1331,14 @@ yy100:
                        default:        goto yy100;
                        }
 yy102:
                        default:        goto yy100;
                        }
 yy102:
-#line 445 "src/parser.re"
+#line 447 "src/parser.re"
                        { NEWTOKEN(PSI_T_DOLLAR_NAME); goto start; }
                        { NEWTOKEN(PSI_T_DOLLAR_NAME); goto start; }
-#line 1335 "src/parser.c"
+#line 1337 "src/parser.c"
 yy103:
                        ++cur;
 yy103:
                        ++cur;
-#line 342 "src/parser.re"
+#line 344 "src/parser.re"
                        { NEWTOKEN(PSI_T_AND); goto start; }
                        { NEWTOKEN(PSI_T_AND); goto start; }
-#line 1340 "src/parser.c"
+#line 1342 "src/parser.c"
 yy105:
                        yych = *++cur;
                        switch (yych) {
 yy105:
                        yych = *++cur;
                        switch (yych) {
@@ -1475,19 +1477,19 @@ yy108:
                        default:        goto yy110;
                        }
 yy110:
                        default:        goto yy110;
                        }
 yy110:
-#line 312 "src/parser.re"
+#line 314 "src/parser.re"
                        { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT; goto start; }
                        { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT; goto start; }
-#line 1481 "src/parser.c"
+#line 1483 "src/parser.c"
 yy111:
                        ++cur;
 yy111:
                        ++cur;
-#line 326 "src/parser.re"
+#line 328 "src/parser.re"
                        { goto comment; }
                        { goto comment; }
-#line 1486 "src/parser.c"
+#line 1488 "src/parser.c"
 yy113:
                        ++cur;
 yy113:
                        ++cur;
-#line 327 "src/parser.re"
+#line 329 "src/parser.re"
                        { goto comment_sl; }
                        { goto comment_sl; }
-#line 1491 "src/parser.c"
+#line 1493 "src/parser.c"
 yy115:
                        yyaccept = 6;
                        mrk = ++cur;
 yy115:
                        yyaccept = 6;
                        mrk = ++cur;
@@ -1564,9 +1566,9 @@ yy120:
                        }
 yy121:
                        cur = ctxmrk;
                        }
 yy121:
                        cur = ctxmrk;
-#line 308 "src/parser.re"
+#line 310 "src/parser.re"
                        { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_L; cur += 1; goto start; }
                        { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_L; cur += 1; goto start; }
-#line 1570 "src/parser.c"
+#line 1572 "src/parser.c"
 yy122:
                        ++cur;
                        switch ((yych = *cur)) {
 yy122:
                        ++cur;
                        switch ((yych = *cur)) {
@@ -1576,9 +1578,9 @@ yy122:
                        }
 yy123:
                        cur = ctxmrk;
                        }
 yy123:
                        cur = ctxmrk;
-#line 307 "src/parser.re"
+#line 309 "src/parser.re"
                        { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_U; cur += 1; goto start; }
                        { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_U; cur += 1; goto start; }
-#line 1582 "src/parser.c"
+#line 1584 "src/parser.c"
 yy124:
                        yych = *++cur;
                        switch (yych) {
 yy124:
                        yych = *++cur;
                        switch (yych) {
@@ -1682,29 +1684,29 @@ yy125:
                        }
 yy127:
                        ++cur;
                        }
 yy127:
                        ++cur;
-#line 356 "src/parser.re"
+#line 358 "src/parser.re"
                        { NEWTOKEN(PSI_T_LSHIFT); goto start; }
                        { NEWTOKEN(PSI_T_LSHIFT); goto start; }
-#line 1688 "src/parser.c"
+#line 1690 "src/parser.c"
 yy129:
                        ++cur;
 yy129:
                        ++cur;
-#line 358 "src/parser.re"
+#line 360 "src/parser.re"
                        { NEWTOKEN(PSI_T_CMP_LE); goto start; }
                        { NEWTOKEN(PSI_T_CMP_LE); goto start; }
-#line 1693 "src/parser.c"
+#line 1695 "src/parser.c"
 yy131:
                        ++cur;
 yy131:
                        ++cur;
-#line 341 "src/parser.re"
+#line 343 "src/parser.re"
                        { NEWTOKEN(PSI_T_CMP_EQ); goto start; }
                        { NEWTOKEN(PSI_T_CMP_EQ); goto start; }
-#line 1698 "src/parser.c"
+#line 1700 "src/parser.c"
 yy133:
                        ++cur;
 yy133:
                        ++cur;
-#line 359 "src/parser.re"
+#line 361 "src/parser.re"
                        { NEWTOKEN(PSI_T_CMP_GE); goto start; }
                        { NEWTOKEN(PSI_T_CMP_GE); goto start; }
-#line 1703 "src/parser.c"
+#line 1705 "src/parser.c"
 yy135:
                        ++cur;
 yy135:
                        ++cur;
-#line 357 "src/parser.re"
+#line 359 "src/parser.re"
                        { NEWTOKEN(PSI_T_RSHIFT); goto start; }
                        { NEWTOKEN(PSI_T_RSHIFT); goto start; }
-#line 1708 "src/parser.c"
+#line 1710 "src/parser.c"
 yy137:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy137:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -1981,9 +1983,9 @@ yy152:
                        default:        goto yy61;
                        }
 yy153:
                        default:        goto yy61;
                        }
 yy153:
-#line 371 "src/parser.re"
+#line 373 "src/parser.re"
                        { NEWTOKEN(PSI_T_IF); goto start; }
                        { NEWTOKEN(PSI_T_IF); goto start; }
-#line 1987 "src/parser.c"
+#line 1989 "src/parser.c"
 yy154:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy154:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -1997,9 +1999,9 @@ yy154:
 yy155:
                        ++cur;
                        cur = ctxmrk;
 yy155:
                        ++cur;
                        cur = ctxmrk;
-#line 324 "src/parser.re"
+#line 326 "src/parser.re"
                        { char_width = SIZEOF_WCHAR_T/8; }
                        { char_width = SIZEOF_WCHAR_T/8; }
-#line 2003 "src/parser.c"
+#line 2005 "src/parser.c"
 yy157:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy157:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -2148,9 +2150,9 @@ yy174:
 yy175:
                        ++cur;
                        cur = ctxmrk;
 yy175:
                        ++cur;
                        cur = ctxmrk;
-#line 323 "src/parser.re"
+#line 325 "src/parser.re"
                        { char_width = 4; }
                        { char_width = 4; }
-#line 2154 "src/parser.c"
+#line 2156 "src/parser.c"
 yy177:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy177:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -2269,9 +2271,9 @@ yy182:
                        default:        goto yy182;
                        }
 yy184:
                        default:        goto yy182;
                        }
 yy184:
-#line 444 "src/parser.re"
+#line 446 "src/parser.re"
                        { NEWTOKEN(PSI_T_NSNAME); goto start; }
                        { NEWTOKEN(PSI_T_NSNAME); goto start; }
-#line 2275 "src/parser.c"
+#line 2277 "src/parser.c"
 yy185:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy185:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -2302,9 +2304,9 @@ yy187:
 yy188:
                        ++cur;
                        cur = ctxmrk;
 yy188:
                        ++cur;
                        cur = ctxmrk;
-#line 322 "src/parser.re"
+#line 324 "src/parser.re"
                        { char_width = 2; }
                        { char_width = 2; }
-#line 2308 "src/parser.c"
+#line 2310 "src/parser.c"
 yy190:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy190:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -2315,14 +2317,14 @@ yy190:
                        }
 yy191:
                        ++cur;
                        }
 yy191:
                        ++cur;
-#line 343 "src/parser.re"
+#line 345 "src/parser.re"
                        { NEWTOKEN(PSI_T_OR); goto start; }
                        { NEWTOKEN(PSI_T_OR); goto start; }
-#line 2321 "src/parser.c"
+#line 2323 "src/parser.c"
 yy193:
                        ++cur;
 yy193:
                        ++cur;
-#line 363 "src/parser.re"
+#line 365 "src/parser.re"
                        { NEWTOKEN(PSI_T_ELLIPSIS); goto start; }
                        { NEWTOKEN(PSI_T_ELLIPSIS); goto start; }
-#line 2326 "src/parser.c"
+#line 2328 "src/parser.c"
 yy195:
                        yych = *++cur;
                        switch (yych) {
 yy195:
                        yych = *++cur;
                        switch (yych) {
@@ -2337,15 +2339,15 @@ yy195:
 yy196:
                        ++cur;
                        cur = ctxmrk;
 yy196:
                        ++cur;
                        cur = ctxmrk;
-#line 313 "src/parser.re"
+#line 315 "src/parser.re"
                        { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_F; cur += 1; goto start; }
                        { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_F; cur += 1; goto start; }
-#line 2343 "src/parser.c"
+#line 2345 "src/parser.c"
 yy198:
                        ++cur;
                        cur = ctxmrk;
 yy198:
                        ++cur;
                        cur = ctxmrk;
-#line 314 "src/parser.re"
+#line 316 "src/parser.re"
                        { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_L; cur += 1; goto start; }
                        { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_L; cur += 1; goto start; }
-#line 2349 "src/parser.c"
+#line 2351 "src/parser.c"
 yy200:
                        yych = *++cur;
                        switch (yych) {
 yy200:
                        yych = *++cur;
                        switch (yych) {
@@ -2357,9 +2359,9 @@ yy201:
                        ++cur;
 yy202:
                        cur = ctxmrk;
                        ++cur;
 yy202:
                        cur = ctxmrk;
-#line 309 "src/parser.re"
+#line 311 "src/parser.re"
                        { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_UL; cur += 2; goto start; }
                        { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_UL; cur += 2; goto start; }
-#line 2363 "src/parser.c"
+#line 2365 "src/parser.c"
 yy203:
                        yych = *++cur;
                        switch (yych) {
 yy203:
                        yych = *++cur;
                        switch (yych) {
@@ -2407,9 +2409,9 @@ yy204:
                        }
 yy206:
                        ++cur;
                        }
 yy206:
                        ++cur;
-#line 446 "src/parser.re"
+#line 448 "src/parser.re"
                        { tok += 1; cur -= 1; NEWTOKEN(PSI_T_CPP_HEADER); cur += 1; goto start; }
                        { tok += 1; cur -= 1; NEWTOKEN(PSI_T_CPP_HEADER); cur += 1; goto start; }
-#line 2413 "src/parser.c"
+#line 2415 "src/parser.c"
 yy208:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy208:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -2650,9 +2652,9 @@ yy228:
                        default:        goto yy61;
                        }
 yy229:
                        default:        goto yy61;
                        }
 yy229:
-#line 393 "src/parser.re"
+#line 395 "src/parser.re"
                        { NEWTOKEN(PSI_T_INT); goto start; }
                        { NEWTOKEN(PSI_T_INT); goto start; }
-#line 2656 "src/parser.c"
+#line 2658 "src/parser.c"
 yy230:
                        yyaccept = 11;
                        yych = *(mrk = ++cur);
 yy230:
                        yyaccept = 11;
                        yych = *(mrk = ++cur);
@@ -2725,9 +2727,9 @@ yy230:
                        default:        goto yy61;
                        }
 yy231:
                        default:        goto yy61;
                        }
 yy231:
-#line 419 "src/parser.re"
+#line 421 "src/parser.re"
                        { NEWTOKEN(PSI_T_LET); goto start; }
                        { NEWTOKEN(PSI_T_LET); goto start; }
-#line 2731 "src/parser.c"
+#line 2733 "src/parser.c"
 yy232:
                        yyaccept = 12;
                        yych = *(mrk = ++cur);
 yy232:
                        yyaccept = 12;
                        yych = *(mrk = ++cur);
@@ -2800,9 +2802,9 @@ yy232:
                        default:        goto yy61;
                        }
 yy233:
                        default:        goto yy61;
                        }
 yy233:
-#line 418 "src/parser.re"
+#line 420 "src/parser.re"
                        { NEWTOKEN(PSI_T_LIB); goto start; }
                        { NEWTOKEN(PSI_T_LIB); goto start; }
-#line 2806 "src/parser.c"
+#line 2808 "src/parser.c"
 yy234:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy234:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -2940,9 +2942,9 @@ yy242:
                        default:        goto yy61;
                        }
 yy243:
                        default:        goto yy61;
                        }
 yy243:
-#line 420 "src/parser.re"
+#line 422 "src/parser.re"
                        { NEWTOKEN(PSI_T_SET); goto start; }
                        { NEWTOKEN(PSI_T_SET); goto start; }
-#line 2946 "src/parser.c"
+#line 2948 "src/parser.c"
 yy244:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy244:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -3118,33 +3120,33 @@ yy263:
 yy264:
                        ++cur;
                        cur = ctxmrk;
 yy264:
                        ++cur;
                        cur = ctxmrk;
-#line 321 "src/parser.re"
+#line 323 "src/parser.re"
                        { char_width = 1; }
                        { char_width = 1; }
-#line 3124 "src/parser.c"
+#line 3126 "src/parser.c"
 yy266:
                        ++cur;
                        cur = ctxmrk;
 yy266:
                        ++cur;
                        cur = ctxmrk;
-#line 316 "src/parser.re"
+#line 318 "src/parser.re"
                        { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_DD; cur += 2; goto start; }
                        { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_DD; cur += 2; goto start; }
-#line 3130 "src/parser.c"
+#line 3132 "src/parser.c"
 yy268:
                        ++cur;
                        cur = ctxmrk;
 yy268:
                        ++cur;
                        cur = ctxmrk;
-#line 315 "src/parser.re"
+#line 317 "src/parser.re"
                        { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_DF; cur += 2; goto start; }
                        { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_DF; cur += 2; goto start; }
-#line 3136 "src/parser.c"
+#line 3138 "src/parser.c"
 yy270:
                        ++cur;
                        cur = ctxmrk;
 yy270:
                        ++cur;
                        cur = ctxmrk;
-#line 317 "src/parser.re"
+#line 319 "src/parser.re"
                        { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_DL; cur += 2; goto start; }
                        { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_DL; cur += 2; goto start; }
-#line 3142 "src/parser.c"
+#line 3144 "src/parser.c"
 yy272:
                        ++cur;
                        cur = ctxmrk;
 yy272:
                        ++cur;
                        cur = ctxmrk;
-#line 310 "src/parser.re"
+#line 312 "src/parser.re"
                        { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_ULL; cur += 3; goto start; }
                        { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_ULL; cur += 3; goto start; }
-#line 3148 "src/parser.c"
+#line 3150 "src/parser.c"
 yy274:
                        ++cur;
                        if ((lim - cur) < 3) if (cur >= lim) goto done;;
 yy274:
                        ++cur;
                        if ((lim - cur) < 3) if (cur >= lim) goto done;;
@@ -3266,9 +3268,9 @@ yy278:
                        default:        goto yy61;
                        }
 yy279:
                        default:        goto yy61;
                        }
 yy279:
-#line 390 "src/parser.re"
+#line 392 "src/parser.re"
                        { NEWTOKEN(PSI_T_BOOL); goto start; }
                        { NEWTOKEN(PSI_T_BOOL); goto start; }
-#line 3272 "src/parser.c"
+#line 3274 "src/parser.c"
 yy280:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy280:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -3353,9 +3355,9 @@ yy281:
                        default:        goto yy61;
                        }
 yy282:
                        default:        goto yy61;
                        }
 yy282:
-#line 391 "src/parser.re"
+#line 393 "src/parser.re"
                        { NEWTOKEN(PSI_T_CHAR); goto start; }
                        { NEWTOKEN(PSI_T_CHAR); goto start; }
-#line 3359 "src/parser.c"
+#line 3361 "src/parser.c"
 yy283:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy283:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -3460,9 +3462,9 @@ yy287:
                        default:        goto yy61;
                        }
 yy288:
                        default:        goto yy61;
                        }
 yy288:
-#line 375 "src/parser.re"
+#line 377 "src/parser.re"
                        { NEWTOKEN(PSI_T_ELIF); goto start; }
                        { NEWTOKEN(PSI_T_ELIF); goto start; }
-#line 3466 "src/parser.c"
+#line 3468 "src/parser.c"
 yy289:
                        yyaccept = 17;
                        yych = *(mrk = ++cur);
 yy289:
                        yyaccept = 17;
                        yych = *(mrk = ++cur);
@@ -3535,9 +3537,9 @@ yy289:
                        default:        goto yy61;
                        }
 yy290:
                        default:        goto yy61;
                        }
 yy290:
-#line 374 "src/parser.re"
+#line 376 "src/parser.re"
                        { NEWTOKEN(PSI_T_ELSE); goto start; }
                        { NEWTOKEN(PSI_T_ELSE); goto start; }
-#line 3541 "src/parser.c"
+#line 3543 "src/parser.c"
 yy291:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy291:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -3618,9 +3620,9 @@ yy292:
                        default:        goto yy61;
                        }
 yy293:
                        default:        goto yy61;
                        }
 yy293:
-#line 416 "src/parser.re"
+#line 418 "src/parser.re"
                        { NEWTOKEN(PSI_T_ENUM); goto start; }
                        { NEWTOKEN(PSI_T_ENUM); goto start; }
-#line 3624 "src/parser.c"
+#line 3626 "src/parser.c"
 yy294:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy294:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -3717,9 +3719,9 @@ yy297:
                        default:        goto yy61;
                        }
 yy298:
                        default:        goto yy61;
                        }
 yy298:
-#line 424 "src/parser.re"
+#line 426 "src/parser.re"
                        { NEWTOKEN(PSI_T_FREE); goto start; }
                        { NEWTOKEN(PSI_T_FREE); goto start; }
-#line 3723 "src/parser.c"
+#line 3725 "src/parser.c"
 yy299:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy299:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -3860,9 +3862,9 @@ yy308:
                        default:        goto yy61;
                        }
 yy309:
                        default:        goto yy61;
                        }
 yy309:
-#line 394 "src/parser.re"
+#line 396 "src/parser.re"
                        { NEWTOKEN(PSI_T_LONG); goto start; }
                        { NEWTOKEN(PSI_T_LONG); goto start; }
-#line 3866 "src/parser.c"
+#line 3868 "src/parser.c"
 yy310:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy310:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -3943,9 +3945,9 @@ yy311:
                        default:        goto yy61;
                        }
 yy312:
                        default:        goto yy61;
                        }
 yy312:
-#line 386 "src/parser.re"
+#line 388 "src/parser.re"
                        { NEWTOKEN(PSI_T_NULL); goto start; }
                        { NEWTOKEN(PSI_T_NULL); goto start; }
-#line 3949 "src/parser.c"
+#line 3951 "src/parser.c"
 yy313:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy313:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -4121,9 +4123,9 @@ yy326:
                        default:        goto yy61;
                        }
 yy327:
                        default:        goto yy61;
                        }
 yy327:
-#line 425 "src/parser.re"
+#line 427 "src/parser.re"
                        { NEWTOKEN(PSI_T_TEMP); goto start; }
                        { NEWTOKEN(PSI_T_TEMP); goto start; }
-#line 4127 "src/parser.c"
+#line 4129 "src/parser.c"
 yy328:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy328:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -4244,9 +4246,9 @@ yy334:
                        default:        goto yy61;
                        }
 yy335:
                        default:        goto yy61;
                        }
 yy335:
-#line 384 "src/parser.re"
+#line 386 "src/parser.re"
                        { NEWTOKEN(PSI_T_TRUE); goto start; }
                        { NEWTOKEN(PSI_T_TRUE); goto start; }
-#line 4250 "src/parser.c"
+#line 4252 "src/parser.c"
 yy336:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy336:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -4361,9 +4363,9 @@ yy341:
                        default:        goto yy61;
                        }
 yy342:
                        default:        goto yy61;
                        }
 yy342:
-#line 389 "src/parser.re"
+#line 391 "src/parser.re"
                        { NEWTOKEN(PSI_T_VOID); goto start; }
                        { NEWTOKEN(PSI_T_VOID); goto start; }
-#line 4367 "src/parser.c"
+#line 4369 "src/parser.c"
 yy343:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy343:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -4444,9 +4446,9 @@ yy344:
                        default:        goto yy61;
                        }
 yy345:
                        default:        goto yy61;
                        }
 yy345:
-#line 434 "src/parser.re"
+#line 436 "src/parser.re"
                        { NEWTOKEN(PSI_T_ZVAL); goto start; }
                        { NEWTOKEN(PSI_T_ZVAL); goto start; }
-#line 4450 "src/parser.c"
+#line 4452 "src/parser.c"
 yy346:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy346:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -4547,9 +4549,9 @@ yy350:
                        default:        goto yy61;
                        }
 yy351:
                        default:        goto yy61;
                        }
 yy351:
-#line 370 "src/parser.re"
+#line 372 "src/parser.re"
                        { NEWTOKEN(PSI_T_LINE); goto start; }
                        { NEWTOKEN(PSI_T_LINE); goto start; }
-#line 4553 "src/parser.c"
+#line 4555 "src/parser.c"
 yy352:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy352:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -4629,9 +4631,9 @@ yy353:
                        default:        goto yy61;
                        }
 yy354:
                        default:        goto yy61;
                        }
 yy354:
-#line 408 "src/parser.re"
+#line 410 "src/parser.re"
                        { NEWTOKEN(PSI_T_ARRAY); goto start; }
                        { NEWTOKEN(PSI_T_ARRAY); goto start; }
-#line 4635 "src/parser.c"
+#line 4637 "src/parser.c"
 yy355:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy355:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -4744,9 +4746,9 @@ yy360:
                        default:        goto yy61;
                        }
 yy361:
                        default:        goto yy61;
                        }
 yy361:
-#line 417 "src/parser.re"
+#line 419 "src/parser.re"
                        { NEWTOKEN(PSI_T_CONST); goto start; }
                        { NEWTOKEN(PSI_T_CONST); goto start; }
-#line 4750 "src/parser.c"
+#line 4752 "src/parser.c"
 yy362:
                        yyaccept = 29;
                        yych = *(mrk = ++cur);
 yy362:
                        yyaccept = 29;
                        yych = *(mrk = ++cur);
@@ -4819,9 +4821,9 @@ yy362:
                        default:        goto yy61;
                        }
 yy363:
                        default:        goto yy61;
                        }
 yy363:
-#line 435 "src/parser.re"
+#line 437 "src/parser.re"
                        { NEWTOKEN(PSI_T_COUNT); goto start; }
                        { NEWTOKEN(PSI_T_COUNT); goto start; }
-#line 4825 "src/parser.c"
+#line 4827 "src/parser.c"
 yy364:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy364:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -4910,9 +4912,9 @@ yy366:
                        default:        goto yy61;
                        }
 yy367:
                        default:        goto yy61;
                        }
 yy367:
-#line 376 "src/parser.re"
+#line 378 "src/parser.re"
                        { NEWTOKEN(PSI_T_ENDIF); goto start; }
                        { NEWTOKEN(PSI_T_ENDIF); goto start; }
-#line 4916 "src/parser.c"
+#line 4918 "src/parser.c"
 yy368:
                        yyaccept = 31;
                        yych = *(mrk = ++cur);
 yy368:
                        yyaccept = 31;
                        yych = *(mrk = ++cur);
@@ -4985,9 +4987,9 @@ yy368:
                        default:        goto yy61;
                        }
 yy369:
                        default:        goto yy61;
                        }
 yy369:
-#line 381 "src/parser.re"
+#line 383 "src/parser.re"
                        { NEWTOKEN(PSI_T_ERROR); goto start; }
                        { NEWTOKEN(PSI_T_ERROR); goto start; }
-#line 4991 "src/parser.c"
+#line 4993 "src/parser.c"
 yy370:
                        yyaccept = 32;
                        yych = *(mrk = ++cur);
 yy370:
                        yyaccept = 32;
                        yych = *(mrk = ++cur);
@@ -5060,9 +5062,9 @@ yy370:
                        default:        goto yy61;
                        }
 yy371:
                        default:        goto yy61;
                        }
 yy371:
-#line 385 "src/parser.re"
+#line 387 "src/parser.re"
                        { NEWTOKEN(PSI_T_FALSE); goto start; }
                        { NEWTOKEN(PSI_T_FALSE); goto start; }
-#line 5066 "src/parser.c"
+#line 5068 "src/parser.c"
 yy372:
                        yyaccept = 33;
                        yych = *(mrk = ++cur);
 yy372:
                        yyaccept = 33;
                        yych = *(mrk = ++cur);
@@ -5137,9 +5139,9 @@ yy372:
                        default:        goto yy61;
                        }
 yy373:
                        default:        goto yy61;
                        }
 yy373:
-#line 395 "src/parser.re"
+#line 397 "src/parser.re"
                        { NEWTOKEN(PSI_T_FLOAT); goto start; }
                        { NEWTOKEN(PSI_T_FLOAT); goto start; }
-#line 5143 "src/parser.c"
+#line 5145 "src/parser.c"
 yy374:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy374:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -5220,9 +5222,9 @@ yy375:
                        default:        goto yy61;
                        }
 yy376:
                        default:        goto yy61;
                        }
 yy376:
-#line 372 "src/parser.re"
+#line 374 "src/parser.re"
                        { NEWTOKEN(PSI_T_IFDEF); goto start; }
                        { NEWTOKEN(PSI_T_IFDEF); goto start; }
-#line 5226 "src/parser.c"
+#line 5228 "src/parser.c"
 yy377:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy377:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -5348,9 +5350,9 @@ yy384:
                        default:        goto yy61;
                        }
 yy385:
                        default:        goto yy61;
                        }
 yy385:
-#line 387 "src/parser.re"
+#line 389 "src/parser.re"
                        { NEWTOKEN(PSI_T_MIXED); goto start; }
                        { NEWTOKEN(PSI_T_MIXED); goto start; }
-#line 5354 "src/parser.c"
+#line 5356 "src/parser.c"
 yy386:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy386:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -5471,9 +5473,9 @@ yy392:
                        default:        goto yy61;
                        }
 yy393:
                        default:        goto yy61;
                        }
 yy393:
-#line 392 "src/parser.re"
+#line 394 "src/parser.re"
                        { NEWTOKEN(PSI_T_SHORT); goto start; }
                        { NEWTOKEN(PSI_T_SHORT); goto start; }
-#line 5477 "src/parser.c"
+#line 5479 "src/parser.c"
 yy394:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy394:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -5678,9 +5680,9 @@ yy411:
                        default:        goto yy61;
                        }
 yy412:
                        default:        goto yy61;
                        }
 yy412:
-#line 379 "src/parser.re"
+#line 381 "src/parser.re"
                        { NEWTOKEN(PSI_T_UNDEF); goto start; }
                        { NEWTOKEN(PSI_T_UNDEF); goto start; }
-#line 5684 "src/parser.c"
+#line 5686 "src/parser.c"
 yy413:
                        yyaccept = 38;
                        yych = *(mrk = ++cur);
 yy413:
                        yyaccept = 38;
                        yych = *(mrk = ++cur);
@@ -5753,9 +5755,9 @@ yy413:
                        default:        goto yy61;
                        }
 yy414:
                        default:        goto yy61;
                        }
 yy414:
-#line 415 "src/parser.re"
+#line 417 "src/parser.re"
                        { NEWTOKEN(PSI_T_UNION); goto start; }
                        { NEWTOKEN(PSI_T_UNION); goto start; }
-#line 5759 "src/parser.c"
+#line 5761 "src/parser.c"
 yy415:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy415:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -5879,9 +5881,9 @@ yy422:
                        default:        goto yy61;
                        }
 yy423:
                        default:        goto yy61;
                        }
 yy423:
-#line 432 "src/parser.re"
+#line 434 "src/parser.re"
                        { NEWTOKEN(PSI_T_ARRVAL); goto start; }
                        { NEWTOKEN(PSI_T_ARRVAL); goto start; }
-#line 5885 "src/parser.c"
+#line 5887 "src/parser.c"
 yy424:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy424:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -5978,9 +5980,9 @@ yy427:
                        default:        goto yy61;
                        }
 yy428:
                        default:        goto yy61;
                        }
 yy428:
-#line 436 "src/parser.re"
+#line 438 "src/parser.re"
                        { NEWTOKEN(PSI_T_CALLOC); goto start; }
                        { NEWTOKEN(PSI_T_CALLOC); goto start; }
-#line 5984 "src/parser.c"
+#line 5986 "src/parser.c"
 yy429:
                        yyaccept = 41;
                        yych = *(mrk = ++cur);
 yy429:
                        yyaccept = 41;
                        yych = *(mrk = ++cur);
@@ -6055,9 +6057,9 @@ yy429:
                        default:        goto yy61;
                        }
 yy430:
                        default:        goto yy61;
                        }
 yy430:
-#line 377 "src/parser.re"
+#line 379 "src/parser.re"
                        { NEWTOKEN(PSI_T_DEFINE); goto start; }
                        { NEWTOKEN(PSI_T_DEFINE); goto start; }
-#line 6061 "src/parser.c"
+#line 6063 "src/parser.c"
 yy431:
                        yyaccept = 42;
                        yych = *(mrk = ++cur);
 yy431:
                        yyaccept = 42;
                        yych = *(mrk = ++cur);
@@ -6130,9 +6132,9 @@ yy431:
                        default:        goto yy61;
                        }
 yy432:
                        default:        goto yy61;
                        }
 yy432:
-#line 396 "src/parser.re"
+#line 398 "src/parser.re"
                        { NEWTOKEN(PSI_T_DOUBLE); goto start; }
                        { NEWTOKEN(PSI_T_DOUBLE); goto start; }
-#line 6136 "src/parser.c"
+#line 6138 "src/parser.c"
 yy433:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy433:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -6221,9 +6223,9 @@ yy435:
                        default:        goto yy61;
                        }
 yy436:
                        default:        goto yy61;
                        }
 yy436:
-#line 373 "src/parser.re"
+#line 375 "src/parser.re"
                        { NEWTOKEN(PSI_T_IFNDEF); goto start; }
                        { NEWTOKEN(PSI_T_IFNDEF); goto start; }
-#line 6227 "src/parser.c"
+#line 6229 "src/parser.c"
 yy437:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy437:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -6328,9 +6330,9 @@ yy441:
                        default:        goto yy61;
                        }
 yy442:
                        default:        goto yy61;
                        }
 yy442:
-#line 397 "src/parser.re"
+#line 399 "src/parser.re"
                        { NEWTOKEN(PSI_T_INT8); goto start; }
                        { NEWTOKEN(PSI_T_INT8); goto start; }
-#line 6334 "src/parser.c"
+#line 6336 "src/parser.c"
 yy443:
                        yyaccept = 45;
                        yych = *(mrk = ++cur);
 yy443:
                        yyaccept = 45;
                        yych = *(mrk = ++cur);
@@ -6403,9 +6405,9 @@ yy443:
                        default:        goto yy61;
                        }
 yy444:
                        default:        goto yy61;
                        }
 yy444:
-#line 429 "src/parser.re"
+#line 431 "src/parser.re"
                        { NEWTOKEN(PSI_T_INTVAL); goto start; }
                        { NEWTOKEN(PSI_T_INTVAL); goto start; }
-#line 6409 "src/parser.c"
+#line 6411 "src/parser.c"
 yy445:
                        yyaccept = 46;
                        yych = *(mrk = ++cur);
 yy445:
                        yyaccept = 46;
                        yych = *(mrk = ++cur);
@@ -6478,9 +6480,9 @@ yy445:
                        default:        goto yy61;
                        }
 yy446:
                        default:        goto yy61;
                        }
 yy446:
-#line 409 "src/parser.re"
+#line 411 "src/parser.re"
                        { NEWTOKEN(PSI_T_OBJECT); goto start; }
                        { NEWTOKEN(PSI_T_OBJECT); goto start; }
-#line 6484 "src/parser.c"
+#line 6486 "src/parser.c"
 yy447:
                        yyaccept = 47;
                        yych = *(mrk = ++cur);
 yy447:
                        yyaccept = 47;
                        yych = *(mrk = ++cur);
@@ -6553,9 +6555,9 @@ yy447:
                        default:        goto yy61;
                        }
 yy448:
                        default:        goto yy61;
                        }
 yy448:
-#line 433 "src/parser.re"
+#line 435 "src/parser.re"
                        { NEWTOKEN(PSI_T_OBJVAL); goto start; }
                        { NEWTOKEN(PSI_T_OBJVAL); goto start; }
-#line 6559 "src/parser.c"
+#line 6561 "src/parser.c"
 yy449:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy449:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -6652,9 +6654,9 @@ yy452:
                        default:        goto yy61;
                        }
 yy453:
                        default:        goto yy61;
                        }
 yy453:
-#line 423 "src/parser.re"
+#line 425 "src/parser.re"
                        { NEWTOKEN(PSI_T_RETURN); goto start; }
                        { NEWTOKEN(PSI_T_RETURN); goto start; }
-#line 6658 "src/parser.c"
+#line 6660 "src/parser.c"
 yy454:
                        yyaccept = 49;
                        yych = *(mrk = ++cur);
 yy454:
                        yyaccept = 49;
                        yych = *(mrk = ++cur);
@@ -6727,9 +6729,9 @@ yy454:
                        default:        goto yy61;
                        }
 yy455:
                        default:        goto yy61;
                        }
 yy455:
-#line 406 "src/parser.re"
+#line 408 "src/parser.re"
                        { NEWTOKEN(PSI_T_SIGNED); goto start; }
                        { NEWTOKEN(PSI_T_SIGNED); goto start; }
-#line 6733 "src/parser.c"
+#line 6735 "src/parser.c"
 yy456:
                        yyaccept = 50;
                        yych = *(mrk = ++cur);
 yy456:
                        yyaccept = 50;
                        yych = *(mrk = ++cur);
@@ -6802,9 +6804,9 @@ yy456:
                        default:        goto yy61;
                        }
 yy457:
                        default:        goto yy61;
                        }
 yy457:
-#line 411 "src/parser.re"
+#line 413 "src/parser.re"
                        { NEWTOKEN(PSI_T_STATIC); goto start; }
                        { NEWTOKEN(PSI_T_STATIC); goto start; }
-#line 6808 "src/parser.c"
+#line 6810 "src/parser.c"
 yy458:
                        yyaccept = 51;
                        yych = *(mrk = ++cur);
 yy458:
                        yyaccept = 51;
                        yych = *(mrk = ++cur);
@@ -6877,9 +6879,9 @@ yy458:
                        default:        goto yy61;
                        }
 yy459:
                        default:        goto yy61;
                        }
 yy459:
-#line 407 "src/parser.re"
+#line 409 "src/parser.re"
                        { NEWTOKEN(PSI_T_STRING); goto start; }
                        { NEWTOKEN(PSI_T_STRING); goto start; }
-#line 6883 "src/parser.c"
+#line 6885 "src/parser.c"
 yy460:
                        yyaccept = 52;
                        yych = *(mrk = ++cur);
 yy460:
                        yyaccept = 52;
                        yych = *(mrk = ++cur);
@@ -6952,9 +6954,9 @@ yy460:
                        default:        goto yy61;
                        }
 yy461:
                        default:        goto yy61;
                        }
 yy461:
-#line 426 "src/parser.re"
+#line 428 "src/parser.re"
                        { NEWTOKEN(PSI_T_STRLEN); goto start; }
                        { NEWTOKEN(PSI_T_STRLEN); goto start; }
-#line 6958 "src/parser.c"
+#line 6960 "src/parser.c"
 yy462:
                        yyaccept = 53;
                        yych = *(mrk = ++cur);
 yy462:
                        yyaccept = 53;
                        yych = *(mrk = ++cur);
@@ -7027,9 +7029,9 @@ yy462:
                        default:        goto yy61;
                        }
 yy463:
                        default:        goto yy61;
                        }
 yy463:
-#line 414 "src/parser.re"
+#line 416 "src/parser.re"
                        { NEWTOKEN(PSI_T_STRUCT); goto start; }
                        { NEWTOKEN(PSI_T_STRUCT); goto start; }
-#line 7033 "src/parser.c"
+#line 7035 "src/parser.c"
 yy464:
                        yyaccept = 54;
                        yych = *(mrk = ++cur);
 yy464:
                        yyaccept = 54;
                        yych = *(mrk = ++cur);
@@ -7102,9 +7104,9 @@ yy464:
                        default:        goto yy61;
                        }
 yy465:
                        default:        goto yy61;
                        }
 yy465:
-#line 427 "src/parser.re"
+#line 429 "src/parser.re"
                        { NEWTOKEN(PSI_T_STRVAL); goto start; }
                        { NEWTOKEN(PSI_T_STRVAL); goto start; }
-#line 7108 "src/parser.c"
+#line 7110 "src/parser.c"
 yy466:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy466:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -7201,9 +7203,9 @@ yy469:
                        default:        goto yy61;
                        }
 yy470:
                        default:        goto yy61;
                        }
 yy470:
-#line 440 "src/parser.re"
+#line 442 "src/parser.re"
                        { NEWTOKEN(PSI_T_TO_INT); goto start; }
                        { NEWTOKEN(PSI_T_TO_INT); goto start; }
-#line 7207 "src/parser.c"
+#line 7209 "src/parser.c"
 yy471:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy471:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -7373,9 +7375,9 @@ yy484:
                        default:        goto yy527;
                        }
 yy485:
                        default:        goto yy527;
                        }
 yy485:
-#line 365 "src/parser.re"
+#line 367 "src/parser.re"
                        { NEWTOKEN(PSI_T_PRAGMA); goto start; }
                        { NEWTOKEN(PSI_T_PRAGMA); goto start; }
-#line 7379 "src/parser.c"
+#line 7381 "src/parser.c"
 yy486:
                        yyaccept = 57;
                        yych = *(mrk = ++cur);
 yy486:
                        yyaccept = 57;
                        yych = *(mrk = ++cur);
@@ -7448,9 +7450,9 @@ yy486:
                        default:        goto yy61;
                        }
 yy487:
                        default:        goto yy61;
                        }
 yy487:
-#line 431 "src/parser.re"
+#line 433 "src/parser.re"
                        { NEWTOKEN(PSI_T_BOOLVAL); goto start; }
                        { NEWTOKEN(PSI_T_BOOLVAL); goto start; }
-#line 7454 "src/parser.c"
+#line 7456 "src/parser.c"
 yy488:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy488:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -7539,9 +7541,9 @@ yy490:
                        default:        goto yy61;
                        }
 yy491:
                        default:        goto yy61;
                        }
 yy491:
-#line 378 "src/parser.re"
+#line 380 "src/parser.re"
                        { NEWTOKEN(PSI_T_DEFINED); goto start; }
                        { NEWTOKEN(PSI_T_DEFINED); goto start; }
-#line 7545 "src/parser.c"
+#line 7547 "src/parser.c"
 yy492:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy492:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -7631,9 +7633,9 @@ yy494:
                        default:        goto yy61;
                        }
 yy495:
                        default:        goto yy61;
                        }
 yy495:
-#line 382 "src/parser.re"
+#line 384 "src/parser.re"
                        { NEWTOKEN(PSI_T_INCLUDE); goto start; }
                        { NEWTOKEN(PSI_T_INCLUDE); goto start; }
-#line 7637 "src/parser.c"
+#line 7639 "src/parser.c"
 yy496:
                        yyaccept = 60;
                        yych = *(mrk = ++cur);
 yy496:
                        yyaccept = 60;
                        yych = *(mrk = ++cur);
@@ -7706,9 +7708,9 @@ yy496:
                        default:        goto yy61;
                        }
 yy497:
                        default:        goto yy61;
                        }
 yy497:
-#line 399 "src/parser.re"
+#line 401 "src/parser.re"
                        { NEWTOKEN(PSI_T_INT16); goto start; }
                        { NEWTOKEN(PSI_T_INT16); goto start; }
-#line 7712 "src/parser.c"
+#line 7714 "src/parser.c"
 yy498:
                        yyaccept = 61;
                        yych = *(mrk = ++cur);
 yy498:
                        yyaccept = 61;
                        yych = *(mrk = ++cur);
@@ -7781,9 +7783,9 @@ yy498:
                        default:        goto yy61;
                        }
 yy499:
                        default:        goto yy61;
                        }
 yy499:
-#line 401 "src/parser.re"
+#line 403 "src/parser.re"
                        { NEWTOKEN(PSI_T_INT32); goto start; }
                        { NEWTOKEN(PSI_T_INT32); goto start; }
-#line 7787 "src/parser.c"
+#line 7789 "src/parser.c"
 yy500:
                        yyaccept = 62;
                        yych = *(mrk = ++cur);
 yy500:
                        yyaccept = 62;
                        yych = *(mrk = ++cur);
@@ -7856,9 +7858,9 @@ yy500:
                        default:        goto yy61;
                        }
 yy501:
                        default:        goto yy61;
                        }
 yy501:
-#line 403 "src/parser.re"
+#line 405 "src/parser.re"
                        { NEWTOKEN(PSI_T_INT64); goto start; }
                        { NEWTOKEN(PSI_T_INT64); goto start; }
-#line 7862 "src/parser.c"
+#line 7864 "src/parser.c"
 yy502:
                        yyaccept = 63;
                        yych = *(mrk = ++cur);
 yy502:
                        yyaccept = 63;
                        yych = *(mrk = ++cur);
@@ -7931,9 +7933,9 @@ yy502:
                        default:        goto yy61;
                        }
 yy503:
                        default:        goto yy61;
                        }
 yy503:
-#line 428 "src/parser.re"
+#line 430 "src/parser.re"
                        { NEWTOKEN(PSI_T_PATHVAL); goto start; }
                        { NEWTOKEN(PSI_T_PATHVAL); goto start; }
-#line 7937 "src/parser.c"
+#line 7939 "src/parser.c"
 yy504:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy504:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -8030,9 +8032,9 @@ yy507:
                        default:        goto yy61;
                        }
 yy508:
                        default:        goto yy61;
                        }
 yy508:
-#line 442 "src/parser.re"
+#line 444 "src/parser.re"
                        { NEWTOKEN(PSI_T_TO_BOOL); goto start; }
                        { NEWTOKEN(PSI_T_TO_BOOL); goto start; }
-#line 8036 "src/parser.c"
+#line 8038 "src/parser.c"
 yy509:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy509:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -8129,9 +8131,9 @@ yy512:
                        default:        goto yy61;
                        }
 yy513:
                        default:        goto yy61;
                        }
 yy513:
-#line 413 "src/parser.re"
+#line 415 "src/parser.re"
                        { NEWTOKEN(PSI_T_TYPEDEF); goto start; }
                        { NEWTOKEN(PSI_T_TYPEDEF); goto start; }
-#line 8135 "src/parser.c"
+#line 8137 "src/parser.c"
 yy514:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy514:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -8228,9 +8230,9 @@ yy517:
                        default:        goto yy61;
                        }
 yy518:
                        default:        goto yy61;
                        }
 yy518:
-#line 398 "src/parser.re"
+#line 400 "src/parser.re"
                        { NEWTOKEN(PSI_T_UINT8); goto start; }
                        { NEWTOKEN(PSI_T_UINT8); goto start; }
-#line 8234 "src/parser.c"
+#line 8236 "src/parser.c"
 yy519:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy519:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -8311,9 +8313,9 @@ yy520:
                        default:        goto yy61;
                        }
 yy521:
                        default:        goto yy61;
                        }
 yy521:
-#line 380 "src/parser.re"
+#line 382 "src/parser.re"
                        { NEWTOKEN(PSI_T_WARNING); goto start; }
                        { NEWTOKEN(PSI_T_WARNING); goto start; }
-#line 8317 "src/parser.c"
+#line 8319 "src/parser.c"
 yy522:
                        yyaccept = 68;
                        yych = *(mrk = ++cur);
 yy522:
                        yyaccept = 68;
                        yych = *(mrk = ++cur);
@@ -8386,9 +8388,9 @@ yy522:
                        default:        goto yy61;
                        }
 yy523:
                        default:        goto yy61;
                        }
 yy523:
-#line 369 "src/parser.re"
+#line 371 "src/parser.re"
                        { NEWTOKEN(PSI_T_CPP_ASM); goto start; }
                        { NEWTOKEN(PSI_T_CPP_ASM); goto start; }
-#line 8392 "src/parser.c"
+#line 8394 "src/parser.c"
 yy524:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy524:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -8556,9 +8558,9 @@ yy529:
                        default:        goto yy61;
                        }
 yy530:
                        default:        goto yy61;
                        }
 yy530:
-#line 388 "src/parser.re"
+#line 390 "src/parser.re"
                        { NEWTOKEN(PSI_T_CALLABLE); goto start; }
                        { NEWTOKEN(PSI_T_CALLABLE); goto start; }
-#line 8562 "src/parser.c"
+#line 8564 "src/parser.c"
 yy531:
                        yyaccept = 70;
                        yych = *(mrk = ++cur);
 yy531:
                        yyaccept = 70;
                        yych = *(mrk = ++cur);
@@ -8631,9 +8633,9 @@ yy531:
                        default:        goto yy61;
                        }
 yy532:
                        default:        goto yy61;
                        }
 yy532:
-#line 410 "src/parser.re"
+#line 412 "src/parser.re"
                        { NEWTOKEN(PSI_T_CALLBACK); goto start; }
                        { NEWTOKEN(PSI_T_CALLBACK); goto start; }
-#line 8637 "src/parser.c"
+#line 8639 "src/parser.c"
 yy533:
                        yyaccept = 71;
                        yych = *(mrk = ++cur);
 yy533:
                        yyaccept = 71;
                        yych = *(mrk = ++cur);
@@ -8706,9 +8708,9 @@ yy533:
                        default:        goto yy61;
                        }
 yy534:
                        default:        goto yy61;
                        }
 yy534:
-#line 430 "src/parser.re"
+#line 432 "src/parser.re"
                        { NEWTOKEN(PSI_T_FLOATVAL); goto start; }
                        { NEWTOKEN(PSI_T_FLOATVAL); goto start; }
-#line 8712 "src/parser.c"
+#line 8714 "src/parser.c"
 yy535:
                        yyaccept = 72;
                        yych = *(mrk = ++cur);
 yy535:
                        yyaccept = 72;
                        yych = *(mrk = ++cur);
@@ -8781,9 +8783,9 @@ yy535:
                        default:        goto yy61;
                        }
 yy536:
                        default:        goto yy61;
                        }
 yy536:
-#line 412 "src/parser.re"
+#line 414 "src/parser.re"
                        { NEWTOKEN(PSI_T_FUNCTION); goto start; }
                        { NEWTOKEN(PSI_T_FUNCTION); goto start; }
-#line 8787 "src/parser.c"
+#line 8789 "src/parser.c"
 yy537:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy537:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -8880,9 +8882,9 @@ yy540:
                        default:        goto yy61;
                        }
 yy541:
                        default:        goto yy61;
                        }
 yy541:
-#line 438 "src/parser.re"
+#line 440 "src/parser.re"
                        { NEWTOKEN(PSI_T_TO_ARRAY); goto start; }
                        { NEWTOKEN(PSI_T_TO_ARRAY); goto start; }
-#line 8886 "src/parser.c"
+#line 8888 "src/parser.c"
 yy542:
                        yyaccept = 74;
                        yych = *(mrk = ++cur);
 yy542:
                        yyaccept = 74;
                        yych = *(mrk = ++cur);
@@ -8955,9 +8957,9 @@ yy542:
                        default:        goto yy61;
                        }
 yy543:
                        default:        goto yy61;
                        }
 yy543:
-#line 441 "src/parser.re"
+#line 443 "src/parser.re"
                        { NEWTOKEN(PSI_T_TO_FLOAT); goto start; }
                        { NEWTOKEN(PSI_T_TO_FLOAT); goto start; }
-#line 8961 "src/parser.c"
+#line 8963 "src/parser.c"
 yy544:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy544:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -9046,9 +9048,9 @@ yy546:
                        default:        goto yy61;
                        }
 yy547:
                        default:        goto yy61;
                        }
 yy547:
-#line 400 "src/parser.re"
+#line 402 "src/parser.re"
                        { NEWTOKEN(PSI_T_UINT16); goto start; }
                        { NEWTOKEN(PSI_T_UINT16); goto start; }
-#line 9052 "src/parser.c"
+#line 9054 "src/parser.c"
 yy548:
                        yyaccept = 76;
                        yych = *(mrk = ++cur);
 yy548:
                        yyaccept = 76;
                        yych = *(mrk = ++cur);
@@ -9121,9 +9123,9 @@ yy548:
                        default:        goto yy61;
                        }
 yy549:
                        default:        goto yy61;
                        }
 yy549:
-#line 402 "src/parser.re"
+#line 404 "src/parser.re"
                        { NEWTOKEN(PSI_T_UINT32); goto start; }
                        { NEWTOKEN(PSI_T_UINT32); goto start; }
-#line 9127 "src/parser.c"
+#line 9129 "src/parser.c"
 yy550:
                        yyaccept = 77;
                        yych = *(mrk = ++cur);
 yy550:
                        yyaccept = 77;
                        yych = *(mrk = ++cur);
@@ -9196,9 +9198,9 @@ yy550:
                        default:        goto yy61;
                        }
 yy551:
                        default:        goto yy61;
                        }
 yy551:
-#line 404 "src/parser.re"
+#line 406 "src/parser.re"
                        { NEWTOKEN(PSI_T_UINT64); goto start; }
                        { NEWTOKEN(PSI_T_UINT64); goto start; }
-#line 9202 "src/parser.c"
+#line 9204 "src/parser.c"
 yy552:
                        yyaccept = 78;
                        yych = *(mrk = ++cur);
 yy552:
                        yyaccept = 78;
                        yych = *(mrk = ++cur);
@@ -9271,9 +9273,9 @@ yy552:
                        default:        goto yy61;
                        }
 yy553:
                        default:        goto yy61;
                        }
 yy553:
-#line 405 "src/parser.re"
+#line 407 "src/parser.re"
                        { NEWTOKEN(PSI_T_UNSIGNED); goto start; }
                        { NEWTOKEN(PSI_T_UNSIGNED); goto start; }
-#line 9277 "src/parser.c"
+#line 9279 "src/parser.c"
 yy554:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy554:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -9466,9 +9468,9 @@ yy562:
                        default:        goto yy61;
                        }
 yy563:
                        default:        goto yy61;
                        }
 yy563:
-#line 437 "src/parser.re"
+#line 439 "src/parser.re"
                        { NEWTOKEN(PSI_T_TO_OBJECT); goto start; }
                        { NEWTOKEN(PSI_T_TO_OBJECT); goto start; }
-#line 9472 "src/parser.c"
+#line 9474 "src/parser.c"
 yy564:
                        yyaccept = 80;
                        yych = *(mrk = ++cur);
 yy564:
                        yyaccept = 80;
                        yych = *(mrk = ++cur);
@@ -9541,9 +9543,9 @@ yy564:
                        default:        goto yy61;
                        }
 yy565:
                        default:        goto yy61;
                        }
 yy565:
-#line 439 "src/parser.re"
+#line 441 "src/parser.re"
                        { NEWTOKEN(PSI_T_TO_STRING); goto start; }
                        { NEWTOKEN(PSI_T_TO_STRING); goto start; }
-#line 9547 "src/parser.c"
+#line 9549 "src/parser.c"
 yy566:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy566:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -9728,9 +9730,9 @@ yy572:
                        default:        goto yy61;
                        }
 yy573:
                        default:        goto yy61;
                        }
 yy573:
-#line 421 "src/parser.re"
+#line 423 "src/parser.re"
                        { NEWTOKEN(PSI_T_PRE_ASSERT); goto start; }
                        { NEWTOKEN(PSI_T_PRE_ASSERT); goto start; }
-#line 9734 "src/parser.c"
+#line 9736 "src/parser.c"
 yy574:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy574:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -9817,9 +9819,9 @@ yy576:
                        default:        goto yy61;
                        }
 yy577:
                        default:        goto yy61;
                        }
 yy577:
-#line 367 "src/parser.re"
+#line 369 "src/parser.re"
                        { NEWTOKEN(PSI_T_CPP_RESTRICT); goto start; }
                        { NEWTOKEN(PSI_T_CPP_RESTRICT); goto start; }
-#line 9823 "src/parser.c"
+#line 9825 "src/parser.c"
 yy578:
                        yyaccept = 5;
                        mrk = ++cur;
 yy578:
                        yyaccept = 5;
                        mrk = ++cur;
@@ -9975,9 +9977,9 @@ yy580:
                        default:        goto yy61;
                        }
 yy581:
                        default:        goto yy61;
                        }
 yy581:
-#line 422 "src/parser.re"
+#line 424 "src/parser.re"
                        { NEWTOKEN(PSI_T_POST_ASSERT); goto start; }
                        { NEWTOKEN(PSI_T_POST_ASSERT); goto start; }
-#line 9981 "src/parser.c"
+#line 9983 "src/parser.c"
 yy582:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy582:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -10067,9 +10069,9 @@ yy584:
                        default:        goto yy527;
                        }
 yy585:
                        default:        goto yy527;
                        }
 yy585:
-#line 366 "src/parser.re"
+#line 368 "src/parser.re"
                        { NEWTOKEN(PSI_T_PRAGMA_ONCE); goto start; }
                        { NEWTOKEN(PSI_T_PRAGMA_ONCE); goto start; }
-#line 10073 "src/parser.c"
+#line 10075 "src/parser.c"
 yy586:
                        yyaccept = 85;
                        yych = *(mrk = ++cur);
 yy586:
                        yyaccept = 85;
                        yych = *(mrk = ++cur);
@@ -10142,9 +10144,9 @@ yy586:
                        default:        goto yy61;
                        }
 yy587:
                        default:        goto yy61;
                        }
 yy587:
-#line 383 "src/parser.re"
+#line 385 "src/parser.re"
                        { NEWTOKEN(PSI_T_INCLUDE_NEXT); goto start; }
                        { NEWTOKEN(PSI_T_INCLUDE_NEXT); goto start; }
-#line 10148 "src/parser.c"
+#line 10150 "src/parser.c"
 yy588:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
 yy588:
                        yyaccept = 5;
                        yych = *(mrk = ++cur);
@@ -10302,9 +10304,9 @@ yy591:
                        default:        goto yy61;
                        }
 yy592:
                        default:        goto yy61;
                        }
 yy592:
-#line 368 "src/parser.re"
+#line 370 "src/parser.re"
                        { NEWTOKEN(PSI_T_CPP_EXTENSION); goto start; }
                        { NEWTOKEN(PSI_T_CPP_EXTENSION); goto start; }
-#line 10308 "src/parser.c"
+#line 10310 "src/parser.c"
 yy593:
                        ++cur;
                        if ((lim - cur) < 2) if (cur >= lim) goto done;;
 yy593:
                        ++cur;
                        if ((lim - cur) < 2) if (cur >= lim) goto done;;
@@ -10324,16 +10326,16 @@ yy595:
                        }
 yy596:
                        ++cur;
                        }
 yy596:
                        ++cur;
-#line 447 "src/parser.re"
+#line 449 "src/parser.re"
                        { parens = 2; goto cpp_attribute; }
                        { parens = 2; goto cpp_attribute; }
-#line 10330 "src/parser.c"
+#line 10332 "src/parser.c"
                }
                }
-#line 453 "src/parser.re"
+#line 455 "src/parser.re"
 
 
        character: ;
                
 
 
        character: ;
                
-#line 10337 "src/parser.c"
+#line 10339 "src/parser.c"
                {
                        unsigned char yych;
                        if (lim <= cur) if (cur >= lim) goto done;;
                {
                        unsigned char yych;
                        if (lim <= cur) if (cur >= lim) goto done;;
@@ -10347,17 +10349,17 @@ yy596:
                        }
 yy600:
                        ++cur;
                        }
 yy600:
                        ++cur;
-#line 471 "src/parser.re"
+#line 473 "src/parser.re"
                        { escaped = false; goto character; }
                        { escaped = false; goto character; }
-#line 10353 "src/parser.c"
+#line 10355 "src/parser.c"
 yy602:
                        ++cur;
 yy602:
                        ++cur;
-#line 458 "src/parser.re"
+#line 460 "src/parser.re"
                        { NEWLINE(); goto character; }
                        { NEWLINE(); goto character; }
-#line 10358 "src/parser.c"
+#line 10360 "src/parser.c"
 yy604:
                        ++cur;
 yy604:
                        ++cur;
-#line 460 "src/parser.re"
+#line 462 "src/parser.re"
                        {
                        if (escaped) {
                                escaped = false;
                        {
                        if (escaped) {
                                escaped = false;
@@ -10369,19 +10371,19 @@ yy604:
                        token->flags = char_width;
                        goto start;
                }
                        token->flags = char_width;
                        goto start;
                }
-#line 10373 "src/parser.c"
+#line 10375 "src/parser.c"
 yy606:
                        ++cur;
 yy606:
                        ++cur;
-#line 459 "src/parser.re"
+#line 461 "src/parser.re"
                        { escaped = !escaped;  goto character; }
                        { escaped = !escaped;  goto character; }
-#line 10378 "src/parser.c"
+#line 10380 "src/parser.c"
                }
                }
-#line 473 "src/parser.re"
+#line 475 "src/parser.re"
 
 
        string: ;
                
 
 
        string: ;
                
-#line 10385 "src/parser.c"
+#line 10387 "src/parser.c"
                {
                        unsigned char yych;
                        if (lim <= cur) if (cur >= lim) goto done;;
                {
                        unsigned char yych;
                        if (lim <= cur) if (cur >= lim) goto done;;
@@ -10395,17 +10397,17 @@ yy606:
                        }
 yy610:
                        ++cur;
                        }
 yy610:
                        ++cur;
-#line 491 "src/parser.re"
+#line 493 "src/parser.re"
                        { escaped = false; goto string; }
                        { escaped = false; goto string; }
-#line 10401 "src/parser.c"
+#line 10403 "src/parser.c"
 yy612:
                        ++cur;
 yy612:
                        ++cur;
-#line 478 "src/parser.re"
+#line 480 "src/parser.re"
                        { NEWLINE(); goto string; }
                        { NEWLINE(); goto string; }
-#line 10406 "src/parser.c"
+#line 10408 "src/parser.c"
 yy614:
                        ++cur;
 yy614:
                        ++cur;
-#line 480 "src/parser.re"
+#line 482 "src/parser.re"
                        {
                        if (escaped) {
                                escaped = false;
                        {
                        if (escaped) {
                                escaped = false;
@@ -10417,19 +10419,19 @@ yy614:
                        token->flags = char_width;
                        goto start;
                }
                        token->flags = char_width;
                        goto start;
                }
-#line 10421 "src/parser.c"
+#line 10423 "src/parser.c"
 yy616:
                        ++cur;
 yy616:
                        ++cur;
-#line 479 "src/parser.re"
+#line 481 "src/parser.re"
                        { escaped = !escaped; goto string; }
                        { escaped = !escaped; goto string; }
-#line 10426 "src/parser.c"
+#line 10428 "src/parser.c"
                }
                }
-#line 493 "src/parser.re"
+#line 495 "src/parser.re"
 
 
        comment: ;
                
 
 
        comment: ;
                
-#line 10433 "src/parser.c"
+#line 10435 "src/parser.c"
                {
                        unsigned char yych;
                        if ((lim - cur) < 2) if (cur >= lim) goto done;;
                {
                        unsigned char yych;
                        if ((lim - cur) < 2) if (cur >= lim) goto done;;
@@ -10443,14 +10445,14 @@ yy616:
 yy620:
                        ++cur;
 yy621:
 yy620:
                        ++cur;
 yy621:
-#line 500 "src/parser.re"
+#line 502 "src/parser.re"
                        { goto comment; }
                        { goto comment; }
-#line 10449 "src/parser.c"
+#line 10451 "src/parser.c"
 yy622:
                        ++cur;
 yy622:
                        ++cur;
-#line 498 "src/parser.re"
+#line 500 "src/parser.re"
                        { NEWLINE(); goto comment; }
                        { NEWLINE(); goto comment; }
-#line 10454 "src/parser.c"
+#line 10456 "src/parser.c"
 yy624:
                        yych = *++cur;
                        switch (yych) {
 yy624:
                        yych = *++cur;
                        switch (yych) {
@@ -10459,16 +10461,16 @@ yy624:
                        }
 yy625:
                        ++cur;
                        }
 yy625:
                        ++cur;
-#line 499 "src/parser.re"
+#line 501 "src/parser.re"
                        { NEWTOKEN(PSI_T_COMMENT); goto start; }
                        { NEWTOKEN(PSI_T_COMMENT); goto start; }
-#line 10465 "src/parser.c"
+#line 10467 "src/parser.c"
                }
                }
-#line 502 "src/parser.re"
+#line 504 "src/parser.re"
 
 
        comment_sl: ;
                
 
 
        comment_sl: ;
                
-#line 10472 "src/parser.c"
+#line 10474 "src/parser.c"
                {
                        unsigned char yych;
                        if (lim <= cur) if (cur >= lim) goto done;;
                {
                        unsigned char yych;
                        if (lim <= cur) if (cur >= lim) goto done;;
@@ -10480,22 +10482,22 @@ yy625:
                        }
 yy629:
                        ++cur;
                        }
 yy629:
                        ++cur;
-#line 508 "src/parser.re"
+#line 510 "src/parser.re"
                        { goto comment_sl; }
                        { goto comment_sl; }
-#line 10486 "src/parser.c"
+#line 10488 "src/parser.c"
 yy631:
                        ++cur;
 yy631:
                        ++cur;
-#line 507 "src/parser.re"
+#line 509 "src/parser.re"
                        { NEWTOKEN(PSI_T_COMMENT); NEWLINE(); goto start; }
                        { NEWTOKEN(PSI_T_COMMENT); NEWLINE(); goto start; }
-#line 10491 "src/parser.c"
+#line 10493 "src/parser.c"
                }
                }
-#line 510 "src/parser.re"
+#line 512 "src/parser.re"
 
 
        cpp_attribute: ;
 
                
 
 
        cpp_attribute: ;
 
                
-#line 10499 "src/parser.c"
+#line 10501 "src/parser.c"
                {
                        unsigned char yych;
                        if (lim <= cur) if (cur >= lim) goto done;;
                {
                        unsigned char yych;
                        if (lim <= cur) if (cur >= lim) goto done;;
@@ -10509,26 +10511,26 @@ yy631:
                        }
 yy635:
                        ++cur;
                        }
 yy635:
                        ++cur;
-#line 519 "src/parser.re"
+#line 521 "src/parser.re"
                        { goto cpp_attribute; }
                        { goto cpp_attribute; }
-#line 10515 "src/parser.c"
+#line 10517 "src/parser.c"
 yy637:
                        ++cur;
 yy637:
                        ++cur;
-#line 518 "src/parser.re"
+#line 520 "src/parser.re"
                        { NEWLINE(); goto cpp_attribute; }
                        { NEWLINE(); goto cpp_attribute; }
-#line 10520 "src/parser.c"
+#line 10522 "src/parser.c"
 yy639:
                        ++cur;
 yy639:
                        ++cur;
-#line 516 "src/parser.re"
+#line 518 "src/parser.re"
                        { ++parens; goto cpp_attribute; }
                        { ++parens; goto cpp_attribute; }
-#line 10525 "src/parser.c"
+#line 10527 "src/parser.c"
 yy641:
                        ++cur;
 yy641:
                        ++cur;
-#line 517 "src/parser.re"
+#line 519 "src/parser.re"
                        { if (parens == 1) { NEWTOKEN(PSI_T_CPP_ATTRIBUTE); goto start; } else { --parens; goto cpp_attribute; } }
                        { if (parens == 1) { NEWTOKEN(PSI_T_CPP_ATTRIBUTE); goto start; } else { --parens; goto cpp_attribute; } }
-#line 10530 "src/parser.c"
+#line 10532 "src/parser.c"
                }
                }
-#line 521 "src/parser.re"
+#line 523 "src/parser.re"
 
 error: ;
 
 
 error: ;