From 02e801eabbe26a129ea05e6723c94e10bb653dab Mon Sep 17 00:00:00 2001 From: Michael Wallner Date: Mon, 16 Apr 2018 14:36:29 +0200 Subject: [PATCH] lift single lib statement restriction --- config.m4 | 38 +- php_psi_posix.h.in | 13 +- psi.d/netdb.psi | 2 + src/data.c | 33 +- src/data.h | 1 - src/parser.c | 643 +++++++++--------- src/parser.re | 1 + src/parser_proc.c | 1338 ++++++++++++++++++------------------- src/parser_proc_grammar.y | 8 +- src/types/decl.c | 14 +- src/types/decl_extvar.c | 10 +- src/types/decl_file.c | 57 +- src/types/decl_file.h | 8 +- src/validate.c | 4 +- src/validate.h | 1 - tests/yaml/yaml.psi | 1 + 16 files changed, 1085 insertions(+), 1087 deletions(-) diff --git a/config.m4 b/config.m4 index 01a82a2..a8c95b0 100644 --- a/config.m4 +++ b/config.m4 @@ -111,43 +111,7 @@ if test "$PHP_PSI" != no; then if ! $PSI_FAST_CONFIG; then AC_MSG_RESULT([$PHP_PSI_POSIX]) fi - - PSI_CONFIG_POSIX(signal, signal.h, [ - PSI_CONFIG_POSIX(time, time.h, [ - PSI_CONFIG_POSIX(sys/stat, sys/stat.h) - PSI_CONFIG_POSIX(wchar, wchar.h, [ - PSI_CONFIG_POSIX(wctype, wctype.h) - ]) - ]) - PSI_CONFIG_POSIX(sys/select, sys/select.h) - ]) - PSI_CONFIG_POSIX(poll, poll.h) - PSI_CONFIG_POSIX(syslog, syslog.h) - PSI_CONFIG_POSIX(errno, errno.h) - PSI_CONFIG_POSIX(fcntl, fcntl.h) - PSI_CONFIG_POSIX(glob, glob.h) - PSI_CONFIG_POSIX(locale, locale.h xlocale.h) - PSI_CONFIG_POSIX(stdio, stdio.h) - PSI_CONFIG_POSIX(stdlib, stdlib.h) - PSI_CONFIG_POSIX(unistd, unistd.h) - PSI_CONFIG_POSIX(stdarg, stdarg.h) - PSI_CONFIG_POSIX(sys/socket, sys/socket.h, [ - PSI_CONFIG_POSIX(netinet/in, netinet/in.h, [ - PSI_CONFIG_POSIX(arpa/inet, arpa/inet.h) - ]) - PSI_CONFIG_POSIX(netdb, netdb.h) - ]) - PSI_CONFIG_POSIX(netinet/tcp, netinet/tcp.h) - PSI_CONFIG_POSIX(sys/time, sys/time.h) - PSI_CONFIG_POSIX(sys/times, sys/times.h) - PSI_CONFIG_POSIX(sys/uio, sys/uio.h) - PSI_CONFIG_POSIX(sys/utsname, sys/utsname.h) - PSI_CONFIG_POSIX(ndbm, dnl - ndbm.h dnl posix - relic.h dnl qdbm - gdbm-ndbm.h dnl gdbm - ) - + PSI_CONFIG_DONE PHP_SUBST(PSI_SHARED_LIBADD) diff --git a/php_psi_posix.h.in b/php_psi_posix.h.in index 6131448..47bfc09 100644 --- a/php_psi_posix.h.in +++ b/php_psi_posix.h.in @@ -33,14 +33,6 @@ static struct psi_std_type { const char *type_name; const char *alias; } psi_std_types[] = { - {PSI_T_INT8, "int8_t", NULL}, - {PSI_T_INT16, "int16_t", NULL}, - {PSI_T_INT32, "int32_t", NULL}, - {PSI_T_INT64, "int64_t", NULL}, - {PSI_T_UINT8, "uint8_t", NULL}, - {PSI_T_UINT16, "uint16_t", NULL}, - {PSI_T_UINT32, "uint32_t", NULL}, - {PSI_T_UINT64, "uint64_t", NULL}, @PSI_STDTYPES@ {0} }; @@ -110,16 +102,13 @@ static struct psi_func_redir { const char *name; psi_func_ptr func; } psi_func_redirs[] = { + /* needed from libc_nonshared.a */ {"fstat", (psi_func_ptr) fstat}, {"fstatat", (psi_func_ptr) fstatat}, {"lstat", (psi_func_ptr) lstat}, {"mknod", (psi_func_ptr) mknod}, {"mknodat", (psi_func_ptr) mknodat}, {"stat", (psi_func_ptr) stat}, - {"getaddrinfo_a", (psi_func_ptr) getaddrinfo_a}, - {"gai_suspend", (psi_func_ptr) gai_suspend}, - {"gai_error", (psi_func_ptr) gai_error}, - {"gai_cancel", (psi_func_ptr) gai_cancel}, @PSI_REDIRS@ {0} }; diff --git a/psi.d/netdb.psi b/psi.d/netdb.psi index 26f91e9..7ce8427 100644 --- a/psi.d/netdb.psi +++ b/psi.d/netdb.psi @@ -1,3 +1,5 @@ +lib "anl"; + #include function psi\endhostent() : void { diff --git a/src/data.c b/src/data.c index 7e52be5..193f49c 100644 --- a/src/data.c +++ b/src/data.c @@ -40,6 +40,12 @@ struct psi_data *psi_data_ctor_with_dtors(struct psi_data *data, data->error = error; data->flags = flags; + if (!data->file.libnames) { + data->file.libnames = psi_plist_init((psi_plist_dtor) psi_names_free); + } + if (!data->file.dlopened) { + data->file.dlopened = psi_plist_init((psi_plist_dtor) psi_libs_free); + } if (!data->consts) { data->consts = psi_plist_init((psi_plist_dtor) psi_const_free); @@ -65,9 +71,6 @@ struct psi_data *psi_data_ctor_with_dtors(struct psi_data *data, if (!data->impls) { data->impls = psi_plist_init((psi_plist_dtor) psi_impl_free); } - if (!data->libs) { - data->libs = psi_plist_init((psi_plist_dtor) psi_libs_free); - } return data; } @@ -81,6 +84,13 @@ struct psi_data *psi_data_ctor(struct psi_data *data, psi_error_cb error, data->error = error; data->flags = flags; + if (!data->file.libnames) { + data->file.libnames = psi_plist_init(NULL); + } + if (!data->file.dlopened) { + data->file.dlopened = psi_plist_init(NULL); + } + if (!data->consts) { data->consts = psi_plist_init(NULL); } @@ -105,9 +115,6 @@ struct psi_data *psi_data_ctor(struct psi_data *data, psi_error_cb error, if (!data->impls) { data->impls = psi_plist_init(NULL); } - if (!data->libs) { - data->libs = psi_plist_init(NULL); - } return data; } @@ -147,19 +154,19 @@ void psi_data_dtor(struct psi_data *data) if (data->impls) { psi_plist_free(data->impls); } - if (data->libs) { - psi_plist_free(data->libs); - } psi_decl_file_dtor(&data->file); } void psi_data_dump(int fd, struct psi_data *D) { - if (D->file.fn) { - dprintf(fd, "// filename=%s (%u errors)\n", D->file.fn, D->errors); - if (D->file.ln) { - dprintf(fd, "lib \"%s\";\n", D->file.ln); + if (D->file.filename) { + size_t i = 0; + char *libname; + + dprintf(fd, "// filename=%s (%u errors)\n", D->file.filename, D->errors); + while (psi_plist_get(D->file.libnames, i++, &libname)) { + dprintf(fd, "lib \"%s\";\n", libname); } } else { dprintf(fd, "// builtin predef\n"); diff --git a/src/data.h b/src/data.h index 88b8926..964b468 100644 --- a/src/data.h +++ b/src/data.h @@ -55,7 +55,6 @@ struct psi_plist *decls; \ struct psi_plist *vars; \ struct psi_plist *impls; \ - struct psi_plist *libs; \ psi_error_cb error; \ char last_error[0x1000]; \ unsigned errors; \ diff --git a/src/parser.c b/src/parser.c index d50d178..ce58f5a 100644 --- a/src/parser.c +++ b/src/parser.c @@ -1,4 +1,4 @@ -/* Generated by re2c 1.0.3 on Mon Apr 16 10:10:28 2018 */ +/* Generated by re2c 1.0.3 on Mon Apr 16 13:22:16 2018 */ #line 1 "src/parser.re" /******************************************************************************* Copyright (c) 2016, Michael Wallner . @@ -28,6 +28,7 @@ #include "php_psi_stdinc.h" #include #include +#include #include #include "parser.h" @@ -344,7 +345,7 @@ struct psi_plist *psi_parser_scan(struct psi_parser *P, struct psi_parser_input (void) ctxmrk; -#line 348 "src/parser.c" +#line 349 "src/parser.c" { unsigned char yych; unsigned int yyaccept = 0; @@ -469,9 +470,9 @@ struct psi_plist *psi_parser_scan(struct psi_parser *P, struct psi_parser_input yy2: ++cur; yy3: -#line 513 "src/parser.re" +#line 514 "src/parser.re" { NEWTOKEN(-2); goto error; } -#line 475 "src/parser.c" +#line 476 "src/parser.c" yy4: ++cur; if (lim <= cur) if (cur >= lim) goto done;; @@ -483,14 +484,14 @@ yy4: default: goto yy6; } yy6: -#line 512 "src/parser.re" +#line 513 "src/parser.re" { NEWTOKEN(PSI_T_WHITESPACE); goto start; } -#line 489 "src/parser.c" +#line 490 "src/parser.c" yy7: ++cur; -#line 511 "src/parser.re" +#line 512 "src/parser.re" { NEWTOKEN(PSI_T_EOL); NEWLINE(); goto start; } -#line 494 "src/parser.c" +#line 495 "src/parser.c" yy9: yych = *++cur; switch (yych) { @@ -498,14 +499,14 @@ yy9: default: goto yy10; } yy10: -#line 414 "src/parser.re" +#line 415 "src/parser.re" { NEWTOKEN(PSI_T_NOT); goto start; } -#line 504 "src/parser.c" +#line 505 "src/parser.c" yy11: ++cur; -#line 387 "src/parser.re" +#line 388 "src/parser.re" { escaped = false; tok += 1; goto string; } -#line 509 "src/parser.c" +#line 510 "src/parser.c" yy13: yych = *++cur; switch (yych) { @@ -513,9 +514,9 @@ yy13: default: goto yy14; } yy14: -#line 397 "src/parser.re" +#line 398 "src/parser.re" { NEWTOKEN(PSI_T_HASH); goto start; } -#line 519 "src/parser.c" +#line 520 "src/parser.c" yy15: yych = *++cur; switch (yych) { @@ -588,9 +589,9 @@ yy15: } yy16: ++cur; -#line 415 "src/parser.re" +#line 416 "src/parser.re" { NEWTOKEN(PSI_T_MODULO); goto start; } -#line 594 "src/parser.c" +#line 595 "src/parser.c" yy18: yych = *++cur; switch (yych) { @@ -598,29 +599,29 @@ yy18: default: goto yy19; } yy19: -#line 416 "src/parser.re" +#line 417 "src/parser.re" { NEWTOKEN(PSI_T_AMPERSAND); goto start; } -#line 604 "src/parser.c" +#line 605 "src/parser.c" yy20: ++cur; -#line 386 "src/parser.re" +#line 387 "src/parser.re" { escaped = false; tok += 1; goto character; } -#line 609 "src/parser.c" +#line 610 "src/parser.c" yy22: ++cur; -#line 398 "src/parser.re" +#line 399 "src/parser.re" { NEWTOKEN(PSI_T_LPAREN); goto start; } -#line 614 "src/parser.c" +#line 615 "src/parser.c" yy24: ++cur; -#line 399 "src/parser.re" +#line 400 "src/parser.re" { NEWTOKEN(PSI_T_RPAREN); goto start; } -#line 619 "src/parser.c" +#line 620 "src/parser.c" yy26: ++cur; -#line 412 "src/parser.re" +#line 413 "src/parser.re" { NEWTOKEN(PSI_T_ASTERISK); goto start; } -#line 624 "src/parser.c" +#line 625 "src/parser.c" yy28: yyaccept = 0; yych = *(mrk = ++cur); @@ -639,14 +640,14 @@ yy28: default: goto yy29; } yy29: -#line 417 "src/parser.re" +#line 418 "src/parser.re" { NEWTOKEN(PSI_T_PLUS); goto start; } -#line 645 "src/parser.c" +#line 646 "src/parser.c" yy30: ++cur; -#line 401 "src/parser.re" +#line 402 "src/parser.re" { NEWTOKEN(PSI_T_COMMA); goto start; } -#line 650 "src/parser.c" +#line 651 "src/parser.c" yy32: yyaccept = 1; yych = *(mrk = ++cur); @@ -665,9 +666,9 @@ yy32: default: goto yy33; } yy33: -#line 418 "src/parser.re" +#line 419 "src/parser.re" { NEWTOKEN(PSI_T_MINUS); goto start; } -#line 671 "src/parser.c" +#line 672 "src/parser.c" yy34: yyaccept = 2; yych = *(mrk = ++cur); @@ -686,9 +687,9 @@ yy34: default: goto yy35; } yy35: -#line 429 "src/parser.re" +#line 430 "src/parser.re" { NEWTOKEN(PSI_T_PERIOD); goto start; } -#line 692 "src/parser.c" +#line 693 "src/parser.c" yy36: yych = *++cur; switch (yych) { @@ -697,9 +698,9 @@ yy36: default: goto yy37; } yy37: -#line 419 "src/parser.re" +#line 420 "src/parser.re" { NEWTOKEN(PSI_T_SLASH); goto start; } -#line 703 "src/parser.c" +#line 704 "src/parser.c" yy38: yyaccept = 3; yych = *(mrk = ++cur); @@ -712,9 +713,9 @@ yy38: default: goto yy126; } yy39: -#line 373 "src/parser.re" +#line 374 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT; goto start; } -#line 718 "src/parser.c" +#line 719 "src/parser.c" yy40: yyaccept = 3; mrk = ++cur; @@ -742,14 +743,14 @@ yy40: } yy42: ++cur; -#line 402 "src/parser.re" +#line 403 "src/parser.re" { NEWTOKEN(PSI_T_COLON); goto start; } -#line 748 "src/parser.c" +#line 749 "src/parser.c" yy44: ++cur; -#line 400 "src/parser.re" +#line 401 "src/parser.re" { NEWTOKEN(PSI_T_EOS); goto start; } -#line 753 "src/parser.c" +#line 754 "src/parser.c" yy46: yyaccept = 4; yych = *(mrk = ++cur); @@ -825,9 +826,9 @@ yy46: default: goto yy47; } yy47: -#line 427 "src/parser.re" +#line 428 "src/parser.re" { NEWTOKEN(PSI_T_LCHEVR); goto start; } -#line 831 "src/parser.c" +#line 832 "src/parser.c" yy48: yych = *++cur; switch (yych) { @@ -835,9 +836,9 @@ yy48: default: goto yy49; } yy49: -#line 411 "src/parser.re" +#line 412 "src/parser.re" { NEWTOKEN(PSI_T_EQUALS); goto start; } -#line 841 "src/parser.c" +#line 842 "src/parser.c" yy50: yych = *++cur; switch (yych) { @@ -846,14 +847,14 @@ yy50: default: goto yy51; } yy51: -#line 428 "src/parser.re" +#line 429 "src/parser.re" { NEWTOKEN(PSI_T_RCHEVR); goto start; } -#line 852 "src/parser.c" +#line 853 "src/parser.c" yy52: ++cur; -#line 431 "src/parser.re" +#line 432 "src/parser.re" { NEWTOKEN(PSI_T_IIF); goto start; } -#line 857 "src/parser.c" +#line 858 "src/parser.c" yy54: yyaccept = 5; yych = *(mrk = ++cur); @@ -865,9 +866,9 @@ yy54: default: goto yy62; } yy55: -#line 506 "src/parser.re" +#line 507 "src/parser.re" { NEWTOKEN(PSI_T_NAME); goto start; } -#line 871 "src/parser.c" +#line 872 "src/parser.c" yy56: yyaccept = 5; yych = *(mrk = ++cur); @@ -1110,9 +1111,9 @@ yy74: } yy75: ++cur; -#line 405 "src/parser.re" +#line 406 "src/parser.re" { NEWTOKEN(PSI_T_LBRACKET); goto start; } -#line 1116 "src/parser.c" +#line 1117 "src/parser.c" yy77: yych = *++cur; switch (yych) { @@ -1194,19 +1195,19 @@ yy77: default: goto yy184; } yy78: -#line 420 "src/parser.re" +#line 421 "src/parser.re" { NEWTOKEN(PSI_T_BSLASH); goto start; } -#line 1200 "src/parser.c" +#line 1201 "src/parser.c" yy79: ++cur; -#line 406 "src/parser.re" +#line 407 "src/parser.re" { NEWTOKEN(PSI_T_RBRACKET); goto start; } -#line 1205 "src/parser.c" +#line 1206 "src/parser.c" yy81: ++cur; -#line 422 "src/parser.re" +#line 423 "src/parser.re" { NEWTOKEN(PSI_T_CARET); goto start; } -#line 1210 "src/parser.c" +#line 1211 "src/parser.c" yy83: yyaccept = 5; yych = *(mrk = ++cur); @@ -1346,9 +1347,9 @@ yy95: } yy96: ++cur; -#line 403 "src/parser.re" +#line 404 "src/parser.re" { NEWTOKEN(PSI_T_LBRACE); goto start; } -#line 1352 "src/parser.c" +#line 1353 "src/parser.c" yy98: yych = *++cur; switch (yych) { @@ -1356,29 +1357,29 @@ yy98: default: goto yy99; } yy99: -#line 421 "src/parser.re" +#line 422 "src/parser.re" { NEWTOKEN(PSI_T_PIPE); goto start; } -#line 1362 "src/parser.c" +#line 1363 "src/parser.c" yy100: ++cur; -#line 404 "src/parser.re" +#line 405 "src/parser.re" { NEWTOKEN(PSI_T_RBRACE); goto start; } -#line 1367 "src/parser.c" +#line 1368 "src/parser.c" yy102: ++cur; -#line 413 "src/parser.re" +#line 414 "src/parser.re" { NEWTOKEN(PSI_T_TILDE); goto start; } -#line 1372 "src/parser.c" +#line 1373 "src/parser.c" yy104: ++cur; -#line 407 "src/parser.re" +#line 408 "src/parser.re" { NEWTOKEN(PSI_T_CMP_NE); goto start; } -#line 1377 "src/parser.c" +#line 1378 "src/parser.c" yy106: ++cur; -#line 396 "src/parser.re" +#line 397 "src/parser.re" { NEWTOKEN(PSI_T_CPP_PASTE); goto start; } -#line 1382 "src/parser.c" +#line 1383 "src/parser.c" yy108: ++cur; if (lim <= cur) if (cur >= lim) goto done;; @@ -1452,14 +1453,14 @@ yy108: default: goto yy108; } yy110: -#line 508 "src/parser.re" +#line 509 "src/parser.re" { NEWTOKEN(PSI_T_DOLLAR_NAME); goto start; } -#line 1458 "src/parser.c" +#line 1459 "src/parser.c" yy111: ++cur; -#line 409 "src/parser.re" +#line 410 "src/parser.re" { NEWTOKEN(PSI_T_AND); goto start; } -#line 1463 "src/parser.c" +#line 1464 "src/parser.c" yy113: yych = *++cur; switch (yych) { @@ -1593,19 +1594,19 @@ yy116: default: goto yy118; } yy118: -#line 379 "src/parser.re" +#line 380 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT; goto start; } -#line 1599 "src/parser.c" +#line 1600 "src/parser.c" yy119: ++cur; -#line 393 "src/parser.re" +#line 394 "src/parser.re" { goto comment; } -#line 1604 "src/parser.c" +#line 1605 "src/parser.c" yy121: ++cur; -#line 394 "src/parser.re" +#line 395 "src/parser.re" { goto comment_sl; } -#line 1609 "src/parser.c" +#line 1610 "src/parser.c" yy123: yyaccept = 6; mrk = ++cur; @@ -1681,9 +1682,9 @@ yy128: } yy129: cur -= 1; -#line 375 "src/parser.re" +#line 376 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_L; cur += 1; goto start; } -#line 1687 "src/parser.c" +#line 1688 "src/parser.c" yy130: yych = *++cur; switch (yych) { @@ -1693,9 +1694,9 @@ yy130: } yy131: cur -= 1; -#line 374 "src/parser.re" +#line 375 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_U; cur += 1; goto start; } -#line 1699 "src/parser.c" +#line 1700 "src/parser.c" yy132: yych = *++cur; switch (yych) { @@ -1799,29 +1800,29 @@ yy133: } yy135: ++cur; -#line 423 "src/parser.re" +#line 424 "src/parser.re" { NEWTOKEN(PSI_T_LSHIFT); goto start; } -#line 1805 "src/parser.c" +#line 1806 "src/parser.c" yy137: ++cur; -#line 425 "src/parser.re" +#line 426 "src/parser.re" { NEWTOKEN(PSI_T_CMP_LE); goto start; } -#line 1810 "src/parser.c" +#line 1811 "src/parser.c" yy139: ++cur; -#line 408 "src/parser.re" +#line 409 "src/parser.re" { NEWTOKEN(PSI_T_CMP_EQ); goto start; } -#line 1815 "src/parser.c" +#line 1816 "src/parser.c" yy141: ++cur; -#line 426 "src/parser.re" +#line 427 "src/parser.re" { NEWTOKEN(PSI_T_CMP_GE); goto start; } -#line 1820 "src/parser.c" +#line 1821 "src/parser.c" yy143: ++cur; -#line 424 "src/parser.re" +#line 425 "src/parser.re" { NEWTOKEN(PSI_T_RSHIFT); goto start; } -#line 1825 "src/parser.c" +#line 1826 "src/parser.c" yy145: yyaccept = 5; yych = *(mrk = ++cur); @@ -1902,9 +1903,9 @@ yy146: default: goto yy61; } yy147: -#line 486 "src/parser.re" +#line 487 "src/parser.re" { NEWTOKEN(PSI_T_AS); goto start; } -#line 1908 "src/parser.c" +#line 1909 "src/parser.c" yy148: ++cur; if (lim <= cur) if (cur >= lim) goto done;; @@ -2153,9 +2154,9 @@ yy160: default: goto yy61; } yy161: -#line 456 "src/parser.re" +#line 457 "src/parser.re" { NEWTOKEN(PSI_T_IF); goto start; } -#line 2159 "src/parser.c" +#line 2160 "src/parser.c" yy162: yyaccept = 5; yych = *(mrk = ++cur); @@ -2169,9 +2170,9 @@ yy162: yy163: ++cur; cur -= 1; -#line 391 "src/parser.re" +#line 392 "src/parser.re" { char_width = sizeof(wchar_t)/8; } -#line 2175 "src/parser.c" +#line 2176 "src/parser.c" yy165: yyaccept = 5; yych = *(mrk = ++cur); @@ -2288,9 +2289,9 @@ yy178: yy179: ++cur; cur -= 1; -#line 390 "src/parser.re" +#line 391 "src/parser.re" { char_width = 4; } -#line 2294 "src/parser.c" +#line 2295 "src/parser.c" yy181: yyaccept = 5; yych = *(mrk = ++cur); @@ -2389,9 +2390,9 @@ yy184: default: goto yy184; } yy186: -#line 507 "src/parser.re" +#line 508 "src/parser.re" { NEWTOKEN(PSI_T_NSNAME); goto start; } -#line 2395 "src/parser.c" +#line 2396 "src/parser.c" yy187: yyaccept = 5; yych = *(mrk = ++cur); @@ -2520,9 +2521,9 @@ yy201: yy202: ++cur; cur -= 1; -#line 389 "src/parser.re" +#line 390 "src/parser.re" { char_width = 2; } -#line 2526 "src/parser.c" +#line 2527 "src/parser.c" yy204: yyaccept = 5; yych = *(mrk = ++cur); @@ -2550,14 +2551,14 @@ yy206: } yy207: ++cur; -#line 410 "src/parser.re" +#line 411 "src/parser.re" { NEWTOKEN(PSI_T_OR); goto start; } -#line 2556 "src/parser.c" +#line 2557 "src/parser.c" yy209: ++cur; -#line 430 "src/parser.re" +#line 431 "src/parser.re" { NEWTOKEN(PSI_T_ELLIPSIS); goto start; } -#line 2561 "src/parser.c" +#line 2562 "src/parser.c" yy211: yych = *++cur; switch (yych) { @@ -2572,15 +2573,15 @@ yy211: yy212: ++cur; cur -= 1; -#line 380 "src/parser.re" +#line 381 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_F; cur += 1; goto start; } -#line 2578 "src/parser.c" +#line 2579 "src/parser.c" yy214: ++cur; cur -= 1; -#line 381 "src/parser.re" +#line 382 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_L; cur += 1; goto start; } -#line 2584 "src/parser.c" +#line 2585 "src/parser.c" yy216: yych = *++cur; switch (yych) { @@ -2592,9 +2593,9 @@ yy217: ++cur; yy218: cur -= 2; -#line 376 "src/parser.re" +#line 377 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_UL; cur += 2; goto start; } -#line 2598 "src/parser.c" +#line 2599 "src/parser.c" yy219: yych = *++cur; switch (yych) { @@ -2641,9 +2642,9 @@ yy220: } yy222: ++cur; -#line 509 "src/parser.re" +#line 510 "src/parser.re" { tok += 1; cur -= 1; NEWTOKEN(PSI_T_CPP_HEADER); cur += 1; goto start; } -#line 2647 "src/parser.c" +#line 2648 "src/parser.c" yy224: yyaccept = 5; yych = *(mrk = ++cur); @@ -2854,9 +2855,9 @@ yy241: default: goto yy61; } yy242: -#line 481 "src/parser.re" +#line 482 "src/parser.re" { NEWTOKEN(PSI_T_LET); goto start; } -#line 2860 "src/parser.c" +#line 2861 "src/parser.c" yy243: yyaccept = 12; yych = *(mrk = ++cur); @@ -2929,9 +2930,9 @@ yy243: default: goto yy61; } yy244: -#line 480 "src/parser.re" +#line 481 "src/parser.re" { NEWTOKEN(PSI_T_LIB); goto start; } -#line 2935 "src/parser.c" +#line 2936 "src/parser.c" yy245: yyaccept = 5; yych = *(mrk = ++cur); @@ -3061,9 +3062,9 @@ yy252: default: goto yy61; } yy253: -#line 482 "src/parser.re" +#line 483 "src/parser.re" { NEWTOKEN(PSI_T_SET); goto start; } -#line 3067 "src/parser.c" +#line 3068 "src/parser.c" yy254: yyaccept = 5; yych = *(mrk = ++cur); @@ -3289,9 +3290,9 @@ yy272: default: goto yy61; } yy273: -#line 450 "src/parser.re" +#line 451 "src/parser.re" { NEWTOKEN(PSI_T_INT); goto start; } -#line 3295 "src/parser.c" +#line 3296 "src/parser.c" yy274: yyaccept = 5; yych = *(mrk = ++cur); @@ -3357,9 +3358,9 @@ yy281: yy282: ++cur; cur -= 1; -#line 388 "src/parser.re" +#line 389 "src/parser.re" { char_width = 1; } -#line 3363 "src/parser.c" +#line 3364 "src/parser.c" yy284: yyaccept = 5; yych = *(mrk = ++cur); @@ -3391,27 +3392,27 @@ yy287: yy288: ++cur; cur -= 2; -#line 383 "src/parser.re" +#line 384 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_DD; cur += 2; goto start; } -#line 3397 "src/parser.c" +#line 3398 "src/parser.c" yy290: ++cur; cur -= 2; -#line 382 "src/parser.re" +#line 383 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_DF; cur += 2; goto start; } -#line 3403 "src/parser.c" +#line 3404 "src/parser.c" yy292: ++cur; cur -= 2; -#line 384 "src/parser.re" +#line 385 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_DL; cur += 2; goto start; } -#line 3409 "src/parser.c" +#line 3410 "src/parser.c" yy294: ++cur; cur -= 3; -#line 377 "src/parser.re" +#line 378 "src/parser.re" { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_ULL; cur += 3; goto start; } -#line 3415 "src/parser.c" +#line 3416 "src/parser.c" yy296: ++cur; if ((lim - cur) < 3) if (cur >= lim) goto done;; @@ -3567,9 +3568,9 @@ yy304: default: goto yy61; } yy305: -#line 460 "src/parser.re" +#line 461 "src/parser.re" { NEWTOKEN(PSI_T_ELIF); goto start; } -#line 3573 "src/parser.c" +#line 3574 "src/parser.c" yy306: yyaccept = 16; yych = *(mrk = ++cur); @@ -3642,9 +3643,9 @@ yy306: default: goto yy61; } yy307: -#line 459 "src/parser.re" +#line 460 "src/parser.re" { NEWTOKEN(PSI_T_ELSE); goto start; } -#line 3648 "src/parser.c" +#line 3649 "src/parser.c" yy308: yyaccept = 5; yych = *(mrk = ++cur); @@ -3749,9 +3750,9 @@ yy312: default: goto yy61; } yy313: -#line 487 "src/parser.re" +#line 488 "src/parser.re" { NEWTOKEN(PSI_T_FREE); goto start; } -#line 3755 "src/parser.c" +#line 3756 "src/parser.c" yy314: yyaccept = 5; yych = *(mrk = ++cur); @@ -3872,9 +3873,9 @@ yy320: default: goto yy61; } yy321: -#line 471 "src/parser.re" +#line 472 "src/parser.re" { NEWTOKEN(PSI_T_NULL); goto start; } -#line 3878 "src/parser.c" +#line 3879 "src/parser.c" yy322: yyaccept = 5; yych = *(mrk = ++cur); @@ -4026,9 +4027,9 @@ yy332: default: goto yy61; } yy333: -#line 488 "src/parser.re" +#line 489 "src/parser.re" { NEWTOKEN(PSI_T_TEMP); goto start; } -#line 4032 "src/parser.c" +#line 4033 "src/parser.c" yy334: yyaccept = 5; yych = *(mrk = ++cur); @@ -4149,9 +4150,9 @@ yy340: default: goto yy61; } yy341: -#line 469 "src/parser.re" +#line 470 "src/parser.re" { NEWTOKEN(PSI_T_TRUE); goto start; } -#line 4155 "src/parser.c" +#line 4156 "src/parser.c" yy342: yyaccept = 5; yych = *(mrk = ++cur); @@ -4240,9 +4241,9 @@ yy344: default: goto yy61; } yy345: -#line 497 "src/parser.re" +#line 498 "src/parser.re" { NEWTOKEN(PSI_T_ZVAL); goto start; } -#line 4246 "src/parser.c" +#line 4247 "src/parser.c" yy346: yyaccept = 5; yych = *(mrk = ++cur); @@ -4352,9 +4353,9 @@ yy351: default: goto yy61; } yy352: -#line 447 "src/parser.re" +#line 448 "src/parser.re" { NEWTOKEN(PSI_T_BOOL); goto start; } -#line 4358 "src/parser.c" +#line 4359 "src/parser.c" yy353: yyaccept = 23; yych = *(mrk = ++cur); @@ -4427,9 +4428,9 @@ yy353: default: goto yy61; } yy354: -#line 448 "src/parser.re" +#line 449 "src/parser.re" { NEWTOKEN(PSI_T_CHAR); goto start; } -#line 4433 "src/parser.c" +#line 4434 "src/parser.c" yy355: yyaccept = 5; yych = *(mrk = ++cur); @@ -4516,9 +4517,9 @@ yy357: default: goto yy61; } yy358: -#line 444 "src/parser.re" +#line 445 "src/parser.re" { NEWTOKEN(PSI_T_ENUM); goto start; } -#line 4522 "src/parser.c" +#line 4523 "src/parser.c" yy359: yyaccept = 5; yych = *(mrk = ++cur); @@ -4599,9 +4600,9 @@ yy360: default: goto yy61; } yy361: -#line 440 "src/parser.re" +#line 441 "src/parser.re" { NEWTOKEN(PSI_T_LINE); goto start; } -#line 4605 "src/parser.c" +#line 4606 "src/parser.c" yy362: yyaccept = 26; yych = *(mrk = ++cur); @@ -4674,9 +4675,9 @@ yy362: default: goto yy61; } yy363: -#line 451 "src/parser.re" +#line 452 "src/parser.re" { NEWTOKEN(PSI_T_LONG); goto start; } -#line 4680 "src/parser.c" +#line 4681 "src/parser.c" yy364: yyaccept = 5; yych = *(mrk = ++cur); @@ -4805,9 +4806,9 @@ yy372: default: goto yy61; } yy373: -#line 446 "src/parser.re" +#line 447 "src/parser.re" { NEWTOKEN(PSI_T_VOID); goto start; } -#line 4811 "src/parser.c" +#line 4812 "src/parser.c" yy374: yyaccept = 5; yych = *(mrk = ++cur); @@ -4887,9 +4888,9 @@ yy375: default: goto yy61; } yy376: -#line 475 "src/parser.re" +#line 476 "src/parser.re" { NEWTOKEN(PSI_T_ARRAY); goto start; } -#line 4893 "src/parser.c" +#line 4894 "src/parser.c" yy377: yyaccept = 5; yych = *(mrk = ++cur); @@ -5002,9 +5003,9 @@ yy382: default: goto yy61; } yy383: -#line 498 "src/parser.re" +#line 499 "src/parser.re" { NEWTOKEN(PSI_T_COUNT); goto start; } -#line 5008 "src/parser.c" +#line 5009 "src/parser.c" yy384: yyaccept = 5; yych = *(mrk = ++cur); @@ -5085,9 +5086,9 @@ yy385: default: goto yy61; } yy386: -#line 461 "src/parser.re" +#line 462 "src/parser.re" { NEWTOKEN(PSI_T_ENDIF); goto start; } -#line 5091 "src/parser.c" +#line 5092 "src/parser.c" yy387: yyaccept = 31; yych = *(mrk = ++cur); @@ -5160,9 +5161,9 @@ yy387: default: goto yy61; } yy388: -#line 466 "src/parser.re" +#line 467 "src/parser.re" { NEWTOKEN(PSI_T_ERROR); goto start; } -#line 5166 "src/parser.c" +#line 5167 "src/parser.c" yy389: yyaccept = 32; yych = *(mrk = ++cur); @@ -5235,9 +5236,9 @@ yy389: default: goto yy61; } yy390: -#line 470 "src/parser.re" +#line 471 "src/parser.re" { NEWTOKEN(PSI_T_FALSE); goto start; } -#line 5241 "src/parser.c" +#line 5242 "src/parser.c" yy391: yyaccept = 5; yych = *(mrk = ++cur); @@ -5326,9 +5327,9 @@ yy393: default: goto yy61; } yy394: -#line 457 "src/parser.re" +#line 458 "src/parser.re" { NEWTOKEN(PSI_T_IFDEF); goto start; } -#line 5332 "src/parser.c" +#line 5333 "src/parser.c" yy395: yyaccept = 5; yych = *(mrk = ++cur); @@ -5425,9 +5426,9 @@ yy398: default: goto yy61; } yy399: -#line 472 "src/parser.re" +#line 473 "src/parser.re" { NEWTOKEN(PSI_T_MIXED); goto start; } -#line 5431 "src/parser.c" +#line 5432 "src/parser.c" yy400: yyaccept = 5; yych = *(mrk = ++cur); @@ -5628,9 +5629,9 @@ yy416: default: goto yy61; } yy417: -#line 464 "src/parser.re" +#line 465 "src/parser.re" { NEWTOKEN(PSI_T_UNDEF); goto start; } -#line 5634 "src/parser.c" +#line 5635 "src/parser.c" yy418: yyaccept = 5; yych = *(mrk = ++cur); @@ -5746,9 +5747,9 @@ yy424: default: goto yy61; } yy425: -#line 445 "src/parser.re" +#line 446 "src/parser.re" { NEWTOKEN(PSI_T_CONST); goto start; } -#line 5752 "src/parser.c" +#line 5753 "src/parser.c" yy426: yyaccept = 5; yych = *(mrk = ++cur); @@ -5830,9 +5831,9 @@ yy427: default: goto yy61; } yy428: -#line 452 "src/parser.re" +#line 453 "src/parser.re" { NEWTOKEN(PSI_T_FLOAT); goto start; } -#line 5836 "src/parser.c" +#line 5837 "src/parser.c" yy429: yyaccept = 5; yych = *(mrk = ++cur); @@ -5912,9 +5913,9 @@ yy430: default: goto yy61; } yy431: -#line 449 "src/parser.re" +#line 450 "src/parser.re" { NEWTOKEN(PSI_T_SHORT); goto start; } -#line 5918 "src/parser.c" +#line 5919 "src/parser.c" yy432: yyaccept = 5; yych = *(mrk = ++cur); @@ -6015,9 +6016,9 @@ yy436: default: goto yy61; } yy437: -#line 443 "src/parser.re" +#line 444 "src/parser.re" { NEWTOKEN(PSI_T_UNION); goto start; } -#line 6021 "src/parser.c" +#line 6022 "src/parser.c" yy438: yyaccept = 5; yych = *(mrk = ++cur); @@ -6104,9 +6105,9 @@ yy440: default: goto yy61; } yy441: -#line 495 "src/parser.re" +#line 496 "src/parser.re" { NEWTOKEN(PSI_T_ARRVAL); goto start; } -#line 6110 "src/parser.c" +#line 6111 "src/parser.c" yy442: yyaccept = 5; yych = *(mrk = ++cur); @@ -6203,9 +6204,9 @@ yy445: default: goto yy61; } yy446: -#line 499 "src/parser.re" +#line 500 "src/parser.re" { NEWTOKEN(PSI_T_CALLOC); goto start; } -#line 6209 "src/parser.c" +#line 6210 "src/parser.c" yy447: yyaccept = 42; yych = *(mrk = ++cur); @@ -6280,9 +6281,9 @@ yy447: default: goto yy61; } yy448: -#line 462 "src/parser.re" +#line 463 "src/parser.re" { NEWTOKEN(PSI_T_DEFINE); goto start; } -#line 6286 "src/parser.c" +#line 6287 "src/parser.c" yy449: yyaccept = 5; yych = *(mrk = ++cur); @@ -6371,9 +6372,9 @@ yy451: default: goto yy61; } yy452: -#line 458 "src/parser.re" +#line 459 "src/parser.re" { NEWTOKEN(PSI_T_IFNDEF); goto start; } -#line 6377 "src/parser.c" +#line 6378 "src/parser.c" yy453: yyaccept = 5; yych = *(mrk = ++cur); @@ -6454,9 +6455,9 @@ yy454: default: goto yy61; } yy455: -#line 492 "src/parser.re" +#line 493 "src/parser.re" { NEWTOKEN(PSI_T_INTVAL); goto start; } -#line 6460 "src/parser.c" +#line 6461 "src/parser.c" yy456: yyaccept = 45; yych = *(mrk = ++cur); @@ -6529,9 +6530,9 @@ yy456: default: goto yy61; } yy457: -#line 476 "src/parser.re" +#line 477 "src/parser.re" { NEWTOKEN(PSI_T_OBJECT); goto start; } -#line 6535 "src/parser.c" +#line 6536 "src/parser.c" yy458: yyaccept = 46; yych = *(mrk = ++cur); @@ -6604,9 +6605,9 @@ yy458: default: goto yy61; } yy459: -#line 496 "src/parser.re" +#line 497 "src/parser.re" { NEWTOKEN(PSI_T_OBJVAL); goto start; } -#line 6610 "src/parser.c" +#line 6611 "src/parser.c" yy460: yyaccept = 5; yych = *(mrk = ++cur); @@ -6703,9 +6704,9 @@ yy463: default: goto yy61; } yy464: -#line 485 "src/parser.re" +#line 486 "src/parser.re" { NEWTOKEN(PSI_T_RETURN); goto start; } -#line 6709 "src/parser.c" +#line 6710 "src/parser.c" yy465: yyaccept = 48; yych = *(mrk = ++cur); @@ -6778,9 +6779,9 @@ yy465: default: goto yy61; } yy466: -#line 478 "src/parser.re" +#line 479 "src/parser.re" { NEWTOKEN(PSI_T_STATIC); goto start; } -#line 6784 "src/parser.c" +#line 6785 "src/parser.c" yy467: yyaccept = 49; yych = *(mrk = ++cur); @@ -6853,9 +6854,9 @@ yy467: default: goto yy61; } yy468: -#line 474 "src/parser.re" +#line 475 "src/parser.re" { NEWTOKEN(PSI_T_STRING); goto start; } -#line 6859 "src/parser.c" +#line 6860 "src/parser.c" yy469: yyaccept = 50; yych = *(mrk = ++cur); @@ -6928,9 +6929,9 @@ yy469: default: goto yy61; } yy470: -#line 489 "src/parser.re" +#line 490 "src/parser.re" { NEWTOKEN(PSI_T_STRLEN); goto start; } -#line 6934 "src/parser.c" +#line 6935 "src/parser.c" yy471: yyaccept = 51; yych = *(mrk = ++cur); @@ -7003,9 +7004,9 @@ yy471: default: goto yy61; } yy472: -#line 490 "src/parser.re" +#line 491 "src/parser.re" { NEWTOKEN(PSI_T_STRVAL); goto start; } -#line 7009 "src/parser.c" +#line 7010 "src/parser.c" yy473: yyaccept = 5; yych = *(mrk = ++cur); @@ -7102,9 +7103,9 @@ yy476: default: goto yy61; } yy477: -#line 503 "src/parser.re" +#line 504 "src/parser.re" { NEWTOKEN(PSI_T_TO_INT); goto start; } -#line 7108 "src/parser.c" +#line 7109 "src/parser.c" yy478: yyaccept = 5; yych = *(mrk = ++cur); @@ -7236,9 +7237,9 @@ yy486: default: goto yy61; } yy487: -#line 453 "src/parser.re" +#line 454 "src/parser.re" { NEWTOKEN(PSI_T_DOUBLE); goto start; } -#line 7242 "src/parser.c" +#line 7243 "src/parser.c" yy488: yyaccept = 54; yych = *(mrk = ++cur); @@ -7311,9 +7312,9 @@ yy488: default: goto yy527; } yy489: -#line 432 "src/parser.re" +#line 433 "src/parser.re" { NEWTOKEN(PSI_T_PRAGMA); goto start; } -#line 7317 "src/parser.c" +#line 7318 "src/parser.c" yy490: yyaccept = 55; yych = *(mrk = ++cur); @@ -7386,9 +7387,9 @@ yy490: default: goto yy61; } yy491: -#line 455 "src/parser.re" +#line 456 "src/parser.re" { NEWTOKEN(PSI_T_SIGNED); goto start; } -#line 7392 "src/parser.c" +#line 7393 "src/parser.c" yy492: yyaccept = 56; yych = *(mrk = ++cur); @@ -7461,9 +7462,9 @@ yy492: default: goto yy61; } yy493: -#line 439 "src/parser.re" +#line 440 "src/parser.re" { NEWTOKEN(PSI_T_SIZEOF); goto start; } -#line 7467 "src/parser.c" +#line 7468 "src/parser.c" yy494: yyaccept = 57; yych = *(mrk = ++cur); @@ -7536,9 +7537,9 @@ yy494: default: goto yy61; } yy495: -#line 442 "src/parser.re" +#line 443 "src/parser.re" { NEWTOKEN(PSI_T_STRUCT); goto start; } -#line 7542 "src/parser.c" +#line 7543 "src/parser.c" yy496: yyaccept = 5; yych = *(mrk = ++cur); @@ -7632,9 +7633,9 @@ yy499: default: goto yy61; } yy500: -#line 494 "src/parser.re" +#line 495 "src/parser.re" { NEWTOKEN(PSI_T_BOOLVAL); goto start; } -#line 7638 "src/parser.c" +#line 7639 "src/parser.c" yy501: yyaccept = 5; yych = *(mrk = ++cur); @@ -7723,9 +7724,9 @@ yy503: default: goto yy61; } yy504: -#line 463 "src/parser.re" +#line 464 "src/parser.re" { NEWTOKEN(PSI_T_DEFINED); goto start; } -#line 7729 "src/parser.c" +#line 7730 "src/parser.c" yy505: yyaccept = 5; yych = *(mrk = ++cur); @@ -7815,9 +7816,9 @@ yy507: default: goto yy61; } yy508: -#line 467 "src/parser.re" +#line 468 "src/parser.re" { NEWTOKEN(PSI_T_INCLUDE); goto start; } -#line 7821 "src/parser.c" +#line 7822 "src/parser.c" yy509: yyaccept = 61; yych = *(mrk = ++cur); @@ -7890,9 +7891,9 @@ yy509: default: goto yy61; } yy510: -#line 491 "src/parser.re" +#line 492 "src/parser.re" { NEWTOKEN(PSI_T_PATHVAL); goto start; } -#line 7896 "src/parser.c" +#line 7897 "src/parser.c" yy511: yyaccept = 5; yych = *(mrk = ++cur); @@ -7989,9 +7990,9 @@ yy514: default: goto yy61; } yy515: -#line 505 "src/parser.re" +#line 506 "src/parser.re" { NEWTOKEN(PSI_T_TO_BOOL); goto start; } -#line 7995 "src/parser.c" +#line 7996 "src/parser.c" yy516: yyaccept = 5; yych = *(mrk = ++cur); @@ -8088,9 +8089,9 @@ yy519: default: goto yy61; } yy520: -#line 465 "src/parser.re" +#line 466 "src/parser.re" { NEWTOKEN(PSI_T_WARNING); goto start; } -#line 8094 "src/parser.c" +#line 8095 "src/parser.c" yy521: yyaccept = 64; yych = *(mrk = ++cur); @@ -8163,9 +8164,9 @@ yy521: default: goto yy61; } yy522: -#line 437 "src/parser.re" +#line 438 "src/parser.re" { NEWTOKEN(PSI_T_CPP_ASM); goto start; } -#line 8169 "src/parser.c" +#line 8170 "src/parser.c" yy523: yyaccept = 5; yych = *(mrk = ++cur); @@ -8340,9 +8341,9 @@ yy529: default: goto yy61; } yy530: -#line 441 "src/parser.re" +#line 442 "src/parser.re" { NEWTOKEN(PSI_T_TYPEDEF); goto start; } -#line 8346 "src/parser.c" +#line 8347 "src/parser.c" yy531: yyaccept = 5; yych = *(mrk = ++cur); @@ -8429,9 +8430,9 @@ yy533: default: goto yy61; } yy534: -#line 473 "src/parser.re" +#line 474 "src/parser.re" { NEWTOKEN(PSI_T_CALLABLE); goto start; } -#line 8435 "src/parser.c" +#line 8436 "src/parser.c" yy535: yyaccept = 67; yych = *(mrk = ++cur); @@ -8504,9 +8505,9 @@ yy535: default: goto yy61; } yy536: -#line 477 "src/parser.re" +#line 478 "src/parser.re" { NEWTOKEN(PSI_T_CALLBACK); goto start; } -#line 8510 "src/parser.c" +#line 8511 "src/parser.c" yy537: yyaccept = 68; yych = *(mrk = ++cur); @@ -8579,9 +8580,9 @@ yy537: default: goto yy61; } yy538: -#line 493 "src/parser.re" +#line 494 "src/parser.re" { NEWTOKEN(PSI_T_FLOATVAL); goto start; } -#line 8585 "src/parser.c" +#line 8586 "src/parser.c" yy539: yyaccept = 69; yych = *(mrk = ++cur); @@ -8654,9 +8655,9 @@ yy539: default: goto yy61; } yy540: -#line 479 "src/parser.re" +#line 480 "src/parser.re" { NEWTOKEN(PSI_T_FUNCTION); goto start; } -#line 8660 "src/parser.c" +#line 8661 "src/parser.c" yy541: yyaccept = 5; yych = *(mrk = ++cur); @@ -8753,9 +8754,9 @@ yy544: default: goto yy61; } yy545: -#line 501 "src/parser.re" +#line 502 "src/parser.re" { NEWTOKEN(PSI_T_TO_ARRAY); goto start; } -#line 8759 "src/parser.c" +#line 8760 "src/parser.c" yy546: yyaccept = 71; yych = *(mrk = ++cur); @@ -8828,9 +8829,9 @@ yy546: default: goto yy61; } yy547: -#line 504 "src/parser.re" +#line 505 "src/parser.re" { NEWTOKEN(PSI_T_TO_FLOAT); goto start; } -#line 8834 "src/parser.c" +#line 8835 "src/parser.c" yy548: yyaccept = 5; yych = *(mrk = ++cur); @@ -8933,9 +8934,9 @@ yy552: default: goto yy61; } yy553: -#line 434 "src/parser.re" +#line 435 "src/parser.re" { NEWTOKEN(PSI_T_CPP_INLINE); goto start; } -#line 8939 "src/parser.c" +#line 8940 "src/parser.c" yy554: yyaccept = 5; yych = *(mrk = ++cur); @@ -9090,9 +9091,9 @@ yy557: default: goto yy61; } yy558: -#line 454 "src/parser.re" +#line 455 "src/parser.re" { NEWTOKEN(PSI_T_UNSIGNED); goto start; } -#line 9096 "src/parser.c" +#line 9097 "src/parser.c" yy559: yyaccept = 74; yych = *(mrk = ++cur); @@ -9165,9 +9166,9 @@ yy559: default: goto yy61; } yy560: -#line 438 "src/parser.re" +#line 439 "src/parser.re" { NEWTOKEN(PSI_T_VOLATILE); goto start; } -#line 9171 "src/parser.c" +#line 9172 "src/parser.c" yy561: yyaccept = 5; yych = *(mrk = ++cur); @@ -9264,9 +9265,9 @@ yy564: default: goto yy61; } yy565: -#line 500 "src/parser.re" +#line 501 "src/parser.re" { NEWTOKEN(PSI_T_TO_OBJECT); goto start; } -#line 9270 "src/parser.c" +#line 9271 "src/parser.c" yy566: yyaccept = 76; yych = *(mrk = ++cur); @@ -9339,9 +9340,9 @@ yy566: default: goto yy61; } yy567: -#line 502 "src/parser.re" +#line 503 "src/parser.re" { NEWTOKEN(PSI_T_TO_STRING); goto start; } -#line 9345 "src/parser.c" +#line 9346 "src/parser.c" yy568: yyaccept = 5; yych = *(mrk = ++cur); @@ -9526,9 +9527,9 @@ yy574: default: goto yy61; } yy575: -#line 483 "src/parser.re" +#line 484 "src/parser.re" { NEWTOKEN(PSI_T_PRE_ASSERT); goto start; } -#line 9532 "src/parser.c" +#line 9533 "src/parser.c" yy576: yyaccept = 5; yych = *(mrk = ++cur); @@ -9615,9 +9616,9 @@ yy578: default: goto yy61; } yy579: -#line 435 "src/parser.re" +#line 436 "src/parser.re" { NEWTOKEN(PSI_T_CPP_RESTRICT); goto start; } -#line 9621 "src/parser.c" +#line 9622 "src/parser.c" yy580: yyaccept = 5; mrk = ++cur; @@ -9773,9 +9774,9 @@ yy582: default: goto yy61; } yy583: -#line 484 "src/parser.re" +#line 485 "src/parser.re" { NEWTOKEN(PSI_T_POST_ASSERT); goto start; } -#line 9779 "src/parser.c" +#line 9780 "src/parser.c" yy584: yyaccept = 5; yych = *(mrk = ++cur); @@ -9865,9 +9866,9 @@ yy586: default: goto yy527; } yy587: -#line 433 "src/parser.re" +#line 434 "src/parser.re" { NEWTOKEN(PSI_T_PRAGMA_ONCE); goto start; } -#line 9871 "src/parser.c" +#line 9872 "src/parser.c" yy588: yyaccept = 81; yych = *(mrk = ++cur); @@ -9940,9 +9941,9 @@ yy588: default: goto yy61; } yy589: -#line 468 "src/parser.re" +#line 469 "src/parser.re" { NEWTOKEN(PSI_T_INCLUDE_NEXT); goto start; } -#line 9946 "src/parser.c" +#line 9947 "src/parser.c" yy590: yyaccept = 5; yych = *(mrk = ++cur); @@ -10039,9 +10040,9 @@ yy593: default: goto yy61; } yy594: -#line 436 "src/parser.re" +#line 437 "src/parser.re" { NEWTOKEN(PSI_T_CPP_EXTENSION); goto start; } -#line 10045 "src/parser.c" +#line 10046 "src/parser.c" yy595: ++cur; if ((lim - cur) < 2) if (cur >= lim) goto done;; @@ -10061,16 +10062,16 @@ yy597: } yy598: ++cur; -#line 510 "src/parser.re" +#line 511 "src/parser.re" { parens = 2; goto cpp_attribute; } -#line 10067 "src/parser.c" +#line 10068 "src/parser.c" } -#line 516 "src/parser.re" +#line 517 "src/parser.re" character: ; -#line 10074 "src/parser.c" +#line 10075 "src/parser.c" { unsigned char yych; if (lim <= cur) if (cur >= lim) goto done;; @@ -10084,17 +10085,17 @@ yy598: } yy602: ++cur; -#line 534 "src/parser.re" +#line 535 "src/parser.re" { escaped = false; goto character; } -#line 10090 "src/parser.c" +#line 10091 "src/parser.c" yy604: ++cur; -#line 521 "src/parser.re" +#line 522 "src/parser.re" { NEWLINE(); goto character; } -#line 10095 "src/parser.c" +#line 10096 "src/parser.c" yy606: ++cur; -#line 523 "src/parser.re" +#line 524 "src/parser.re" { if (escaped) { escaped = false; @@ -10106,19 +10107,19 @@ yy606: token->flags = char_width; goto start; } -#line 10110 "src/parser.c" +#line 10111 "src/parser.c" yy608: ++cur; -#line 522 "src/parser.re" +#line 523 "src/parser.re" { escaped = !escaped; goto character; } -#line 10115 "src/parser.c" +#line 10116 "src/parser.c" } -#line 536 "src/parser.re" +#line 537 "src/parser.re" string: ; -#line 10122 "src/parser.c" +#line 10123 "src/parser.c" { unsigned char yych; if (lim <= cur) if (cur >= lim) goto done;; @@ -10132,17 +10133,17 @@ yy608: } yy612: ++cur; -#line 554 "src/parser.re" +#line 555 "src/parser.re" { escaped = false; goto string; } -#line 10138 "src/parser.c" +#line 10139 "src/parser.c" yy614: ++cur; -#line 541 "src/parser.re" +#line 542 "src/parser.re" { NEWLINE(); goto string; } -#line 10143 "src/parser.c" +#line 10144 "src/parser.c" yy616: ++cur; -#line 543 "src/parser.re" +#line 544 "src/parser.re" { if (escaped) { escaped = false; @@ -10154,19 +10155,19 @@ yy616: token->flags = char_width; goto start; } -#line 10158 "src/parser.c" +#line 10159 "src/parser.c" yy618: ++cur; -#line 542 "src/parser.re" +#line 543 "src/parser.re" { escaped = !escaped; goto string; } -#line 10163 "src/parser.c" +#line 10164 "src/parser.c" } -#line 556 "src/parser.re" +#line 557 "src/parser.re" comment: ; -#line 10170 "src/parser.c" +#line 10171 "src/parser.c" { unsigned char yych; if ((lim - cur) < 2) if (cur >= lim) goto done;; @@ -10180,14 +10181,14 @@ yy618: yy622: ++cur; yy623: -#line 563 "src/parser.re" +#line 564 "src/parser.re" { goto comment; } -#line 10186 "src/parser.c" +#line 10187 "src/parser.c" yy624: ++cur; -#line 561 "src/parser.re" +#line 562 "src/parser.re" { NEWLINE(); goto comment; } -#line 10191 "src/parser.c" +#line 10192 "src/parser.c" yy626: yych = *++cur; switch (yych) { @@ -10196,16 +10197,16 @@ yy626: } yy627: ++cur; -#line 562 "src/parser.re" +#line 563 "src/parser.re" { NEWTOKEN(PSI_T_COMMENT); goto start; } -#line 10202 "src/parser.c" +#line 10203 "src/parser.c" } -#line 565 "src/parser.re" +#line 566 "src/parser.re" comment_sl: ; -#line 10209 "src/parser.c" +#line 10210 "src/parser.c" { unsigned char yych; if (lim <= cur) if (cur >= lim) goto done;; @@ -10217,22 +10218,22 @@ yy627: } yy631: ++cur; -#line 571 "src/parser.re" +#line 572 "src/parser.re" { goto comment_sl; } -#line 10223 "src/parser.c" +#line 10224 "src/parser.c" yy633: ++cur; -#line 570 "src/parser.re" +#line 571 "src/parser.re" { NEWTOKEN(PSI_T_COMMENT); NEWLINE(); goto start; } -#line 10228 "src/parser.c" +#line 10229 "src/parser.c" } -#line 573 "src/parser.re" +#line 574 "src/parser.re" cpp_attribute: ; -#line 10236 "src/parser.c" +#line 10237 "src/parser.c" { unsigned char yych; if (lim <= cur) if (cur >= lim) goto done;; @@ -10246,26 +10247,26 @@ yy633: } yy637: ++cur; -#line 582 "src/parser.re" +#line 583 "src/parser.re" { goto cpp_attribute; } -#line 10252 "src/parser.c" +#line 10253 "src/parser.c" yy639: ++cur; -#line 581 "src/parser.re" +#line 582 "src/parser.re" { NEWLINE(); goto cpp_attribute; } -#line 10257 "src/parser.c" +#line 10258 "src/parser.c" yy641: ++cur; -#line 579 "src/parser.re" +#line 580 "src/parser.re" { ++parens; goto cpp_attribute; } -#line 10262 "src/parser.c" +#line 10263 "src/parser.c" yy643: ++cur; -#line 580 "src/parser.re" +#line 581 "src/parser.re" { if (parens == 1) { NEWTOKEN(PSI_T_CPP_ATTRIBUTE); goto start; } else { --parens; goto cpp_attribute; } } -#line 10267 "src/parser.c" +#line 10268 "src/parser.c" } -#line 584 "src/parser.re" +#line 585 "src/parser.re" error: ; diff --git a/src/parser.re b/src/parser.re index b0d390d..7892b14 100644 --- a/src/parser.re +++ b/src/parser.re @@ -26,6 +26,7 @@ #include "php_psi_stdinc.h" #include #include +#include #include #include "parser.h" diff --git a/src/parser_proc.c b/src/parser_proc.c index 7a977b6..ddd3d56 100644 --- a/src/parser_proc.c +++ b/src/parser_proc.c @@ -409,41 +409,41 @@ static const unsigned short int yyrline[] = 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 441, 442, 445, - 446, 449, 450, 451, 452, 458, 466, 469, 472, 475, - 481, 484, 487, 490, 493, 499, 505, 508, 514, 537, - 541, 545, 550, 554, 558, 562, 569, 570, 574, 575, - 579, 580, 581, 585, 586, 590, 591, 595, 596, 597, - 601, 602, 606, 611, 616, 621, 630, 633, 636, 637, - 643, 648, 656, 659, 663, 667, 674, 678, 682, 686, - 691, 702, 713, 718, 723, 727, 733, 743, 746, 750, - 754, 760, 767, 771, 775, 782, 783, 784, 788, 802, - 808, 811, 817, 820, 826, 827, 835, 846, 855, 867, - 868, 872, 882, 891, 903, 904, 907, 913, 914, 918, - 922, 926, 931, 936, 944, 945, 946, 949, 955, 958, - 961, 967, 968, 972, 975, 978, 984, 987, 990, 998, - 1010, 1013, 1016, 1019, 1026, 1029, 1039, 1042, 1045, 1048, - 1049, 1050, 1054, 1057, 1060, 1071, 1078, 1088, 1091, 1097, - 1100, 1107, 1137, 1140, 1146, 1149, 1155, 1158, 1161, 1164, - 1170, 1174, 1175, 1179, 1180, 1184, 1185, 1192, 1193, 1197, - 1204, 1215, 1222, 1230, 1254, 1282, 1289, 1300, 1346, 1387, - 1402, 1405, 1408, 1414, 1417, 1423, 1438, 1441, 1470, 1478, - 1506, 1511, 1519, 1529, 1539, 1542, 1546, 1552, 1566, 1583, - 1586, 1592, 1599, 1609, 1616, 1619, 1625, 1630, 1638, 1642, - 1646, 1650, 1654, 1658, 1665, 1669, 1673, 1677, 1681, 1685, - 1691, 1695, 1702, 1705, 1717, 1721, 1725, 1732, 1745, 1758, - 1771, 1774, 1781, 1782, 1786, 1789, 1792, 1795, 1801, 1805, - 1812, 1815, 1818, 1833, 1834, 1835, 1836, 1840, 1843, 1849, - 1850, 1856, 1859, 1865, 1866, 1870, 1871, 1881, 1884, 1891, - 1896, 1901, 1911, 1914, 1920, 1923, 1929, 1936, 1943, 1950, - 1951, 1955, 1956, 1957, 1958, 1962, 1963, 1964, 1965, 1966, - 1970, 1973, 1979, 1982, 1985, 1988, 1991, 1997, 2001, 2009, - 2010, 2014, 2021, 2024, 2027, 2030, 2034, 2037, 2043, 2047, - 2055, 2062, 2067, 2075, 2083, 2084, 2085, 2086, 2087, 2088, - 2089, 2090, 2091, 2092, 2096, 2099, 2105, 2108, 2114, 2115, - 2119, 2122, 2128, 2131, 2137, 2144, 2148, 2155, 2158, 2161, - 2167, 2174, 2177, 2180, 2187, 2192, 2200, 2201, 2202, 2203, - 2204, 2205, 2206, 2207, 2211, 2214, 2220, 2223, 2229, 2236, - 2237, 2241, 2248, 2251, 2257, 2265, 2268, 2274 + 446, 449, 450, 451, 452, 458, 462, 465, 468, 471, + 477, 480, 483, 486, 489, 495, 501, 504, 510, 533, + 537, 541, 546, 550, 554, 558, 565, 566, 570, 571, + 575, 576, 577, 581, 582, 586, 587, 591, 592, 593, + 597, 598, 602, 607, 612, 617, 626, 629, 632, 633, + 639, 644, 652, 655, 659, 663, 670, 674, 678, 682, + 687, 698, 709, 714, 719, 723, 729, 739, 742, 746, + 750, 756, 763, 767, 771, 778, 779, 780, 784, 798, + 804, 807, 813, 816, 822, 823, 831, 842, 851, 863, + 864, 868, 878, 887, 899, 900, 903, 909, 910, 914, + 918, 922, 927, 932, 940, 941, 942, 945, 951, 954, + 957, 963, 964, 968, 971, 974, 980, 983, 986, 994, + 1006, 1009, 1012, 1015, 1022, 1025, 1035, 1038, 1041, 1044, + 1045, 1046, 1050, 1053, 1056, 1067, 1074, 1084, 1087, 1093, + 1096, 1103, 1133, 1136, 1142, 1145, 1151, 1154, 1157, 1160, + 1166, 1170, 1171, 1175, 1176, 1180, 1181, 1188, 1189, 1193, + 1200, 1211, 1218, 1226, 1250, 1278, 1285, 1296, 1342, 1383, + 1398, 1401, 1404, 1410, 1413, 1419, 1434, 1437, 1466, 1474, + 1502, 1507, 1515, 1525, 1535, 1538, 1542, 1548, 1562, 1579, + 1582, 1588, 1595, 1605, 1612, 1615, 1621, 1626, 1634, 1638, + 1642, 1646, 1650, 1654, 1661, 1665, 1669, 1673, 1677, 1681, + 1687, 1691, 1698, 1701, 1713, 1717, 1721, 1728, 1741, 1754, + 1767, 1770, 1777, 1778, 1782, 1785, 1788, 1791, 1797, 1801, + 1808, 1811, 1814, 1829, 1830, 1831, 1832, 1836, 1839, 1845, + 1846, 1852, 1855, 1861, 1862, 1866, 1867, 1877, 1880, 1887, + 1892, 1897, 1907, 1910, 1916, 1919, 1925, 1932, 1939, 1946, + 1947, 1951, 1952, 1953, 1954, 1958, 1959, 1960, 1961, 1962, + 1966, 1969, 1975, 1978, 1981, 1984, 1987, 1993, 1997, 2005, + 2006, 2010, 2017, 2020, 2023, 2026, 2030, 2033, 2039, 2043, + 2051, 2058, 2063, 2071, 2079, 2080, 2081, 2082, 2083, 2084, + 2085, 2086, 2087, 2088, 2092, 2095, 2101, 2104, 2110, 2111, + 2115, 2118, 2124, 2127, 2133, 2140, 2144, 2151, 2154, 2157, + 2163, 2170, 2173, 2176, 2183, 2188, 2196, 2197, 2198, 2199, + 2200, 2201, 2202, 2203, 2207, 2210, 2216, 2219, 2225, 2232, + 2233, 2237, 2244, 2247, 2253, 2261, 2264, 2270 }; #endif @@ -4307,117 +4307,113 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, case 285: #line 458 "src/parser_proc_grammar.y" /* glr.c:816 */ { - if (P->file.ln) { - P->error(PSI_DATA(P), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), PSI_WARNING, - "Extra 'lib \"%s\"' statement has no effect", (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text); - } else { - P->file.ln = strndup((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->size); - } + char *libname = strdup((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text); + P->file.libnames = psi_plist_add(P->file.libnames, &libname); } -#line 4318 "src/parser_proc.c" /* glr.c:816 */ +#line 4314 "src/parser_proc.c" /* glr.c:816 */ break; case 286: -#line 466 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 462 "src/parser_proc_grammar.y" /* glr.c:816 */ { psi_parser_proc_add_const(P, (*(struct psi_const **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 4326 "src/parser_proc.c" /* glr.c:816 */ +#line 4322 "src/parser_proc.c" /* glr.c:816 */ break; case 287: -#line 469 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 465 "src/parser_proc_grammar.y" /* glr.c:816 */ { psi_parser_proc_add_decl(P, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 4334 "src/parser_proc.c" /* glr.c:816 */ +#line 4330 "src/parser_proc.c" /* glr.c:816 */ break; case 288: -#line 472 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 468 "src/parser_proc_grammar.y" /* glr.c:816 */ { psi_parser_proc_add_decl_extvars(P, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 4342 "src/parser_proc.c" /* glr.c:816 */ +#line 4338 "src/parser_proc.c" /* glr.c:816 */ break; case 289: -#line 475 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 471 "src/parser_proc_grammar.y" /* glr.c:816 */ { if (P->flags & PSI_DEBUG) { P->error(PSI_DATA(P), (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token, PSI_NOTICE, "Ignored decl: %s", (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name); } psi_decl_free(&(*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 4353 "src/parser_proc.c" /* glr.c:816 */ +#line 4349 "src/parser_proc.c" /* glr.c:816 */ break; case 290: -#line 481 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 477 "src/parser_proc_grammar.y" /* glr.c:816 */ { psi_parser_proc_add_typedef(P, (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 4361 "src/parser_proc.c" /* glr.c:816 */ +#line 4357 "src/parser_proc.c" /* glr.c:816 */ break; case 291: -#line 484 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 480 "src/parser_proc_grammar.y" /* glr.c:816 */ { psi_parser_proc_add_struct(P, (*(struct psi_decl_struct **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 4369 "src/parser_proc.c" /* glr.c:816 */ +#line 4365 "src/parser_proc.c" /* glr.c:816 */ break; case 292: -#line 487 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 483 "src/parser_proc_grammar.y" /* glr.c:816 */ { psi_parser_proc_add_union(P, (*(struct psi_decl_union **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 4377 "src/parser_proc.c" /* glr.c:816 */ +#line 4373 "src/parser_proc.c" /* glr.c:816 */ break; case 293: -#line 490 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 486 "src/parser_proc_grammar.y" /* glr.c:816 */ { psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 4385 "src/parser_proc.c" /* glr.c:816 */ +#line 4381 "src/parser_proc.c" /* glr.c:816 */ break; case 294: -#line 493 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 489 "src/parser_proc_grammar.y" /* glr.c:816 */ { psi_parser_proc_add_impl(P, (*(struct psi_impl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 4393 "src/parser_proc.c" /* glr.c:816 */ +#line 4389 "src/parser_proc.c" /* glr.c:816 */ break; case 295: -#line 499 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 495 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)); } -#line 4401 "src/parser_proc.c" /* glr.c:816 */ +#line 4397 "src/parser_proc.c" /* glr.c:816 */ break; case 296: -#line 505 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 501 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL; } -#line 4409 "src/parser_proc.c" /* glr.c:816 */ +#line 4405 "src/parser_proc.c" /* glr.c:816 */ break; case 297: -#line 508 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 504 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_cpp_exp **)(&(*yyvalp))) = (*(struct psi_cpp_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)); } -#line 4417 "src/parser_proc.c" /* glr.c:816 */ +#line 4413 "src/parser_proc.c" /* glr.c:816 */ break; case 298: -#line 514 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 510 "src/parser_proc_grammar.y" /* glr.c:816 */ { if ((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) { struct psi_token *msg = NULL; @@ -4441,222 +4437,222 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, } (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } -#line 4445 "src/parser_proc.c" /* glr.c:816 */ +#line 4441 "src/parser_proc.c" /* glr.c:816 */ break; case 299: -#line 537 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 533 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)))); (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } -#line 4454 "src/parser_proc.c" /* glr.c:816 */ +#line 4450 "src/parser_proc.c" /* glr.c:816 */ break; case 300: -#line 541 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 537 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL); (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 4463 "src/parser_proc.c" /* glr.c:816 */ +#line 4459 "src/parser_proc.c" /* glr.c:816 */ break; case 301: -#line 545 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 541 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME; (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)))); (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } -#line 4473 "src/parser_proc.c" /* glr.c:816 */ +#line 4469 "src/parser_proc.c" /* glr.c:816 */ break; case 302: -#line 550 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 546 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, (*(struct psi_cpp_macro_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } -#line 4482 "src/parser_proc.c" /* glr.c:816 */ +#line 4478 "src/parser_proc.c" /* glr.c:816 */ break; case 303: -#line 554 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 550 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } -#line 4491 "src/parser_proc.c" /* glr.c:816 */ +#line 4487 "src/parser_proc.c" /* glr.c:816 */ break; case 304: -#line 558 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 554 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_cpp_exp **)(&(*yyvalp))) = psi_cpp_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, NULL); (*(struct psi_cpp_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 4500 "src/parser_proc.c" /* glr.c:816 */ +#line 4496 "src/parser_proc.c" /* glr.c:816 */ break; case 305: -#line 562 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 558 "src/parser_proc_grammar.y" /* glr.c:816 */ { psi_plist_free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_cpp_exp **)(&(*yyvalp))) = NULL; } -#line 4509 "src/parser_proc.c" /* glr.c:816 */ +#line 4505 "src/parser_proc.c" /* glr.c:816 */ break; case 322: -#line 606 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 602 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME; (*(struct psi_cpp_macro_decl **)(&(*yyvalp))) = psi_cpp_macro_decl_init(NULL, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), NULL); (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } -#line 4519 "src/parser_proc.c" /* glr.c:816 */ +#line 4515 "src/parser_proc.c" /* glr.c:816 */ break; case 323: -#line 611 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 607 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->type = PSI_T_NAME; (*(struct psi_cpp_macro_decl **)(&(*yyvalp))) = psi_cpp_macro_decl_init((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), NULL); (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))); } -#line 4529 "src/parser_proc.c" /* glr.c:816 */ +#line 4525 "src/parser_proc.c" /* glr.c:816 */ break; case 324: -#line 616 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 612 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME; (*(struct psi_cpp_macro_decl **)(&(*yyvalp))) = psi_cpp_macro_decl_init(NULL, psi_num_exp_tokens((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), NULL), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } -#line 4539 "src/parser_proc.c" /* glr.c:816 */ +#line 4535 "src/parser_proc.c" /* glr.c:816 */ break; case 325: -#line 621 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 617 "src/parser_proc_grammar.y" /* glr.c:816 */ { struct psi_plist *list = psi_plist_init((psi_plist_dtor) psi_token_free); (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME; (*(struct psi_cpp_macro_decl **)(&(*yyvalp))) = psi_cpp_macro_decl_init(NULL, psi_plist_add(list, &(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))), NULL); (*(struct psi_cpp_macro_decl **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } -#line 4550 "src/parser_proc.c" /* glr.c:816 */ +#line 4546 "src/parser_proc.c" /* glr.c:816 */ break; case 326: -#line 630 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 626 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL); } -#line 4558 "src/parser_proc.c" /* glr.c:816 */ +#line 4554 "src/parser_proc.c" /* glr.c:816 */ break; case 327: -#line 633 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 629 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_init(NULL); /* FIXME */ } -#line 4566 "src/parser_proc.c" /* glr.c:816 */ +#line 4562 "src/parser_proc.c" /* glr.c:816 */ break; case 329: -#line 637 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 633 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)); } -#line 4574 "src/parser_proc.c" /* glr.c:816 */ +#line 4570 "src/parser_proc.c" /* glr.c:816 */ break; case 330: -#line 643 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 639 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME; (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_token_free), &(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 4584 "src/parser_proc.c" /* glr.c:816 */ +#line 4580 "src/parser_proc.c" /* glr.c:816 */ break; case 331: -#line 648 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 644 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME; (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 4594 "src/parser_proc.c" /* glr.c:816 */ +#line 4590 "src/parser_proc.c" /* glr.c:816 */ break; case 332: -#line 656 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 652 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = NULL; } -#line 4602 "src/parser_proc.c" /* glr.c:816 */ +#line 4598 "src/parser_proc.c" /* glr.c:816 */ break; case 334: -#line 663 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 659 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_token_free), &(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 4611 "src/parser_proc.c" /* glr.c:816 */ +#line 4607 "src/parser_proc.c" /* glr.c:816 */ break; case 335: -#line 667 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 663 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), &(*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 4620 "src/parser_proc.c" /* glr.c:816 */ +#line 4616 "src/parser_proc.c" /* glr.c:816 */ break; case 336: -#line 674 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 670 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_unary((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))); } -#line 4629 "src/parser_proc.c" /* glr.c:816 */ +#line 4625 "src/parser_proc.c" /* glr.c:816 */ break; case 337: -#line 678 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 674 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_unary((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } -#line 4638 "src/parser_proc.c" /* glr.c:816 */ +#line 4634 "src/parser_proc.c" /* glr.c:816 */ break; case 338: -#line 682 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 678 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_binary((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } -#line 4647 "src/parser_proc.c" /* glr.c:816 */ +#line 4643 "src/parser_proc.c" /* glr.c:816 */ break; case 339: -#line 686 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 682 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_ternary((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))); } -#line 4656 "src/parser_proc.c" /* glr.c:816 */ +#line 4652 "src/parser_proc.c" /* glr.c:816 */ break; case 340: -#line 691 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 687 "src/parser_proc_grammar.y" /* glr.c:816 */ { { uint8_t exists; @@ -4668,11 +4664,11 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } } -#line 4672 "src/parser_proc.c" /* glr.c:816 */ +#line 4668 "src/parser_proc.c" /* glr.c:816 */ break; case 341: -#line 702 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 698 "src/parser_proc_grammar.y" /* glr.c:816 */ { { uint8_t exists; @@ -4684,51 +4680,51 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } } -#line 4688 "src/parser_proc.c" /* glr.c:816 */ +#line 4684 "src/parser_proc.c" /* glr.c:816 */ break; case 342: -#line 713 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 709 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->flags)); (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 4698 "src/parser_proc.c" /* glr.c:816 */ +#line 4694 "src/parser_proc.c" /* glr.c:816 */ break; case 343: -#line 718 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 714 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0)); (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 4708 "src/parser_proc.c" /* glr.c:816 */ +#line 4704 "src/parser_proc.c" /* glr.c:816 */ break; case 344: -#line 723 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 719 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token); } -#line 4717 "src/parser_proc.c" /* glr.c:816 */ +#line 4713 "src/parser_proc.c" /* glr.c:816 */ break; case 345: -#line 727 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 723 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME; (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_DEFINE, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0)); (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 4728 "src/parser_proc.c" /* glr.c:816 */ +#line 4724 "src/parser_proc.c" /* glr.c:816 */ break; case 346: -#line 733 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 729 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME; (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num(psi_number_init(PSI_T_FUNCTION, @@ -4736,120 +4732,120 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))); (*(struct psi_num_exp **)(&(*yyvalp)))->data.n->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))); } -#line 4740 "src/parser_proc.c" /* glr.c:816 */ +#line 4736 "src/parser_proc.c" /* glr.c:816 */ break; case 347: -#line 743 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 739 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = NULL; } -#line 4748 "src/parser_proc.c" /* glr.c:816 */ +#line 4744 "src/parser_proc.c" /* glr.c:816 */ break; case 349: -#line 750 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 746 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_num_exp_free), &(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 4757 "src/parser_proc.c" /* glr.c:816 */ +#line 4753 "src/parser_proc.c" /* glr.c:816 */ break; case 350: -#line 754 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 750 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 4765 "src/parser_proc.c" /* glr.c:816 */ +#line 4761 "src/parser_proc.c" /* glr.c:816 */ break; case 351: -#line 760 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 756 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_const **)(&(*yyvalp))) = psi_const_init((*(struct psi_impl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text, (*(struct psi_impl_def_val **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); (*(struct psi_const **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))); } -#line 4774 "src/parser_proc.c" /* glr.c:816 */ +#line 4770 "src/parser_proc.c" /* glr.c:816 */ break; case 352: -#line 767 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 763 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_impl_def_val **)(&(*yyvalp))) = psi_impl_def_val_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text); (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 4783 "src/parser_proc.c" /* glr.c:816 */ +#line 4779 "src/parser_proc.c" /* glr.c:816 */ break; case 353: -#line 771 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 767 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_impl_def_val **)(&(*yyvalp))) = psi_impl_def_val_init(PSI_T_NUMBER, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token); } -#line 4792 "src/parser_proc.c" /* glr.c:816 */ +#line 4788 "src/parser_proc.c" /* glr.c:816 */ break; case 354: -#line 775 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 771 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_impl_def_val **)(&(*yyvalp))) = psi_impl_def_val_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text); (*(struct psi_impl_def_val **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 4801 "src/parser_proc.c" /* glr.c:816 */ +#line 4797 "src/parser_proc.c" /* glr.c:816 */ break; case 358: -#line 788 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 784 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)); } -#line 4809 "src/parser_proc.c" /* glr.c:816 */ +#line 4805 "src/parser_proc.c" /* glr.c:816 */ break; case 359: -#line 802 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 798 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)); } -#line 4817 "src/parser_proc.c" /* glr.c:816 */ +#line 4813 "src/parser_proc.c" /* glr.c:816 */ break; case 360: -#line 808 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 804 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } -#line 4825 "src/parser_proc.c" /* glr.c:816 */ +#line 4821 "src/parser_proc.c" /* glr.c:816 */ break; case 361: -#line 811 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 807 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } -#line 4833 "src/parser_proc.c" /* glr.c:816 */ +#line 4829 "src/parser_proc.c" /* glr.c:816 */ break; case 362: -#line 817 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 813 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } -#line 4841 "src/parser_proc.c" /* glr.c:816 */ +#line 4837 "src/parser_proc.c" /* glr.c:816 */ break; case 363: -#line 820 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 816 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } -#line 4849 "src/parser_proc.c" /* glr.c:816 */ +#line 4845 "src/parser_proc.c" /* glr.c:816 */ break; case 365: -#line 827 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 823 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init( psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name), @@ -4858,11 +4854,11 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token); (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } -#line 4862 "src/parser_proc.c" /* glr.c:816 */ +#line 4858 "src/parser_proc.c" /* glr.c:816 */ break; case 366: -#line 835 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 831 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME; (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init( @@ -4874,11 +4870,11 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)); psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } -#line 4878 "src/parser_proc.c" /* glr.c:816 */ +#line 4874 "src/parser_proc.c" /* glr.c:816 */ break; case 367: -#line 846 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 842 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(psi_decl_type_init(PSI_T_STRUCT, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text), (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)); @@ -4888,11 +4884,11 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len; psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct); } -#line 4892 "src/parser_proc.c" /* glr.c:816 */ +#line 4888 "src/parser_proc.c" /* glr.c:816 */ break; case 368: -#line 855 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 851 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(psi_decl_type_init(PSI_T_UNION, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text), (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)); @@ -4902,20 +4898,20 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)).len; psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn); } -#line 4906 "src/parser_proc.c" /* glr.c:816 */ +#line 4902 "src/parser_proc.c" /* glr.c:816 */ break; case 370: -#line 868 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 864 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), psi_decl_var_init(NULL, 0, 0)); (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token); } -#line 4915 "src/parser_proc.c" /* glr.c:816 */ +#line 4911 "src/parser_proc.c" /* glr.c:816 */ break; case 371: -#line 872 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 868 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init( psi_decl_type_init(PSI_T_ENUM, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->name), @@ -4926,11 +4922,11 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.enm = (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); psi_parser_proc_add_enum(P, (*(struct psi_decl_enum **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 4930 "src/parser_proc.c" /* glr.c:816 */ +#line 4926 "src/parser_proc.c" /* glr.c:816 */ break; case 372: -#line 882 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 878 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(psi_decl_type_init(PSI_T_STRUCT, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->text), psi_decl_var_init(NULL, 0, 0)); (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)); @@ -4940,11 +4936,11 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len; psi_parser_proc_add_struct(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.strct); } -#line 4944 "src/parser_proc.c" /* glr.c:816 */ +#line 4940 "src/parser_proc.c" /* glr.c:816 */ break; case 373: -#line 891 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 887 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init(psi_decl_type_init(PSI_T_UNION, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->text), psi_decl_var_init(NULL, 0, 0)); (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)); @@ -4954,146 +4950,146 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len; psi_parser_proc_add_union(P, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.unn); } -#line 4958 "src/parser_proc.c" /* glr.c:816 */ +#line 4954 "src/parser_proc.c" /* glr.c:816 */ break; case 375: -#line 904 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 900 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } -#line 4966 "src/parser_proc.c" /* glr.c:816 */ +#line 4962 "src/parser_proc.c" /* glr.c:816 */ break; case 376: -#line 907 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 903 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl_type **)(&(*yyvalp))) = (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)); } -#line 4974 "src/parser_proc.c" /* glr.c:816 */ +#line 4970 "src/parser_proc.c" /* glr.c:816 */ break; case 379: -#line 918 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 914 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl_type **)(&(*yyvalp))) = psi_decl_type_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text); (*(struct psi_decl_type **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } -#line 4983 "src/parser_proc.c" /* glr.c:816 */ +#line 4979 "src/parser_proc.c" /* glr.c:816 */ break; case 381: -#line 926 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 922 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME; (*(struct psi_decl_type **)(&(*yyvalp))) = psi_decl_type_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text); (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 4993 "src/parser_proc.c" /* glr.c:816 */ +#line 4989 "src/parser_proc.c" /* glr.c:816 */ break; case 382: -#line 931 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 927 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME; (*(struct psi_decl_type **)(&(*yyvalp))) = psi_decl_type_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text); (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5003 "src/parser_proc.c" /* glr.c:816 */ +#line 4999 "src/parser_proc.c" /* glr.c:816 */ break; case 383: -#line 936 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 932 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME; (*(struct psi_decl_type **)(&(*yyvalp))) = psi_decl_type_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text); (*(struct psi_decl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5013 "src/parser_proc.c" /* glr.c:816 */ +#line 5009 "src/parser_proc.c" /* glr.c:816 */ break; case 386: -#line 946 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 942 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5021 "src/parser_proc.c" /* glr.c:816 */ +#line 5017 "src/parser_proc.c" /* glr.c:816 */ break; case 387: -#line 949 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 945 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5029 "src/parser_proc.c" /* glr.c:816 */ +#line 5025 "src/parser_proc.c" /* glr.c:816 */ break; case 388: -#line 955 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 951 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5037 "src/parser_proc.c" /* glr.c:816 */ +#line 5033 "src/parser_proc.c" /* glr.c:816 */ break; case 389: -#line 958 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 954 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5045 "src/parser_proc.c" /* glr.c:816 */ +#line 5041 "src/parser_proc.c" /* glr.c:816 */ break; case 390: -#line 961 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 957 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&(*yyvalp))) = psi_token_cat(" ", 2, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5053 "src/parser_proc.c" /* glr.c:816 */ +#line 5049 "src/parser_proc.c" /* glr.c:816 */ break; case 393: -#line 972 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 968 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5061 "src/parser_proc.c" /* glr.c:816 */ +#line 5057 "src/parser_proc.c" /* glr.c:816 */ break; case 394: -#line 975 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 971 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5069 "src/parser_proc.c" /* glr.c:816 */ +#line 5065 "src/parser_proc.c" /* glr.c:816 */ break; case 395: -#line 978 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 974 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&(*yyvalp))) = psi_token_cat(" ", 2, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5077 "src/parser_proc.c" /* glr.c:816 */ +#line 5073 "src/parser_proc.c" /* glr.c:816 */ break; case 396: -#line 984 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 980 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5085 "src/parser_proc.c" /* glr.c:816 */ +#line 5081 "src/parser_proc.c" /* glr.c:816 */ break; case 397: -#line 987 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 983 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5093 "src/parser_proc.c" /* glr.c:816 */ +#line 5089 "src/parser_proc.c" /* glr.c:816 */ break; case 398: -#line 990 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 986 "src/parser_proc_grammar.y" /* glr.c:816 */ { if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) { (*(struct psi_token **)(&(*yyvalp))) = psi_token_cat(" ", 2, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); @@ -5102,11 +5098,11 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } } -#line 5106 "src/parser_proc.c" /* glr.c:816 */ +#line 5102 "src/parser_proc.c" /* glr.c:816 */ break; case 399: -#line 998 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 994 "src/parser_proc_grammar.y" /* glr.c:816 */ { if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) { (*(struct psi_token **)(&(*yyvalp))) = psi_token_cat(" ", 2, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); @@ -5116,35 +5112,35 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)); } } -#line 5120 "src/parser_proc.c" /* glr.c:816 */ +#line 5116 "src/parser_proc.c" /* glr.c:816 */ break; case 400: -#line 1010 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1006 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&(*yyvalp))) = NULL; } -#line 5128 "src/parser_proc.c" /* glr.c:816 */ +#line 5124 "src/parser_proc.c" /* glr.c:816 */ break; case 401: -#line 1013 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1009 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5136 "src/parser_proc.c" /* glr.c:816 */ +#line 5132 "src/parser_proc.c" /* glr.c:816 */ break; case 402: -#line 1016 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1012 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5144 "src/parser_proc.c" /* glr.c:816 */ +#line 5140 "src/parser_proc.c" /* glr.c:816 */ break; case 403: -#line 1019 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1015 "src/parser_proc_grammar.y" /* glr.c:816 */ { if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) { (*(struct psi_token **)(&(*yyvalp))) = psi_token_cat(" ", 2, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); @@ -5152,19 +5148,19 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } } -#line 5156 "src/parser_proc.c" /* glr.c:816 */ +#line 5152 "src/parser_proc.c" /* glr.c:816 */ break; case 404: -#line 1026 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1022 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5164 "src/parser_proc.c" /* glr.c:816 */ +#line 5160 "src/parser_proc.c" /* glr.c:816 */ break; case 405: -#line 1029 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1025 "src/parser_proc_grammar.y" /* glr.c:816 */ { if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) { (*(struct psi_token **)(&(*yyvalp))) = psi_token_cat(" ", 2, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); @@ -5172,43 +5168,43 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } } -#line 5176 "src/parser_proc.c" /* glr.c:816 */ +#line 5172 "src/parser_proc.c" /* glr.c:816 */ break; case 406: -#line 1039 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1035 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&(*yyvalp))) = NULL; } -#line 5184 "src/parser_proc.c" /* glr.c:816 */ +#line 5180 "src/parser_proc.c" /* glr.c:816 */ break; case 408: -#line 1045 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1041 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&(*yyvalp))) = NULL; } -#line 5192 "src/parser_proc.c" /* glr.c:816 */ +#line 5188 "src/parser_proc.c" /* glr.c:816 */ break; case 412: -#line 1054 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1050 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&(*yyvalp))) = NULL; } -#line 5200 "src/parser_proc.c" /* glr.c:816 */ +#line 5196 "src/parser_proc.c" /* glr.c:816 */ break; case 413: -#line 1057 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1053 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5208 "src/parser_proc.c" /* glr.c:816 */ +#line 5204 "src/parser_proc.c" /* glr.c:816 */ break; case 414: -#line 1060 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1056 "src/parser_proc_grammar.y" /* glr.c:816 */ { if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) { (*(struct psi_token **)(&(*yyvalp))) = psi_token_cat(" ", 2, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); @@ -5217,11 +5213,11 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } } -#line 5221 "src/parser_proc.c" /* glr.c:816 */ +#line 5217 "src/parser_proc.c" /* glr.c:816 */ break; case 415: -#line 1071 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1067 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)); if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) { @@ -5229,11 +5225,11 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } } -#line 5233 "src/parser_proc.c" /* glr.c:816 */ +#line 5229 "src/parser_proc.c" /* glr.c:816 */ break; case 416: -#line 1078 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1074 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)); if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))) { @@ -5241,44 +5237,44 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } } -#line 5245 "src/parser_proc.c" /* glr.c:816 */ +#line 5241 "src/parser_proc.c" /* glr.c:816 */ break; case 417: -#line 1088 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1084 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&(*yyvalp))) = NULL; } -#line 5253 "src/parser_proc.c" /* glr.c:816 */ +#line 5249 "src/parser_proc.c" /* glr.c:816 */ break; case 418: -#line 1091 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1087 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)); } -#line 5261 "src/parser_proc.c" /* glr.c:816 */ +#line 5257 "src/parser_proc.c" /* glr.c:816 */ break; case 419: -#line 1097 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1093 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5269 "src/parser_proc.c" /* glr.c:816 */ +#line 5265 "src/parser_proc.c" /* glr.c:816 */ break; case 420: -#line 1100 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1096 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&(*yyvalp))) = psi_token_cat("", 2, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); free((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } -#line 5278 "src/parser_proc.c" /* glr.c:816 */ +#line 5274 "src/parser_proc.c" /* glr.c:816 */ break; case 421: -#line 1107 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1103 "src/parser_proc_grammar.y" /* glr.c:816 */ { struct psi_plist *list = psi_plist_init((psi_plist_dtor) psi_decl_extvar_free); @@ -5306,84 +5302,84 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_plist **)(&(*yyvalp))) = list; } -#line 5310 "src/parser_proc.c" /* glr.c:816 */ +#line 5306 "src/parser_proc.c" /* glr.c:816 */ break; case 422: -#line 1137 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1133 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = NULL; } -#line 5318 "src/parser_proc.c" /* glr.c:816 */ +#line 5314 "src/parser_proc.c" /* glr.c:816 */ break; case 423: -#line 1140 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1136 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } -#line 5326 "src/parser_proc.c" /* glr.c:816 */ +#line 5322 "src/parser_proc.c" /* glr.c:816 */ break; case 424: -#line 1146 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1142 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_var_free), &(*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5334 "src/parser_proc.c" /* glr.c:816 */ +#line 5330 "src/parser_proc.c" /* glr.c:816 */ break; case 425: -#line 1149 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1145 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &(*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5342 "src/parser_proc.c" /* glr.c:816 */ +#line 5338 "src/parser_proc.c" /* glr.c:816 */ break; case 426: -#line 1155 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1151 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)); } -#line 5350 "src/parser_proc.c" /* glr.c:816 */ +#line 5346 "src/parser_proc.c" /* glr.c:816 */ break; case 427: -#line 1158 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1154 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)); } -#line 5358 "src/parser_proc.c" /* glr.c:816 */ +#line 5354 "src/parser_proc.c" /* glr.c:816 */ break; case 428: -#line 1161 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1157 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)); } -#line 5366 "src/parser_proc.c" /* glr.c:816 */ +#line 5362 "src/parser_proc.c" /* glr.c:816 */ break; case 429: -#line 1164 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1160 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)); } -#line 5374 "src/parser_proc.c" /* glr.c:816 */ +#line 5370 "src/parser_proc.c" /* glr.c:816 */ break; case 436: -#line 1185 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1181 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl **)(&(*yyvalp))) = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); (*(struct psi_decl **)(&(*yyvalp)))->abi = psi_decl_abi_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text); } -#line 5383 "src/parser_proc.c" /* glr.c:816 */ +#line 5379 "src/parser_proc.c" /* glr.c:816 */ break; case 439: -#line 1197 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1193 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))); if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) { @@ -5391,11 +5387,11 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } } -#line 5395 "src/parser_proc.c" /* glr.c:816 */ +#line 5391 "src/parser_proc.c" /* glr.c:816 */ break; case 440: -#line 1204 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1200 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval))); (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1; @@ -5404,11 +5400,11 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } } -#line 5408 "src/parser_proc.c" /* glr.c:816 */ +#line 5404 "src/parser_proc.c" /* glr.c:816 */ break; case 441: -#line 1215 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1211 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))); if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) { @@ -5416,11 +5412,11 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } } -#line 5420 "src/parser_proc.c" /* glr.c:816 */ +#line 5416 "src/parser_proc.c" /* glr.c:816 */ break; case 442: -#line 1222 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1218 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval))); (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1; @@ -5429,11 +5425,11 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } } -#line 5433 "src/parser_proc.c" /* glr.c:816 */ +#line 5429 "src/parser_proc.c" /* glr.c:816 */ break; case 443: -#line 1230 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1226 "src/parser_proc_grammar.y" /* glr.c:816 */ { (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval)); (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval))->type = PSI_T_NAME; @@ -5458,11 +5454,11 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init(func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval))); } -#line 5462 "src/parser_proc.c" /* glr.c:816 */ +#line 5458 "src/parser_proc.c" /* glr.c:816 */ break; case 444: -#line 1254 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1250 "src/parser_proc_grammar.y" /* glr.c:816 */ { (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-12)].yystate.yysemantics.yysval)); (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval)); @@ -5488,11 +5484,11 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init(func, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval))); } -#line 5492 "src/parser_proc.c" /* glr.c:816 */ +#line 5488 "src/parser_proc.c" /* glr.c:816 */ break; case 445: -#line 1282 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1278 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))); if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) { @@ -5500,11 +5496,11 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } } -#line 5504 "src/parser_proc.c" /* glr.c:816 */ +#line 5500 "src/parser_proc.c" /* glr.c:816 */ break; case 446: -#line 1289 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1285 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl **)(&(*yyvalp))) = psi_decl_init((*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval))); (*(struct psi_decl **)(&(*yyvalp)))->varargs = 1; @@ -5513,11 +5509,11 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_decl **)(&(*yyvalp)))->func->var->array_size = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } } -#line 5517 "src/parser_proc.c" /* glr.c:816 */ +#line 5513 "src/parser_proc.c" /* glr.c:816 */ break; case 447: -#line 1300 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1296 "src/parser_proc_grammar.y" /* glr.c:816 */ { (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)); (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME; @@ -5525,62 +5521,62 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } -#line 5529 "src/parser_proc.c" /* glr.c:816 */ +#line 5525 "src/parser_proc.c" /* glr.c:816 */ break; case 448: -#line 1346 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1342 "src/parser_proc_grammar.y" /* glr.c:816 */ { (void) (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)); (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)), psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), 0)); (*(struct psi_decl_arg **)(&(*yyvalp)))->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))); (*(struct psi_decl_arg **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))); } -#line 5540 "src/parser_proc.c" /* glr.c:816 */ +#line 5536 "src/parser_proc.c" /* glr.c:816 */ break; case 450: -#line 1402 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1398 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = NULL; } -#line 5548 "src/parser_proc.c" /* glr.c:816 */ +#line 5544 "src/parser_proc.c" /* glr.c:816 */ break; case 451: -#line 1405 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1401 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = NULL; } -#line 5556 "src/parser_proc.c" /* glr.c:816 */ +#line 5552 "src/parser_proc.c" /* glr.c:816 */ break; case 452: -#line 1408 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1404 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } -#line 5564 "src/parser_proc.c" /* glr.c:816 */ +#line 5560 "src/parser_proc.c" /* glr.c:816 */ break; case 453: -#line 1414 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1410 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &(*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5572 "src/parser_proc.c" /* glr.c:816 */ +#line 5568 "src/parser_proc.c" /* glr.c:816 */ break; case 454: -#line 1417 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1413 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &(*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5580 "src/parser_proc.c" /* glr.c:816 */ +#line 5576 "src/parser_proc.c" /* glr.c:816 */ break; case 455: -#line 1423 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1419 "src/parser_proc_grammar.y" /* glr.c:816 */ { char digest[17]; struct psi_token *name; @@ -5596,30 +5592,30 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token); (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } -#line 5600 "src/parser_proc.c" /* glr.c:816 */ +#line 5596 "src/parser_proc.c" /* glr.c:816 */ break; case 456: -#line 1438 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1434 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl_arg **)(&(*yyvalp))) = (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } -#line 5608 "src/parser_proc.c" /* glr.c:816 */ +#line 5604 "src/parser_proc.c" /* glr.c:816 */ break; case 457: -#line 1441 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1437 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init( (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), psi_decl_var_init(NULL, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0) ); } -#line 5619 "src/parser_proc.c" /* glr.c:816 */ +#line 5615 "src/parser_proc.c" /* glr.c:816 */ break; case 458: -#line 1470 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1466 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init( psi_decl_type_init(PSI_T_FUNCTION, (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->var->name), @@ -5628,39 +5624,39 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_decl_arg **)(&(*yyvalp)))->type->token = psi_token_copy((*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->func->token); (*(struct psi_decl_arg **)(&(*yyvalp)))->type->real.func = (*(struct psi_decl **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } -#line 5632 "src/parser_proc.c" /* glr.c:816 */ +#line 5628 "src/parser_proc.c" /* glr.c:816 */ break; case 459: -#line 1478 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1474 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl_arg **)(&(*yyvalp))) = psi_decl_arg_init((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5640 "src/parser_proc.c" /* glr.c:816 */ +#line 5636 "src/parser_proc.c" /* glr.c:816 */ break; case 460: -#line 1506 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1502 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME; (*(struct psi_decl_var **)(&(*yyvalp))) = psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text, (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)) + !! (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } -#line 5650 "src/parser_proc.c" /* glr.c:816 */ +#line 5646 "src/parser_proc.c" /* glr.c:816 */ break; case 461: -#line 1511 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1507 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type = PSI_T_NAME; (*(struct psi_decl_var **)(&(*yyvalp))) = psi_decl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text, !! (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_decl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } -#line 5660 "src/parser_proc.c" /* glr.c:816 */ +#line 5656 "src/parser_proc.c" /* glr.c:816 */ break; case 462: -#line 1519 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1515 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME; (*(struct psi_decl_union **)(&(*yyvalp))) = psi_decl_union_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->text, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); @@ -5668,11 +5664,11 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_decl_union **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len; (*(struct psi_decl_union **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))); } -#line 5672 "src/parser_proc.c" /* glr.c:816 */ +#line 5668 "src/parser_proc.c" /* glr.c:816 */ break; case 463: -#line 1529 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1525 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME; (*(struct psi_decl_struct **)(&(*yyvalp))) = psi_decl_struct_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->text, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); @@ -5680,27 +5676,27 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_decl_struct **)(&(*yyvalp)))->size = (*(struct psi_layout*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)).len; (*(struct psi_decl_struct **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))); } -#line 5684 "src/parser_proc.c" /* glr.c:816 */ +#line 5680 "src/parser_proc.c" /* glr.c:816 */ break; case 464: -#line 1539 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1535 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = NULL; } -#line 5692 "src/parser_proc.c" /* glr.c:816 */ +#line 5688 "src/parser_proc.c" /* glr.c:816 */ break; case 466: -#line 1546 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1542 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)); } -#line 5700 "src/parser_proc.c" /* glr.c:816 */ +#line 5696 "src/parser_proc.c" /* glr.c:816 */ break; case 467: -#line 1552 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1548 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)); (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &(*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))); @@ -5715,11 +5711,11 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } } -#line 5719 "src/parser_proc.c" /* glr.c:816 */ +#line 5715 "src/parser_proc.c" /* glr.c:816 */ break; case 468: -#line 1566 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1562 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->layout = (*(struct psi_layout **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)); (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)), &(*(struct psi_decl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))); @@ -5734,27 +5730,27 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, free((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } } -#line 5738 "src/parser_proc.c" /* glr.c:816 */ +#line 5734 "src/parser_proc.c" /* glr.c:816 */ break; case 469: -#line 1583 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1579 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = NULL; } -#line 5746 "src/parser_proc.c" /* glr.c:816 */ +#line 5742 "src/parser_proc.c" /* glr.c:816 */ break; case 470: -#line 1586 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1582 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } -#line 5754 "src/parser_proc.c" /* glr.c:816 */ +#line 5750 "src/parser_proc.c" /* glr.c:816 */ break; case 471: -#line 1592 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1588 "src/parser_proc_grammar.y" /* glr.c:816 */ { { struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); @@ -5762,11 +5758,11 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), &arg); } } -#line 5766 "src/parser_proc.c" /* glr.c:816 */ +#line 5762 "src/parser_proc.c" /* glr.c:816 */ break; case 472: -#line 1599 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1595 "src/parser_proc_grammar.y" /* glr.c:816 */ { { struct psi_decl_arg *arg = psi_decl_arg_init(NULL, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); @@ -5774,189 +5770,189 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), &arg); } } -#line 5778 "src/parser_proc.c" /* glr.c:816 */ +#line 5774 "src/parser_proc.c" /* glr.c:816 */ break; case 473: -#line 1609 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1605 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_decl_enum **)(&(*yyvalp))) = psi_decl_enum_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval))->text, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))); (*(struct psi_decl_enum **)(&(*yyvalp)))->token = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)); } -#line 5787 "src/parser_proc.c" /* glr.c:816 */ +#line 5783 "src/parser_proc.c" /* glr.c:816 */ break; case 474: -#line 1616 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1612 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_enum_item_free), &(*(struct psi_decl_enum_item **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5795 "src/parser_proc.c" /* glr.c:816 */ +#line 5791 "src/parser_proc.c" /* glr.c:816 */ break; case 475: -#line 1619 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1615 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &(*(struct psi_decl_enum_item **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5803 "src/parser_proc.c" /* glr.c:816 */ +#line 5799 "src/parser_proc.c" /* glr.c:816 */ break; case 476: -#line 1625 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1621 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type = PSI_T_NAME; (*(struct psi_decl_enum_item **)(&(*yyvalp))) = psi_decl_enum_item_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, NULL); (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5813 "src/parser_proc.c" /* glr.c:816 */ +#line 5809 "src/parser_proc.c" /* glr.c:816 */ break; case 477: -#line 1630 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1626 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type = PSI_T_NAME; (*(struct psi_decl_enum_item **)(&(*yyvalp))) = psi_decl_enum_item_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->text, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_decl_enum_item **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))); } -#line 5823 "src/parser_proc.c" /* glr.c:816 */ +#line 5819 "src/parser_proc.c" /* glr.c:816 */ break; case 478: -#line 1638 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1634 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_num((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token); } -#line 5832 "src/parser_proc.c" /* glr.c:816 */ +#line 5828 "src/parser_proc.c" /* glr.c:816 */ break; case 479: -#line 1642 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1638 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_cast((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->token); } -#line 5841 "src/parser_proc.c" /* glr.c:816 */ +#line 5837 "src/parser_proc.c" /* glr.c:816 */ break; case 480: -#line 1646 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1642 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_unary(PSI_T_LPAREN, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))); } -#line 5850 "src/parser_proc.c" /* glr.c:816 */ +#line 5846 "src/parser_proc.c" /* glr.c:816 */ break; case 481: -#line 1650 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1646 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_binary((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } -#line 5859 "src/parser_proc.c" /* glr.c:816 */ +#line 5855 "src/parser_proc.c" /* glr.c:816 */ break; case 482: -#line 1654 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1650 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_unary((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->type, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } -#line 5868 "src/parser_proc.c" /* glr.c:816 */ +#line 5864 "src/parser_proc.c" /* glr.c:816 */ break; case 483: -#line 1658 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1654 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_num_exp **)(&(*yyvalp))) = psi_num_exp_init_ternary((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_num_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))); } -#line 5877 "src/parser_proc.c" /* glr.c:816 */ +#line 5873 "src/parser_proc.c" /* glr.c:816 */ break; case 484: -#line 1665 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1661 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_number **)(&(*yyvalp))) = psi_number_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->flags); (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5886 "src/parser_proc.c" /* glr.c:816 */ +#line 5882 "src/parser_proc.c" /* glr.c:816 */ break; case 485: -#line 1669 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1665 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_number **)(&(*yyvalp))) = psi_number_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0); (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5895 "src/parser_proc.c" /* glr.c:816 */ +#line 5891 "src/parser_proc.c" /* glr.c:816 */ break; case 486: -#line 1673 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1669 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_number **)(&(*yyvalp))) = psi_number_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0); (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5904 "src/parser_proc.c" /* glr.c:816 */ +#line 5900 "src/parser_proc.c" /* glr.c:816 */ break; case 487: -#line 1677 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1673 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_number **)(&(*yyvalp))) = psi_number_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, 0); (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 5913 "src/parser_proc.c" /* glr.c:816 */ +#line 5909 "src/parser_proc.c" /* glr.c:816 */ break; case 488: -#line 1681 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1677 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_NAME, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), 0); (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token); } -#line 5922 "src/parser_proc.c" /* glr.c:816 */ +#line 5918 "src/parser_proc.c" /* glr.c:816 */ break; case 489: -#line 1685 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1681 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } -#line 5930 "src/parser_proc.c" /* glr.c:816 */ +#line 5926 "src/parser_proc.c" /* glr.c:816 */ break; case 490: -#line 1691 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1687 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)); (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))); } -#line 5939 "src/parser_proc.c" /* glr.c:816 */ +#line 5935 "src/parser_proc.c" /* glr.c:816 */ break; case 491: -#line 1695 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1691 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); (*(struct psi_number **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } -#line 5948 "src/parser_proc.c" /* glr.c:816 */ +#line 5944 "src/parser_proc.c" /* glr.c:816 */ break; case 492: -#line 1702 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1698 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_number **)(&(*yyvalp))) = (*(struct psi_number **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } -#line 5956 "src/parser_proc.c" /* glr.c:816 */ +#line 5952 "src/parser_proc.c" /* glr.c:816 */ break; case 493: -#line 1705 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1701 "src/parser_proc_grammar.y" /* glr.c:816 */ { if ((*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) { int8_t sizeof_void_p = sizeof(void *); @@ -5966,38 +5962,38 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_SIZEOF, (*(struct psi_decl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), 0); } } -#line 5970 "src/parser_proc.c" /* glr.c:816 */ +#line 5966 "src/parser_proc.c" /* glr.c:816 */ break; case 494: -#line 1717 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1713 "src/parser_proc_grammar.y" /* glr.c:816 */ { int8_t sizeof_void_p = sizeof(void *); (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_void_p, 0); } -#line 5979 "src/parser_proc.c" /* glr.c:816 */ +#line 5975 "src/parser_proc.c" /* glr.c:816 */ break; case 495: -#line 1721 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1717 "src/parser_proc_grammar.y" /* glr.c:816 */ { int8_t sizeof_a = sizeof('a'); (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_INT8, &sizeof_a, 0); } -#line 5988 "src/parser_proc.c" /* glr.c:816 */ +#line 5984 "src/parser_proc.c" /* glr.c:816 */ break; case 496: -#line 1725 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1721 "src/parser_proc_grammar.y" /* glr.c:816 */ { uint64_t len = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->size + 1; (*(struct psi_number **)(&(*yyvalp))) = psi_number_init(PSI_T_UINT64, &len, 0); } -#line 5997 "src/parser_proc.c" /* glr.c:816 */ +#line 5993 "src/parser_proc.c" /* glr.c:816 */ break; case 497: -#line 1732 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1728 "src/parser_proc_grammar.y" /* glr.c:816 */ { if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) { (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); @@ -6008,11 +6004,11 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest); } } -#line 6012 "src/parser_proc.c" /* glr.c:816 */ +#line 6008 "src/parser_proc.c" /* glr.c:816 */ break; case 498: -#line 1745 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1741 "src/parser_proc_grammar.y" /* glr.c:816 */ { if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) { (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); @@ -6023,11 +6019,11 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest); } } -#line 6027 "src/parser_proc.c" /* glr.c:816 */ +#line 6023 "src/parser_proc.c" /* glr.c:816 */ break; case 499: -#line 1758 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1754 "src/parser_proc_grammar.y" /* glr.c:816 */ { if ((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))) { (*(struct psi_token **)(&(*yyvalp))) = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); @@ -6038,94 +6034,94 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_token **)(&(*yyvalp))) = psi_token_append("@", psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))), 1, digest); } } -#line 6042 "src/parser_proc.c" /* glr.c:816 */ +#line 6038 "src/parser_proc.c" /* glr.c:816 */ break; case 500: -#line 1771 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1767 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&(*yyvalp))) = NULL; } -#line 6050 "src/parser_proc.c" /* glr.c:816 */ +#line 6046 "src/parser_proc.c" /* glr.c:816 */ break; case 501: -#line 1774 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1770 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&(*yyvalp))) = (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); (*(struct psi_token **)(&(*yyvalp)))->type = PSI_T_NAME; } -#line 6059 "src/parser_proc.c" /* glr.c:816 */ +#line 6055 "src/parser_proc.c" /* glr.c:816 */ break; case 504: -#line 1786 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1782 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_layout **)(&(*yyvalp))) = NULL; } -#line 6067 "src/parser_proc.c" /* glr.c:816 */ +#line 6063 "src/parser_proc.c" /* glr.c:816 */ break; case 505: -#line 1789 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1785 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_layout **)(&(*yyvalp))) = psi_layout_init(0, 0, psi_layout_init(0, atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text), NULL)); } -#line 6075 "src/parser_proc.c" /* glr.c:816 */ +#line 6071 "src/parser_proc.c" /* glr.c:816 */ break; case 506: -#line 1792 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1788 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_layout **)(&(*yyvalp))) = psi_layout_init(atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text), atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text), NULL); } -#line 6083 "src/parser_proc.c" /* glr.c:816 */ +#line 6079 "src/parser_proc.c" /* glr.c:816 */ break; case 507: -#line 1795 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1791 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_layout **)(&(*yyvalp))) = psi_layout_init(atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text), atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text), psi_layout_init(0, atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval))->text), NULL)); } -#line 6091 "src/parser_proc.c" /* glr.c:816 */ +#line 6087 "src/parser_proc.c" /* glr.c:816 */ break; case 508: -#line 1801 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1797 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_layout*)(&(*yyvalp))).pos = 0; (*(struct psi_layout*)(&(*yyvalp))).len = 0; } -#line 6100 "src/parser_proc.c" /* glr.c:816 */ +#line 6096 "src/parser_proc.c" /* glr.c:816 */ break; case 509: -#line 1805 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1801 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_layout*)(&(*yyvalp))).pos = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text); (*(struct psi_layout*)(&(*yyvalp))).len = atol((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))->text); } -#line 6109 "src/parser_proc.c" /* glr.c:816 */ +#line 6105 "src/parser_proc.c" /* glr.c:816 */ break; case 510: -#line 1812 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1808 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(size_t*)(&(*yyvalp))) = 0; } -#line 6117 "src/parser_proc.c" /* glr.c:816 */ +#line 6113 "src/parser_proc.c" /* glr.c:816 */ break; case 511: -#line 1815 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1811 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(size_t*)(&(*yyvalp))) = 0; } -#line 6125 "src/parser_proc.c" /* glr.c:816 */ +#line 6121 "src/parser_proc.c" /* glr.c:816 */ break; case 512: -#line 1818 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1814 "src/parser_proc_grammar.y" /* glr.c:816 */ { struct psi_validate_scope scope = {0}; psi_validate_scope_ctor(&scope); @@ -6138,88 +6134,88 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, psi_num_exp_free(&(*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); psi_validate_scope_dtor(&scope); } -#line 6142 "src/parser_proc.c" /* glr.c:816 */ +#line 6138 "src/parser_proc.c" /* glr.c:816 */ break; case 517: -#line 1840 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1836 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(size_t*)(&(*yyvalp))) = 0; } -#line 6150 "src/parser_proc.c" /* glr.c:816 */ +#line 6146 "src/parser_proc.c" /* glr.c:816 */ break; case 518: -#line 1843 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1839 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } -#line 6158 "src/parser_proc.c" /* glr.c:816 */ +#line 6154 "src/parser_proc.c" /* glr.c:816 */ break; case 520: -#line 1850 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1846 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)); } -#line 6166 "src/parser_proc.c" /* glr.c:816 */ +#line 6162 "src/parser_proc.c" /* glr.c:816 */ break; case 521: -#line 1856 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1852 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(size_t*)(&(*yyvalp))) = 1; } -#line 6174 "src/parser_proc.c" /* glr.c:816 */ +#line 6170 "src/parser_proc.c" /* glr.c:816 */ break; case 522: -#line 1859 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1855 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(size_t*)(&(*yyvalp))) = (*(size_t*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)) + 1; } -#line 6182 "src/parser_proc.c" /* glr.c:816 */ +#line 6178 "src/parser_proc.c" /* glr.c:816 */ break; case 527: -#line 1881 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1877 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_impl **)(&(*yyvalp))) = psi_impl_init((*(struct psi_impl_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); } -#line 6190 "src/parser_proc.c" /* glr.c:816 */ +#line 6186 "src/parser_proc.c" /* glr.c:816 */ break; case 528: -#line 1884 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1880 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_impl **)(&(*yyvalp))) = psi_impl_init((*(struct psi_impl_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); (*(struct psi_impl_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->static_memory = 1; } -#line 6199 "src/parser_proc.c" /* glr.c:816 */ +#line 6195 "src/parser_proc.c" /* glr.c:816 */ break; case 529: -#line 1891 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1887 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_impl_func **)(&(*yyvalp))) = psi_impl_func_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval))->text, NULL, (*(struct psi_impl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval))); (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)); } -#line 6209 "src/parser_proc.c" /* glr.c:816 */ +#line 6205 "src/parser_proc.c" /* glr.c:816 */ break; case 530: -#line 1896 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1892 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_impl_func **)(&(*yyvalp))) = psi_impl_func_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->text, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), (*(struct psi_impl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))); (*(struct psi_impl_func **)(&(*yyvalp)))->return_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)); } -#line 6219 "src/parser_proc.c" /* glr.c:816 */ +#line 6215 "src/parser_proc.c" /* glr.c:816 */ break; case 531: -#line 1901 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1897 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_impl_func **)(&(*yyvalp))) = psi_impl_func_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval))->text, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-8)].yystate.yysemantics.yysval)), (*(struct psi_impl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_impl_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-10)].yystate.yysemantics.yysval))); @@ -6227,531 +6223,531 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp, (*(struct psi_impl_func **)(&(*yyvalp)))->vararg = psi_impl_arg_init((*(struct psi_impl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval)), psi_impl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text, (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))), NULL); (*(struct psi_impl_func **)(&(*yyvalp)))->vararg->var->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))); } -#line 6231 "src/parser_proc.c" /* glr.c:816 */ +#line 6227 "src/parser_proc.c" /* glr.c:816 */ break; case 532: -#line 1911 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1907 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_impl_arg_free), &(*(struct psi_impl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 6239 "src/parser_proc.c" /* glr.c:816 */ +#line 6235 "src/parser_proc.c" /* glr.c:816 */ break; case 533: -#line 1914 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1910 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &(*(struct psi_impl_arg **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 6247 "src/parser_proc.c" /* glr.c:816 */ +#line 6243 "src/parser_proc.c" /* glr.c:816 */ break; case 534: -#line 1920 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1916 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_impl_arg **)(&(*yyvalp))) = psi_impl_arg_init((*(struct psi_impl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)), NULL); } -#line 6255 "src/parser_proc.c" /* glr.c:816 */ +#line 6251 "src/parser_proc.c" /* glr.c:816 */ break; case 535: -#line 1923 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1919 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_impl_arg **)(&(*yyvalp))) = psi_impl_arg_init((*(struct psi_impl_type **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), (*(struct psi_impl_def_val **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 6263 "src/parser_proc.c" /* glr.c:816 */ +#line 6259 "src/parser_proc.c" /* glr.c:816 */ break; case 536: -#line 1929 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1925 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_impl_var **)(&(*yyvalp))) = psi_impl_var_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text, (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); (*(struct psi_impl_var **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 6272 "src/parser_proc.c" /* glr.c:816 */ +#line 6268 "src/parser_proc.c" /* glr.c:816 */ break; case 537: -#line 1936 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1932 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_impl_type **)(&(*yyvalp))) = psi_impl_type_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text); (*(struct psi_impl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 6281 "src/parser_proc.c" /* glr.c:816 */ +#line 6277 "src/parser_proc.c" /* glr.c:816 */ break; case 538: -#line 1943 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1939 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_impl_type **)(&(*yyvalp))) = psi_impl_type_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->text); (*(struct psi_impl_type **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 6290 "src/parser_proc.c" /* glr.c:816 */ +#line 6286 "src/parser_proc.c" /* glr.c:816 */ break; case 550: -#line 1970 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1966 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_impl_stmt_free), &(*(struct psi_token ***)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 6298 "src/parser_proc.c" /* glr.c:816 */ +#line 6294 "src/parser_proc.c" /* glr.c:816 */ break; case 551: -#line 1973 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1969 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)), &(*(struct psi_token ***)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 6306 "src/parser_proc.c" /* glr.c:816 */ +#line 6302 "src/parser_proc.c" /* glr.c:816 */ break; case 552: -#line 1979 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1975 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_return_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } -#line 6314 "src/parser_proc.c" /* glr.c:816 */ +#line 6310 "src/parser_proc.c" /* glr.c:816 */ break; case 553: -#line 1982 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1978 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_let_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } -#line 6322 "src/parser_proc.c" /* glr.c:816 */ +#line 6318 "src/parser_proc.c" /* glr.c:816 */ break; case 554: -#line 1985 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1981 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_set_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } -#line 6330 "src/parser_proc.c" /* glr.c:816 */ +#line 6326 "src/parser_proc.c" /* glr.c:816 */ break; case 555: -#line 1988 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1984 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_assert_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } -#line 6338 "src/parser_proc.c" /* glr.c:816 */ +#line 6334 "src/parser_proc.c" /* glr.c:816 */ break; case 556: -#line 1991 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1987 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token ***)(&(*yyvalp))) = (struct psi_token **) (*(struct psi_free_stmt **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } -#line 6346 "src/parser_proc.c" /* glr.c:816 */ +#line 6342 "src/parser_proc.c" /* glr.c:816 */ break; case 557: -#line 1997 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1993 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_let_stmt **)(&(*yyvalp))) = psi_let_stmt_init((*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))); } -#line 6355 "src/parser_proc.c" /* glr.c:816 */ +#line 6351 "src/parser_proc.c" /* glr.c:816 */ break; case 558: -#line 2001 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 1997 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_let_stmt **)(&(*yyvalp))) = psi_let_stmt_init(psi_let_exp_init_ex((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval)), PSI_LET_TMP, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)))); (*(struct psi_let_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))); (*(struct psi_let_stmt **)(&(*yyvalp)))->exp->is_reference = (*(bool*)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)); } -#line 6365 "src/parser_proc.c" /* glr.c:816 */ +#line 6361 "src/parser_proc.c" /* glr.c:816 */ break; case 560: -#line 2010 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2006 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = true; } -#line 6374 "src/parser_proc.c" /* glr.c:816 */ +#line 6370 "src/parser_proc.c" /* glr.c:816 */ break; case 561: -#line 2014 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2010 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = false; } -#line 6383 "src/parser_proc.c" /* glr.c:816 */ +#line 6379 "src/parser_proc.c" /* glr.c:816 */ break; case 562: -#line 2021 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2017 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_NULL, NULL); } -#line 6391 "src/parser_proc.c" /* glr.c:816 */ +#line 6387 "src/parser_proc.c" /* glr.c:816 */ break; case 563: -#line 2024 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2020 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init_ex(NULL, PSI_LET_NUMEXP, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 6399 "src/parser_proc.c" /* glr.c:816 */ +#line 6395 "src/parser_proc.c" /* glr.c:816 */ break; case 564: -#line 2027 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2023 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 6407 "src/parser_proc.c" /* glr.c:816 */ +#line 6403 "src/parser_proc.c" /* glr.c:816 */ break; case 565: -#line 2030 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2026 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLOC, (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); (*(struct psi_let_calloc **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->static_memory = 1; } -#line 6416 "src/parser_proc.c" /* glr.c:816 */ +#line 6412 "src/parser_proc.c" /* glr.c:816 */ break; case 566: -#line 2034 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2030 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init(PSI_LET_CALLBACK, (*(struct psi_let_callback **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 6424 "src/parser_proc.c" /* glr.c:816 */ +#line 6420 "src/parser_proc.c" /* glr.c:816 */ break; case 567: -#line 2037 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2033 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_let_exp **)(&(*yyvalp))) = psi_let_exp_init_ex(NULL, PSI_LET_FUNC, (*(struct psi_let_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 6432 "src/parser_proc.c" /* glr.c:816 */ +#line 6428 "src/parser_proc.c" /* glr.c:816 */ break; case 568: -#line 2043 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2039 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)); } -#line 6441 "src/parser_proc.c" /* glr.c:816 */ +#line 6437 "src/parser_proc.c" /* glr.c:816 */ break; case 569: -#line 2047 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2043 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_let_exp **)(&(*yyvalp))) = (*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); (*(struct psi_let_exp **)(&(*yyvalp)))->is_reference = 1; (*(struct psi_let_exp **)(&(*yyvalp)))->var = (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)); } -#line 6451 "src/parser_proc.c" /* glr.c:816 */ +#line 6447 "src/parser_proc.c" /* glr.c:816 */ break; case 570: -#line 2055 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2051 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_let_calloc **)(&(*yyvalp))) = psi_let_calloc_init((*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); (*(struct psi_let_calloc **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))); } -#line 6460 "src/parser_proc.c" /* glr.c:816 */ +#line 6456 "src/parser_proc.c" /* glr.c:816 */ break; case 571: -#line 2062 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2058 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_let_callback **)(&(*yyvalp))) = psi_let_callback_init(psi_let_func_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval))->text, (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval))), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), NULL); (*(struct psi_let_callback **)(&(*yyvalp)))->func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval))); (*(struct psi_let_callback **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-7)].yystate.yysemantics.yysval))); } -#line 6470 "src/parser_proc.c" /* glr.c:816 */ +#line 6466 "src/parser_proc.c" /* glr.c:816 */ break; case 572: -#line 2067 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2063 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_let_callback **)(&(*yyvalp))) = psi_let_callback_init(psi_let_func_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval))->text, (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval))), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-9)].yystate.yysemantics.yysval))); (*(struct psi_let_callback **)(&(*yyvalp)))->func->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-6)].yystate.yysemantics.yysval))); (*(struct psi_let_callback **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-11)].yystate.yysemantics.yysval))); } -#line 6480 "src/parser_proc.c" /* glr.c:816 */ +#line 6476 "src/parser_proc.c" /* glr.c:816 */ break; case 573: -#line 2075 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2071 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_let_func **)(&(*yyvalp))) = psi_let_func_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval))->text, (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))); (*(struct psi_let_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval))); (*(struct psi_let_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)); } -#line 6490 "src/parser_proc.c" /* glr.c:816 */ +#line 6486 "src/parser_proc.c" /* glr.c:816 */ break; case 584: -#line 2096 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2092 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = NULL; } -#line 6498 "src/parser_proc.c" /* glr.c:816 */ +#line 6494 "src/parser_proc.c" /* glr.c:816 */ break; case 585: -#line 2099 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2095 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } -#line 6506 "src/parser_proc.c" /* glr.c:816 */ +#line 6502 "src/parser_proc.c" /* glr.c:816 */ break; case 586: -#line 2105 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2101 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_let_exp_free), &(*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 6514 "src/parser_proc.c" /* glr.c:816 */ +#line 6510 "src/parser_proc.c" /* glr.c:816 */ break; case 587: -#line 2108 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2104 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &(*(struct psi_let_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 6522 "src/parser_proc.c" /* glr.c:816 */ +#line 6518 "src/parser_proc.c" /* glr.c:816 */ break; case 590: -#line 2119 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2115 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = NULL; } -#line 6530 "src/parser_proc.c" /* glr.c:816 */ +#line 6526 "src/parser_proc.c" /* glr.c:816 */ break; case 591: -#line 2122 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2118 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } -#line 6538 "src/parser_proc.c" /* glr.c:816 */ +#line 6534 "src/parser_proc.c" /* glr.c:816 */ break; case 592: -#line 2128 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2124 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_set_exp_free), &(*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 6546 "src/parser_proc.c" /* glr.c:816 */ +#line 6542 "src/parser_proc.c" /* glr.c:816 */ break; case 593: -#line 2131 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2127 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &(*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 6554 "src/parser_proc.c" /* glr.c:816 */ +#line 6550 "src/parser_proc.c" /* glr.c:816 */ break; case 594: -#line 2137 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2133 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_return_stmt **)(&(*yyvalp))) = psi_return_stmt_init((*(struct psi_return_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); (*(struct psi_return_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))); } -#line 6563 "src/parser_proc.c" /* glr.c:816 */ +#line 6559 "src/parser_proc.c" /* glr.c:816 */ break; case 595: -#line 2144 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2140 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_return_exp **)(&(*yyvalp))) = psi_return_exp_init((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval)), (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval)), psi_set_exp_init(PSI_SET_FUNC, (*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)))); (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->token); } -#line 6572 "src/parser_proc.c" /* glr.c:816 */ +#line 6568 "src/parser_proc.c" /* glr.c:816 */ break; case 596: -#line 2148 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2144 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_return_exp **)(&(*yyvalp))) = psi_return_exp_init(NULL, NULL, psi_set_exp_init(PSI_SET_FUNC, (*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)))); (*(struct psi_return_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))->token); } -#line 6581 "src/parser_proc.c" /* glr.c:816 */ +#line 6577 "src/parser_proc.c" /* glr.c:816 */ break; case 597: -#line 2155 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2151 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = NULL; } -#line 6589 "src/parser_proc.c" /* glr.c:816 */ +#line 6585 "src/parser_proc.c" /* glr.c:816 */ break; case 598: -#line 2158 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2154 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = NULL; } -#line 6597 "src/parser_proc.c" /* glr.c:816 */ +#line 6593 "src/parser_proc.c" /* glr.c:816 */ break; case 599: -#line 2161 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2157 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } -#line 6605 "src/parser_proc.c" /* glr.c:816 */ +#line 6601 "src/parser_proc.c" /* glr.c:816 */ break; case 600: -#line 2167 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2163 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_set_stmt **)(&(*yyvalp))) = psi_set_stmt_init((*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); (*(struct psi_set_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))); } -#line 6614 "src/parser_proc.c" /* glr.c:816 */ +#line 6610 "src/parser_proc.c" /* glr.c:816 */ break; case 601: -#line 2174 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2170 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_FUNC, (*(struct psi_set_func **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 6622 "src/parser_proc.c" /* glr.c:816 */ +#line 6618 "src/parser_proc.c" /* glr.c:816 */ break; case 602: -#line 2177 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2173 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_set_exp **)(&(*yyvalp))) = psi_set_exp_init(PSI_SET_NUMEXP, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 6630 "src/parser_proc.c" /* glr.c:816 */ +#line 6626 "src/parser_proc.c" /* glr.c:816 */ break; case 603: -#line 2180 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2176 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_set_exp **)(&(*yyvalp))) = (*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); (*(struct psi_set_exp **)(&(*yyvalp)))->var = (*(struct psi_impl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)); } -#line 6639 "src/parser_proc.c" /* glr.c:816 */ +#line 6635 "src/parser_proc.c" /* glr.c:816 */ break; case 604: -#line 2187 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2183 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_set_func **)(&(*yyvalp))) = psi_set_func_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval))->text, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))); (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval))); (*(struct psi_set_func **)(&(*yyvalp)))->inner = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval)); } -#line 6649 "src/parser_proc.c" /* glr.c:816 */ +#line 6645 "src/parser_proc.c" /* glr.c:816 */ break; case 605: -#line 2192 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2188 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_set_func **)(&(*yyvalp))) = psi_set_func_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->type, (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))->text, (*(struct psi_decl_var **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))); (*(struct psi_set_func **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-5)].yystate.yysemantics.yysval))); (*(struct psi_set_func **)(&(*yyvalp)))->recursive = 1; } -#line 6659 "src/parser_proc.c" /* glr.c:816 */ +#line 6655 "src/parser_proc.c" /* glr.c:816 */ break; case 614: -#line 2211 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2207 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = NULL; } -#line 6667 "src/parser_proc.c" /* glr.c:816 */ +#line 6663 "src/parser_proc.c" /* glr.c:816 */ break; case 615: -#line 2214 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2210 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)); } -#line 6675 "src/parser_proc.c" /* glr.c:816 */ +#line 6671 "src/parser_proc.c" /* glr.c:816 */ break; case 616: -#line 2220 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2216 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_set_exp_free), &(*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 6683 "src/parser_proc.c" /* glr.c:816 */ +#line 6679 "src/parser_proc.c" /* glr.c:816 */ break; case 617: -#line 2223 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2219 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &(*(struct psi_set_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 6691 "src/parser_proc.c" /* glr.c:816 */ +#line 6687 "src/parser_proc.c" /* glr.c:816 */ break; case 618: -#line 2229 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2225 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_assert_stmt **)(&(*yyvalp))) = psi_assert_stmt_init((enum psi_assert_kind) (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))->type, (*(struct psi_num_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); (*(struct psi_assert_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))); } -#line 6700 "src/parser_proc.c" /* glr.c:816 */ +#line 6696 "src/parser_proc.c" /* glr.c:816 */ break; case 621: -#line 2241 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2237 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_free_stmt **)(&(*yyvalp))) = psi_free_stmt_init((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); (*(struct psi_free_stmt **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval))); } -#line 6709 "src/parser_proc.c" /* glr.c:816 */ +#line 6705 "src/parser_proc.c" /* glr.c:816 */ break; case 622: -#line 2248 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2244 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_free_exp_free), &(*(struct psi_free_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 6717 "src/parser_proc.c" /* glr.c:816 */ +#line 6713 "src/parser_proc.c" /* glr.c:816 */ break; case 623: -#line 2251 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2247 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_plist **)(&(*yyvalp))) = psi_plist_add((*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)), &(*(struct psi_free_exp **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval))); } -#line 6725 "src/parser_proc.c" /* glr.c:816 */ +#line 6721 "src/parser_proc.c" /* glr.c:816 */ break; case 624: -#line 2257 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2253 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->type = PSI_T_NAME; (*(struct psi_free_exp **)(&(*yyvalp))) = psi_free_exp_init((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))->text, (*(struct psi_plist **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval))); (*(struct psi_free_exp **)(&(*yyvalp)))->token = psi_token_copy((*(struct psi_token **)(&((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval))); } -#line 6735 "src/parser_proc.c" /* glr.c:816 */ +#line 6731 "src/parser_proc.c" /* glr.c:816 */ break; case 625: -#line 2265 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2261 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(bool*)(&(*yyvalp))) = false; } -#line 6743 "src/parser_proc.c" /* glr.c:816 */ +#line 6739 "src/parser_proc.c" /* glr.c:816 */ break; case 626: -#line 2268 "src/parser_proc_grammar.y" /* glr.c:816 */ +#line 2264 "src/parser_proc_grammar.y" /* glr.c:816 */ { (*(bool*)(&(*yyvalp))) = true; } -#line 6751 "src/parser_proc.c" /* glr.c:816 */ +#line 6747 "src/parser_proc.c" /* glr.c:816 */ break; -#line 6755 "src/parser_proc.c" /* glr.c:816 */ +#line 6751 "src/parser_proc.c" /* glr.c:816 */ default: break; } @@ -6802,757 +6798,757 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct psi_parser case 141: /* binary_op_token */ #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */ {} -#line 6806 "src/parser_proc.c" /* glr.c:846 */ +#line 6802 "src/parser_proc.c" /* glr.c:846 */ break; case 142: /* unary_op_token */ #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */ {} -#line 6812 "src/parser_proc.c" /* glr.c:846 */ +#line 6808 "src/parser_proc.c" /* glr.c:846 */ break; case 143: /* name_token */ #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */ {} -#line 6818 "src/parser_proc.c" /* glr.c:846 */ +#line 6814 "src/parser_proc.c" /* glr.c:846 */ break; case 144: /* any_noeol_token */ #line 315 "src/parser_proc_grammar.y" /* glr.c:846 */ {} -#line 6824 "src/parser_proc.c" /* glr.c:846 */ +#line 6820 "src/parser_proc.c" /* glr.c:846 */ break; case 149: /* lib */ #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} -#line 6830 "src/parser_proc.c" /* glr.c:846 */ +#line 6826 "src/parser_proc.c" /* glr.c:846 */ break; case 150: /* cpp */ #line 324 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));} -#line 6836 "src/parser_proc.c" /* glr.c:846 */ +#line 6832 "src/parser_proc.c" /* glr.c:846 */ break; case 151: /* cpp_exp */ #line 324 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_cpp_exp_free(&(*(struct psi_cpp_exp **)(&(*yyvaluep))));} -#line 6842 "src/parser_proc.c" /* glr.c:846 */ +#line 6838 "src/parser_proc.c" /* glr.c:846 */ break; case 153: /* cpp_message_token */ #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */ {} -#line 6848 "src/parser_proc.c" /* glr.c:846 */ +#line 6844 "src/parser_proc.c" /* glr.c:846 */ break; case 154: /* cpp_include_token */ #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */ {} -#line 6854 "src/parser_proc.c" /* glr.c:846 */ +#line 6850 "src/parser_proc.c" /* glr.c:846 */ break; case 155: /* cpp_header_token */ #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */ {} -#line 6860 "src/parser_proc.c" /* glr.c:846 */ +#line 6856 "src/parser_proc.c" /* glr.c:846 */ break; case 156: /* cpp_no_arg_token */ #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */ {} -#line 6866 "src/parser_proc.c" /* glr.c:846 */ +#line 6862 "src/parser_proc.c" /* glr.c:846 */ break; case 157: /* cpp_name_arg_token */ #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */ {} -#line 6872 "src/parser_proc.c" /* glr.c:846 */ +#line 6868 "src/parser_proc.c" /* glr.c:846 */ break; case 158: /* cpp_exp_arg_token */ #line 312 "src/parser_proc_grammar.y" /* glr.c:846 */ {} -#line 6878 "src/parser_proc.c" /* glr.c:846 */ +#line 6874 "src/parser_proc.c" /* glr.c:846 */ break; case 159: /* cpp_macro_decl */ #line 326 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_cpp_macro_decl_free(&(*(struct psi_cpp_macro_decl **)(&(*yyvaluep))));} -#line 6884 "src/parser_proc.c" /* glr.c:846 */ +#line 6880 "src/parser_proc.c" /* glr.c:846 */ break; case 160: /* cpp_macro_sig */ #line 328 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 6890 "src/parser_proc.c" /* glr.c:846 */ +#line 6886 "src/parser_proc.c" /* glr.c:846 */ break; case 161: /* cpp_macro_sig_args */ #line 328 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 6896 "src/parser_proc.c" /* glr.c:846 */ +#line 6892 "src/parser_proc.c" /* glr.c:846 */ break; case 162: /* cpp_macro_decl_tokens */ #line 328 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 6902 "src/parser_proc.c" /* glr.c:846 */ +#line 6898 "src/parser_proc.c" /* glr.c:846 */ break; case 163: /* cpp_macro_decl_token_list */ #line 328 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 6908 "src/parser_proc.c" /* glr.c:846 */ +#line 6904 "src/parser_proc.c" /* glr.c:846 */ break; case 164: /* cpp_macro_exp */ #line 330 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));} -#line 6914 "src/parser_proc.c" /* glr.c:846 */ +#line 6910 "src/parser_proc.c" /* glr.c:846 */ break; case 165: /* cpp_macro_call_args */ #line 328 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 6920 "src/parser_proc.c" /* glr.c:846 */ +#line 6916 "src/parser_proc.c" /* glr.c:846 */ break; case 166: /* cpp_macro_call_arg_list */ #line 328 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 6926 "src/parser_proc.c" /* glr.c:846 */ +#line 6922 "src/parser_proc.c" /* glr.c:846 */ break; case 167: /* constant */ #line 336 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_const_free(&(*(struct psi_const **)(&(*yyvaluep))));} -#line 6932 "src/parser_proc.c" /* glr.c:846 */ +#line 6928 "src/parser_proc.c" /* glr.c:846 */ break; case 168: /* impl_def_val */ #line 338 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_impl_def_val_free(&(*(struct psi_impl_def_val **)(&(*yyvaluep))));} -#line 6938 "src/parser_proc.c" /* glr.c:846 */ +#line 6934 "src/parser_proc.c" /* glr.c:846 */ break; case 169: /* impl_def_val_token */ #line 333 "src/parser_proc_grammar.y" /* glr.c:846 */ {} -#line 6944 "src/parser_proc.c" /* glr.c:846 */ +#line 6940 "src/parser_proc.c" /* glr.c:846 */ break; case 170: /* decl_typedef */ #line 351 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));} -#line 6950 "src/parser_proc.c" /* glr.c:846 */ +#line 6946 "src/parser_proc.c" /* glr.c:846 */ break; case 171: /* typedef */ #line 351 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));} -#line 6956 "src/parser_proc.c" /* glr.c:846 */ +#line 6952 "src/parser_proc.c" /* glr.c:846 */ break; case 172: /* typedef_anon */ #line 351 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));} -#line 6962 "src/parser_proc.c" /* glr.c:846 */ +#line 6958 "src/parser_proc.c" /* glr.c:846 */ break; case 173: /* typedef_decl */ #line 351 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));} -#line 6968 "src/parser_proc.c" /* glr.c:846 */ +#line 6964 "src/parser_proc.c" /* glr.c:846 */ break; case 174: /* typedef_anon_decl */ #line 351 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));} -#line 6974 "src/parser_proc.c" /* glr.c:846 */ +#line 6970 "src/parser_proc.c" /* glr.c:846 */ break; case 175: /* qualified_decl_type */ #line 347 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));} -#line 6980 "src/parser_proc.c" /* glr.c:846 */ +#line 6976 "src/parser_proc.c" /* glr.c:846 */ break; case 177: /* decl_type */ #line 347 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));} -#line 6986 "src/parser_proc.c" /* glr.c:846 */ +#line 6982 "src/parser_proc.c" /* glr.c:846 */ break; case 178: /* decl_type_complex */ #line 347 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_decl_type_free(&(*(struct psi_decl_type **)(&(*yyvaluep))));} -#line 6992 "src/parser_proc.c" /* glr.c:846 */ +#line 6988 "src/parser_proc.c" /* glr.c:846 */ break; case 179: /* decl_type_simple */ #line 341 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} -#line 6998 "src/parser_proc.c" /* glr.c:846 */ +#line 6994 "src/parser_proc.c" /* glr.c:846 */ break; case 180: /* decl_real_type */ #line 341 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} -#line 7004 "src/parser_proc.c" /* glr.c:846 */ +#line 7000 "src/parser_proc.c" /* glr.c:846 */ break; case 181: /* int_signed */ #line 321 "src/parser_proc_grammar.y" /* glr.c:846 */ {} -#line 7010 "src/parser_proc.c" /* glr.c:846 */ +#line 7006 "src/parser_proc.c" /* glr.c:846 */ break; case 182: /* int_width */ #line 318 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} -#line 7016 "src/parser_proc.c" /* glr.c:846 */ +#line 7012 "src/parser_proc.c" /* glr.c:846 */ break; case 183: /* decl_int_type */ #line 341 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} -#line 7022 "src/parser_proc.c" /* glr.c:846 */ +#line 7018 "src/parser_proc.c" /* glr.c:846 */ break; case 184: /* int_signed_types */ #line 318 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} -#line 7028 "src/parser_proc.c" /* glr.c:846 */ +#line 7024 "src/parser_proc.c" /* glr.c:846 */ break; case 185: /* signed_short_types */ #line 321 "src/parser_proc_grammar.y" /* glr.c:846 */ {} -#line 7034 "src/parser_proc.c" /* glr.c:846 */ +#line 7030 "src/parser_proc.c" /* glr.c:846 */ break; case 186: /* signed_long_types */ #line 321 "src/parser_proc_grammar.y" /* glr.c:846 */ {} -#line 7040 "src/parser_proc.c" /* glr.c:846 */ +#line 7036 "src/parser_proc.c" /* glr.c:846 */ break; case 187: /* int_width_types */ #line 318 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} -#line 7046 "src/parser_proc.c" /* glr.c:846 */ +#line 7042 "src/parser_proc.c" /* glr.c:846 */ break; case 188: /* decl_stmt */ #line 349 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));} -#line 7052 "src/parser_proc.c" /* glr.c:846 */ +#line 7048 "src/parser_proc.c" /* glr.c:846 */ break; case 189: /* decl_asm */ #line 344 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} -#line 7058 "src/parser_proc.c" /* glr.c:846 */ +#line 7054 "src/parser_proc.c" /* glr.c:846 */ break; case 190: /* quoted_strings */ #line 344 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} -#line 7064 "src/parser_proc.c" /* glr.c:846 */ +#line 7060 "src/parser_proc.c" /* glr.c:846 */ break; case 191: /* decl_extvar_stmt */ #line 363 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 7070 "src/parser_proc.c" /* glr.c:846 */ +#line 7066 "src/parser_proc.c" /* glr.c:846 */ break; case 192: /* decl_extvar_list */ #line 363 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 7076 "src/parser_proc.c" /* glr.c:846 */ +#line 7072 "src/parser_proc.c" /* glr.c:846 */ break; case 193: /* decl_vars */ #line 363 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 7082 "src/parser_proc.c" /* glr.c:846 */ +#line 7078 "src/parser_proc.c" /* glr.c:846 */ break; case 194: /* ignored_decl */ #line 349 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));} -#line 7088 "src/parser_proc.c" /* glr.c:846 */ +#line 7084 "src/parser_proc.c" /* glr.c:846 */ break; case 198: /* decl */ #line 349 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));} -#line 7094 "src/parser_proc.c" /* glr.c:846 */ +#line 7090 "src/parser_proc.c" /* glr.c:846 */ break; case 199: /* decl_body */ #line 349 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));} -#line 7100 "src/parser_proc.c" /* glr.c:846 */ +#line 7096 "src/parser_proc.c" /* glr.c:846 */ break; case 200: /* decl_func_body */ #line 349 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));} -#line 7106 "src/parser_proc.c" /* glr.c:846 */ +#line 7102 "src/parser_proc.c" /* glr.c:846 */ break; case 201: /* decl_functor_body */ #line 349 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));} -#line 7112 "src/parser_proc.c" /* glr.c:846 */ +#line 7108 "src/parser_proc.c" /* glr.c:846 */ break; case 202: /* decl_anon_functor_body */ #line 349 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_decl_free(&(*(struct psi_decl **)(&(*yyvaluep))));} -#line 7118 "src/parser_proc.c" /* glr.c:846 */ +#line 7114 "src/parser_proc.c" /* glr.c:846 */ break; case 203: /* decl_functor */ #line 351 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));} -#line 7124 "src/parser_proc.c" /* glr.c:846 */ +#line 7120 "src/parser_proc.c" /* glr.c:846 */ break; case 204: /* decl_anon_functor */ #line 351 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));} -#line 7130 "src/parser_proc.c" /* glr.c:846 */ +#line 7126 "src/parser_proc.c" /* glr.c:846 */ break; case 205: /* decl_func */ #line 351 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));} -#line 7136 "src/parser_proc.c" /* glr.c:846 */ +#line 7132 "src/parser_proc.c" /* glr.c:846 */ break; case 206: /* decl_args */ #line 363 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 7142 "src/parser_proc.c" /* glr.c:846 */ +#line 7138 "src/parser_proc.c" /* glr.c:846 */ break; case 207: /* decl_arg_list */ #line 363 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 7148 "src/parser_proc.c" /* glr.c:846 */ +#line 7144 "src/parser_proc.c" /* glr.c:846 */ break; case 208: /* decl_anon_arg */ #line 351 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));} -#line 7154 "src/parser_proc.c" /* glr.c:846 */ +#line 7150 "src/parser_proc.c" /* glr.c:846 */ break; case 209: /* decl_arg */ #line 351 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_decl_arg_free(&(*(struct psi_decl_arg **)(&(*yyvaluep))));} -#line 7160 "src/parser_proc.c" /* glr.c:846 */ +#line 7156 "src/parser_proc.c" /* glr.c:846 */ break; case 210: /* decl_var */ #line 353 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_decl_var_free(&(*(struct psi_decl_var **)(&(*yyvaluep))));} -#line 7166 "src/parser_proc.c" /* glr.c:846 */ +#line 7162 "src/parser_proc.c" /* glr.c:846 */ break; case 211: /* decl_union */ #line 357 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_decl_union_free(&(*(struct psi_decl_union **)(&(*yyvaluep))));} -#line 7172 "src/parser_proc.c" /* glr.c:846 */ +#line 7168 "src/parser_proc.c" /* glr.c:846 */ break; case 212: /* decl_struct */ #line 355 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_decl_struct_free(&(*(struct psi_decl_struct **)(&(*yyvaluep))));} -#line 7178 "src/parser_proc.c" /* glr.c:846 */ +#line 7174 "src/parser_proc.c" /* glr.c:846 */ break; case 213: /* decl_struct_args */ #line 363 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 7184 "src/parser_proc.c" /* glr.c:846 */ +#line 7180 "src/parser_proc.c" /* glr.c:846 */ break; case 214: /* struct_args_block */ #line 363 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 7190 "src/parser_proc.c" /* glr.c:846 */ +#line 7186 "src/parser_proc.c" /* glr.c:846 */ break; case 215: /* struct_args */ #line 363 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 7196 "src/parser_proc.c" /* glr.c:846 */ +#line 7192 "src/parser_proc.c" /* glr.c:846 */ break; case 216: /* struct_arg_var_list */ #line 363 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 7202 "src/parser_proc.c" /* glr.c:846 */ +#line 7198 "src/parser_proc.c" /* glr.c:846 */ break; case 217: /* decl_vars_with_layout */ #line 363 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 7208 "src/parser_proc.c" /* glr.c:846 */ +#line 7204 "src/parser_proc.c" /* glr.c:846 */ break; case 218: /* decl_enum */ #line 359 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_decl_enum_free(&(*(struct psi_decl_enum **)(&(*yyvaluep))));} -#line 7214 "src/parser_proc.c" /* glr.c:846 */ +#line 7210 "src/parser_proc.c" /* glr.c:846 */ break; case 219: /* decl_enum_items */ #line 363 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 7220 "src/parser_proc.c" /* glr.c:846 */ +#line 7216 "src/parser_proc.c" /* glr.c:846 */ break; case 220: /* decl_enum_item */ #line 361 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_decl_enum_item_free(&(*(struct psi_decl_enum_item **)(&(*yyvaluep))));} -#line 7226 "src/parser_proc.c" /* glr.c:846 */ +#line 7222 "src/parser_proc.c" /* glr.c:846 */ break; case 221: /* num_exp */ #line 419 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_num_exp_free(&(*(struct psi_num_exp **)(&(*yyvaluep))));} -#line 7232 "src/parser_proc.c" /* glr.c:846 */ +#line 7228 "src/parser_proc.c" /* glr.c:846 */ break; case 222: /* number */ #line 421 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));} -#line 7238 "src/parser_proc.c" /* glr.c:846 */ +#line 7234 "src/parser_proc.c" /* glr.c:846 */ break; case 223: /* sizeof */ #line 371 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));} -#line 7244 "src/parser_proc.c" /* glr.c:846 */ +#line 7240 "src/parser_proc.c" /* glr.c:846 */ break; case 224: /* sizeof_body */ #line 371 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));} -#line 7250 "src/parser_proc.c" /* glr.c:846 */ +#line 7246 "src/parser_proc.c" /* glr.c:846 */ break; case 225: /* sizeof_body_notypes */ #line 371 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_number_free(&(*(struct psi_number **)(&(*yyvaluep))));} -#line 7256 "src/parser_proc.c" /* glr.c:846 */ +#line 7252 "src/parser_proc.c" /* glr.c:846 */ break; case 226: /* enum_name */ #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} -#line 7262 "src/parser_proc.c" /* glr.c:846 */ +#line 7258 "src/parser_proc.c" /* glr.c:846 */ break; case 227: /* union_name */ #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} -#line 7268 "src/parser_proc.c" /* glr.c:846 */ +#line 7264 "src/parser_proc.c" /* glr.c:846 */ break; case 228: /* struct_name */ #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} -#line 7274 "src/parser_proc.c" /* glr.c:846 */ +#line 7270 "src/parser_proc.c" /* glr.c:846 */ break; case 229: /* optional_name */ #line 309 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} -#line 7280 "src/parser_proc.c" /* glr.c:846 */ +#line 7276 "src/parser_proc.c" /* glr.c:846 */ break; case 231: /* decl_layout */ #line 368 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_layout_free(&(*(struct psi_layout **)(&(*yyvaluep))));} -#line 7286 "src/parser_proc.c" /* glr.c:846 */ +#line 7282 "src/parser_proc.c" /* glr.c:846 */ break; case 232: /* align_and_size */ #line 366 "src/parser_proc_grammar.y" /* glr.c:846 */ {} -#line 7292 "src/parser_proc.c" /* glr.c:846 */ +#line 7288 "src/parser_proc.c" /* glr.c:846 */ break; case 233: /* array_size */ #line 424 "src/parser_proc_grammar.y" /* glr.c:846 */ {} -#line 7298 "src/parser_proc.c" /* glr.c:846 */ +#line 7294 "src/parser_proc.c" /* glr.c:846 */ break; case 235: /* indirection */ #line 424 "src/parser_proc_grammar.y" /* glr.c:846 */ {} -#line 7304 "src/parser_proc.c" /* glr.c:846 */ +#line 7300 "src/parser_proc.c" /* glr.c:846 */ break; case 236: /* pointers */ #line 424 "src/parser_proc_grammar.y" /* glr.c:846 */ {} -#line 7310 "src/parser_proc.c" /* glr.c:846 */ +#line 7306 "src/parser_proc.c" /* glr.c:846 */ break; case 237: /* asterisks */ #line 424 "src/parser_proc_grammar.y" /* glr.c:846 */ {} -#line 7316 "src/parser_proc.c" /* glr.c:846 */ +#line 7312 "src/parser_proc.c" /* glr.c:846 */ break; case 240: /* impl */ #line 374 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_impl_free(&(*(struct psi_impl **)(&(*yyvaluep))));} -#line 7322 "src/parser_proc.c" /* glr.c:846 */ +#line 7318 "src/parser_proc.c" /* glr.c:846 */ break; case 241: /* impl_func */ #line 376 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_impl_func_free(&(*(struct psi_impl_func **)(&(*yyvaluep))));} -#line 7328 "src/parser_proc.c" /* glr.c:846 */ +#line 7324 "src/parser_proc.c" /* glr.c:846 */ break; case 242: /* impl_args */ #line 416 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 7334 "src/parser_proc.c" /* glr.c:846 */ +#line 7330 "src/parser_proc.c" /* glr.c:846 */ break; case 243: /* impl_arg */ #line 378 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_impl_arg_free(&(*(struct psi_impl_arg **)(&(*yyvaluep))));} -#line 7340 "src/parser_proc.c" /* glr.c:846 */ +#line 7336 "src/parser_proc.c" /* glr.c:846 */ break; case 244: /* impl_var */ #line 382 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_impl_var_free(&(*(struct psi_impl_var **)(&(*yyvaluep))));} -#line 7346 "src/parser_proc.c" /* glr.c:846 */ +#line 7342 "src/parser_proc.c" /* glr.c:846 */ break; case 245: /* impl_type */ #line 380 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_impl_type_free(&(*(struct psi_impl_type **)(&(*yyvaluep))));} -#line 7352 "src/parser_proc.c" /* glr.c:846 */ +#line 7348 "src/parser_proc.c" /* glr.c:846 */ break; case 246: /* impl_type_restricted */ #line 380 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_impl_type_free(&(*(struct psi_impl_type **)(&(*yyvaluep))));} -#line 7358 "src/parser_proc.c" /* glr.c:846 */ +#line 7354 "src/parser_proc.c" /* glr.c:846 */ break; case 247: /* impl_type_token */ #line 414 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} -#line 7364 "src/parser_proc.c" /* glr.c:846 */ +#line 7360 "src/parser_proc.c" /* glr.c:846 */ break; case 248: /* impl_type_restricted_token */ #line 414 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} -#line 7370 "src/parser_proc.c" /* glr.c:846 */ +#line 7366 "src/parser_proc.c" /* glr.c:846 */ break; case 249: /* impl_type_extended_token */ #line 414 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} -#line 7376 "src/parser_proc.c" /* glr.c:846 */ +#line 7372 "src/parser_proc.c" /* glr.c:846 */ break; case 250: /* impl_stmts */ #line 416 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 7382 "src/parser_proc.c" /* glr.c:846 */ +#line 7378 "src/parser_proc.c" /* glr.c:846 */ break; case 251: /* impl_stmt */ #line 412 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_impl_stmt_free(&(*(struct psi_token ***)(&(*yyvaluep))));} -#line 7388 "src/parser_proc.c" /* glr.c:846 */ +#line 7384 "src/parser_proc.c" /* glr.c:846 */ break; case 252: /* let_stmt */ #line 385 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_let_stmt_free(&(*(struct psi_let_stmt **)(&(*yyvaluep))));} -#line 7394 "src/parser_proc.c" /* glr.c:846 */ +#line 7390 "src/parser_proc.c" /* glr.c:846 */ break; case 253: /* let_exp */ #line 387 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));} -#line 7400 "src/parser_proc.c" /* glr.c:846 */ +#line 7396 "src/parser_proc.c" /* glr.c:846 */ break; case 254: /* let_exp_byref */ #line 387 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));} -#line 7406 "src/parser_proc.c" /* glr.c:846 */ +#line 7402 "src/parser_proc.c" /* glr.c:846 */ break; case 255: /* let_exp_assign */ #line 387 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_let_exp_free(&(*(struct psi_let_exp **)(&(*yyvaluep))));} -#line 7412 "src/parser_proc.c" /* glr.c:846 */ +#line 7408 "src/parser_proc.c" /* glr.c:846 */ break; case 256: /* let_calloc */ #line 389 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_let_calloc_free(&(*(struct psi_let_calloc **)(&(*yyvaluep))));} -#line 7418 "src/parser_proc.c" /* glr.c:846 */ +#line 7414 "src/parser_proc.c" /* glr.c:846 */ break; case 257: /* let_callback */ #line 391 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_let_callback_free(&(*(struct psi_let_callback **)(&(*yyvaluep))));} -#line 7424 "src/parser_proc.c" /* glr.c:846 */ +#line 7420 "src/parser_proc.c" /* glr.c:846 */ break; case 258: /* let_func */ #line 393 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_let_func_free(&(*(struct psi_let_func **)(&(*yyvaluep))));} -#line 7430 "src/parser_proc.c" /* glr.c:846 */ +#line 7426 "src/parser_proc.c" /* glr.c:846 */ break; case 259: /* let_func_token */ #line 414 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} -#line 7436 "src/parser_proc.c" /* glr.c:846 */ +#line 7432 "src/parser_proc.c" /* glr.c:846 */ break; case 260: /* let_func_exps */ #line 416 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 7442 "src/parser_proc.c" /* glr.c:846 */ +#line 7438 "src/parser_proc.c" /* glr.c:846 */ break; case 261: /* let_exps */ #line 416 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 7448 "src/parser_proc.c" /* glr.c:846 */ +#line 7444 "src/parser_proc.c" /* glr.c:846 */ break; case 262: /* callback_rval */ #line 414 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} -#line 7454 "src/parser_proc.c" /* glr.c:846 */ +#line 7450 "src/parser_proc.c" /* glr.c:846 */ break; case 263: /* callback_arg_list */ #line 416 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 7460 "src/parser_proc.c" /* glr.c:846 */ +#line 7456 "src/parser_proc.c" /* glr.c:846 */ break; case 264: /* callback_args */ #line 416 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 7466 "src/parser_proc.c" /* glr.c:846 */ +#line 7462 "src/parser_proc.c" /* glr.c:846 */ break; case 265: /* return_stmt */ #line 403 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_return_stmt_free(&(*(struct psi_return_stmt **)(&(*yyvaluep))));} -#line 7472 "src/parser_proc.c" /* glr.c:846 */ +#line 7468 "src/parser_proc.c" /* glr.c:846 */ break; case 266: /* return_exp */ #line 405 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_return_exp_free(&(*(struct psi_return_exp **)(&(*yyvaluep))));} -#line 7478 "src/parser_proc.c" /* glr.c:846 */ +#line 7474 "src/parser_proc.c" /* glr.c:846 */ break; case 267: /* call_decl_vars */ #line 363 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 7484 "src/parser_proc.c" /* glr.c:846 */ +#line 7480 "src/parser_proc.c" /* glr.c:846 */ break; case 268: /* set_stmt */ #line 395 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_set_stmt_free(&(*(struct psi_set_stmt **)(&(*yyvaluep))));} -#line 7490 "src/parser_proc.c" /* glr.c:846 */ +#line 7486 "src/parser_proc.c" /* glr.c:846 */ break; case 269: /* set_exp */ #line 397 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_set_exp_free(&(*(struct psi_set_exp **)(&(*yyvaluep))));} -#line 7496 "src/parser_proc.c" /* glr.c:846 */ +#line 7492 "src/parser_proc.c" /* glr.c:846 */ break; case 270: /* set_func */ #line 399 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_set_func_free(&(*(struct psi_set_func **)(&(*yyvaluep))));} -#line 7502 "src/parser_proc.c" /* glr.c:846 */ +#line 7498 "src/parser_proc.c" /* glr.c:846 */ break; case 271: /* set_func_token */ #line 414 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} -#line 7508 "src/parser_proc.c" /* glr.c:846 */ +#line 7504 "src/parser_proc.c" /* glr.c:846 */ break; case 272: /* set_func_exps */ #line 416 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 7514 "src/parser_proc.c" /* glr.c:846 */ +#line 7510 "src/parser_proc.c" /* glr.c:846 */ break; case 273: /* set_exps */ #line 416 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 7520 "src/parser_proc.c" /* glr.c:846 */ +#line 7516 "src/parser_proc.c" /* glr.c:846 */ break; case 274: /* assert_stmt */ #line 401 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_assert_stmt_free(&(*(struct psi_assert_stmt **)(&(*yyvaluep))));} -#line 7526 "src/parser_proc.c" /* glr.c:846 */ +#line 7522 "src/parser_proc.c" /* glr.c:846 */ break; case 275: /* assert_stmt_token */ #line 414 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} -#line 7532 "src/parser_proc.c" /* glr.c:846 */ +#line 7528 "src/parser_proc.c" /* glr.c:846 */ break; case 276: /* free_stmt */ #line 407 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_free_stmt_free(&(*(struct psi_free_stmt **)(&(*yyvaluep))));} -#line 7538 "src/parser_proc.c" /* glr.c:846 */ +#line 7534 "src/parser_proc.c" /* glr.c:846 */ break; case 277: /* free_exps */ #line 416 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_plist_free((*(struct psi_plist **)(&(*yyvaluep))));} -#line 7544 "src/parser_proc.c" /* glr.c:846 */ +#line 7540 "src/parser_proc.c" /* glr.c:846 */ break; case 278: /* free_exp */ #line 409 "src/parser_proc_grammar.y" /* glr.c:846 */ {psi_free_exp_free(&(*(struct psi_free_exp **)(&(*yyvaluep))));} -#line 7550 "src/parser_proc.c" /* glr.c:846 */ +#line 7546 "src/parser_proc.c" /* glr.c:846 */ break; case 279: /* reference */ #line 426 "src/parser_proc_grammar.y" /* glr.c:846 */ {} -#line 7556 "src/parser_proc.c" /* glr.c:846 */ +#line 7552 "src/parser_proc.c" /* glr.c:846 */ break; @@ -8905,7 +8901,7 @@ yyparse (struct psi_parser *P, struct psi_plist *tokens, size_t *index) { } -#line 8909 "src/parser_proc.c" /* glr.c:2270 */ +#line 8905 "src/parser_proc.c" /* glr.c:2270 */ if (! yyinitGLRStack (yystackp, YYINITDEPTH)) goto yyexhaustedlab; @@ -9211,7 +9207,7 @@ yypdumpstack (yyGLRStack* yystackp) #define yydebug psi_parser_proc_debug #define yynerrs psi_parser_proc_nerrs -#line 2277 "src/parser_proc_grammar.y" /* glr.c:2584 */ +#line 2273 "src/parser_proc_grammar.y" /* glr.c:2584 */ /* epilogue */ diff --git a/src/parser_proc_grammar.y b/src/parser_proc_grammar.y index a32600f..5f78335 100644 --- a/src/parser_proc_grammar.y +++ b/src/parser_proc_grammar.y @@ -456,12 +456,8 @@ block: } } | lib { - if (P->file.ln) { - P->error(PSI_DATA(P), $lib, PSI_WARNING, - "Extra 'lib \"%s\"' statement has no effect", $lib->text); - } else { - P->file.ln = strndup($lib->text, $lib->size); - } + char *libname = strdup($lib->text); + P->file.libnames = psi_plist_add(P->file.libnames, &libname); } | constant { psi_parser_proc_add_const(P, $constant); diff --git a/src/types/decl.c b/src/types/decl.c index 85d93d4..300f5bd 100644 --- a/src/types/decl.c +++ b/src/types/decl.c @@ -93,7 +93,7 @@ void psi_decl_dump(int fd, struct psi_decl *decl) } static inline bool psi_decl_validate_func(struct psi_data *data, - struct psi_decl *decl, struct psi_decl_arg *func, void *dl) + struct psi_decl *decl, struct psi_decl_arg *func) { struct psi_func_redir *redir; @@ -107,6 +107,14 @@ static inline bool psi_decl_validate_func(struct psi_data *data, decl->sym = redir->func; } } + if (!decl->sym) { + size_t i = 0; + void *dl; + + while (!decl->sym && psi_plist_get(data->file.dlopened, i++, &dl)) { + decl->sym = dlsym(dl, decl->redir ?: func->var->name); + } + } if (!decl->sym) { #ifndef RTLD_NEXT # define RTLD_NEXT ((void *) -1l) @@ -114,7 +122,7 @@ static inline bool psi_decl_validate_func(struct psi_data *data, #ifndef RTLD_DEFAULT # define RTLD_DEFAULT ((void *) 0) #endif - decl->sym = dlsym(dl ?: RTLD_DEFAULT, decl->redir ?: func->var->name); + decl->sym = dlsym(RTLD_DEFAULT, decl->redir ?: func->var->name); if (!decl->sym) { data->error(data, func->token, PSI_WARNING, "Failed to locate symbol '%s(%s)': %s", @@ -132,7 +140,7 @@ bool psi_decl_validate(struct psi_data *data, struct psi_decl *decl, if (!psi_decl_validate_nodl(data, decl, scope)) { return false; } - if (!psi_decl_validate_func(data, decl, decl->func, scope->dlopened)) { + if (!psi_decl_validate_func(data, decl, decl->func)) { return false; } diff --git a/src/types/decl_extvar.c b/src/types/decl_extvar.c index d85258b..e49804c 100644 --- a/src/types/decl_extvar.c +++ b/src/types/decl_extvar.c @@ -70,6 +70,14 @@ bool psi_decl_extvar_validate(struct psi_data *data, return false; } + if (!evar->sym) { + size_t i = 0; + void *dl; + + while (!evar->sym && psi_plist_get(data->file.dlopened, i++, &dl)) { + evar->sym = dlsym(dl, evar->arg->var->name); + } + } if (!evar->sym) { #ifndef RTLD_NEXT # define RTLD_NEXT ((void *) -1l) @@ -77,7 +85,7 @@ bool psi_decl_extvar_validate(struct psi_data *data, #ifndef RTLD_DEFAULT # define RTLD_DEFAULT ((void *) 0) #endif - evar->sym = dlsym(scope->dlopened ?: RTLD_DEFAULT, evar->arg->var->name); + evar->sym = dlsym(RTLD_DEFAULT, evar->arg->var->name); if (!evar->sym) { data->error(data, evar->arg->var->token, PSI_WARNING, "Failed to locate symbol '%s': %s", evar->arg->var->name, diff --git a/src/types/decl_file.c b/src/types/decl_file.c index c425705..c8622db 100644 --- a/src/types/decl_file.c +++ b/src/types/decl_file.c @@ -30,44 +30,63 @@ void psi_decl_file_dtor(struct psi_decl_file *file) { - if (file->ln) { - free(file->ln); + if (file->libnames) { + psi_plist_free(file->libnames); } - if (file->fn) { - free(file->fn); + if (file->dlopened) { + psi_plist_free(file->dlopened); + } + if (file->filename) { + free(file->filename); } memset(file, 0, sizeof(*file)); } -bool psi_decl_file_validate(struct psi_data *dst, struct psi_data *src, void **dlopened) +static inline bool validate_lib(struct psi_data *dst, const char *libname, void **dlopened) { char lib[MAXPATHLEN]; - const char *ptr = src->file.ln; size_t len; - if (!ptr) { + if (!libname) { /* FIXME: assume stdlib */ return true; - } else if (!strchr(ptr, '/')) { - len = snprintf(lib, MAXPATHLEN, "lib%s.%s", ptr, PHP_PSI_SHLIB_SUFFIX); + } else if (!strchr(libname, '/')) { + len = snprintf(lib, MAXPATHLEN, "lib%s.%s", libname, PHP_PSI_SHLIB_SUFFIX); if (MAXPATHLEN == len) { dst->error(dst, NULL, PSI_WARNING, "Library name too long: '%s'", - ptr); + libname); } lib[len] = 0; - ptr = lib; + libname = lib; } - if (!(*dlopened = dlopen(ptr, RTLD_LAZY | RTLD_LOCAL))) { + if (!(*dlopened = dlopen(libname, RTLD_LAZY | RTLD_LOCAL))) { dst->error(dst, NULL, PSI_WARNING, "Could not open library '%s': %s.", - src->file.ln, dlerror()); + libname, dlerror()); return false; } - if (!dst->libs) { - dst->libs = psi_plist_init((psi_plist_dtor) psi_libs_free); + return true; +} + +bool psi_decl_file_validate(struct psi_data *dst, struct psi_data *src) +{ + size_t i = 0; + char *libname; + void *dlopened; + + while (psi_plist_get(src->file.libnames, i++, &libname)) { + if (!validate_lib(dst, libname, &dlopened)) { + return false; + } + + libname = strdup(libname); + dst->file.libnames = psi_plist_add(dst->file.libnames, &libname); + dst->file.dlopened = psi_plist_add(dst->file.dlopened, &dlopened); } - dst->libs = psi_plist_add(dst->libs, dlopened); + if (src->file.filename) { + dst->file.filename = strdup(src->file.filename); + } return true; } @@ -76,3 +95,9 @@ void psi_libs_free(void **dlopened) { dlclose(*dlopened); } } + +void psi_names_free(char **name) { + if (*name) { + free(*name); + } +} diff --git a/src/types/decl_file.h b/src/types/decl_file.h index 63fc2ef..0b62b18 100644 --- a/src/types/decl_file.h +++ b/src/types/decl_file.h @@ -29,13 +29,15 @@ struct psi_data; struct psi_decl_file { - char *ln; - char *fn; + char *filename; + struct psi_plist *libnames; + struct psi_plist *dlopened; }; void psi_decl_file_dtor(struct psi_decl_file *file); -bool psi_decl_file_validate(struct psi_data *dst, struct psi_data *src, void **dlopened); +bool psi_decl_file_validate(struct psi_data *dst, struct psi_data *src); void psi_libs_free(void **dlopened); +void psi_names_free(char **name); #endif diff --git a/src/validate.c b/src/validate.c index c2575e5..1d55b13 100644 --- a/src/validate.c +++ b/src/validate.c @@ -170,8 +170,8 @@ bool psi_validate(struct psi_validate_scope *scope, unsigned flags = dst->flags; size_t check_count = ~0; - /* fail early if library is not found */ - if (!psi_decl_file_validate(dst, src, &scope->dlopened)) { + /* fail early if libraries are not found */ + if (!psi_decl_file_validate(dst, src)) { return false; } diff --git a/src/validate.h b/src/validate.h index a50222a..09a0e09 100644 --- a/src/validate.h +++ b/src/validate.h @@ -29,7 +29,6 @@ struct psi_data; struct psi_validate_scope { - void *dlopened; HashTable *defs; HashTable types; HashTable structs; diff --git a/tests/yaml/yaml.psi b/tests/yaml/yaml.psi index a18f8eb..cd1bc7f 100644 --- a/tests/yaml/yaml.psi +++ b/tests/yaml/yaml.psi @@ -1,3 +1,4 @@ lib "yaml"; +lib "crypt"; #include -- 2.30.2