#endif
/************* Begin control #defines *****************************************/
#define YYCODETYPE unsigned char
-#define YYNOCODE 170
+#define YYNOCODE 193
#define YYACTIONTYPE unsigned short int
+#define YYWILDCARD 74
#define ParseTOKENTYPE struct psi_token *
typedef union {
int yyinit;
ParseTOKENTYPE yy0;
- 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;
+ struct psi_decl_union* yy15;
+ struct psi_decl_abi* yy26;
+ struct psi_impl_arg* yy34;
+ struct psi_const* yy38;
+ struct psi_let_calloc* yy45;
+ struct psi_impl* yy49;
+ struct psi_impl_func* yy56;
+ struct psi_number* yy57;
+ struct psi_let_func* yy67;
+ bool yy89;
+ struct psi_let_callback* yy120;
+ struct psi_cpp_macro_decl* yy134;
+ struct psi_impl_def_val* yy145;
+ struct psi_free_exp* yy146;
+ struct psi_decl_enum_item* yy169;
+ struct psi_decl_type* yy172;
+ struct psi_plist* yy179;
+ struct psi_set_exp* yy180;
+ struct psi_let_exp* yy200;
+ struct psi_assert_stmt* yy201;
+ struct psi_num_exp* yy207;
+ struct psi_free_stmt* yy220;
+ struct psi_token** yy238;
+ struct psi_layout yy239;
+ struct psi_plist * yy243;
+ struct psi_impl_type* yy246;
+ struct psi_decl_var* yy271;
+ struct psi_cpp_exp* yy274;
+ struct psi_decl* yy303;
+ struct psi_let_stmt* yy319;
+ struct psi_decl_arg* yy320;
+ struct psi_decl_enum * yy323;
+ struct psi_decl_struct* yy324;
+ struct psi_return_stmt* yy342;
+ struct psi_const_type* yy351;
+ struct psi_set_stmt* yy358;
+ struct psi_set_func* yy362;
+ struct psi_layout* yy369;
+ struct psi_impl_var* yy370;
+ unsigned yy382;
} YYMINORTYPE;
#ifndef YYSTACKDEPTH
#define YYSTACKDEPTH 100
#define ParseARG_FETCH struct psi_parser *P = yypParser->P
#define ParseARG_STORE yypParser->P = P
#define YYFALLBACK 1
-#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
+#define YYNSTATE 233
+#define YYNRULE 191
+#define YY_MAX_SHIFT 232
+#define YY_MIN_SHIFTREDUCE 385
+#define YY_MAX_SHIFTREDUCE 575
+#define YY_MIN_REDUCE 576
+#define YY_MAX_REDUCE 766
+#define YY_ERROR_ACTION 767
+#define YY_ACCEPT_ACTION 768
+#define YY_NO_ACTION 769
/************* End control #defines *******************************************/
/* Define the yytestcase() macro to be a no-op if is not already defined
** yy_default[] Default action for each state.
**
*********** Begin parsing tables **********************************************/
-#define YY_ACTTAB_COUNT (1029)
+#define YY_ACTTAB_COUNT (1132)
static const YYACTIONTYPE yy_action[] = {
- /* 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,
+ /* 0 */ 482, 497, 520, 497, 497, 497, 497, 497, 497, 497,
+ /* 10 */ 497, 497, 497, 104, 525, 519, 189, 136, 565, 519,
+ /* 20 */ 521, 114, 17, 529, 531, 28, 28, 568, 25, 25,
+ /* 30 */ 510, 127, 42, 52, 11, 10, 70, 104, 28, 28,
+ /* 40 */ 173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
+ /* 50 */ 142, 568, 25, 25, 50, 94, 42, 52, 11, 10,
+ /* 60 */ 70, 568, 511, 501, 505, 505, 505, 505, 505, 438,
+ /* 70 */ 174, 59, 30, 30, 30, 30, 30, 30, 30, 30,
+ /* 80 */ 30, 30, 30, 30, 30, 29, 51, 30, 30, 171,
+ /* 90 */ 2, 101, 100, 99, 499, 436, 158, 37, 401, 401,
+ /* 100 */ 584, 585, 478, 92, 77, 75, 74, 482, 497, 226,
+ /* 110 */ 497, 497, 497, 497, 497, 497, 497, 497, 497, 497,
+ /* 120 */ 120, 104, 526, 519, 144, 504, 166, 519, 441, 441,
+ /* 130 */ 441, 441, 559, 28, 28, 568, 166, 166, 166, 166,
+ /* 140 */ 166, 166, 166, 218, 493, 81, 28, 28, 173, 173,
+ /* 150 */ 173, 173, 173, 173, 173, 173, 173, 173, 392, 146,
+ /* 160 */ 485, 78, 94, 437, 440, 482, 497, 464, 497, 497,
+ /* 170 */ 497, 497, 497, 497, 497, 497, 497, 497, 174, 68,
+ /* 180 */ 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
+ /* 190 */ 68, 68, 482, 29, 68, 68, 232, 471, 204, 206,
+ /* 200 */ 205, 503, 498, 46, 37, 513, 178, 502, 515, 478,
+ /* 210 */ 92, 77, 75, 74, 183, 135, 517, 516, 462, 128,
+ /* 220 */ 44, 514, 518, 482, 497, 463, 497, 497, 497, 497,
+ /* 230 */ 497, 497, 497, 497, 497, 497, 467, 423, 457, 180,
+ /* 240 */ 129, 560, 421, 453, 422, 149, 420, 419, 498, 46,
+ /* 250 */ 569, 417, 493, 21, 470, 134, 101, 100, 99, 498,
+ /* 260 */ 46, 91, 36, 418, 176, 161, 142, 478, 92, 77,
+ /* 270 */ 75, 74, 118, 142, 437, 439, 149, 119, 94, 172,
+ /* 280 */ 121, 482, 497, 162, 497, 497, 497, 497, 497, 497,
+ /* 290 */ 497, 497, 497, 497, 478, 92, 77, 221, 493, 573,
+ /* 300 */ 574, 575, 60, 768, 3, 3, 132, 219, 56, 493,
+ /* 310 */ 126, 112, 152, 142, 101, 100, 99, 106, 215, 195,
+ /* 320 */ 37, 454, 506, 73, 1, 478, 92, 77, 75, 74,
+ /* 330 */ 170, 142, 124, 80, 79, 568, 87, 182, 186, 482,
+ /* 340 */ 497, 207, 497, 497, 497, 497, 497, 497, 497, 497,
+ /* 350 */ 497, 497, 447, 191, 142, 104, 88, 519, 18, 512,
+ /* 360 */ 190, 519, 515, 122, 172, 498, 35, 28, 28, 568,
+ /* 370 */ 517, 516, 204, 206, 205, 514, 518, 520, 37, 105,
+ /* 380 */ 28, 28, 133, 478, 92, 77, 75, 74, 431, 464,
+ /* 390 */ 445, 444, 185, 186, 76, 521, 108, 482, 497, 207,
+ /* 400 */ 497, 497, 497, 497, 497, 497, 497, 497, 497, 497,
+ /* 410 */ 203, 219, 98, 96, 103, 493, 172, 402, 90, 591,
+ /* 420 */ 4, 472, 509, 498, 46, 142, 466, 29, 569, 520,
+ /* 430 */ 204, 206, 205, 188, 186, 520, 37, 142, 142, 142,
+ /* 440 */ 569, 478, 92, 77, 75, 74, 159, 521, 109, 143,
+ /* 450 */ 432, 192, 94, 521, 110, 482, 497, 207, 497, 497,
+ /* 460 */ 497, 497, 497, 497, 497, 497, 497, 497, 203, 219,
+ /* 470 */ 98, 96, 194, 493, 153, 38, 90, 142, 520, 473,
+ /* 480 */ 490, 498, 46, 142, 562, 40, 175, 489, 204, 206,
+ /* 490 */ 205, 540, 8, 402, 37, 586, 521, 116, 139, 478,
+ /* 500 */ 92, 77, 75, 74, 521, 115, 483, 528, 530, 148,
+ /* 510 */ 85, 527, 542, 482, 497, 79, 497, 497, 497, 497,
+ /* 520 */ 497, 497, 497, 497, 497, 497, 142, 219, 98, 96,
+ /* 530 */ 156, 493, 550, 13, 142, 408, 547, 547, 547, 547,
+ /* 540 */ 547, 547, 547, 547, 547, 547, 204, 206, 205, 549,
+ /* 550 */ 7, 520, 548, 467, 520, 539, 6, 478, 92, 77,
+ /* 560 */ 75, 74, 157, 520, 179, 23, 165, 569, 93, 521,
+ /* 570 */ 111, 22, 521, 113, 470, 137, 561, 169, 167, 498,
+ /* 580 */ 46, 521, 123, 104, 545, 519, 552, 448, 24, 519,
+ /* 590 */ 412, 65, 565, 41, 520, 28, 28, 568, 465, 142,
+ /* 600 */ 172, 456, 142, 125, 204, 206, 205, 224, 28, 28,
+ /* 610 */ 166, 142, 521, 117, 455, 478, 92, 77, 75, 74,
+ /* 620 */ 166, 166, 166, 166, 166, 166, 166, 396, 225, 493,
+ /* 630 */ 616, 104, 449, 519, 616, 19, 512, 519, 214, 515,
+ /* 640 */ 565, 45, 142, 28, 28, 568, 201, 517, 516, 202,
+ /* 650 */ 488, 486, 514, 518, 481, 29, 28, 28, 166, 479,
+ /* 660 */ 175, 138, 2, 47, 95, 48, 430, 97, 166, 166,
+ /* 670 */ 166, 166, 166, 166, 166, 231, 231, 140, 521, 115,
+ /* 680 */ 755, 528, 530, 141, 429, 527, 541, 130, 208, 428,
+ /* 690 */ 230, 229, 389, 390, 228, 227, 49, 423, 217, 425,
+ /* 700 */ 69, 64, 421, 29, 422, 461, 420, 419, 142, 460,
+ /* 710 */ 433, 417, 398, 21, 147, 61, 71, 150, 164, 151,
+ /* 720 */ 62, 63, 32, 418, 176, 30, 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,
+ /* 740 */ 30, 30, 30, 507, 507, 507, 507, 30, 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,
+ /* 760 */ 30, 30, 30, 30, 30, 572, 155, 219, 15, 25,
+ /* 770 */ 25, 558, 34, 42, 52, 11, 10, 70, 557, 563,
+ /* 780 */ 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ /* 790 */ 30, 30, 30, 30, 30, 30, 30, 30, 536, 507,
+ /* 800 */ 507, 507, 507, 507, 500, 535, 82, 551, 12, 14,
+ /* 810 */ 43, 506, 537, 538, 30, 30, 30, 30, 30, 30,
+ /* 820 */ 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ /* 830 */ 30, 30, 168, 5, 53, 54, 27, 9, 452, 16,
+ /* 840 */ 177, 451, 20, 181, 83, 84, 55, 26, 68, 68,
+ /* 850 */ 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
+ /* 860 */ 68, 68, 68, 68, 68, 68, 184, 520, 569, 104,
+ /* 870 */ 86, 519, 187, 57, 644, 519, 443, 442, 565, 165,
+ /* 880 */ 522, 28, 28, 568, 72, 521, 113, 193, 89, 196,
+ /* 890 */ 477, 198, 197, 199, 28, 28, 166, 554, 131, 552,
+ /* 900 */ 200, 475, 496, 474, 495, 494, 166, 166, 166, 166,
+ /* 910 */ 166, 166, 166, 172, 405, 142, 30, 30, 30, 30,
+ /* 920 */ 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ /* 930 */ 30, 30, 30, 30, 507, 507, 507, 507, 446, 616,
+ /* 940 */ 427, 29, 68, 68, 68, 68, 68, 68, 68, 68,
+ /* 950 */ 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
+ /* 960 */ 761, 209, 211, 212, 210, 102, 459, 31, 216, 416,
+ /* 970 */ 222, 213, 410, 220, 457, 39, 410, 58, 223, 175,
+ /* 980 */ 409, 399, 66, 66, 107, 33, 391, 388, 387, 386,
+ /* 990 */ 507, 507, 507, 507, 507, 66, 66, 521, 115, 385,
+ /* 1000 */ 528, 530, 578, 578, 527, 534, 578, 578, 578, 578,
+ /* 1010 */ 578, 578, 578, 578, 578, 578, 578, 578, 578, 578,
+ /* 1020 */ 154, 578, 578, 578, 578, 578, 578, 142, 578, 578,
+ /* 1030 */ 578, 578, 578, 221, 578, 573, 574, 575, 60, 578,
+ /* 1040 */ 578, 578, 67, 578, 520, 578, 175, 145, 578, 578,
+ /* 1050 */ 578, 578, 578, 106, 215, 195, 165, 578, 578, 73,
+ /* 1060 */ 1, 520, 521, 113, 521, 115, 520, 528, 530, 80,
+ /* 1070 */ 79, 527, 163, 165, 160, 578, 552, 578, 165, 521,
+ /* 1080 */ 113, 578, 578, 520, 521, 113, 578, 578, 578, 578,
+ /* 1090 */ 172, 556, 142, 552, 142, 165, 555, 578, 552, 578,
+ /* 1100 */ 578, 521, 113, 578, 578, 578, 578, 172, 578, 142,
+ /* 1110 */ 578, 578, 172, 546, 142, 552, 578, 578, 578, 578,
+ /* 1120 */ 578, 578, 578, 578, 578, 578, 578, 578, 578, 172,
+ /* 1130 */ 578, 142,
};
static const YYCODETYPE yy_lookahead[] = {
- /* 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,
+ /* 0 */ 2, 3, 130, 5, 6, 7, 8, 9, 10, 11,
+ /* 10 */ 12, 13, 14, 14, 15, 16, 177, 178, 23, 20,
+ /* 20 */ 148, 149, 23, 151, 152, 26, 27, 28, 62, 63,
+ /* 30 */ 143, 144, 66, 67, 68, 69, 70, 14, 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,
+ /* 50 */ 178, 28, 62, 63, 167, 57, 66, 67, 68, 69,
+ /* 60 */ 70, 28, 143, 97, 15, 16, 17, 18, 19, 75,
+ /* 70 */ 71, 72, 22, 23, 24, 25, 26, 27, 28, 29,
+ /* 80 */ 30, 31, 32, 33, 34, 86, 167, 37, 38, 191,
+ /* 90 */ 96, 93, 94, 95, 137, 97, 14, 99, 74, 74,
+ /* 100 */ 76, 76, 104, 105, 106, 107, 108, 2, 3, 85,
+ /* 110 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ /* 120 */ 171, 14, 15, 16, 175, 167, 41, 20, 1, 2,
+ /* 130 */ 3, 4, 75, 26, 27, 28, 51, 52, 53, 54,
+ /* 140 */ 55, 56, 57, 14, 187, 88, 39, 40, 41, 42,
+ /* 150 */ 43, 44, 45, 46, 47, 48, 49, 50, 169, 170,
+ /* 160 */ 5, 172, 57, 116, 117, 2, 3, 130, 5, 6,
+ /* 170 */ 7, 8, 9, 10, 11, 12, 13, 14, 71, 22,
+ /* 180 */ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ /* 190 */ 33, 34, 2, 86, 37, 38, 168, 132, 93, 94,
+ /* 200 */ 95, 167, 137, 138, 99, 147, 101, 167, 150, 104,
+ /* 210 */ 105, 106, 107, 108, 177, 178, 158, 159, 130, 131,
+ /* 220 */ 57, 163, 164, 2, 3, 130, 5, 6, 7, 8,
+ /* 230 */ 9, 10, 11, 12, 13, 14, 14, 113, 14, 128,
+ /* 240 */ 165, 166, 118, 132, 120, 142, 122, 123, 137, 138,
+ /* 250 */ 28, 127, 187, 129, 132, 133, 93, 94, 95, 137,
+ /* 260 */ 138, 106, 99, 139, 140, 130, 178, 104, 105, 106,
+ /* 270 */ 107, 108, 171, 178, 116, 117, 142, 171, 57, 176,
+ /* 280 */ 171, 2, 3, 130, 5, 6, 7, 8, 9, 10,
+ /* 290 */ 11, 12, 13, 14, 104, 105, 106, 73, 187, 75,
+ /* 300 */ 76, 77, 78, 179, 180, 181, 130, 183, 86, 187,
+ /* 310 */ 176, 171, 101, 178, 93, 94, 95, 93, 94, 95,
+ /* 320 */ 99, 14, 111, 99, 100, 104, 105, 106, 107, 108,
+ /* 330 */ 142, 178, 171, 109, 110, 28, 57, 177, 178, 2,
+ /* 340 */ 3, 113, 5, 6, 7, 8, 9, 10, 11, 12,
+ /* 350 */ 13, 14, 124, 125, 178, 14, 128, 16, 146, 147,
+ /* 360 */ 132, 20, 150, 171, 176, 137, 138, 26, 27, 28,
+ /* 370 */ 158, 159, 93, 94, 95, 163, 164, 130, 99, 88,
+ /* 380 */ 39, 40, 142, 104, 105, 106, 107, 108, 97, 130,
+ /* 390 */ 130, 130, 177, 178, 57, 148, 149, 2, 3, 113,
+ /* 400 */ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ /* 410 */ 124, 183, 184, 185, 14, 187, 176, 74, 132, 76,
+ /* 420 */ 134, 135, 141, 137, 138, 178, 14, 86, 28, 130,
+ /* 430 */ 93, 94, 95, 177, 178, 130, 99, 178, 178, 178,
+ /* 440 */ 28, 104, 105, 106, 107, 108, 162, 148, 149, 114,
+ /* 450 */ 115, 141, 57, 148, 149, 2, 3, 113, 5, 6,
+ /* 460 */ 7, 8, 9, 10, 11, 12, 13, 14, 124, 183,
+ /* 470 */ 184, 185, 121, 187, 87, 88, 132, 178, 130, 135,
+ /* 480 */ 187, 137, 138, 178, 87, 88, 130, 187, 93, 94,
+ /* 490 */ 95, 87, 88, 74, 99, 76, 148, 149, 178, 104,
+ /* 500 */ 105, 106, 107, 108, 148, 149, 189, 151, 152, 170,
+ /* 510 */ 57, 155, 156, 2, 3, 110, 5, 6, 7, 8,
+ /* 520 */ 9, 10, 11, 12, 13, 14, 178, 183, 184, 185,
+ /* 530 */ 176, 187, 87, 88, 178, 14, 41, 42, 43, 44,
+ /* 540 */ 45, 46, 47, 48, 49, 50, 93, 94, 95, 87,
+ /* 550 */ 88, 130, 57, 14, 130, 87, 88, 104, 105, 106,
+ /* 560 */ 107, 108, 140, 130, 87, 88, 142, 28, 57, 148,
+ /* 570 */ 149, 86, 148, 149, 132, 133, 166, 153, 154, 137,
+ /* 580 */ 138, 148, 149, 14, 160, 16, 162, 87, 88, 20,
+ /* 590 */ 87, 88, 23, 176, 130, 26, 27, 28, 126, 178,
+ /* 600 */ 176, 126, 178, 178, 93, 94, 95, 86, 39, 40,
+ /* 610 */ 41, 178, 148, 149, 126, 104, 105, 106, 107, 108,
+ /* 620 */ 51, 52, 53, 54, 55, 56, 57, 87, 88, 187,
+ /* 630 */ 92, 14, 126, 16, 96, 146, 147, 20, 92, 150,
+ /* 640 */ 23, 119, 178, 26, 27, 28, 92, 158, 159, 136,
+ /* 650 */ 2, 190, 163, 164, 2, 86, 39, 40, 41, 188,
+ /* 660 */ 130, 178, 96, 116, 119, 116, 182, 119, 51, 52,
+ /* 670 */ 53, 54, 55, 56, 57, 64, 65, 14, 148, 149,
+ /* 680 */ 111, 151, 152, 14, 182, 155, 156, 157, 14, 182,
+ /* 690 */ 79, 80, 81, 82, 83, 84, 119, 113, 102, 14,
+ /* 700 */ 89, 90, 118, 86, 120, 186, 122, 123, 178, 186,
+ /* 710 */ 115, 127, 14, 129, 173, 92, 98, 87, 101, 111,
+ /* 720 */ 92, 92, 86, 139, 140, 21, 22, 23, 24, 25,
+ /* 730 */ 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ /* 740 */ 36, 37, 38, 1, 2, 3, 4, 21, 22, 23,
+ /* 750 */ 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
+ /* 760 */ 34, 35, 36, 37, 38, 181, 20, 183, 96, 62,
+ /* 770 */ 63, 75, 86, 66, 67, 68, 69, 70, 75, 75,
+ /* 780 */ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ /* 790 */ 31, 32, 33, 34, 35, 36, 37, 38, 75, 57,
+ /* 800 */ 58, 59, 60, 61, 97, 75, 98, 87, 98, 88,
+ /* 810 */ 86, 111, 87, 87, 21, 22, 23, 24, 25, 26,
+ /* 820 */ 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ /* 830 */ 37, 38, 87, 86, 86, 86, 86, 98, 75, 96,
+ /* 840 */ 87, 75, 86, 14, 87, 87, 86, 88, 21, 22,
+ /* 850 */ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ /* 860 */ 33, 34, 35, 36, 37, 38, 14, 130, 28, 14,
+ /* 870 */ 87, 16, 14, 86, 86, 20, 75, 75, 23, 142,
+ /* 880 */ 87, 26, 27, 28, 98, 148, 149, 20, 14, 16,
+ /* 890 */ 87, 16, 88, 86, 39, 40, 41, 160, 161, 162,
+ /* 900 */ 92, 75, 14, 75, 14, 14, 51, 52, 53, 54,
+ /* 910 */ 55, 56, 57, 176, 87, 178, 21, 22, 23, 24,
+ /* 920 */ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ /* 930 */ 35, 36, 37, 38, 1, 2, 3, 4, 14, 96,
+ /* 940 */ 87, 86, 21, 22, 23, 24, 25, 26, 27, 28,
+ /* 950 */ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
+ /* 960 */ 0, 16, 16, 86, 88, 14, 103, 98, 16, 75,
+ /* 970 */ 14, 92, 16, 19, 14, 86, 20, 96, 14, 130,
+ /* 980 */ 87, 14, 26, 27, 86, 14, 14, 14, 14, 19,
+ /* 990 */ 57, 58, 59, 60, 61, 39, 40, 148, 149, 76,
+ /* 1000 */ 151, 152, 192, 192, 155, 156, 192, 192, 192, 192,
+ /* 1010 */ 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
+ /* 1020 */ 87, 192, 192, 192, 192, 192, 192, 178, 192, 192,
+ /* 1030 */ 192, 192, 192, 73, 192, 75, 76, 77, 78, 192,
+ /* 1040 */ 192, 192, 86, 192, 130, 192, 130, 91, 192, 192,
+ /* 1050 */ 192, 192, 192, 93, 94, 95, 142, 192, 192, 99,
+ /* 1060 */ 100, 130, 148, 149, 148, 149, 130, 151, 152, 109,
+ /* 1070 */ 110, 155, 156, 142, 160, 192, 162, 192, 142, 148,
+ /* 1080 */ 149, 192, 192, 130, 148, 149, 192, 192, 192, 192,
+ /* 1090 */ 176, 160, 178, 162, 178, 142, 160, 192, 162, 192,
+ /* 1100 */ 192, 148, 149, 192, 192, 192, 192, 176, 192, 178,
+ /* 1110 */ 192, 192, 176, 160, 178, 162, 192, 192, 192, 192,
+ /* 1120 */ 192, 192, 192, 192, 192, 192, 192, 192, 192, 176,
+ /* 1130 */ 192, 178,
};
-#define YY_SHIFT_USE_DFLT (1029)
-#define YY_SHIFT_COUNT (198)
-#define YY_SHIFT_MIN (-32)
-#define YY_SHIFT_MAX (802)
+#define YY_SHIFT_USE_DFLT (1132)
+#define YY_SHIFT_COUNT (232)
+#define YY_SHIFT_MIN (-34)
+#define YY_SHIFT_MAX (974)
static const short yy_shift_ofst[] = {
- /* 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,
+ /* 0 */ 224, 163, 221, 960, -2, 569, -1, 617, -1, -1,
+ /* 10 */ -1, 855, 855, 855, 855, -10, -10, 107, -34, 707,
+ /* 20 */ 279, 337, 279, 105, 395, 341, 341, 341, 341, 341,
+ /* 30 */ 341, 341, 933, 24, 23, 23, 453, 511, 742, 956,
+ /* 40 */ 23, 23, 23, 23, 307, -6, 23, 23, 23, -6,
+ /* 50 */ -5, -5, 82, -5, -5, 33, 33, 33, 129, 495,
+ /* 60 */ 611, 742, 742, 742, 956, 956, 956, 956, 956, 956,
+ /* 70 */ 85, 49, 49, 127, 190, 190, 307, 155, 25, -5,
+ /* 80 */ 405, 82, -5, 485, 485, 33, 485, 33, 485, 546,
+ /* 90 */ 554, 648, 652, 33, 33, 566, 546, 566, 546, 663,
+ /* 100 */ 669, 674, 546, 596, 596, 129, 685, 698, 704, 726,
+ /* 110 */ 759, 793, 827, 895, 895, 895, 895, 895, 921, 921,
+ /* 120 */ 921, 921, 921, 50, 157, 222, 211, 387, 397, 57,
+ /* 130 */ 404, 445, 462, 468, 477, 400, 412, 500, 539, 412,
+ /* 140 */ 538, 538, 400, 291, 503, 521, 343, 540, 419, 618,
+ /* 150 */ 623, 630, 608, 628, 629, 636, 746, 672, 686, 696,
+ /* 160 */ 703, 723, 708, 730, 720, 710, 724, 721, 725, 745,
+ /* 170 */ 747, 748, 700, 749, 750, 739, 743, 763, 753, 766,
+ /* 180 */ 756, 757, 829, 760, 758, 852, 840, 783, 858, 787,
+ /* 190 */ 788, 801, 802, 786, 867, 874, 803, 873, 804, 875,
+ /* 200 */ 807, 808, 826, 828, 888, 890, 891, 924, 843, 853,
+ /* 210 */ 945, 876, 946, 877, 879, 951, 863, 952, 869, 881,
+ /* 220 */ 894, 954, 889, 893, 964, 967, 898, 971, 972, 973,
+ /* 230 */ 974, 970, 923,
};
-#define YY_REDUCE_USE_DFLT (-102)
-#define YY_REDUCE_COUNT (96)
-#define YY_REDUCE_MIN (-101)
-#define YY_REDUCE_MAX (873)
+#define YY_REDUCE_USE_DFLT (-162)
+#define YY_REDUCE_COUNT (107)
+#define YY_REDUCE_MIN (-161)
+#define YY_REDUCE_MAX (953)
static const short yy_reduce_ofst[] = {
- /* 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,
+ /* 0 */ 124, 228, 286, 584, 344, 424, 530, 737, 356, 849,
+ /* 10 */ 916, 914, 931, 936, 953, 212, 489, -128, 58, 58,
+ /* 20 */ 122, 111, 442, 65, 65, 247, 299, 305, 348, 421,
+ /* 30 */ 433, 464, -113, -11, 88, 37, -43, -43, -81, -51,
+ /* 40 */ 95, 135, 153, 176, -161, 47, 259, 260, 261, 158,
+ /* 50 */ 103, 134, 75, 188, 240, 160, 215, 256, 335, -102,
+ /* 60 */ 28, -42, 34, 40, 101, 106, 109, 140, 161, 192,
+ /* 70 */ 284, 281, 310, 351, 293, 300, 320, 317, 339, 354,
+ /* 80 */ 422, 410, 417, 472, 475, 425, 488, 320, 506, 522,
+ /* 90 */ 513, 461, 471, 483, 320, 547, 545, 549, 548, 484,
+ /* 100 */ 502, 507, 577, 519, 523, 595, 507, 541,
};
static const YYACTIONTYPE yy_default[] = {
- /* 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,
+ /* 0 */ 767, 767, 767, 767, 767, 734, 767, 755, 767, 767,
+ /* 10 */ 767, 755, 755, 755, 755, 767, 767, 767, 767, 767,
+ /* 20 */ 659, 767, 659, 767, 767, 767, 767, 767, 767, 767,
+ /* 30 */ 767, 767, 767, 767, 767, 757, 767, 767, 767, 604,
+ /* 40 */ 767, 767, 767, 767, 757, 767, 767, 767, 767, 767,
+ /* 50 */ 755, 755, 767, 755, 755, 757, 757, 757, 767, 767,
+ /* 60 */ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
+ /* 70 */ 767, 767, 767, 767, 683, 682, 767, 675, 767, 755,
+ /* 80 */ 767, 767, 755, 767, 767, 767, 767, 660, 767, 617,
+ /* 90 */ 667, 678, 671, 767, 767, 767, 617, 767, 617, 615,
+ /* 100 */ 615, 615, 617, 649, 649, 767, 615, 588, 767, 767,
+ /* 110 */ 767, 767, 767, 744, 724, 723, 715, 625, 595, 606,
+ /* 120 */ 605, 597, 594, 714, 598, 767, 767, 767, 767, 767,
+ /* 130 */ 767, 767, 767, 767, 767, 758, 758, 767, 767, 767,
+ /* 140 */ 686, 685, 767, 767, 767, 767, 767, 767, 767, 699,
+ /* 150 */ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
+ /* 160 */ 767, 767, 767, 767, 767, 767, 767, 735, 767, 767,
+ /* 170 */ 767, 767, 767, 767, 767, 711, 767, 767, 767, 767,
+ /* 180 */ 767, 767, 767, 767, 767, 767, 758, 767, 767, 767,
+ /* 190 */ 641, 767, 767, 767, 767, 767, 767, 767, 767, 767,
+ /* 200 */ 767, 767, 767, 767, 767, 767, 767, 767, 687, 767,
+ /* 210 */ 767, 767, 767, 767, 767, 767, 767, 767, 626, 767,
+ /* 220 */ 767, 767, 602, 767, 767, 767, 767, 767, 767, 767,
+ /* 230 */ 767, 767, 767,
};
/********** End of lemon-generated parsing tables *****************************/
0, /* CALLABLE => nothing */
0, /* PRE_ASSERT => nothing */
0, /* POST_ASSERT => nothing */
+ 0, /* ERROR => nothing */
+ 0, /* WARNING => nothing */
14, /* TEMP => NAME */
14, /* FREE => NAME */
14, /* SET => NAME */
"TO_ARRAY", "TO_STRING", "TO_INT", "TO_FLOAT",
"TO_BOOL", "VOID", "MIXED", "ARRAY",
"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",
+ "ERROR", "WARNING", "TEMP", "FREE",
+ "SET", "LET", "RETURN", "CALLOC",
+ "CALLBACK", "LIB", "ANY", "EOS",
+ "EOL", "COMMENT", "HASH", "IFDEF",
+ "IFNDEF", "ENDIF", "ELSE", "UNDEF",
+ "DEFINE", "NO_WHITESPACE", "LPAREN", "RPAREN",
+ "COMMA", "IF", "ELIF", "DEFINED",
+ "COLON", "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",
+ "cpp_exp", "cpp_macro_decl", "cpp_macro_decl_tokens", "cpp_macro_exp",
+ "cpp_macro_sig", "cpp_macro_sig_args", "cpp_macro_call", "cpp_macro_call_args",
+ "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 */
/* For tracing reduce actions, the names of all rules are required.
*/
static const char *const yyRuleName[] = {
- /* 0 */ "block ::= LIB QUOTED_STRING EOS",
- /* 1 */ "block ::= decl",
- /* 2 */ "block ::= impl",
- /* 3 */ "block ::= decl_typedef",
- /* 4 */ "block ::= constant",
- /* 5 */ "block ::= decl_struct",
- /* 6 */ "block ::= decl_union",
- /* 7 */ "block ::= decl_enum",
- /* 8 */ "optional_name ::=",
- /* 9 */ "optional_name ::= NAME",
- /* 10 */ "align_and_size ::=",
- /* 11 */ "align_and_size ::= COLON COLON LPAREN NUMBER COMMA NUMBER RPAREN",
- /* 12 */ "enum_name ::= ENUM optional_name",
- /* 13 */ "struct_name ::= STRUCT optional_name",
- /* 14 */ "union_name ::= UNION optional_name",
- /* 15 */ "decl_enum ::= enum_name LBRACE decl_enum_items RBRACE",
- /* 16 */ "decl_enum_items ::= decl_enum_item",
- /* 17 */ "decl_enum_items ::= decl_enum_items COMMA decl_enum_item",
- /* 18 */ "decl_enum_item ::= NAME EQUALS num_exp",
- /* 19 */ "decl_enum_item ::= NAME",
- /* 20 */ "decl_struct_args_block ::= LBRACE struct_args RBRACE",
- /* 21 */ "decl_struct_args ::= decl_struct_args_block",
- /* 22 */ "decl_struct_args ::= EOS",
- /* 23 */ "decl_struct ::= STRUCT NAME align_and_size decl_struct_args",
- /* 24 */ "decl_union ::= UNION NAME align_and_size decl_struct_args",
- /* 25 */ "const_type ::= BOOL|INT|FLOAT|STRING",
- /* 26 */ "constant ::= CONST const_type NSNAME EQUALS impl_def_val EOS",
- /* 27 */ "decl_typedef ::= TYPEDEF decl_typedef_body EOS",
- /* 28 */ "decl_typedef_body_ex ::= struct_name align_and_size decl_struct_args_block decl_var",
- /* 29 */ "decl_typedef_body_ex ::= union_name align_and_size decl_struct_args_block decl_var",
- /* 30 */ "decl_typedef_body_ex ::= decl_enum NAME",
- /* 31 */ "decl_typedef_body ::= decl_typedef_body_ex",
- /* 32 */ "decl_typedef_body_fn_args ::= LPAREN decl_args RPAREN",
- /* 33 */ "decl_typedef_body ::= decl_func decl_typedef_body_fn_args",
- /* 34 */ "decl_typedef_body ::= decl_arg",
- /* 35 */ "decl ::= decl_abi decl_func LPAREN decl_args RPAREN EOS",
- /* 36 */ "decl ::= decl_abi decl_func LPAREN decl_args COMMA ELLIPSIS RPAREN EOS",
- /* 37 */ "decl_func ::= decl_arg",
- /* 38 */ "decl_func ::= VOID NAME",
- /* 39 */ "decl_typedef_body ::= VOID indirection LPAREN indirection NAME RPAREN decl_typedef_body_fn_args",
- /* 40 */ "decl_typedef_body ::= CONST VOID pointers LPAREN indirection NAME RPAREN decl_typedef_body_fn_args",
- /* 41 */ "decl_abi ::= NAME",
- /* 42 */ "decl_var_array_size ::=",
- /* 43 */ "decl_var_array_size ::= LBRACKET NUMBER RBRACKET",
- /* 44 */ "decl_var ::= NAME decl_var_array_size",
- /* 45 */ "decl_var ::= pointers NAME decl_var_array_size",
- /* 46 */ "decl_vars ::= decl_var",
- /* 47 */ "decl_vars ::= decl_vars COMMA decl_var",
- /* 48 */ "decl_arg ::= const_decl_type decl_var",
- /* 49 */ "decl_typedef_body ::= const_decl_type indirection LPAREN indirection NAME RPAREN decl_typedef_body_fn_args",
- /* 50 */ "decl_arg ::= VOID pointers NAME",
- /* 51 */ "decl_arg ::= CONST VOID pointers NAME",
- /* 52 */ "decl_args ::=",
- /* 53 */ "decl_args ::= VOID",
- /* 54 */ "decl_args ::= decl_arg",
- /* 55 */ "decl_args ::= decl_args COMMA decl_arg",
- /* 56 */ "struct_args ::= struct_arg",
- /* 57 */ "struct_args ::= struct_args struct_arg",
- /* 58 */ "struct_arg ::= decl_typedef_body_ex EOS",
- /* 59 */ "struct_arg ::= decl_arg decl_layout EOS",
- /* 60 */ "decl_layout ::=",
- /* 61 */ "decl_layout ::= COLON COLON LPAREN NUMBER COMMA NUMBER RPAREN",
- /* 62 */ "decl_scalar_type ::= CHAR",
- /* 63 */ "decl_scalar_type ::= SHORT decl_scalar_type_short",
- /* 64 */ "decl_scalar_type_short ::=",
- /* 65 */ "decl_scalar_type_short ::= INT",
- /* 66 */ "decl_scalar_type ::= INT",
- /* 67 */ "decl_scalar_type ::= LONG decl_scalar_type_long",
- /* 68 */ "decl_scalar_type_long ::=",
- /* 69 */ "decl_scalar_type_long ::= DOUBLE",
- /* 70 */ "decl_scalar_type_long ::= LONG decl_scalar_type_long_long",
- /* 71 */ "decl_scalar_type_long_long ::=",
- /* 72 */ "decl_scalar_type_long_long ::= INT",
- /* 73 */ "decl_type ::= UNSIGNED decl_scalar_type",
- /* 74 */ "decl_type ::= SIGNED decl_scalar_type",
- /* 75 */ "decl_type ::= UNSIGNED",
- /* 76 */ "decl_type ::= SIGNED",
- /* 77 */ "decl_type ::= decl_scalar_type",
- /* 78 */ "decl_type ::= STRUCT NAME",
- /* 79 */ "decl_type ::= UNION NAME",
- /* 80 */ "decl_type ::= ENUM NAME",
- /* 81 */ "decl_type ::= FLOAT|DOUBLE|INT8|UINT8|INT16|UINT16|INT32|UINT32|INT64|UINT64|NAME",
- /* 82 */ "const_decl_type ::= decl_type",
- /* 83 */ "const_decl_type ::= CONST decl_type",
- /* 84 */ "impl ::= impl_func LBRACE impl_stmts RBRACE",
- /* 85 */ "impl ::= STATIC impl_func LBRACE impl_stmts RBRACE",
- /* 86 */ "impl_func ::= FUNCTION reference NSNAME LPAREN RPAREN COLON impl_type",
- /* 87 */ "impl_func ::= FUNCTION reference NSNAME LPAREN impl_args RPAREN COLON impl_type",
- /* 88 */ "impl_func ::= FUNCTION reference NSNAME LPAREN impl_args COMMA impl_type reference ELLIPSIS DOLLAR_NAME RPAREN COLON impl_type",
- /* 89 */ "impl_def_val ::= NULL|NUMBER|TRUE|FALSE|QUOTED_STRING",
- /* 90 */ "impl_var ::= reference DOLLAR_NAME",
- /* 91 */ "impl_type ::= VOID|MIXED|BOOL|INT|FLOAT|STRING|ARRAY|OBJECT|CALLABLE",
- /* 92 */ "impl_arg ::= impl_type impl_var",
- /* 93 */ "impl_arg ::= impl_type impl_var EQUALS impl_def_val",
- /* 94 */ "impl_args ::= impl_arg",
- /* 95 */ "impl_args ::= impl_args COMMA impl_arg",
- /* 96 */ "impl_stmts ::= impl_stmt",
- /* 97 */ "impl_stmts ::= impl_stmts impl_stmt",
- /* 98 */ "impl_stmt ::= return_stmt",
- /* 99 */ "impl_stmt ::= let_stmt",
- /* 100 */ "impl_stmt ::= set_stmt",
- /* 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",
+ /* 0 */ "block ::= HASH cpp_exp EOL",
+ /* 1 */ "cpp_exp ::= ERROR|WARNING QUOTED_STRING",
+ /* 2 */ "cpp_exp ::= IFDEF NAME",
+ /* 3 */ "cpp_exp ::= IFNDEF NAME",
+ /* 4 */ "cpp_exp ::= ENDIF",
+ /* 5 */ "cpp_exp ::= ELSE",
+ /* 6 */ "cpp_exp ::= UNDEF NAME",
+ /* 7 */ "cpp_exp ::= DEFINE NAME cpp_macro_decl",
+ /* 8 */ "cpp_macro_decl ::=",
+ /* 9 */ "cpp_macro_decl ::= cpp_macro_sig",
+ /* 10 */ "cpp_macro_decl ::= cpp_macro_sig cpp_macro_decl_tokens",
+ /* 11 */ "cpp_macro_sig ::= NO_WHITESPACE LPAREN cpp_macro_sig_args RPAREN",
+ /* 12 */ "cpp_macro_sig_args ::=",
+ /* 13 */ "cpp_macro_sig_args ::= NAME",
+ /* 14 */ "cpp_macro_sig_args ::= cpp_macro_sig_args COMMA NAME",
+ /* 15 */ "cpp_macro_decl ::= cpp_macro_decl_tokens",
+ /* 16 */ "cpp_macro_decl_tokens ::= ANY",
+ /* 17 */ "cpp_macro_decl_tokens ::= cpp_macro_decl_tokens ANY",
+ /* 18 */ "cpp_exp ::= IF cpp_macro_exp",
+ /* 19 */ "cpp_exp ::= ELIF cpp_macro_exp",
+ /* 20 */ "cpp_macro_exp ::= LPAREN cpp_macro_exp RPAREN",
+ /* 21 */ "cpp_macro_exp ::= TILDE|NOT|PLUS|MINUS cpp_macro_exp",
+ /* 22 */ "cpp_macro_exp ::= cpp_macro_exp PIPE|CARET|AMPERSAND|LSHIFT|RSHIFT|PLUS|MINUS|ASTERISK|SLASH|MODULO|RCHEVR|LCHEVR|CMP_GE|CMP_LE|OR|AND|CMP_EQ|CMP_NE cpp_macro_exp",
+ /* 23 */ "cpp_macro_exp ::= DEFINED NAME",
+ /* 24 */ "cpp_macro_exp ::= DEFINED LPAREN NAME RPAREN",
+ /* 25 */ "cpp_macro_exp ::= NUMBER|NSNAME",
+ /* 26 */ "cpp_macro_exp ::= NAME",
+ /* 27 */ "cpp_macro_exp ::= NAME LPAREN cpp_macro_call_args RPAREN",
+ /* 28 */ "cpp_macro_call_args ::=",
+ /* 29 */ "cpp_macro_call_args ::= cpp_macro_exp",
+ /* 30 */ "cpp_macro_call_args ::= cpp_macro_call_args COMMA cpp_macro_exp",
+ /* 31 */ "block ::= LIB QUOTED_STRING EOS",
+ /* 32 */ "block ::= decl",
+ /* 33 */ "block ::= impl",
+ /* 34 */ "block ::= decl_typedef",
+ /* 35 */ "block ::= constant",
+ /* 36 */ "block ::= decl_struct",
+ /* 37 */ "block ::= decl_union",
+ /* 38 */ "block ::= decl_enum",
+ /* 39 */ "optional_name ::=",
+ /* 40 */ "optional_name ::= NAME",
+ /* 41 */ "align_and_size ::=",
+ /* 42 */ "align_and_size ::= COLON COLON LPAREN NUMBER COMMA NUMBER RPAREN",
+ /* 43 */ "enum_name ::= ENUM optional_name",
+ /* 44 */ "struct_name ::= STRUCT optional_name",
+ /* 45 */ "union_name ::= UNION optional_name",
+ /* 46 */ "decl_enum ::= enum_name LBRACE decl_enum_items RBRACE",
+ /* 47 */ "decl_enum_items ::= decl_enum_item",
+ /* 48 */ "decl_enum_items ::= decl_enum_items COMMA decl_enum_item",
+ /* 49 */ "decl_enum_item ::= NAME EQUALS num_exp",
+ /* 50 */ "decl_enum_item ::= NAME",
+ /* 51 */ "decl_struct_args_block ::= LBRACE struct_args RBRACE",
+ /* 52 */ "decl_struct_args ::= decl_struct_args_block",
+ /* 53 */ "decl_struct_args ::= EOS",
+ /* 54 */ "decl_struct ::= STRUCT NAME align_and_size decl_struct_args",
+ /* 55 */ "decl_union ::= UNION NAME align_and_size decl_struct_args",
+ /* 56 */ "const_type ::= BOOL|INT|FLOAT|STRING",
+ /* 57 */ "constant ::= CONST const_type NSNAME EQUALS impl_def_val EOS",
+ /* 58 */ "decl_typedef ::= TYPEDEF decl_typedef_body EOS",
+ /* 59 */ "decl_typedef_body_ex ::= struct_name align_and_size decl_struct_args_block decl_var",
+ /* 60 */ "decl_typedef_body_ex ::= union_name align_and_size decl_struct_args_block decl_var",
+ /* 61 */ "decl_typedef_body_ex ::= decl_enum NAME",
+ /* 62 */ "decl_typedef_body ::= decl_typedef_body_ex",
+ /* 63 */ "decl_typedef_body_fn_args ::= LPAREN decl_args RPAREN",
+ /* 64 */ "decl_typedef_body ::= decl_func decl_typedef_body_fn_args",
+ /* 65 */ "decl_typedef_body ::= decl_arg",
+ /* 66 */ "decl ::= decl_abi decl_func LPAREN decl_args RPAREN EOS",
+ /* 67 */ "decl ::= decl_abi decl_func LPAREN decl_args COMMA ELLIPSIS RPAREN EOS",
+ /* 68 */ "decl_func ::= decl_arg",
+ /* 69 */ "decl_func ::= VOID NAME",
+ /* 70 */ "decl_typedef_body ::= VOID indirection LPAREN indirection NAME RPAREN decl_typedef_body_fn_args",
+ /* 71 */ "decl_typedef_body ::= CONST VOID pointers LPAREN indirection NAME RPAREN decl_typedef_body_fn_args",
+ /* 72 */ "decl_abi ::= NAME",
+ /* 73 */ "decl_var_array_size ::=",
+ /* 74 */ "decl_var_array_size ::= LBRACKET NUMBER RBRACKET",
+ /* 75 */ "decl_var ::= NAME decl_var_array_size",
+ /* 76 */ "decl_var ::= pointers NAME decl_var_array_size",
+ /* 77 */ "decl_vars ::= decl_var",
+ /* 78 */ "decl_vars ::= decl_vars COMMA decl_var",
+ /* 79 */ "decl_arg ::= const_decl_type decl_var",
+ /* 80 */ "decl_typedef_body ::= const_decl_type indirection LPAREN indirection NAME RPAREN decl_typedef_body_fn_args",
+ /* 81 */ "decl_arg ::= VOID pointers NAME",
+ /* 82 */ "decl_arg ::= CONST VOID pointers NAME",
+ /* 83 */ "decl_args ::=",
+ /* 84 */ "decl_args ::= VOID",
+ /* 85 */ "decl_args ::= decl_arg",
+ /* 86 */ "decl_args ::= decl_args COMMA decl_arg",
+ /* 87 */ "struct_args ::= struct_arg",
+ /* 88 */ "struct_args ::= struct_args struct_arg",
+ /* 89 */ "struct_arg ::= decl_typedef_body_ex EOS",
+ /* 90 */ "struct_arg ::= decl_arg decl_layout EOS",
+ /* 91 */ "decl_layout ::=",
+ /* 92 */ "decl_layout ::= COLON COLON LPAREN NUMBER COMMA NUMBER RPAREN",
+ /* 93 */ "decl_scalar_type ::= CHAR",
+ /* 94 */ "decl_scalar_type ::= SHORT decl_scalar_type_short",
+ /* 95 */ "decl_scalar_type_short ::=",
+ /* 96 */ "decl_scalar_type_short ::= INT",
+ /* 97 */ "decl_scalar_type ::= INT",
+ /* 98 */ "decl_scalar_type ::= LONG decl_scalar_type_long",
+ /* 99 */ "decl_scalar_type_long ::=",
+ /* 100 */ "decl_scalar_type_long ::= DOUBLE",
+ /* 101 */ "decl_scalar_type_long ::= LONG decl_scalar_type_long_long",
+ /* 102 */ "decl_scalar_type_long_long ::=",
+ /* 103 */ "decl_scalar_type_long_long ::= INT",
+ /* 104 */ "decl_type ::= UNSIGNED decl_scalar_type",
+ /* 105 */ "decl_type ::= SIGNED decl_scalar_type",
+ /* 106 */ "decl_type ::= UNSIGNED",
+ /* 107 */ "decl_type ::= SIGNED",
+ /* 108 */ "decl_type ::= decl_scalar_type",
+ /* 109 */ "decl_type ::= STRUCT NAME",
+ /* 110 */ "decl_type ::= UNION NAME",
+ /* 111 */ "decl_type ::= ENUM NAME",
+ /* 112 */ "decl_type ::= FLOAT|DOUBLE|INT8|UINT8|INT16|UINT16|INT32|UINT32|INT64|UINT64|NAME",
+ /* 113 */ "const_decl_type ::= decl_type",
+ /* 114 */ "const_decl_type ::= CONST decl_type",
+ /* 115 */ "impl ::= impl_func LBRACE impl_stmts RBRACE",
+ /* 116 */ "impl ::= STATIC impl_func LBRACE impl_stmts RBRACE",
+ /* 117 */ "impl_func ::= FUNCTION reference NSNAME LPAREN RPAREN COLON impl_type",
+ /* 118 */ "impl_func ::= FUNCTION reference NSNAME LPAREN impl_args RPAREN COLON impl_type",
+ /* 119 */ "impl_func ::= FUNCTION reference NSNAME LPAREN impl_args COMMA impl_type reference ELLIPSIS DOLLAR_NAME RPAREN COLON impl_type",
+ /* 120 */ "impl_def_val ::= NULL|NUMBER|TRUE|FALSE|QUOTED_STRING",
+ /* 121 */ "impl_var ::= reference DOLLAR_NAME",
+ /* 122 */ "impl_type ::= VOID|MIXED|BOOL|INT|FLOAT|STRING|ARRAY|OBJECT|CALLABLE",
+ /* 123 */ "impl_arg ::= impl_type impl_var",
+ /* 124 */ "impl_arg ::= impl_type impl_var EQUALS impl_def_val",
+ /* 125 */ "impl_args ::= impl_arg",
+ /* 126 */ "impl_args ::= impl_args COMMA impl_arg",
+ /* 127 */ "impl_stmts ::= impl_stmt",
+ /* 128 */ "impl_stmts ::= impl_stmts impl_stmt",
+ /* 129 */ "impl_stmt ::= return_stmt",
+ /* 130 */ "impl_stmt ::= let_stmt",
+ /* 131 */ "impl_stmt ::= set_stmt",
+ /* 132 */ "impl_stmt ::= assert_stmt",
+ /* 133 */ "impl_stmt ::= free_stmt",
+ /* 134 */ "number ::= NUMBER|NSNAME",
+ /* 135 */ "number ::= decl_var",
+ /* 136 */ "num_exp ::= number",
+ /* 137 */ "num_exp ::= LPAREN num_exp RPAREN",
+ /* 138 */ "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",
+ /* 139 */ "num_exp ::= TILDE|NOT|PLUS|MINUS num_exp",
+ /* 140 */ "let_exp ::= NULL",
+ /* 141 */ "let_exp ::= AMPERSAND NULL",
+ /* 142 */ "let_exp ::= let_callback",
+ /* 143 */ "let_exp ::= let_calloc",
+ /* 144 */ "let_exp ::= AMPERSAND let_calloc",
+ /* 145 */ "let_exp ::= let_func",
+ /* 146 */ "let_exp ::= AMPERSAND let_func",
+ /* 147 */ "let_exp ::= num_exp",
+ /* 148 */ "let_exp ::= AMPERSAND num_exp",
+ /* 149 */ "let_exp ::= decl_var EQUALS let_exp",
+ /* 150 */ "let_stmt ::= LET let_exp EOS",
+ /* 151 */ "let_stmt ::= TEMP decl_var EQUALS reference decl_var EOS",
+ /* 152 */ "let_callback ::= CALLBACK callback_rval LPAREN impl_var LPAREN callback_arg_list RPAREN RPAREN",
+ /* 153 */ "let_calloc ::= CALLOC LPAREN num_exp COMMA num_exp RPAREN",
+ /* 154 */ "let_func ::= ZVAL|OBJVAL|ARRVAL|PATHVAL|STRLEN|STRVAL|FLOATVAL|INTVAL|BOOLVAL|COUNT LPAREN impl_var RPAREN",
+ /* 155 */ "let_func ::= ZVAL|OBJVAL|ARRVAL|PATHVAL|STRLEN|STRVAL|FLOATVAL|INTVAL|BOOLVAL|COUNT LPAREN impl_var COMMA let_exps RPAREN",
+ /* 156 */ "let_exps ::= let_exp",
+ /* 157 */ "let_exps ::= let_exps COMMA let_exp",
+ /* 158 */ "callback_arg_list ::=",
+ /* 159 */ "callback_arg_list ::= callback_args",
+ /* 160 */ "callback_args ::= set_exp",
+ /* 161 */ "callback_args ::= callback_args COMMA set_exp",
+ /* 162 */ "callback_rval ::= ZVAL|OBJVAL|ARRVAL|PATHVAL|STRLEN|STRVAL|FLOATVAL|INTVAL|BOOLVAL|COUNT",
+ /* 163 */ "callback_rval ::= VOID",
+ /* 164 */ "set_func ::= TO_OBJECT|TO_ARRAY|TO_STRING|TO_INT|TO_FLOAT|TO_BOOL|ZVAL|VOID LPAREN decl_var RPAREN",
+ /* 165 */ "set_func ::= TO_OBJECT|TO_ARRAY|TO_STRING|TO_INT|TO_FLOAT|TO_BOOL|ZVAL|VOID LPAREN decl_var COMMA set_exps RPAREN",
+ /* 166 */ "set_func ::= TO_OBJECT|TO_ARRAY|TO_STRING|TO_INT|TO_FLOAT|TO_BOOL|ZVAL|VOID LPAREN decl_var COMMA ELLIPSIS RPAREN",
+ /* 167 */ "set_exp ::= set_func",
+ /* 168 */ "set_exp ::= num_exp",
+ /* 169 */ "set_exps ::= set_exp",
+ /* 170 */ "set_exps ::= set_exps COMMA set_exp",
+ /* 171 */ "set_exp ::= impl_var EQUALS set_exp",
+ /* 172 */ "set_stmt ::= SET set_exp EOS",
+ /* 173 */ "return_stmt ::= RETURN set_func EOS",
+ /* 174 */ "free_stmt ::= FREE free_exps EOS",
+ /* 175 */ "free_exps ::= free_exp",
+ /* 176 */ "free_exps ::= free_exps COMMA free_exp",
+ /* 177 */ "free_exp ::= NAME LPAREN decl_vars RPAREN",
+ /* 178 */ "assert_stmt ::= PRE_ASSERT|POST_ASSERT num_exp EOS",
+ /* 179 */ "reference ::=",
+ /* 180 */ "reference ::= AMPERSAND",
+ /* 181 */ "indirection ::=",
+ /* 182 */ "indirection ::= pointers",
+ /* 183 */ "pointers ::= ASTERISK",
+ /* 184 */ "pointers ::= pointers ASTERISK",
+ /* 185 */ "file ::= blocks",
+ /* 186 */ "blocks ::= block",
+ /* 187 */ "blocks ::= blocks block",
+ /* 188 */ "block ::= EOS",
+ /* 189 */ "block ::= EOL",
+ /* 190 */ "block ::= COMMENT",
};
#endif /* NDEBUG */
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 */
+ case 64: /* ERROR */
+ case 65: /* WARNING */
+ case 66: /* TEMP */
+ case 67: /* FREE */
+ case 68: /* SET */
+ case 69: /* LET */
+ case 70: /* RETURN */
+ case 71: /* CALLOC */
+ case 72: /* CALLBACK */
+ case 73: /* LIB */
+ case 74: /* ANY */
+ case 75: /* EOS */
+ case 76: /* EOL */
+ case 77: /* COMMENT */
+ case 78: /* HASH */
+ case 79: /* IFDEF */
+ case 80: /* IFNDEF */
+ case 81: /* ENDIF */
+ case 82: /* ELSE */
+ case 83: /* UNDEF */
+ case 84: /* DEFINE */
+ case 85: /* NO_WHITESPACE */
+ case 86: /* LPAREN */
+ case 87: /* RPAREN */
+ case 88: /* COMMA */
+ case 89: /* IF */
+ case 90: /* ELIF */
+ case 91: /* DEFINED */
+ case 92: /* COLON */
+ case 93: /* ENUM */
+ case 94: /* STRUCT */
+ case 95: /* UNION */
+ case 96: /* LBRACE */
+ case 97: /* RBRACE */
+ case 98: /* EQUALS */
+ case 99: /* CONST */
+ case 100: /* TYPEDEF */
+ case 101: /* ELLIPSIS */
+ case 102: /* LBRACKET */
+ case 103: /* RBRACKET */
+ case 104: /* CHAR */
+ case 105: /* SHORT */
+ case 106: /* LONG */
+ case 107: /* UNSIGNED */
+ case 108: /* SIGNED */
+ case 109: /* STATIC */
+ case 110: /* FUNCTION */
+ case 111: /* DOLLAR_NAME */
{
#line 37 "src/parser_proc.y"
free((yypminor->yy0));
-#line 1132 "src/parser_proc.c"
+#line 1220 "src/parser_proc.c"
}
break;
/* Default NON-TERMINAL Destructor */
- 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 */
+ case 112: /* error */
+ case 119: /* align_and_size */
+ case 176: /* reference */
+ case 177: /* indirection */
+ case 178: /* pointers */
+ case 179: /* file */
+ case 180: /* blocks */
+ case 181: /* block */
+ case 182: /* optional_name */
+ case 183: /* enum_name */
+ case 184: /* struct_name */
+ case 185: /* union_name */
+ case 186: /* decl_var_array_size */
+ case 187: /* decl_scalar_type */
+ case 188: /* decl_scalar_type_short */
+ case 189: /* decl_scalar_type_long */
+ case 190: /* decl_scalar_type_long_long */
+ case 191: /* callback_rval */
{
#line 38 "src/parser_proc.y"
(void)P;
-#line 1157 "src/parser_proc.c"
+#line 1245 "src/parser_proc.c"
}
break;
- case 98: /* decl_enum */
-{
-#line 64 "src/parser_proc.y"
-psi_decl_enum_free(&(yypminor->yy87));
-#line 1164 "src/parser_proc.c"
-}
- break;
- 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 */
+ case 113: /* decl_enum */
{
#line 66 "src/parser_proc.y"
-psi_plist_free((yypminor->yy7));
-#line 1182 "src/parser_proc.c"
+psi_decl_enum_free(&(yypminor->yy323));
+#line 1252 "src/parser_proc.c"
}
break;
- case 100: /* decl_enum_item */
+ case 114: /* decl_enum_items */
+ case 116: /* decl_struct_args_block */
+ case 117: /* decl_struct_args */
+ case 126: /* decl_typedef_body_fn_args */
+ case 131: /* decl_vars */
+ case 133: /* decl_args */
+ case 134: /* struct_args */
+ case 144: /* impl_args */
+ case 146: /* impl_stmts */
+ case 157: /* let_exps */
+ case 161: /* set_exps */
+ case 165: /* free_exps */
+ case 170: /* cpp_macro_decl_tokens */
+ case 172: /* cpp_macro_sig */
+ case 173: /* cpp_macro_sig_args */
+ case 174: /* cpp_macro_call */
+ case 175: /* cpp_macro_call_args */
{
#line 68 "src/parser_proc.y"
-psi_decl_enum_item_free(&(yypminor->yy109));
-#line 1189 "src/parser_proc.c"
+psi_plist_free((yypminor->yy179));
+#line 1275 "src/parser_proc.c"
}
break;
- case 103: /* decl_struct */
+ case 115: /* decl_enum_item */
{
-#line 74 "src/parser_proc.y"
-psi_decl_struct_free(&(yypminor->yy137));
-#line 1196 "src/parser_proc.c"
+#line 70 "src/parser_proc.y"
+psi_decl_enum_item_free(&(yypminor->yy169));
+#line 1282 "src/parser_proc.c"
}
break;
- case 105: /* decl_union */
+ case 118: /* decl_struct */
{
-#line 77 "src/parser_proc.y"
-psi_decl_union_free(&(yypminor->yy47));
-#line 1203 "src/parser_proc.c"
+#line 76 "src/parser_proc.y"
+psi_decl_struct_free(&(yypminor->yy324));
+#line 1289 "src/parser_proc.c"
}
break;
- case 106: /* const_type */
+ case 120: /* decl_union */
{
#line 79 "src/parser_proc.y"
-psi_const_type_free(&(yypminor->yy181));
-#line 1210 "src/parser_proc.c"
+psi_decl_union_free(&(yypminor->yy15));
+#line 1296 "src/parser_proc.c"
}
break;
- case 107: /* constant */
+ case 121: /* const_type */
{
#line 81 "src/parser_proc.y"
-psi_const_free(&(yypminor->yy336));
-#line 1217 "src/parser_proc.c"
+psi_const_type_free(&(yypminor->yy351));
+#line 1303 "src/parser_proc.c"
}
break;
- 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 */
+ case 122: /* constant */
{
#line 83 "src/parser_proc.y"
-psi_decl_arg_free(&(yypminor->yy64));
-#line 1229 "src/parser_proc.c"
+psi_const_free(&(yypminor->yy38));
+#line 1310 "src/parser_proc.c"
}
break;
- case 112: /* decl */
-{
-#line 91 "src/parser_proc.y"
-psi_decl_free(&(yypminor->yy17));
-#line 1236 "src/parser_proc.c"
+ case 123: /* decl_typedef */
+ case 124: /* decl_typedef_body_ex */
+ case 125: /* decl_typedef_body */
+ case 128: /* decl_func */
+ case 132: /* decl_arg */
+ case 135: /* struct_arg */
+{
+#line 85 "src/parser_proc.y"
+psi_decl_arg_free(&(yypminor->yy320));
+#line 1322 "src/parser_proc.c"
}
break;
- case 114: /* decl_abi */
+ case 127: /* decl */
{
-#line 95 "src/parser_proc.y"
-psi_decl_abi_free(&(yypminor->yy180));
-#line 1243 "src/parser_proc.c"
+#line 93 "src/parser_proc.y"
+psi_decl_free(&(yypminor->yy303));
+#line 1329 "src/parser_proc.c"
}
break;
- case 115: /* decl_var */
+ case 129: /* decl_abi */
{
#line 97 "src/parser_proc.y"
-psi_decl_var_free(&(yypminor->yy131));
-#line 1250 "src/parser_proc.c"
+psi_decl_abi_free(&(yypminor->yy26));
+#line 1336 "src/parser_proc.c"
}
break;
- case 121: /* decl_layout */
+ case 130: /* decl_var */
{
-#line 109 "src/parser_proc.y"
-psi_layout_free(&(yypminor->yy221));
-#line 1257 "src/parser_proc.c"
+#line 99 "src/parser_proc.y"
+psi_decl_var_free(&(yypminor->yy271));
+#line 1343 "src/parser_proc.c"
}
break;
- case 122: /* decl_type */
- case 123: /* const_decl_type */
+ case 136: /* decl_layout */
{
#line 111 "src/parser_proc.y"
-psi_decl_type_free(&(yypminor->yy182));
-#line 1265 "src/parser_proc.c"
+psi_layout_free(&(yypminor->yy369));
+#line 1350 "src/parser_proc.c"
}
break;
- case 124: /* impl */
+ case 137: /* decl_type */
+ case 138: /* const_decl_type */
{
-#line 115 "src/parser_proc.y"
-psi_impl_free(&(yypminor->yy303));
-#line 1272 "src/parser_proc.c"
+#line 113 "src/parser_proc.y"
+psi_decl_type_free(&(yypminor->yy172));
+#line 1358 "src/parser_proc.c"
}
break;
- case 125: /* impl_func */
+ case 139: /* impl */
{
#line 117 "src/parser_proc.y"
-psi_impl_func_free(&(yypminor->yy226));
-#line 1279 "src/parser_proc.c"
+psi_impl_free(&(yypminor->yy49));
+#line 1365 "src/parser_proc.c"
}
break;
- case 126: /* impl_def_val */
+ case 140: /* impl_func */
{
#line 119 "src/parser_proc.y"
-psi_impl_def_val_free(&(yypminor->yy319));
-#line 1286 "src/parser_proc.c"
+psi_impl_func_free(&(yypminor->yy56));
+#line 1372 "src/parser_proc.c"
}
break;
- case 127: /* impl_var */
+ case 141: /* impl_def_val */
{
#line 121 "src/parser_proc.y"
-psi_impl_var_free(&(yypminor->yy123));
-#line 1293 "src/parser_proc.c"
+psi_impl_def_val_free(&(yypminor->yy145));
+#line 1379 "src/parser_proc.c"
}
break;
- case 128: /* impl_arg */
- case 130: /* impl_vararg */
+ case 142: /* impl_var */
{
#line 123 "src/parser_proc.y"
-psi_impl_arg_free(&(yypminor->yy56));
-#line 1301 "src/parser_proc.c"
+psi_impl_var_free(&(yypminor->yy370));
+#line 1386 "src/parser_proc.c"
}
break;
- case 132: /* impl_stmt */
+ case 143: /* impl_arg */
+ case 145: /* impl_vararg */
{
-#line 131 "src/parser_proc.y"
-psi_impl_stmt_free(&(yypminor->yy282));
-#line 1308 "src/parser_proc.c"
+#line 125 "src/parser_proc.y"
+psi_impl_arg_free(&(yypminor->yy34));
+#line 1394 "src/parser_proc.c"
}
break;
- case 133: /* number */
+ case 147: /* impl_stmt */
{
#line 133 "src/parser_proc.y"
-psi_number_free(&(yypminor->yy66));
-#line 1315 "src/parser_proc.c"
+psi_impl_stmt_free(&(yypminor->yy238));
+#line 1401 "src/parser_proc.c"
}
break;
- case 134: /* num_exp */
+ case 148: /* number */
{
#line 135 "src/parser_proc.y"
-psi_num_exp_free(&(yypminor->yy124));
-#line 1322 "src/parser_proc.c"
+psi_number_free(&(yypminor->yy57));
+#line 1408 "src/parser_proc.c"
}
break;
- case 135: /* let_stmt */
+ case 149: /* num_exp */
+ case 171: /* cpp_macro_exp */
{
#line 137 "src/parser_proc.y"
-psi_let_stmt_free(&(yypminor->yy138));
-#line 1329 "src/parser_proc.c"
+psi_num_exp_free(&(yypminor->yy207));
+#line 1416 "src/parser_proc.c"
}
break;
- case 136: /* let_calloc */
+ case 150: /* let_stmt */
{
#line 139 "src/parser_proc.y"
-psi_let_calloc_free(&(yypminor->yy227));
-#line 1336 "src/parser_proc.c"
+psi_let_stmt_free(&(yypminor->yy319));
+#line 1423 "src/parser_proc.c"
}
break;
- case 137: /* let_func */
+ case 151: /* let_calloc */
{
#line 141 "src/parser_proc.y"
-psi_let_func_free(&(yypminor->yy133));
-#line 1343 "src/parser_proc.c"
+psi_let_calloc_free(&(yypminor->yy45));
+#line 1430 "src/parser_proc.c"
}
break;
- case 138: /* callback_arg_list */
- case 139: /* callback_args */
+ case 152: /* let_func */
{
#line 143 "src/parser_proc.y"
-psi_plist_free((yypminor->yy304));
-#line 1351 "src/parser_proc.c"
+psi_let_func_free(&(yypminor->yy67));
+#line 1437 "src/parser_proc.c"
}
break;
- case 140: /* let_callback */
+ case 153: /* callback_arg_list */
+ case 154: /* callback_args */
{
-#line 147 "src/parser_proc.y"
-psi_let_callback_free(&(yypminor->yy76));
-#line 1358 "src/parser_proc.c"
+#line 145 "src/parser_proc.y"
+psi_plist_free((yypminor->yy243));
+#line 1445 "src/parser_proc.c"
}
break;
- case 141: /* let_exp */
+ case 155: /* let_callback */
{
#line 149 "src/parser_proc.y"
-psi_let_exp_free(&(yypminor->yy196));
-#line 1365 "src/parser_proc.c"
+psi_let_callback_free(&(yypminor->yy120));
+#line 1452 "src/parser_proc.c"
}
break;
- case 143: /* assert_stmt */
+ case 156: /* let_exp */
{
-#line 153 "src/parser_proc.y"
-psi_assert_stmt_free(&(yypminor->yy146));
-#line 1372 "src/parser_proc.c"
+#line 151 "src/parser_proc.y"
+psi_let_exp_free(&(yypminor->yy200));
+#line 1459 "src/parser_proc.c"
}
break;
- case 144: /* set_stmt */
+ case 158: /* assert_stmt */
{
#line 155 "src/parser_proc.y"
-psi_set_stmt_free(&(yypminor->yy300));
-#line 1379 "src/parser_proc.c"
+psi_assert_stmt_free(&(yypminor->yy201));
+#line 1466 "src/parser_proc.c"
}
break;
- case 145: /* set_exp */
+ case 159: /* set_stmt */
{
#line 157 "src/parser_proc.y"
-psi_set_exp_free(&(yypminor->yy113));
-#line 1386 "src/parser_proc.c"
+psi_set_stmt_free(&(yypminor->yy358));
+#line 1473 "src/parser_proc.c"
}
break;
- case 147: /* set_func */
+ case 160: /* set_exp */
{
-#line 161 "src/parser_proc.y"
-psi_set_func_free(&(yypminor->yy324));
-#line 1393 "src/parser_proc.c"
+#line 159 "src/parser_proc.y"
+psi_set_exp_free(&(yypminor->yy180));
+#line 1480 "src/parser_proc.c"
}
break;
- case 148: /* return_stmt */
+ case 162: /* set_func */
{
#line 163 "src/parser_proc.y"
-psi_return_stmt_free(&(yypminor->yy258));
-#line 1400 "src/parser_proc.c"
+psi_set_func_free(&(yypminor->yy362));
+#line 1487 "src/parser_proc.c"
}
break;
- case 149: /* free_stmt */
+ case 163: /* return_stmt */
{
#line 165 "src/parser_proc.y"
-psi_free_stmt_free(&(yypminor->yy102));
-#line 1407 "src/parser_proc.c"
+psi_return_stmt_free(&(yypminor->yy342));
+#line 1494 "src/parser_proc.c"
}
break;
- case 151: /* free_exp */
+ case 164: /* free_stmt */
{
-#line 169 "src/parser_proc.y"
-psi_free_exp_free(&(yypminor->yy114));
-#line 1414 "src/parser_proc.c"
+#line 167 "src/parser_proc.y"
+psi_free_stmt_free(&(yypminor->yy220));
+#line 1501 "src/parser_proc.c"
}
break;
- case 152: /* impl_type */
+ case 166: /* free_exp */
{
#line 171 "src/parser_proc.y"
-psi_impl_type_free(&(yypminor->yy40));
-#line 1421 "src/parser_proc.c"
+psi_free_exp_free(&(yypminor->yy146));
+#line 1508 "src/parser_proc.c"
+}
+ break;
+ case 167: /* impl_type */
+{
+#line 173 "src/parser_proc.y"
+psi_impl_type_free(&(yypminor->yy246));
+#line 1515 "src/parser_proc.c"
+}
+ break;
+ case 168: /* cpp_exp */
+{
+#line 175 "src/parser_proc.y"
+psi_cpp_exp_free(&(yypminor->yy274));
+#line 1522 "src/parser_proc.c"
+}
+ break;
+ case 169: /* cpp_macro_decl */
+{
+#line 177 "src/parser_proc.y"
+psi_cpp_macro_decl_free(&(yypminor->yy134));
+#line 1529 "src/parser_proc.c"
}
break;
/********* End destructor definitions *****************************************/
YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */
unsigned char nrhs; /* Number of right-hand side symbols in the rule */
} yyRuleInfo[] = {
- { 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 },
- { 102, 1 },
- { 102, 1 },
- { 103, 4 },
- { 105, 4 },
- { 106, 1 },
- { 107, 6 },
- { 108, 3 },
- { 109, 4 },
- { 109, 4 },
- { 109, 2 },
- { 110, 1 },
- { 111, 3 },
- { 110, 2 },
- { 110, 1 },
- { 112, 6 },
- { 112, 8 },
- { 113, 1 },
- { 113, 2 },
- { 110, 7 },
- { 110, 8 },
+ { 181, 3 },
+ { 168, 2 },
+ { 168, 2 },
+ { 168, 2 },
+ { 168, 1 },
+ { 168, 1 },
+ { 168, 2 },
+ { 168, 3 },
+ { 169, 0 },
+ { 169, 1 },
+ { 169, 2 },
+ { 172, 4 },
+ { 173, 0 },
+ { 173, 1 },
+ { 173, 3 },
+ { 169, 1 },
+ { 170, 1 },
+ { 170, 2 },
+ { 168, 2 },
+ { 168, 2 },
+ { 171, 3 },
+ { 171, 2 },
+ { 171, 3 },
+ { 171, 2 },
+ { 171, 4 },
+ { 171, 1 },
+ { 171, 1 },
+ { 171, 4 },
+ { 175, 0 },
+ { 175, 1 },
+ { 175, 3 },
+ { 181, 3 },
+ { 181, 1 },
+ { 181, 1 },
+ { 181, 1 },
+ { 181, 1 },
+ { 181, 1 },
+ { 181, 1 },
+ { 181, 1 },
+ { 182, 0 },
+ { 182, 1 },
+ { 119, 0 },
+ { 119, 7 },
+ { 183, 2 },
+ { 184, 2 },
+ { 185, 2 },
+ { 113, 4 },
{ 114, 1 },
- { 163, 0 },
- { 163, 3 },
- { 115, 2 },
+ { 114, 3 },
{ 115, 3 },
- { 116, 1 },
+ { 115, 1 },
{ 116, 3 },
- { 117, 2 },
- { 110, 7 },
- { 117, 3 },
- { 117, 4 },
- { 118, 0 },
- { 118, 1 },
- { 118, 1 },
- { 118, 3 },
- { 119, 1 },
- { 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, 2 },
+ { 117, 1 },
+ { 117, 1 },
+ { 118, 4 },
+ { 120, 4 },
+ { 121, 1 },
+ { 122, 6 },
+ { 123, 3 },
+ { 124, 4 },
{ 124, 4 },
- { 124, 5 },
+ { 124, 2 },
+ { 125, 1 },
+ { 126, 3 },
+ { 125, 2 },
+ { 125, 1 },
+ { 127, 6 },
+ { 127, 8 },
+ { 128, 1 },
+ { 128, 2 },
{ 125, 7 },
{ 125, 8 },
- { 125, 13 },
- { 126, 1 },
- { 127, 2 },
- { 152, 1 },
- { 128, 2 },
- { 128, 4 },
{ 129, 1 },
- { 129, 3 },
+ { 186, 0 },
+ { 186, 3 },
+ { 130, 2 },
+ { 130, 3 },
{ 131, 1 },
- { 131, 2 },
- { 132, 1 },
- { 132, 1 },
- { 132, 1 },
- { 132, 1 },
- { 132, 1 },
+ { 131, 3 },
+ { 132, 2 },
+ { 125, 7 },
+ { 132, 3 },
+ { 132, 4 },
+ { 133, 0 },
{ 133, 1 },
{ 133, 1 },
+ { 133, 3 },
{ 134, 1 },
- { 134, 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, 2 },
{ 135, 3 },
- { 135, 6 },
- { 140, 8 },
- { 136, 6 },
- { 137, 4 },
- { 137, 6 },
- { 142, 1 },
- { 142, 3 },
- { 138, 0 },
+ { 136, 0 },
+ { 136, 7 },
+ { 187, 1 },
+ { 187, 2 },
+ { 188, 0 },
+ { 188, 1 },
+ { 187, 1 },
+ { 187, 2 },
+ { 189, 0 },
+ { 189, 1 },
+ { 189, 2 },
+ { 190, 0 },
+ { 190, 1 },
+ { 137, 2 },
+ { 137, 2 },
+ { 137, 1 },
+ { 137, 1 },
+ { 137, 1 },
+ { 137, 2 },
+ { 137, 2 },
+ { 137, 2 },
+ { 137, 1 },
{ 138, 1 },
- { 139, 1 },
- { 139, 3 },
- { 168, 1 },
- { 168, 1 },
- { 147, 4 },
- { 147, 6 },
- { 147, 6 },
- { 145, 1 },
- { 145, 1 },
- { 146, 1 },
- { 146, 3 },
- { 145, 3 },
+ { 138, 2 },
+ { 139, 4 },
+ { 139, 5 },
+ { 140, 7 },
+ { 140, 8 },
+ { 140, 13 },
+ { 141, 1 },
+ { 142, 2 },
+ { 167, 1 },
+ { 143, 2 },
+ { 143, 4 },
+ { 144, 1 },
{ 144, 3 },
- { 148, 3 },
+ { 146, 1 },
+ { 146, 2 },
+ { 147, 1 },
+ { 147, 1 },
+ { 147, 1 },
+ { 147, 1 },
+ { 147, 1 },
+ { 148, 1 },
+ { 148, 1 },
+ { 149, 1 },
{ 149, 3 },
- { 150, 1 },
+ { 149, 3 },
+ { 149, 2 },
+ { 156, 1 },
+ { 156, 2 },
+ { 156, 1 },
+ { 156, 1 },
+ { 156, 2 },
+ { 156, 1 },
+ { 156, 2 },
+ { 156, 1 },
+ { 156, 2 },
+ { 156, 3 },
{ 150, 3 },
- { 151, 4 },
- { 143, 3 },
+ { 150, 6 },
+ { 155, 8 },
+ { 151, 6 },
+ { 152, 4 },
+ { 152, 6 },
+ { 157, 1 },
+ { 157, 3 },
{ 153, 0 },
{ 153, 1 },
- { 154, 0 },
{ 154, 1 },
- { 155, 1 },
- { 155, 2 },
- { 156, 1 },
- { 157, 1 },
- { 157, 2 },
- { 158, 1 },
- { 158, 1 },
+ { 154, 3 },
+ { 191, 1 },
+ { 191, 1 },
+ { 162, 4 },
+ { 162, 6 },
+ { 162, 6 },
+ { 160, 1 },
+ { 160, 1 },
+ { 161, 1 },
+ { 161, 3 },
+ { 160, 3 },
+ { 159, 3 },
+ { 163, 3 },
+ { 164, 3 },
+ { 165, 1 },
+ { 165, 3 },
+ { 166, 4 },
+ { 158, 3 },
+ { 176, 0 },
+ { 176, 1 },
+ { 177, 0 },
+ { 177, 1 },
+ { 178, 1 },
+ { 178, 2 },
+ { 179, 1 },
+ { 180, 1 },
+ { 180, 2 },
+ { 181, 1 },
+ { 181, 1 },
+ { 181, 1 },
};
static void yy_accept(yyParser*); /* Forward Declaration */
*/
/********** Begin reduce actions **********************************************/
YYMINORTYPE yylhsminor;
- case 0: /* block ::= LIB QUOTED_STRING EOS */
-#line 180 "src/parser_proc.y"
+ case 0: /* block ::= HASH cpp_exp EOL */
+{ yy_destructor(yypParser,78,&yymsp[-2].minor);
+#line 199 "src/parser_proc.y"
+{
+ P->cpp.exp = yymsp[-1].minor.yy274;
+}
+#line 2041 "src/parser_proc.c"
+ yy_destructor(yypParser,76,&yymsp[0].minor);
+}
+ break;
+ case 1: /* cpp_exp ::= ERROR|WARNING QUOTED_STRING */
+ case 2: /* cpp_exp ::= IFDEF NAME */ yytestcase(yyruleno==2);
+ case 3: /* cpp_exp ::= IFNDEF NAME */ yytestcase(yyruleno==3);
+ case 6: /* cpp_exp ::= UNDEF NAME */ yytestcase(yyruleno==6);
+#line 202 "src/parser_proc.y"
+{
+ yylhsminor.yy274 = psi_cpp_exp_init(yymsp[-1].minor.yy0->type, yymsp[0].minor.yy0);
+ yylhsminor.yy274->token = yymsp[-1].minor.yy0;
+}
+#line 2054 "src/parser_proc.c"
+ yymsp[-1].minor.yy274 = yylhsminor.yy274;
+ break;
+ case 4: /* cpp_exp ::= ENDIF */
+ case 5: /* cpp_exp ::= ELSE */ yytestcase(yyruleno==5);
+#line 214 "src/parser_proc.y"
+{
+ yylhsminor.yy274 = psi_cpp_exp_init(yymsp[0].minor.yy0->type, NULL);
+ yylhsminor.yy274->token = yymsp[0].minor.yy0;
+}
+#line 2064 "src/parser_proc.c"
+ yymsp[0].minor.yy274 = yylhsminor.yy274;
+ break;
+ case 7: /* cpp_exp ::= DEFINE NAME cpp_macro_decl */
+#line 226 "src/parser_proc.y"
+{
+ yylhsminor.yy274 = psi_cpp_exp_init(yymsp[-2].minor.yy0->type, yymsp[0].minor.yy134);
+ yylhsminor.yy274->token = yymsp[-2].minor.yy0;
+ yymsp[0].minor.yy134->token = yymsp[-1].minor.yy0;
+}
+#line 2074 "src/parser_proc.c"
+ yymsp[-2].minor.yy274 = yylhsminor.yy274;
+ break;
+ case 8: /* cpp_macro_decl ::= */
+#line 231 "src/parser_proc.y"
+{
+ yymsp[1].minor.yy134 = psi_cpp_macro_decl_init(NULL, NULL, NULL);
+}
+#line 2082 "src/parser_proc.c"
+ break;
+ case 9: /* cpp_macro_decl ::= cpp_macro_sig */
+#line 234 "src/parser_proc.y"
+{
+ yylhsminor.yy134 = psi_cpp_macro_decl_init(yymsp[0].minor.yy179, NULL, NULL);
+}
+#line 2089 "src/parser_proc.c"
+ yymsp[0].minor.yy134 = yylhsminor.yy134;
+ break;
+ case 10: /* cpp_macro_decl ::= cpp_macro_sig cpp_macro_decl_tokens */
+#line 237 "src/parser_proc.y"
+{
+ yylhsminor.yy134 = psi_cpp_macro_decl_init(yymsp[-1].minor.yy179, yymsp[0].minor.yy179, NULL);
+}
+#line 2097 "src/parser_proc.c"
+ yymsp[-1].minor.yy134 = yylhsminor.yy134;
+ break;
+ case 11: /* cpp_macro_sig ::= NO_WHITESPACE LPAREN cpp_macro_sig_args RPAREN */
+{ yy_destructor(yypParser,85,&yymsp[-3].minor);
+#line 240 "src/parser_proc.y"
+{
+ yymsp[-3].minor.yy179 = yymsp[-1].minor.yy179;
+}
+#line 2106 "src/parser_proc.c"
+ yy_destructor(yypParser,86,&yymsp[-2].minor);
+ yy_destructor(yypParser,87,&yymsp[0].minor);
+}
+ break;
+ case 12: /* cpp_macro_sig_args ::= */
+ case 28: /* cpp_macro_call_args ::= */ yytestcase(yyruleno==28);
+ case 83: /* decl_args ::= */ yytestcase(yyruleno==83);
+#line 243 "src/parser_proc.y"
+{
+ yymsp[1].minor.yy179 = NULL;
+}
+#line 2118 "src/parser_proc.c"
+ break;
+ case 13: /* cpp_macro_sig_args ::= NAME */
+ case 16: /* cpp_macro_decl_tokens ::= ANY */ yytestcase(yyruleno==16);
+#line 246 "src/parser_proc.y"
+{
+ yylhsminor.yy179 = psi_plist_add(psi_plist_init((void (*)(void *)) psi_token_free), &yymsp[0].minor.yy0);
+}
+#line 2126 "src/parser_proc.c"
+ yymsp[0].minor.yy179 = yylhsminor.yy179;
+ break;
+ case 14: /* cpp_macro_sig_args ::= cpp_macro_sig_args COMMA NAME */
+#line 249 "src/parser_proc.y"
+{
+ yylhsminor.yy179 = psi_plist_add(yymsp[-2].minor.yy179, &yymsp[0].minor.yy0);
+}
+#line 2134 "src/parser_proc.c"
+ yy_destructor(yypParser,88,&yymsp[-1].minor);
+ yymsp[-2].minor.yy179 = yylhsminor.yy179;
+ break;
+ case 15: /* cpp_macro_decl ::= cpp_macro_decl_tokens */
+#line 252 "src/parser_proc.y"
+{
+ yylhsminor.yy134 = psi_cpp_macro_decl_init(NULL, yymsp[0].minor.yy179, NULL);
+}
+#line 2143 "src/parser_proc.c"
+ yymsp[0].minor.yy134 = yylhsminor.yy134;
+ break;
+ case 17: /* cpp_macro_decl_tokens ::= cpp_macro_decl_tokens ANY */
+#line 258 "src/parser_proc.y"
+{
+ yylhsminor.yy179 = psi_plist_add(yymsp[-1].minor.yy179, &yymsp[0].minor.yy0);
+}
+#line 2151 "src/parser_proc.c"
+ yymsp[-1].minor.yy179 = yylhsminor.yy179;
+ break;
+ case 18: /* cpp_exp ::= IF cpp_macro_exp */
+ case 19: /* cpp_exp ::= ELIF cpp_macro_exp */ yytestcase(yyruleno==19);
+#line 261 "src/parser_proc.y"
+{
+ yylhsminor.yy274 = psi_cpp_exp_init(yymsp[-1].minor.yy0->type, yymsp[0].minor.yy207);
+ yylhsminor.yy274->token = yymsp[-1].minor.yy0;
+}
+#line 2161 "src/parser_proc.c"
+ yymsp[-1].minor.yy274 = yylhsminor.yy274;
+ break;
+ case 20: /* cpp_macro_exp ::= LPAREN cpp_macro_exp RPAREN */
+#line 269 "src/parser_proc.y"
+{
+ yylhsminor.yy207 = psi_num_exp_init_unary(yymsp[-2].minor.yy0->type, yymsp[-1].minor.yy207);
+ yylhsminor.yy207->token = yymsp[-2].minor.yy0;
+}
+#line 2170 "src/parser_proc.c"
+ yy_destructor(yypParser,87,&yymsp[0].minor);
+ yymsp[-2].minor.yy207 = yylhsminor.yy207;
+ break;
+ case 21: /* cpp_macro_exp ::= TILDE|NOT|PLUS|MINUS cpp_macro_exp */
+ case 139: /* num_exp ::= TILDE|NOT|PLUS|MINUS num_exp */ yytestcase(yyruleno==139);
+#line 273 "src/parser_proc.y"
+{
+ yylhsminor.yy207 = psi_num_exp_init_unary(yymsp[-1].minor.yy0->type, yymsp[0].minor.yy207);
+ yylhsminor.yy207->token = yymsp[-1].minor.yy0;
+}
+#line 2181 "src/parser_proc.c"
+ yymsp[-1].minor.yy207 = yylhsminor.yy207;
+ break;
+ case 22: /* cpp_macro_exp ::= cpp_macro_exp PIPE|CARET|AMPERSAND|LSHIFT|RSHIFT|PLUS|MINUS|ASTERISK|SLASH|MODULO|RCHEVR|LCHEVR|CMP_GE|CMP_LE|OR|AND|CMP_EQ|CMP_NE cpp_macro_exp */
+ case 138: /* 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 */ yytestcase(yyruleno==138);
+#line 277 "src/parser_proc.y"
+{
+ yylhsminor.yy207 = psi_num_exp_init_binary(yymsp[-1].minor.yy0->type, yymsp[-2].minor.yy207, yymsp[0].minor.yy207);
+ yylhsminor.yy207->token = yymsp[-1].minor.yy0;
+}
+#line 2191 "src/parser_proc.c"
+ yymsp[-2].minor.yy207 = yylhsminor.yy207;
+ break;
+ case 23: /* cpp_macro_exp ::= DEFINED NAME */
+{ yy_destructor(yypParser,91,&yymsp[-1].minor);
+#line 281 "src/parser_proc.y"
+{
+ {
+ uint8_t exists = zend_hash_str_exists(&P->cpp.defs, yymsp[0].minor.yy0->text, yymsp[0].minor.yy0->size);
+ yymsp[-1].minor.yy207 = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8, &exists));
+ yymsp[-1].minor.yy207->token = yymsp[0].minor.yy0;
+ }
+}
+#line 2204 "src/parser_proc.c"
+}
+ break;
+ case 24: /* cpp_macro_exp ::= DEFINED LPAREN NAME RPAREN */
+{ yy_destructor(yypParser,91,&yymsp[-3].minor);
+#line 288 "src/parser_proc.y"
+{
+ {
+ uint8_t exists = zend_hash_str_exists(&P->cpp.defs, yymsp[-1].minor.yy0->text, yymsp[-1].minor.yy0->size);
+ yymsp[-3].minor.yy207 = psi_num_exp_init_num(psi_number_init(PSI_T_UINT8, &exists));
+ yymsp[-3].minor.yy207->token = yymsp[-1].minor.yy0;
+ }
+}
+#line 2217 "src/parser_proc.c"
+ yy_destructor(yypParser,86,&yymsp[-2].minor);
+ yy_destructor(yypParser,87,&yymsp[0].minor);
+}
+ break;
+ case 25: /* cpp_macro_exp ::= NUMBER|NSNAME */
+#line 295 "src/parser_proc.y"
+{
+ yylhsminor.yy207 = psi_num_exp_init_num(psi_number_init(yymsp[0].minor.yy0->type, yymsp[0].minor.yy0->text));
+ yylhsminor.yy207->token = yymsp[0].minor.yy0;
+ yylhsminor.yy207->data.n->token = psi_token_copy(yymsp[0].minor.yy0);
+}
+#line 2229 "src/parser_proc.c"
+ yymsp[0].minor.yy207 = yylhsminor.yy207;
+ break;
+ case 26: /* cpp_macro_exp ::= NAME */
+#line 300 "src/parser_proc.y"
+{
+ yylhsminor.yy207 = psi_num_exp_init_num(psi_number_init(PSI_T_DEFINE, yymsp[0].minor.yy0->text));
+ yylhsminor.yy207->token = yymsp[0].minor.yy0;
+ yylhsminor.yy207->data.n->token = psi_token_copy(yymsp[0].minor.yy0);
+}
+#line 2239 "src/parser_proc.c"
+ yymsp[0].minor.yy207 = yylhsminor.yy207;
+ break;
+ case 27: /* cpp_macro_exp ::= NAME LPAREN cpp_macro_call_args RPAREN */
+#line 305 "src/parser_proc.y"
+{
+ yylhsminor.yy207 = psi_num_exp_init_num(psi_number_init(PSI_T_FUNCTION,
+ psi_cpp_macro_call_init(yymsp[-3].minor.yy0->text, yymsp[-1].minor.yy179)));
+ yylhsminor.yy207->token = yymsp[-3].minor.yy0;
+}
+#line 2249 "src/parser_proc.c"
+ yy_destructor(yypParser,86,&yymsp[-2].minor);
+ yy_destructor(yypParser,87,&yymsp[0].minor);
+ yymsp[-3].minor.yy207 = yylhsminor.yy207;
+ break;
+ case 29: /* cpp_macro_call_args ::= cpp_macro_exp */
+#line 313 "src/parser_proc.y"
+{
+ yylhsminor.yy179 = psi_plist_add(psi_plist_init((void (*)(void *)) psi_num_exp_free), &yymsp[0].minor.yy207);
+}
+#line 2259 "src/parser_proc.c"
+ yymsp[0].minor.yy179 = yylhsminor.yy179;
+ break;
+ case 30: /* cpp_macro_call_args ::= cpp_macro_call_args COMMA cpp_macro_exp */
+#line 316 "src/parser_proc.y"
+{
+ yylhsminor.yy179 = psi_plist_add(yymsp[-2].minor.yy179, &yymsp[0].minor.yy207);
+}
+#line 2267 "src/parser_proc.c"
+ yy_destructor(yypParser,88,&yymsp[-1].minor);
+ yymsp[-2].minor.yy179 = yylhsminor.yy179;
+ break;
+ case 31: /* block ::= LIB QUOTED_STRING EOS */
+#line 319 "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);
free(yymsp[-1].minor.yy0);
free(yymsp[-2].minor.yy0);
}
-#line 1906 "src/parser_proc.c"
- yy_destructor(yypParser,73,&yymsp[0].minor);
+#line 2282 "src/parser_proc.c"
+ yy_destructor(yypParser,75,&yymsp[0].minor);
break;
- case 1: /* block ::= decl */
-#line 189 "src/parser_proc.y"
+ case 32: /* block ::= decl */
+#line 328 "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.yy17);
+ P->decls = psi_plist_add(P->decls, &yymsp[0].minor.yy303);
}
-#line 1917 "src/parser_proc.c"
+#line 2293 "src/parser_proc.c"
break;
- case 2: /* block ::= impl */
-#line 195 "src/parser_proc.y"
+ case 33: /* block ::= impl */
+#line 334 "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.yy303);
+ P->impls = psi_plist_add(P->impls, &yymsp[0].minor.yy49);
}
-#line 1927 "src/parser_proc.c"
+#line 2303 "src/parser_proc.c"
break;
- case 3: /* block ::= decl_typedef */
-#line 201 "src/parser_proc.y"
+ case 34: /* block ::= decl_typedef */
+#line 340 "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.yy64);
- switch (yymsp[0].minor.yy64->type->type) {
+ P->types = psi_plist_add(P->types, &yymsp[0].minor.yy320);
+ switch (yymsp[0].minor.yy320->type->type) {
case PSI_T_STRUCT:
- if (yymsp[0].minor.yy64->type->real.strct) {
+ if (yymsp[0].minor.yy320->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.yy64->type->real.strct);
+ P->structs = psi_plist_add(P->structs, &yymsp[0].minor.yy320->type->real.strct);
}
break;
case PSI_T_UNION:
- if (yymsp[0].minor.yy64->type->real.unn) {
+ if (yymsp[0].minor.yy320->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.yy64->type->real.unn);
+ P->unions = psi_plist_add(P->unions, &yymsp[0].minor.yy320->type->real.unn);
}
break;
case PSI_T_ENUM:
- if (yymsp[0].minor.yy64->type->real.enm) {
+ if (yymsp[0].minor.yy320->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.yy64->type->real.enm);
+ P->enums = psi_plist_add(P->enums, &yymsp[0].minor.yy320->type->real.enm);
}
break;
}
}
-#line 1963 "src/parser_proc.c"
+#line 2339 "src/parser_proc.c"
break;
- case 4: /* block ::= constant */
-#line 233 "src/parser_proc.y"
+ case 35: /* block ::= constant */
+#line 372 "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.yy336);
+ P->consts = psi_plist_add(P->consts, &yymsp[0].minor.yy38);
}
-#line 1973 "src/parser_proc.c"
+#line 2349 "src/parser_proc.c"
break;
- case 5: /* block ::= decl_struct */
-#line 239 "src/parser_proc.y"
+ case 36: /* block ::= decl_struct */
+#line 378 "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.yy137);
+ P->structs = psi_plist_add(P->structs, &yymsp[0].minor.yy324);
}
-#line 1983 "src/parser_proc.c"
+#line 2359 "src/parser_proc.c"
break;
- case 6: /* block ::= decl_union */
-#line 245 "src/parser_proc.y"
+ case 37: /* block ::= decl_union */
+#line 384 "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.yy47);
+ P->unions = psi_plist_add(P->unions, &yymsp[0].minor.yy15);
}
-#line 1993 "src/parser_proc.c"
+#line 2369 "src/parser_proc.c"
break;
- case 7: /* block ::= decl_enum */
-#line 251 "src/parser_proc.y"
+ case 38: /* block ::= decl_enum */
+#line 390 "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.yy87);
+ P->enums = psi_plist_add(P->enums, &yymsp[0].minor.yy323);
}
-#line 2003 "src/parser_proc.c"
+#line 2379 "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 257 "src/parser_proc.y"
+ case 39: /* optional_name ::= */
+ case 73: /* decl_var_array_size ::= */ yytestcase(yyruleno==73);
+ case 95: /* decl_scalar_type_short ::= */ yytestcase(yyruleno==95);
+ case 99: /* decl_scalar_type_long ::= */ yytestcase(yyruleno==99);
+ case 102: /* decl_scalar_type_long_long ::= */ yytestcase(yyruleno==102);
+#line 396 "src/parser_proc.y"
{
yymsp[1].minor.yy0 = NULL;
}
-#line 2014 "src/parser_proc.c"
+#line 2390 "src/parser_proc.c"
break;
- case 9: /* optional_name ::= NAME */
- case 62: /* decl_scalar_type ::= CHAR */ yytestcase(yyruleno==62);
- case 65: /* decl_scalar_type_short ::= INT */ yytestcase(yyruleno==65);
- 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 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"
+ case 40: /* optional_name ::= NAME */
+ case 93: /* decl_scalar_type ::= CHAR */ yytestcase(yyruleno==93);
+ case 96: /* decl_scalar_type_short ::= INT */ yytestcase(yyruleno==96);
+ case 97: /* decl_scalar_type ::= INT */ yytestcase(yyruleno==97);
+ case 100: /* decl_scalar_type_long ::= DOUBLE */ yytestcase(yyruleno==100);
+ case 103: /* decl_scalar_type_long_long ::= INT */ yytestcase(yyruleno==103);
+ case 162: /* callback_rval ::= ZVAL|OBJVAL|ARRVAL|PATHVAL|STRLEN|STRVAL|FLOATVAL|INTVAL|BOOLVAL|COUNT */ yytestcase(yyruleno==162);
+ case 163: /* callback_rval ::= VOID */ yytestcase(yyruleno==163);
+#line 399 "src/parser_proc.y"
{
yylhsminor.yy0 = yymsp[0].minor.yy0;
}
-#line 2028 "src/parser_proc.c"
+#line 2404 "src/parser_proc.c"
yymsp[0].minor.yy0 = yylhsminor.yy0;
break;
- case 10: /* align_and_size ::= */
-#line 263 "src/parser_proc.y"
+ case 41: /* align_and_size ::= */
+#line 402 "src/parser_proc.y"
{
- yymsp[1].minor.yy207.pos = 0;
- yymsp[1].minor.yy207.len = 0;
+ yymsp[1].minor.yy239.pos = 0;
+ yymsp[1].minor.yy239.len = 0;
}
-#line 2037 "src/parser_proc.c"
+#line 2413 "src/parser_proc.c"
break;
- case 11: /* align_and_size ::= COLON COLON LPAREN NUMBER COMMA NUMBER RPAREN */
-{ yy_destructor(yypParser,74,&yymsp[-6].minor);
-#line 267 "src/parser_proc.y"
+ case 42: /* align_and_size ::= COLON COLON LPAREN NUMBER COMMA NUMBER RPAREN */
+{ yy_destructor(yypParser,92,&yymsp[-6].minor);
+#line 406 "src/parser_proc.y"
{
- yymsp[-6].minor.yy207.pos = atol(yymsp[-3].minor.yy0->text);
- yymsp[-6].minor.yy207.len = atol(yymsp[-1].minor.yy0->text);
+ yymsp[-6].minor.yy239.pos = atol(yymsp[-3].minor.yy0->text);
+ yymsp[-6].minor.yy239.len = atol(yymsp[-1].minor.yy0->text);
free(yymsp[-3].minor.yy0);
free(yymsp[-1].minor.yy0);
}
-#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);
+#line 2424 "src/parser_proc.c"
+ yy_destructor(yypParser,92,&yymsp[-5].minor);
+ yy_destructor(yypParser,86,&yymsp[-4].minor);
+ yy_destructor(yypParser,88,&yymsp[-2].minor);
+ yy_destructor(yypParser,87,&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 273 "src/parser_proc.y"
+ case 43: /* enum_name ::= ENUM optional_name */
+ case 44: /* struct_name ::= STRUCT optional_name */ yytestcase(yyruleno==44);
+ case 45: /* union_name ::= UNION optional_name */ yytestcase(yyruleno==45);
+#line 412 "src/parser_proc.y"
{
if (yymsp[0].minor.yy0) {
yylhsminor.yy0 = yymsp[0].minor.yy0;
yylhsminor.yy0 = psi_token_translit(psi_token_append(yymsp[-1].minor.yy0, 1, digest), " ", "@");
}
}
-#line 2069 "src/parser_proc.c"
+#line 2445 "src/parser_proc.c"
yymsp[-1].minor.yy0 = yylhsminor.yy0;
break;
- case 15: /* decl_enum ::= enum_name LBRACE decl_enum_items RBRACE */
-#line 303 "src/parser_proc.y"
+ case 46: /* decl_enum ::= enum_name LBRACE decl_enum_items RBRACE */
+#line 442 "src/parser_proc.y"
{
- yylhsminor.yy87 = psi_decl_enum_init(yymsp[-3].minor.yy0->text, yymsp[-1].minor.yy7);
- yylhsminor.yy87->token = yymsp[-3].minor.yy0;
+ yylhsminor.yy323 = psi_decl_enum_init(yymsp[-3].minor.yy0->text, yymsp[-1].minor.yy179);
+ yylhsminor.yy323->token = yymsp[-3].minor.yy0;
}
-#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;
+#line 2454 "src/parser_proc.c"
+ yy_destructor(yypParser,96,&yymsp[-2].minor);
+ yy_destructor(yypParser,97,&yymsp[0].minor);
+ yymsp[-3].minor.yy323 = yylhsminor.yy323;
break;
- case 16: /* decl_enum_items ::= decl_enum_item */
-#line 307 "src/parser_proc.y"
+ case 47: /* decl_enum_items ::= decl_enum_item */
+#line 446 "src/parser_proc.y"
{
- yylhsminor.yy7 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_enum_item_free),
- &yymsp[0].minor.yy109);
+ yylhsminor.yy179 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_enum_item_free),
+ &yymsp[0].minor.yy169);
}
-#line 2089 "src/parser_proc.c"
- yymsp[0].minor.yy7 = yylhsminor.yy7;
+#line 2465 "src/parser_proc.c"
+ yymsp[0].minor.yy179 = yylhsminor.yy179;
break;
- case 17: /* decl_enum_items ::= decl_enum_items COMMA decl_enum_item */
-#line 311 "src/parser_proc.y"
+ case 48: /* decl_enum_items ::= decl_enum_items COMMA decl_enum_item */
+#line 450 "src/parser_proc.y"
{
- yylhsminor.yy7 = psi_plist_add(yymsp[-2].minor.yy7, &yymsp[0].minor.yy109);
+ yylhsminor.yy179 = psi_plist_add(yymsp[-2].minor.yy179, &yymsp[0].minor.yy169);
}
-#line 2097 "src/parser_proc.c"
- yy_destructor(yypParser,76,&yymsp[-1].minor);
- yymsp[-2].minor.yy7 = yylhsminor.yy7;
+#line 2473 "src/parser_proc.c"
+ yy_destructor(yypParser,88,&yymsp[-1].minor);
+ yymsp[-2].minor.yy179 = yylhsminor.yy179;
break;
- case 18: /* decl_enum_item ::= NAME EQUALS num_exp */
-#line 314 "src/parser_proc.y"
+ case 49: /* decl_enum_item ::= NAME EQUALS num_exp */
+#line 453 "src/parser_proc.y"
{
- yylhsminor.yy109 = psi_decl_enum_item_init(yymsp[-2].minor.yy0->text, yymsp[0].minor.yy124);
- yylhsminor.yy109->token = yymsp[-2].minor.yy0;
+ yylhsminor.yy169 = psi_decl_enum_item_init(yymsp[-2].minor.yy0->text, yymsp[0].minor.yy207);
+ yylhsminor.yy169->token = yymsp[-2].minor.yy0;
}
-#line 2107 "src/parser_proc.c"
- yy_destructor(yypParser,83,&yymsp[-1].minor);
- yymsp[-2].minor.yy109 = yylhsminor.yy109;
+#line 2483 "src/parser_proc.c"
+ yy_destructor(yypParser,98,&yymsp[-1].minor);
+ yymsp[-2].minor.yy169 = yylhsminor.yy169;
break;
- case 19: /* decl_enum_item ::= NAME */
-#line 318 "src/parser_proc.y"
+ case 50: /* decl_enum_item ::= NAME */
+#line 457 "src/parser_proc.y"
{
- yylhsminor.yy109 = psi_decl_enum_item_init(yymsp[0].minor.yy0->text, NULL);
- yylhsminor.yy109->token = yymsp[0].minor.yy0;
+ yylhsminor.yy169 = psi_decl_enum_item_init(yymsp[0].minor.yy0->text, NULL);
+ yylhsminor.yy169->token = yymsp[0].minor.yy0;
}
-#line 2117 "src/parser_proc.c"
- yymsp[0].minor.yy109 = yylhsminor.yy109;
+#line 2493 "src/parser_proc.c"
+ yymsp[0].minor.yy169 = yylhsminor.yy169;
break;
- case 20: /* decl_struct_args_block ::= LBRACE struct_args RBRACE */
-{ yy_destructor(yypParser,81,&yymsp[-2].minor);
-#line 322 "src/parser_proc.y"
+ case 51: /* decl_struct_args_block ::= LBRACE struct_args RBRACE */
+{ yy_destructor(yypParser,96,&yymsp[-2].minor);
+#line 461 "src/parser_proc.y"
{
- yymsp[-2].minor.yy7 = yymsp[-1].minor.yy7;
+ yymsp[-2].minor.yy179 = yymsp[-1].minor.yy179;
}
-#line 2126 "src/parser_proc.c"
- yy_destructor(yypParser,82,&yymsp[0].minor);
+#line 2502 "src/parser_proc.c"
+ yy_destructor(yypParser,97,&yymsp[0].minor);
}
break;
- case 21: /* decl_struct_args ::= decl_struct_args_block */
-#line 325 "src/parser_proc.y"
+ case 52: /* decl_struct_args ::= decl_struct_args_block */
+#line 464 "src/parser_proc.y"
{
- yylhsminor.yy7 = yymsp[0].minor.yy7;
+ yylhsminor.yy179 = yymsp[0].minor.yy179;
}
-#line 2135 "src/parser_proc.c"
- yymsp[0].minor.yy7 = yylhsminor.yy7;
+#line 2511 "src/parser_proc.c"
+ yymsp[0].minor.yy179 = yylhsminor.yy179;
break;
- case 22: /* decl_struct_args ::= EOS */
-{ yy_destructor(yypParser,73,&yymsp[0].minor);
-#line 328 "src/parser_proc.y"
+ case 53: /* decl_struct_args ::= EOS */
+{ yy_destructor(yypParser,75,&yymsp[0].minor);
+#line 467 "src/parser_proc.y"
{
- yymsp[0].minor.yy7 = psi_plist_init((psi_plist_dtor) psi_decl_arg_free);
+ yymsp[0].minor.yy179 = psi_plist_init((psi_plist_dtor) psi_decl_arg_free);
}
-#line 2144 "src/parser_proc.c"
+#line 2520 "src/parser_proc.c"
}
break;
- case 23: /* decl_struct ::= STRUCT NAME align_and_size decl_struct_args */
-{ yy_destructor(yypParser,79,&yymsp[-3].minor);
-#line 331 "src/parser_proc.y"
+ case 54: /* decl_struct ::= STRUCT NAME align_and_size decl_struct_args */
+{ yy_destructor(yypParser,94,&yymsp[-3].minor);
+#line 470 "src/parser_proc.y"
{
- 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;
+ yymsp[-3].minor.yy324 = psi_decl_struct_init(yymsp[-2].minor.yy0->text, yymsp[0].minor.yy179);
+ yymsp[-3].minor.yy324->align = yymsp[-1].minor.yy239.pos;
+ yymsp[-3].minor.yy324->size = yymsp[-1].minor.yy239.len;
+ yymsp[-3].minor.yy324->token = yymsp[-2].minor.yy0;
}
-#line 2156 "src/parser_proc.c"
+#line 2532 "src/parser_proc.c"
}
break;
- case 24: /* decl_union ::= UNION NAME align_and_size decl_struct_args */
-{ yy_destructor(yypParser,80,&yymsp[-3].minor);
-#line 337 "src/parser_proc.y"
+ case 55: /* decl_union ::= UNION NAME align_and_size decl_struct_args */
+{ yy_destructor(yypParser,95,&yymsp[-3].minor);
+#line 476 "src/parser_proc.y"
{
- 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;
+ yymsp[-3].minor.yy15 = psi_decl_union_init(yymsp[-2].minor.yy0->text, yymsp[0].minor.yy179);
+ yymsp[-3].minor.yy15->align = yymsp[-1].minor.yy239.pos;
+ yymsp[-3].minor.yy15->size = yymsp[-1].minor.yy239.len;
+ yymsp[-3].minor.yy15->token = yymsp[-2].minor.yy0;
}
-#line 2168 "src/parser_proc.c"
+#line 2544 "src/parser_proc.c"
}
break;
- case 25: /* const_type ::= BOOL|INT|FLOAT|STRING */
-#line 343 "src/parser_proc.y"
+ case 56: /* const_type ::= BOOL|INT|FLOAT|STRING */
+#line 482 "src/parser_proc.y"
{
- yylhsminor.yy181 = psi_const_type_init(yymsp[0].minor.yy0->type, yymsp[0].minor.yy0->text);
+ yylhsminor.yy351 = psi_const_type_init(yymsp[0].minor.yy0->type, yymsp[0].minor.yy0->text);
free(yymsp[0].minor.yy0);
}
-#line 2177 "src/parser_proc.c"
- yymsp[0].minor.yy181 = yylhsminor.yy181;
+#line 2553 "src/parser_proc.c"
+ yymsp[0].minor.yy351 = yylhsminor.yy351;
break;
- case 26: /* constant ::= CONST const_type NSNAME EQUALS impl_def_val EOS */
-{ yy_destructor(yypParser,84,&yymsp[-5].minor);
-#line 347 "src/parser_proc.y"
+ case 57: /* constant ::= CONST const_type NSNAME EQUALS impl_def_val EOS */
+{ yy_destructor(yypParser,99,&yymsp[-5].minor);
+#line 486 "src/parser_proc.y"
{
- 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;
+ yymsp[-5].minor.yy38 = psi_const_init(yymsp[-4].minor.yy351, yymsp[-3].minor.yy0->text, yymsp[-1].minor.yy145);
+ yymsp[-5].minor.yy38->token = yymsp[-3].minor.yy0;
}
-#line 2187 "src/parser_proc.c"
- yy_destructor(yypParser,83,&yymsp[-2].minor);
- yy_destructor(yypParser,73,&yymsp[0].minor);
+#line 2563 "src/parser_proc.c"
+ yy_destructor(yypParser,98,&yymsp[-2].minor);
+ yy_destructor(yypParser,75,&yymsp[0].minor);
}
break;
- case 27: /* decl_typedef ::= TYPEDEF decl_typedef_body EOS */
-#line 351 "src/parser_proc.y"
+ case 58: /* decl_typedef ::= TYPEDEF decl_typedef_body EOS */
+#line 490 "src/parser_proc.y"
{
- yylhsminor.yy64 = yymsp[-1].minor.yy64;
- yylhsminor.yy64->token = yymsp[-2].minor.yy0;
+ yylhsminor.yy320 = yymsp[-1].minor.yy320;
+ yylhsminor.yy320->token = yymsp[-2].minor.yy0;
}
-#line 2198 "src/parser_proc.c"
- yy_destructor(yypParser,73,&yymsp[0].minor);
- yymsp[-2].minor.yy64 = yylhsminor.yy64;
+#line 2574 "src/parser_proc.c"
+ yy_destructor(yypParser,75,&yymsp[0].minor);
+ yymsp[-2].minor.yy320 = yylhsminor.yy320;
break;
- case 28: /* decl_typedef_body_ex ::= struct_name align_and_size decl_struct_args_block decl_var */
-#line 355 "src/parser_proc.y"
+ case 59: /* decl_typedef_body_ex ::= struct_name align_and_size decl_struct_args_block decl_var */
+#line 494 "src/parser_proc.y"
{
- 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;
+ yylhsminor.yy320 = psi_decl_arg_init(psi_decl_type_init(PSI_T_STRUCT, yymsp[-3].minor.yy0->text), yymsp[0].minor.yy271);
+ yylhsminor.yy320->type->token = psi_token_copy(yymsp[-3].minor.yy0);
+ yylhsminor.yy320->type->real.strct = psi_decl_struct_init(yymsp[-3].minor.yy0->text, yymsp[-1].minor.yy179);
+ yylhsminor.yy320->type->real.strct->token = yymsp[-3].minor.yy0;
+ yylhsminor.yy320->type->real.strct->align = yymsp[-2].minor.yy239.pos;
+ yylhsminor.yy320->type->real.strct->size = yymsp[-2].minor.yy239.len;
}
-#line 2212 "src/parser_proc.c"
- yymsp[-3].minor.yy64 = yylhsminor.yy64;
+#line 2588 "src/parser_proc.c"
+ yymsp[-3].minor.yy320 = yylhsminor.yy320;
break;
- case 29: /* decl_typedef_body_ex ::= union_name align_and_size decl_struct_args_block decl_var */
-#line 363 "src/parser_proc.y"
+ case 60: /* decl_typedef_body_ex ::= union_name align_and_size decl_struct_args_block decl_var */
+#line 502 "src/parser_proc.y"
{
- 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;
+ yylhsminor.yy320 = psi_decl_arg_init(psi_decl_type_init(PSI_T_UNION, yymsp[-3].minor.yy0->text), yymsp[0].minor.yy271);
+ yylhsminor.yy320->type->token = psi_token_copy(yymsp[-3].minor.yy0);
+ yylhsminor.yy320->type->real.unn = psi_decl_union_init(yymsp[-3].minor.yy0->text, yymsp[-1].minor.yy179);
+ yylhsminor.yy320->type->real.unn->token = yymsp[-3].minor.yy0;
+ yylhsminor.yy320->type->real.unn->align = yymsp[-2].minor.yy239.pos;
+ yylhsminor.yy320->type->real.unn->size = yymsp[-2].minor.yy239.len;
}
-#line 2225 "src/parser_proc.c"
- yymsp[-3].minor.yy64 = yylhsminor.yy64;
+#line 2601 "src/parser_proc.c"
+ yymsp[-3].minor.yy320 = yylhsminor.yy320;
break;
- case 30: /* decl_typedef_body_ex ::= decl_enum NAME */
-#line 371 "src/parser_proc.y"
+ case 61: /* decl_typedef_body_ex ::= decl_enum NAME */
+#line 510 "src/parser_proc.y"
{
- 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;
+ yylhsminor.yy320 = psi_decl_arg_init(psi_decl_type_init(PSI_T_ENUM, yymsp[-1].minor.yy323->name), psi_decl_var_init(yymsp[0].minor.yy0->text, 0, 0));
+ yylhsminor.yy320->var->token = yymsp[0].minor.yy0;
+ yylhsminor.yy320->type->token = psi_token_copy(yymsp[-1].minor.yy323->token);
+ yylhsminor.yy320->type->real.enm = yymsp[-1].minor.yy323;
}
-#line 2236 "src/parser_proc.c"
- yymsp[-1].minor.yy64 = yylhsminor.yy64;
+#line 2612 "src/parser_proc.c"
+ yymsp[-1].minor.yy320 = yylhsminor.yy320;
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 377 "src/parser_proc.y"
+ case 62: /* decl_typedef_body ::= decl_typedef_body_ex */
+ case 65: /* decl_typedef_body ::= decl_arg */ yytestcase(yyruleno==65);
+ case 68: /* decl_func ::= decl_arg */ yytestcase(yyruleno==68);
+#line 516 "src/parser_proc.y"
{
- yylhsminor.yy64 = yymsp[0].minor.yy64;
+ yylhsminor.yy320 = yymsp[0].minor.yy320;
}
-#line 2246 "src/parser_proc.c"
- yymsp[0].minor.yy64 = yylhsminor.yy64;
+#line 2622 "src/parser_proc.c"
+ yymsp[0].minor.yy320 = yylhsminor.yy320;
break;
- case 32: /* decl_typedef_body_fn_args ::= LPAREN decl_args RPAREN */
-{ yy_destructor(yypParser,75,&yymsp[-2].minor);
-#line 380 "src/parser_proc.y"
+ case 63: /* decl_typedef_body_fn_args ::= LPAREN decl_args RPAREN */
+{ yy_destructor(yypParser,86,&yymsp[-2].minor);
+#line 519 "src/parser_proc.y"
{
- yymsp[-2].minor.yy7 = yymsp[-1].minor.yy7;
+ yymsp[-2].minor.yy179 = yymsp[-1].minor.yy179;
}
-#line 2255 "src/parser_proc.c"
- yy_destructor(yypParser,77,&yymsp[0].minor);
+#line 2631 "src/parser_proc.c"
+ yy_destructor(yypParser,87,&yymsp[0].minor);
}
break;
- case 33: /* decl_typedef_body ::= decl_func decl_typedef_body_fn_args */
-#line 383 "src/parser_proc.y"
+ case 64: /* decl_typedef_body ::= decl_func decl_typedef_body_fn_args */
+#line 522 "src/parser_proc.y"
{
- 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);
+ yylhsminor.yy320 = psi_decl_arg_init(psi_decl_type_init(PSI_T_FUNCTION, yymsp[-1].minor.yy320->var->name), psi_decl_var_copy(yymsp[-1].minor.yy320->var));
+ yylhsminor.yy320->type->token = psi_token_copy(yymsp[-1].minor.yy320->token);
+ yylhsminor.yy320->type->real.func = psi_decl_init(psi_decl_abi_init("default"), yymsp[-1].minor.yy320, yymsp[0].minor.yy179);
}
-#line 2266 "src/parser_proc.c"
- yymsp[-1].minor.yy64 = yylhsminor.yy64;
+#line 2642 "src/parser_proc.c"
+ yymsp[-1].minor.yy320 = yylhsminor.yy320;
break;
- case 35: /* decl ::= decl_abi decl_func LPAREN decl_args RPAREN EOS */
-#line 391 "src/parser_proc.y"
+ case 66: /* decl ::= decl_abi decl_func LPAREN decl_args RPAREN EOS */
+#line 530 "src/parser_proc.y"
{
- yylhsminor.yy17 = psi_decl_init(yymsp[-5].minor.yy180, yymsp[-4].minor.yy64, yymsp[-2].minor.yy7);
+ yylhsminor.yy303 = psi_decl_init(yymsp[-5].minor.yy26, yymsp[-4].minor.yy320, yymsp[-2].minor.yy179);
}
-#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;
+#line 2650 "src/parser_proc.c"
+ yy_destructor(yypParser,86,&yymsp[-3].minor);
+ yy_destructor(yypParser,87,&yymsp[-1].minor);
+ yy_destructor(yypParser,75,&yymsp[0].minor);
+ yymsp[-5].minor.yy303 = yylhsminor.yy303;
break;
- case 36: /* decl ::= decl_abi decl_func LPAREN decl_args COMMA ELLIPSIS RPAREN EOS */
-#line 394 "src/parser_proc.y"
+ case 67: /* decl ::= decl_abi decl_func LPAREN decl_args COMMA ELLIPSIS RPAREN EOS */
+#line 533 "src/parser_proc.y"
{
- yylhsminor.yy17 = psi_decl_init(yymsp[-7].minor.yy180, yymsp[-6].minor.yy64, yymsp[-4].minor.yy7);
- yylhsminor.yy17->varargs = 1;
+ yylhsminor.yy303 = psi_decl_init(yymsp[-7].minor.yy26, yymsp[-6].minor.yy320, yymsp[-4].minor.yy179);
+ yylhsminor.yy303->varargs = 1;
}
-#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;
+#line 2662 "src/parser_proc.c"
+ yy_destructor(yypParser,86,&yymsp[-5].minor);
+ yy_destructor(yypParser,88,&yymsp[-3].minor);
+ yy_destructor(yypParser,101,&yymsp[-2].minor);
+ yy_destructor(yypParser,87,&yymsp[-1].minor);
+ yy_destructor(yypParser,75,&yymsp[0].minor);
+ yymsp[-7].minor.yy303 = yylhsminor.yy303;
break;
- case 38: /* decl_func ::= VOID NAME */
-#line 401 "src/parser_proc.y"
+ case 69: /* decl_func ::= VOID NAME */
+#line 540 "src/parser_proc.y"
{
- yylhsminor.yy64 = psi_decl_arg_init(
+ yylhsminor.yy320 = 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.yy64->type->token = yymsp[-1].minor.yy0;
- yylhsminor.yy64->var->token = yymsp[0].minor.yy0;
- yylhsminor.yy64->token = yymsp[0].minor.yy0;
+ yylhsminor.yy320->type->token = yymsp[-1].minor.yy0;
+ yylhsminor.yy320->var->token = yymsp[0].minor.yy0;
+ yylhsminor.yy320->token = yymsp[0].minor.yy0;
}
-#line 2305 "src/parser_proc.c"
- yymsp[-1].minor.yy64 = yylhsminor.yy64;
+#line 2681 "src/parser_proc.c"
+ yymsp[-1].minor.yy320 = yylhsminor.yy320;
break;
- case 39: /* decl_typedef_body ::= VOID indirection LPAREN indirection NAME RPAREN decl_typedef_body_fn_args */
-#line 410 "src/parser_proc.y"
+ case 70: /* decl_typedef_body ::= VOID indirection LPAREN indirection NAME RPAREN decl_typedef_body_fn_args */
+#line 549 "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.yy296, 0)
+ psi_decl_var_init(yymsp[-2].minor.yy0->text, yymsp[-5].minor.yy382, 0)
);
func_->type->token = yymsp[-6].minor.yy0;
func_->var->token = yymsp[-2].minor.yy0;
func_->token = yymsp[-2].minor.yy0;
- yylhsminor.yy64 = psi_decl_arg_init(
+ yylhsminor.yy320 = psi_decl_arg_init(
psi_decl_type_init(PSI_T_FUNCTION, func_->var->name),
psi_decl_var_copy(func_->var)
);
- 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);
+ yylhsminor.yy320->var->pointer_level = yymsp[-3].minor.yy382;
+ yylhsminor.yy320->type->token = psi_token_copy(func_->token);
+ yylhsminor.yy320->type->real.func = psi_decl_init(psi_decl_abi_init("default"), func_, yymsp[0].minor.yy179);
}
-#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;
+#line 2702 "src/parser_proc.c"
+ yy_destructor(yypParser,86,&yymsp[-4].minor);
+ yy_destructor(yypParser,87,&yymsp[-1].minor);
+ yymsp[-6].minor.yy320 = yylhsminor.yy320;
break;
- case 40: /* decl_typedef_body ::= CONST VOID pointers LPAREN indirection NAME RPAREN decl_typedef_body_fn_args */
-{ yy_destructor(yypParser,84,&yymsp[-7].minor);
-#line 426 "src/parser_proc.y"
+ case 71: /* decl_typedef_body ::= CONST VOID pointers LPAREN indirection NAME RPAREN decl_typedef_body_fn_args */
+{ yy_destructor(yypParser,99,&yymsp[-7].minor);
+#line 565 "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.yy296, 0)
+ psi_decl_var_init(yymsp[-2].minor.yy0->text, yymsp[-5].minor.yy382, 0)
);
func_->type->token = yymsp[-6].minor.yy0;
func_->var->token = yymsp[-2].minor.yy0;
func_->token = yymsp[-2].minor.yy0;
- yymsp[-7].minor.yy64 = psi_decl_arg_init(
+ yymsp[-7].minor.yy320 = psi_decl_arg_init(
psi_decl_type_init(PSI_T_FUNCTION, func_->var->name),
psi_decl_var_copy(func_->var)
);
- 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);
+ yymsp[-7].minor.yy320->var->pointer_level = yymsp[-3].minor.yy382;
+ yymsp[-7].minor.yy320->type->token = psi_token_copy(func_->token);
+ yymsp[-7].minor.yy320->type->real.func = psi_decl_init(psi_decl_abi_init("default"), func_, yymsp[0].minor.yy179);
}
-#line 2350 "src/parser_proc.c"
- yy_destructor(yypParser,75,&yymsp[-4].minor);
- yy_destructor(yypParser,77,&yymsp[-1].minor);
+#line 2726 "src/parser_proc.c"
+ yy_destructor(yypParser,86,&yymsp[-4].minor);
+ yy_destructor(yypParser,87,&yymsp[-1].minor);
}
break;
- case 41: /* decl_abi ::= NAME */
-#line 442 "src/parser_proc.y"
+ case 72: /* decl_abi ::= NAME */
+#line 581 "src/parser_proc.y"
{
- yylhsminor.yy180 = psi_decl_abi_init(yymsp[0].minor.yy0->text);
- yylhsminor.yy180->token = yymsp[0].minor.yy0;
+ yylhsminor.yy26 = psi_decl_abi_init(yymsp[0].minor.yy0->text);
+ yylhsminor.yy26->token = yymsp[0].minor.yy0;
}
-#line 2361 "src/parser_proc.c"
- yymsp[0].minor.yy180 = yylhsminor.yy180;
+#line 2737 "src/parser_proc.c"
+ yymsp[0].minor.yy26 = yylhsminor.yy26;
break;
- case 43: /* decl_var_array_size ::= LBRACKET NUMBER RBRACKET */
-{ yy_destructor(yypParser,87,&yymsp[-2].minor);
-#line 449 "src/parser_proc.y"
+ case 74: /* decl_var_array_size ::= LBRACKET NUMBER RBRACKET */
+{ yy_destructor(yypParser,102,&yymsp[-2].minor);
+#line 588 "src/parser_proc.y"
{
yymsp[-2].minor.yy0 = yymsp[-1].minor.yy0;
}
-#line 2370 "src/parser_proc.c"
- yy_destructor(yypParser,88,&yymsp[0].minor);
+#line 2746 "src/parser_proc.c"
+ yy_destructor(yypParser,103,&yymsp[0].minor);
}
break;
- case 44: /* decl_var ::= NAME decl_var_array_size */
-#line 452 "src/parser_proc.y"
+ case 75: /* decl_var ::= NAME decl_var_array_size */
+#line 591 "src/parser_proc.y"
{
- 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;
+ yylhsminor.yy271 = psi_decl_var_init(yymsp[-1].minor.yy0->text, 0, yymsp[0].minor.yy0?atol(yymsp[0].minor.yy0->text):0);
+ yylhsminor.yy271->token = yymsp[-1].minor.yy0;
if (yymsp[0].minor.yy0) {
free(yymsp[0].minor.yy0);
}
}
-#line 2383 "src/parser_proc.c"
- yymsp[-1].minor.yy131 = yylhsminor.yy131;
+#line 2759 "src/parser_proc.c"
+ yymsp[-1].minor.yy271 = yylhsminor.yy271;
break;
- case 45: /* decl_var ::= pointers NAME decl_var_array_size */
-#line 459 "src/parser_proc.y"
+ case 76: /* decl_var ::= pointers NAME decl_var_array_size */
+#line 598 "src/parser_proc.y"
{
- 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;
+ yylhsminor.yy271 = psi_decl_var_init(yymsp[-1].minor.yy0->text, yymsp[-2].minor.yy382+!!yymsp[0].minor.yy0, yymsp[0].minor.yy0?atol(yymsp[0].minor.yy0->text):0);
+ yylhsminor.yy271->token = yymsp[-1].minor.yy0;
if (yymsp[0].minor.yy0) {
free(yymsp[0].minor.yy0);
}
}
-#line 2395 "src/parser_proc.c"
- yymsp[-2].minor.yy131 = yylhsminor.yy131;
+#line 2771 "src/parser_proc.c"
+ yymsp[-2].minor.yy271 = yylhsminor.yy271;
break;
- case 46: /* decl_vars ::= decl_var */
-#line 466 "src/parser_proc.y"
+ case 77: /* decl_vars ::= decl_var */
+#line 605 "src/parser_proc.y"
{
- yylhsminor.yy7 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_var_free),
- &yymsp[0].minor.yy131);
+ yylhsminor.yy179 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_var_free),
+ &yymsp[0].minor.yy271);
}
-#line 2404 "src/parser_proc.c"
- yymsp[0].minor.yy7 = yylhsminor.yy7;
+#line 2780 "src/parser_proc.c"
+ yymsp[0].minor.yy179 = yylhsminor.yy179;
break;
- case 47: /* decl_vars ::= decl_vars COMMA decl_var */
-#line 470 "src/parser_proc.y"
+ case 78: /* decl_vars ::= decl_vars COMMA decl_var */
+#line 609 "src/parser_proc.y"
{
- yylhsminor.yy7 = psi_plist_add(yymsp[-2].minor.yy7, &yymsp[0].minor.yy131);
+ yylhsminor.yy179 = psi_plist_add(yymsp[-2].minor.yy179, &yymsp[0].minor.yy271);
}
-#line 2412 "src/parser_proc.c"
- yy_destructor(yypParser,76,&yymsp[-1].minor);
- yymsp[-2].minor.yy7 = yylhsminor.yy7;
+#line 2788 "src/parser_proc.c"
+ yy_destructor(yypParser,88,&yymsp[-1].minor);
+ yymsp[-2].minor.yy179 = yylhsminor.yy179;
break;
- case 48: /* decl_arg ::= const_decl_type decl_var */
-#line 473 "src/parser_proc.y"
+ case 79: /* decl_arg ::= const_decl_type decl_var */
+#line 612 "src/parser_proc.y"
{
- yylhsminor.yy64 = psi_decl_arg_init(yymsp[-1].minor.yy182, yymsp[0].minor.yy131);
+ yylhsminor.yy320 = psi_decl_arg_init(yymsp[-1].minor.yy172, yymsp[0].minor.yy271);
}
-#line 2421 "src/parser_proc.c"
- yymsp[-1].minor.yy64 = yylhsminor.yy64;
+#line 2797 "src/parser_proc.c"
+ yymsp[-1].minor.yy320 = yylhsminor.yy320;
break;
- case 49: /* decl_typedef_body ::= const_decl_type indirection LPAREN indirection NAME RPAREN decl_typedef_body_fn_args */
-#line 476 "src/parser_proc.y"
+ case 80: /* decl_typedef_body ::= const_decl_type indirection LPAREN indirection NAME RPAREN decl_typedef_body_fn_args */
+#line 615 "src/parser_proc.y"
{
struct psi_decl_arg *func_ = psi_decl_arg_init(
- yymsp[-6].minor.yy182,
- psi_decl_var_init(yymsp[-2].minor.yy0->text, yymsp[-5].minor.yy296, 0)
+ yymsp[-6].minor.yy172,
+ psi_decl_var_init(yymsp[-2].minor.yy0->text, yymsp[-5].minor.yy382, 0)
);
func_->var->token = yymsp[-2].minor.yy0;
func_->token = yymsp[-2].minor.yy0;
- yylhsminor.yy64 = psi_decl_arg_init(
+ yylhsminor.yy320 = psi_decl_arg_init(
psi_decl_type_init(PSI_T_FUNCTION, func_->var->name),
psi_decl_var_copy(func_->var)
);
- 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);
+ yylhsminor.yy320->var->pointer_level = yymsp[-3].minor.yy382;
+ yylhsminor.yy320->type->token = psi_token_copy(func_->token);
+ yylhsminor.yy320->type->real.func = psi_decl_init(psi_decl_abi_init("default"), func_, yymsp[0].minor.yy179);
}
-#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;
+#line 2817 "src/parser_proc.c"
+ yy_destructor(yypParser,86,&yymsp[-4].minor);
+ yy_destructor(yypParser,87,&yymsp[-1].minor);
+ yymsp[-6].minor.yy320 = yylhsminor.yy320;
break;
- case 50: /* decl_arg ::= VOID pointers NAME */
-#line 491 "src/parser_proc.y"
+ case 81: /* decl_arg ::= VOID pointers NAME */
+#line 630 "src/parser_proc.y"
{
- yylhsminor.yy64 = psi_decl_arg_init(
+ yylhsminor.yy320 = 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.yy296, 0)
+ psi_decl_var_init(yymsp[0].minor.yy0->text, yymsp[-1].minor.yy382, 0)
);
- yylhsminor.yy64->type->token = yymsp[-2].minor.yy0;
- yylhsminor.yy64->var->token = yymsp[0].minor.yy0;
- yylhsminor.yy64->token = yymsp[0].minor.yy0;
+ yylhsminor.yy320->type->token = yymsp[-2].minor.yy0;
+ yylhsminor.yy320->var->token = yymsp[0].minor.yy0;
+ yylhsminor.yy320->token = yymsp[0].minor.yy0;
}
-#line 2457 "src/parser_proc.c"
- yymsp[-2].minor.yy64 = yylhsminor.yy64;
+#line 2833 "src/parser_proc.c"
+ yymsp[-2].minor.yy320 = yylhsminor.yy320;
break;
- case 51: /* decl_arg ::= CONST VOID pointers NAME */
-{ yy_destructor(yypParser,84,&yymsp[-3].minor);
-#line 500 "src/parser_proc.y"
+ case 82: /* decl_arg ::= CONST VOID pointers NAME */
+{ yy_destructor(yypParser,99,&yymsp[-3].minor);
+#line 639 "src/parser_proc.y"
{
- yymsp[-3].minor.yy64 = psi_decl_arg_init(
+ yymsp[-3].minor.yy320 = 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.yy296, 0)
+ psi_decl_var_init(yymsp[0].minor.yy0->text, yymsp[-1].minor.yy382, 0)
);
- 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;
+ yymsp[-3].minor.yy320->type->token = yymsp[-2].minor.yy0;
+ yymsp[-3].minor.yy320->var->token = yymsp[0].minor.yy0;
+ yymsp[-3].minor.yy320->token = yymsp[0].minor.yy0;
}
-#line 2472 "src/parser_proc.c"
+#line 2848 "src/parser_proc.c"
}
break;
- case 52: /* decl_args ::= */
-#line 509 "src/parser_proc.y"
-{
- yymsp[1].minor.yy7 = NULL;
-}
-#line 2480 "src/parser_proc.c"
- break;
- case 53: /* decl_args ::= VOID */
+ case 84: /* decl_args ::= VOID */
{ yy_destructor(yypParser,57,&yymsp[0].minor);
-#line 512 "src/parser_proc.y"
+#line 651 "src/parser_proc.y"
{
- yymsp[0].minor.yy7 = NULL;
+ yymsp[0].minor.yy179 = NULL;
}
-#line 2488 "src/parser_proc.c"
+#line 2857 "src/parser_proc.c"
}
break;
- case 54: /* decl_args ::= decl_arg */
- case 56: /* struct_args ::= struct_arg */ yytestcase(yyruleno==56);
-#line 515 "src/parser_proc.y"
+ case 85: /* decl_args ::= decl_arg */
+ case 87: /* struct_args ::= struct_arg */ yytestcase(yyruleno==87);
+#line 654 "src/parser_proc.y"
{
- yylhsminor.yy7 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free),
- &yymsp[0].minor.yy64);
+ yylhsminor.yy179 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free),
+ &yymsp[0].minor.yy320);
}
-#line 2498 "src/parser_proc.c"
- yymsp[0].minor.yy7 = yylhsminor.yy7;
+#line 2867 "src/parser_proc.c"
+ yymsp[0].minor.yy179 = yylhsminor.yy179;
break;
- case 55: /* decl_args ::= decl_args COMMA decl_arg */
-#line 519 "src/parser_proc.y"
+ case 86: /* decl_args ::= decl_args COMMA decl_arg */
+#line 658 "src/parser_proc.y"
{
- yylhsminor.yy7 = psi_plist_add(yymsp[-2].minor.yy7, &yymsp[0].minor.yy64);
+ yylhsminor.yy179 = psi_plist_add(yymsp[-2].minor.yy179, &yymsp[0].minor.yy320);
}
-#line 2506 "src/parser_proc.c"
- yy_destructor(yypParser,76,&yymsp[-1].minor);
- yymsp[-2].minor.yy7 = yylhsminor.yy7;
+#line 2875 "src/parser_proc.c"
+ yy_destructor(yypParser,88,&yymsp[-1].minor);
+ yymsp[-2].minor.yy179 = yylhsminor.yy179;
break;
- case 57: /* struct_args ::= struct_args struct_arg */
-#line 526 "src/parser_proc.y"
+ case 88: /* struct_args ::= struct_args struct_arg */
+#line 665 "src/parser_proc.y"
{
- yylhsminor.yy7 = psi_plist_add(yymsp[-1].minor.yy7, &yymsp[0].minor.yy64);
+ yylhsminor.yy179 = psi_plist_add(yymsp[-1].minor.yy179, &yymsp[0].minor.yy320);
}
-#line 2515 "src/parser_proc.c"
- yymsp[-1].minor.yy7 = yylhsminor.yy7;
+#line 2884 "src/parser_proc.c"
+ yymsp[-1].minor.yy179 = yylhsminor.yy179;
break;
- case 58: /* struct_arg ::= decl_typedef_body_ex EOS */
-#line 529 "src/parser_proc.y"
+ case 89: /* struct_arg ::= decl_typedef_body_ex EOS */
+#line 668 "src/parser_proc.y"
{
- yylhsminor.yy64 = yymsp[-1].minor.yy64;
- switch (yymsp[-1].minor.yy64->type->type) {
+ yylhsminor.yy320 = yymsp[-1].minor.yy320;
+ switch (yymsp[-1].minor.yy320->type->type) {
case PSI_T_STRUCT:
- if (yymsp[-1].minor.yy64->type->real.strct) {
+ if (yymsp[-1].minor.yy320->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.yy64->type->real.strct);
+ P->structs = psi_plist_add(P->structs, &yymsp[-1].minor.yy320->type->real.strct);
}
break;
case PSI_T_UNION:
- if (yymsp[-1].minor.yy64->type->real.unn) {
+ if (yymsp[-1].minor.yy320->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.yy64->type->real.unn);
+ P->unions = psi_plist_add(P->unions, &yymsp[-1].minor.yy320->type->real.unn);
}
break;
case PSI_T_ENUM:
- if (yymsp[-1].minor.yy64->type->real.enm) {
+ if (yymsp[-1].minor.yy320->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.yy64->type->real.enm);
+ P->enums = psi_plist_add(P->enums, &yymsp[-1].minor.yy320->type->real.enm);
}
break;
}
}
-#line 2549 "src/parser_proc.c"
- yy_destructor(yypParser,73,&yymsp[0].minor);
- yymsp[-1].minor.yy64 = yylhsminor.yy64;
+#line 2918 "src/parser_proc.c"
+ yy_destructor(yypParser,75,&yymsp[0].minor);
+ yymsp[-1].minor.yy320 = yylhsminor.yy320;
break;
- case 59: /* struct_arg ::= decl_arg decl_layout EOS */
-#line 558 "src/parser_proc.y"
+ case 90: /* struct_arg ::= decl_arg decl_layout EOS */
+#line 697 "src/parser_proc.y"
{
- yymsp[-2].minor.yy64->layout = yymsp[-1].minor.yy221;
- yylhsminor.yy64 = yymsp[-2].minor.yy64;
+ yymsp[-2].minor.yy320->layout = yymsp[-1].minor.yy369;
+ yylhsminor.yy320 = yymsp[-2].minor.yy320;
}
-#line 2559 "src/parser_proc.c"
- yy_destructor(yypParser,73,&yymsp[0].minor);
- yymsp[-2].minor.yy64 = yylhsminor.yy64;
+#line 2928 "src/parser_proc.c"
+ yy_destructor(yypParser,75,&yymsp[0].minor);
+ yymsp[-2].minor.yy320 = yylhsminor.yy320;
break;
- case 60: /* decl_layout ::= */
-#line 562 "src/parser_proc.y"
+ case 91: /* decl_layout ::= */
+#line 701 "src/parser_proc.y"
{
- yymsp[1].minor.yy221 = NULL;
+ yymsp[1].minor.yy369 = NULL;
}
-#line 2568 "src/parser_proc.c"
+#line 2937 "src/parser_proc.c"
break;
- case 61: /* decl_layout ::= COLON COLON LPAREN NUMBER COMMA NUMBER RPAREN */
-{ yy_destructor(yypParser,74,&yymsp[-6].minor);
-#line 565 "src/parser_proc.y"
+ case 92: /* decl_layout ::= COLON COLON LPAREN NUMBER COMMA NUMBER RPAREN */
+{ yy_destructor(yypParser,92,&yymsp[-6].minor);
+#line 704 "src/parser_proc.y"
{
- yymsp[-6].minor.yy221 = psi_layout_init(atol(yymsp[-3].minor.yy0->text), atol(yymsp[-1].minor.yy0->text));
+ yymsp[-6].minor.yy369 = 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 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);
+#line 2947 "src/parser_proc.c"
+ yy_destructor(yypParser,92,&yymsp[-5].minor);
+ yy_destructor(yypParser,86,&yymsp[-4].minor);
+ yy_destructor(yypParser,88,&yymsp[-2].minor);
+ yy_destructor(yypParser,87,&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 573 "src/parser_proc.y"
+ case 94: /* decl_scalar_type ::= SHORT decl_scalar_type_short */
+ case 98: /* decl_scalar_type ::= LONG decl_scalar_type_long */ yytestcase(yyruleno==98);
+ case 101: /* decl_scalar_type_long ::= LONG decl_scalar_type_long_long */ yytestcase(yyruleno==101);
+#line 712 "src/parser_proc.y"
{
if (yymsp[0].minor.yy0) {
yylhsminor.yy0 = psi_token_cat(2, yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
yylhsminor.yy0 = yymsp[-1].minor.yy0;
}
}
-#line 2598 "src/parser_proc.c"
+#line 2967 "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 621 "src/parser_proc.y"
+ case 104: /* decl_type ::= UNSIGNED decl_scalar_type */
+ case 105: /* decl_type ::= SIGNED decl_scalar_type */ yytestcase(yyruleno==105);
+#line 760 "src/parser_proc.y"
{
struct psi_token *T = psi_token_cat(2, yymsp[-1].minor.yy0, yymsp[0].minor.yy0);
- yylhsminor.yy182 = psi_decl_type_init(T->type, T->text);
- yylhsminor.yy182->token = T;
+ yylhsminor.yy172 = psi_decl_type_init(T->type, T->text);
+ yylhsminor.yy172->token = T;
free(yymsp[-1].minor.yy0);
free(yymsp[0].minor.yy0);
}
-#line 2611 "src/parser_proc.c"
- yymsp[-1].minor.yy182 = yylhsminor.yy182;
+#line 2980 "src/parser_proc.c"
+ yymsp[-1].minor.yy172 = yylhsminor.yy172;
break;
- case 75: /* decl_type ::= UNSIGNED */
- case 76: /* decl_type ::= SIGNED */ yytestcase(yyruleno==76);
-#line 635 "src/parser_proc.y"
+ case 106: /* decl_type ::= UNSIGNED */
+ case 107: /* decl_type ::= SIGNED */ yytestcase(yyruleno==107);
+#line 774 "src/parser_proc.y"
{
- yylhsminor.yy182 = psi_decl_type_init(PSI_T_NAME, yymsp[0].minor.yy0->text);
- yylhsminor.yy182->token = yymsp[0].minor.yy0;
+ yylhsminor.yy172 = psi_decl_type_init(PSI_T_NAME, yymsp[0].minor.yy0->text);
+ yylhsminor.yy172->token = yymsp[0].minor.yy0;
}
-#line 2621 "src/parser_proc.c"
- yymsp[0].minor.yy182 = yylhsminor.yy182;
+#line 2990 "src/parser_proc.c"
+ yymsp[0].minor.yy172 = yylhsminor.yy172;
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 643 "src/parser_proc.y"
+ case 108: /* decl_type ::= decl_scalar_type */
+ case 112: /* decl_type ::= FLOAT|DOUBLE|INT8|UINT8|INT16|UINT16|INT32|UINT32|INT64|UINT64|NAME */ yytestcase(yyruleno==112);
+#line 782 "src/parser_proc.y"
{
- yylhsminor.yy182 = psi_decl_type_init(yymsp[0].minor.yy0->type, yymsp[0].minor.yy0->text);
- yylhsminor.yy182->token = yymsp[0].minor.yy0;
+ yylhsminor.yy172 = psi_decl_type_init(yymsp[0].minor.yy0->type, yymsp[0].minor.yy0->text);
+ yylhsminor.yy172->token = yymsp[0].minor.yy0;
}
-#line 2631 "src/parser_proc.c"
- yymsp[0].minor.yy182 = yylhsminor.yy182;
+#line 3000 "src/parser_proc.c"
+ yymsp[0].minor.yy172 = yylhsminor.yy172;
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 647 "src/parser_proc.y"
+ case 109: /* decl_type ::= STRUCT NAME */
+ case 110: /* decl_type ::= UNION NAME */ yytestcase(yyruleno==110);
+ case 111: /* decl_type ::= ENUM NAME */ yytestcase(yyruleno==111);
+#line 786 "src/parser_proc.y"
{
- yylhsminor.yy182 = psi_decl_type_init(yymsp[-1].minor.yy0->type, yymsp[0].minor.yy0->text);
- yylhsminor.yy182->token = yymsp[0].minor.yy0;
+ yylhsminor.yy172 = psi_decl_type_init(yymsp[-1].minor.yy0->type, yymsp[0].minor.yy0->text);
+ yylhsminor.yy172->token = yymsp[0].minor.yy0;
free(yymsp[-1].minor.yy0);
}
-#line 2643 "src/parser_proc.c"
- yymsp[-1].minor.yy182 = yylhsminor.yy182;
+#line 3012 "src/parser_proc.c"
+ yymsp[-1].minor.yy172 = yylhsminor.yy172;
break;
- case 82: /* const_decl_type ::= decl_type */
-#line 666 "src/parser_proc.y"
+ case 113: /* const_decl_type ::= decl_type */
+#line 805 "src/parser_proc.y"
{
- yylhsminor.yy182 = yymsp[0].minor.yy182;
+ yylhsminor.yy172 = yymsp[0].minor.yy172;
}
-#line 2651 "src/parser_proc.c"
- yymsp[0].minor.yy182 = yylhsminor.yy182;
+#line 3020 "src/parser_proc.c"
+ yymsp[0].minor.yy172 = yylhsminor.yy172;
break;
- case 83: /* const_decl_type ::= CONST decl_type */
-{ yy_destructor(yypParser,84,&yymsp[-1].minor);
-#line 669 "src/parser_proc.y"
+ case 114: /* const_decl_type ::= CONST decl_type */
+{ yy_destructor(yypParser,99,&yymsp[-1].minor);
+#line 808 "src/parser_proc.y"
{
- yymsp[-1].minor.yy182 = yymsp[0].minor.yy182;
+ yymsp[-1].minor.yy172 = yymsp[0].minor.yy172;
}
-#line 2660 "src/parser_proc.c"
+#line 3029 "src/parser_proc.c"
}
break;
- case 84: /* impl ::= impl_func LBRACE impl_stmts RBRACE */
-#line 672 "src/parser_proc.y"
+ case 115: /* impl ::= impl_func LBRACE impl_stmts RBRACE */
+#line 811 "src/parser_proc.y"
{
- yylhsminor.yy303 = psi_impl_init(yymsp[-3].minor.yy226, yymsp[-1].minor.yy7);
+ yylhsminor.yy49 = psi_impl_init(yymsp[-3].minor.yy56, yymsp[-1].minor.yy179);
}
-#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;
+#line 3037 "src/parser_proc.c"
+ yy_destructor(yypParser,96,&yymsp[-2].minor);
+ yy_destructor(yypParser,97,&yymsp[0].minor);
+ yymsp[-3].minor.yy49 = yylhsminor.yy49;
break;
- case 85: /* impl ::= STATIC impl_func LBRACE impl_stmts RBRACE */
-{ yy_destructor(yypParser,94,&yymsp[-4].minor);
-#line 675 "src/parser_proc.y"
+ case 116: /* impl ::= STATIC impl_func LBRACE impl_stmts RBRACE */
+{ yy_destructor(yypParser,109,&yymsp[-4].minor);
+#line 814 "src/parser_proc.y"
{
- yymsp[-3].minor.yy226->static_memory = 1;
- yymsp[-4].minor.yy303 = psi_impl_init(yymsp[-3].minor.yy226, yymsp[-1].minor.yy7);
+ yymsp[-3].minor.yy56->static_memory = 1;
+ yymsp[-4].minor.yy49 = psi_impl_init(yymsp[-3].minor.yy56, yymsp[-1].minor.yy179);
}
-#line 2680 "src/parser_proc.c"
- yy_destructor(yypParser,81,&yymsp[-2].minor);
- yy_destructor(yypParser,82,&yymsp[0].minor);
+#line 3049 "src/parser_proc.c"
+ yy_destructor(yypParser,96,&yymsp[-2].minor);
+ yy_destructor(yypParser,97,&yymsp[0].minor);
}
break;
- case 86: /* impl_func ::= FUNCTION reference NSNAME LPAREN RPAREN COLON impl_type */
-{ yy_destructor(yypParser,95,&yymsp[-6].minor);
-#line 679 "src/parser_proc.y"
+ case 117: /* impl_func ::= FUNCTION reference NSNAME LPAREN RPAREN COLON impl_type */
+{ yy_destructor(yypParser,110,&yymsp[-6].minor);
+#line 818 "src/parser_proc.y"
{
- 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;
+ yymsp[-6].minor.yy56 = psi_impl_func_init(yymsp[-4].minor.yy0->text, NULL, yymsp[0].minor.yy246);
+ yymsp[-6].minor.yy56->token = yymsp[-4].minor.yy0;
+ yymsp[-6].minor.yy56->return_reference = yymsp[-5].minor.yy89;
}
-#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);
+#line 3062 "src/parser_proc.c"
+ yy_destructor(yypParser,86,&yymsp[-3].minor);
+ yy_destructor(yypParser,87,&yymsp[-2].minor);
+ yy_destructor(yypParser,92,&yymsp[-1].minor);
}
break;
- case 87: /* impl_func ::= FUNCTION reference NSNAME LPAREN impl_args RPAREN COLON impl_type */
-{ yy_destructor(yypParser,95,&yymsp[-7].minor);
-#line 684 "src/parser_proc.y"
+ case 118: /* impl_func ::= FUNCTION reference NSNAME LPAREN impl_args RPAREN COLON impl_type */
+{ yy_destructor(yypParser,110,&yymsp[-7].minor);
+#line 823 "src/parser_proc.y"
{
- 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;
+ yymsp[-7].minor.yy56 = psi_impl_func_init(yymsp[-5].minor.yy0->text, yymsp[-3].minor.yy179, yymsp[0].minor.yy246);
+ yymsp[-7].minor.yy56->token = yymsp[-5].minor.yy0;
+ yymsp[-7].minor.yy56->return_reference = yymsp[-6].minor.yy89;
}
-#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);
+#line 3076 "src/parser_proc.c"
+ yy_destructor(yypParser,86,&yymsp[-4].minor);
+ yy_destructor(yypParser,87,&yymsp[-2].minor);
+ yy_destructor(yypParser,92,&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,95,&yymsp[-12].minor);
-#line 689 "src/parser_proc.y"
+ case 119: /* impl_func ::= FUNCTION reference NSNAME LPAREN impl_args COMMA impl_type reference ELLIPSIS DOLLAR_NAME RPAREN COLON impl_type */
+{ yy_destructor(yypParser,110,&yymsp[-12].minor);
+#line 828 "src/parser_proc.y"
{
- 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);
+ yymsp[-12].minor.yy56 = psi_impl_func_init(yymsp[-10].minor.yy0->text, yymsp[-8].minor.yy179, yymsp[0].minor.yy246);
+ yymsp[-12].minor.yy56->token = yymsp[-10].minor.yy0;
+ yymsp[-12].minor.yy56->return_reference = yymsp[-11].minor.yy89;
+ yymsp[-12].minor.yy56->vararg = psi_impl_arg_init(yymsp[-6].minor.yy246, psi_impl_var_init(yymsp[-3].minor.yy0->text, yymsp[-5].minor.yy89), NULL);
free(yymsp[-3].minor.yy0);
}
-#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);
+#line 3092 "src/parser_proc.c"
+ yy_destructor(yypParser,86,&yymsp[-9].minor);
+ yy_destructor(yypParser,88,&yymsp[-7].minor);
+ yy_destructor(yypParser,101,&yymsp[-4].minor);
+ yy_destructor(yypParser,87,&yymsp[-2].minor);
+ yy_destructor(yypParser,92,&yymsp[-1].minor);
}
break;
- case 89: /* impl_def_val ::= NULL|NUMBER|TRUE|FALSE|QUOTED_STRING */
-#line 696 "src/parser_proc.y"
+ case 120: /* impl_def_val ::= NULL|NUMBER|TRUE|FALSE|QUOTED_STRING */
+#line 835 "src/parser_proc.y"
{
- yylhsminor.yy319 = psi_impl_def_val_init(yymsp[0].minor.yy0->type, yymsp[0].minor.yy0->text);
- yylhsminor.yy319->token = yymsp[0].minor.yy0;
+ yylhsminor.yy145 = psi_impl_def_val_init(yymsp[0].minor.yy0->type, yymsp[0].minor.yy0->text);
+ yylhsminor.yy145->token = yymsp[0].minor.yy0;
}
-#line 2737 "src/parser_proc.c"
- yymsp[0].minor.yy319 = yylhsminor.yy319;
+#line 3106 "src/parser_proc.c"
+ yymsp[0].minor.yy145 = yylhsminor.yy145;
break;
- case 90: /* impl_var ::= reference DOLLAR_NAME */
-#line 700 "src/parser_proc.y"
+ case 121: /* impl_var ::= reference DOLLAR_NAME */
+#line 839 "src/parser_proc.y"
{
- yylhsminor.yy123 = psi_impl_var_init(yymsp[0].minor.yy0->text, yymsp[-1].minor.yy247);
- yylhsminor.yy123->token = yymsp[0].minor.yy0;
+ yylhsminor.yy370 = psi_impl_var_init(yymsp[0].minor.yy0->text, yymsp[-1].minor.yy89);
+ yylhsminor.yy370->token = yymsp[0].minor.yy0;
}
-#line 2746 "src/parser_proc.c"
- yymsp[-1].minor.yy123 = yylhsminor.yy123;
+#line 3115 "src/parser_proc.c"
+ yymsp[-1].minor.yy370 = yylhsminor.yy370;
break;
- case 91: /* impl_type ::= VOID|MIXED|BOOL|INT|FLOAT|STRING|ARRAY|OBJECT|CALLABLE */
-#line 704 "src/parser_proc.y"
+ case 122: /* impl_type ::= VOID|MIXED|BOOL|INT|FLOAT|STRING|ARRAY|OBJECT|CALLABLE */
+#line 843 "src/parser_proc.y"
{
- yylhsminor.yy40 = psi_impl_type_init(yymsp[0].minor.yy0->type, yymsp[0].minor.yy0->text);
+ yylhsminor.yy246 = psi_impl_type_init(yymsp[0].minor.yy0->type, yymsp[0].minor.yy0->text);
free(yymsp[0].minor.yy0);
}
-#line 2755 "src/parser_proc.c"
- yymsp[0].minor.yy40 = yylhsminor.yy40;
- break;
- case 92: /* impl_arg ::= impl_type impl_var */
-#line 708 "src/parser_proc.y"
-{
- yylhsminor.yy56 = psi_impl_arg_init(yymsp[-1].minor.yy40, yymsp[0].minor.yy123, NULL);
-}
-#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 711 "src/parser_proc.y"
-{
- yylhsminor.yy56 = psi_impl_arg_init(yymsp[-3].minor.yy40, yymsp[-2].minor.yy123, yymsp[0].minor.yy319);
-}
-#line 2771 "src/parser_proc.c"
- yy_destructor(yypParser,83,&yymsp[-1].minor);
- yymsp[-3].minor.yy56 = yylhsminor.yy56;
+#line 3124 "src/parser_proc.c"
+ yymsp[0].minor.yy246 = yylhsminor.yy246;
break;
- case 94: /* impl_args ::= impl_arg */
-#line 714 "src/parser_proc.y"
+ case 123: /* impl_arg ::= impl_type impl_var */
+#line 847 "src/parser_proc.y"
{
- yylhsminor.yy7 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_impl_arg_free),
- &yymsp[0].minor.yy56);
+ yylhsminor.yy34 = psi_impl_arg_init(yymsp[-1].minor.yy246, yymsp[0].minor.yy370, NULL);
}
-#line 2781 "src/parser_proc.c"
- yymsp[0].minor.yy7 = yylhsminor.yy7;
+#line 3132 "src/parser_proc.c"
+ yymsp[-1].minor.yy34 = yylhsminor.yy34;
break;
- case 95: /* impl_args ::= impl_args COMMA impl_arg */
-#line 718 "src/parser_proc.y"
+ case 124: /* impl_arg ::= impl_type impl_var EQUALS impl_def_val */
+#line 850 "src/parser_proc.y"
{
- yylhsminor.yy7 = psi_plist_add(yymsp[-2].minor.yy7, &yymsp[0].minor.yy56);
+ yylhsminor.yy34 = psi_impl_arg_init(yymsp[-3].minor.yy246, yymsp[-2].minor.yy370, yymsp[0].minor.yy145);
}
-#line 2789 "src/parser_proc.c"
- yy_destructor(yypParser,76,&yymsp[-1].minor);
- yymsp[-2].minor.yy7 = yylhsminor.yy7;
+#line 3140 "src/parser_proc.c"
+ yy_destructor(yypParser,98,&yymsp[-1].minor);
+ yymsp[-3].minor.yy34 = yylhsminor.yy34;
break;
- case 96: /* impl_stmts ::= impl_stmt */
-#line 721 "src/parser_proc.y"
+ case 125: /* impl_args ::= impl_arg */
+#line 853 "src/parser_proc.y"
{
- yylhsminor.yy7 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_impl_stmt_free),
- &yymsp[0].minor.yy282);
+ yylhsminor.yy179 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_impl_arg_free),
+ &yymsp[0].minor.yy34);
}
-#line 2799 "src/parser_proc.c"
- yymsp[0].minor.yy7 = yylhsminor.yy7;
+#line 3150 "src/parser_proc.c"
+ yymsp[0].minor.yy179 = yylhsminor.yy179;
break;
- case 97: /* impl_stmts ::= impl_stmts impl_stmt */
-#line 725 "src/parser_proc.y"
+ case 126: /* impl_args ::= impl_args COMMA impl_arg */
+#line 857 "src/parser_proc.y"
{
- yylhsminor.yy7 = psi_plist_add(yymsp[-1].minor.yy7, &yymsp[0].minor.yy282);
+ yylhsminor.yy179 = psi_plist_add(yymsp[-2].minor.yy179, &yymsp[0].minor.yy34);
}
-#line 2807 "src/parser_proc.c"
- yymsp[-1].minor.yy7 = yylhsminor.yy7;
+#line 3158 "src/parser_proc.c"
+ yy_destructor(yypParser,88,&yymsp[-1].minor);
+ yymsp[-2].minor.yy179 = yylhsminor.yy179;
break;
- case 98: /* impl_stmt ::= return_stmt */
-#line 728 "src/parser_proc.y"
+ case 127: /* impl_stmts ::= impl_stmt */
+#line 860 "src/parser_proc.y"
{
- yylhsminor.yy282 = (struct psi_token**) yymsp[0].minor.yy258;
+ yylhsminor.yy179 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_impl_stmt_free),
+ &yymsp[0].minor.yy238);
}
-#line 2815 "src/parser_proc.c"
- yymsp[0].minor.yy282 = yylhsminor.yy282;
+#line 3168 "src/parser_proc.c"
+ yymsp[0].minor.yy179 = yylhsminor.yy179;
break;
- case 99: /* impl_stmt ::= let_stmt */
-#line 731 "src/parser_proc.y"
+ case 128: /* impl_stmts ::= impl_stmts impl_stmt */
+#line 864 "src/parser_proc.y"
{
- yylhsminor.yy282 = (struct psi_token**) yymsp[0].minor.yy138;
+ yylhsminor.yy179 = psi_plist_add(yymsp[-1].minor.yy179, &yymsp[0].minor.yy238);
}
-#line 2823 "src/parser_proc.c"
- yymsp[0].minor.yy282 = yylhsminor.yy282;
+#line 3176 "src/parser_proc.c"
+ yymsp[-1].minor.yy179 = yylhsminor.yy179;
break;
- case 100: /* impl_stmt ::= set_stmt */
-#line 734 "src/parser_proc.y"
+ case 129: /* impl_stmt ::= return_stmt */
+#line 867 "src/parser_proc.y"
{
- yylhsminor.yy282 = (struct psi_token**) yymsp[0].minor.yy300;
+ yylhsminor.yy238 = (struct psi_token**) yymsp[0].minor.yy342;
}
-#line 2831 "src/parser_proc.c"
- yymsp[0].minor.yy282 = yylhsminor.yy282;
+#line 3184 "src/parser_proc.c"
+ yymsp[0].minor.yy238 = yylhsminor.yy238;
break;
- case 101: /* impl_stmt ::= assert_stmt */
-#line 737 "src/parser_proc.y"
+ case 130: /* impl_stmt ::= let_stmt */
+#line 870 "src/parser_proc.y"
{
- yylhsminor.yy282 = (struct psi_token **) yymsp[0].minor.yy146;
+ yylhsminor.yy238 = (struct psi_token**) yymsp[0].minor.yy319;
}
-#line 2839 "src/parser_proc.c"
- yymsp[0].minor.yy282 = yylhsminor.yy282;
+#line 3192 "src/parser_proc.c"
+ yymsp[0].minor.yy238 = yylhsminor.yy238;
break;
- case 102: /* impl_stmt ::= free_stmt */
-#line 740 "src/parser_proc.y"
+ case 131: /* impl_stmt ::= set_stmt */
+#line 873 "src/parser_proc.y"
{
- yylhsminor.yy282 = (struct psi_token**) yymsp[0].minor.yy102;
+ yylhsminor.yy238 = (struct psi_token**) yymsp[0].minor.yy358;
}
-#line 2847 "src/parser_proc.c"
- yymsp[0].minor.yy282 = yylhsminor.yy282;
+#line 3200 "src/parser_proc.c"
+ yymsp[0].minor.yy238 = yylhsminor.yy238;
break;
- case 103: /* number ::= NUMBER|NSNAME */
-#line 743 "src/parser_proc.y"
+ case 132: /* impl_stmt ::= assert_stmt */
+#line 876 "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;
+ yylhsminor.yy238 = (struct psi_token **) yymsp[0].minor.yy201;
}
-#line 2856 "src/parser_proc.c"
- yymsp[0].minor.yy66 = yylhsminor.yy66;
+#line 3208 "src/parser_proc.c"
+ yymsp[0].minor.yy238 = yylhsminor.yy238;
break;
- case 104: /* number ::= decl_var */
-#line 747 "src/parser_proc.y"
+ case 133: /* impl_stmt ::= free_stmt */
+#line 879 "src/parser_proc.y"
{
- yylhsminor.yy66 = psi_number_init(PSI_T_NAME, yymsp[0].minor.yy131);
- yylhsminor.yy66->token = psi_token_copy(yymsp[0].minor.yy131->token);
+ yylhsminor.yy238 = (struct psi_token**) yymsp[0].minor.yy220;
}
-#line 2865 "src/parser_proc.c"
- yymsp[0].minor.yy66 = yylhsminor.yy66;
+#line 3216 "src/parser_proc.c"
+ yymsp[0].minor.yy238 = yylhsminor.yy238;
break;
- case 105: /* num_exp ::= number */
-#line 751 "src/parser_proc.y"
+ case 134: /* number ::= NUMBER|NSNAME */
+#line 882 "src/parser_proc.y"
{
- yylhsminor.yy124 = psi_num_exp_init_num(yymsp[0].minor.yy66);
- yylhsminor.yy124->token = psi_token_copy(yymsp[0].minor.yy66->token);
+ yylhsminor.yy57 = psi_number_init(yymsp[0].minor.yy0->type, yymsp[0].minor.yy0->text);
+ yylhsminor.yy57->token = yymsp[0].minor.yy0;
}
-#line 2874 "src/parser_proc.c"
- yymsp[0].minor.yy124 = yylhsminor.yy124;
+#line 3225 "src/parser_proc.c"
+ yymsp[0].minor.yy57 = yylhsminor.yy57;
break;
- case 106: /* num_exp ::= LPAREN num_exp RPAREN */
-#line 755 "src/parser_proc.y"
+ case 135: /* number ::= decl_var */
+#line 886 "src/parser_proc.y"
{
- yylhsminor.yy124 = psi_num_exp_init_unary(PSI_T_LPAREN, yymsp[-1].minor.yy124);
- yylhsminor.yy124->token = yymsp[-2].minor.yy0;
+ yylhsminor.yy57 = psi_number_init(PSI_T_NAME, yymsp[0].minor.yy271);
+ yylhsminor.yy57->token = psi_token_copy(yymsp[0].minor.yy271->token);
}
-#line 2883 "src/parser_proc.c"
- yy_destructor(yypParser,77,&yymsp[0].minor);
- yymsp[-2].minor.yy124 = yylhsminor.yy124;
+#line 3234 "src/parser_proc.c"
+ yymsp[0].minor.yy57 = yylhsminor.yy57;
break;
- 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"
+ case 136: /* num_exp ::= number */
+#line 890 "src/parser_proc.y"
{
- 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;
+ yylhsminor.yy207 = psi_num_exp_init_num(yymsp[0].minor.yy57);
+ yylhsminor.yy207->token = psi_token_copy(yymsp[0].minor.yy57->token);
}
-#line 2893 "src/parser_proc.c"
- yymsp[-2].minor.yy124 = yylhsminor.yy124;
+#line 3243 "src/parser_proc.c"
+ yymsp[0].minor.yy207 = yylhsminor.yy207;
break;
- case 108: /* num_exp ::= TILDE|NOT|PLUS|MINUS num_exp */
-#line 763 "src/parser_proc.y"
+ case 137: /* num_exp ::= LPAREN num_exp RPAREN */
+#line 894 "src/parser_proc.y"
{
- yylhsminor.yy124 = psi_num_exp_init_unary(yymsp[-1].minor.yy0->type, yymsp[0].minor.yy124);
- yylhsminor.yy124->token = yymsp[-1].minor.yy0;
+ yylhsminor.yy207 = psi_num_exp_init_unary(PSI_T_LPAREN, yymsp[-1].minor.yy207);
+ yylhsminor.yy207->token = yymsp[-2].minor.yy0;
}
-#line 2902 "src/parser_proc.c"
- yymsp[-1].minor.yy124 = yylhsminor.yy124;
+#line 3252 "src/parser_proc.c"
+ yy_destructor(yypParser,87,&yymsp[0].minor);
+ yymsp[-2].minor.yy207 = yylhsminor.yy207;
break;
- case 109: /* let_exp ::= NULL */
+ case 140: /* let_exp ::= NULL */
{ yy_destructor(yypParser,15,&yymsp[0].minor);
-#line 767 "src/parser_proc.y"
+#line 906 "src/parser_proc.y"
{
- yymsp[0].minor.yy196 = psi_let_exp_init(PSI_LET_NULL, NULL);
+ yymsp[0].minor.yy200 = psi_let_exp_init(PSI_LET_NULL, NULL);
}
-#line 2911 "src/parser_proc.c"
+#line 3262 "src/parser_proc.c"
}
break;
- case 110: /* let_exp ::= AMPERSAND NULL */
+ case 141: /* let_exp ::= AMPERSAND NULL */
{ yy_destructor(yypParser,23,&yymsp[-1].minor);
-#line 770 "src/parser_proc.y"
+#line 909 "src/parser_proc.y"
{
- yymsp[-1].minor.yy196 = psi_let_exp_init(PSI_LET_NULL, NULL);
- yymsp[-1].minor.yy196->is_reference = 1;
+ yymsp[-1].minor.yy200 = psi_let_exp_init(PSI_LET_NULL, NULL);
+ yymsp[-1].minor.yy200->is_reference = 1;
}
-#line 2921 "src/parser_proc.c"
+#line 3272 "src/parser_proc.c"
yy_destructor(yypParser,15,&yymsp[0].minor);
}
break;
- case 111: /* let_exp ::= let_callback */
-#line 774 "src/parser_proc.y"
+ case 142: /* let_exp ::= let_callback */
+#line 913 "src/parser_proc.y"
{
- yylhsminor.yy196 = psi_let_exp_init(PSI_LET_CALLBACK, yymsp[0].minor.yy76);
+ yylhsminor.yy200 = psi_let_exp_init(PSI_LET_CALLBACK, yymsp[0].minor.yy120);
}
-#line 2930 "src/parser_proc.c"
- yymsp[0].minor.yy196 = yylhsminor.yy196;
+#line 3281 "src/parser_proc.c"
+ yymsp[0].minor.yy200 = yylhsminor.yy200;
break;
- case 112: /* let_exp ::= let_calloc */
-#line 777 "src/parser_proc.y"
+ case 143: /* let_exp ::= let_calloc */
+#line 916 "src/parser_proc.y"
{
- yylhsminor.yy196 = psi_let_exp_init(PSI_LET_CALLOC, yymsp[0].minor.yy227);
+ yylhsminor.yy200 = psi_let_exp_init(PSI_LET_CALLOC, yymsp[0].minor.yy45);
}
-#line 2938 "src/parser_proc.c"
- yymsp[0].minor.yy196 = yylhsminor.yy196;
+#line 3289 "src/parser_proc.c"
+ yymsp[0].minor.yy200 = yylhsminor.yy200;
break;
- case 113: /* let_exp ::= AMPERSAND let_calloc */
+ case 144: /* let_exp ::= AMPERSAND let_calloc */
{ yy_destructor(yypParser,23,&yymsp[-1].minor);
-#line 780 "src/parser_proc.y"
+#line 919 "src/parser_proc.y"
{
- yymsp[-1].minor.yy196 = psi_let_exp_init(PSI_LET_CALLOC, yymsp[0].minor.yy227);
- yymsp[-1].minor.yy196->is_reference = 1;
+ yymsp[-1].minor.yy200 = psi_let_exp_init(PSI_LET_CALLOC, yymsp[0].minor.yy45);
+ yymsp[-1].minor.yy200->is_reference = 1;
}
-#line 2948 "src/parser_proc.c"
+#line 3299 "src/parser_proc.c"
}
break;
- case 114: /* let_exp ::= let_func */
-#line 784 "src/parser_proc.y"
+ case 145: /* let_exp ::= let_func */
+#line 923 "src/parser_proc.y"
{
- yylhsminor.yy196 = psi_let_exp_init_ex(NULL, PSI_LET_FUNC, yymsp[0].minor.yy133);
+ yylhsminor.yy200 = psi_let_exp_init_ex(NULL, PSI_LET_FUNC, yymsp[0].minor.yy67);
}
-#line 2956 "src/parser_proc.c"
- yymsp[0].minor.yy196 = yylhsminor.yy196;
+#line 3307 "src/parser_proc.c"
+ yymsp[0].minor.yy200 = yylhsminor.yy200;
break;
- case 115: /* let_exp ::= AMPERSAND let_func */
+ case 146: /* let_exp ::= AMPERSAND let_func */
{ yy_destructor(yypParser,23,&yymsp[-1].minor);
-#line 787 "src/parser_proc.y"
+#line 926 "src/parser_proc.y"
{
- yymsp[-1].minor.yy196 = psi_let_exp_init_ex(NULL, PSI_LET_FUNC, yymsp[0].minor.yy133);
- yymsp[-1].minor.yy196->is_reference = 1;
+ yymsp[-1].minor.yy200 = psi_let_exp_init_ex(NULL, PSI_LET_FUNC, yymsp[0].minor.yy67);
+ yymsp[-1].minor.yy200->is_reference = 1;
}
-#line 2966 "src/parser_proc.c"
+#line 3317 "src/parser_proc.c"
}
break;
- case 116: /* let_exp ::= num_exp */
-#line 791 "src/parser_proc.y"
+ case 147: /* let_exp ::= num_exp */
+#line 930 "src/parser_proc.y"
{
- yylhsminor.yy196 = psi_let_exp_init_ex(NULL, PSI_LET_NUMEXP, yymsp[0].minor.yy124);
+ yylhsminor.yy200 = psi_let_exp_init_ex(NULL, PSI_LET_NUMEXP, yymsp[0].minor.yy207);
}
-#line 2974 "src/parser_proc.c"
- yymsp[0].minor.yy196 = yylhsminor.yy196;
+#line 3325 "src/parser_proc.c"
+ yymsp[0].minor.yy200 = yylhsminor.yy200;
break;
- case 117: /* let_exp ::= AMPERSAND num_exp */
+ case 148: /* let_exp ::= AMPERSAND num_exp */
{ yy_destructor(yypParser,23,&yymsp[-1].minor);
-#line 794 "src/parser_proc.y"
+#line 933 "src/parser_proc.y"
{
- yymsp[-1].minor.yy196 = psi_let_exp_init_ex(NULL, PSI_LET_NUMEXP, yymsp[0].minor.yy124);
- yymsp[-1].minor.yy196->is_reference = 1;
+ yymsp[-1].minor.yy200 = psi_let_exp_init_ex(NULL, PSI_LET_NUMEXP, yymsp[0].minor.yy207);
+ yymsp[-1].minor.yy200->is_reference = 1;
}
-#line 2984 "src/parser_proc.c"
+#line 3335 "src/parser_proc.c"
}
break;
- case 118: /* let_exp ::= decl_var EQUALS let_exp */
-#line 798 "src/parser_proc.y"
+ case 149: /* let_exp ::= decl_var EQUALS let_exp */
+#line 937 "src/parser_proc.y"
{
- yylhsminor.yy196 = yymsp[0].minor.yy196;
- yylhsminor.yy196->var = yymsp[-2].minor.yy131;
+ yylhsminor.yy200 = yymsp[0].minor.yy200;
+ yylhsminor.yy200->var = yymsp[-2].minor.yy271;
}
-#line 2993 "src/parser_proc.c"
- yy_destructor(yypParser,83,&yymsp[-1].minor);
- yymsp[-2].minor.yy196 = yylhsminor.yy196;
+#line 3344 "src/parser_proc.c"
+ yy_destructor(yypParser,98,&yymsp[-1].minor);
+ yymsp[-2].minor.yy200 = yylhsminor.yy200;
break;
- case 119: /* let_stmt ::= LET let_exp EOS */
-#line 802 "src/parser_proc.y"
+ case 150: /* let_stmt ::= LET let_exp EOS */
+#line 941 "src/parser_proc.y"
{
- yylhsminor.yy138 = psi_let_stmt_init(yymsp[-1].minor.yy196);
- yylhsminor.yy138->token = yymsp[-2].minor.yy0;
+ yylhsminor.yy319 = psi_let_stmt_init(yymsp[-1].minor.yy200);
+ yylhsminor.yy319->token = yymsp[-2].minor.yy0;
}
-#line 3003 "src/parser_proc.c"
- yy_destructor(yypParser,73,&yymsp[0].minor);
- yymsp[-2].minor.yy138 = yylhsminor.yy138;
+#line 3354 "src/parser_proc.c"
+ yy_destructor(yypParser,75,&yymsp[0].minor);
+ yymsp[-2].minor.yy319 = yylhsminor.yy319;
break;
- case 120: /* let_stmt ::= TEMP decl_var EQUALS reference decl_var EOS */
-#line 806 "src/parser_proc.y"
+ case 151: /* let_stmt ::= TEMP decl_var EQUALS reference decl_var EOS */
+#line 945 "src/parser_proc.y"
{
- 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;
+ yylhsminor.yy319 = psi_let_stmt_init(psi_let_exp_init_ex(yymsp[-4].minor.yy271, PSI_LET_TMP, yymsp[-1].minor.yy271));
+ yylhsminor.yy319->token = yymsp[-5].minor.yy0;
+ yylhsminor.yy319->exp->is_reference = yymsp[-2].minor.yy89 ? 1 : 0;
}
-#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;
+#line 3365 "src/parser_proc.c"
+ yy_destructor(yypParser,98,&yymsp[-3].minor);
+ yy_destructor(yypParser,75,&yymsp[0].minor);
+ yymsp[-5].minor.yy319 = yylhsminor.yy319;
break;
- case 121: /* let_callback ::= CALLBACK callback_rval LPAREN impl_var LPAREN callback_arg_list RPAREN RPAREN */
-#line 811 "src/parser_proc.y"
+ case 152: /* let_callback ::= CALLBACK callback_rval LPAREN impl_var LPAREN callback_arg_list RPAREN RPAREN */
+#line 950 "src/parser_proc.y"
{
- 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;
+ yylhsminor.yy120 = psi_let_callback_init(psi_let_func_init(yymsp[-6].minor.yy0->type, yymsp[-6].minor.yy0->text, yymsp[-4].minor.yy370), yymsp[-2].minor.yy243);
+ yylhsminor.yy120->token = yymsp[-7].minor.yy0;
free(yymsp[-6].minor.yy0);
}
-#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;
+#line 3377 "src/parser_proc.c"
+ yy_destructor(yypParser,86,&yymsp[-5].minor);
+ yy_destructor(yypParser,86,&yymsp[-3].minor);
+ yy_destructor(yypParser,87,&yymsp[-1].minor);
+ yy_destructor(yypParser,87,&yymsp[0].minor);
+ yymsp[-7].minor.yy120 = yylhsminor.yy120;
break;
- case 122: /* let_calloc ::= CALLOC LPAREN num_exp COMMA num_exp RPAREN */
-#line 816 "src/parser_proc.y"
+ case 153: /* let_calloc ::= CALLOC LPAREN num_exp COMMA num_exp RPAREN */
+#line 955 "src/parser_proc.y"
{
- yylhsminor.yy227 = psi_let_calloc_init(yymsp[-3].minor.yy124, yymsp[-1].minor.yy124);
- yylhsminor.yy227->token = yymsp[-5].minor.yy0;
+ yylhsminor.yy45 = psi_let_calloc_init(yymsp[-3].minor.yy207, yymsp[-1].minor.yy207);
+ yylhsminor.yy45->token = yymsp[-5].minor.yy0;
}
-#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;
+#line 3390 "src/parser_proc.c"
+ yy_destructor(yypParser,86,&yymsp[-4].minor);
+ yy_destructor(yypParser,88,&yymsp[-2].minor);
+ yy_destructor(yypParser,87,&yymsp[0].minor);
+ yymsp[-5].minor.yy45 = yylhsminor.yy45;
break;
- case 123: /* let_func ::= ZVAL|OBJVAL|ARRVAL|PATHVAL|STRLEN|STRVAL|FLOATVAL|INTVAL|BOOLVAL|COUNT LPAREN impl_var RPAREN */
-#line 820 "src/parser_proc.y"
+ case 154: /* let_func ::= ZVAL|OBJVAL|ARRVAL|PATHVAL|STRLEN|STRVAL|FLOATVAL|INTVAL|BOOLVAL|COUNT LPAREN impl_var RPAREN */
+#line 959 "src/parser_proc.y"
{
- 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;
+ yylhsminor.yy67 = psi_let_func_init(yymsp[-3].minor.yy0->type, yymsp[-3].minor.yy0->text, yymsp[-1].minor.yy370);
+ yylhsminor.yy67->token = yymsp[-3].minor.yy0;
}
-#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;
+#line 3402 "src/parser_proc.c"
+ yy_destructor(yypParser,86,&yymsp[-2].minor);
+ yy_destructor(yypParser,87,&yymsp[0].minor);
+ yymsp[-3].minor.yy67 = yylhsminor.yy67;
break;
- 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"
+ case 155: /* let_func ::= ZVAL|OBJVAL|ARRVAL|PATHVAL|STRLEN|STRVAL|FLOATVAL|INTVAL|BOOLVAL|COUNT LPAREN impl_var COMMA let_exps RPAREN */
+#line 963 "src/parser_proc.y"
{
- 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;
+ yylhsminor.yy67 = psi_let_func_init(yymsp[-5].minor.yy0->type, yymsp[-5].minor.yy0->text, yymsp[-3].minor.yy370);
+ yylhsminor.yy67->token = yymsp[-5].minor.yy0;
+ yylhsminor.yy67->inner = yymsp[-1].minor.yy179;
}
-#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;
+#line 3414 "src/parser_proc.c"
+ yy_destructor(yypParser,86,&yymsp[-4].minor);
+ yy_destructor(yypParser,88,&yymsp[-2].minor);
+ yy_destructor(yypParser,87,&yymsp[0].minor);
+ yymsp[-5].minor.yy67 = yylhsminor.yy67;
break;
- case 125: /* let_exps ::= let_exp */
-#line 829 "src/parser_proc.y"
+ case 156: /* let_exps ::= let_exp */
+#line 968 "src/parser_proc.y"
{
- yylhsminor.yy7 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_let_exp_free),
- &yymsp[0].minor.yy196);
+ yylhsminor.yy179 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_let_exp_free),
+ &yymsp[0].minor.yy200);
}
-#line 3075 "src/parser_proc.c"
- yymsp[0].minor.yy7 = yylhsminor.yy7;
+#line 3426 "src/parser_proc.c"
+ yymsp[0].minor.yy179 = yylhsminor.yy179;
break;
- case 126: /* let_exps ::= let_exps COMMA let_exp */
-#line 833 "src/parser_proc.y"
+ case 157: /* let_exps ::= let_exps COMMA let_exp */
+#line 972 "src/parser_proc.y"
{
- yylhsminor.yy7 = psi_plist_add(yymsp[-2].minor.yy7, &yymsp[0].minor.yy196);
+ yylhsminor.yy179 = psi_plist_add(yymsp[-2].minor.yy179, &yymsp[0].minor.yy200);
}
-#line 3083 "src/parser_proc.c"
- yy_destructor(yypParser,76,&yymsp[-1].minor);
- yymsp[-2].minor.yy7 = yylhsminor.yy7;
+#line 3434 "src/parser_proc.c"
+ yy_destructor(yypParser,88,&yymsp[-1].minor);
+ yymsp[-2].minor.yy179 = yylhsminor.yy179;
break;
- case 127: /* callback_arg_list ::= */
-#line 836 "src/parser_proc.y"
+ case 158: /* callback_arg_list ::= */
+#line 975 "src/parser_proc.y"
{
- yymsp[1].minor.yy304 = NULL;
+ yymsp[1].minor.yy243 = NULL;
}
-#line 3092 "src/parser_proc.c"
+#line 3443 "src/parser_proc.c"
break;
- case 128: /* callback_arg_list ::= callback_args */
-#line 839 "src/parser_proc.y"
+ case 159: /* callback_arg_list ::= callback_args */
+#line 978 "src/parser_proc.y"
{
- yylhsminor.yy304 = yymsp[0].minor.yy304;
+ yylhsminor.yy243 = yymsp[0].minor.yy243;
}
-#line 3099 "src/parser_proc.c"
- yymsp[0].minor.yy304 = yylhsminor.yy304;
+#line 3450 "src/parser_proc.c"
+ yymsp[0].minor.yy243 = yylhsminor.yy243;
break;
- case 129: /* callback_args ::= set_exp */
-#line 842 "src/parser_proc.y"
+ case 160: /* callback_args ::= set_exp */
+#line 981 "src/parser_proc.y"
{
- yylhsminor.yy304 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_set_exp_free),
- &yymsp[0].minor.yy113);
+ yylhsminor.yy243 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_set_exp_free),
+ &yymsp[0].minor.yy180);
}
-#line 3108 "src/parser_proc.c"
- yymsp[0].minor.yy304 = yylhsminor.yy304;
+#line 3459 "src/parser_proc.c"
+ yymsp[0].minor.yy243 = yylhsminor.yy243;
break;
- case 130: /* callback_args ::= callback_args COMMA set_exp */
-#line 846 "src/parser_proc.y"
+ case 161: /* callback_args ::= callback_args COMMA set_exp */
+#line 985 "src/parser_proc.y"
{
- yylhsminor.yy304 = psi_plist_add(yymsp[-2].minor.yy304, &yymsp[0].minor.yy113);
+ yylhsminor.yy243 = psi_plist_add(yymsp[-2].minor.yy243, &yymsp[0].minor.yy180);
}
-#line 3116 "src/parser_proc.c"
- yy_destructor(yypParser,76,&yymsp[-1].minor);
- yymsp[-2].minor.yy304 = yylhsminor.yy304;
+#line 3467 "src/parser_proc.c"
+ yy_destructor(yypParser,88,&yymsp[-1].minor);
+ yymsp[-2].minor.yy243 = yylhsminor.yy243;
break;
- 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"
+ case 164: /* set_func ::= TO_OBJECT|TO_ARRAY|TO_STRING|TO_INT|TO_FLOAT|TO_BOOL|ZVAL|VOID LPAREN decl_var RPAREN */
+#line 994 "src/parser_proc.y"
{
- 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;
+ yylhsminor.yy362 = psi_set_func_init(yymsp[-3].minor.yy0->type, yymsp[-3].minor.yy0->text, yymsp[-1].minor.yy271);
+ yylhsminor.yy362->token = yymsp[-3].minor.yy0;
}
-#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;
+#line 3477 "src/parser_proc.c"
+ yy_destructor(yypParser,86,&yymsp[-2].minor);
+ yy_destructor(yypParser,87,&yymsp[0].minor);
+ yymsp[-3].minor.yy362 = yylhsminor.yy362;
break;
- 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"
+ case 165: /* set_func ::= TO_OBJECT|TO_ARRAY|TO_STRING|TO_INT|TO_FLOAT|TO_BOOL|ZVAL|VOID LPAREN decl_var COMMA set_exps RPAREN */
+#line 998 "src/parser_proc.y"
{
- 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;
+ yylhsminor.yy362 = psi_set_func_init(yymsp[-5].minor.yy0->type, yymsp[-5].minor.yy0->text, yymsp[-3].minor.yy271);
+ yylhsminor.yy362->token = yymsp[-5].minor.yy0;
+ yylhsminor.yy362->inner = yymsp[-1].minor.yy179;
}
-#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;
+#line 3489 "src/parser_proc.c"
+ yy_destructor(yypParser,86,&yymsp[-4].minor);
+ yy_destructor(yypParser,88,&yymsp[-2].minor);
+ yy_destructor(yypParser,87,&yymsp[0].minor);
+ yymsp[-5].minor.yy362 = yylhsminor.yy362;
break;
- 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"
+ case 166: /* set_func ::= TO_OBJECT|TO_ARRAY|TO_STRING|TO_INT|TO_FLOAT|TO_BOOL|ZVAL|VOID LPAREN decl_var COMMA ELLIPSIS RPAREN */
+#line 1003 "src/parser_proc.y"
{
- 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;
+ yylhsminor.yy362 = psi_set_func_init(yymsp[-5].minor.yy0->type, yymsp[-5].minor.yy0->text, yymsp[-3].minor.yy271);
+ yylhsminor.yy362->token = yymsp[-5].minor.yy0;
+ yylhsminor.yy362->recursive = 1;
}
-#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;
+#line 3502 "src/parser_proc.c"
+ yy_destructor(yypParser,86,&yymsp[-4].minor);
+ yy_destructor(yypParser,88,&yymsp[-2].minor);
+ yy_destructor(yypParser,101,&yymsp[-1].minor);
+ yy_destructor(yypParser,87,&yymsp[0].minor);
+ yymsp[-5].minor.yy362 = yylhsminor.yy362;
break;
- case 136: /* set_exp ::= set_func */
-#line 869 "src/parser_proc.y"
+ case 167: /* set_exp ::= set_func */
+#line 1008 "src/parser_proc.y"
{
- yylhsminor.yy113 = psi_set_exp_init(PSI_SET_FUNC, yymsp[0].minor.yy324);
+ yylhsminor.yy180 = psi_set_exp_init(PSI_SET_FUNC, yymsp[0].minor.yy362);
}
-#line 3163 "src/parser_proc.c"
- yymsp[0].minor.yy113 = yylhsminor.yy113;
+#line 3514 "src/parser_proc.c"
+ yymsp[0].minor.yy180 = yylhsminor.yy180;
break;
- case 137: /* set_exp ::= num_exp */
-#line 872 "src/parser_proc.y"
+ case 168: /* set_exp ::= num_exp */
+#line 1011 "src/parser_proc.y"
{
- yylhsminor.yy113 = psi_set_exp_init(PSI_SET_NUMEXP, yymsp[0].minor.yy124);
+ yylhsminor.yy180 = psi_set_exp_init(PSI_SET_NUMEXP, yymsp[0].minor.yy207);
}
-#line 3171 "src/parser_proc.c"
- yymsp[0].minor.yy113 = yylhsminor.yy113;
+#line 3522 "src/parser_proc.c"
+ yymsp[0].minor.yy180 = yylhsminor.yy180;
break;
- case 138: /* set_exps ::= set_exp */
-#line 875 "src/parser_proc.y"
+ case 169: /* set_exps ::= set_exp */
+#line 1014 "src/parser_proc.y"
{
- yylhsminor.yy7 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_set_exp_free),
- &yymsp[0].minor.yy113);
+ yylhsminor.yy179 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_set_exp_free),
+ &yymsp[0].minor.yy180);
}
-#line 3180 "src/parser_proc.c"
- yymsp[0].minor.yy7 = yylhsminor.yy7;
+#line 3531 "src/parser_proc.c"
+ yymsp[0].minor.yy179 = yylhsminor.yy179;
break;
- case 139: /* set_exps ::= set_exps COMMA set_exp */
-#line 879 "src/parser_proc.y"
+ case 170: /* set_exps ::= set_exps COMMA set_exp */
+#line 1018 "src/parser_proc.y"
{
- yylhsminor.yy7 = psi_plist_add(yymsp[-2].minor.yy7, &yymsp[0].minor.yy113);
+ yylhsminor.yy179 = psi_plist_add(yymsp[-2].minor.yy179, &yymsp[0].minor.yy180);
}
-#line 3188 "src/parser_proc.c"
- yy_destructor(yypParser,76,&yymsp[-1].minor);
- yymsp[-2].minor.yy7 = yylhsminor.yy7;
+#line 3539 "src/parser_proc.c"
+ yy_destructor(yypParser,88,&yymsp[-1].minor);
+ yymsp[-2].minor.yy179 = yylhsminor.yy179;
break;
- case 140: /* set_exp ::= impl_var EQUALS set_exp */
-#line 882 "src/parser_proc.y"
+ case 171: /* set_exp ::= impl_var EQUALS set_exp */
+#line 1021 "src/parser_proc.y"
{
- yylhsminor.yy113 = yymsp[0].minor.yy113;
- yylhsminor.yy113->var = yymsp[-2].minor.yy123;
+ yylhsminor.yy180 = yymsp[0].minor.yy180;
+ yylhsminor.yy180->var = yymsp[-2].minor.yy370;
}
-#line 3198 "src/parser_proc.c"
- yy_destructor(yypParser,83,&yymsp[-1].minor);
- yymsp[-2].minor.yy113 = yylhsminor.yy113;
+#line 3549 "src/parser_proc.c"
+ yy_destructor(yypParser,98,&yymsp[-1].minor);
+ yymsp[-2].minor.yy180 = yylhsminor.yy180;
break;
- case 141: /* set_stmt ::= SET set_exp EOS */
-#line 886 "src/parser_proc.y"
+ case 172: /* set_stmt ::= SET set_exp EOS */
+#line 1025 "src/parser_proc.y"
{
- yylhsminor.yy300 = psi_set_stmt_init(yymsp[-1].minor.yy113);
- yylhsminor.yy300->token = yymsp[-2].minor.yy0;
+ yylhsminor.yy358 = psi_set_stmt_init(yymsp[-1].minor.yy180);
+ yylhsminor.yy358->token = yymsp[-2].minor.yy0;
}
-#line 3208 "src/parser_proc.c"
- yy_destructor(yypParser,73,&yymsp[0].minor);
- yymsp[-2].minor.yy300 = yylhsminor.yy300;
+#line 3559 "src/parser_proc.c"
+ yy_destructor(yypParser,75,&yymsp[0].minor);
+ yymsp[-2].minor.yy358 = yylhsminor.yy358;
break;
- case 142: /* return_stmt ::= RETURN set_func EOS */
-#line 890 "src/parser_proc.y"
+ case 173: /* return_stmt ::= RETURN set_func EOS */
+#line 1029 "src/parser_proc.y"
{
- yylhsminor.yy258 = psi_return_stmt_init(psi_set_exp_init(PSI_SET_FUNC, yymsp[-1].minor.yy324));
- yylhsminor.yy258->token = yymsp[-2].minor.yy0;
+ yylhsminor.yy342 = psi_return_stmt_init(psi_set_exp_init(PSI_SET_FUNC, yymsp[-1].minor.yy362));
+ yylhsminor.yy342->token = yymsp[-2].minor.yy0;
}
-#line 3218 "src/parser_proc.c"
- yy_destructor(yypParser,73,&yymsp[0].minor);
- yymsp[-2].minor.yy258 = yylhsminor.yy258;
+#line 3569 "src/parser_proc.c"
+ yy_destructor(yypParser,75,&yymsp[0].minor);
+ yymsp[-2].minor.yy342 = yylhsminor.yy342;
break;
- case 143: /* free_stmt ::= FREE free_exps EOS */
-#line 894 "src/parser_proc.y"
+ case 174: /* free_stmt ::= FREE free_exps EOS */
+#line 1033 "src/parser_proc.y"
{
- yylhsminor.yy102 = psi_free_stmt_init(yymsp[-1].minor.yy7);
- yylhsminor.yy102->token = yymsp[-2].minor.yy0;
+ yylhsminor.yy220 = psi_free_stmt_init(yymsp[-1].minor.yy179);
+ yylhsminor.yy220->token = yymsp[-2].minor.yy0;
}
-#line 3228 "src/parser_proc.c"
- yy_destructor(yypParser,73,&yymsp[0].minor);
- yymsp[-2].minor.yy102 = yylhsminor.yy102;
+#line 3579 "src/parser_proc.c"
+ yy_destructor(yypParser,75,&yymsp[0].minor);
+ yymsp[-2].minor.yy220 = yylhsminor.yy220;
break;
- case 144: /* free_exps ::= free_exp */
-#line 898 "src/parser_proc.y"
+ case 175: /* free_exps ::= free_exp */
+#line 1037 "src/parser_proc.y"
{
- yylhsminor.yy7 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_free_exp_free),
- &yymsp[0].minor.yy114);
+ yylhsminor.yy179 = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_free_exp_free),
+ &yymsp[0].minor.yy146);
}
-#line 3238 "src/parser_proc.c"
- yymsp[0].minor.yy7 = yylhsminor.yy7;
+#line 3589 "src/parser_proc.c"
+ yymsp[0].minor.yy179 = yylhsminor.yy179;
break;
- case 145: /* free_exps ::= free_exps COMMA free_exp */
-#line 902 "src/parser_proc.y"
+ case 176: /* free_exps ::= free_exps COMMA free_exp */
+#line 1041 "src/parser_proc.y"
{
- yylhsminor.yy7 = psi_plist_add(yymsp[-2].minor.yy7, &yymsp[0].minor.yy114);
+ yylhsminor.yy179 = psi_plist_add(yymsp[-2].minor.yy179, &yymsp[0].minor.yy146);
}
-#line 3246 "src/parser_proc.c"
- yy_destructor(yypParser,76,&yymsp[-1].minor);
- yymsp[-2].minor.yy7 = yylhsminor.yy7;
+#line 3597 "src/parser_proc.c"
+ yy_destructor(yypParser,88,&yymsp[-1].minor);
+ yymsp[-2].minor.yy179 = yylhsminor.yy179;
break;
- case 146: /* free_exp ::= NAME LPAREN decl_vars RPAREN */
-#line 905 "src/parser_proc.y"
+ case 177: /* free_exp ::= NAME LPAREN decl_vars RPAREN */
+#line 1044 "src/parser_proc.y"
{
- yylhsminor.yy114 = psi_free_exp_init(yymsp[-3].minor.yy0->text, yymsp[-1].minor.yy7);
- yylhsminor.yy114->token = yymsp[-3].minor.yy0;
+ yylhsminor.yy146 = psi_free_exp_init(yymsp[-3].minor.yy0->text, yymsp[-1].minor.yy179);
+ yylhsminor.yy146->token = yymsp[-3].minor.yy0;
}
-#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;
+#line 3607 "src/parser_proc.c"
+ yy_destructor(yypParser,86,&yymsp[-2].minor);
+ yy_destructor(yypParser,87,&yymsp[0].minor);
+ yymsp[-3].minor.yy146 = yylhsminor.yy146;
break;
- case 147: /* assert_stmt ::= PRE_ASSERT|POST_ASSERT num_exp EOS */
-#line 909 "src/parser_proc.y"
+ case 178: /* assert_stmt ::= PRE_ASSERT|POST_ASSERT num_exp EOS */
+#line 1048 "src/parser_proc.y"
{
- yylhsminor.yy146 = psi_assert_stmt_init(yymsp[-2].minor.yy0->type, yymsp[-1].minor.yy124);
- yylhsminor.yy146->token = yymsp[-2].minor.yy0;
+ yylhsminor.yy201 = psi_assert_stmt_init(yymsp[-2].minor.yy0->type, yymsp[-1].minor.yy207);
+ yylhsminor.yy201->token = yymsp[-2].minor.yy0;
}
-#line 3267 "src/parser_proc.c"
- yy_destructor(yypParser,73,&yymsp[0].minor);
- yymsp[-2].minor.yy146 = yylhsminor.yy146;
+#line 3618 "src/parser_proc.c"
+ yy_destructor(yypParser,75,&yymsp[0].minor);
+ yymsp[-2].minor.yy201 = yylhsminor.yy201;
break;
- case 148: /* reference ::= */
-#line 913 "src/parser_proc.y"
+ case 179: /* reference ::= */
+#line 1052 "src/parser_proc.y"
{
- yymsp[1].minor.yy247 = false;
+ yymsp[1].minor.yy89 = false;
}
-#line 3276 "src/parser_proc.c"
+#line 3627 "src/parser_proc.c"
break;
- case 149: /* reference ::= AMPERSAND */
+ case 180: /* reference ::= AMPERSAND */
{ yy_destructor(yypParser,23,&yymsp[0].minor);
-#line 916 "src/parser_proc.y"
+#line 1055 "src/parser_proc.y"
{
- yymsp[0].minor.yy247 = true;
+ yymsp[0].minor.yy89 = true;
}
-#line 3284 "src/parser_proc.c"
+#line 3635 "src/parser_proc.c"
}
break;
- case 150: /* indirection ::= */
-#line 919 "src/parser_proc.y"
+ case 181: /* indirection ::= */
+#line 1058 "src/parser_proc.y"
{
- yymsp[1].minor.yy296 = 0;
+ yymsp[1].minor.yy382 = 0;
}
-#line 3292 "src/parser_proc.c"
+#line 3643 "src/parser_proc.c"
break;
- case 151: /* indirection ::= pointers */
-#line 922 "src/parser_proc.y"
+ case 182: /* indirection ::= pointers */
+#line 1061 "src/parser_proc.y"
{
- yylhsminor.yy296 = yymsp[0].minor.yy296;
+ yylhsminor.yy382 = yymsp[0].minor.yy382;
}
-#line 3299 "src/parser_proc.c"
- yymsp[0].minor.yy296 = yylhsminor.yy296;
+#line 3650 "src/parser_proc.c"
+ yymsp[0].minor.yy382 = yylhsminor.yy382;
break;
- case 152: /* pointers ::= ASTERISK */
+ case 183: /* pointers ::= ASTERISK */
{ yy_destructor(yypParser,28,&yymsp[0].minor);
-#line 925 "src/parser_proc.y"
+#line 1064 "src/parser_proc.y"
{
- yymsp[0].minor.yy296 = 1;
+ yymsp[0].minor.yy382 = 1;
}
-#line 3308 "src/parser_proc.c"
+#line 3659 "src/parser_proc.c"
}
break;
- case 153: /* pointers ::= pointers ASTERISK */
-#line 928 "src/parser_proc.y"
+ case 184: /* pointers ::= pointers ASTERISK */
+#line 1067 "src/parser_proc.y"
{
- yylhsminor.yy296 = yymsp[-1].minor.yy296+1;
+ yylhsminor.yy382 = yymsp[-1].minor.yy382+1;
}
-#line 3316 "src/parser_proc.c"
+#line 3667 "src/parser_proc.c"
yy_destructor(yypParser,28,&yymsp[0].minor);
- yymsp[-1].minor.yy296 = yylhsminor.yy296;
+ yymsp[-1].minor.yy382 = yylhsminor.yy382;
break;
- case 154: /* file ::= blocks */
-{ yy_destructor(yypParser,157,&yymsp[0].minor);
-#line 175 "src/parser_proc.y"
+ case 185: /* file ::= blocks */
+{ yy_destructor(yypParser,180,&yymsp[0].minor);
+#line 193 "src/parser_proc.y"
{
}
-#line 3325 "src/parser_proc.c"
+#line 3676 "src/parser_proc.c"
}
break;
- case 155: /* blocks ::= block */
-{ yy_destructor(yypParser,158,&yymsp[0].minor);
-#line 176 "src/parser_proc.y"
+ case 186: /* blocks ::= block */
+{ yy_destructor(yypParser,181,&yymsp[0].minor);
+#line 194 "src/parser_proc.y"
{
}
-#line 3333 "src/parser_proc.c"
+#line 3684 "src/parser_proc.c"
}
break;
- case 156: /* blocks ::= blocks block */
-{ yy_destructor(yypParser,157,&yymsp[-1].minor);
-#line 177 "src/parser_proc.y"
+ case 187: /* blocks ::= blocks block */
+{ yy_destructor(yypParser,180,&yymsp[-1].minor);
+#line 195 "src/parser_proc.y"
+{
+}
+#line 3692 "src/parser_proc.c"
+ yy_destructor(yypParser,181,&yymsp[0].minor);
+}
+ break;
+ case 188: /* block ::= EOS */
+{ yy_destructor(yypParser,75,&yymsp[0].minor);
+#line 196 "src/parser_proc.y"
{
}
-#line 3341 "src/parser_proc.c"
- yy_destructor(yypParser,158,&yymsp[0].minor);
+#line 3701 "src/parser_proc.c"
}
break;
- case 157: /* block ::= EOF */
-{ yy_destructor(yypParser,72,&yymsp[0].minor);
-#line 178 "src/parser_proc.y"
+ case 189: /* block ::= EOL */
+{ yy_destructor(yypParser,76,&yymsp[0].minor);
+#line 197 "src/parser_proc.y"
{
}
-#line 3350 "src/parser_proc.c"
+#line 3709 "src/parser_proc.c"
}
break;
- case 158: /* block ::= EOS */
-{ yy_destructor(yypParser,73,&yymsp[0].minor);
-#line 179 "src/parser_proc.y"
+ case 190: /* block ::= COMMENT */
+{ yy_destructor(yypParser,77,&yymsp[0].minor);
+#line 198 "src/parser_proc.y"
{
}
-#line 3358 "src/parser_proc.c"
+#line 3717 "src/parser_proc.c"
}
break;
default:
#define TOKEN yyminor
/************ 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 3420 "src/parser_proc.c"
+ ++P->errors; if (TOKEN) { 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 3779 "src/parser_proc.c"
/************ End %syntax_error code ******************************************/
ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */
}