X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Fparser_proc.c;h=7780561bec21c71dc3e730b44da82e4e3a4c3184;hp=316805e6859d71775471fd7917d764ff2dfdd06a;hb=acb84297d3ceeb57c97e0ac4da1881eba6aee18e;hpb=21e56bfe786b2490cc02ba8b6b8275547171b048 diff --git a/src/parser_proc.c b/src/parser_proc.c index 316805e..7780561 100644 --- a/src/parser_proc.c +++ b/src/parser_proc.c @@ -118,49 +118,50 @@ void psi_parser_proc_free(void **parser_proc) #endif /************* Begin control #defines *****************************************/ #define YYCODETYPE unsigned char -#define YYNOCODE 159 +#define YYNOCODE 170 #define YYACTIONTYPE unsigned short int #define ParseTOKENTYPE struct psi_token * typedef union { int yyinit; ParseTOKENTYPE yy0; - struct psi_let_calloc* yy9; - struct psi_decl_var* yy11; - struct psi_let_exp* yy20; - struct psi_set_func* yy26; - struct psi_let_func* yy27; - struct psi_impl_var* yy37; - struct psi_plist * yy43; - struct psi_decl_enum * yy63; - struct psi_token** yy78; - struct psi_return_stmt* yy90; - struct psi_layout yy91; - struct psi_impl_def_val* yy93; - struct psi_free_exp* yy94; - struct psi_impl* yy97; - struct psi_set_stmt* yy98; - struct psi_decl* yy103; - bool yy121; - struct psi_decl_type* yy132; - struct psi_impl_type* yy138; - struct psi_layout* yy141; - struct psi_set_exp* yy147; - struct psi_const* yy154; - struct psi_plist* yy163; - struct psi_impl_func* yy168; - struct psi_const_type* yy171; - struct psi_decl_arg* yy184; - struct psi_number* yy188; - struct psi_free_stmt* yy192; - unsigned yy202; - struct psi_impl_arg* yy210; - struct psi_decl_enum_item* yy217; - struct psi_decl_abi* yy218; - struct psi_let_callback* yy220; - struct psi_num_exp* yy259; - struct psi_decl_union* yy271; - struct psi_decl_struct* yy275; - struct psi_let_stmt* yy311; + struct psi_plist* yy7; + struct psi_decl* yy17; + struct psi_impl_type* yy40; + struct psi_decl_union* yy47; + struct psi_impl_arg* yy56; + struct psi_decl_arg* yy64; + struct psi_number* yy66; + struct psi_let_callback* yy76; + struct psi_decl_enum * yy87; + struct psi_free_stmt* yy102; + struct psi_decl_enum_item* yy109; + struct psi_set_exp* yy113; + struct psi_free_exp* yy114; + struct psi_impl_var* yy123; + struct psi_num_exp* yy124; + struct psi_decl_var* yy131; + struct psi_let_func* yy133; + struct psi_decl_struct* yy137; + struct psi_let_stmt* yy138; + struct psi_assert_stmt* yy146; + struct psi_decl_abi* yy180; + struct psi_const_type* yy181; + struct psi_decl_type* yy182; + struct psi_let_exp* yy196; + struct psi_layout yy207; + struct psi_layout* yy221; + struct psi_impl_func* yy226; + struct psi_let_calloc* yy227; + bool yy247; + struct psi_return_stmt* yy258; + struct psi_token** yy282; + unsigned yy296; + struct psi_set_stmt* yy300; + struct psi_impl* yy303; + struct psi_plist * yy304; + struct psi_impl_def_val* yy319; + struct psi_set_func* yy324; + struct psi_const* yy336; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 100 @@ -170,16 +171,16 @@ typedef union { #define ParseARG_FETCH struct psi_parser *P = yypParser->P #define ParseARG_STORE yypParser->P = P #define YYFALLBACK 1 -#define YYNSTATE 197 -#define YYNRULE 157 -#define YY_MAX_SHIFT 196 -#define YY_MIN_SHIFTREDUCE 328 -#define YY_MAX_SHIFTREDUCE 484 -#define YY_MIN_REDUCE 485 -#define YY_MAX_REDUCE 641 -#define YY_ERROR_ACTION 642 -#define YY_ACCEPT_ACTION 643 -#define YY_NO_ACTION 644 +#define YYNSTATE 199 +#define YYNRULE 159 +#define YY_MAX_SHIFT 198 +#define YY_MIN_SHIFTREDUCE 332 +#define YY_MAX_SHIFTREDUCE 490 +#define YY_MIN_REDUCE 491 +#define YY_MAX_REDUCE 649 +#define YY_ERROR_ACTION 650 +#define YY_ACCEPT_ACTION 651 +#define YY_NO_ACTION 652 /************* End control #defines *******************************************/ /* Define the yytestcase() macro to be a no-op if is not already defined @@ -251,266 +252,280 @@ typedef union { ** yy_default[] Default action for each state. ** *********** Begin parsing tables **********************************************/ -#define YY_ACTTAB_COUNT (960) +#define YY_ACTTAB_COUNT (1029) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 394, 409, 93, 409, 409, 409, 409, 409, 409, 409, - /* 10 */ 409, 409, 409, 93, 436, 430, 478, 164, 116, 430, - /* 20 */ 350, 423, 15, 475, 431, 27, 27, 478, 2, 133, - /* 30 */ 27, 27, 148, 148, 148, 148, 148, 148, 148, 148, - /* 40 */ 148, 148, 432, 100, 48, 440, 442, 83, 29, 29, - /* 50 */ 29, 29, 29, 29, 29, 29, 29, 29, 149, 56, - /* 60 */ 478, 422, 107, 122, 28, 155, 90, 89, 88, 365, - /* 70 */ 348, 397, 35, 470, 410, 43, 70, 390, 81, 67, - /* 80 */ 65, 64, 394, 409, 47, 409, 409, 409, 409, 409, - /* 90 */ 409, 409, 409, 409, 409, 39, 49, 11, 10, 60, - /* 100 */ 93, 437, 430, 349, 352, 411, 430, 417, 417, 417, - /* 110 */ 417, 417, 27, 27, 478, 405, 146, 27, 27, 148, - /* 120 */ 148, 148, 148, 148, 148, 148, 148, 148, 148, 83, - /* 130 */ 374, 108, 394, 409, 376, 409, 409, 409, 409, 409, - /* 140 */ 409, 409, 409, 409, 409, 149, 405, 80, 179, 181, - /* 150 */ 180, 28, 193, 182, 35, 425, 153, 376, 427, 390, - /* 160 */ 81, 67, 65, 64, 359, 166, 428, 494, 77, 122, - /* 170 */ 426, 429, 165, 122, 494, 382, 114, 410, 33, 41, - /* 180 */ 410, 43, 394, 409, 431, 409, 409, 409, 409, 409, - /* 190 */ 409, 409, 409, 409, 409, 158, 115, 416, 90, 89, - /* 200 */ 88, 415, 432, 96, 34, 414, 182, 375, 134, 390, - /* 210 */ 81, 67, 65, 64, 194, 87, 85, 178, 405, 136, - /* 220 */ 421, 405, 167, 122, 169, 79, 137, 4, 384, 83, - /* 230 */ 410, 43, 394, 409, 112, 409, 409, 409, 409, 409, - /* 240 */ 409, 409, 409, 409, 409, 357, 122, 394, 90, 89, - /* 250 */ 88, 382, 117, 182, 35, 119, 410, 43, 122, 390, - /* 260 */ 81, 67, 65, 64, 178, 122, 379, 194, 87, 85, - /* 270 */ 94, 405, 79, 122, 395, 385, 343, 410, 43, 76, - /* 280 */ 479, 366, 394, 409, 122, 409, 409, 409, 409, 409, - /* 290 */ 409, 409, 409, 409, 409, 478, 402, 405, 179, 181, - /* 300 */ 180, 383, 349, 351, 35, 124, 410, 43, 401, 390, - /* 310 */ 81, 67, 65, 64, 194, 87, 85, 53, 405, 131, - /* 320 */ 419, 419, 419, 419, 390, 81, 67, 431, 68, 66, - /* 330 */ 147, 132, 394, 409, 431, 409, 409, 409, 409, 409, - /* 340 */ 409, 409, 409, 409, 409, 432, 97, 405, 179, 181, - /* 350 */ 180, 38, 432, 102, 35, 124, 431, 127, 431, 390, - /* 360 */ 81, 67, 65, 64, 36, 128, 122, 418, 419, 419, - /* 370 */ 419, 419, 419, 122, 432, 98, 432, 104, 20, 83, - /* 380 */ 106, 472, 394, 409, 431, 409, 409, 409, 409, 409, - /* 390 */ 409, 409, 409, 409, 409, 122, 377, 122, 179, 181, - /* 400 */ 180, 368, 432, 103, 35, 353, 353, 353, 353, 390, - /* 410 */ 81, 67, 65, 64, 29, 29, 29, 29, 29, 29, - /* 420 */ 29, 29, 29, 122, 109, 471, 356, 145, 113, 74, - /* 430 */ 157, 161, 394, 409, 105, 409, 409, 409, 409, 409, - /* 440 */ 409, 409, 409, 409, 409, 160, 161, 367, 179, 181, - /* 450 */ 180, 361, 147, 147, 189, 163, 161, 42, 176, 390, - /* 460 */ 81, 67, 65, 64, 92, 122, 177, 458, 458, 458, - /* 470 */ 458, 458, 458, 458, 458, 458, 458, 335, 479, 82, - /* 480 */ 123, 344, 333, 459, 334, 400, 332, 331, 37, 473, - /* 490 */ 398, 329, 393, 19, 8, 451, 391, 118, 179, 181, - /* 500 */ 180, 378, 2, 330, 151, 13, 461, 7, 460, 390, - /* 510 */ 81, 67, 65, 64, 93, 479, 430, 6, 450, 84, - /* 520 */ 430, 86, 120, 475, 44, 342, 27, 27, 478, 23, - /* 530 */ 154, 27, 27, 141, 643, 3, 3, 45, 194, 24, - /* 540 */ 360, 379, 121, 141, 141, 141, 141, 141, 141, 141, - /* 550 */ 341, 183, 46, 340, 192, 479, 345, 337, 93, 373, - /* 560 */ 430, 372, 61, 57, 430, 28, 126, 475, 125, 58, - /* 570 */ 27, 27, 478, 59, 130, 27, 27, 141, 419, 419, - /* 580 */ 419, 419, 31, 16, 32, 469, 631, 141, 141, 141, - /* 590 */ 141, 141, 141, 141, 29, 29, 29, 29, 29, 29, - /* 600 */ 29, 29, 29, 29, 93, 637, 430, 71, 468, 28, - /* 610 */ 430, 447, 446, 475, 462, 12, 27, 27, 478, 369, - /* 620 */ 139, 27, 27, 141, 40, 448, 419, 419, 419, 419, - /* 630 */ 419, 14, 5, 141, 141, 141, 141, 141, 141, 141, - /* 640 */ 449, 143, 418, 50, 129, 51, 26, 364, 369, 9, - /* 650 */ 17, 363, 152, 72, 18, 28, 29, 29, 29, 29, - /* 660 */ 29, 29, 29, 29, 29, 29, 196, 483, 484, 156, - /* 670 */ 93, 52, 430, 95, 190, 170, 430, 73, 159, 63, - /* 680 */ 1, 479, 27, 27, 478, 162, 75, 27, 27, 69, - /* 690 */ 68, 54, 522, 355, 354, 196, 483, 484, 62, 168, - /* 700 */ 78, 25, 95, 190, 170, 389, 335, 171, 63, 1, - /* 710 */ 172, 333, 173, 334, 141, 332, 331, 174, 69, 68, - /* 720 */ 329, 28, 19, 175, 141, 141, 141, 141, 141, 141, - /* 730 */ 141, 387, 330, 151, 150, 29, 29, 29, 29, 29, - /* 740 */ 29, 29, 29, 29, 29, 431, 386, 494, 408, 407, - /* 750 */ 185, 406, 432, 101, 358, 439, 441, 140, 184, 438, - /* 760 */ 452, 110, 339, 432, 99, 482, 186, 194, 144, 142, - /* 770 */ 187, 431, 188, 122, 456, 91, 463, 371, 191, 30, - /* 780 */ 55, 433, 147, 140, 122, 328, 195, 487, 487, 432, - /* 790 */ 99, 487, 487, 150, 487, 39, 49, 11, 10, 60, - /* 800 */ 465, 111, 463, 150, 487, 487, 487, 487, 147, 487, - /* 810 */ 122, 432, 101, 413, 439, 441, 487, 487, 438, 453, - /* 820 */ 487, 432, 101, 487, 439, 441, 150, 487, 438, 445, - /* 830 */ 487, 487, 122, 487, 487, 487, 487, 487, 431, 487, - /* 840 */ 487, 431, 122, 487, 432, 101, 487, 439, 441, 487, - /* 850 */ 140, 438, 138, 140, 487, 487, 432, 99, 487, 432, - /* 860 */ 99, 487, 487, 487, 487, 122, 487, 135, 487, 463, - /* 870 */ 467, 431, 463, 487, 431, 147, 487, 122, 147, 487, - /* 880 */ 122, 487, 487, 140, 487, 487, 140, 487, 487, 432, - /* 890 */ 99, 487, 432, 99, 487, 487, 487, 487, 487, 487, - /* 900 */ 466, 487, 463, 457, 487, 463, 487, 487, 147, 487, - /* 910 */ 122, 147, 487, 122, 487, 21, 424, 487, 487, 427, - /* 920 */ 487, 487, 22, 424, 487, 487, 427, 428, 487, 487, - /* 930 */ 487, 426, 429, 487, 428, 487, 487, 487, 426, 429, - /* 940 */ 487, 39, 49, 11, 10, 60, 487, 487, 487, 487, - /* 950 */ 487, 487, 487, 487, 487, 487, 487, 487, 487, 412, + /* 0 */ 398, 413, 481, 413, 413, 413, 413, 413, 413, 413, + /* 10 */ 413, 413, 413, 94, 441, 435, 378, 110, 398, 435, + /* 20 */ 380, 415, 17, 386, 116, 28, 28, 484, 414, 44, + /* 30 */ 25, 25, 40, 50, 11, 10, 61, 427, 28, 28, + /* 40 */ 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, + /* 50 */ 417, 357, 357, 357, 357, 84, 124, 339, 94, 160, + /* 60 */ 117, 49, 337, 409, 338, 370, 336, 335, 151, 57, + /* 70 */ 409, 333, 484, 21, 29, 379, 91, 90, 89, 484, + /* 80 */ 352, 138, 36, 334, 153, 426, 109, 394, 82, 68, + /* 90 */ 66, 65, 398, 413, 126, 413, 413, 413, 413, 413, + /* 100 */ 413, 413, 413, 413, 413, 394, 82, 68, 152, 48, + /* 110 */ 94, 442, 435, 135, 383, 124, 435, 488, 195, 196, + /* 120 */ 149, 124, 28, 28, 484, 484, 437, 103, 485, 444, + /* 130 */ 446, 148, 139, 443, 458, 28, 28, 150, 150, 150, + /* 140 */ 150, 150, 150, 150, 150, 150, 150, 84, 124, 401, + /* 150 */ 398, 413, 420, 413, 413, 413, 413, 413, 413, 413, + /* 160 */ 413, 413, 413, 114, 380, 151, 166, 118, 181, 183, + /* 170 */ 182, 29, 124, 419, 36, 54, 155, 353, 356, 394, + /* 180 */ 82, 68, 66, 65, 30, 30, 30, 30, 30, 30, + /* 190 */ 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + /* 200 */ 30, 30, 354, 124, 124, 42, 353, 355, 398, 413, + /* 210 */ 2, 413, 413, 413, 413, 413, 413, 413, 413, 413, + /* 220 */ 413, 361, 360, 111, 476, 95, 91, 90, 89, 159, + /* 230 */ 163, 347, 35, 162, 163, 81, 479, 394, 82, 68, + /* 240 */ 66, 65, 30, 30, 30, 30, 30, 30, 30, 30, + /* 250 */ 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + /* 260 */ 418, 124, 124, 84, 136, 126, 398, 413, 147, 413, + /* 270 */ 413, 413, 413, 413, 413, 413, 413, 413, 413, 165, + /* 280 */ 163, 373, 125, 348, 91, 90, 89, 115, 37, 130, + /* 290 */ 36, 108, 38, 478, 149, 394, 82, 68, 66, 65, + /* 300 */ 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + /* 310 */ 30, 30, 30, 149, 425, 30, 30, 423, 423, 423, + /* 320 */ 423, 77, 169, 475, 398, 413, 71, 413, 413, 413, + /* 330 */ 413, 413, 413, 413, 413, 413, 413, 171, 198, 489, + /* 340 */ 490, 406, 181, 183, 182, 96, 192, 172, 36, 129, + /* 350 */ 405, 64, 1, 394, 82, 68, 66, 65, 121, 422, + /* 360 */ 399, 70, 69, 133, 25, 25, 40, 50, 11, 10, + /* 370 */ 61, 8, 456, 423, 423, 423, 423, 423, 69, 67, + /* 380 */ 13, 466, 398, 413, 416, 413, 413, 413, 413, 413, + /* 390 */ 413, 413, 413, 413, 413, 7, 465, 134, 477, 184, + /* 400 */ 181, 183, 182, 6, 455, 93, 36, 23, 156, 39, + /* 410 */ 180, 394, 82, 68, 66, 65, 143, 22, 80, 485, + /* 420 */ 4, 388, 381, 414, 44, 382, 143, 143, 143, 143, + /* 430 */ 143, 143, 143, 24, 364, 372, 436, 84, 191, 485, + /* 440 */ 398, 413, 107, 413, 413, 413, 413, 413, 413, 413, + /* 450 */ 413, 413, 413, 43, 437, 97, 436, 371, 181, 183, + /* 460 */ 182, 196, 88, 86, 36, 409, 365, 178, 142, 394, + /* 470 */ 82, 68, 66, 65, 437, 101, 124, 383, 404, 146, + /* 480 */ 144, 421, 421, 421, 421, 421, 461, 179, 468, 397, + /* 490 */ 500, 485, 402, 395, 149, 75, 124, 500, 398, 413, + /* 500 */ 184, 413, 413, 413, 413, 413, 413, 413, 413, 413, + /* 510 */ 413, 363, 168, 120, 2, 78, 181, 183, 182, 167, + /* 520 */ 45, 85, 46, 122, 414, 34, 87, 394, 82, 68, + /* 530 */ 66, 65, 25, 25, 40, 50, 11, 10, 61, 123, + /* 540 */ 346, 463, 463, 463, 463, 463, 463, 463, 463, 463, + /* 550 */ 463, 339, 185, 83, 345, 344, 337, 464, 338, 47, + /* 560 */ 336, 335, 196, 88, 86, 333, 409, 21, 194, 377, + /* 570 */ 376, 349, 341, 62, 181, 183, 182, 334, 153, 436, + /* 580 */ 58, 127, 128, 32, 59, 394, 82, 68, 66, 65, + /* 590 */ 94, 60, 435, 132, 15, 33, 435, 437, 98, 481, + /* 600 */ 387, 184, 28, 28, 484, 414, 44, 474, 473, 651, + /* 610 */ 3, 3, 180, 196, 452, 28, 28, 143, 451, 124, + /* 620 */ 80, 467, 72, 389, 41, 414, 44, 143, 143, 143, + /* 630 */ 143, 143, 143, 143, 423, 423, 423, 423, 12, 14, + /* 640 */ 16, 453, 145, 94, 5, 435, 51, 409, 94, 435, + /* 650 */ 435, 29, 481, 422, 435, 28, 28, 484, 52, 27, + /* 660 */ 28, 28, 484, 196, 88, 86, 368, 409, 28, 28, + /* 670 */ 143, 9, 639, 28, 28, 154, 367, 152, 73, 20, + /* 680 */ 143, 143, 143, 143, 143, 143, 143, 158, 53, 74, + /* 690 */ 423, 423, 423, 423, 423, 437, 103, 161, 444, 446, + /* 700 */ 485, 76, 443, 450, 29, 164, 55, 528, 359, 29, + /* 710 */ 131, 358, 170, 63, 79, 141, 393, 124, 173, 386, + /* 720 */ 119, 174, 175, 176, 414, 44, 30, 30, 30, 30, + /* 730 */ 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + /* 740 */ 30, 30, 30, 30, 177, 412, 411, 391, 30, 30, + /* 750 */ 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + /* 760 */ 30, 30, 30, 30, 30, 30, 409, 390, 157, 410, + /* 770 */ 362, 500, 369, 343, 186, 188, 189, 414, 44, 187, + /* 780 */ 92, 190, 454, 30, 30, 30, 30, 30, 30, 30, + /* 790 */ 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + /* 800 */ 30, 645, 375, 26, 94, 193, 435, 31, 436, 56, + /* 810 */ 435, 332, 493, 481, 436, 373, 28, 28, 484, 409, + /* 820 */ 493, 197, 493, 493, 493, 493, 437, 99, 493, 28, + /* 830 */ 28, 143, 437, 102, 493, 445, 447, 493, 493, 438, + /* 840 */ 493, 143, 143, 143, 143, 143, 143, 143, 124, 18, + /* 850 */ 428, 493, 436, 431, 124, 493, 493, 493, 493, 436, + /* 860 */ 493, 433, 432, 493, 142, 29, 430, 434, 493, 493, + /* 870 */ 437, 101, 198, 489, 490, 436, 493, 437, 104, 96, + /* 880 */ 192, 172, 470, 113, 468, 64, 1, 142, 493, 493, + /* 890 */ 149, 493, 124, 437, 101, 70, 69, 493, 152, 124, + /* 900 */ 493, 493, 493, 493, 493, 137, 493, 468, 152, 493, + /* 910 */ 493, 493, 493, 149, 493, 124, 437, 103, 493, 444, + /* 920 */ 446, 493, 436, 443, 457, 112, 437, 103, 493, 444, + /* 930 */ 446, 436, 493, 443, 140, 436, 493, 493, 124, 493, + /* 940 */ 437, 100, 493, 142, 493, 493, 436, 493, 124, 437, + /* 950 */ 101, 493, 493, 437, 106, 436, 493, 493, 142, 493, + /* 960 */ 493, 472, 124, 468, 437, 101, 493, 142, 493, 149, + /* 970 */ 493, 124, 493, 437, 101, 124, 471, 493, 468, 19, + /* 980 */ 428, 493, 493, 431, 149, 462, 124, 468, 436, 493, + /* 990 */ 493, 433, 432, 149, 493, 124, 430, 434, 429, 493, + /* 1000 */ 493, 431, 493, 493, 493, 493, 437, 105, 493, 433, + /* 1010 */ 432, 493, 493, 493, 430, 434, 493, 493, 493, 493, + /* 1020 */ 493, 493, 493, 493, 493, 493, 493, 493, 124, }; static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 2, 3, 14, 5, 6, 7, 8, 9, 10, 11, - /* 10 */ 12, 13, 14, 14, 15, 16, 28, 143, 144, 20, - /* 20 */ 63, 118, 23, 23, 105, 26, 27, 28, 71, 14, - /* 30 */ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - /* 40 */ 41, 42, 123, 124, 141, 126, 127, 49, 21, 22, - /* 50 */ 23, 24, 25, 26, 27, 28, 29, 30, 59, 60, - /* 60 */ 28, 118, 119, 144, 65, 103, 68, 69, 70, 107, - /* 70 */ 72, 5, 74, 63, 112, 113, 66, 79, 80, 81, - /* 80 */ 82, 83, 2, 3, 141, 5, 6, 7, 8, 9, - /* 90 */ 10, 11, 12, 13, 14, 54, 55, 56, 57, 58, - /* 100 */ 14, 15, 16, 91, 92, 112, 20, 15, 16, 17, - /* 110 */ 18, 19, 26, 27, 28, 153, 157, 31, 32, 33, - /* 120 */ 34, 35, 36, 37, 38, 39, 40, 41, 42, 49, - /* 130 */ 105, 106, 2, 3, 105, 5, 6, 7, 8, 9, - /* 140 */ 10, 11, 12, 13, 14, 59, 153, 81, 68, 69, - /* 150 */ 70, 65, 14, 88, 74, 122, 76, 105, 125, 79, - /* 160 */ 80, 81, 82, 83, 99, 100, 133, 64, 103, 144, - /* 170 */ 137, 138, 107, 144, 71, 107, 108, 112, 113, 49, - /* 180 */ 112, 113, 2, 3, 105, 5, 6, 7, 8, 9, - /* 190 */ 10, 11, 12, 13, 14, 143, 144, 141, 68, 69, - /* 200 */ 70, 141, 123, 124, 74, 141, 88, 105, 136, 79, - /* 210 */ 80, 81, 82, 83, 149, 150, 151, 99, 153, 105, - /* 220 */ 116, 153, 116, 144, 96, 107, 105, 109, 110, 49, - /* 230 */ 112, 113, 2, 3, 105, 5, 6, 7, 8, 9, - /* 240 */ 10, 11, 12, 13, 14, 105, 144, 2, 68, 69, - /* 250 */ 70, 107, 108, 88, 74, 144, 112, 113, 144, 79, - /* 260 */ 80, 81, 82, 83, 99, 144, 14, 149, 150, 151, - /* 270 */ 66, 153, 107, 144, 155, 110, 72, 112, 113, 49, - /* 280 */ 28, 14, 2, 3, 144, 5, 6, 7, 8, 9, - /* 290 */ 10, 11, 12, 13, 14, 28, 153, 153, 68, 69, - /* 300 */ 70, 107, 91, 92, 74, 117, 112, 113, 153, 79, - /* 310 */ 80, 81, 82, 83, 149, 150, 151, 65, 153, 142, - /* 320 */ 1, 2, 3, 4, 79, 80, 81, 105, 85, 49, - /* 330 */ 142, 115, 2, 3, 105, 5, 6, 7, 8, 9, - /* 340 */ 10, 11, 12, 13, 14, 123, 124, 153, 68, 69, - /* 350 */ 70, 142, 123, 124, 74, 117, 105, 76, 105, 79, - /* 360 */ 80, 81, 82, 83, 66, 67, 144, 86, 49, 50, - /* 370 */ 51, 52, 53, 144, 123, 124, 123, 124, 65, 49, - /* 380 */ 142, 140, 2, 3, 105, 5, 6, 7, 8, 9, - /* 390 */ 10, 11, 12, 13, 14, 144, 101, 144, 68, 69, - /* 400 */ 70, 101, 123, 124, 74, 1, 2, 3, 4, 79, - /* 410 */ 80, 81, 82, 83, 22, 23, 24, 25, 26, 27, - /* 420 */ 28, 29, 30, 144, 139, 140, 105, 117, 117, 49, - /* 430 */ 143, 144, 2, 3, 144, 5, 6, 7, 8, 9, - /* 440 */ 10, 11, 12, 13, 14, 143, 144, 101, 68, 69, - /* 450 */ 70, 101, 142, 142, 64, 143, 144, 94, 64, 79, - /* 460 */ 80, 81, 82, 83, 14, 144, 111, 33, 34, 35, - /* 470 */ 36, 37, 38, 39, 40, 41, 42, 88, 28, 49, - /* 480 */ 89, 90, 93, 49, 95, 2, 97, 98, 66, 67, - /* 490 */ 156, 102, 2, 104, 66, 67, 154, 144, 68, 69, - /* 500 */ 70, 14, 71, 114, 115, 66, 67, 66, 67, 79, - /* 510 */ 80, 81, 82, 83, 14, 28, 16, 66, 67, 94, - /* 520 */ 20, 94, 14, 23, 91, 148, 26, 27, 28, 66, - /* 530 */ 67, 31, 32, 33, 145, 146, 147, 91, 149, 66, - /* 540 */ 67, 14, 14, 43, 44, 45, 46, 47, 48, 49, - /* 550 */ 148, 14, 94, 148, 77, 28, 90, 14, 14, 152, - /* 560 */ 16, 152, 73, 64, 20, 65, 86, 23, 67, 64, - /* 570 */ 26, 27, 28, 64, 20, 31, 32, 33, 1, 2, - /* 580 */ 3, 4, 65, 71, 65, 63, 86, 43, 44, 45, - /* 590 */ 46, 47, 48, 49, 21, 22, 23, 24, 25, 26, - /* 600 */ 27, 28, 29, 30, 14, 0, 16, 73, 63, 65, - /* 610 */ 20, 63, 63, 23, 67, 73, 26, 27, 28, 14, - /* 620 */ 76, 31, 32, 33, 65, 67, 49, 50, 51, 52, - /* 630 */ 53, 66, 65, 43, 44, 45, 46, 47, 48, 49, - /* 640 */ 67, 67, 86, 65, 67, 65, 65, 63, 14, 73, - /* 650 */ 71, 63, 67, 67, 65, 65, 21, 22, 23, 24, - /* 660 */ 25, 26, 27, 28, 29, 30, 61, 62, 63, 14, - /* 670 */ 14, 65, 16, 68, 69, 70, 20, 67, 14, 74, - /* 680 */ 75, 28, 26, 27, 28, 14, 67, 31, 32, 84, - /* 690 */ 85, 65, 65, 63, 63, 61, 62, 63, 73, 20, - /* 700 */ 14, 66, 68, 69, 70, 67, 88, 16, 74, 75, - /* 710 */ 66, 93, 16, 95, 33, 97, 98, 65, 84, 85, - /* 720 */ 102, 65, 104, 64, 43, 44, 45, 46, 47, 48, - /* 730 */ 49, 63, 114, 115, 105, 21, 22, 23, 24, 25, - /* 740 */ 26, 27, 28, 29, 30, 105, 63, 71, 14, 14, - /* 750 */ 66, 14, 123, 124, 14, 126, 127, 117, 16, 130, - /* 760 */ 131, 132, 67, 123, 124, 147, 16, 149, 128, 129, - /* 770 */ 65, 105, 64, 144, 134, 14, 136, 78, 16, 73, - /* 780 */ 71, 67, 142, 117, 144, 63, 19, 158, 158, 123, - /* 790 */ 124, 158, 158, 105, 158, 54, 55, 56, 57, 58, - /* 800 */ 134, 135, 136, 105, 158, 158, 158, 158, 142, 158, - /* 810 */ 144, 123, 124, 72, 126, 127, 158, 158, 130, 131, - /* 820 */ 158, 123, 124, 158, 126, 127, 105, 158, 130, 131, - /* 830 */ 158, 158, 144, 158, 158, 158, 158, 158, 105, 158, - /* 840 */ 158, 105, 144, 158, 123, 124, 158, 126, 127, 158, - /* 850 */ 117, 130, 131, 117, 158, 158, 123, 124, 158, 123, - /* 860 */ 124, 158, 158, 158, 158, 144, 158, 134, 158, 136, - /* 870 */ 134, 105, 136, 158, 105, 142, 158, 144, 142, 158, - /* 880 */ 144, 158, 158, 117, 158, 158, 117, 158, 158, 123, - /* 890 */ 124, 158, 123, 124, 158, 158, 158, 158, 158, 158, - /* 900 */ 134, 158, 136, 134, 158, 136, 158, 158, 142, 158, - /* 910 */ 144, 142, 158, 144, 158, 121, 122, 158, 158, 125, - /* 920 */ 158, 158, 121, 122, 158, 158, 125, 133, 158, 158, - /* 930 */ 158, 137, 138, 158, 133, 158, 158, 158, 137, 138, - /* 940 */ 158, 54, 55, 56, 57, 58, 158, 158, 158, 158, - /* 950 */ 158, 158, 158, 158, 158, 158, 158, 158, 158, 72, + /* 0 */ 2, 3, 23, 5, 6, 7, 8, 9, 10, 11, + /* 10 */ 12, 13, 14, 14, 15, 16, 115, 116, 2, 20, + /* 20 */ 115, 122, 23, 117, 118, 26, 27, 28, 122, 123, + /* 30 */ 62, 63, 64, 65, 66, 67, 68, 128, 39, 40, + /* 40 */ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + /* 50 */ 82, 1, 2, 3, 4, 57, 155, 98, 14, 154, + /* 60 */ 155, 152, 103, 164, 105, 14, 107, 108, 69, 70, + /* 70 */ 164, 112, 28, 114, 75, 115, 78, 79, 80, 28, + /* 80 */ 82, 115, 84, 124, 125, 128, 129, 89, 90, 91, + /* 90 */ 92, 93, 2, 3, 127, 5, 6, 7, 8, 9, + /* 100 */ 10, 11, 12, 13, 14, 89, 90, 91, 115, 152, + /* 110 */ 14, 15, 16, 14, 14, 155, 20, 158, 14, 160, + /* 120 */ 153, 155, 26, 27, 28, 28, 133, 134, 28, 136, + /* 130 */ 137, 168, 115, 140, 141, 39, 40, 41, 42, 43, + /* 140 */ 44, 45, 46, 47, 48, 49, 50, 57, 155, 5, + /* 150 */ 2, 3, 152, 5, 6, 7, 8, 9, 10, 11, + /* 160 */ 12, 13, 14, 115, 115, 69, 154, 155, 78, 79, + /* 170 */ 80, 75, 155, 152, 84, 75, 86, 101, 102, 89, + /* 180 */ 90, 91, 92, 93, 21, 22, 23, 24, 25, 26, + /* 190 */ 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + /* 200 */ 37, 38, 73, 155, 155, 57, 101, 102, 2, 3, + /* 210 */ 81, 5, 6, 7, 8, 9, 10, 11, 12, 13, + /* 220 */ 14, 115, 115, 150, 151, 76, 78, 79, 80, 154, + /* 230 */ 155, 82, 84, 154, 155, 91, 73, 89, 90, 91, + /* 240 */ 92, 93, 21, 22, 23, 24, 25, 26, 27, 28, + /* 250 */ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + /* 260 */ 152, 155, 155, 57, 147, 127, 2, 3, 127, 5, + /* 270 */ 6, 7, 8, 9, 10, 11, 12, 13, 14, 154, + /* 280 */ 155, 14, 99, 100, 78, 79, 80, 127, 76, 77, + /* 290 */ 84, 153, 76, 77, 153, 89, 90, 91, 92, 93, + /* 300 */ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + /* 310 */ 32, 33, 34, 153, 126, 37, 38, 1, 2, 3, + /* 320 */ 4, 57, 126, 73, 2, 3, 76, 5, 6, 7, + /* 330 */ 8, 9, 10, 11, 12, 13, 14, 106, 71, 72, + /* 340 */ 73, 164, 78, 79, 80, 78, 79, 80, 84, 86, + /* 350 */ 164, 84, 85, 89, 90, 91, 92, 93, 155, 96, + /* 360 */ 166, 94, 95, 153, 62, 63, 64, 65, 66, 67, + /* 370 */ 68, 76, 77, 57, 58, 59, 60, 61, 95, 57, + /* 380 */ 76, 77, 2, 3, 82, 5, 6, 7, 8, 9, + /* 390 */ 10, 11, 12, 13, 14, 76, 77, 125, 151, 98, + /* 400 */ 78, 79, 80, 76, 77, 14, 84, 76, 77, 153, + /* 410 */ 109, 89, 90, 91, 92, 93, 41, 75, 117, 28, + /* 420 */ 119, 120, 111, 122, 123, 14, 51, 52, 53, 54, + /* 430 */ 55, 56, 57, 76, 77, 111, 115, 57, 74, 28, + /* 440 */ 2, 3, 155, 5, 6, 7, 8, 9, 10, 11, + /* 450 */ 12, 13, 14, 104, 133, 134, 115, 111, 78, 79, + /* 460 */ 80, 160, 161, 162, 84, 164, 111, 74, 127, 89, + /* 470 */ 90, 91, 92, 93, 133, 134, 155, 14, 2, 138, + /* 480 */ 139, 15, 16, 17, 18, 19, 145, 121, 147, 2, + /* 490 */ 74, 28, 167, 165, 153, 57, 155, 81, 2, 3, + /* 500 */ 98, 5, 6, 7, 8, 9, 10, 11, 12, 13, + /* 510 */ 14, 109, 110, 155, 81, 113, 78, 79, 80, 117, + /* 520 */ 101, 104, 101, 14, 122, 123, 104, 89, 90, 91, + /* 530 */ 92, 93, 62, 63, 64, 65, 66, 67, 68, 14, + /* 540 */ 159, 41, 42, 43, 44, 45, 46, 47, 48, 49, + /* 550 */ 50, 98, 14, 57, 159, 159, 103, 57, 105, 104, + /* 560 */ 107, 108, 160, 161, 162, 112, 164, 114, 87, 163, + /* 570 */ 163, 100, 14, 83, 78, 79, 80, 124, 125, 115, + /* 580 */ 74, 77, 96, 75, 74, 89, 90, 91, 92, 93, + /* 590 */ 14, 74, 16, 20, 81, 75, 20, 133, 134, 23, + /* 600 */ 117, 98, 26, 27, 28, 122, 123, 73, 73, 156, + /* 610 */ 157, 158, 109, 160, 73, 39, 40, 41, 73, 155, + /* 620 */ 117, 77, 83, 120, 75, 122, 123, 51, 52, 53, + /* 630 */ 54, 55, 56, 57, 1, 2, 3, 4, 83, 76, + /* 640 */ 81, 77, 77, 14, 75, 16, 75, 164, 14, 20, + /* 650 */ 16, 75, 23, 96, 20, 26, 27, 28, 75, 75, + /* 660 */ 26, 27, 28, 160, 161, 162, 73, 164, 39, 40, + /* 670 */ 41, 83, 96, 39, 40, 77, 73, 115, 77, 75, + /* 680 */ 51, 52, 53, 54, 55, 56, 57, 14, 75, 77, + /* 690 */ 57, 58, 59, 60, 61, 133, 134, 14, 136, 137, + /* 700 */ 28, 77, 140, 141, 75, 14, 75, 75, 73, 75, + /* 710 */ 77, 73, 20, 83, 14, 86, 77, 155, 16, 117, + /* 720 */ 118, 76, 16, 75, 122, 123, 21, 22, 23, 24, + /* 730 */ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + /* 740 */ 35, 36, 37, 38, 74, 14, 14, 73, 21, 22, + /* 750 */ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + /* 760 */ 33, 34, 35, 36, 37, 38, 164, 73, 113, 14, + /* 770 */ 14, 81, 117, 77, 16, 16, 75, 122, 123, 76, + /* 780 */ 14, 74, 77, 21, 22, 23, 24, 25, 26, 27, + /* 790 */ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + /* 800 */ 38, 0, 88, 76, 14, 16, 16, 83, 115, 81, + /* 810 */ 20, 73, 169, 23, 115, 14, 26, 27, 28, 164, + /* 820 */ 169, 19, 169, 169, 169, 169, 133, 134, 169, 39, + /* 830 */ 40, 41, 133, 134, 169, 136, 137, 169, 169, 77, + /* 840 */ 169, 51, 52, 53, 54, 55, 56, 57, 155, 131, + /* 850 */ 132, 169, 115, 135, 155, 169, 169, 169, 169, 115, + /* 860 */ 169, 143, 144, 169, 127, 75, 148, 149, 169, 169, + /* 870 */ 133, 134, 71, 72, 73, 115, 169, 133, 134, 78, + /* 880 */ 79, 80, 145, 146, 147, 84, 85, 127, 169, 169, + /* 890 */ 153, 169, 155, 133, 134, 94, 95, 169, 115, 155, + /* 900 */ 169, 169, 169, 169, 169, 145, 169, 147, 115, 169, + /* 910 */ 169, 169, 169, 153, 169, 155, 133, 134, 169, 136, + /* 920 */ 137, 169, 115, 140, 141, 142, 133, 134, 169, 136, + /* 930 */ 137, 115, 169, 140, 141, 115, 169, 169, 155, 169, + /* 940 */ 133, 134, 169, 127, 169, 169, 115, 169, 155, 133, + /* 950 */ 134, 169, 169, 133, 134, 115, 169, 169, 127, 169, + /* 960 */ 169, 145, 155, 147, 133, 134, 169, 127, 169, 153, + /* 970 */ 169, 155, 169, 133, 134, 155, 145, 169, 147, 131, + /* 980 */ 132, 169, 169, 135, 153, 145, 155, 147, 115, 169, + /* 990 */ 169, 143, 144, 153, 169, 155, 148, 149, 132, 169, + /* 1000 */ 169, 135, 169, 169, 169, 169, 133, 134, 169, 143, + /* 1010 */ 144, 169, 169, 169, 148, 149, 169, 169, 169, 169, + /* 1020 */ 169, 169, 169, 169, 169, 169, 169, 169, 155, }; -#define YY_SHIFT_USE_DFLT (960) -#define YY_SHIFT_COUNT (196) -#define YY_SHIFT_MIN (-43) -#define YY_SHIFT_MAX (887) +#define YY_SHIFT_USE_DFLT (1029) +#define YY_SHIFT_COUNT (198) +#define YY_SHIFT_MIN (-32) +#define YY_SHIFT_MAX (802) static const short yy_shift_ofst[] = { - /* 0 */ 634, 130, 180, 605, -2, 500, -1, 544, -1, -1, - /* 10 */ -1, 590, 590, 590, 590, 86, 41, 41, 230, 280, - /* 20 */ 230, 741, 887, 80, 330, 656, 656, 656, 656, 656, - /* 30 */ 656, 577, -12, -12, 380, 430, 319, -12, -12, -12, - /* 40 */ -12, 267, -43, -12, -12, -12, -43, 0, 0, 15, - /* 50 */ 0, 0, 32, 32, 32, 138, 434, 319, 319, 319, - /* 60 */ 681, 92, 92, 404, 245, 245, 267, 66, 0, 243, - /* 70 */ 15, 0, 313, 313, 32, 313, 32, 313, 390, 394, - /* 80 */ 483, 490, 32, 32, 431, 390, 431, 390, 508, 528, - /* 90 */ 537, 390, 477, 477, 138, 543, 573, 635, 714, 27, - /* 100 */ 27, 27, 27, 27, 392, 252, 281, 298, 422, 10, - /* 110 */ 428, 439, 441, 451, 463, 450, 487, 473, 527, 487, - /* 120 */ 103, 103, 450, 204, 489, 499, 501, 480, 505, 509, - /* 130 */ 517, 554, 512, 519, 522, 545, 548, 534, 549, 547, - /* 140 */ 542, 559, 565, 558, 574, 567, 578, 556, 580, 581, - /* 150 */ 576, 579, 584, 585, 588, 589, 586, 655, 606, 610, - /* 160 */ 664, 653, 619, 671, 626, 627, 630, 631, 625, 679, - /* 170 */ 686, 638, 691, 644, 696, 652, 659, 668, 683, 734, - /* 180 */ 735, 737, 740, 676, 695, 742, 684, 750, 705, 708, - /* 190 */ 761, 699, 762, 706, 709, 722, 767, + /* 0 */ 267, 148, 206, 801, -2, 576, -1, 629, -1, -1, + /* 10 */ -1, 790, 790, 790, 790, 470, 470, 96, -32, 302, + /* 20 */ 264, 322, 264, 90, 380, 634, 634, 634, 634, 634, + /* 30 */ 634, 634, 633, 44, 44, 438, 496, 316, 44, 44, + /* 40 */ 44, 44, 51, 129, 44, 44, 44, 129, -21, -21, + /* 50 */ 99, -21, -21, 97, 97, 97, 104, 500, 316, 316, + /* 60 */ 316, 375, 466, 466, 50, 16, 16, 51, 144, -21, + /* 70 */ 283, 99, -21, 342, 342, 97, 342, 97, 342, 364, + /* 80 */ 393, 476, 487, 97, 97, 433, 364, 433, 364, 509, + /* 90 */ 525, 538, 364, 481, 481, 104, 558, 163, 705, 727, + /* 100 */ 762, 221, 221, 221, 221, 221, 278, 100, 263, 212, + /* 110 */ 216, 250, 295, 304, 319, 327, 331, 391, 411, 357, + /* 120 */ 463, 411, 416, 416, 391, 149, 490, 506, 504, 486, + /* 130 */ 510, 517, 508, 573, 513, 520, 534, 535, 541, 539, + /* 140 */ 545, 544, 555, 549, 563, 564, 565, 569, 571, 557, + /* 150 */ 583, 584, 588, 559, 593, 598, 603, 604, 601, 673, + /* 160 */ 613, 612, 683, 672, 624, 691, 631, 632, 635, 638, + /* 170 */ 630, 692, 700, 639, 702, 645, 706, 648, 670, 674, + /* 180 */ 694, 731, 732, 755, 756, 690, 696, 758, 703, 759, + /* 190 */ 701, 707, 766, 714, 789, 724, 728, 738, 802, }; -#define YY_REDUCE_USE_DFLT (-127) -#define YY_REDUCE_COUNT (95) -#define YY_REDUCE_MIN (-126) -#define YY_REDUCE_MAX (801) +#define YY_REDUCE_USE_DFLT (-102) +#define YY_REDUCE_COUNT (96) +#define YY_REDUCE_MIN (-101) +#define YY_REDUCE_MAX (873) static const short yy_reduce_ofst[] = { - /* 0 */ 389, 65, 118, 618, 165, 640, 629, 666, 688, 698, - /* 10 */ 721, 733, 736, 766, 769, -81, 794, 801, 68, -38, - /* 20 */ 144, 33, 33, 194, 194, 79, 222, 229, 251, 253, - /* 30 */ 279, -57, 25, 52, -7, -7, -97, 102, 114, 121, - /* 40 */ 129, -126, 12, 29, 140, 321, 211, 188, 238, 285, - /* 50 */ 310, 311, 287, 302, 312, 391, -41, 56, 60, 64, - /* 60 */ 72, 104, 106, 128, 143, 155, 111, 119, 177, 216, - /* 70 */ 241, 209, 295, 300, 290, 346, 111, 350, 363, 355, - /* 80 */ 334, 342, 353, 111, 433, 425, 446, 427, 377, 402, - /* 90 */ 405, 458, 407, 409, 466, 405, + /* 0 */ 453, 402, 301, -41, 503, 341, 783, 737, -7, 562, + /* 10 */ 793, 760, 816, 831, 840, 718, 848, 699, 866, 866, + /* 20 */ -94, 655, 602, 483, 483, 321, 464, 693, 744, 807, + /* 30 */ 820, 873, -43, -99, -95, -101, -101, -91, -40, -34, + /* 40 */ 17, 48, 12, 76, 49, 106, 107, 105, -33, 138, + /* 50 */ 73, 141, 160, 75, 79, 125, 183, -37, 0, 21, + /* 60 */ 108, 117, 188, 196, 231, 177, 186, 203, 194, 210, + /* 70 */ 272, 247, 256, 311, 324, 287, 346, 203, 355, 349, + /* 80 */ 366, 325, 328, 358, 203, 419, 417, 421, 422, 381, + /* 90 */ 395, 396, 455, 406, 407, 471, 396, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 642, 642, 642, 642, 642, 611, 642, 631, 642, 642, - /* 10 */ 642, 631, 631, 631, 631, 642, 642, 642, 537, 642, - /* 20 */ 537, 642, 642, 642, 642, 642, 642, 642, 642, 642, - /* 30 */ 642, 642, 642, 633, 642, 642, 642, 642, 642, 642, - /* 40 */ 642, 633, 642, 642, 642, 642, 642, 631, 631, 642, - /* 50 */ 631, 631, 633, 633, 633, 642, 642, 642, 642, 642, - /* 60 */ 642, 642, 642, 642, 561, 560, 642, 553, 631, 642, - /* 70 */ 642, 631, 642, 642, 642, 642, 538, 642, 495, 545, - /* 80 */ 556, 549, 642, 642, 642, 495, 642, 495, 493, 493, - /* 90 */ 493, 495, 527, 527, 642, 493, 642, 642, 642, 621, - /* 100 */ 601, 600, 592, 503, 591, 642, 642, 642, 642, 642, - /* 110 */ 642, 642, 642, 642, 642, 634, 634, 642, 642, 642, - /* 120 */ 564, 563, 642, 642, 577, 642, 642, 642, 642, 642, - /* 130 */ 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, - /* 140 */ 642, 642, 612, 642, 642, 642, 642, 642, 642, 642, - /* 150 */ 588, 642, 642, 642, 642, 642, 642, 642, 642, 642, - /* 160 */ 642, 634, 642, 642, 642, 519, 642, 642, 642, 642, - /* 170 */ 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, - /* 180 */ 642, 642, 642, 565, 642, 642, 642, 642, 642, 642, - /* 190 */ 642, 642, 642, 504, 642, 642, 642, + /* 0 */ 650, 650, 650, 650, 650, 618, 650, 639, 650, 650, + /* 10 */ 650, 639, 639, 639, 639, 650, 650, 650, 650, 650, + /* 20 */ 543, 650, 543, 650, 650, 650, 650, 650, 650, 650, + /* 30 */ 650, 650, 650, 650, 641, 650, 650, 650, 650, 650, + /* 40 */ 650, 650, 641, 650, 650, 650, 650, 650, 639, 639, + /* 50 */ 650, 639, 639, 641, 641, 641, 650, 650, 650, 650, + /* 60 */ 650, 650, 650, 650, 650, 567, 566, 650, 559, 639, + /* 70 */ 650, 650, 639, 650, 650, 650, 650, 544, 650, 501, + /* 80 */ 551, 562, 555, 650, 650, 650, 501, 650, 501, 499, + /* 90 */ 499, 499, 501, 533, 533, 650, 499, 650, 650, 650, + /* 100 */ 650, 628, 608, 607, 599, 509, 598, 650, 650, 650, + /* 110 */ 650, 650, 650, 650, 650, 650, 650, 642, 642, 650, + /* 120 */ 650, 650, 570, 569, 650, 650, 583, 650, 650, 650, + /* 130 */ 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, + /* 140 */ 650, 650, 650, 650, 619, 650, 650, 650, 650, 650, + /* 150 */ 650, 650, 595, 650, 650, 650, 650, 650, 650, 650, + /* 160 */ 650, 650, 650, 642, 650, 650, 650, 525, 650, 650, + /* 170 */ 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, + /* 180 */ 650, 650, 650, 650, 650, 571, 650, 650, 650, 650, + /* 190 */ 650, 650, 650, 650, 650, 510, 650, 650, 650, }; /********** End of lemon-generated parsing tables *****************************/ @@ -561,6 +576,14 @@ static const YYCODETYPE yyFallback[] = { 0, /* ASTERISK => nothing */ 0, /* SLASH => nothing */ 0, /* MODULO => nothing */ + 0, /* RCHEVR => nothing */ + 0, /* LCHEVR => nothing */ + 0, /* CMP_GE => nothing */ + 0, /* CMP_LE => nothing */ + 0, /* OR => nothing */ + 0, /* AND => nothing */ + 0, /* CMP_EQ => nothing */ + 0, /* CMP_NE => nothing */ 0, /* TILDE => nothing */ 0, /* NOT => nothing */ 14, /* ZVAL => NAME */ @@ -584,6 +607,8 @@ static const YYCODETYPE yyFallback[] = { 0, /* ARRAY => nothing */ 0, /* OBJECT => nothing */ 0, /* CALLABLE => nothing */ + 0, /* PRE_ASSERT => nothing */ + 0, /* POST_ASSERT => nothing */ 14, /* TEMP => NAME */ 14, /* FREE => NAME */ 14, /* SET => NAME */ @@ -684,39 +709,42 @@ static const char *const yyTokenName[] = { "NUMBER", "TRUE", "FALSE", "QUOTED_STRING", "NSNAME", "PIPE", "CARET", "AMPERSAND", "LSHIFT", "RSHIFT", "PLUS", "MINUS", - "ASTERISK", "SLASH", "MODULO", "TILDE", + "ASTERISK", "SLASH", "MODULO", "RCHEVR", + "LCHEVR", "CMP_GE", "CMP_LE", "OR", + "AND", "CMP_EQ", "CMP_NE", "TILDE", "NOT", "ZVAL", "OBJVAL", "ARRVAL", "PATHVAL", "STRLEN", "STRVAL", "FLOATVAL", "INTVAL", "BOOLVAL", "COUNT", "TO_OBJECT", "TO_ARRAY", "TO_STRING", "TO_INT", "TO_FLOAT", "TO_BOOL", "VOID", "MIXED", "ARRAY", - "OBJECT", "CALLABLE", "TEMP", "FREE", - "SET", "LET", "RETURN", "CALLOC", - "CALLBACK", "LIB", "EOF", "EOS", - "COLON", "LPAREN", "COMMA", "RPAREN", - "ENUM", "STRUCT", "UNION", "LBRACE", - "RBRACE", "EQUALS", "CONST", "TYPEDEF", - "ELLIPSIS", "LBRACKET", "RBRACKET", "CHAR", - "SHORT", "LONG", "UNSIGNED", "SIGNED", - "STATIC", "FUNCTION", "DOLLAR_NAME", "error", - "decl_enum", "decl_enum_items", "decl_enum_item", "decl_struct_args_block", - "decl_struct_args", "decl_struct", "align_and_size", "decl_union", - "const_type", "constant", "decl_typedef", "decl_typedef_body_ex", - "decl_typedef_body", "decl_typedef_body_fn_args", "decl", "decl_func", - "decl_abi", "decl_var", "decl_vars", "decl_arg", - "decl_args", "struct_args", "struct_arg", "decl_layout", - "decl_type", "const_decl_type", "impl", "impl_func", - "impl_def_val", "impl_var", "impl_arg", "impl_args", - "impl_vararg", "impl_stmts", "impl_stmt", "number", - "num_exp", "let_stmt", "let_calloc", "let_func", - "callback_arg_list", "callback_args", "let_callback", "let_exp", - "let_exps", "set_stmt", "set_exp", "set_exps", - "set_func", "return_stmt", "free_stmt", "free_exps", - "free_exp", "impl_type", "reference", "indirection", - "pointers", "file", "blocks", "block", - "optional_name", "enum_name", "struct_name", "union_name", - "decl_var_array_size", "decl_scalar_type", "decl_scalar_type_short", "decl_scalar_type_long", - "decl_scalar_type_long_long", "callback_rval", + "OBJECT", "CALLABLE", "PRE_ASSERT", "POST_ASSERT", + "TEMP", "FREE", "SET", "LET", + "RETURN", "CALLOC", "CALLBACK", "LIB", + "EOF", "EOS", "COLON", "LPAREN", + "COMMA", "RPAREN", "ENUM", "STRUCT", + "UNION", "LBRACE", "RBRACE", "EQUALS", + "CONST", "TYPEDEF", "ELLIPSIS", "LBRACKET", + "RBRACKET", "CHAR", "SHORT", "LONG", + "UNSIGNED", "SIGNED", "STATIC", "FUNCTION", + "DOLLAR_NAME", "error", "decl_enum", "decl_enum_items", + "decl_enum_item", "decl_struct_args_block", "decl_struct_args", "decl_struct", + "align_and_size", "decl_union", "const_type", "constant", + "decl_typedef", "decl_typedef_body_ex", "decl_typedef_body", "decl_typedef_body_fn_args", + "decl", "decl_func", "decl_abi", "decl_var", + "decl_vars", "decl_arg", "decl_args", "struct_args", + "struct_arg", "decl_layout", "decl_type", "const_decl_type", + "impl", "impl_func", "impl_def_val", "impl_var", + "impl_arg", "impl_args", "impl_vararg", "impl_stmts", + "impl_stmt", "number", "num_exp", "let_stmt", + "let_calloc", "let_func", "callback_arg_list", "callback_args", + "let_callback", "let_exp", "let_exps", "assert_stmt", + "set_stmt", "set_exp", "set_exps", "set_func", + "return_stmt", "free_stmt", "free_exps", "free_exp", + "impl_type", "reference", "indirection", "pointers", + "file", "blocks", "block", "optional_name", + "enum_name", "struct_name", "union_name", "decl_var_array_size", + "decl_scalar_type", "decl_scalar_type_short", "decl_scalar_type_long", "decl_scalar_type_long_long", + "callback_rval", }; #endif /* NDEBUG */ @@ -825,62 +853,64 @@ static const char *const yyRuleName[] = { /* 98 */ "impl_stmt ::= return_stmt", /* 99 */ "impl_stmt ::= let_stmt", /* 100 */ "impl_stmt ::= set_stmt", - /* 101 */ "impl_stmt ::= free_stmt", - /* 102 */ "number ::= NUMBER|NSNAME", - /* 103 */ "number ::= decl_var", - /* 104 */ "num_exp ::= number", - /* 105 */ "num_exp ::= LPAREN num_exp RPAREN", - /* 106 */ "num_exp ::= num_exp PIPE|CARET|AMPERSAND|LSHIFT|RSHIFT|PLUS|MINUS|ASTERISK|SLASH|MODULO num_exp", - /* 107 */ "num_exp ::= TILDE|NOT|PLUS|MINUS num_exp", - /* 108 */ "let_exp ::= NULL", - /* 109 */ "let_exp ::= AMPERSAND NULL", - /* 110 */ "let_exp ::= let_callback", - /* 111 */ "let_exp ::= let_calloc", - /* 112 */ "let_exp ::= AMPERSAND let_calloc", - /* 113 */ "let_exp ::= let_func", - /* 114 */ "let_exp ::= AMPERSAND let_func", - /* 115 */ "let_exp ::= num_exp", - /* 116 */ "let_exp ::= AMPERSAND num_exp", - /* 117 */ "let_exp ::= decl_var EQUALS let_exp", - /* 118 */ "let_stmt ::= LET let_exp EOS", - /* 119 */ "let_stmt ::= TEMP decl_var EQUALS reference decl_var EOS", - /* 120 */ "let_callback ::= CALLBACK callback_rval LPAREN impl_var LPAREN callback_arg_list RPAREN RPAREN", - /* 121 */ "let_calloc ::= CALLOC LPAREN num_exp COMMA num_exp RPAREN", - /* 122 */ "let_func ::= ZVAL|OBJVAL|ARRVAL|PATHVAL|STRLEN|STRVAL|FLOATVAL|INTVAL|BOOLVAL|COUNT LPAREN impl_var RPAREN", - /* 123 */ "let_func ::= ZVAL|OBJVAL|ARRVAL|PATHVAL|STRLEN|STRVAL|FLOATVAL|INTVAL|BOOLVAL|COUNT LPAREN impl_var COMMA let_exps RPAREN", - /* 124 */ "let_exps ::= let_exp", - /* 125 */ "let_exps ::= let_exps COMMA let_exp", - /* 126 */ "callback_arg_list ::=", - /* 127 */ "callback_arg_list ::= callback_args", - /* 128 */ "callback_args ::= set_exp", - /* 129 */ "callback_args ::= callback_args COMMA set_exp", - /* 130 */ "callback_rval ::= ZVAL|OBJVAL|ARRVAL|PATHVAL|STRLEN|STRVAL|FLOATVAL|INTVAL|BOOLVAL|COUNT", - /* 131 */ "callback_rval ::= VOID", - /* 132 */ "set_func ::= TO_OBJECT|TO_ARRAY|TO_STRING|TO_INT|TO_FLOAT|TO_BOOL|ZVAL|VOID LPAREN decl_var RPAREN", - /* 133 */ "set_func ::= TO_OBJECT|TO_ARRAY|TO_STRING|TO_INT|TO_FLOAT|TO_BOOL|ZVAL|VOID LPAREN decl_var COMMA set_exps RPAREN", - /* 134 */ "set_func ::= TO_OBJECT|TO_ARRAY|TO_STRING|TO_INT|TO_FLOAT|TO_BOOL|ZVAL|VOID LPAREN decl_var COMMA ELLIPSIS RPAREN", - /* 135 */ "set_exp ::= set_func", - /* 136 */ "set_exp ::= num_exp", - /* 137 */ "set_exps ::= set_exp", - /* 138 */ "set_exps ::= set_exps COMMA set_exp", - /* 139 */ "set_exp ::= impl_var EQUALS set_exp", - /* 140 */ "set_stmt ::= SET set_exp EOS", - /* 141 */ "return_stmt ::= RETURN set_func EOS", - /* 142 */ "free_stmt ::= FREE free_exps EOS", - /* 143 */ "free_exps ::= free_exp", - /* 144 */ "free_exps ::= free_exps COMMA free_exp", - /* 145 */ "free_exp ::= NAME LPAREN decl_vars RPAREN", - /* 146 */ "reference ::=", - /* 147 */ "reference ::= AMPERSAND", - /* 148 */ "indirection ::=", - /* 149 */ "indirection ::= pointers", - /* 150 */ "pointers ::= ASTERISK", - /* 151 */ "pointers ::= pointers ASTERISK", - /* 152 */ "file ::= blocks", - /* 153 */ "blocks ::= block", - /* 154 */ "blocks ::= blocks block", - /* 155 */ "block ::= EOF", - /* 156 */ "block ::= EOS", + /* 101 */ "impl_stmt ::= assert_stmt", + /* 102 */ "impl_stmt ::= free_stmt", + /* 103 */ "number ::= NUMBER|NSNAME", + /* 104 */ "number ::= decl_var", + /* 105 */ "num_exp ::= number", + /* 106 */ "num_exp ::= LPAREN num_exp RPAREN", + /* 107 */ "num_exp ::= num_exp PIPE|CARET|AMPERSAND|LSHIFT|RSHIFT|PLUS|MINUS|ASTERISK|SLASH|MODULO|RCHEVR|LCHEVR|CMP_GE|CMP_LE|OR|AND|CMP_EQ|CMP_NE num_exp", + /* 108 */ "num_exp ::= TILDE|NOT|PLUS|MINUS num_exp", + /* 109 */ "let_exp ::= NULL", + /* 110 */ "let_exp ::= AMPERSAND NULL", + /* 111 */ "let_exp ::= let_callback", + /* 112 */ "let_exp ::= let_calloc", + /* 113 */ "let_exp ::= AMPERSAND let_calloc", + /* 114 */ "let_exp ::= let_func", + /* 115 */ "let_exp ::= AMPERSAND let_func", + /* 116 */ "let_exp ::= num_exp", + /* 117 */ "let_exp ::= AMPERSAND num_exp", + /* 118 */ "let_exp ::= decl_var EQUALS let_exp", + /* 119 */ "let_stmt ::= LET let_exp EOS", + /* 120 */ "let_stmt ::= TEMP decl_var EQUALS reference decl_var EOS", + /* 121 */ "let_callback ::= CALLBACK callback_rval LPAREN impl_var LPAREN callback_arg_list RPAREN RPAREN", + /* 122 */ "let_calloc ::= CALLOC LPAREN num_exp COMMA num_exp RPAREN", + /* 123 */ "let_func ::= ZVAL|OBJVAL|ARRVAL|PATHVAL|STRLEN|STRVAL|FLOATVAL|INTVAL|BOOLVAL|COUNT LPAREN impl_var RPAREN", + /* 124 */ "let_func ::= ZVAL|OBJVAL|ARRVAL|PATHVAL|STRLEN|STRVAL|FLOATVAL|INTVAL|BOOLVAL|COUNT LPAREN impl_var COMMA let_exps RPAREN", + /* 125 */ "let_exps ::= let_exp", + /* 126 */ "let_exps ::= let_exps COMMA let_exp", + /* 127 */ "callback_arg_list ::=", + /* 128 */ "callback_arg_list ::= callback_args", + /* 129 */ "callback_args ::= set_exp", + /* 130 */ "callback_args ::= callback_args COMMA set_exp", + /* 131 */ "callback_rval ::= ZVAL|OBJVAL|ARRVAL|PATHVAL|STRLEN|STRVAL|FLOATVAL|INTVAL|BOOLVAL|COUNT", + /* 132 */ "callback_rval ::= VOID", + /* 133 */ "set_func ::= TO_OBJECT|TO_ARRAY|TO_STRING|TO_INT|TO_FLOAT|TO_BOOL|ZVAL|VOID LPAREN decl_var RPAREN", + /* 134 */ "set_func ::= TO_OBJECT|TO_ARRAY|TO_STRING|TO_INT|TO_FLOAT|TO_BOOL|ZVAL|VOID LPAREN decl_var COMMA set_exps RPAREN", + /* 135 */ "set_func ::= TO_OBJECT|TO_ARRAY|TO_STRING|TO_INT|TO_FLOAT|TO_BOOL|ZVAL|VOID LPAREN decl_var COMMA ELLIPSIS RPAREN", + /* 136 */ "set_exp ::= set_func", + /* 137 */ "set_exp ::= num_exp", + /* 138 */ "set_exps ::= set_exp", + /* 139 */ "set_exps ::= set_exps COMMA set_exp", + /* 140 */ "set_exp ::= impl_var EQUALS set_exp", + /* 141 */ "set_stmt ::= SET set_exp EOS", + /* 142 */ "return_stmt ::= RETURN set_func EOS", + /* 143 */ "free_stmt ::= FREE free_exps EOS", + /* 144 */ "free_exps ::= free_exp", + /* 145 */ "free_exps ::= free_exps COMMA free_exp", + /* 146 */ "free_exp ::= NAME LPAREN decl_vars RPAREN", + /* 147 */ "assert_stmt ::= PRE_ASSERT|POST_ASSERT num_exp EOS", + /* 148 */ "reference ::=", + /* 149 */ "reference ::= AMPERSAND", + /* 150 */ "indirection ::=", + /* 151 */ "indirection ::= pointers", + /* 152 */ "pointers ::= ASTERISK", + /* 153 */ "pointers ::= pointers ASTERISK", + /* 154 */ "file ::= blocks", + /* 155 */ "blocks ::= block", + /* 156 */ "blocks ::= blocks block", + /* 157 */ "block ::= EOF", + /* 158 */ "block ::= EOS", }; #endif /* NDEBUG */ @@ -1029,348 +1059,365 @@ static void yy_destructor( case 28: /* ASTERISK */ case 29: /* SLASH */ case 30: /* MODULO */ - case 31: /* TILDE */ - case 32: /* NOT */ - case 33: /* ZVAL */ - case 34: /* OBJVAL */ - case 35: /* ARRVAL */ - case 36: /* PATHVAL */ - case 37: /* STRLEN */ - case 38: /* STRVAL */ - case 39: /* FLOATVAL */ - case 40: /* INTVAL */ - case 41: /* BOOLVAL */ - case 42: /* COUNT */ - case 43: /* TO_OBJECT */ - case 44: /* TO_ARRAY */ - case 45: /* TO_STRING */ - case 46: /* TO_INT */ - case 47: /* TO_FLOAT */ - case 48: /* TO_BOOL */ - case 49: /* VOID */ - case 50: /* MIXED */ - case 51: /* ARRAY */ - case 52: /* OBJECT */ - case 53: /* CALLABLE */ - case 54: /* TEMP */ - case 55: /* FREE */ - case 56: /* SET */ - case 57: /* LET */ - case 58: /* RETURN */ - case 59: /* CALLOC */ - case 60: /* CALLBACK */ - case 61: /* LIB */ - case 62: /* EOF */ - case 63: /* EOS */ - case 64: /* COLON */ - case 65: /* LPAREN */ - case 66: /* COMMA */ - case 67: /* RPAREN */ - case 68: /* ENUM */ - case 69: /* STRUCT */ - case 70: /* UNION */ - case 71: /* LBRACE */ - case 72: /* RBRACE */ - case 73: /* EQUALS */ - case 74: /* CONST */ - case 75: /* TYPEDEF */ - case 76: /* ELLIPSIS */ - case 77: /* LBRACKET */ - case 78: /* RBRACKET */ - case 79: /* CHAR */ - case 80: /* SHORT */ - case 81: /* LONG */ - case 82: /* UNSIGNED */ - case 83: /* SIGNED */ - case 84: /* STATIC */ - case 85: /* FUNCTION */ - case 86: /* DOLLAR_NAME */ + case 31: /* RCHEVR */ + case 32: /* LCHEVR */ + case 33: /* CMP_GE */ + case 34: /* CMP_LE */ + case 35: /* OR */ + case 36: /* AND */ + case 37: /* CMP_EQ */ + case 38: /* CMP_NE */ + case 39: /* TILDE */ + case 40: /* NOT */ + case 41: /* ZVAL */ + case 42: /* OBJVAL */ + case 43: /* ARRVAL */ + case 44: /* PATHVAL */ + case 45: /* STRLEN */ + case 46: /* STRVAL */ + case 47: /* FLOATVAL */ + case 48: /* INTVAL */ + case 49: /* BOOLVAL */ + case 50: /* COUNT */ + case 51: /* TO_OBJECT */ + case 52: /* TO_ARRAY */ + case 53: /* TO_STRING */ + case 54: /* TO_INT */ + case 55: /* TO_FLOAT */ + case 56: /* TO_BOOL */ + case 57: /* VOID */ + case 58: /* MIXED */ + case 59: /* ARRAY */ + case 60: /* OBJECT */ + case 61: /* CALLABLE */ + case 62: /* PRE_ASSERT */ + case 63: /* POST_ASSERT */ + case 64: /* TEMP */ + case 65: /* FREE */ + case 66: /* SET */ + case 67: /* LET */ + case 68: /* RETURN */ + case 69: /* CALLOC */ + case 70: /* CALLBACK */ + case 71: /* LIB */ + case 72: /* EOF */ + case 73: /* EOS */ + case 74: /* COLON */ + case 75: /* LPAREN */ + case 76: /* COMMA */ + case 77: /* RPAREN */ + case 78: /* ENUM */ + case 79: /* STRUCT */ + case 80: /* UNION */ + case 81: /* LBRACE */ + case 82: /* RBRACE */ + case 83: /* EQUALS */ + case 84: /* CONST */ + case 85: /* TYPEDEF */ + case 86: /* ELLIPSIS */ + case 87: /* LBRACKET */ + case 88: /* RBRACKET */ + case 89: /* CHAR */ + case 90: /* SHORT */ + case 91: /* LONG */ + case 92: /* UNSIGNED */ + case 93: /* SIGNED */ + case 94: /* STATIC */ + case 95: /* FUNCTION */ + case 96: /* DOLLAR_NAME */ { #line 37 "src/parser_proc.y" free((yypminor->yy0)); -#line 1092 "src/parser_proc.c" +#line 1132 "src/parser_proc.c" } break; /* Default NON-TERMINAL Destructor */ - case 87: /* error */ - case 94: /* align_and_size */ - case 142: /* reference */ - case 143: /* indirection */ - case 144: /* pointers */ - case 145: /* file */ - case 146: /* blocks */ - case 147: /* block */ - case 148: /* optional_name */ - case 149: /* enum_name */ - case 150: /* struct_name */ - case 151: /* union_name */ - case 152: /* decl_var_array_size */ - case 153: /* decl_scalar_type */ - case 154: /* decl_scalar_type_short */ - case 155: /* decl_scalar_type_long */ - case 156: /* decl_scalar_type_long_long */ - case 157: /* callback_rval */ + case 97: /* error */ + case 104: /* align_and_size */ + case 153: /* reference */ + case 154: /* indirection */ + case 155: /* pointers */ + case 156: /* file */ + case 157: /* blocks */ + case 158: /* block */ + case 159: /* optional_name */ + case 160: /* enum_name */ + case 161: /* struct_name */ + case 162: /* union_name */ + case 163: /* decl_var_array_size */ + case 164: /* decl_scalar_type */ + case 165: /* decl_scalar_type_short */ + case 166: /* decl_scalar_type_long */ + case 167: /* decl_scalar_type_long_long */ + case 168: /* callback_rval */ { #line 38 "src/parser_proc.y" (void)P; -#line 1117 "src/parser_proc.c" +#line 1157 "src/parser_proc.c" } break; - case 88: /* decl_enum */ -{ -#line 60 "src/parser_proc.y" -psi_decl_enum_free(&(yypminor->yy63)); -#line 1124 "src/parser_proc.c" -} - break; - case 89: /* decl_enum_items */ - case 91: /* decl_struct_args_block */ - case 92: /* decl_struct_args */ - case 101: /* decl_typedef_body_fn_args */ - case 106: /* decl_vars */ - case 108: /* decl_args */ - case 109: /* struct_args */ - case 119: /* impl_args */ - case 121: /* impl_stmts */ - case 132: /* let_exps */ - case 135: /* set_exps */ - case 139: /* free_exps */ -{ -#line 62 "src/parser_proc.y" -psi_plist_free((yypminor->yy163)); -#line 1142 "src/parser_proc.c" -} - break; - case 90: /* decl_enum_item */ + case 98: /* decl_enum */ { #line 64 "src/parser_proc.y" -psi_decl_enum_item_free(&(yypminor->yy217)); -#line 1149 "src/parser_proc.c" +psi_decl_enum_free(&(yypminor->yy87)); +#line 1164 "src/parser_proc.c" } break; - case 93: /* decl_struct */ -{ -#line 70 "src/parser_proc.y" -psi_decl_struct_free(&(yypminor->yy275)); -#line 1156 "src/parser_proc.c" + case 99: /* decl_enum_items */ + case 101: /* decl_struct_args_block */ + case 102: /* decl_struct_args */ + case 111: /* decl_typedef_body_fn_args */ + case 116: /* decl_vars */ + case 118: /* decl_args */ + case 119: /* struct_args */ + case 129: /* impl_args */ + case 131: /* impl_stmts */ + case 142: /* let_exps */ + case 146: /* set_exps */ + case 150: /* free_exps */ +{ +#line 66 "src/parser_proc.y" +psi_plist_free((yypminor->yy7)); +#line 1182 "src/parser_proc.c" } break; - case 95: /* decl_union */ + case 100: /* decl_enum_item */ { -#line 73 "src/parser_proc.y" -psi_decl_union_free(&(yypminor->yy271)); -#line 1163 "src/parser_proc.c" +#line 68 "src/parser_proc.y" +psi_decl_enum_item_free(&(yypminor->yy109)); +#line 1189 "src/parser_proc.c" } break; - case 96: /* const_type */ + case 103: /* decl_struct */ { -#line 75 "src/parser_proc.y" -psi_const_type_free(&(yypminor->yy171)); -#line 1170 "src/parser_proc.c" +#line 74 "src/parser_proc.y" +psi_decl_struct_free(&(yypminor->yy137)); +#line 1196 "src/parser_proc.c" } break; - case 97: /* constant */ + case 105: /* decl_union */ { #line 77 "src/parser_proc.y" -psi_const_free(&(yypminor->yy154)); -#line 1177 "src/parser_proc.c" +psi_decl_union_free(&(yypminor->yy47)); +#line 1203 "src/parser_proc.c" } break; - case 98: /* decl_typedef */ - case 99: /* decl_typedef_body_ex */ - case 100: /* decl_typedef_body */ - case 103: /* decl_func */ - case 107: /* decl_arg */ - case 110: /* struct_arg */ + case 106: /* const_type */ { #line 79 "src/parser_proc.y" -psi_decl_arg_free(&(yypminor->yy184)); -#line 1189 "src/parser_proc.c" +psi_const_type_free(&(yypminor->yy181)); +#line 1210 "src/parser_proc.c" } break; - case 102: /* decl */ + case 107: /* constant */ { -#line 87 "src/parser_proc.y" -psi_decl_free(&(yypminor->yy103)); -#line 1196 "src/parser_proc.c" +#line 81 "src/parser_proc.y" +psi_const_free(&(yypminor->yy336)); +#line 1217 "src/parser_proc.c" } break; - case 104: /* decl_abi */ + case 108: /* decl_typedef */ + case 109: /* decl_typedef_body_ex */ + case 110: /* decl_typedef_body */ + case 113: /* decl_func */ + case 117: /* decl_arg */ + case 120: /* struct_arg */ { -#line 91 "src/parser_proc.y" -psi_decl_abi_free(&(yypminor->yy218)); -#line 1203 "src/parser_proc.c" +#line 83 "src/parser_proc.y" +psi_decl_arg_free(&(yypminor->yy64)); +#line 1229 "src/parser_proc.c" } break; - case 105: /* decl_var */ + case 112: /* decl */ { -#line 93 "src/parser_proc.y" -psi_decl_var_free(&(yypminor->yy11)); -#line 1210 "src/parser_proc.c" +#line 91 "src/parser_proc.y" +psi_decl_free(&(yypminor->yy17)); +#line 1236 "src/parser_proc.c" } break; - case 111: /* decl_layout */ + case 114: /* decl_abi */ { -#line 105 "src/parser_proc.y" -psi_layout_free(&(yypminor->yy141)); -#line 1217 "src/parser_proc.c" +#line 95 "src/parser_proc.y" +psi_decl_abi_free(&(yypminor->yy180)); +#line 1243 "src/parser_proc.c" } break; - case 112: /* decl_type */ - case 113: /* const_decl_type */ + case 115: /* decl_var */ { -#line 107 "src/parser_proc.y" -psi_decl_type_free(&(yypminor->yy132)); -#line 1225 "src/parser_proc.c" +#line 97 "src/parser_proc.y" +psi_decl_var_free(&(yypminor->yy131)); +#line 1250 "src/parser_proc.c" } break; - case 114: /* impl */ + case 121: /* decl_layout */ { -#line 111 "src/parser_proc.y" -psi_impl_free(&(yypminor->yy97)); -#line 1232 "src/parser_proc.c" +#line 109 "src/parser_proc.y" +psi_layout_free(&(yypminor->yy221)); +#line 1257 "src/parser_proc.c" } break; - case 115: /* impl_func */ + case 122: /* decl_type */ + case 123: /* const_decl_type */ { -#line 113 "src/parser_proc.y" -psi_impl_func_free(&(yypminor->yy168)); -#line 1239 "src/parser_proc.c" +#line 111 "src/parser_proc.y" +psi_decl_type_free(&(yypminor->yy182)); +#line 1265 "src/parser_proc.c" } break; - case 116: /* impl_def_val */ + case 124: /* impl */ { #line 115 "src/parser_proc.y" -psi_impl_def_val_free(&(yypminor->yy93)); -#line 1246 "src/parser_proc.c" +psi_impl_free(&(yypminor->yy303)); +#line 1272 "src/parser_proc.c" } break; - case 117: /* impl_var */ + case 125: /* impl_func */ { #line 117 "src/parser_proc.y" -psi_impl_var_free(&(yypminor->yy37)); -#line 1253 "src/parser_proc.c" +psi_impl_func_free(&(yypminor->yy226)); +#line 1279 "src/parser_proc.c" } break; - case 118: /* impl_arg */ - case 120: /* impl_vararg */ + case 126: /* impl_def_val */ { #line 119 "src/parser_proc.y" -psi_impl_arg_free(&(yypminor->yy210)); -#line 1261 "src/parser_proc.c" +psi_impl_def_val_free(&(yypminor->yy319)); +#line 1286 "src/parser_proc.c" } break; - case 122: /* impl_stmt */ + case 127: /* impl_var */ { -#line 127 "src/parser_proc.y" -psi_impl_stmt_free(&(yypminor->yy78)); -#line 1268 "src/parser_proc.c" +#line 121 "src/parser_proc.y" +psi_impl_var_free(&(yypminor->yy123)); +#line 1293 "src/parser_proc.c" } break; - case 123: /* number */ + case 128: /* impl_arg */ + case 130: /* impl_vararg */ { -#line 129 "src/parser_proc.y" -psi_number_free(&(yypminor->yy188)); -#line 1275 "src/parser_proc.c" +#line 123 "src/parser_proc.y" +psi_impl_arg_free(&(yypminor->yy56)); +#line 1301 "src/parser_proc.c" } break; - case 124: /* num_exp */ + case 132: /* impl_stmt */ { #line 131 "src/parser_proc.y" -psi_num_exp_free(&(yypminor->yy259)); -#line 1282 "src/parser_proc.c" +psi_impl_stmt_free(&(yypminor->yy282)); +#line 1308 "src/parser_proc.c" } break; - case 125: /* let_stmt */ + case 133: /* number */ { #line 133 "src/parser_proc.y" -psi_let_stmt_free(&(yypminor->yy311)); -#line 1289 "src/parser_proc.c" +psi_number_free(&(yypminor->yy66)); +#line 1315 "src/parser_proc.c" } break; - case 126: /* let_calloc */ + case 134: /* num_exp */ { #line 135 "src/parser_proc.y" -psi_let_calloc_free(&(yypminor->yy9)); -#line 1296 "src/parser_proc.c" +psi_num_exp_free(&(yypminor->yy124)); +#line 1322 "src/parser_proc.c" } break; - case 127: /* let_func */ + case 135: /* let_stmt */ { #line 137 "src/parser_proc.y" -psi_let_func_free(&(yypminor->yy27)); -#line 1303 "src/parser_proc.c" +psi_let_stmt_free(&(yypminor->yy138)); +#line 1329 "src/parser_proc.c" } break; - case 128: /* callback_arg_list */ - case 129: /* callback_args */ + case 136: /* let_calloc */ { #line 139 "src/parser_proc.y" -psi_plist_free((yypminor->yy43)); -#line 1311 "src/parser_proc.c" +psi_let_calloc_free(&(yypminor->yy227)); +#line 1336 "src/parser_proc.c" +} + break; + case 137: /* let_func */ +{ +#line 141 "src/parser_proc.y" +psi_let_func_free(&(yypminor->yy133)); +#line 1343 "src/parser_proc.c" } break; - case 130: /* let_callback */ + case 138: /* callback_arg_list */ + case 139: /* callback_args */ { #line 143 "src/parser_proc.y" -psi_let_callback_free(&(yypminor->yy220)); -#line 1318 "src/parser_proc.c" +psi_plist_free((yypminor->yy304)); +#line 1351 "src/parser_proc.c" } break; - case 131: /* let_exp */ + case 140: /* let_callback */ { -#line 145 "src/parser_proc.y" -psi_let_exp_free(&(yypminor->yy20)); -#line 1325 "src/parser_proc.c" +#line 147 "src/parser_proc.y" +psi_let_callback_free(&(yypminor->yy76)); +#line 1358 "src/parser_proc.c" } break; - case 133: /* set_stmt */ + case 141: /* let_exp */ { #line 149 "src/parser_proc.y" -psi_set_stmt_free(&(yypminor->yy98)); -#line 1332 "src/parser_proc.c" +psi_let_exp_free(&(yypminor->yy196)); +#line 1365 "src/parser_proc.c" } break; - case 134: /* set_exp */ + case 143: /* assert_stmt */ { -#line 151 "src/parser_proc.y" -psi_set_exp_free(&(yypminor->yy147)); -#line 1339 "src/parser_proc.c" +#line 153 "src/parser_proc.y" +psi_assert_stmt_free(&(yypminor->yy146)); +#line 1372 "src/parser_proc.c" } break; - case 136: /* set_func */ + case 144: /* set_stmt */ { #line 155 "src/parser_proc.y" -psi_set_func_free(&(yypminor->yy26)); -#line 1346 "src/parser_proc.c" +psi_set_stmt_free(&(yypminor->yy300)); +#line 1379 "src/parser_proc.c" } break; - case 137: /* return_stmt */ + case 145: /* set_exp */ { #line 157 "src/parser_proc.y" -psi_return_stmt_free(&(yypminor->yy90)); -#line 1353 "src/parser_proc.c" +psi_set_exp_free(&(yypminor->yy113)); +#line 1386 "src/parser_proc.c" } break; - case 138: /* free_stmt */ + case 147: /* set_func */ { -#line 159 "src/parser_proc.y" -psi_free_stmt_free(&(yypminor->yy192)); -#line 1360 "src/parser_proc.c" +#line 161 "src/parser_proc.y" +psi_set_func_free(&(yypminor->yy324)); +#line 1393 "src/parser_proc.c" } break; - case 140: /* free_exp */ + case 148: /* return_stmt */ { #line 163 "src/parser_proc.y" -psi_free_exp_free(&(yypminor->yy94)); -#line 1367 "src/parser_proc.c" +psi_return_stmt_free(&(yypminor->yy258)); +#line 1400 "src/parser_proc.c" } break; - case 141: /* impl_type */ + case 149: /* free_stmt */ { #line 165 "src/parser_proc.y" -psi_impl_type_free(&(yypminor->yy138)); -#line 1374 "src/parser_proc.c" +psi_free_stmt_free(&(yypminor->yy102)); +#line 1407 "src/parser_proc.c" +} + break; + case 151: /* free_exp */ +{ +#line 169 "src/parser_proc.y" +psi_free_exp_free(&(yypminor->yy114)); +#line 1414 "src/parser_proc.c" +} + break; + case 152: /* impl_type */ +{ +#line 171 "src/parser_proc.y" +psi_impl_type_free(&(yypminor->yy40)); +#line 1421 "src/parser_proc.c" } break; /********* End destructor definitions *****************************************/ @@ -1622,163 +1669,165 @@ static const struct { YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ unsigned char nrhs; /* Number of right-hand side symbols in the rule */ } yyRuleInfo[] = { - { 147, 3 }, - { 147, 1 }, - { 147, 1 }, - { 147, 1 }, - { 147, 1 }, - { 147, 1 }, - { 147, 1 }, - { 147, 1 }, - { 148, 0 }, - { 148, 1 }, - { 94, 0 }, - { 94, 7 }, - { 149, 2 }, - { 150, 2 }, - { 151, 2 }, - { 88, 4 }, - { 89, 1 }, - { 89, 3 }, - { 90, 3 }, - { 90, 1 }, - { 91, 3 }, - { 92, 1 }, - { 92, 1 }, - { 93, 4 }, - { 95, 4 }, - { 96, 1 }, - { 97, 6 }, - { 98, 3 }, - { 99, 4 }, - { 99, 4 }, - { 99, 2 }, + { 158, 3 }, + { 158, 1 }, + { 158, 1 }, + { 158, 1 }, + { 158, 1 }, + { 158, 1 }, + { 158, 1 }, + { 158, 1 }, + { 159, 0 }, + { 159, 1 }, + { 104, 0 }, + { 104, 7 }, + { 160, 2 }, + { 161, 2 }, + { 162, 2 }, + { 98, 4 }, + { 99, 1 }, + { 99, 3 }, + { 100, 3 }, { 100, 1 }, { 101, 3 }, - { 100, 2 }, - { 100, 1 }, - { 102, 6 }, - { 102, 8 }, - { 103, 1 }, - { 103, 2 }, - { 100, 7 }, - { 100, 8 }, - { 104, 1 }, - { 152, 0 }, - { 152, 3 }, - { 105, 2 }, - { 105, 3 }, + { 102, 1 }, + { 102, 1 }, + { 103, 4 }, + { 105, 4 }, { 106, 1 }, - { 106, 3 }, - { 107, 2 }, - { 100, 7 }, - { 107, 3 }, - { 107, 4 }, - { 108, 0 }, - { 108, 1 }, - { 108, 1 }, + { 107, 6 }, { 108, 3 }, - { 109, 1 }, + { 109, 4 }, + { 109, 4 }, { 109, 2 }, + { 110, 1 }, + { 111, 3 }, { 110, 2 }, - { 110, 3 }, - { 111, 0 }, - { 111, 7 }, - { 153, 1 }, - { 153, 2 }, - { 154, 0 }, - { 154, 1 }, - { 153, 1 }, - { 153, 2 }, - { 155, 0 }, - { 155, 1 }, - { 155, 2 }, - { 156, 0 }, - { 156, 1 }, - { 112, 2 }, - { 112, 2 }, - { 112, 1 }, - { 112, 1 }, - { 112, 1 }, - { 112, 2 }, - { 112, 2 }, - { 112, 2 }, - { 112, 1 }, + { 110, 1 }, + { 112, 6 }, + { 112, 8 }, { 113, 1 }, { 113, 2 }, - { 114, 4 }, - { 114, 5 }, - { 115, 7 }, - { 115, 8 }, - { 115, 13 }, + { 110, 7 }, + { 110, 8 }, + { 114, 1 }, + { 163, 0 }, + { 163, 3 }, + { 115, 2 }, + { 115, 3 }, { 116, 1 }, + { 116, 3 }, { 117, 2 }, - { 141, 1 }, - { 118, 2 }, - { 118, 4 }, + { 110, 7 }, + { 117, 3 }, + { 117, 4 }, + { 118, 0 }, + { 118, 1 }, + { 118, 1 }, + { 118, 3 }, { 119, 1 }, - { 119, 3 }, - { 121, 1 }, - { 121, 2 }, + { 119, 2 }, + { 120, 2 }, + { 120, 3 }, + { 121, 0 }, + { 121, 7 }, + { 164, 1 }, + { 164, 2 }, + { 165, 0 }, + { 165, 1 }, + { 164, 1 }, + { 164, 2 }, + { 166, 0 }, + { 166, 1 }, + { 166, 2 }, + { 167, 0 }, + { 167, 1 }, + { 122, 2 }, + { 122, 2 }, { 122, 1 }, { 122, 1 }, { 122, 1 }, + { 122, 2 }, + { 122, 2 }, + { 122, 2 }, { 122, 1 }, { 123, 1 }, - { 123, 1 }, - { 124, 1 }, - { 124, 3 }, - { 124, 3 }, - { 124, 2 }, - { 131, 1 }, - { 131, 2 }, - { 131, 1 }, - { 131, 1 }, - { 131, 2 }, - { 131, 1 }, - { 131, 2 }, + { 123, 2 }, + { 124, 4 }, + { 124, 5 }, + { 125, 7 }, + { 125, 8 }, + { 125, 13 }, + { 126, 1 }, + { 127, 2 }, + { 152, 1 }, + { 128, 2 }, + { 128, 4 }, + { 129, 1 }, + { 129, 3 }, { 131, 1 }, { 131, 2 }, - { 131, 3 }, - { 125, 3 }, - { 125, 6 }, - { 130, 8 }, - { 126, 6 }, - { 127, 4 }, - { 127, 6 }, { 132, 1 }, - { 132, 3 }, - { 128, 0 }, - { 128, 1 }, - { 129, 1 }, - { 129, 3 }, - { 157, 1 }, - { 157, 1 }, - { 136, 4 }, - { 136, 6 }, - { 136, 6 }, - { 134, 1 }, + { 132, 1 }, + { 132, 1 }, + { 132, 1 }, + { 132, 1 }, + { 133, 1 }, + { 133, 1 }, { 134, 1 }, - { 135, 1 }, - { 135, 3 }, { 134, 3 }, - { 133, 3 }, - { 137, 3 }, - { 138, 3 }, + { 134, 3 }, + { 134, 2 }, + { 141, 1 }, + { 141, 2 }, + { 141, 1 }, + { 141, 1 }, + { 141, 2 }, + { 141, 1 }, + { 141, 2 }, + { 141, 1 }, + { 141, 2 }, + { 141, 3 }, + { 135, 3 }, + { 135, 6 }, + { 140, 8 }, + { 136, 6 }, + { 137, 4 }, + { 137, 6 }, + { 142, 1 }, + { 142, 3 }, + { 138, 0 }, + { 138, 1 }, { 139, 1 }, { 139, 3 }, - { 140, 4 }, - { 142, 0 }, - { 142, 1 }, - { 143, 0 }, - { 143, 1 }, - { 144, 1 }, - { 144, 2 }, + { 168, 1 }, + { 168, 1 }, + { 147, 4 }, + { 147, 6 }, + { 147, 6 }, + { 145, 1 }, { 145, 1 }, { 146, 1 }, - { 146, 2 }, - { 147, 1 }, - { 147, 1 }, + { 146, 3 }, + { 145, 3 }, + { 144, 3 }, + { 148, 3 }, + { 149, 3 }, + { 150, 1 }, + { 150, 3 }, + { 151, 4 }, + { 143, 3 }, + { 153, 0 }, + { 153, 1 }, + { 154, 0 }, + { 154, 1 }, + { 155, 1 }, + { 155, 2 }, + { 156, 1 }, + { 157, 1 }, + { 157, 2 }, + { 158, 1 }, + { 158, 1 }, }; static void yy_accept(yyParser*); /* Forward Declaration */ @@ -1843,7 +1892,7 @@ static void yy_reduce( /********** Begin reduce actions **********************************************/ YYMINORTYPE yylhsminor; case 0: /* block ::= LIB QUOTED_STRING EOS */ -#line 174 "src/parser_proc.y" +#line 180 "src/parser_proc.y" { if (P->file.ln) { P->error(PSI_DATA(P), yymsp[-2].minor.yy0, PSI_WARNING, "Extra 'lib %s' statement has no effect", yymsp[-1].minor.yy0->text); @@ -1853,115 +1902,115 @@ static void yy_reduce( free(yymsp[-1].minor.yy0); free(yymsp[-2].minor.yy0); } -#line 1857 "src/parser_proc.c" - yy_destructor(yypParser,63,&yymsp[0].minor); +#line 1906 "src/parser_proc.c" + yy_destructor(yypParser,73,&yymsp[0].minor); break; case 1: /* block ::= decl */ -#line 183 "src/parser_proc.y" +#line 189 "src/parser_proc.y" { if (!P->decls) { P->decls = psi_plist_init((psi_plist_dtor) psi_decl_free); } - P->decls = psi_plist_add(P->decls, &yymsp[0].minor.yy103); + P->decls = psi_plist_add(P->decls, &yymsp[0].minor.yy17); } -#line 1868 "src/parser_proc.c" +#line 1917 "src/parser_proc.c" break; case 2: /* block ::= impl */ -#line 189 "src/parser_proc.y" +#line 195 "src/parser_proc.y" { if (!P->impls) { P->impls = psi_plist_init((psi_plist_dtor) psi_impl_free); } - P->impls = psi_plist_add(P->impls, &yymsp[0].minor.yy97); + P->impls = psi_plist_add(P->impls, &yymsp[0].minor.yy303); } -#line 1878 "src/parser_proc.c" +#line 1927 "src/parser_proc.c" break; case 3: /* block ::= decl_typedef */ -#line 195 "src/parser_proc.y" +#line 201 "src/parser_proc.y" { if (!P->types) { P->types = psi_plist_init((psi_plist_dtor) psi_decl_arg_free); } - P->types = psi_plist_add(P->types, &yymsp[0].minor.yy184); - switch (yymsp[0].minor.yy184->type->type) { + P->types = psi_plist_add(P->types, &yymsp[0].minor.yy64); + switch (yymsp[0].minor.yy64->type->type) { case PSI_T_STRUCT: - if (yymsp[0].minor.yy184->type->real.strct) { + if (yymsp[0].minor.yy64->type->real.strct) { if (!P->structs) { P->structs = psi_plist_init((psi_plist_dtor) psi_decl_struct_free); } - P->structs = psi_plist_add(P->structs, &yymsp[0].minor.yy184->type->real.strct); + P->structs = psi_plist_add(P->structs, &yymsp[0].minor.yy64->type->real.strct); } break; case PSI_T_UNION: - if (yymsp[0].minor.yy184->type->real.unn) { + if (yymsp[0].minor.yy64->type->real.unn) { if (!P->unions) { P->unions = psi_plist_init((psi_plist_dtor) psi_decl_union_free); } - P->unions = psi_plist_add(P->unions, &yymsp[0].minor.yy184->type->real.unn); + P->unions = psi_plist_add(P->unions, &yymsp[0].minor.yy64->type->real.unn); } break; case PSI_T_ENUM: - if (yymsp[0].minor.yy184->type->real.enm) { + if (yymsp[0].minor.yy64->type->real.enm) { if (!P->enums) { P->enums = psi_plist_init((psi_plist_dtor) psi_decl_enum_free); } - P->enums = psi_plist_add(P->enums, &yymsp[0].minor.yy184->type->real.enm); + P->enums = psi_plist_add(P->enums, &yymsp[0].minor.yy64->type->real.enm); } break; } } -#line 1914 "src/parser_proc.c" +#line 1963 "src/parser_proc.c" break; case 4: /* block ::= constant */ -#line 227 "src/parser_proc.y" +#line 233 "src/parser_proc.y" { if (!P->consts) { P->consts = psi_plist_init((psi_plist_dtor) psi_const_free); } - P->consts = psi_plist_add(P->consts, &yymsp[0].minor.yy154); + P->consts = psi_plist_add(P->consts, &yymsp[0].minor.yy336); } -#line 1924 "src/parser_proc.c" +#line 1973 "src/parser_proc.c" break; case 5: /* block ::= decl_struct */ -#line 233 "src/parser_proc.y" +#line 239 "src/parser_proc.y" { if (!P->structs) { P->structs = psi_plist_init((psi_plist_dtor) psi_decl_struct_free); } - P->structs = psi_plist_add(P->structs, &yymsp[0].minor.yy275); + P->structs = psi_plist_add(P->structs, &yymsp[0].minor.yy137); } -#line 1934 "src/parser_proc.c" +#line 1983 "src/parser_proc.c" break; case 6: /* block ::= decl_union */ -#line 239 "src/parser_proc.y" +#line 245 "src/parser_proc.y" { if (!P->unions) { P->unions = psi_plist_init((psi_plist_dtor) psi_decl_union_free); } - P->unions = psi_plist_add(P->unions, &yymsp[0].minor.yy271); + P->unions = psi_plist_add(P->unions, &yymsp[0].minor.yy47); } -#line 1944 "src/parser_proc.c" +#line 1993 "src/parser_proc.c" break; case 7: /* block ::= decl_enum */ -#line 245 "src/parser_proc.y" +#line 251 "src/parser_proc.y" { if (!P->enums) { P->enums = psi_plist_init((psi_plist_dtor) psi_decl_enum_free); } - P->enums = psi_plist_add(P->enums, &yymsp[0].minor.yy63); + P->enums = psi_plist_add(P->enums, &yymsp[0].minor.yy87); } -#line 1954 "src/parser_proc.c" +#line 2003 "src/parser_proc.c" break; case 8: /* optional_name ::= */ case 42: /* decl_var_array_size ::= */ yytestcase(yyruleno==42); case 64: /* decl_scalar_type_short ::= */ yytestcase(yyruleno==64); case 68: /* decl_scalar_type_long ::= */ yytestcase(yyruleno==68); case 71: /* decl_scalar_type_long_long ::= */ yytestcase(yyruleno==71); -#line 251 "src/parser_proc.y" +#line 257 "src/parser_proc.y" { yymsp[1].minor.yy0 = NULL; } -#line 1965 "src/parser_proc.c" +#line 2014 "src/parser_proc.c" break; case 9: /* optional_name ::= NAME */ case 62: /* decl_scalar_type ::= CHAR */ yytestcase(yyruleno==62); @@ -1969,43 +2018,43 @@ static void yy_reduce( case 66: /* decl_scalar_type ::= INT */ yytestcase(yyruleno==66); case 69: /* decl_scalar_type_long ::= DOUBLE */ yytestcase(yyruleno==69); case 72: /* decl_scalar_type_long_long ::= INT */ yytestcase(yyruleno==72); - case 130: /* callback_rval ::= ZVAL|OBJVAL|ARRVAL|PATHVAL|STRLEN|STRVAL|FLOATVAL|INTVAL|BOOLVAL|COUNT */ yytestcase(yyruleno==130); - case 131: /* callback_rval ::= VOID */ yytestcase(yyruleno==131); -#line 254 "src/parser_proc.y" + case 131: /* callback_rval ::= ZVAL|OBJVAL|ARRVAL|PATHVAL|STRLEN|STRVAL|FLOATVAL|INTVAL|BOOLVAL|COUNT */ yytestcase(yyruleno==131); + case 132: /* callback_rval ::= VOID */ yytestcase(yyruleno==132); +#line 260 "src/parser_proc.y" { yylhsminor.yy0 = yymsp[0].minor.yy0; } -#line 1979 "src/parser_proc.c" +#line 2028 "src/parser_proc.c" yymsp[0].minor.yy0 = yylhsminor.yy0; break; case 10: /* align_and_size ::= */ -#line 257 "src/parser_proc.y" +#line 263 "src/parser_proc.y" { - yymsp[1].minor.yy91.pos = 0; - yymsp[1].minor.yy91.len = 0; + yymsp[1].minor.yy207.pos = 0; + yymsp[1].minor.yy207.len = 0; } -#line 1988 "src/parser_proc.c" +#line 2037 "src/parser_proc.c" break; case 11: /* align_and_size ::= COLON COLON LPAREN NUMBER COMMA NUMBER RPAREN */ -{ yy_destructor(yypParser,64,&yymsp[-6].minor); -#line 261 "src/parser_proc.y" +{ yy_destructor(yypParser,74,&yymsp[-6].minor); +#line 267 "src/parser_proc.y" { - yymsp[-6].minor.yy91.pos = atol(yymsp[-3].minor.yy0->text); - yymsp[-6].minor.yy91.len = atol(yymsp[-1].minor.yy0->text); + yymsp[-6].minor.yy207.pos = atol(yymsp[-3].minor.yy0->text); + yymsp[-6].minor.yy207.len = atol(yymsp[-1].minor.yy0->text); free(yymsp[-3].minor.yy0); free(yymsp[-1].minor.yy0); } -#line 1999 "src/parser_proc.c" - yy_destructor(yypParser,64,&yymsp[-5].minor); - yy_destructor(yypParser,65,&yymsp[-4].minor); - yy_destructor(yypParser,66,&yymsp[-2].minor); - yy_destructor(yypParser,67,&yymsp[0].minor); +#line 2048 "src/parser_proc.c" + yy_destructor(yypParser,74,&yymsp[-5].minor); + yy_destructor(yypParser,75,&yymsp[-4].minor); + yy_destructor(yypParser,76,&yymsp[-2].minor); + yy_destructor(yypParser,77,&yymsp[0].minor); } break; case 12: /* enum_name ::= ENUM optional_name */ case 13: /* struct_name ::= STRUCT optional_name */ yytestcase(yyruleno==13); case 14: /* union_name ::= UNION optional_name */ yytestcase(yyruleno==14); -#line 267 "src/parser_proc.y" +#line 273 "src/parser_proc.y" { if (yymsp[0].minor.yy0) { yylhsminor.yy0 = yymsp[0].minor.yy0; @@ -2016,526 +2065,526 @@ static void yy_reduce( yylhsminor.yy0 = psi_token_translit(psi_token_append(yymsp[-1].minor.yy0, 1, digest), " ", "@"); } } -#line 2020 "src/parser_proc.c" +#line 2069 "src/parser_proc.c" yymsp[-1].minor.yy0 = yylhsminor.yy0; break; case 15: /* decl_enum ::= enum_name LBRACE decl_enum_items RBRACE */ -#line 297 "src/parser_proc.y" +#line 303 "src/parser_proc.y" { - yylhsminor.yy63 = psi_decl_enum_init(yymsp[-3].minor.yy0->text, yymsp[-1].minor.yy163); - yylhsminor.yy63->token = yymsp[-3].minor.yy0; + yylhsminor.yy87 = psi_decl_enum_init(yymsp[-3].minor.yy0->text, yymsp[-1].minor.yy7); + yylhsminor.yy87->token = yymsp[-3].minor.yy0; } -#line 2029 "src/parser_proc.c" - yy_destructor(yypParser,71,&yymsp[-2].minor); - yy_destructor(yypParser,72,&yymsp[0].minor); - yymsp[-3].minor.yy63 = yylhsminor.yy63; +#line 2078 "src/parser_proc.c" + yy_destructor(yypParser,81,&yymsp[-2].minor); + yy_destructor(yypParser,82,&yymsp[0].minor); + yymsp[-3].minor.yy87 = yylhsminor.yy87; break; case 16: /* decl_enum_items ::= decl_enum_item */ -#line 301 "src/parser_proc.y" +#line 307 "src/parser_proc.y" { - yylhsminor.yy163 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_enum_item_free), - &yymsp[0].minor.yy217); + yylhsminor.yy7 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_enum_item_free), + &yymsp[0].minor.yy109); } -#line 2040 "src/parser_proc.c" - yymsp[0].minor.yy163 = yylhsminor.yy163; +#line 2089 "src/parser_proc.c" + yymsp[0].minor.yy7 = yylhsminor.yy7; break; case 17: /* decl_enum_items ::= decl_enum_items COMMA decl_enum_item */ -#line 305 "src/parser_proc.y" +#line 311 "src/parser_proc.y" { - yylhsminor.yy163 = psi_plist_add(yymsp[-2].minor.yy163, &yymsp[0].minor.yy217); + yylhsminor.yy7 = psi_plist_add(yymsp[-2].minor.yy7, &yymsp[0].minor.yy109); } -#line 2048 "src/parser_proc.c" - yy_destructor(yypParser,66,&yymsp[-1].minor); - yymsp[-2].minor.yy163 = yylhsminor.yy163; +#line 2097 "src/parser_proc.c" + yy_destructor(yypParser,76,&yymsp[-1].minor); + yymsp[-2].minor.yy7 = yylhsminor.yy7; break; case 18: /* decl_enum_item ::= NAME EQUALS num_exp */ -#line 308 "src/parser_proc.y" +#line 314 "src/parser_proc.y" { - yylhsminor.yy217 = psi_decl_enum_item_init(yymsp[-2].minor.yy0->text, yymsp[0].minor.yy259); - yylhsminor.yy217->token = yymsp[-2].minor.yy0; + yylhsminor.yy109 = psi_decl_enum_item_init(yymsp[-2].minor.yy0->text, yymsp[0].minor.yy124); + yylhsminor.yy109->token = yymsp[-2].minor.yy0; } -#line 2058 "src/parser_proc.c" - yy_destructor(yypParser,73,&yymsp[-1].minor); - yymsp[-2].minor.yy217 = yylhsminor.yy217; +#line 2107 "src/parser_proc.c" + yy_destructor(yypParser,83,&yymsp[-1].minor); + yymsp[-2].minor.yy109 = yylhsminor.yy109; break; case 19: /* decl_enum_item ::= NAME */ -#line 312 "src/parser_proc.y" +#line 318 "src/parser_proc.y" { - yylhsminor.yy217 = psi_decl_enum_item_init(yymsp[0].minor.yy0->text, NULL); - yylhsminor.yy217->token = yymsp[0].minor.yy0; + yylhsminor.yy109 = psi_decl_enum_item_init(yymsp[0].minor.yy0->text, NULL); + yylhsminor.yy109->token = yymsp[0].minor.yy0; } -#line 2068 "src/parser_proc.c" - yymsp[0].minor.yy217 = yylhsminor.yy217; +#line 2117 "src/parser_proc.c" + yymsp[0].minor.yy109 = yylhsminor.yy109; break; case 20: /* decl_struct_args_block ::= LBRACE struct_args RBRACE */ -{ yy_destructor(yypParser,71,&yymsp[-2].minor); -#line 316 "src/parser_proc.y" +{ yy_destructor(yypParser,81,&yymsp[-2].minor); +#line 322 "src/parser_proc.y" { - yymsp[-2].minor.yy163 = yymsp[-1].minor.yy163; + yymsp[-2].minor.yy7 = yymsp[-1].minor.yy7; } -#line 2077 "src/parser_proc.c" - yy_destructor(yypParser,72,&yymsp[0].minor); +#line 2126 "src/parser_proc.c" + yy_destructor(yypParser,82,&yymsp[0].minor); } break; case 21: /* decl_struct_args ::= decl_struct_args_block */ -#line 319 "src/parser_proc.y" +#line 325 "src/parser_proc.y" { - yylhsminor.yy163 = yymsp[0].minor.yy163; + yylhsminor.yy7 = yymsp[0].minor.yy7; } -#line 2086 "src/parser_proc.c" - yymsp[0].minor.yy163 = yylhsminor.yy163; +#line 2135 "src/parser_proc.c" + yymsp[0].minor.yy7 = yylhsminor.yy7; break; case 22: /* decl_struct_args ::= EOS */ -{ yy_destructor(yypParser,63,&yymsp[0].minor); -#line 322 "src/parser_proc.y" +{ yy_destructor(yypParser,73,&yymsp[0].minor); +#line 328 "src/parser_proc.y" { - yymsp[0].minor.yy163 = psi_plist_init((psi_plist_dtor) psi_decl_arg_free); + yymsp[0].minor.yy7 = psi_plist_init((psi_plist_dtor) psi_decl_arg_free); } -#line 2095 "src/parser_proc.c" +#line 2144 "src/parser_proc.c" } break; case 23: /* decl_struct ::= STRUCT NAME align_and_size decl_struct_args */ -{ yy_destructor(yypParser,69,&yymsp[-3].minor); -#line 325 "src/parser_proc.y" +{ yy_destructor(yypParser,79,&yymsp[-3].minor); +#line 331 "src/parser_proc.y" { - yymsp[-3].minor.yy275 = psi_decl_struct_init(yymsp[-2].minor.yy0->text, yymsp[0].minor.yy163); - yymsp[-3].minor.yy275->align = yymsp[-1].minor.yy91.pos; - yymsp[-3].minor.yy275->size = yymsp[-1].minor.yy91.len; - yymsp[-3].minor.yy275->token = yymsp[-2].minor.yy0; + yymsp[-3].minor.yy137 = psi_decl_struct_init(yymsp[-2].minor.yy0->text, yymsp[0].minor.yy7); + yymsp[-3].minor.yy137->align = yymsp[-1].minor.yy207.pos; + yymsp[-3].minor.yy137->size = yymsp[-1].minor.yy207.len; + yymsp[-3].minor.yy137->token = yymsp[-2].minor.yy0; } -#line 2107 "src/parser_proc.c" +#line 2156 "src/parser_proc.c" } break; case 24: /* decl_union ::= UNION NAME align_and_size decl_struct_args */ -{ yy_destructor(yypParser,70,&yymsp[-3].minor); -#line 331 "src/parser_proc.y" +{ yy_destructor(yypParser,80,&yymsp[-3].minor); +#line 337 "src/parser_proc.y" { - yymsp[-3].minor.yy271 = psi_decl_union_init(yymsp[-2].minor.yy0->text, yymsp[0].minor.yy163); - yymsp[-3].minor.yy271->align = yymsp[-1].minor.yy91.pos; - yymsp[-3].minor.yy271->size = yymsp[-1].minor.yy91.len; - yymsp[-3].minor.yy271->token = yymsp[-2].minor.yy0; + yymsp[-3].minor.yy47 = psi_decl_union_init(yymsp[-2].minor.yy0->text, yymsp[0].minor.yy7); + yymsp[-3].minor.yy47->align = yymsp[-1].minor.yy207.pos; + yymsp[-3].minor.yy47->size = yymsp[-1].minor.yy207.len; + yymsp[-3].minor.yy47->token = yymsp[-2].minor.yy0; } -#line 2119 "src/parser_proc.c" +#line 2168 "src/parser_proc.c" } break; case 25: /* const_type ::= BOOL|INT|FLOAT|STRING */ -#line 337 "src/parser_proc.y" +#line 343 "src/parser_proc.y" { - yylhsminor.yy171 = psi_const_type_init(yymsp[0].minor.yy0->type, yymsp[0].minor.yy0->text); + yylhsminor.yy181 = psi_const_type_init(yymsp[0].minor.yy0->type, yymsp[0].minor.yy0->text); free(yymsp[0].minor.yy0); } -#line 2128 "src/parser_proc.c" - yymsp[0].minor.yy171 = yylhsminor.yy171; +#line 2177 "src/parser_proc.c" + yymsp[0].minor.yy181 = yylhsminor.yy181; break; case 26: /* constant ::= CONST const_type NSNAME EQUALS impl_def_val EOS */ -{ yy_destructor(yypParser,74,&yymsp[-5].minor); -#line 341 "src/parser_proc.y" +{ yy_destructor(yypParser,84,&yymsp[-5].minor); +#line 347 "src/parser_proc.y" { - yymsp[-5].minor.yy154 = psi_const_init(yymsp[-4].minor.yy171, yymsp[-3].minor.yy0->text, yymsp[-1].minor.yy93); - yymsp[-5].minor.yy154->token = yymsp[-3].minor.yy0; + yymsp[-5].minor.yy336 = psi_const_init(yymsp[-4].minor.yy181, yymsp[-3].minor.yy0->text, yymsp[-1].minor.yy319); + yymsp[-5].minor.yy336->token = yymsp[-3].minor.yy0; } -#line 2138 "src/parser_proc.c" - yy_destructor(yypParser,73,&yymsp[-2].minor); - yy_destructor(yypParser,63,&yymsp[0].minor); +#line 2187 "src/parser_proc.c" + yy_destructor(yypParser,83,&yymsp[-2].minor); + yy_destructor(yypParser,73,&yymsp[0].minor); } break; case 27: /* decl_typedef ::= TYPEDEF decl_typedef_body EOS */ -#line 345 "src/parser_proc.y" +#line 351 "src/parser_proc.y" { - yylhsminor.yy184 = yymsp[-1].minor.yy184; - yylhsminor.yy184->token = yymsp[-2].minor.yy0; + yylhsminor.yy64 = yymsp[-1].minor.yy64; + yylhsminor.yy64->token = yymsp[-2].minor.yy0; } -#line 2149 "src/parser_proc.c" - yy_destructor(yypParser,63,&yymsp[0].minor); - yymsp[-2].minor.yy184 = yylhsminor.yy184; +#line 2198 "src/parser_proc.c" + yy_destructor(yypParser,73,&yymsp[0].minor); + yymsp[-2].minor.yy64 = yylhsminor.yy64; break; case 28: /* decl_typedef_body_ex ::= struct_name align_and_size decl_struct_args_block decl_var */ -#line 349 "src/parser_proc.y" +#line 355 "src/parser_proc.y" { - yylhsminor.yy184 = psi_decl_arg_init(psi_decl_type_init(PSI_T_STRUCT, yymsp[-3].minor.yy0->text), yymsp[0].minor.yy11); - yylhsminor.yy184->type->token = psi_token_copy(yymsp[-3].minor.yy0); - yylhsminor.yy184->type->real.strct = psi_decl_struct_init(yymsp[-3].minor.yy0->text, yymsp[-1].minor.yy163); - yylhsminor.yy184->type->real.strct->token = yymsp[-3].minor.yy0; - yylhsminor.yy184->type->real.strct->align = yymsp[-2].minor.yy91.pos; - yylhsminor.yy184->type->real.strct->size = yymsp[-2].minor.yy91.len; + yylhsminor.yy64 = psi_decl_arg_init(psi_decl_type_init(PSI_T_STRUCT, yymsp[-3].minor.yy0->text), yymsp[0].minor.yy131); + yylhsminor.yy64->type->token = psi_token_copy(yymsp[-3].minor.yy0); + yylhsminor.yy64->type->real.strct = psi_decl_struct_init(yymsp[-3].minor.yy0->text, yymsp[-1].minor.yy7); + yylhsminor.yy64->type->real.strct->token = yymsp[-3].minor.yy0; + yylhsminor.yy64->type->real.strct->align = yymsp[-2].minor.yy207.pos; + yylhsminor.yy64->type->real.strct->size = yymsp[-2].minor.yy207.len; } -#line 2163 "src/parser_proc.c" - yymsp[-3].minor.yy184 = yylhsminor.yy184; +#line 2212 "src/parser_proc.c" + yymsp[-3].minor.yy64 = yylhsminor.yy64; break; case 29: /* decl_typedef_body_ex ::= union_name align_and_size decl_struct_args_block decl_var */ -#line 357 "src/parser_proc.y" +#line 363 "src/parser_proc.y" { - yylhsminor.yy184 = psi_decl_arg_init(psi_decl_type_init(PSI_T_UNION, yymsp[-3].minor.yy0->text), yymsp[0].minor.yy11); - yylhsminor.yy184->type->token = psi_token_copy(yymsp[-3].minor.yy0); - yylhsminor.yy184->type->real.unn = psi_decl_union_init(yymsp[-3].minor.yy0->text, yymsp[-1].minor.yy163); - yylhsminor.yy184->type->real.unn->token = yymsp[-3].minor.yy0; - yylhsminor.yy184->type->real.unn->align = yymsp[-2].minor.yy91.pos; - yylhsminor.yy184->type->real.unn->size = yymsp[-2].minor.yy91.len; + yylhsminor.yy64 = psi_decl_arg_init(psi_decl_type_init(PSI_T_UNION, yymsp[-3].minor.yy0->text), yymsp[0].minor.yy131); + yylhsminor.yy64->type->token = psi_token_copy(yymsp[-3].minor.yy0); + yylhsminor.yy64->type->real.unn = psi_decl_union_init(yymsp[-3].minor.yy0->text, yymsp[-1].minor.yy7); + yylhsminor.yy64->type->real.unn->token = yymsp[-3].minor.yy0; + yylhsminor.yy64->type->real.unn->align = yymsp[-2].minor.yy207.pos; + yylhsminor.yy64->type->real.unn->size = yymsp[-2].minor.yy207.len; } -#line 2176 "src/parser_proc.c" - yymsp[-3].minor.yy184 = yylhsminor.yy184; +#line 2225 "src/parser_proc.c" + yymsp[-3].minor.yy64 = yylhsminor.yy64; break; case 30: /* decl_typedef_body_ex ::= decl_enum NAME */ -#line 365 "src/parser_proc.y" +#line 371 "src/parser_proc.y" { - yylhsminor.yy184 = psi_decl_arg_init(psi_decl_type_init(PSI_T_ENUM, yymsp[-1].minor.yy63->name), psi_decl_var_init(yymsp[0].minor.yy0->text, 0, 0)); - yylhsminor.yy184->var->token = yymsp[0].minor.yy0; - yylhsminor.yy184->type->token = psi_token_copy(yymsp[-1].minor.yy63->token); - yylhsminor.yy184->type->real.enm = yymsp[-1].minor.yy63; + yylhsminor.yy64 = psi_decl_arg_init(psi_decl_type_init(PSI_T_ENUM, yymsp[-1].minor.yy87->name), psi_decl_var_init(yymsp[0].minor.yy0->text, 0, 0)); + yylhsminor.yy64->var->token = yymsp[0].minor.yy0; + yylhsminor.yy64->type->token = psi_token_copy(yymsp[-1].minor.yy87->token); + yylhsminor.yy64->type->real.enm = yymsp[-1].minor.yy87; } -#line 2187 "src/parser_proc.c" - yymsp[-1].minor.yy184 = yylhsminor.yy184; +#line 2236 "src/parser_proc.c" + yymsp[-1].minor.yy64 = yylhsminor.yy64; break; case 31: /* decl_typedef_body ::= decl_typedef_body_ex */ case 34: /* decl_typedef_body ::= decl_arg */ yytestcase(yyruleno==34); case 37: /* decl_func ::= decl_arg */ yytestcase(yyruleno==37); -#line 371 "src/parser_proc.y" +#line 377 "src/parser_proc.y" { - yylhsminor.yy184 = yymsp[0].minor.yy184; + yylhsminor.yy64 = yymsp[0].minor.yy64; } -#line 2197 "src/parser_proc.c" - yymsp[0].minor.yy184 = yylhsminor.yy184; +#line 2246 "src/parser_proc.c" + yymsp[0].minor.yy64 = yylhsminor.yy64; break; case 32: /* decl_typedef_body_fn_args ::= LPAREN decl_args RPAREN */ -{ yy_destructor(yypParser,65,&yymsp[-2].minor); -#line 374 "src/parser_proc.y" +{ yy_destructor(yypParser,75,&yymsp[-2].minor); +#line 380 "src/parser_proc.y" { - yymsp[-2].minor.yy163 = yymsp[-1].minor.yy163; + yymsp[-2].minor.yy7 = yymsp[-1].minor.yy7; } -#line 2206 "src/parser_proc.c" - yy_destructor(yypParser,67,&yymsp[0].minor); +#line 2255 "src/parser_proc.c" + yy_destructor(yypParser,77,&yymsp[0].minor); } break; case 33: /* decl_typedef_body ::= decl_func decl_typedef_body_fn_args */ -#line 377 "src/parser_proc.y" +#line 383 "src/parser_proc.y" { - yylhsminor.yy184 = psi_decl_arg_init(psi_decl_type_init(PSI_T_FUNCTION, yymsp[-1].minor.yy184->var->name), psi_decl_var_copy(yymsp[-1].minor.yy184->var)); - yylhsminor.yy184->type->token = psi_token_copy(yymsp[-1].minor.yy184->token); - yylhsminor.yy184->type->real.func = psi_decl_init(psi_decl_abi_init("default"), yymsp[-1].minor.yy184, yymsp[0].minor.yy163); + yylhsminor.yy64 = psi_decl_arg_init(psi_decl_type_init(PSI_T_FUNCTION, yymsp[-1].minor.yy64->var->name), psi_decl_var_copy(yymsp[-1].minor.yy64->var)); + yylhsminor.yy64->type->token = psi_token_copy(yymsp[-1].minor.yy64->token); + yylhsminor.yy64->type->real.func = psi_decl_init(psi_decl_abi_init("default"), yymsp[-1].minor.yy64, yymsp[0].minor.yy7); } -#line 2217 "src/parser_proc.c" - yymsp[-1].minor.yy184 = yylhsminor.yy184; +#line 2266 "src/parser_proc.c" + yymsp[-1].minor.yy64 = yylhsminor.yy64; break; case 35: /* decl ::= decl_abi decl_func LPAREN decl_args RPAREN EOS */ -#line 385 "src/parser_proc.y" +#line 391 "src/parser_proc.y" { - yylhsminor.yy103 = psi_decl_init(yymsp[-5].minor.yy218, yymsp[-4].minor.yy184, yymsp[-2].minor.yy163); + yylhsminor.yy17 = psi_decl_init(yymsp[-5].minor.yy180, yymsp[-4].minor.yy64, yymsp[-2].minor.yy7); } -#line 2225 "src/parser_proc.c" - yy_destructor(yypParser,65,&yymsp[-3].minor); - yy_destructor(yypParser,67,&yymsp[-1].minor); - yy_destructor(yypParser,63,&yymsp[0].minor); - yymsp[-5].minor.yy103 = yylhsminor.yy103; +#line 2274 "src/parser_proc.c" + yy_destructor(yypParser,75,&yymsp[-3].minor); + yy_destructor(yypParser,77,&yymsp[-1].minor); + yy_destructor(yypParser,73,&yymsp[0].minor); + yymsp[-5].minor.yy17 = yylhsminor.yy17; break; case 36: /* decl ::= decl_abi decl_func LPAREN decl_args COMMA ELLIPSIS RPAREN EOS */ -#line 388 "src/parser_proc.y" +#line 394 "src/parser_proc.y" { - yylhsminor.yy103 = psi_decl_init(yymsp[-7].minor.yy218, yymsp[-6].minor.yy184, yymsp[-4].minor.yy163); - yylhsminor.yy103->varargs = 1; + yylhsminor.yy17 = psi_decl_init(yymsp[-7].minor.yy180, yymsp[-6].minor.yy64, yymsp[-4].minor.yy7); + yylhsminor.yy17->varargs = 1; } -#line 2237 "src/parser_proc.c" - yy_destructor(yypParser,65,&yymsp[-5].minor); - yy_destructor(yypParser,66,&yymsp[-3].minor); - yy_destructor(yypParser,76,&yymsp[-2].minor); - yy_destructor(yypParser,67,&yymsp[-1].minor); - yy_destructor(yypParser,63,&yymsp[0].minor); - yymsp[-7].minor.yy103 = yylhsminor.yy103; +#line 2286 "src/parser_proc.c" + yy_destructor(yypParser,75,&yymsp[-5].minor); + yy_destructor(yypParser,76,&yymsp[-3].minor); + yy_destructor(yypParser,86,&yymsp[-2].minor); + yy_destructor(yypParser,77,&yymsp[-1].minor); + yy_destructor(yypParser,73,&yymsp[0].minor); + yymsp[-7].minor.yy17 = yylhsminor.yy17; break; case 38: /* decl_func ::= VOID NAME */ -#line 395 "src/parser_proc.y" +#line 401 "src/parser_proc.y" { - yylhsminor.yy184 = psi_decl_arg_init( + yylhsminor.yy64 = psi_decl_arg_init( psi_decl_type_init(yymsp[-1].minor.yy0->type, yymsp[-1].minor.yy0->text), psi_decl_var_init(yymsp[0].minor.yy0->text, 0, 0) ); - yylhsminor.yy184->type->token = yymsp[-1].minor.yy0; - yylhsminor.yy184->var->token = yymsp[0].minor.yy0; - yylhsminor.yy184->token = yymsp[0].minor.yy0; + yylhsminor.yy64->type->token = yymsp[-1].minor.yy0; + yylhsminor.yy64->var->token = yymsp[0].minor.yy0; + yylhsminor.yy64->token = yymsp[0].minor.yy0; } -#line 2256 "src/parser_proc.c" - yymsp[-1].minor.yy184 = yylhsminor.yy184; +#line 2305 "src/parser_proc.c" + yymsp[-1].minor.yy64 = yylhsminor.yy64; break; case 39: /* decl_typedef_body ::= VOID indirection LPAREN indirection NAME RPAREN decl_typedef_body_fn_args */ -#line 404 "src/parser_proc.y" +#line 410 "src/parser_proc.y" { struct psi_decl_arg *func_ = psi_decl_arg_init( psi_decl_type_init(yymsp[-6].minor.yy0->type, yymsp[-6].minor.yy0->text), - psi_decl_var_init(yymsp[-2].minor.yy0->text, yymsp[-5].minor.yy202, 0) + psi_decl_var_init(yymsp[-2].minor.yy0->text, yymsp[-5].minor.yy296, 0) ); func_->type->token = yymsp[-6].minor.yy0; func_->var->token = yymsp[-2].minor.yy0; func_->token = yymsp[-2].minor.yy0; - yylhsminor.yy184 = psi_decl_arg_init( + yylhsminor.yy64 = psi_decl_arg_init( psi_decl_type_init(PSI_T_FUNCTION, func_->var->name), psi_decl_var_copy(func_->var) ); - yylhsminor.yy184->var->pointer_level = yymsp[-3].minor.yy202; - yylhsminor.yy184->type->token = psi_token_copy(func_->token); - yylhsminor.yy184->type->real.func = psi_decl_init(psi_decl_abi_init("default"), func_, yymsp[0].minor.yy163); + yylhsminor.yy64->var->pointer_level = yymsp[-3].minor.yy296; + yylhsminor.yy64->type->token = psi_token_copy(func_->token); + yylhsminor.yy64->type->real.func = psi_decl_init(psi_decl_abi_init("default"), func_, yymsp[0].minor.yy7); } -#line 2277 "src/parser_proc.c" - yy_destructor(yypParser,65,&yymsp[-4].minor); - yy_destructor(yypParser,67,&yymsp[-1].minor); - yymsp[-6].minor.yy184 = yylhsminor.yy184; +#line 2326 "src/parser_proc.c" + yy_destructor(yypParser,75,&yymsp[-4].minor); + yy_destructor(yypParser,77,&yymsp[-1].minor); + yymsp[-6].minor.yy64 = yylhsminor.yy64; break; case 40: /* decl_typedef_body ::= CONST VOID pointers LPAREN indirection NAME RPAREN decl_typedef_body_fn_args */ -{ yy_destructor(yypParser,74,&yymsp[-7].minor); -#line 420 "src/parser_proc.y" +{ yy_destructor(yypParser,84,&yymsp[-7].minor); +#line 426 "src/parser_proc.y" { struct psi_decl_arg *func_ = psi_decl_arg_init( psi_decl_type_init(yymsp[-6].minor.yy0->type, yymsp[-6].minor.yy0->text), - psi_decl_var_init(yymsp[-2].minor.yy0->text, yymsp[-5].minor.yy202, 0) + psi_decl_var_init(yymsp[-2].minor.yy0->text, yymsp[-5].minor.yy296, 0) ); func_->type->token = yymsp[-6].minor.yy0; func_->var->token = yymsp[-2].minor.yy0; func_->token = yymsp[-2].minor.yy0; - yymsp[-7].minor.yy184 = psi_decl_arg_init( + yymsp[-7].minor.yy64 = psi_decl_arg_init( psi_decl_type_init(PSI_T_FUNCTION, func_->var->name), psi_decl_var_copy(func_->var) ); - yymsp[-7].minor.yy184->var->pointer_level = yymsp[-3].minor.yy202; - yymsp[-7].minor.yy184->type->token = psi_token_copy(func_->token); - yymsp[-7].minor.yy184->type->real.func = psi_decl_init(psi_decl_abi_init("default"), func_, yymsp[0].minor.yy163); + yymsp[-7].minor.yy64->var->pointer_level = yymsp[-3].minor.yy296; + yymsp[-7].minor.yy64->type->token = psi_token_copy(func_->token); + yymsp[-7].minor.yy64->type->real.func = psi_decl_init(psi_decl_abi_init("default"), func_, yymsp[0].minor.yy7); } -#line 2301 "src/parser_proc.c" - yy_destructor(yypParser,65,&yymsp[-4].minor); - yy_destructor(yypParser,67,&yymsp[-1].minor); +#line 2350 "src/parser_proc.c" + yy_destructor(yypParser,75,&yymsp[-4].minor); + yy_destructor(yypParser,77,&yymsp[-1].minor); } break; case 41: /* decl_abi ::= NAME */ -#line 436 "src/parser_proc.y" +#line 442 "src/parser_proc.y" { - yylhsminor.yy218 = psi_decl_abi_init(yymsp[0].minor.yy0->text); - yylhsminor.yy218->token = yymsp[0].minor.yy0; + yylhsminor.yy180 = psi_decl_abi_init(yymsp[0].minor.yy0->text); + yylhsminor.yy180->token = yymsp[0].minor.yy0; } -#line 2312 "src/parser_proc.c" - yymsp[0].minor.yy218 = yylhsminor.yy218; +#line 2361 "src/parser_proc.c" + yymsp[0].minor.yy180 = yylhsminor.yy180; break; case 43: /* decl_var_array_size ::= LBRACKET NUMBER RBRACKET */ -{ yy_destructor(yypParser,77,&yymsp[-2].minor); -#line 443 "src/parser_proc.y" +{ yy_destructor(yypParser,87,&yymsp[-2].minor); +#line 449 "src/parser_proc.y" { yymsp[-2].minor.yy0 = yymsp[-1].minor.yy0; } -#line 2321 "src/parser_proc.c" - yy_destructor(yypParser,78,&yymsp[0].minor); +#line 2370 "src/parser_proc.c" + yy_destructor(yypParser,88,&yymsp[0].minor); } break; case 44: /* decl_var ::= NAME decl_var_array_size */ -#line 446 "src/parser_proc.y" +#line 452 "src/parser_proc.y" { - yylhsminor.yy11 = psi_decl_var_init(yymsp[-1].minor.yy0->text, 0, yymsp[0].minor.yy0?atol(yymsp[0].minor.yy0->text):0); - yylhsminor.yy11->token = yymsp[-1].minor.yy0; + yylhsminor.yy131 = psi_decl_var_init(yymsp[-1].minor.yy0->text, 0, yymsp[0].minor.yy0?atol(yymsp[0].minor.yy0->text):0); + yylhsminor.yy131->token = yymsp[-1].minor.yy0; if (yymsp[0].minor.yy0) { free(yymsp[0].minor.yy0); } } -#line 2334 "src/parser_proc.c" - yymsp[-1].minor.yy11 = yylhsminor.yy11; +#line 2383 "src/parser_proc.c" + yymsp[-1].minor.yy131 = yylhsminor.yy131; break; case 45: /* decl_var ::= pointers NAME decl_var_array_size */ -#line 453 "src/parser_proc.y" +#line 459 "src/parser_proc.y" { - yylhsminor.yy11 = psi_decl_var_init(yymsp[-1].minor.yy0->text, yymsp[-2].minor.yy202+!!yymsp[0].minor.yy0, yymsp[0].minor.yy0?atol(yymsp[0].minor.yy0->text):0); - yylhsminor.yy11->token = yymsp[-1].minor.yy0; + yylhsminor.yy131 = psi_decl_var_init(yymsp[-1].minor.yy0->text, yymsp[-2].minor.yy296+!!yymsp[0].minor.yy0, yymsp[0].minor.yy0?atol(yymsp[0].minor.yy0->text):0); + yylhsminor.yy131->token = yymsp[-1].minor.yy0; if (yymsp[0].minor.yy0) { free(yymsp[0].minor.yy0); } } -#line 2346 "src/parser_proc.c" - yymsp[-2].minor.yy11 = yylhsminor.yy11; +#line 2395 "src/parser_proc.c" + yymsp[-2].minor.yy131 = yylhsminor.yy131; break; case 46: /* decl_vars ::= decl_var */ -#line 460 "src/parser_proc.y" +#line 466 "src/parser_proc.y" { - yylhsminor.yy163 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_var_free), - &yymsp[0].minor.yy11); + yylhsminor.yy7 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_var_free), + &yymsp[0].minor.yy131); } -#line 2355 "src/parser_proc.c" - yymsp[0].minor.yy163 = yylhsminor.yy163; +#line 2404 "src/parser_proc.c" + yymsp[0].minor.yy7 = yylhsminor.yy7; break; case 47: /* decl_vars ::= decl_vars COMMA decl_var */ -#line 464 "src/parser_proc.y" +#line 470 "src/parser_proc.y" { - yylhsminor.yy163 = psi_plist_add(yymsp[-2].minor.yy163, &yymsp[0].minor.yy11); + yylhsminor.yy7 = psi_plist_add(yymsp[-2].minor.yy7, &yymsp[0].minor.yy131); } -#line 2363 "src/parser_proc.c" - yy_destructor(yypParser,66,&yymsp[-1].minor); - yymsp[-2].minor.yy163 = yylhsminor.yy163; +#line 2412 "src/parser_proc.c" + yy_destructor(yypParser,76,&yymsp[-1].minor); + yymsp[-2].minor.yy7 = yylhsminor.yy7; break; case 48: /* decl_arg ::= const_decl_type decl_var */ -#line 467 "src/parser_proc.y" +#line 473 "src/parser_proc.y" { - yylhsminor.yy184 = psi_decl_arg_init(yymsp[-1].minor.yy132, yymsp[0].minor.yy11); + yylhsminor.yy64 = psi_decl_arg_init(yymsp[-1].minor.yy182, yymsp[0].minor.yy131); } -#line 2372 "src/parser_proc.c" - yymsp[-1].minor.yy184 = yylhsminor.yy184; +#line 2421 "src/parser_proc.c" + yymsp[-1].minor.yy64 = yylhsminor.yy64; break; case 49: /* decl_typedef_body ::= const_decl_type indirection LPAREN indirection NAME RPAREN decl_typedef_body_fn_args */ -#line 470 "src/parser_proc.y" +#line 476 "src/parser_proc.y" { struct psi_decl_arg *func_ = psi_decl_arg_init( - yymsp[-6].minor.yy132, - psi_decl_var_init(yymsp[-2].minor.yy0->text, yymsp[-5].minor.yy202, 0) + yymsp[-6].minor.yy182, + psi_decl_var_init(yymsp[-2].minor.yy0->text, yymsp[-5].minor.yy296, 0) ); func_->var->token = yymsp[-2].minor.yy0; func_->token = yymsp[-2].minor.yy0; - yylhsminor.yy184 = psi_decl_arg_init( + yylhsminor.yy64 = psi_decl_arg_init( psi_decl_type_init(PSI_T_FUNCTION, func_->var->name), psi_decl_var_copy(func_->var) ); - yylhsminor.yy184->var->pointer_level = yymsp[-3].minor.yy202; - yylhsminor.yy184->type->token = psi_token_copy(func_->token); - yylhsminor.yy184->type->real.func = psi_decl_init(psi_decl_abi_init("default"), func_, yymsp[0].minor.yy163); + yylhsminor.yy64->var->pointer_level = yymsp[-3].minor.yy296; + yylhsminor.yy64->type->token = psi_token_copy(func_->token); + yylhsminor.yy64->type->real.func = psi_decl_init(psi_decl_abi_init("default"), func_, yymsp[0].minor.yy7); } -#line 2392 "src/parser_proc.c" - yy_destructor(yypParser,65,&yymsp[-4].minor); - yy_destructor(yypParser,67,&yymsp[-1].minor); - yymsp[-6].minor.yy184 = yylhsminor.yy184; +#line 2441 "src/parser_proc.c" + yy_destructor(yypParser,75,&yymsp[-4].minor); + yy_destructor(yypParser,77,&yymsp[-1].minor); + yymsp[-6].minor.yy64 = yylhsminor.yy64; break; case 50: /* decl_arg ::= VOID pointers NAME */ -#line 485 "src/parser_proc.y" +#line 491 "src/parser_proc.y" { - yylhsminor.yy184 = psi_decl_arg_init( + yylhsminor.yy64 = psi_decl_arg_init( psi_decl_type_init(yymsp[-2].minor.yy0->type, yymsp[-2].minor.yy0->text), - psi_decl_var_init(yymsp[0].minor.yy0->text, yymsp[-1].minor.yy202, 0) + psi_decl_var_init(yymsp[0].minor.yy0->text, yymsp[-1].minor.yy296, 0) ); - yylhsminor.yy184->type->token = yymsp[-2].minor.yy0; - yylhsminor.yy184->var->token = yymsp[0].minor.yy0; - yylhsminor.yy184->token = yymsp[0].minor.yy0; + yylhsminor.yy64->type->token = yymsp[-2].minor.yy0; + yylhsminor.yy64->var->token = yymsp[0].minor.yy0; + yylhsminor.yy64->token = yymsp[0].minor.yy0; } -#line 2408 "src/parser_proc.c" - yymsp[-2].minor.yy184 = yylhsminor.yy184; +#line 2457 "src/parser_proc.c" + yymsp[-2].minor.yy64 = yylhsminor.yy64; break; case 51: /* decl_arg ::= CONST VOID pointers NAME */ -{ yy_destructor(yypParser,74,&yymsp[-3].minor); -#line 494 "src/parser_proc.y" +{ yy_destructor(yypParser,84,&yymsp[-3].minor); +#line 500 "src/parser_proc.y" { - yymsp[-3].minor.yy184 = psi_decl_arg_init( + yymsp[-3].minor.yy64 = psi_decl_arg_init( psi_decl_type_init(yymsp[-2].minor.yy0->type, yymsp[-2].minor.yy0->text), - psi_decl_var_init(yymsp[0].minor.yy0->text, yymsp[-1].minor.yy202, 0) + psi_decl_var_init(yymsp[0].minor.yy0->text, yymsp[-1].minor.yy296, 0) ); - yymsp[-3].minor.yy184->type->token = yymsp[-2].minor.yy0; - yymsp[-3].minor.yy184->var->token = yymsp[0].minor.yy0; - yymsp[-3].minor.yy184->token = yymsp[0].minor.yy0; + yymsp[-3].minor.yy64->type->token = yymsp[-2].minor.yy0; + yymsp[-3].minor.yy64->var->token = yymsp[0].minor.yy0; + yymsp[-3].minor.yy64->token = yymsp[0].minor.yy0; } -#line 2423 "src/parser_proc.c" +#line 2472 "src/parser_proc.c" } break; case 52: /* decl_args ::= */ -#line 503 "src/parser_proc.y" +#line 509 "src/parser_proc.y" { - yymsp[1].minor.yy163 = NULL; + yymsp[1].minor.yy7 = NULL; } -#line 2431 "src/parser_proc.c" +#line 2480 "src/parser_proc.c" break; case 53: /* decl_args ::= VOID */ -{ yy_destructor(yypParser,49,&yymsp[0].minor); -#line 506 "src/parser_proc.y" +{ yy_destructor(yypParser,57,&yymsp[0].minor); +#line 512 "src/parser_proc.y" { - yymsp[0].minor.yy163 = NULL; + yymsp[0].minor.yy7 = NULL; } -#line 2439 "src/parser_proc.c" +#line 2488 "src/parser_proc.c" } break; case 54: /* decl_args ::= decl_arg */ case 56: /* struct_args ::= struct_arg */ yytestcase(yyruleno==56); -#line 509 "src/parser_proc.y" +#line 515 "src/parser_proc.y" { - yylhsminor.yy163 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), - &yymsp[0].minor.yy184); + yylhsminor.yy7 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free), + &yymsp[0].minor.yy64); } -#line 2449 "src/parser_proc.c" - yymsp[0].minor.yy163 = yylhsminor.yy163; +#line 2498 "src/parser_proc.c" + yymsp[0].minor.yy7 = yylhsminor.yy7; break; case 55: /* decl_args ::= decl_args COMMA decl_arg */ -#line 513 "src/parser_proc.y" +#line 519 "src/parser_proc.y" { - yylhsminor.yy163 = psi_plist_add(yymsp[-2].minor.yy163, &yymsp[0].minor.yy184); + yylhsminor.yy7 = psi_plist_add(yymsp[-2].minor.yy7, &yymsp[0].minor.yy64); } -#line 2457 "src/parser_proc.c" - yy_destructor(yypParser,66,&yymsp[-1].minor); - yymsp[-2].minor.yy163 = yylhsminor.yy163; +#line 2506 "src/parser_proc.c" + yy_destructor(yypParser,76,&yymsp[-1].minor); + yymsp[-2].minor.yy7 = yylhsminor.yy7; break; case 57: /* struct_args ::= struct_args struct_arg */ -#line 520 "src/parser_proc.y" +#line 526 "src/parser_proc.y" { - yylhsminor.yy163 = psi_plist_add(yymsp[-1].minor.yy163, &yymsp[0].minor.yy184); + yylhsminor.yy7 = psi_plist_add(yymsp[-1].minor.yy7, &yymsp[0].minor.yy64); } -#line 2466 "src/parser_proc.c" - yymsp[-1].minor.yy163 = yylhsminor.yy163; +#line 2515 "src/parser_proc.c" + yymsp[-1].minor.yy7 = yylhsminor.yy7; break; case 58: /* struct_arg ::= decl_typedef_body_ex EOS */ -#line 523 "src/parser_proc.y" +#line 529 "src/parser_proc.y" { - yylhsminor.yy184 = yymsp[-1].minor.yy184; - switch (yymsp[-1].minor.yy184->type->type) { + yylhsminor.yy64 = yymsp[-1].minor.yy64; + switch (yymsp[-1].minor.yy64->type->type) { case PSI_T_STRUCT: - if (yymsp[-1].minor.yy184->type->real.strct) { + if (yymsp[-1].minor.yy64->type->real.strct) { if (!P->structs) { P->structs = psi_plist_init((psi_plist_dtor) psi_decl_struct_free); } - P->structs = psi_plist_add(P->structs, &yymsp[-1].minor.yy184->type->real.strct); + P->structs = psi_plist_add(P->structs, &yymsp[-1].minor.yy64->type->real.strct); } break; case PSI_T_UNION: - if (yymsp[-1].minor.yy184->type->real.unn) { + if (yymsp[-1].minor.yy64->type->real.unn) { if (!P->unions) { P->unions = psi_plist_init((psi_plist_dtor) psi_decl_union_free); } - P->unions = psi_plist_add(P->unions, &yymsp[-1].minor.yy184->type->real.unn); + P->unions = psi_plist_add(P->unions, &yymsp[-1].minor.yy64->type->real.unn); } break; case PSI_T_ENUM: - if (yymsp[-1].minor.yy184->type->real.enm) { + if (yymsp[-1].minor.yy64->type->real.enm) { if (!P->enums) { P->enums = psi_plist_init((psi_plist_dtor) psi_decl_enum_free); } - P->enums = psi_plist_add(P->enums, &yymsp[-1].minor.yy184->type->real.enm); + P->enums = psi_plist_add(P->enums, &yymsp[-1].minor.yy64->type->real.enm); } break; } } -#line 2500 "src/parser_proc.c" - yy_destructor(yypParser,63,&yymsp[0].minor); - yymsp[-1].minor.yy184 = yylhsminor.yy184; +#line 2549 "src/parser_proc.c" + yy_destructor(yypParser,73,&yymsp[0].minor); + yymsp[-1].minor.yy64 = yylhsminor.yy64; break; case 59: /* struct_arg ::= decl_arg decl_layout EOS */ -#line 552 "src/parser_proc.y" +#line 558 "src/parser_proc.y" { - yymsp[-2].minor.yy184->layout = yymsp[-1].minor.yy141; - yylhsminor.yy184 = yymsp[-2].minor.yy184; + yymsp[-2].minor.yy64->layout = yymsp[-1].minor.yy221; + yylhsminor.yy64 = yymsp[-2].minor.yy64; } -#line 2510 "src/parser_proc.c" - yy_destructor(yypParser,63,&yymsp[0].minor); - yymsp[-2].minor.yy184 = yylhsminor.yy184; +#line 2559 "src/parser_proc.c" + yy_destructor(yypParser,73,&yymsp[0].minor); + yymsp[-2].minor.yy64 = yylhsminor.yy64; break; case 60: /* decl_layout ::= */ -#line 556 "src/parser_proc.y" +#line 562 "src/parser_proc.y" { - yymsp[1].minor.yy141 = NULL; + yymsp[1].minor.yy221 = NULL; } -#line 2519 "src/parser_proc.c" +#line 2568 "src/parser_proc.c" break; case 61: /* decl_layout ::= COLON COLON LPAREN NUMBER COMMA NUMBER RPAREN */ -{ yy_destructor(yypParser,64,&yymsp[-6].minor); -#line 559 "src/parser_proc.y" +{ yy_destructor(yypParser,74,&yymsp[-6].minor); +#line 565 "src/parser_proc.y" { - yymsp[-6].minor.yy141 = psi_layout_init(atol(yymsp[-3].minor.yy0->text), atol(yymsp[-1].minor.yy0->text)); + yymsp[-6].minor.yy221 = psi_layout_init(atol(yymsp[-3].minor.yy0->text), atol(yymsp[-1].minor.yy0->text)); free(yymsp[-3].minor.yy0); free(yymsp[-1].minor.yy0); } -#line 2529 "src/parser_proc.c" - yy_destructor(yypParser,64,&yymsp[-5].minor); - yy_destructor(yypParser,65,&yymsp[-4].minor); - yy_destructor(yypParser,66,&yymsp[-2].minor); - yy_destructor(yypParser,67,&yymsp[0].minor); +#line 2578 "src/parser_proc.c" + yy_destructor(yypParser,74,&yymsp[-5].minor); + yy_destructor(yypParser,75,&yymsp[-4].minor); + yy_destructor(yypParser,76,&yymsp[-2].minor); + yy_destructor(yypParser,77,&yymsp[0].minor); } break; case 63: /* decl_scalar_type ::= SHORT decl_scalar_type_short */ case 67: /* decl_scalar_type ::= LONG decl_scalar_type_long */ yytestcase(yyruleno==67); case 70: /* decl_scalar_type_long ::= LONG decl_scalar_type_long_long */ yytestcase(yyruleno==70); -#line 567 "src/parser_proc.y" +#line 573 "src/parser_proc.y" { if (yymsp[0].minor.yy0) { yylhsminor.yy0 = psi_token_cat(2, yymsp[-1].minor.yy0, yymsp[0].minor.yy0); @@ -2545,749 +2594,767 @@ static void yy_reduce( yylhsminor.yy0 = yymsp[-1].minor.yy0; } } -#line 2549 "src/parser_proc.c" +#line 2598 "src/parser_proc.c" yymsp[-1].minor.yy0 = yylhsminor.yy0; break; case 73: /* decl_type ::= UNSIGNED decl_scalar_type */ case 74: /* decl_type ::= SIGNED decl_scalar_type */ yytestcase(yyruleno==74); -#line 615 "src/parser_proc.y" +#line 621 "src/parser_proc.y" { struct psi_token *T = psi_token_cat(2, yymsp[-1].minor.yy0, yymsp[0].minor.yy0); - yylhsminor.yy132 = psi_decl_type_init(T->type, T->text); - yylhsminor.yy132->token = T; + yylhsminor.yy182 = psi_decl_type_init(T->type, T->text); + yylhsminor.yy182->token = T; free(yymsp[-1].minor.yy0); free(yymsp[0].minor.yy0); } -#line 2562 "src/parser_proc.c" - yymsp[-1].minor.yy132 = yylhsminor.yy132; +#line 2611 "src/parser_proc.c" + yymsp[-1].minor.yy182 = yylhsminor.yy182; break; case 75: /* decl_type ::= UNSIGNED */ case 76: /* decl_type ::= SIGNED */ yytestcase(yyruleno==76); -#line 629 "src/parser_proc.y" +#line 635 "src/parser_proc.y" { - yylhsminor.yy132 = psi_decl_type_init(PSI_T_NAME, yymsp[0].minor.yy0->text); - yylhsminor.yy132->token = yymsp[0].minor.yy0; + yylhsminor.yy182 = psi_decl_type_init(PSI_T_NAME, yymsp[0].minor.yy0->text); + yylhsminor.yy182->token = yymsp[0].minor.yy0; } -#line 2572 "src/parser_proc.c" - yymsp[0].minor.yy132 = yylhsminor.yy132; +#line 2621 "src/parser_proc.c" + yymsp[0].minor.yy182 = yylhsminor.yy182; break; case 77: /* decl_type ::= decl_scalar_type */ case 81: /* decl_type ::= FLOAT|DOUBLE|INT8|UINT8|INT16|UINT16|INT32|UINT32|INT64|UINT64|NAME */ yytestcase(yyruleno==81); -#line 637 "src/parser_proc.y" +#line 643 "src/parser_proc.y" { - yylhsminor.yy132 = psi_decl_type_init(yymsp[0].minor.yy0->type, yymsp[0].minor.yy0->text); - yylhsminor.yy132->token = yymsp[0].minor.yy0; + yylhsminor.yy182 = psi_decl_type_init(yymsp[0].minor.yy0->type, yymsp[0].minor.yy0->text); + yylhsminor.yy182->token = yymsp[0].minor.yy0; } -#line 2582 "src/parser_proc.c" - yymsp[0].minor.yy132 = yylhsminor.yy132; +#line 2631 "src/parser_proc.c" + yymsp[0].minor.yy182 = yylhsminor.yy182; break; case 78: /* decl_type ::= STRUCT NAME */ case 79: /* decl_type ::= UNION NAME */ yytestcase(yyruleno==79); case 80: /* decl_type ::= ENUM NAME */ yytestcase(yyruleno==80); -#line 641 "src/parser_proc.y" +#line 647 "src/parser_proc.y" { - yylhsminor.yy132 = psi_decl_type_init(yymsp[-1].minor.yy0->type, yymsp[0].minor.yy0->text); - yylhsminor.yy132->token = yymsp[0].minor.yy0; + yylhsminor.yy182 = psi_decl_type_init(yymsp[-1].minor.yy0->type, yymsp[0].minor.yy0->text); + yylhsminor.yy182->token = yymsp[0].minor.yy0; free(yymsp[-1].minor.yy0); } -#line 2594 "src/parser_proc.c" - yymsp[-1].minor.yy132 = yylhsminor.yy132; +#line 2643 "src/parser_proc.c" + yymsp[-1].minor.yy182 = yylhsminor.yy182; break; case 82: /* const_decl_type ::= decl_type */ -#line 660 "src/parser_proc.y" +#line 666 "src/parser_proc.y" { - yylhsminor.yy132 = yymsp[0].minor.yy132; + yylhsminor.yy182 = yymsp[0].minor.yy182; } -#line 2602 "src/parser_proc.c" - yymsp[0].minor.yy132 = yylhsminor.yy132; +#line 2651 "src/parser_proc.c" + yymsp[0].minor.yy182 = yylhsminor.yy182; break; case 83: /* const_decl_type ::= CONST decl_type */ -{ yy_destructor(yypParser,74,&yymsp[-1].minor); -#line 663 "src/parser_proc.y" +{ yy_destructor(yypParser,84,&yymsp[-1].minor); +#line 669 "src/parser_proc.y" { - yymsp[-1].minor.yy132 = yymsp[0].minor.yy132; + yymsp[-1].minor.yy182 = yymsp[0].minor.yy182; } -#line 2611 "src/parser_proc.c" +#line 2660 "src/parser_proc.c" } break; case 84: /* impl ::= impl_func LBRACE impl_stmts RBRACE */ -#line 666 "src/parser_proc.y" +#line 672 "src/parser_proc.y" { - yylhsminor.yy97 = psi_impl_init(yymsp[-3].minor.yy168, yymsp[-1].minor.yy163); + yylhsminor.yy303 = psi_impl_init(yymsp[-3].minor.yy226, yymsp[-1].minor.yy7); } -#line 2619 "src/parser_proc.c" - yy_destructor(yypParser,71,&yymsp[-2].minor); - yy_destructor(yypParser,72,&yymsp[0].minor); - yymsp[-3].minor.yy97 = yylhsminor.yy97; +#line 2668 "src/parser_proc.c" + yy_destructor(yypParser,81,&yymsp[-2].minor); + yy_destructor(yypParser,82,&yymsp[0].minor); + yymsp[-3].minor.yy303 = yylhsminor.yy303; break; case 85: /* impl ::= STATIC impl_func LBRACE impl_stmts RBRACE */ -{ yy_destructor(yypParser,84,&yymsp[-4].minor); -#line 669 "src/parser_proc.y" +{ yy_destructor(yypParser,94,&yymsp[-4].minor); +#line 675 "src/parser_proc.y" { - yymsp[-3].minor.yy168->static_memory = 1; - yymsp[-4].minor.yy97 = psi_impl_init(yymsp[-3].minor.yy168, yymsp[-1].minor.yy163); + yymsp[-3].minor.yy226->static_memory = 1; + yymsp[-4].minor.yy303 = psi_impl_init(yymsp[-3].minor.yy226, yymsp[-1].minor.yy7); } -#line 2631 "src/parser_proc.c" - yy_destructor(yypParser,71,&yymsp[-2].minor); - yy_destructor(yypParser,72,&yymsp[0].minor); +#line 2680 "src/parser_proc.c" + yy_destructor(yypParser,81,&yymsp[-2].minor); + yy_destructor(yypParser,82,&yymsp[0].minor); } break; case 86: /* impl_func ::= FUNCTION reference NSNAME LPAREN RPAREN COLON impl_type */ -{ yy_destructor(yypParser,85,&yymsp[-6].minor); -#line 673 "src/parser_proc.y" +{ yy_destructor(yypParser,95,&yymsp[-6].minor); +#line 679 "src/parser_proc.y" { - yymsp[-6].minor.yy168 = psi_impl_func_init(yymsp[-4].minor.yy0->text, NULL, yymsp[0].minor.yy138); - yymsp[-6].minor.yy168->token = yymsp[-4].minor.yy0; - yymsp[-6].minor.yy168->return_reference = yymsp[-5].minor.yy121; + yymsp[-6].minor.yy226 = psi_impl_func_init(yymsp[-4].minor.yy0->text, NULL, yymsp[0].minor.yy40); + yymsp[-6].minor.yy226->token = yymsp[-4].minor.yy0; + yymsp[-6].minor.yy226->return_reference = yymsp[-5].minor.yy247; } -#line 2644 "src/parser_proc.c" - yy_destructor(yypParser,65,&yymsp[-3].minor); - yy_destructor(yypParser,67,&yymsp[-2].minor); - yy_destructor(yypParser,64,&yymsp[-1].minor); +#line 2693 "src/parser_proc.c" + yy_destructor(yypParser,75,&yymsp[-3].minor); + yy_destructor(yypParser,77,&yymsp[-2].minor); + yy_destructor(yypParser,74,&yymsp[-1].minor); } break; case 87: /* impl_func ::= FUNCTION reference NSNAME LPAREN impl_args RPAREN COLON impl_type */ -{ yy_destructor(yypParser,85,&yymsp[-7].minor); -#line 678 "src/parser_proc.y" +{ yy_destructor(yypParser,95,&yymsp[-7].minor); +#line 684 "src/parser_proc.y" { - yymsp[-7].minor.yy168 = psi_impl_func_init(yymsp[-5].minor.yy0->text, yymsp[-3].minor.yy163, yymsp[0].minor.yy138); - yymsp[-7].minor.yy168->token = yymsp[-5].minor.yy0; - yymsp[-7].minor.yy168->return_reference = yymsp[-6].minor.yy121; + yymsp[-7].minor.yy226 = psi_impl_func_init(yymsp[-5].minor.yy0->text, yymsp[-3].minor.yy7, yymsp[0].minor.yy40); + yymsp[-7].minor.yy226->token = yymsp[-5].minor.yy0; + yymsp[-7].minor.yy226->return_reference = yymsp[-6].minor.yy247; } -#line 2658 "src/parser_proc.c" - yy_destructor(yypParser,65,&yymsp[-4].minor); - yy_destructor(yypParser,67,&yymsp[-2].minor); - yy_destructor(yypParser,64,&yymsp[-1].minor); +#line 2707 "src/parser_proc.c" + yy_destructor(yypParser,75,&yymsp[-4].minor); + yy_destructor(yypParser,77,&yymsp[-2].minor); + yy_destructor(yypParser,74,&yymsp[-1].minor); } break; case 88: /* impl_func ::= FUNCTION reference NSNAME LPAREN impl_args COMMA impl_type reference ELLIPSIS DOLLAR_NAME RPAREN COLON impl_type */ -{ yy_destructor(yypParser,85,&yymsp[-12].minor); -#line 683 "src/parser_proc.y" +{ yy_destructor(yypParser,95,&yymsp[-12].minor); +#line 689 "src/parser_proc.y" { - yymsp[-12].minor.yy168 = psi_impl_func_init(yymsp[-10].minor.yy0->text, yymsp[-8].minor.yy163, yymsp[0].minor.yy138); - yymsp[-12].minor.yy168->token = yymsp[-10].minor.yy0; - yymsp[-12].minor.yy168->return_reference = yymsp[-11].minor.yy121; - yymsp[-12].minor.yy168->vararg = psi_impl_arg_init(yymsp[-6].minor.yy138, psi_impl_var_init(yymsp[-3].minor.yy0->text, yymsp[-5].minor.yy121), NULL); + yymsp[-12].minor.yy226 = psi_impl_func_init(yymsp[-10].minor.yy0->text, yymsp[-8].minor.yy7, yymsp[0].minor.yy40); + yymsp[-12].minor.yy226->token = yymsp[-10].minor.yy0; + yymsp[-12].minor.yy226->return_reference = yymsp[-11].minor.yy247; + yymsp[-12].minor.yy226->vararg = psi_impl_arg_init(yymsp[-6].minor.yy40, psi_impl_var_init(yymsp[-3].minor.yy0->text, yymsp[-5].minor.yy247), NULL); free(yymsp[-3].minor.yy0); } -#line 2674 "src/parser_proc.c" - yy_destructor(yypParser,65,&yymsp[-9].minor); - yy_destructor(yypParser,66,&yymsp[-7].minor); - yy_destructor(yypParser,76,&yymsp[-4].minor); - yy_destructor(yypParser,67,&yymsp[-2].minor); - yy_destructor(yypParser,64,&yymsp[-1].minor); +#line 2723 "src/parser_proc.c" + yy_destructor(yypParser,75,&yymsp[-9].minor); + yy_destructor(yypParser,76,&yymsp[-7].minor); + yy_destructor(yypParser,86,&yymsp[-4].minor); + yy_destructor(yypParser,77,&yymsp[-2].minor); + yy_destructor(yypParser,74,&yymsp[-1].minor); } break; case 89: /* impl_def_val ::= NULL|NUMBER|TRUE|FALSE|QUOTED_STRING */ -#line 690 "src/parser_proc.y" +#line 696 "src/parser_proc.y" { - yylhsminor.yy93 = psi_impl_def_val_init(yymsp[0].minor.yy0->type, yymsp[0].minor.yy0->text); - yylhsminor.yy93->token = yymsp[0].minor.yy0; + yylhsminor.yy319 = psi_impl_def_val_init(yymsp[0].minor.yy0->type, yymsp[0].minor.yy0->text); + yylhsminor.yy319->token = yymsp[0].minor.yy0; } -#line 2688 "src/parser_proc.c" - yymsp[0].minor.yy93 = yylhsminor.yy93; +#line 2737 "src/parser_proc.c" + yymsp[0].minor.yy319 = yylhsminor.yy319; break; case 90: /* impl_var ::= reference DOLLAR_NAME */ -#line 694 "src/parser_proc.y" +#line 700 "src/parser_proc.y" { - yylhsminor.yy37 = psi_impl_var_init(yymsp[0].minor.yy0->text, yymsp[-1].minor.yy121); - yylhsminor.yy37->token = yymsp[0].minor.yy0; + yylhsminor.yy123 = psi_impl_var_init(yymsp[0].minor.yy0->text, yymsp[-1].minor.yy247); + yylhsminor.yy123->token = yymsp[0].minor.yy0; } -#line 2697 "src/parser_proc.c" - yymsp[-1].minor.yy37 = yylhsminor.yy37; +#line 2746 "src/parser_proc.c" + yymsp[-1].minor.yy123 = yylhsminor.yy123; break; case 91: /* impl_type ::= VOID|MIXED|BOOL|INT|FLOAT|STRING|ARRAY|OBJECT|CALLABLE */ -#line 698 "src/parser_proc.y" +#line 704 "src/parser_proc.y" { - yylhsminor.yy138 = psi_impl_type_init(yymsp[0].minor.yy0->type, yymsp[0].minor.yy0->text); + yylhsminor.yy40 = psi_impl_type_init(yymsp[0].minor.yy0->type, yymsp[0].minor.yy0->text); free(yymsp[0].minor.yy0); } -#line 2706 "src/parser_proc.c" - yymsp[0].minor.yy138 = yylhsminor.yy138; +#line 2755 "src/parser_proc.c" + yymsp[0].minor.yy40 = yylhsminor.yy40; break; case 92: /* impl_arg ::= impl_type impl_var */ -#line 702 "src/parser_proc.y" +#line 708 "src/parser_proc.y" { - yylhsminor.yy210 = psi_impl_arg_init(yymsp[-1].minor.yy138, yymsp[0].minor.yy37, NULL); + yylhsminor.yy56 = psi_impl_arg_init(yymsp[-1].minor.yy40, yymsp[0].minor.yy123, NULL); } -#line 2714 "src/parser_proc.c" - yymsp[-1].minor.yy210 = yylhsminor.yy210; +#line 2763 "src/parser_proc.c" + yymsp[-1].minor.yy56 = yylhsminor.yy56; break; case 93: /* impl_arg ::= impl_type impl_var EQUALS impl_def_val */ -#line 705 "src/parser_proc.y" +#line 711 "src/parser_proc.y" { - yylhsminor.yy210 = psi_impl_arg_init(yymsp[-3].minor.yy138, yymsp[-2].minor.yy37, yymsp[0].minor.yy93); + yylhsminor.yy56 = psi_impl_arg_init(yymsp[-3].minor.yy40, yymsp[-2].minor.yy123, yymsp[0].minor.yy319); } -#line 2722 "src/parser_proc.c" - yy_destructor(yypParser,73,&yymsp[-1].minor); - yymsp[-3].minor.yy210 = yylhsminor.yy210; +#line 2771 "src/parser_proc.c" + yy_destructor(yypParser,83,&yymsp[-1].minor); + yymsp[-3].minor.yy56 = yylhsminor.yy56; break; case 94: /* impl_args ::= impl_arg */ -#line 708 "src/parser_proc.y" +#line 714 "src/parser_proc.y" { - yylhsminor.yy163 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_impl_arg_free), - &yymsp[0].minor.yy210); + yylhsminor.yy7 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_impl_arg_free), + &yymsp[0].minor.yy56); } -#line 2732 "src/parser_proc.c" - yymsp[0].minor.yy163 = yylhsminor.yy163; +#line 2781 "src/parser_proc.c" + yymsp[0].minor.yy7 = yylhsminor.yy7; break; case 95: /* impl_args ::= impl_args COMMA impl_arg */ -#line 712 "src/parser_proc.y" +#line 718 "src/parser_proc.y" { - yylhsminor.yy163 = psi_plist_add(yymsp[-2].minor.yy163, &yymsp[0].minor.yy210); + yylhsminor.yy7 = psi_plist_add(yymsp[-2].minor.yy7, &yymsp[0].minor.yy56); } -#line 2740 "src/parser_proc.c" - yy_destructor(yypParser,66,&yymsp[-1].minor); - yymsp[-2].minor.yy163 = yylhsminor.yy163; +#line 2789 "src/parser_proc.c" + yy_destructor(yypParser,76,&yymsp[-1].minor); + yymsp[-2].minor.yy7 = yylhsminor.yy7; break; case 96: /* impl_stmts ::= impl_stmt */ -#line 715 "src/parser_proc.y" +#line 721 "src/parser_proc.y" { - yylhsminor.yy163 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_impl_stmt_free), - &yymsp[0].minor.yy78); + yylhsminor.yy7 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_impl_stmt_free), + &yymsp[0].minor.yy282); } -#line 2750 "src/parser_proc.c" - yymsp[0].minor.yy163 = yylhsminor.yy163; +#line 2799 "src/parser_proc.c" + yymsp[0].minor.yy7 = yylhsminor.yy7; break; case 97: /* impl_stmts ::= impl_stmts impl_stmt */ -#line 719 "src/parser_proc.y" +#line 725 "src/parser_proc.y" { - yylhsminor.yy163 = psi_plist_add(yymsp[-1].minor.yy163, &yymsp[0].minor.yy78); + yylhsminor.yy7 = psi_plist_add(yymsp[-1].minor.yy7, &yymsp[0].minor.yy282); } -#line 2758 "src/parser_proc.c" - yymsp[-1].minor.yy163 = yylhsminor.yy163; +#line 2807 "src/parser_proc.c" + yymsp[-1].minor.yy7 = yylhsminor.yy7; break; case 98: /* impl_stmt ::= return_stmt */ -#line 722 "src/parser_proc.y" +#line 728 "src/parser_proc.y" { - yylhsminor.yy78 = (struct psi_token**) yymsp[0].minor.yy90; + yylhsminor.yy282 = (struct psi_token**) yymsp[0].minor.yy258; } -#line 2766 "src/parser_proc.c" - yymsp[0].minor.yy78 = yylhsminor.yy78; +#line 2815 "src/parser_proc.c" + yymsp[0].minor.yy282 = yylhsminor.yy282; break; case 99: /* impl_stmt ::= let_stmt */ -#line 725 "src/parser_proc.y" +#line 731 "src/parser_proc.y" { - yylhsminor.yy78 = (struct psi_token**) yymsp[0].minor.yy311; + yylhsminor.yy282 = (struct psi_token**) yymsp[0].minor.yy138; } -#line 2774 "src/parser_proc.c" - yymsp[0].minor.yy78 = yylhsminor.yy78; +#line 2823 "src/parser_proc.c" + yymsp[0].minor.yy282 = yylhsminor.yy282; break; case 100: /* impl_stmt ::= set_stmt */ -#line 728 "src/parser_proc.y" +#line 734 "src/parser_proc.y" { - yylhsminor.yy78 = (struct psi_token**) yymsp[0].minor.yy98; + yylhsminor.yy282 = (struct psi_token**) yymsp[0].minor.yy300; } -#line 2782 "src/parser_proc.c" - yymsp[0].minor.yy78 = yylhsminor.yy78; +#line 2831 "src/parser_proc.c" + yymsp[0].minor.yy282 = yylhsminor.yy282; break; - case 101: /* impl_stmt ::= free_stmt */ -#line 731 "src/parser_proc.y" + case 101: /* impl_stmt ::= assert_stmt */ +#line 737 "src/parser_proc.y" { - yylhsminor.yy78 = (struct psi_token**) yymsp[0].minor.yy192; + yylhsminor.yy282 = (struct psi_token **) yymsp[0].minor.yy146; } -#line 2790 "src/parser_proc.c" - yymsp[0].minor.yy78 = yylhsminor.yy78; +#line 2839 "src/parser_proc.c" + yymsp[0].minor.yy282 = yylhsminor.yy282; break; - case 102: /* number ::= NUMBER|NSNAME */ -#line 734 "src/parser_proc.y" + case 102: /* impl_stmt ::= free_stmt */ +#line 740 "src/parser_proc.y" { - yylhsminor.yy188 = psi_number_init(yymsp[0].minor.yy0->type, yymsp[0].minor.yy0->text); - yylhsminor.yy188->token = yymsp[0].minor.yy0; + yylhsminor.yy282 = (struct psi_token**) yymsp[0].minor.yy102; } -#line 2799 "src/parser_proc.c" - yymsp[0].minor.yy188 = yylhsminor.yy188; +#line 2847 "src/parser_proc.c" + yymsp[0].minor.yy282 = yylhsminor.yy282; + break; + case 103: /* number ::= NUMBER|NSNAME */ +#line 743 "src/parser_proc.y" +{ + yylhsminor.yy66 = psi_number_init(yymsp[0].minor.yy0->type, yymsp[0].minor.yy0->text); + yylhsminor.yy66->token = yymsp[0].minor.yy0; +} +#line 2856 "src/parser_proc.c" + yymsp[0].minor.yy66 = yylhsminor.yy66; break; - case 103: /* number ::= decl_var */ -#line 738 "src/parser_proc.y" + case 104: /* number ::= decl_var */ +#line 747 "src/parser_proc.y" { - yylhsminor.yy188 = psi_number_init(PSI_T_NAME, yymsp[0].minor.yy11); - yylhsminor.yy188->token = psi_token_copy(yymsp[0].minor.yy11->token); + yylhsminor.yy66 = psi_number_init(PSI_T_NAME, yymsp[0].minor.yy131); + yylhsminor.yy66->token = psi_token_copy(yymsp[0].minor.yy131->token); } -#line 2808 "src/parser_proc.c" - yymsp[0].minor.yy188 = yylhsminor.yy188; +#line 2865 "src/parser_proc.c" + yymsp[0].minor.yy66 = yylhsminor.yy66; break; - case 104: /* num_exp ::= number */ -#line 742 "src/parser_proc.y" + case 105: /* num_exp ::= number */ +#line 751 "src/parser_proc.y" { - yylhsminor.yy259 = psi_num_exp_init_num(yymsp[0].minor.yy188); - yylhsminor.yy259->token = psi_token_copy(yymsp[0].minor.yy188->token); + yylhsminor.yy124 = psi_num_exp_init_num(yymsp[0].minor.yy66); + yylhsminor.yy124->token = psi_token_copy(yymsp[0].minor.yy66->token); } -#line 2817 "src/parser_proc.c" - yymsp[0].minor.yy259 = yylhsminor.yy259; +#line 2874 "src/parser_proc.c" + yymsp[0].minor.yy124 = yylhsminor.yy124; break; - case 105: /* num_exp ::= LPAREN num_exp RPAREN */ -#line 746 "src/parser_proc.y" + case 106: /* num_exp ::= LPAREN num_exp RPAREN */ +#line 755 "src/parser_proc.y" { - yylhsminor.yy259 = psi_num_exp_init_unary(PSI_T_LPAREN, yymsp[-1].minor.yy259); - yylhsminor.yy259->token = yymsp[-2].minor.yy0; + yylhsminor.yy124 = psi_num_exp_init_unary(PSI_T_LPAREN, yymsp[-1].minor.yy124); + yylhsminor.yy124->token = yymsp[-2].minor.yy0; } -#line 2826 "src/parser_proc.c" - yy_destructor(yypParser,67,&yymsp[0].minor); - yymsp[-2].minor.yy259 = yylhsminor.yy259; +#line 2883 "src/parser_proc.c" + yy_destructor(yypParser,77,&yymsp[0].minor); + yymsp[-2].minor.yy124 = yylhsminor.yy124; break; - case 106: /* num_exp ::= num_exp PIPE|CARET|AMPERSAND|LSHIFT|RSHIFT|PLUS|MINUS|ASTERISK|SLASH|MODULO num_exp */ -#line 750 "src/parser_proc.y" + case 107: /* num_exp ::= num_exp PIPE|CARET|AMPERSAND|LSHIFT|RSHIFT|PLUS|MINUS|ASTERISK|SLASH|MODULO|RCHEVR|LCHEVR|CMP_GE|CMP_LE|OR|AND|CMP_EQ|CMP_NE num_exp */ +#line 759 "src/parser_proc.y" { - yylhsminor.yy259 = psi_num_exp_init_binary(yymsp[-1].minor.yy0->type, yymsp[-2].minor.yy259, yymsp[0].minor.yy259); - yylhsminor.yy259->token = yymsp[-1].minor.yy0; + yylhsminor.yy124 = psi_num_exp_init_binary(yymsp[-1].minor.yy0->type, yymsp[-2].minor.yy124, yymsp[0].minor.yy124); + yylhsminor.yy124->token = yymsp[-1].minor.yy0; } -#line 2836 "src/parser_proc.c" - yymsp[-2].minor.yy259 = yylhsminor.yy259; +#line 2893 "src/parser_proc.c" + yymsp[-2].minor.yy124 = yylhsminor.yy124; break; - case 107: /* num_exp ::= TILDE|NOT|PLUS|MINUS num_exp */ -#line 754 "src/parser_proc.y" + case 108: /* num_exp ::= TILDE|NOT|PLUS|MINUS num_exp */ +#line 763 "src/parser_proc.y" { - yylhsminor.yy259 = psi_num_exp_init_unary(yymsp[-1].minor.yy0->type, yymsp[0].minor.yy259); - yylhsminor.yy259->token = yymsp[-1].minor.yy0; + yylhsminor.yy124 = psi_num_exp_init_unary(yymsp[-1].minor.yy0->type, yymsp[0].minor.yy124); + yylhsminor.yy124->token = yymsp[-1].minor.yy0; } -#line 2845 "src/parser_proc.c" - yymsp[-1].minor.yy259 = yylhsminor.yy259; +#line 2902 "src/parser_proc.c" + yymsp[-1].minor.yy124 = yylhsminor.yy124; break; - case 108: /* let_exp ::= NULL */ + case 109: /* let_exp ::= NULL */ { yy_destructor(yypParser,15,&yymsp[0].minor); -#line 758 "src/parser_proc.y" +#line 767 "src/parser_proc.y" { - yymsp[0].minor.yy20 = psi_let_exp_init(PSI_LET_NULL, NULL); + yymsp[0].minor.yy196 = psi_let_exp_init(PSI_LET_NULL, NULL); } -#line 2854 "src/parser_proc.c" +#line 2911 "src/parser_proc.c" } break; - case 109: /* let_exp ::= AMPERSAND NULL */ + case 110: /* let_exp ::= AMPERSAND NULL */ { yy_destructor(yypParser,23,&yymsp[-1].minor); -#line 761 "src/parser_proc.y" +#line 770 "src/parser_proc.y" { - yymsp[-1].minor.yy20 = psi_let_exp_init(PSI_LET_NULL, NULL); - yymsp[-1].minor.yy20->is_reference = 1; + yymsp[-1].minor.yy196 = psi_let_exp_init(PSI_LET_NULL, NULL); + yymsp[-1].minor.yy196->is_reference = 1; } -#line 2864 "src/parser_proc.c" +#line 2921 "src/parser_proc.c" yy_destructor(yypParser,15,&yymsp[0].minor); } break; - case 110: /* let_exp ::= let_callback */ -#line 765 "src/parser_proc.y" + case 111: /* let_exp ::= let_callback */ +#line 774 "src/parser_proc.y" { - yylhsminor.yy20 = psi_let_exp_init(PSI_LET_CALLBACK, yymsp[0].minor.yy220); + yylhsminor.yy196 = psi_let_exp_init(PSI_LET_CALLBACK, yymsp[0].minor.yy76); } -#line 2873 "src/parser_proc.c" - yymsp[0].minor.yy20 = yylhsminor.yy20; +#line 2930 "src/parser_proc.c" + yymsp[0].minor.yy196 = yylhsminor.yy196; break; - case 111: /* let_exp ::= let_calloc */ -#line 768 "src/parser_proc.y" + case 112: /* let_exp ::= let_calloc */ +#line 777 "src/parser_proc.y" { - yylhsminor.yy20 = psi_let_exp_init(PSI_LET_CALLOC, yymsp[0].minor.yy9); + yylhsminor.yy196 = psi_let_exp_init(PSI_LET_CALLOC, yymsp[0].minor.yy227); } -#line 2881 "src/parser_proc.c" - yymsp[0].minor.yy20 = yylhsminor.yy20; +#line 2938 "src/parser_proc.c" + yymsp[0].minor.yy196 = yylhsminor.yy196; break; - case 112: /* let_exp ::= AMPERSAND let_calloc */ + case 113: /* let_exp ::= AMPERSAND let_calloc */ { yy_destructor(yypParser,23,&yymsp[-1].minor); -#line 771 "src/parser_proc.y" +#line 780 "src/parser_proc.y" { - yymsp[-1].minor.yy20 = psi_let_exp_init(PSI_LET_CALLOC, yymsp[0].minor.yy9); - yymsp[-1].minor.yy20->is_reference = 1; + yymsp[-1].minor.yy196 = psi_let_exp_init(PSI_LET_CALLOC, yymsp[0].minor.yy227); + yymsp[-1].minor.yy196->is_reference = 1; } -#line 2891 "src/parser_proc.c" +#line 2948 "src/parser_proc.c" } break; - case 113: /* let_exp ::= let_func */ -#line 775 "src/parser_proc.y" + case 114: /* let_exp ::= let_func */ +#line 784 "src/parser_proc.y" { - yylhsminor.yy20 = psi_let_exp_init_ex(NULL, PSI_LET_FUNC, yymsp[0].minor.yy27); + yylhsminor.yy196 = psi_let_exp_init_ex(NULL, PSI_LET_FUNC, yymsp[0].minor.yy133); } -#line 2899 "src/parser_proc.c" - yymsp[0].minor.yy20 = yylhsminor.yy20; +#line 2956 "src/parser_proc.c" + yymsp[0].minor.yy196 = yylhsminor.yy196; break; - case 114: /* let_exp ::= AMPERSAND let_func */ + case 115: /* let_exp ::= AMPERSAND let_func */ { yy_destructor(yypParser,23,&yymsp[-1].minor); -#line 778 "src/parser_proc.y" +#line 787 "src/parser_proc.y" { - yymsp[-1].minor.yy20 = psi_let_exp_init_ex(NULL, PSI_LET_FUNC, yymsp[0].minor.yy27); - yymsp[-1].minor.yy20->is_reference = 1; + yymsp[-1].minor.yy196 = psi_let_exp_init_ex(NULL, PSI_LET_FUNC, yymsp[0].minor.yy133); + yymsp[-1].minor.yy196->is_reference = 1; } -#line 2909 "src/parser_proc.c" +#line 2966 "src/parser_proc.c" } break; - case 115: /* let_exp ::= num_exp */ -#line 782 "src/parser_proc.y" + case 116: /* let_exp ::= num_exp */ +#line 791 "src/parser_proc.y" { - yylhsminor.yy20 = psi_let_exp_init_ex(NULL, PSI_LET_NUMEXP, yymsp[0].minor.yy259); + yylhsminor.yy196 = psi_let_exp_init_ex(NULL, PSI_LET_NUMEXP, yymsp[0].minor.yy124); } -#line 2917 "src/parser_proc.c" - yymsp[0].minor.yy20 = yylhsminor.yy20; +#line 2974 "src/parser_proc.c" + yymsp[0].minor.yy196 = yylhsminor.yy196; break; - case 116: /* let_exp ::= AMPERSAND num_exp */ + case 117: /* let_exp ::= AMPERSAND num_exp */ { yy_destructor(yypParser,23,&yymsp[-1].minor); -#line 785 "src/parser_proc.y" +#line 794 "src/parser_proc.y" { - yymsp[-1].minor.yy20 = psi_let_exp_init_ex(NULL, PSI_LET_NUMEXP, yymsp[0].minor.yy259); - yymsp[-1].minor.yy20->is_reference = 1; + yymsp[-1].minor.yy196 = psi_let_exp_init_ex(NULL, PSI_LET_NUMEXP, yymsp[0].minor.yy124); + yymsp[-1].minor.yy196->is_reference = 1; } -#line 2927 "src/parser_proc.c" +#line 2984 "src/parser_proc.c" } break; - case 117: /* let_exp ::= decl_var EQUALS let_exp */ -#line 789 "src/parser_proc.y" + case 118: /* let_exp ::= decl_var EQUALS let_exp */ +#line 798 "src/parser_proc.y" { - yylhsminor.yy20 = yymsp[0].minor.yy20; - yylhsminor.yy20->var = yymsp[-2].minor.yy11; + yylhsminor.yy196 = yymsp[0].minor.yy196; + yylhsminor.yy196->var = yymsp[-2].minor.yy131; } -#line 2936 "src/parser_proc.c" - yy_destructor(yypParser,73,&yymsp[-1].minor); - yymsp[-2].minor.yy20 = yylhsminor.yy20; +#line 2993 "src/parser_proc.c" + yy_destructor(yypParser,83,&yymsp[-1].minor); + yymsp[-2].minor.yy196 = yylhsminor.yy196; break; - case 118: /* let_stmt ::= LET let_exp EOS */ -#line 793 "src/parser_proc.y" + case 119: /* let_stmt ::= LET let_exp EOS */ +#line 802 "src/parser_proc.y" { - yylhsminor.yy311 = psi_let_stmt_init(yymsp[-1].minor.yy20); - yylhsminor.yy311->token = yymsp[-2].minor.yy0; + yylhsminor.yy138 = psi_let_stmt_init(yymsp[-1].minor.yy196); + yylhsminor.yy138->token = yymsp[-2].minor.yy0; } -#line 2946 "src/parser_proc.c" - yy_destructor(yypParser,63,&yymsp[0].minor); - yymsp[-2].minor.yy311 = yylhsminor.yy311; +#line 3003 "src/parser_proc.c" + yy_destructor(yypParser,73,&yymsp[0].minor); + yymsp[-2].minor.yy138 = yylhsminor.yy138; break; - case 119: /* let_stmt ::= TEMP decl_var EQUALS reference decl_var EOS */ -#line 797 "src/parser_proc.y" + case 120: /* let_stmt ::= TEMP decl_var EQUALS reference decl_var EOS */ +#line 806 "src/parser_proc.y" { - yylhsminor.yy311 = psi_let_stmt_init(psi_let_exp_init_ex(yymsp[-4].minor.yy11, PSI_LET_TMP, yymsp[-1].minor.yy11)); - yylhsminor.yy311->token = yymsp[-5].minor.yy0; - yylhsminor.yy311->exp->is_reference = yymsp[-2].minor.yy121 ? 1 : 0; + yylhsminor.yy138 = psi_let_stmt_init(psi_let_exp_init_ex(yymsp[-4].minor.yy131, PSI_LET_TMP, yymsp[-1].minor.yy131)); + yylhsminor.yy138->token = yymsp[-5].minor.yy0; + yylhsminor.yy138->exp->is_reference = yymsp[-2].minor.yy247 ? 1 : 0; } -#line 2957 "src/parser_proc.c" - yy_destructor(yypParser,73,&yymsp[-3].minor); - yy_destructor(yypParser,63,&yymsp[0].minor); - yymsp[-5].minor.yy311 = yylhsminor.yy311; +#line 3014 "src/parser_proc.c" + yy_destructor(yypParser,83,&yymsp[-3].minor); + yy_destructor(yypParser,73,&yymsp[0].minor); + yymsp[-5].minor.yy138 = yylhsminor.yy138; break; - case 120: /* let_callback ::= CALLBACK callback_rval LPAREN impl_var LPAREN callback_arg_list RPAREN RPAREN */ -#line 802 "src/parser_proc.y" + case 121: /* let_callback ::= CALLBACK callback_rval LPAREN impl_var LPAREN callback_arg_list RPAREN RPAREN */ +#line 811 "src/parser_proc.y" { - yylhsminor.yy220 = psi_let_callback_init(psi_let_func_init(yymsp[-6].minor.yy0->type, yymsp[-6].minor.yy0->text, yymsp[-4].minor.yy37), yymsp[-2].minor.yy43); - yylhsminor.yy220->token = yymsp[-7].minor.yy0; + yylhsminor.yy76 = psi_let_callback_init(psi_let_func_init(yymsp[-6].minor.yy0->type, yymsp[-6].minor.yy0->text, yymsp[-4].minor.yy123), yymsp[-2].minor.yy304); + yylhsminor.yy76->token = yymsp[-7].minor.yy0; free(yymsp[-6].minor.yy0); } -#line 2969 "src/parser_proc.c" - yy_destructor(yypParser,65,&yymsp[-5].minor); - yy_destructor(yypParser,65,&yymsp[-3].minor); - yy_destructor(yypParser,67,&yymsp[-1].minor); - yy_destructor(yypParser,67,&yymsp[0].minor); - yymsp[-7].minor.yy220 = yylhsminor.yy220; +#line 3026 "src/parser_proc.c" + yy_destructor(yypParser,75,&yymsp[-5].minor); + yy_destructor(yypParser,75,&yymsp[-3].minor); + yy_destructor(yypParser,77,&yymsp[-1].minor); + yy_destructor(yypParser,77,&yymsp[0].minor); + yymsp[-7].minor.yy76 = yylhsminor.yy76; break; - case 121: /* let_calloc ::= CALLOC LPAREN num_exp COMMA num_exp RPAREN */ -#line 807 "src/parser_proc.y" + case 122: /* let_calloc ::= CALLOC LPAREN num_exp COMMA num_exp RPAREN */ +#line 816 "src/parser_proc.y" { - yylhsminor.yy9 = psi_let_calloc_init(yymsp[-3].minor.yy259, yymsp[-1].minor.yy259); - yylhsminor.yy9->token = yymsp[-5].minor.yy0; + yylhsminor.yy227 = psi_let_calloc_init(yymsp[-3].minor.yy124, yymsp[-1].minor.yy124); + yylhsminor.yy227->token = yymsp[-5].minor.yy0; } -#line 2982 "src/parser_proc.c" - yy_destructor(yypParser,65,&yymsp[-4].minor); - yy_destructor(yypParser,66,&yymsp[-2].minor); - yy_destructor(yypParser,67,&yymsp[0].minor); - yymsp[-5].minor.yy9 = yylhsminor.yy9; +#line 3039 "src/parser_proc.c" + yy_destructor(yypParser,75,&yymsp[-4].minor); + yy_destructor(yypParser,76,&yymsp[-2].minor); + yy_destructor(yypParser,77,&yymsp[0].minor); + yymsp[-5].minor.yy227 = yylhsminor.yy227; break; - case 122: /* let_func ::= ZVAL|OBJVAL|ARRVAL|PATHVAL|STRLEN|STRVAL|FLOATVAL|INTVAL|BOOLVAL|COUNT LPAREN impl_var RPAREN */ -#line 811 "src/parser_proc.y" + case 123: /* let_func ::= ZVAL|OBJVAL|ARRVAL|PATHVAL|STRLEN|STRVAL|FLOATVAL|INTVAL|BOOLVAL|COUNT LPAREN impl_var RPAREN */ +#line 820 "src/parser_proc.y" { - yylhsminor.yy27 = psi_let_func_init(yymsp[-3].minor.yy0->type, yymsp[-3].minor.yy0->text, yymsp[-1].minor.yy37); - yylhsminor.yy27->token = yymsp[-3].minor.yy0; + yylhsminor.yy133 = psi_let_func_init(yymsp[-3].minor.yy0->type, yymsp[-3].minor.yy0->text, yymsp[-1].minor.yy123); + yylhsminor.yy133->token = yymsp[-3].minor.yy0; } -#line 2994 "src/parser_proc.c" - yy_destructor(yypParser,65,&yymsp[-2].minor); - yy_destructor(yypParser,67,&yymsp[0].minor); - yymsp[-3].minor.yy27 = yylhsminor.yy27; +#line 3051 "src/parser_proc.c" + yy_destructor(yypParser,75,&yymsp[-2].minor); + yy_destructor(yypParser,77,&yymsp[0].minor); + yymsp[-3].minor.yy133 = yylhsminor.yy133; break; - case 123: /* let_func ::= ZVAL|OBJVAL|ARRVAL|PATHVAL|STRLEN|STRVAL|FLOATVAL|INTVAL|BOOLVAL|COUNT LPAREN impl_var COMMA let_exps RPAREN */ -#line 815 "src/parser_proc.y" + case 124: /* let_func ::= ZVAL|OBJVAL|ARRVAL|PATHVAL|STRLEN|STRVAL|FLOATVAL|INTVAL|BOOLVAL|COUNT LPAREN impl_var COMMA let_exps RPAREN */ +#line 824 "src/parser_proc.y" { - yylhsminor.yy27 = psi_let_func_init(yymsp[-5].minor.yy0->type, yymsp[-5].minor.yy0->text, yymsp[-3].minor.yy37); - yylhsminor.yy27->token = yymsp[-5].minor.yy0; - yylhsminor.yy27->inner = yymsp[-1].minor.yy163; + yylhsminor.yy133 = psi_let_func_init(yymsp[-5].minor.yy0->type, yymsp[-5].minor.yy0->text, yymsp[-3].minor.yy123); + yylhsminor.yy133->token = yymsp[-5].minor.yy0; + yylhsminor.yy133->inner = yymsp[-1].minor.yy7; } -#line 3006 "src/parser_proc.c" - yy_destructor(yypParser,65,&yymsp[-4].minor); - yy_destructor(yypParser,66,&yymsp[-2].minor); - yy_destructor(yypParser,67,&yymsp[0].minor); - yymsp[-5].minor.yy27 = yylhsminor.yy27; +#line 3063 "src/parser_proc.c" + yy_destructor(yypParser,75,&yymsp[-4].minor); + yy_destructor(yypParser,76,&yymsp[-2].minor); + yy_destructor(yypParser,77,&yymsp[0].minor); + yymsp[-5].minor.yy133 = yylhsminor.yy133; break; - case 124: /* let_exps ::= let_exp */ -#line 820 "src/parser_proc.y" + case 125: /* let_exps ::= let_exp */ +#line 829 "src/parser_proc.y" { - yylhsminor.yy163 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_let_exp_free), - &yymsp[0].minor.yy20); + yylhsminor.yy7 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_let_exp_free), + &yymsp[0].minor.yy196); } -#line 3018 "src/parser_proc.c" - yymsp[0].minor.yy163 = yylhsminor.yy163; +#line 3075 "src/parser_proc.c" + yymsp[0].minor.yy7 = yylhsminor.yy7; break; - case 125: /* let_exps ::= let_exps COMMA let_exp */ -#line 824 "src/parser_proc.y" + case 126: /* let_exps ::= let_exps COMMA let_exp */ +#line 833 "src/parser_proc.y" { - yylhsminor.yy163 = psi_plist_add(yymsp[-2].minor.yy163, &yymsp[0].minor.yy20); + yylhsminor.yy7 = psi_plist_add(yymsp[-2].minor.yy7, &yymsp[0].minor.yy196); } -#line 3026 "src/parser_proc.c" - yy_destructor(yypParser,66,&yymsp[-1].minor); - yymsp[-2].minor.yy163 = yylhsminor.yy163; +#line 3083 "src/parser_proc.c" + yy_destructor(yypParser,76,&yymsp[-1].minor); + yymsp[-2].minor.yy7 = yylhsminor.yy7; break; - case 126: /* callback_arg_list ::= */ -#line 827 "src/parser_proc.y" + case 127: /* callback_arg_list ::= */ +#line 836 "src/parser_proc.y" { - yymsp[1].minor.yy43 = NULL; + yymsp[1].minor.yy304 = NULL; } -#line 3035 "src/parser_proc.c" +#line 3092 "src/parser_proc.c" break; - case 127: /* callback_arg_list ::= callback_args */ -#line 830 "src/parser_proc.y" + case 128: /* callback_arg_list ::= callback_args */ +#line 839 "src/parser_proc.y" { - yylhsminor.yy43 = yymsp[0].minor.yy43; + yylhsminor.yy304 = yymsp[0].minor.yy304; } -#line 3042 "src/parser_proc.c" - yymsp[0].minor.yy43 = yylhsminor.yy43; +#line 3099 "src/parser_proc.c" + yymsp[0].minor.yy304 = yylhsminor.yy304; break; - case 128: /* callback_args ::= set_exp */ -#line 833 "src/parser_proc.y" + case 129: /* callback_args ::= set_exp */ +#line 842 "src/parser_proc.y" { - yylhsminor.yy43 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_set_exp_free), - &yymsp[0].minor.yy147); + yylhsminor.yy304 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_set_exp_free), + &yymsp[0].minor.yy113); } -#line 3051 "src/parser_proc.c" - yymsp[0].minor.yy43 = yylhsminor.yy43; +#line 3108 "src/parser_proc.c" + yymsp[0].minor.yy304 = yylhsminor.yy304; break; - case 129: /* callback_args ::= callback_args COMMA set_exp */ -#line 837 "src/parser_proc.y" + case 130: /* callback_args ::= callback_args COMMA set_exp */ +#line 846 "src/parser_proc.y" { - yylhsminor.yy43 = psi_plist_add(yymsp[-2].minor.yy43, &yymsp[0].minor.yy147); + yylhsminor.yy304 = psi_plist_add(yymsp[-2].minor.yy304, &yymsp[0].minor.yy113); } -#line 3059 "src/parser_proc.c" - yy_destructor(yypParser,66,&yymsp[-1].minor); - yymsp[-2].minor.yy43 = yylhsminor.yy43; +#line 3116 "src/parser_proc.c" + yy_destructor(yypParser,76,&yymsp[-1].minor); + yymsp[-2].minor.yy304 = yylhsminor.yy304; break; - case 132: /* set_func ::= TO_OBJECT|TO_ARRAY|TO_STRING|TO_INT|TO_FLOAT|TO_BOOL|ZVAL|VOID LPAREN decl_var RPAREN */ -#line 846 "src/parser_proc.y" + case 133: /* set_func ::= TO_OBJECT|TO_ARRAY|TO_STRING|TO_INT|TO_FLOAT|TO_BOOL|ZVAL|VOID LPAREN decl_var RPAREN */ +#line 855 "src/parser_proc.y" { - yylhsminor.yy26 = psi_set_func_init(yymsp[-3].minor.yy0->type, yymsp[-3].minor.yy0->text, yymsp[-1].minor.yy11); - yylhsminor.yy26->token = yymsp[-3].minor.yy0; + yylhsminor.yy324 = psi_set_func_init(yymsp[-3].minor.yy0->type, yymsp[-3].minor.yy0->text, yymsp[-1].minor.yy131); + yylhsminor.yy324->token = yymsp[-3].minor.yy0; } -#line 3069 "src/parser_proc.c" - yy_destructor(yypParser,65,&yymsp[-2].minor); - yy_destructor(yypParser,67,&yymsp[0].minor); - yymsp[-3].minor.yy26 = yylhsminor.yy26; +#line 3126 "src/parser_proc.c" + yy_destructor(yypParser,75,&yymsp[-2].minor); + yy_destructor(yypParser,77,&yymsp[0].minor); + yymsp[-3].minor.yy324 = yylhsminor.yy324; break; - case 133: /* set_func ::= TO_OBJECT|TO_ARRAY|TO_STRING|TO_INT|TO_FLOAT|TO_BOOL|ZVAL|VOID LPAREN decl_var COMMA set_exps RPAREN */ -#line 850 "src/parser_proc.y" + case 134: /* set_func ::= TO_OBJECT|TO_ARRAY|TO_STRING|TO_INT|TO_FLOAT|TO_BOOL|ZVAL|VOID LPAREN decl_var COMMA set_exps RPAREN */ +#line 859 "src/parser_proc.y" { - yylhsminor.yy26 = psi_set_func_init(yymsp[-5].minor.yy0->type, yymsp[-5].minor.yy0->text, yymsp[-3].minor.yy11); - yylhsminor.yy26->token = yymsp[-5].minor.yy0; - yylhsminor.yy26->inner = yymsp[-1].minor.yy163; + yylhsminor.yy324 = psi_set_func_init(yymsp[-5].minor.yy0->type, yymsp[-5].minor.yy0->text, yymsp[-3].minor.yy131); + yylhsminor.yy324->token = yymsp[-5].minor.yy0; + yylhsminor.yy324->inner = yymsp[-1].minor.yy7; } -#line 3081 "src/parser_proc.c" - yy_destructor(yypParser,65,&yymsp[-4].minor); - yy_destructor(yypParser,66,&yymsp[-2].minor); - yy_destructor(yypParser,67,&yymsp[0].minor); - yymsp[-5].minor.yy26 = yylhsminor.yy26; +#line 3138 "src/parser_proc.c" + yy_destructor(yypParser,75,&yymsp[-4].minor); + yy_destructor(yypParser,76,&yymsp[-2].minor); + yy_destructor(yypParser,77,&yymsp[0].minor); + yymsp[-5].minor.yy324 = yylhsminor.yy324; break; - case 134: /* set_func ::= TO_OBJECT|TO_ARRAY|TO_STRING|TO_INT|TO_FLOAT|TO_BOOL|ZVAL|VOID LPAREN decl_var COMMA ELLIPSIS RPAREN */ -#line 855 "src/parser_proc.y" + case 135: /* set_func ::= TO_OBJECT|TO_ARRAY|TO_STRING|TO_INT|TO_FLOAT|TO_BOOL|ZVAL|VOID LPAREN decl_var COMMA ELLIPSIS RPAREN */ +#line 864 "src/parser_proc.y" { - yylhsminor.yy26 = psi_set_func_init(yymsp[-5].minor.yy0->type, yymsp[-5].minor.yy0->text, yymsp[-3].minor.yy11); - yylhsminor.yy26->token = yymsp[-5].minor.yy0; - yylhsminor.yy26->recursive = 1; + yylhsminor.yy324 = psi_set_func_init(yymsp[-5].minor.yy0->type, yymsp[-5].minor.yy0->text, yymsp[-3].minor.yy131); + yylhsminor.yy324->token = yymsp[-5].minor.yy0; + yylhsminor.yy324->recursive = 1; } -#line 3094 "src/parser_proc.c" - yy_destructor(yypParser,65,&yymsp[-4].minor); - yy_destructor(yypParser,66,&yymsp[-2].minor); - yy_destructor(yypParser,76,&yymsp[-1].minor); - yy_destructor(yypParser,67,&yymsp[0].minor); - yymsp[-5].minor.yy26 = yylhsminor.yy26; +#line 3151 "src/parser_proc.c" + yy_destructor(yypParser,75,&yymsp[-4].minor); + yy_destructor(yypParser,76,&yymsp[-2].minor); + yy_destructor(yypParser,86,&yymsp[-1].minor); + yy_destructor(yypParser,77,&yymsp[0].minor); + yymsp[-5].minor.yy324 = yylhsminor.yy324; break; - case 135: /* set_exp ::= set_func */ -#line 860 "src/parser_proc.y" + case 136: /* set_exp ::= set_func */ +#line 869 "src/parser_proc.y" { - yylhsminor.yy147 = psi_set_exp_init(PSI_SET_FUNC, yymsp[0].minor.yy26); + yylhsminor.yy113 = psi_set_exp_init(PSI_SET_FUNC, yymsp[0].minor.yy324); } -#line 3106 "src/parser_proc.c" - yymsp[0].minor.yy147 = yylhsminor.yy147; +#line 3163 "src/parser_proc.c" + yymsp[0].minor.yy113 = yylhsminor.yy113; break; - case 136: /* set_exp ::= num_exp */ -#line 863 "src/parser_proc.y" + case 137: /* set_exp ::= num_exp */ +#line 872 "src/parser_proc.y" { - yylhsminor.yy147 = psi_set_exp_init(PSI_SET_NUMEXP, yymsp[0].minor.yy259); + yylhsminor.yy113 = psi_set_exp_init(PSI_SET_NUMEXP, yymsp[0].minor.yy124); } -#line 3114 "src/parser_proc.c" - yymsp[0].minor.yy147 = yylhsminor.yy147; +#line 3171 "src/parser_proc.c" + yymsp[0].minor.yy113 = yylhsminor.yy113; break; - case 137: /* set_exps ::= set_exp */ -#line 866 "src/parser_proc.y" + case 138: /* set_exps ::= set_exp */ +#line 875 "src/parser_proc.y" { - yylhsminor.yy163 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_set_exp_free), - &yymsp[0].minor.yy147); + yylhsminor.yy7 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_set_exp_free), + &yymsp[0].minor.yy113); } -#line 3123 "src/parser_proc.c" - yymsp[0].minor.yy163 = yylhsminor.yy163; +#line 3180 "src/parser_proc.c" + yymsp[0].minor.yy7 = yylhsminor.yy7; break; - case 138: /* set_exps ::= set_exps COMMA set_exp */ -#line 870 "src/parser_proc.y" + case 139: /* set_exps ::= set_exps COMMA set_exp */ +#line 879 "src/parser_proc.y" { - yylhsminor.yy163 = psi_plist_add(yymsp[-2].minor.yy163, &yymsp[0].minor.yy147); + yylhsminor.yy7 = psi_plist_add(yymsp[-2].minor.yy7, &yymsp[0].minor.yy113); } -#line 3131 "src/parser_proc.c" - yy_destructor(yypParser,66,&yymsp[-1].minor); - yymsp[-2].minor.yy163 = yylhsminor.yy163; +#line 3188 "src/parser_proc.c" + yy_destructor(yypParser,76,&yymsp[-1].minor); + yymsp[-2].minor.yy7 = yylhsminor.yy7; break; - case 139: /* set_exp ::= impl_var EQUALS set_exp */ -#line 873 "src/parser_proc.y" + case 140: /* set_exp ::= impl_var EQUALS set_exp */ +#line 882 "src/parser_proc.y" { - yylhsminor.yy147 = yymsp[0].minor.yy147; - yylhsminor.yy147->var = yymsp[-2].minor.yy37; + yylhsminor.yy113 = yymsp[0].minor.yy113; + yylhsminor.yy113->var = yymsp[-2].minor.yy123; } -#line 3141 "src/parser_proc.c" - yy_destructor(yypParser,73,&yymsp[-1].minor); - yymsp[-2].minor.yy147 = yylhsminor.yy147; +#line 3198 "src/parser_proc.c" + yy_destructor(yypParser,83,&yymsp[-1].minor); + yymsp[-2].minor.yy113 = yylhsminor.yy113; break; - case 140: /* set_stmt ::= SET set_exp EOS */ -#line 877 "src/parser_proc.y" + case 141: /* set_stmt ::= SET set_exp EOS */ +#line 886 "src/parser_proc.y" { - yylhsminor.yy98 = psi_set_stmt_init(yymsp[-1].minor.yy147); - yylhsminor.yy98->token = yymsp[-2].minor.yy0; + yylhsminor.yy300 = psi_set_stmt_init(yymsp[-1].minor.yy113); + yylhsminor.yy300->token = yymsp[-2].minor.yy0; } -#line 3151 "src/parser_proc.c" - yy_destructor(yypParser,63,&yymsp[0].minor); - yymsp[-2].minor.yy98 = yylhsminor.yy98; +#line 3208 "src/parser_proc.c" + yy_destructor(yypParser,73,&yymsp[0].minor); + yymsp[-2].minor.yy300 = yylhsminor.yy300; break; - case 141: /* return_stmt ::= RETURN set_func EOS */ -#line 881 "src/parser_proc.y" + case 142: /* return_stmt ::= RETURN set_func EOS */ +#line 890 "src/parser_proc.y" { - yylhsminor.yy90 = psi_return_stmt_init(psi_set_exp_init(PSI_SET_FUNC, yymsp[-1].minor.yy26)); - yylhsminor.yy90->token = yymsp[-2].minor.yy0; + yylhsminor.yy258 = psi_return_stmt_init(psi_set_exp_init(PSI_SET_FUNC, yymsp[-1].minor.yy324)); + yylhsminor.yy258->token = yymsp[-2].minor.yy0; } -#line 3161 "src/parser_proc.c" - yy_destructor(yypParser,63,&yymsp[0].minor); - yymsp[-2].minor.yy90 = yylhsminor.yy90; +#line 3218 "src/parser_proc.c" + yy_destructor(yypParser,73,&yymsp[0].minor); + yymsp[-2].minor.yy258 = yylhsminor.yy258; break; - case 142: /* free_stmt ::= FREE free_exps EOS */ -#line 885 "src/parser_proc.y" + case 143: /* free_stmt ::= FREE free_exps EOS */ +#line 894 "src/parser_proc.y" { - yylhsminor.yy192 = psi_free_stmt_init(yymsp[-1].minor.yy163); - yylhsminor.yy192->token = yymsp[-2].minor.yy0; + yylhsminor.yy102 = psi_free_stmt_init(yymsp[-1].minor.yy7); + yylhsminor.yy102->token = yymsp[-2].minor.yy0; } -#line 3171 "src/parser_proc.c" - yy_destructor(yypParser,63,&yymsp[0].minor); - yymsp[-2].minor.yy192 = yylhsminor.yy192; +#line 3228 "src/parser_proc.c" + yy_destructor(yypParser,73,&yymsp[0].minor); + yymsp[-2].minor.yy102 = yylhsminor.yy102; + break; + case 144: /* free_exps ::= free_exp */ +#line 898 "src/parser_proc.y" +{ + yylhsminor.yy7 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_free_exp_free), + &yymsp[0].minor.yy114); +} +#line 3238 "src/parser_proc.c" + yymsp[0].minor.yy7 = yylhsminor.yy7; break; - case 143: /* free_exps ::= free_exp */ -#line 889 "src/parser_proc.y" + case 145: /* free_exps ::= free_exps COMMA free_exp */ +#line 902 "src/parser_proc.y" { - yylhsminor.yy163 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_free_exp_free), - &yymsp[0].minor.yy94); + yylhsminor.yy7 = psi_plist_add(yymsp[-2].minor.yy7, &yymsp[0].minor.yy114); } -#line 3181 "src/parser_proc.c" - yymsp[0].minor.yy163 = yylhsminor.yy163; +#line 3246 "src/parser_proc.c" + yy_destructor(yypParser,76,&yymsp[-1].minor); + yymsp[-2].minor.yy7 = yylhsminor.yy7; break; - case 144: /* free_exps ::= free_exps COMMA free_exp */ -#line 893 "src/parser_proc.y" + case 146: /* free_exp ::= NAME LPAREN decl_vars RPAREN */ +#line 905 "src/parser_proc.y" { - yylhsminor.yy163 = psi_plist_add(yymsp[-2].minor.yy163, &yymsp[0].minor.yy94); + yylhsminor.yy114 = psi_free_exp_init(yymsp[-3].minor.yy0->text, yymsp[-1].minor.yy7); + yylhsminor.yy114->token = yymsp[-3].minor.yy0; } -#line 3189 "src/parser_proc.c" - yy_destructor(yypParser,66,&yymsp[-1].minor); - yymsp[-2].minor.yy163 = yylhsminor.yy163; +#line 3256 "src/parser_proc.c" + yy_destructor(yypParser,75,&yymsp[-2].minor); + yy_destructor(yypParser,77,&yymsp[0].minor); + yymsp[-3].minor.yy114 = yylhsminor.yy114; break; - case 145: /* free_exp ::= NAME LPAREN decl_vars RPAREN */ -#line 896 "src/parser_proc.y" + case 147: /* assert_stmt ::= PRE_ASSERT|POST_ASSERT num_exp EOS */ +#line 909 "src/parser_proc.y" { - yylhsminor.yy94 = psi_free_exp_init(yymsp[-3].minor.yy0->text, yymsp[-1].minor.yy163); - yylhsminor.yy94->token = yymsp[-3].minor.yy0; + yylhsminor.yy146 = psi_assert_stmt_init(yymsp[-2].minor.yy0->type, yymsp[-1].minor.yy124); + yylhsminor.yy146->token = yymsp[-2].minor.yy0; } -#line 3199 "src/parser_proc.c" - yy_destructor(yypParser,65,&yymsp[-2].minor); - yy_destructor(yypParser,67,&yymsp[0].minor); - yymsp[-3].minor.yy94 = yylhsminor.yy94; +#line 3267 "src/parser_proc.c" + yy_destructor(yypParser,73,&yymsp[0].minor); + yymsp[-2].minor.yy146 = yylhsminor.yy146; break; - case 146: /* reference ::= */ -#line 900 "src/parser_proc.y" + case 148: /* reference ::= */ +#line 913 "src/parser_proc.y" { - yymsp[1].minor.yy121 = false; + yymsp[1].minor.yy247 = false; } -#line 3209 "src/parser_proc.c" +#line 3276 "src/parser_proc.c" break; - case 147: /* reference ::= AMPERSAND */ + case 149: /* reference ::= AMPERSAND */ { yy_destructor(yypParser,23,&yymsp[0].minor); -#line 903 "src/parser_proc.y" +#line 916 "src/parser_proc.y" { - yymsp[0].minor.yy121 = true; + yymsp[0].minor.yy247 = true; } -#line 3217 "src/parser_proc.c" +#line 3284 "src/parser_proc.c" } break; - case 148: /* indirection ::= */ -#line 906 "src/parser_proc.y" + case 150: /* indirection ::= */ +#line 919 "src/parser_proc.y" { - yymsp[1].minor.yy202 = 0; + yymsp[1].minor.yy296 = 0; } -#line 3225 "src/parser_proc.c" +#line 3292 "src/parser_proc.c" break; - case 149: /* indirection ::= pointers */ -#line 909 "src/parser_proc.y" + case 151: /* indirection ::= pointers */ +#line 922 "src/parser_proc.y" { - yylhsminor.yy202 = yymsp[0].minor.yy202; + yylhsminor.yy296 = yymsp[0].minor.yy296; } -#line 3232 "src/parser_proc.c" - yymsp[0].minor.yy202 = yylhsminor.yy202; +#line 3299 "src/parser_proc.c" + yymsp[0].minor.yy296 = yylhsminor.yy296; break; - case 150: /* pointers ::= ASTERISK */ + case 152: /* pointers ::= ASTERISK */ { yy_destructor(yypParser,28,&yymsp[0].minor); -#line 912 "src/parser_proc.y" +#line 925 "src/parser_proc.y" { - yymsp[0].minor.yy202 = 1; + yymsp[0].minor.yy296 = 1; } -#line 3241 "src/parser_proc.c" +#line 3308 "src/parser_proc.c" } break; - case 151: /* pointers ::= pointers ASTERISK */ -#line 915 "src/parser_proc.y" + case 153: /* pointers ::= pointers ASTERISK */ +#line 928 "src/parser_proc.y" { - yylhsminor.yy202 = yymsp[-1].minor.yy202+1; + yylhsminor.yy296 = yymsp[-1].minor.yy296+1; } -#line 3249 "src/parser_proc.c" +#line 3316 "src/parser_proc.c" yy_destructor(yypParser,28,&yymsp[0].minor); - yymsp[-1].minor.yy202 = yylhsminor.yy202; + yymsp[-1].minor.yy296 = yylhsminor.yy296; break; - case 152: /* file ::= blocks */ -{ yy_destructor(yypParser,146,&yymsp[0].minor); -#line 169 "src/parser_proc.y" + case 154: /* file ::= blocks */ +{ yy_destructor(yypParser,157,&yymsp[0].minor); +#line 175 "src/parser_proc.y" { } -#line 3258 "src/parser_proc.c" +#line 3325 "src/parser_proc.c" } break; - case 153: /* blocks ::= block */ -{ yy_destructor(yypParser,147,&yymsp[0].minor); -#line 170 "src/parser_proc.y" + case 155: /* blocks ::= block */ +{ yy_destructor(yypParser,158,&yymsp[0].minor); +#line 176 "src/parser_proc.y" { } -#line 3266 "src/parser_proc.c" +#line 3333 "src/parser_proc.c" } break; - case 154: /* blocks ::= blocks block */ -{ yy_destructor(yypParser,146,&yymsp[-1].minor); -#line 171 "src/parser_proc.y" + case 156: /* blocks ::= blocks block */ +{ yy_destructor(yypParser,157,&yymsp[-1].minor); +#line 177 "src/parser_proc.y" { } -#line 3274 "src/parser_proc.c" - yy_destructor(yypParser,147,&yymsp[0].minor); +#line 3341 "src/parser_proc.c" + yy_destructor(yypParser,158,&yymsp[0].minor); } break; - case 155: /* block ::= EOF */ -{ yy_destructor(yypParser,62,&yymsp[0].minor); -#line 172 "src/parser_proc.y" + case 157: /* block ::= EOF */ +{ yy_destructor(yypParser,72,&yymsp[0].minor); +#line 178 "src/parser_proc.y" { } -#line 3283 "src/parser_proc.c" +#line 3350 "src/parser_proc.c" } break; - case 156: /* block ::= EOS */ -{ yy_destructor(yypParser,63,&yymsp[0].minor); -#line 173 "src/parser_proc.y" + case 158: /* block ::= EOS */ +{ yy_destructor(yypParser,73,&yymsp[0].minor); +#line 179 "src/parser_proc.y" { } -#line 3291 "src/parser_proc.c" +#line 3358 "src/parser_proc.c" } break; default: @@ -3349,7 +3416,7 @@ static void yy_syntax_error( /************ Begin %syntax_error code ****************************************/ #line 40 "src/parser_proc.y" ++P->errors; if (TOKEN && TOKEN->type != PSI_T_EOF) { psi_error(PSI_WARNING, TOKEN->file, TOKEN->line, "PSI syntax error: Unexpected token '%s' at pos %u", TOKEN->text, TOKEN->col); } else { psi_error(PSI_WARNING, P->file.fn, P->line, "PSI syntax error: Unexpected end of input"); } -#line 3353 "src/parser_proc.c" +#line 3420 "src/parser_proc.c" /************ End %syntax_error code ******************************************/ ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ }