# line 7 "rttgram.y" #include "rtt1.h" #define YYMAXDEPTH 250 # line 11 "rttgram.y" typedef union { struct token *t; struct node *n; long i; } YYSTYPE; # define Identifier 257 # define StrLit 258 # define LStrLit 259 # define FltConst 260 # define DblConst 261 # define LDblConst 262 # define CharConst 263 # define LCharConst 264 # define IntConst 265 # define UIntConst 266 # define LIntConst 267 # define ULIntConst 268 # define Arrow 269 # define Incr 270 # define Decr 271 # define LShft 272 # define RShft 273 # define Leq 274 # define Geq 275 # define TokEqual 276 # define Neq 277 # define And 278 # define Or 279 # define MultAsgn 280 # define DivAsgn 281 # define ModAsgn 282 # define PlusAsgn 283 # define MinusAsgn 284 # define LShftAsgn 285 # define RShftAsgn 286 # define AndAsgn 287 # define XorAsgn 288 # define OrAsgn 289 # define Sizeof 290 # define Intersect 291 # define OpSym 292 # define Typedef 293 # define Extern 294 # define Static 295 # define Auto 296 # define TokRegister 297 # define Tended 298 # define TokChar 299 # define TokShort 300 # define Int 301 # define TokLong 302 # define Signed 303 # define Unsigned 304 # define Float 305 # define Doubl 306 # define Const 307 # define Volatile 308 # define Void 309 # define TypeDefName 310 # define Struct 311 # define Union 312 # define TokEnum 313 # define Ellipsis 314 # define Case 315 # define Default 316 # define If 317 # define Else 318 # define Switch 319 # define While 320 # define Do 321 # define For 322 # define Goto 323 # define Continue 324 # define Break 325 # define Return 326 # define Runerr 327 # define Is 328 # define Cnv 329 # define Def 330 # define Exact 331 # define Empty_type 332 # define IconType 333 # define Component 334 # define Variable 335 # define Any_value 336 # define Named_var 337 # define Struct_var 338 # define C_Integer 339 # define Arith_case 340 # define C_Double 341 # define C_String 342 # define Tmp_string 343 # define Tmp_cset 344 # define Body 345 # define End 346 # define TokFunction 347 # define Keyword 348 # define Operator 349 # define Underef 350 # define Declare 351 # define Suspend 352 # define Fail 353 # define Inline 354 # define Abstract 355 # define Store 356 # define TokType 357 # define New 358 # define All_fields 359 # define Then 360 # define Type_case 361 # define Of 362 # define Len_case 363 # define Constant 364 # define Errorfail 365 # define IfStmt 366 #define yyclearin yychar = -1 #define yyerrok yyerrflag = 0 extern int yychar; extern int yyerrflag; #ifndef YYMAXDEPTH #define YYMAXDEPTH 150 #endif YYSTYPE yylval, yyval; # define YYERRCODE 256 # line 1089 "rttgram.y" /* * xfree(p) -- used with free(p) macro to avoid compiler errors from * miscast free calls generated by Yacc. */ static void xfree(p) char *p; { free(p); } #define free(p) xfree((char*)p) int yyexca[] ={ -1, 0, 0, 279, 258, 299, 347, 299, 348, 299, 349, 299, -2, 193, -1, 1, 0, -1, -2, 0, -1, 2, 0, 280, 258, 299, 347, 299, 348, 299, 349, 299, -2, 193, -1, 51, 44, 113, 59, 113, -2, 290, -1, 58, 44, 115, 59, 115, -2, 289, -1, 100, 123, 166, -2, 168, -1, 138, 125, 257, 59, 86, -2, 230, -1, 238, 125, 257, 59, 86, -2, 230, -1, 239, 125, 258, 59, 86, -2, 230, -1, 255, 58, 293, -2, 1, -1, 256, 58, 294, -2, 98, -1, 262, 59, 86, -2, 230, -1, 308, 41, 212, -2, 193, -1, 371, 41, 204, 44, 204, -2, 193, -1, 396, 59, 86, -2, 230, -1, 398, 59, 86, -2, 230, -1, 452, 41, 214, 44, 214, -2, 194, -1, 516, 59, 86, -2, 230, -1, 545, 40, 193, 91, 193, -2, 219, -1, 617, 293, 219, 294, 219, 295, 219, 296, 219, 297, 219, 299, 219, 300, 219, 301, 219, 302, 219, 303, 219, 304, 219, 305, 219, 306, 219, 307, 219, 308, 219, 309, 219, 310, 219, 311, 219, 312, 219, 313, 219, 41, 219, 339, 219, 341, 219, 342, 219, -2, 193, -1, 624, 59, 86, -2, 230, -1, 625, 59, 86, -2, 230, -1, 627, 59, 86, -2, 230, -1, 677, 59, 86, -2, 230, -1, 725, 59, 86, -2, 230, -1, 730, 58, 453, -2, 317, -1, 731, 58, 454, -2, 321, -1, 732, 58, 455, -2, 324, -1, 733, 58, 456, -2, 337, -1, 771, 59, 86, -2, 230, -1, 792, 59, 86, -2, 230, }; # define YYNPROD 481 # define YYLAST 3082 int yyact[]={ 166, 644, 439, 665, 196, 272, 241, 718, 245, 720, 565, 350, 645, 16, 676, 257, 63, 657, 105, 9, 662, 9, 646, 492, 365, 212, 552, 370, 104, 8, 358, 8, 11, 658, 240, 88, 186, 50, 143, 234, 222, 346, 58, 638, 97, 97, 227, 761, 271, 213, 420, 486, 140, 484, 97, 147, 745, 98, 98, 12, 478, 51, 642, 551, 193, 13, 475, 98, 728, 55, 118, 120, 119, 541, 146, 56, 683, 25, 238, 709, 523, 746, 684, 90, 436, 437, 364, 438, 435, 137, 725, 652, 553, 553, 345, 436, 437, 123, 438, 435, 436, 437, 179, 438, 435, 347, 348, 349, 666, 93, 132, 663, 23, 24, 144, 18, 19, 20, 21, 22, 144, 33, 34, 35, 36, 39, 40, 37, 38, 23, 24, 32, 308, 45, 46, 44, 97, 307, 141, 255, 132, 132, 185, 181, 132, 180, 141, 182, 393, 98, 670, 144, 256, 191, 56, 165, 301, 780, 751, 15, 394, 395, 713, 228, 189, 55, 696, 184, 53, 479, 124, 56, 288, 789, 154, 663, 446, 215, 650, 317, 560, 318, 223, 246, 274, 315, 316, 695, 490, 298, 321, 322, 312, 61, 183, 336, 214, 237, 338, 334, 337, 131, 339, 412, 351, 352, 295, 297, 215, 299, 820, 360, 800, 328, 127, 200, 31, 368, 770, 18, 19, 20, 21, 22, 756, 691, 612, 306, 233, 384, 510, 128, 132, 23, 24, 373, 422, 97, 496, 255, 255, 491, 476, 215, 305, 372, 390, 384, 387, 786, 98, 626, 256, 391, 561, 559, 138, 235, 477, 130, 332, 313, 214, 255, 53, 409, 236, 53, 211, 406, 210, 53, 750, 389, 378, 88, 391, 209, 391, 382, 215, 423, 135, 413, 413, 215, 126, 59, 802, 53, 738, 92, 97, 97, 200, 420, 429, 397, 690, 214, 660, 95, 100, 215, 214, 98, 98, 447, 357, 404, 509, 110, 471, 363, 312, 637, 700, 421, 651, 696, 765, 485, 214, 312, 312, 434, 781, 385, 383, 114, 368, 108, 226, 545, 696, 696, 334, 425, 426, 399, 695, 218, 772, 215, 535, 306, 334, 768, 373, 306, 666, 188, 451, 735, 351, 695, 695, 215, 372, 220, 194, 215, 468, 469, 470, 487, 636, 764, 521, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 546, 97, 452, 480, 287, 347, 348, 349, 230, 319, 320, 512, 514, 255, 98, 255, 52, 190, 187, 515, 500, 517, 518, 671, 448, 202, 391, 474, 391, 228, 31, 501, 472, 503, 629, 208, 527, 528, 529, 524, 507, 122, 531, 505, 144, 223, 511, 49, 205, 55, 359, 508, 388, 206, 432, 56, 530, 215, 454, 455, 488, 489, 207, 201, 408, 452, 220, 519, 520, 203, 522, 204, 195, 433, 457, 456, 214, 533, 424, 458, 459, 386, 466, 467, 453, 440, 436, 437, 417, 438, 435, 441, 121, 442, 443, 444, 445, 23, 24, 554, 526, 557, 558, 543, 202, 464, 465, 525, 566, 419, 649, 647, 648, 566, 208, 614, 418, 696, 411, 63, 556, 567, 215, 613, 142, 389, 567, 205, 460, 461, 462, 463, 206, 255, 373, 361, 362, 555, 695, 621, 611, 207, 201, 616, 372, 410, 391, 502, 203, 420, 204, 401, 53, 818, 290, 242, 5, 31, 5, 631, 291, 632, 633, 534, 635, 430, 431, 107, 53, 331, 618, 380, 619, 229, 376, 31, 215, 341, 215, 351, 815, 351, 620, 810, 113, 107, 379, 771, 640, 375, 664, 224, 667, 643, 759, 214, 758, 214, 659, 112, 106, 757, 715, 712, 103, 289, 215, 516, 483, 482, 481, 398, 396, 381, 377, 304, 303, 164, 215, 302, 697, 775, 159, 327, 178, 630, 160, 161, 325, 162, 323, 798, 324, 326, 799, 794, 755, 214, 795, 452, 753, 255, 255, 754, 255, 672, 734, 673, 674, 420, 678, 669, 685, 627, 391, 391, 420, 391, 139, 625, 692, 680, 420, 682, 693, 659, 123, 562, 701, 702, 351, 351, 351, 703, 373, 499, 677, 498, 686, 710, 689, 704, 705, 706, 372, 721, 624, 699, 622, 420, 708, 623, 420, 679, 494, 659, 563, 711, 714, 564, 536, 812, 729, 537, 736, 31, 727, 737, 215, 811, 163, 452, 741, 806, 659, 351, 711, 790, 749, 494, 493, 453, 373, 742, 743, 677, 747, 214, 739, 797, 449, 792, 372, 420, 777, 776, 760, 762, 774, 766, 566, 763, 255, 752, 740, 724, 717, 716, 769, 688, 767, 681, 634, 567, 547, 391, 538, 497, 450, 330, 217, 748, 698, 668, 655, 654, 779, 773, 653, 628, 542, 540, 539, 407, 405, 403, 782, 783, 784, 402, 785, 787, 721, 292, 293, 294, 400, 356, 353, 314, 355, 788, 3, 502, 354, 47, 791, 793, 641, 796, 342, 719, 723, 495, 117, 801, 803, 721, 192, 255, 116, 115, 60, 807, 804, 805, 808, 10, 48, 6, 4, 809, 391, 2, 392, 249, 687, 639, 216, 329, 136, 813, 814, 99, 506, 817, 816, 200, 504, 819, 1, 75, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 778, 150, 151, 550, 164, 549, 661, 344, 675, 159, 726, 178, 707, 160, 161, 656, 162, 343, 197, 199, 198, 153, 340, 7, 18, 19, 20, 21, 22, 243, 33, 34, 35, 36, 39, 40, 37, 38, 23, 24, 32, 26, 45, 46, 44, 253, 247, 248, 258, 252, 259, 261, 262, 263, 264, 265, 266, 267, 254, 156, 157, 158, 73, 71, 74, 69, 87, 67, 77, 81, 27, 75, 28, 29, 84, 83, 68, 72, 251, 250, 239, 86, 70, 268, 269, 76, 65, 80, 85, 78, 66, 82, 260, 79, 101, 102, 270, 163, 244, 273, 544, 366, 369, 367, 599, 62, 109, 605, 582, 600, 568, 594, 604, 571, 597, 589, 592, 598, 607, 584, 578, 573, 609, 608, 26, 601, 606, 580, 42, 570, 576, 588, 579, 603, 610, 577, 585, 587, 574, 569, 595, 596, 590, 572, 575, 73, 71, 74, 69, 87, 67, 77, 81, 27, 225, 28, 29, 84, 83, 68, 72, 586, 591, 593, 86, 70, 602, 583, 76, 65, 80, 85, 78, 66, 82, 164, 79, 221, 202, 581, 159, 133, 178, 129, 160, 161, 41, 162, 208, 309, 54, 17, 371, 436, 437, 276, 438, 435, 148, 428, 149, 205, 155, 744, 694, 335, 206, 43, 275, 152, 0, 0, 0, 0, 0, 207, 201, 0, 0, 111, 0, 0, 203, 0, 204, 0, 0, 0, 75, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 0, 150, 151, 33, 34, 35, 36, 39, 40, 37, 38, 23, 24, 32, 0, 45, 46, 44, 0, 0, 0, 153, 0, 0, 0, 0, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 75, 0, 0, 0, 247, 248, 258, 0, 259, 261, 262, 263, 264, 265, 266, 267, 254, 156, 157, 158, 73, 71, 74, 69, 87, 67, 77, 81, 27, 0, 28, 29, 84, 83, 68, 72, 0, 0, 0, 86, 70, 268, 269, 76, 65, 80, 85, 78, 66, 82, 260, 79, 164, 26, 270, 0, 0, 159, 0, 178, 0, 160, 161, 0, 162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 71, 74, 69, 87, 67, 77, 81, 27, 0, 28, 29, 84, 83, 68, 72, 0, 0, 0, 86, 70, 0, 0, 76, 65, 80, 85, 78, 66, 82, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 0, 150, 151, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 0, 0, 0, 163, 0, 0, 0, 0, 153, 0, 0, 0, 75, 0, 0, 0, 0, 33, 34, 35, 36, 39, 40, 37, 38, 23, 24, 32, 26, 45, 46, 44, 164, 0, 0, 0, 0, 159, 0, 178, 0, 160, 161, 0, 162, 0, 156, 157, 158, 73, 71, 74, 69, 87, 67, 77, 81, 27, 0, 28, 29, 84, 83, 68, 72, 26, 0, 0, 86, 70, 0, 0, 76, 65, 80, 85, 78, 66, 82, 0, 79, 0, 0, 0, 0, 0, 73, 71, 74, 69, 87, 67, 77, 81, 27, 0, 28, 29, 84, 83, 68, 72, 0, 0, 0, 86, 70, 0, 0, 76, 65, 80, 85, 78, 66, 82, 0, 79, 0, 0, 0, 0, 0, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 75, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 0, 150, 151, 0, 164, 0, 0, 0, 0, 159, 0, 178, 0, 160, 161, 0, 162, 0, 0, 0, 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 259, 261, 262, 263, 264, 265, 266, 267, 254, 156, 157, 158, 73, 71, 74, 69, 87, 67, 77, 81, 0, 0, 0, 0, 84, 83, 68, 72, 0, 0, 0, 86, 70, 268, 269, 76, 65, 80, 85, 78, 66, 82, 260, 79, 0, 0, 270, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 0, 150, 151, 0, 0, 164, 0, 0, 0, 0, 159, 0, 178, 0, 160, 161, 0, 162, 0, 0, 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 259, 261, 262, 263, 264, 265, 266, 267, 254, 156, 157, 158, 73, 731, 732, 69, 733, 730, 77, 81, 0, 0, 0, 0, 84, 83, 68, 72, 0, 0, 0, 86, 70, 268, 269, 76, 65, 80, 85, 78, 66, 82, 260, 79, 0, 145, 270, 532, 163, 0, 0, 0, 0, 0, 0, 0, 75, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 0, 150, 151, 164, 0, 0, 0, 0, 159, 0, 178, 427, 160, 161, 0, 162, 0, 0, 0, 0, 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 0, 0, 0, 0, 159, 0, 178, 0, 160, 161, 0, 162, 0, 0, 0, 0, 0, 0, 0, 0, 156, 157, 158, 73, 71, 74, 69, 87, 67, 77, 81, 414, 374, 415, 416, 84, 83, 68, 72, 0, 0, 0, 86, 70, 0, 0, 76, 65, 80, 85, 78, 66, 82, 0, 79, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 0, 150, 151, 0, 0, 145, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 153, 0, 164, 0, 0, 0, 0, 159, 0, 178, 0, 160, 161, 0, 162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, 157, 158, 73, 71, 74, 69, 87, 67, 77, 81, 0, 0, 0, 0, 84, 83, 68, 72, 0, 0, 0, 86, 70, 0, 0, 76, 65, 80, 85, 78, 66, 82, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 163, 150, 151, 0, 0, 0, 33, 34, 35, 36, 39, 40, 37, 38, 23, 24, 32, 26, 45, 46, 44, 153, 0, 75, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 0, 150, 151, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 28, 29, 0, 0, 0, 0, 0, 0, 153, 0, 0, 156, 157, 158, 73, 71, 74, 69, 87, 67, 77, 81, 0, 0, 0, 0, 84, 83, 68, 72, 0, 0, 0, 86, 70, 0, 0, 76, 65, 80, 85, 78, 66, 82, 0, 79, 156, 157, 158, 73, 71, 74, 69, 87, 67, 77, 81, 0, 0, 0, 0, 84, 83, 68, 72, 0, 0, 0, 86, 70, 0, 0, 76, 65, 80, 85, 78, 66, 82, 0, 79, 0, 0, 75, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 0, 150, 151, 164, 0, 0, 0, 0, 159, 0, 300, 0, 160, 161, 0, 162, 0, 0, 0, 0, 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 0, 0, 0, 0, 159, 0, 296, 0, 160, 161, 0, 162, 0, 0, 0, 0, 0, 0, 0, 0, 156, 157, 158, 73, 71, 74, 69, 87, 67, 77, 81, 75, 219, 0, 0, 84, 83, 68, 72, 0, 0, 0, 86, 70, 0, 0, 76, 65, 80, 85, 78, 66, 82, 0, 79, 0, 0, 163, 0, 0, 0, 0, 0, 75, 0, 0, 0, 18, 19, 20, 21, 22, 0, 33, 34, 35, 36, 39, 40, 37, 38, 23, 24, 32, 26, 45, 46, 44, 0, 0, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 71, 74, 69, 87, 67, 77, 81, 27, 0, 28, 29, 84, 83, 68, 72, 0, 0, 0, 86, 70, 0, 0, 76, 65, 80, 85, 78, 66, 82, 617, 79, 73, 71, 74, 69, 87, 67, 77, 81, 0, 0, 0, 0, 84, 83, 68, 72, 0, 0, 0, 722, 70, 0, 0, 76, 65, 80, 85, 78, 66, 82, 0, 79, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 546, 0, 75, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 0, 150, 151, 0, 0, 0, 33, 34, 35, 36, 39, 40, 37, 38, 23, 24, 32, 26, 45, 46, 44, 153, 0, 75, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 0, 150, 151, 0, 0, 14, 0, 0, 0, 0, 0, 27, 0, 28, 29, 57, 64, 0, 0, 0, 0, 153, 0, 91, 156, 157, 158, 73, 71, 74, 69, 87, 67, 77, 81, 0, 0, 94, 0, 84, 83, 68, 72, 0, 0, 0, 86, 70, 0, 0, 76, 65, 80, 85, 78, 66, 82, 0, 79, 156, 157, 158, 73, 71, 74, 69, 87, 67, 77, 81, 75, 0, 0, 0, 84, 83, 68, 72, 0, 0, 0, 86, 70, 0, 0, 76, 65, 80, 85, 78, 66, 82, 0, 79, 57, 0, 0, 0, 125, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 94, 94, 0, 0, 125, 0, 94, 232, 0, 0, 0, 0, 73, 71, 74, 69, 87, 67, 77, 81, 27, 0, 28, 29, 84, 83, 68, 72, 0, 0, 0, 86, 70, 0, 0, 76, 65, 80, 85, 78, 66, 82, 75, 79, 0, 200, 0, 0, 200, 0, 0, 0, 310, 0, 0, 0, 0, 0, 0, 73, 71, 74, 69, 87, 67, 77, 81, 0, 0, 0, 0, 84, 83, 68, 72, 0, 0, 0, 86, 70, 0, 0, 76, 65, 80, 85, 78, 66, 82, 0, 79, 0, 94, 0, 0, 513, 0, 0, 0, 0, 0, 75, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 71, 74, 69, 87, 67, 77, 81, 548, 0, 0, 0, 84, 83, 68, 72, 0, 75, 31, 86, 70, 0, 0, 76, 65, 80, 85, 78, 66, 82, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, 73, 71, 74, 69, 87, 67, 77, 81, 310, 310, 0, 0, 84, 83, 68, 72, 0, 0, 0, 86, 70, 0, 0, 76, 65, 80, 85, 78, 66, 82, 0, 79, 73, 71, 74, 69, 87, 67, 77, 81, 0, 0, 0, 0, 84, 83, 68, 72, 0, 0, 0, 86, 70, 31, 0, 76, 65, 80, 85, 78, 66, 82, 0, 79, 202, 0, 0, 202, 0, 229, 0, 0, 57, 0, 208, 0, 0, 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 0, 0, 205, 0, 206, 473, 0, 206, 333, 0, 0, 0, 0, 207, 201, 0, 207, 201, 0, 0, 203, 0, 204, 203, 0, 204, 0, 0, 0, 18, 19, 20, 21, 22, 243, 33, 34, 35, 36, 39, 40, 37, 38, 23, 24, 32, 26, 45, 46, 44, 18, 19, 20, 21, 22, 0, 33, 34, 35, 36, 39, 40, 37, 38, 23, 24, 32, 26, 45, 46, 44, 615, 30, 0, 0, 27, 0, 28, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, 0, 0, 27, 0, 28, 29, 18, 19, 20, 21, 22, 243, 33, 34, 35, 36, 39, 40, 37, 38, 23, 24, 32, 26, 45, 46, 44, 0, 18, 19, 20, 21, 22, 0, 33, 34, 35, 36, 39, 40, 37, 38, 23, 24, 32, 26, 45, 46, 44, 0, 0, 0, 27, 0, 28, 29, 0, 0, 0, 33, 34, 35, 36, 39, 40, 37, 38, 23, 24, 32, 26, 45, 46, 44, 27, 134, 28, 29, 18, 19, 20, 21, 22, 0, 33, 34, 35, 36, 39, 40, 37, 38, 23, 24, 32, 26, 45, 46, 44, 27, 0, 28, 29, 0, 0, 134, 134, 0, 0, 134, 0, 0, 231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 28, 29, 33, 34, 35, 36, 39, 40, 37, 38, 23, 24, 32, 26, 45, 46, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 28, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 0, 0, 0, 311, 311 }; int yypact[]={ 2527, -1000, 2527, -1000, -1000, -1000, -1000, -1000, 372, 2527, -65, -1000, -1000, -1000, -1000, 2279, -74, -178, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 174, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2116, 862, -1000, -1000, -1000, 2577, -1000, 525, 270, -1000, 1016, 524, -1000, -1000, -1000, 268, -1000, -277, -1000, 385, -1000, 647, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -74, -1000, -1000, -1000, 174, -1000, -1000, 163, 2552, -1000, -1000, 159, -1000, 133, 2577, -1000, 372, 2527, -1000, 647, 1652, 311, -1000, 647, -1000, 647, 1652, -1000, -287, 92, 154, 147, 145, 1760, -1000, 703, -1000, -1000, 2552, 1975, -1000, 517, 2621, -1000, -195, 781, -1000, 862, 143, -1000, 568, -1000, 270, 268, -1000, -1000, -1000, 1652, -1000, 971, 109, 498, 2034, 2034, 1760, 1999, -122, -1000, 545, 542, 541, -1000, -1000, -1000, -1000, -1000, -1000, 120, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 979, 167, 735, -91, 119, -82, 571, 570, -1000, 1760, -1000, 702, -1000, -1000, 171, 137, 2360, -63, -1000, -1000, -1000, -1000, 171, -1000, 61, 2311, 2311, 732, -1000, -1000, 731, 169, 169, 169, 220, -1000, -1000, -1000, 1842, -1000, 1593, -1000, -1000, 514, -1000, 540, 1760, 511, -1000, -1000, 539, 1760, -195, -1000, -1000, 203, -1000, 266, 862, 123, 568, 808, -1000, -1000, -1000, -151, -1000, -1000, 538, 1760, 537, 133, -1000, -1000, -1000, -1000, 730, -1000, -74, 476, 723, 719, 1760, 718, 808, 717, 862, 470, 443, 1378, 1378, 441, 434, 632, -1000, 192, -1000, 1760, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1760, 1760, 1760, 1617, 862, 862, -1000, -1000, -1000, 1760, -1000, -1000, -1000, 979, 1760, -232, 136, 136, 1760, 673, 701, 647, 2552, 2552, -1000, -1000, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 219, 1842, -1000, 2357, 2505, -1000, -1000, -280, -1000, -1000, -1000, -1000, 117, 171, 135, -300, -109, -223, -1000, 536, 535, 534, -309, 230, -311, 2311, 133, 133, -77, 116, 660, -1000, -1000, -1000, 113, -1000, 700, -1000, 617, -1000, -1000, 615, -1000, 647, -1000, 2577, -1000, -1000, 517, -1000, -1000, -1000, 499, -1000, -1000, -1000, 862, 1760, 185, -1000, 105, -1000, -1000, -1000, 647, -1000, 2220, 2311, 808, 533, 808, -1000, 1760, -1000, 1760, 1760, 6, 1760, -240, 1760, 432, -1000, -1000, -1000, 425, -1000, 1760, 1760, 1760, 381, -1000, -1000, 1760, -1000, 1501, -1000, -122, 489, 251, -1000, 643, -1000, -1000, -1000, 699, 120, 716, -1000, -1000, -1000, -1000, 715, -1000, -1000, -1000, -1000, -1000, -1000, -258, 714, 167, -1000, 1760, -1000, -1000, 293, -1000, -1000, 735, -91, 119, 119, -82, -82, -82, -82, 571, 571, 570, 570, -1000, -1000, -1000, -1000, 697, -1000, 2434, -1000, -1000, -263, 171, -223, -1000, -232, 136, 136, 132, -85, 131, 607, -1000, -1000, 639, 651, -1000, 169, -1000, 101, 651, -1000, 2311, 2455, -1000, -1000, 2163, -1000, 1760, -1000, 1760, -1000, -1000, -1000, -1000, 507, -1000, -1000, -1000, -1000, 808, -1000, 631, 629, 602, 128, 596, 713, 359, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1760, -1000, -1000, 1760, -1000, 1760, 1760, 695, 1760, -1000, 275, 647, 1760, -1000, -1000, -1000, -264, 138, -1000, 227, -227, -1000, 712, 709, 708, -232, 207, -90, 2311, 291, 2311, 707, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 635, -142, -1000, -1000, -1000, -1000, 647, -1000, -1000, -1000, -1000, 348, 1760, 808, 808, -232, 808, 1760, 1760, -1000, -1000, 694, 603, -257, 592, 1760, -1000, 692, 2577, 205, 100, 138, -1000, 49, 558, -1000, 706, -232, 225, 138, 138, 171, 2311, 2311, 2311, -237, -1000, 698, 529, -1000, -154, -1000, 528, 690, -1000, -1000, 689, 1874, -1000, -1000, -1000, 688, -228, -1000, -248, -1000, 1260, -1000, 589, 294, -1000, 1760, -1000, -1000, 1760, 197, 2577, -1000, 687, -1000, -1000, 49, -1000, 138, 138, -1000, -278, 2311, 705, 138, 231, 65, -1000, 686, 583, 576, 99, -1000, 527, -1000, 522, -1000, 520, -1000, 171, -315, 291, 684, 276, -1000, -1000, 2311, 651, 288, 808, 93, -1000, 513, -1000, -1000, -1000, -1000, -1000, 283, 1760, 681, 561, -1000, 678, -1000, -1000, 558, 558, -1000, -1000, -1000, 677, 138, 64, -1000, 265, -1000, -1000, 1760, 1760, -1000, 171, -1000, 171, -1000, 126, -1000, -1000, 2311, 1874, -96, 661, -1000, -1000, -1000, 1138, -1000, 674, -1000, 1760, -1000, -1000, 578, -104, -1000, 138, 672, 574, -1000, 87, 136, 195, -1000, 2311, 1874, -1000, 808, 656, -1000, 138, 49, -1000, -1000, 1760, -1000, 509, -1000, -1000, 652, -1000, -1000, -104, -1000, 644, 171, -1000, -1000, 136, 506, 171, 136, 479, 171, 85, -1000 }; int yypgo[]={ 0, 1046, 1045, 1044, 13, 0, 10, 1042, 1041, 1040, 257, 65, 2308, 1039, 1037, 1036, 55, 36, 142, 167, 194, 147, 143, 145, 102, 155, 174, 1035, 74, 5, 48, 15, 49, 25, 539, 28, 1029, 59, 1028, 18, 37, 1027, 400, 287, 1026, 2770, 1023, 214, 231, 1020, 201, 1018, 1014, 40, 991, 46, 965, 228, 39, 52, 32, 943, 942, 77, 159, 259, 940, 24, 939, 27, 938, 132, 137, 43, 937, 38, 936, 6, 935, 89, 932, 931, 917, 916, 915, 886, 882, 86, 860, 197, 78, 34, 2, 22, 859, 360, 4, 203, 857, 856, 11, 855, 183, 854, 852, 849, 17, 33, 847, 14, 845, 8, 844, 41, 843, 20, 842, 840, 26, 1, 12, 837, 23, 30, 824, 822, 818, 817, 814, 813, 812, 811, 810, 809, 808, 807, 776, 804, 803, 802, 801, 796, 795, 794, 792, 788, 308, 7, 787, 786, 785, 9, 784, 782, 778, 774, 3 }; int yyr1[]={ 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 16, 16, 16, 16, 16, 16, 1, 1, 1, 1, 1, 1, 17, 17, 18, 18, 18, 18, 19, 19, 19, 20, 20, 20, 21, 21, 21, 21, 21, 22, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 30, 30, 31, 31, 32, 33, 33, 34, 34, 34, 35, 35, 36, 36, 37, 37, 37, 38, 38, 38, 38, 39, 39, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 11, 11, 11, 11, 11, 44, 44, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 46, 46, 46, 3, 3, 47, 47, 48, 48, 49, 49, 50, 50, 50, 51, 51, 51, 52, 52, 53, 53, 125, 53, 54, 54, 55, 55, 126, 55, 127, 56, 128, 56, 56, 57, 57, 58, 58, 12, 12, 59, 60, 61, 61, 61, 129, 61, 62, 62, 62, 130, 62, 87, 87, 63, 63, 63, 63, 64, 64, 65, 65, 66, 66, 67, 67, 68, 68, 69, 69, 69, 70, 70, 71, 71, 71, 71, 72, 72, 73, 73, 74, 74, 74, 131, 74, 132, 74, 75, 75, 75, 76, 76, 77, 77, 133, 111, 111, 111, 111, 111, 111, 111, 78, 78, 78, 79, 79, 80, 80, 81, 81, 90, 90, 91, 91, 134, 134, 134, 134, 82, 82, 89, 89, 83, 84, 84, 84, 84, 110, 110, 109, 108, 108, 85, 85, 85, 86, 86, 86, 86, 86, 86, 86, 124, 124, 135, 135, 136, 136, 136, 139, 137, 88, 88, 88, 10, 10, 102, 102, 4, 4, 4, 4, 140, 138, 142, 142, 142, 141, 141, 143, 148, 149, 143, 145, 7, 7, 7, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 146, 146, 146, 123, 123, 122, 122, 147, 147, 147, 150, 150, 151, 151, 151, 144, 144, 94, 94, 95, 95, 96, 96, 96, 96, 152, 153, 96, 101, 101, 101, 101, 101, 104, 104, 106, 105, 105, 107, 107, 114, 114, 115, 103, 103, 112, 112, 113, 113, 113, 113, 113, 154, 98, 155, 98, 99, 99, 156, 156, 100, 100, 92, 92, 92, 92, 92, 92, 92, 92, 93, 93, 93, 93, 97, 97, 97, 97, 116, 116, 116, 117, 117, 118, 119, 119, 119, 120, 120, 120, 120, 120, 120, 8, 121, 121, 9, 9 }; int yyr2[]={ 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7, 2, 9, 7, 9, 7, 7, 5, 5, 13, 17, 21, 2, 7, 2, 5, 5, 5, 5, 9, 2, 2, 2, 2, 2, 2, 2, 9, 2, 7, 7, 7, 2, 7, 7, 2, 7, 7, 2, 7, 7, 7, 7, 2, 7, 7, 2, 7, 2, 7, 2, 7, 2, 7, 2, 7, 2, 11, 2, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 1, 2, 2, 1, 2, 5, 7, 7, 2, 5, 2, 2, 3, 5, 2, 2, 5, 5, 5, 2, 2, 5, 5, 2, 7, 2, 7, 3, 7, 3, 7, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 11, 9, 5, 2, 2, 2, 5, 7, 7, 2, 5, 3, 5, 2, 2, 5, 5, 2, 7, 3, 5, 1, 9, 2, 7, 3, 5, 1, 9, 1, 11, 1, 13, 5, 2, 7, 3, 7, 3, 3, 5, 5, 2, 7, 9, 1, 11, 3, 7, 9, 1, 11, 2, 2, 3, 5, 5, 7, 1, 2, 2, 5, 2, 7, 1, 2, 2, 7, 5, 2, 5, 3, 7, 2, 2, 5, 5, 2, 5, 2, 5, 7, 7, 9, 1, 9, 1, 11, 2, 7, 9, 2, 7, 2, 2, 1, 5, 2, 2, 2, 2, 11, 15, 7, 9, 7, 7, 9, 2, 5, 1, 2, 2, 5, 2, 9, 3, 5, 5, 5, 2, 5, 1, 2, 5, 11, 15, 11, 15, 3, 5, 5, 1, 7, 11, 15, 19, 7, 5, 5, 7, 7, 5, 5, 0, 2, 2, 4, 2, 3, 2, 1, 9, 3, 5, 5, 3, 3, 3, 3, 2, 2, 2, 2, 1, 6, 9, 7, 9, 1, 3, 17, 1, 1, 23, 11, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 5, 9, 3, 3, 1, 3, 0, 2, 9, 2, 7, 3, 5, 9, 1, 9, 1, 2, 2, 5, 2, 2, 2, 7, 1, 1, 13, 9, 13, 15, 19, 37, 3, 5, 5, 1, 7, 5, 7, 2, 5, 7, 2, 5, 2, 7, 13, 13, 17, 17, 21, 1, 7, 1, 7, 11, 15, 0, 3, 3, 9, 3, 3, 3, 3, 3, 3, 9, 9, 3, 3, 3, 3, 2, 5, 5, 5, 9, 7, 3, 2, 5, 15, 2, 7, 7, 3, 9, 11, 9, 7, 7, 2, 2, 7, 2, 2 }; int yychk[]={ -1000, -124, -135, -136, -137, -34, -138, -88, -35, -39, -140, -60, -37, -11, -12, -64, -4, -38, 293, 294, 295, 296, 297, 307, 308, -63, 310, 339, 341, 342, -45, 42, 309, 299, 300, 301, 302, 305, 306, 303, 304, -46, -56, -3, 313, 311, 312, -136, -139, 59, -40, -59, -42, -64, -41, -37, -11, -12, -60, -43, -141, 258, -62, -5, 40, 355, 359, 336, 345, 334, 351, 332, 346, 331, 333, 257, 354, 337, 358, 362, 356, 338, 360, 344, 343, 357, 350, 335, -39, -45, -11, -12, -65, -63, -12, -10, 123, -5, -4, -127, -10, -81, -80, -34, -35, -39, 59, 44, 61, -61, -10, 40, 59, 44, 61, -142, -143, -145, 347, 349, 348, 91, 40, -60, -63, -12, 123, -47, -48, -49, -65, -50, -4, -51, -45, 123, -128, -79, 123, -34, -59, -60, -42, -75, -29, 123, -28, -16, -27, -14, 270, 271, -1, 290, -26, -13, 328, 329, 330, 38, 42, 43, 45, 126, 33, -25, -5, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 40, -24, -23, -22, -21, -20, -19, -18, -17, 91, 40, -59, -43, -75, -144, 351, -95, 364, -96, -101, -98, -99, 123, 355, 317, 361, 363, 340, 345, 354, 327, 123, 123, 123, -33, -32, -28, -16, -130, 41, -47, 125, -48, -52, -53, -59, 58, -54, -50, -55, -60, 58, -65, -45, -12, -57, -58, -10, 123, -89, -90, -82, -91, -77, -34, 298, -78, -111, -102, 315, 316, -133, -83, -84, -85, -86, 327, -5, -4, -31, 317, 319, 361, 320, 321, 322, 323, 324, 325, 326, 352, 353, 365, -30, -29, -76, -75, -2, 61, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 279, 63, 91, 40, 46, 269, 270, 271, -16, 40, -16, -17, -16, 40, 278, 58, 58, 58, 124, -30, -72, -71, -44, -12, -45, -4, 94, 38, 276, 277, 60, 62, 274, 275, 272, 273, 43, 45, 42, 47, 37, -33, -129, 41, -95, 123, 346, -96, -7, 258, 263, 261, 265, -94, -95, -152, -103, -112, 33, -113, 328, 329, 330, -100, -5, -5, 40, -154, -155, 40, -146, -123, 265, 42, -146, -146, 93, -87, -67, -70, -66, -5, -68, -69, -36, -35, -39, 125, 59, 44, 58, -32, 59, 44, 58, -32, 125, 44, 61, -57, 125, -89, -91, -77, -4, -134, 299, 311, 312, 58, -32, 58, -79, 40, 59, 40, 40, -30, 40, -77, 40, -102, -5, 59, 59, -97, -31, 339, 341, 342, -97, 59, 59, 44, 125, 44, -29, -26, -30, -30, 41, -15, -29, -10, -10, -72, -25, -93, 336, 332, 333, 335, -92, 333, 339, 341, 342, 343, 344, 40, -92, -24, 41, 41, -73, -63, -64, -71, -71, -23, -22, -21, -21, -20, -20, -20, -20, -19, -19, -18, -18, -17, -17, -17, 93, -87, 346, -90, 346, 125, 123, 360, 278, -113, 58, 58, 58, 362, 91, 362, -100, -79, -79, 265, 125, -122, 44, 43, -148, 125, 41, 44, 44, -60, -73, -64, -53, -125, -55, -126, -58, -32, 125, 125, -40, -5, 310, -5, -77, 58, -77, -29, -30, -30, 362, -30, 320, -31, 59, 59, -29, -29, -29, 59, -29, 125, -75, 58, 93, 41, 44, 41, 40, 40, 331, 40, -17, -74, 40, 91, 41, 125, -116, -117, 326, -118, 356, -96, -113, -93, -92, -92, 123, 265, 123, 44, 41, 44, -6, -5, -4, 296, 325, 315, 299, 329, 307, 324, 330, 316, 321, 306, 318, 313, 365, 294, 353, 305, 322, 347, 323, 317, 301, 328, 348, 302, 349, 297, 326, 327, 300, 303, 290, 295, 311, 352, 319, 298, 293, 312, 304, 309, 308, 320, -123, 125, -6, -5, 314, -69, 40, -32, -32, 59, -77, 41, 44, 41, 41, 123, 41, 40, 59, -28, -29, -29, -29, 41, -29, 91, 40, -73, -131, -33, -153, 326, -118, -119, -120, -93, 357, 358, 356, 40, 91, 318, 40, 40, 40, -104, -106, -107, -93, 93, -114, -115, 265, -100, -156, 59, -100, 40, -122, 292, 59, -29, -77, -77, -110, -109, -107, -77, -30, -31, 41, 44, 333, 339, 44, -33, -132, 41, -67, 93, 125, -119, -156, -8, 291, 270, 46, 40, -93, 91, -119, -119, -96, -100, -100, -100, -105, -106, 316, -96, -93, 58, 316, -115, 58, 41, 41, -147, -150, -151, -5, 350, -149, 41, 318, -108, -109, 316, -111, 336, 332, 333, 335, 41, 59, -29, -29, 93, -67, 41, -156, -120, -120, -9, 334, 359, -100, 40, -119, 41, 93, 41, 41, 44, 44, 125, 58, 58, 58, -96, 362, -156, 41, 91, 44, -5, -6, 59, -77, 125, 58, 59, -31, 41, 44, 41, 41, -121, -119, 93, 61, -29, -29, -96, -96, 123, -5, -151, 269, 40, -111, 41, -29, 41, 44, -119, 41, 41, 44, 125, -92, 93, -5, -147, -77, 41, -119, -156, -29, 58, 41, 41, -96, -92, 58, -96, -92, 58, -96, 125 }; int yydef[]={ -2, -2, -2, 281, 283, 284, 285, 286, 193, 193, 304, 288, 94, 105, 106, 0, 98, 100, 117, 118, 119, 120, 121, 173, 174, 194, 295, 296, 297, 298, 101, 189, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 0, 164, 138, 139, 282, 245, 91, 0, -2, 109, 0, 0, 95, 107, 108, -2, 111, 0, 305, 176, 182, 193, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 99, 102, 103, 104, 190, 191, 195, 137, 0, 291, 292, 0, -2, 0, 246, 243, 193, 193, 92, 193, 0, 175, 177, 193, 93, 193, 0, 300, 398, 0, 0, 0, 0, 89, 185, 0, 192, 196, 0, 0, 140, 193, 193, 144, 146, 148, 149, 0, 0, 287, -2, 244, 113, 115, 110, 114, 223, 0, 71, 39, 69, 27, 0, 0, 0, 0, 67, 14, 0, 0, 0, 33, 34, 35, 36, 37, 38, 65, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 63, 61, 59, 56, 51, 48, 45, 41, 89, 180, 0, 112, 116, 0, 0, 0, 0, 402, 404, 405, 406, 400, 408, 0, 0, 0, 0, 435, 437, 0, 383, 383, 383, 0, 90, 88, 39, 199, 183, 0, 136, 141, 0, 152, 154, 0, 0, 145, 158, 160, 0, 147, 150, 151, 0, 169, 171, 0, 0, -2, -2, 247, 255, 249, 0, 228, 229, 0, 0, 0, 0, 232, 233, 234, 235, 0, -2, -2, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 86, 86, 0, 0, 87, 84, 0, 226, 0, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 0, 0, 0, 0, 0, 0, 20, 21, 28, 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, -2, 208, 209, 122, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 178, 0, 0, 302, 403, 0, 311, 312, 313, 314, 0, 401, 0, 0, 426, 0, 428, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 388, 386, 387, 307, 0, 184, 0, 187, 188, 200, 206, 197, 201, -2, 96, 97, 135, 142, 193, 156, 155, 143, 193, 162, 161, 165, 0, 0, 0, 241, 0, 248, 256, 294, 193, 251, 0, 0, -2, 0, -2, 231, 0, 259, 0, 0, 0, 0, 0, 86, 0, 293, 273, 274, 0, 457, 0, 0, 0, 0, 277, 278, 0, 224, 0, 72, 68, 0, 0, 16, 0, 25, 18, 19, 0, 66, 0, 453, 454, 455, 456, 0, 445, 446, 447, 448, 449, 450, 0, 0, 64, 13, 0, 213, -2, 0, 210, 211, 62, 60, 57, 58, 52, 53, 54, 55, 49, 50, 46, 47, 42, 43, 44, 179, 0, 301, 0, 303, 407, 0, 0, 0, 427, 0, 0, 0, 0, 0, 0, 0, 436, 438, 0, 0, 384, 0, 389, 0, 0, 186, 0, 0, 203, 205, 0, 153, 0, 159, 0, 170, 172, 167, 242, 0, 252, 253, 254, 238, -2, 240, 0, 0, 0, 0, 0, 0, 0, 272, 275, 458, 459, 460, 276, 85, 225, 227, 0, 15, 17, 0, 32, 0, 0, 0, 0, 40, 215, -2, 89, 181, 399, 409, 463, 0, 464, 0, 411, 429, 0, 0, 0, 0, 0, 0, 0, 441, 0, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 388, 0, 310, 207, 198, 202, -2, 157, 163, 250, 239, 0, 0, -2, -2, 0, -2, 0, 86, 70, 26, 0, 0, 0, 0, 89, 221, 0, 199, 0, 0, 0, 465, 441, 467, 470, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, 416, 0, 0, 444, 0, 423, 0, 0, 439, 442, 0, 390, 385, 308, 236, 0, 260, 262, 267, 264, -2, 269, 0, 0, 22, 0, 451, 452, 0, 0, 199, 216, 0, 217, 410, 441, 462, 0, 0, 476, 0, 0, 0, 0, 0, 0, 412, 0, 0, 0, 0, 417, 0, 418, 0, 421, 0, 424, 0, 0, 441, 0, 391, 393, 395, 336, 0, 0, -2, 0, 265, 0, 266, -2, -2, -2, -2, 0, 86, 0, 0, 218, 0, 220, 461, 468, 469, 474, 479, 480, 0, 0, 0, 475, 0, 430, 431, 0, 0, 413, 0, 422, 0, 425, 0, 440, 306, 0, 0, 396, 0, 237, 261, 263, -2, 270, 0, 23, 0, 222, 471, 0, 477, 473, 0, 0, 0, 420, 0, 0, 0, 394, 0, 390, 268, -2, 0, 472, 0, 441, 432, 433, 0, 414, 0, 392, 397, 0, 271, 24, 478, 466, 0, 0, 309, 434, 0, 0, 0, 0, 0, 0, 0, 415 }; typedef struct { char *t_name; int t_val; } yytoktype; #ifndef YYDEBUG # define YYDEBUG 0 /* don't allow debugging */ #endif #if YYDEBUG yytoktype yytoks[] = { "Identifier", 257, "StrLit", 258, "LStrLit", 259, "FltConst", 260, "DblConst", 261, "LDblConst", 262, "CharConst", 263, "LCharConst", 264, "IntConst", 265, "UIntConst", 266, "LIntConst", 267, "ULIntConst", 268, "Arrow", 269, "Incr", 270, "Decr", 271, "LShft", 272, "RShft", 273, "Leq", 274, "Geq", 275, "Equal", 276, "Neq", 277, "And", 278, "Or", 279, "MultAsgn", 280, "DivAsgn", 281, "ModAsgn", 282, "PlusAsgn", 283, "MinusAsgn", 284, "LShftAsgn", 285, "RShftAsgn", 286, "AndAsgn", 287, "XorAsgn", 288, "OrAsgn", 289, "Sizeof", 290, "Intersect", 291, "OpSym", 292, "Typedef", 293, "Extern", 294, "Static", 295, "Auto", 296, "Register", 297, "Tended", 298, "Char", 299, "Short", 300, "Int", 301, "Long", 302, "Signed", 303, "Unsigned", 304, "Float", 305, "Doubl", 306, "Const", 307, "Volatile", 308, "Void", 309, "TypeDefName", 310, "Struct", 311, "Union", 312, "Enum", 313, "Ellipsis", 314, "Case", 315, "Default", 316, "If", 317, "Else", 318, "Switch", 319, "While", 320, "Do", 321, "For", 322, "Goto", 323, "Continue", 324, "Break", 325, "Return", 326, "%", 37, "&", 38, "(", 40, ")", 41, "*", 42, "+", 43, ",", 44, "-", 45, ".", 46, "/", 47, "{", 123, "|", 124, "}", 125, "~", 126, "[", 91, "]", 93, "^", 94, ":", 58, ";", 59, "<", 60, "=", 61, ">", 62, "?", 63, "!", 33, "@", 64, "\\", 92, "Runerr", 327, "Is", 328, "Cnv", 329, "Def", 330, "Exact", 331, "Empty_type", 332, "IconType", 333, "Component", 334, "Variable", 335, "Any_value", 336, "Named_var", 337, "Struct_var", 338, "C_Integer", 339, "Arith_case", 340, "C_Double", 341, "C_String", 342, "Tmp_string", 343, "Tmp_cset", 344, "Body", 345, "End", 346, "Function", 347, "Keyword", 348, "Operator", 349, "Underef", 350, "Declare", 351, "Suspend", 352, "Fail", 353, "Inline", 354, "Abstract", 355, "Store", 356, "Type", 357, "New", 358, "All_fields", 359, "Then", 360, "Type_case", 361, "Of", 362, "Len_case", 363, "Constant", 364, "Errorfail", 365, "IfStmt", 366, "-unknown-", -1 /* ends search */ }; char * yyreds[] = { "-no such reduction-", "primary_expr : identifier", "primary_expr : StrLit", "primary_expr : LStrLit", "primary_expr : FltConst", "primary_expr : DblConst", "primary_expr : LDblConst", "primary_expr : CharConst", "primary_expr : LCharConst", "primary_expr : IntConst", "primary_expr : UIntConst", "primary_expr : LIntConst", "primary_expr : ULIntConst", "primary_expr : '(' expr ')'", "postfix_expr : primary_expr", "postfix_expr : postfix_expr '[' expr ']'", "postfix_expr : postfix_expr '(' ')'", "postfix_expr : postfix_expr '(' arg_expr_lst ')'", "postfix_expr : postfix_expr '.' any_ident", "postfix_expr : postfix_expr Arrow any_ident", "postfix_expr : postfix_expr Incr", "postfix_expr : postfix_expr Decr", "postfix_expr : Is ':' i_type_name '(' assign_expr ')'", "postfix_expr : Cnv ':' dest_type '(' assign_expr ',' assign_expr ')'", "postfix_expr : Def ':' dest_type '(' assign_expr ',' assign_expr ',' assign_expr ')'", "arg_expr_lst : assign_expr", "arg_expr_lst : arg_expr_lst ',' assign_expr", "unary_expr : postfix_expr", "unary_expr : Incr unary_expr", "unary_expr : Decr unary_expr", "unary_expr : unary_op cast_expr", "unary_expr : Sizeof unary_expr", "unary_expr : Sizeof '(' type_name ')'", "unary_op : '&'", "unary_op : '*'", "unary_op : '+'", "unary_op : '-'", "unary_op : '~'", "unary_op : '!'", "cast_expr : unary_expr", "cast_expr : '(' type_name ')' cast_expr", "multiplicative_expr : cast_expr", "multiplicative_expr : multiplicative_expr '*' cast_expr", "multiplicative_expr : multiplicative_expr '/' cast_expr", "multiplicative_expr : multiplicative_expr '%' cast_expr", "additive_expr : multiplicative_expr", "additive_expr : additive_expr '+' multiplicative_expr", "additive_expr : additive_expr '-' multiplicative_expr", "shift_expr : additive_expr", "shift_expr : shift_expr LShft additive_expr", "shift_expr : shift_expr RShft additive_expr", "relational_expr : shift_expr", "relational_expr : relational_expr '<' shift_expr", "relational_expr : relational_expr '>' shift_expr", "relational_expr : relational_expr Leq shift_expr", "relational_expr : relational_expr Geq shift_expr", "equality_expr : relational_expr", "equality_expr : equality_expr Equal relational_expr", "equality_expr : equality_expr Neq relational_expr", "and_expr : equality_expr", "and_expr : and_expr '&' equality_expr", "exclusive_or_expr : and_expr", "exclusive_or_expr : exclusive_or_expr '^' and_expr", "inclusive_or_expr : exclusive_or_expr", "inclusive_or_expr : inclusive_or_expr '|' exclusive_or_expr", "logical_and_expr : inclusive_or_expr", "logical_and_expr : logical_and_expr And inclusive_or_expr", "logical_or_expr : logical_and_expr", "logical_or_expr : logical_or_expr Or logical_and_expr", "conditional_expr : logical_or_expr", "conditional_expr : logical_or_expr '?' expr ':' conditional_expr", "assign_expr : conditional_expr", "assign_expr : unary_expr assign_op assign_expr", "assign_op : '='", "assign_op : MultAsgn", "assign_op : DivAsgn", "assign_op : ModAsgn", "assign_op : PlusAsgn", "assign_op : MinusAsgn", "assign_op : LShftAsgn", "assign_op : RShftAsgn", "assign_op : AndAsgn", "assign_op : XorAsgn", "assign_op : OrAsgn", "expr : assign_expr", "expr : expr ',' assign_expr", "opt_expr : /* empty */", "opt_expr : expr", "constant_expr : conditional_expr", "opt_constant_expr : /* empty */", "opt_constant_expr : constant_expr", "dcltion : typ_dcltion_specs ';'", "dcltion : typ_dcltion_specs init_dcltor_lst ';'", "dcltion : storcl_tqual_lst no_tdn_init_dcltor_lst ';'", "typ_dcltion_specs : type_ind", "typ_dcltion_specs : storcl_tqual_lst type_ind", "dcltion_specs : typ_dcltion_specs", "dcltion_specs : storcl_tqual_lst", "type_ind : typedefname", "type_ind : typedefname storcl_tqual_lst", "type_ind : type_storcl_tqual_lst", "type_storcl_tqual_lst : stnd_type", "type_storcl_tqual_lst : type_storcl_tqual_lst stnd_type", "type_storcl_tqual_lst : type_storcl_tqual_lst storage_class_spec", "type_storcl_tqual_lst : type_storcl_tqual_lst type_qual", "storcl_tqual_lst : storage_class_spec", "storcl_tqual_lst : type_qual", "storcl_tqual_lst : storcl_tqual_lst storage_class_spec", "storcl_tqual_lst : storcl_tqual_lst type_qual", "init_dcltor_lst : init_dcltor", "init_dcltor_lst : init_dcltor_lst ',' init_dcltor", "no_tdn_init_dcltor_lst : no_tdn_init_dcltor", "no_tdn_init_dcltor_lst : no_tdn_init_dcltor_lst ',' no_tdn_init_dcltor", "init_dcltor : dcltor", "init_dcltor : dcltor '=' initializer", "no_tdn_init_dcltor : no_tdn_dcltor", "no_tdn_init_dcltor : no_tdn_dcltor '=' initializer", "storage_class_spec : Typedef", "storage_class_spec : Extern", "storage_class_spec : Static", "storage_class_spec : Auto", "storage_class_spec : Register", "type_spec : stnd_type", "type_spec : typedefname", "stnd_type : Void", "stnd_type : Char", "stnd_type : Short", "stnd_type : Int", "stnd_type : Long", "stnd_type : Float", "stnd_type : Doubl", "stnd_type : Signed", "stnd_type : Unsigned", "stnd_type : struct_or_union_spec", "stnd_type : enum_spec", "struct_or_union_spec : struct_or_union any_ident '{' struct_dcltion_lst '}'", "struct_or_union_spec : struct_or_union '{' struct_dcltion_lst '}'", "struct_or_union_spec : struct_or_union any_ident", "struct_or_union : Struct", "struct_or_union : Union", "struct_dcltion_lst : struct_dcltion", "struct_dcltion_lst : struct_dcltion_lst struct_dcltion", "struct_dcltion : struct_dcltion_specs struct_dcltor_lst ';'", "struct_dcltion : tqual_lst struct_no_tdn_dcltor_lst ';'", "struct_dcltion_specs : struct_type_ind", "struct_dcltion_specs : tqual_lst struct_type_ind", "struct_type_ind : typedefname", "struct_type_ind : typedefname tqual_lst", "struct_type_ind : struct_type_lst", "struct_type_lst : stnd_type", "struct_type_lst : struct_type_lst stnd_type", "struct_type_lst : struct_type_lst type_qual", "struct_dcltor_lst : struct_dcltor", "struct_dcltor_lst : struct_dcltor_lst ',' struct_dcltor", "struct_dcltor : dcltor", "struct_dcltor : ':' constant_expr", "struct_dcltor : dcltor ':'", "struct_dcltor : dcltor ':' constant_expr", "struct_no_tdn_dcltor_lst : struct_no_tdn_dcltor", "struct_no_tdn_dcltor_lst : struct_no_tdn_dcltor_lst ',' struct_no_tdn_dcltor", "struct_no_tdn_dcltor : no_tdn_dcltor", "struct_no_tdn_dcltor : ':' constant_expr", "struct_no_tdn_dcltor : no_tdn_dcltor ':'", "struct_no_tdn_dcltor : no_tdn_dcltor ':' constant_expr", "enum_spec : Enum", "enum_spec : Enum '{' enumerator_lst '}'", "enum_spec : Enum any_ident", "enum_spec : Enum any_ident '{' enumerator_lst '}'", "enum_spec : Enum any_ident", "enumerator_lst : enumerator", "enumerator_lst : enumerator_lst ',' enumerator", "enumerator : any_ident", "enumerator : any_ident '=' constant_expr", "type_qual : Const", "type_qual : Volatile", "dcltor : opt_pointer direct_dcltor", "no_tdn_dcltor : opt_pointer no_tdn_direct_dcltor", "direct_dcltor : any_ident", "direct_dcltor : '(' dcltor ')'", "direct_dcltor : direct_dcltor '[' opt_constant_expr ']'", "direct_dcltor : direct_dcltor '('", "direct_dcltor : direct_dcltor '(' parm_dcls_or_ids ')'", "no_tdn_direct_dcltor : identifier", "no_tdn_direct_dcltor : '(' no_tdn_dcltor ')'", "no_tdn_direct_dcltor : no_tdn_direct_dcltor '[' opt_constant_expr ']'", "no_tdn_direct_dcltor : no_tdn_direct_dcltor '('", "no_tdn_direct_dcltor : no_tdn_direct_dcltor '(' parm_dcls_or_ids ')'", "parm_dcls_or_ids : opt_param_type_lst", "parm_dcls_or_ids : ident_lst", "pointer : '*'", "pointer : '*' tqual_lst", "pointer : '*' pointer", "pointer : '*' tqual_lst pointer", "opt_pointer : /* empty */", "opt_pointer : pointer", "tqual_lst : type_qual", "tqual_lst : tqual_lst type_qual", "param_type_lst : param_lst", "param_type_lst : param_lst ',' Ellipsis", "opt_param_type_lst : /* empty */", "opt_param_type_lst : param_type_lst", "param_lst : param_dcltion", "param_lst : param_lst ',' param_dcltion", "param_dcltion : dcltion_specs no_tdn_dcltor", "param_dcltion : dcltion_specs", "param_dcltion : dcltion_specs abstract_dcltor", "ident_lst : identifier", "ident_lst : ident_lst ',' identifier", "type_tqual_lst : type_spec", "type_tqual_lst : type_qual", "type_tqual_lst : type_spec type_tqual_lst", "type_tqual_lst : type_qual type_tqual_lst", "type_name : type_tqual_lst", "type_name : type_tqual_lst abstract_dcltor", "abstract_dcltor : pointer", "abstract_dcltor : opt_pointer direct_abstract_dcltor", "direct_abstract_dcltor : '(' abstract_dcltor ')'", "direct_abstract_dcltor : '[' opt_constant_expr ']'", "direct_abstract_dcltor : direct_abstract_dcltor '[' opt_constant_expr ']'", "direct_abstract_dcltor : '('", "direct_abstract_dcltor : '(' opt_param_type_lst ')'", "direct_abstract_dcltor : direct_abstract_dcltor '('", "direct_abstract_dcltor : direct_abstract_dcltor '(' opt_param_type_lst ')'", "initializer : assign_expr", "initializer : '{' initializer_lst '}'", "initializer : '{' initializer_lst ',' '}'", "initializer_lst : initializer", "initializer_lst : initializer_lst ',' initializer", "stmt : labeled_stmt", "stmt : non_lbl_stmt", "non_lbl_stmt : /* empty */", "non_lbl_stmt : compound_stmt", "non_lbl_stmt : expr_stmt", "non_lbl_stmt : selection_stmt", "non_lbl_stmt : iteration_stmt", "non_lbl_stmt : jump_stmt", "non_lbl_stmt : Runerr '(' assign_expr ')' ';'", "non_lbl_stmt : Runerr '(' assign_expr ',' assign_expr ')' ';'", "labeled_stmt : label ':' stmt", "labeled_stmt : Case constant_expr ':' stmt", "labeled_stmt : Default ':' stmt", "compound_stmt : '{' opt_stmt_lst '}'", "compound_stmt : '{' local_dcls opt_stmt_lst '}'", "dcltion_lst : dcltion", "dcltion_lst : dcltion_lst dcltion", "opt_dcltion_lst : /* empty */", "opt_dcltion_lst : dcltion_lst", "local_dcls : local_dcl", "local_dcls : local_dcls local_dcl", "local_dcl : dcltion", "local_dcl : Tended tended_type init_dcltor_lst ';'", "tended_type : Char", "tended_type : Struct identifier", "tended_type : Struct TypeDefName", "tended_type : Union identifier", "stmt_lst : stmt", "stmt_lst : stmt_lst stmt", "opt_stmt_lst : /* empty */", "opt_stmt_lst : stmt_lst", "expr_stmt : opt_expr ';'", "selection_stmt : If '(' expr ')' stmt", "selection_stmt : If '(' expr ')' stmt Else stmt", "selection_stmt : Switch '(' expr ')' stmt", "selection_stmt : Type_case expr Of '{' c_type_select_lst c_opt_default '}'", "c_type_select_lst : c_type_select", "c_type_select_lst : c_type_select_lst c_type_select", "c_type_select : selector_lst non_lbl_stmt", "c_opt_default : /* empty */", "c_opt_default : Default ':' non_lbl_stmt", "iteration_stmt : While '(' expr ')' stmt", "iteration_stmt : Do stmt While '(' expr ')' ';'", "iteration_stmt : For '(' opt_expr ';' opt_expr ';' opt_expr ')' stmt", "jump_stmt : Goto label ';'", "jump_stmt : Continue ';'", "jump_stmt : Break ';'", "jump_stmt : Return ret_val ';'", "jump_stmt : Suspend ret_val ';'", "jump_stmt : Fail ';'", "jump_stmt : Errorfail ';'", "translation_unit : /* empty */", "translation_unit : extrn_decltn_lst", "extrn_decltn_lst : external_dcltion", "extrn_decltn_lst : extrn_decltn_lst external_dcltion", "external_dcltion : function_definition", "external_dcltion : dcltion", "external_dcltion : definition", "function_definition : func_head", "function_definition : func_head opt_dcltion_lst compound_stmt", "func_head : no_tdn_dcltor", "func_head : storcl_tqual_lst no_tdn_dcltor", "func_head : typ_dcltion_specs dcltor", "any_ident : identifier", "any_ident : typedefname", "label : identifier", "label : typedefname", "typedefname : TypeDefName", "typedefname : C_Integer", "typedefname : C_Double", "typedefname : C_String", "definition : /* empty */", "definition : description operation", "operation : fnc_oper op_declare actions End", "operation : keyword actions End", "operation : keyword Constant key_const End", "description : /* empty */", "description : StrLit", "fnc_oper : Function '{' result_seq '}' op_name '(' opt_s_parm_lst ')'", "fnc_oper : Operator '{' result_seq", "fnc_oper : Operator '{' result_seq '}' OpSym", "fnc_oper : Operator '{' result_seq '}' OpSym op_name '(' opt_s_parm_lst ')'", "keyword : Keyword '{' result_seq '}' op_name", "key_const : StrLit", "key_const : CharConst", "key_const : DblConst", "key_const : IntConst", "identifier : Abstract", "identifier : All_fields", "identifier : Any_value", "identifier : Body", "identifier : Component", "identifier : Declare", "identifier : Empty_type", "identifier : End", "identifier : Exact", "identifier : IconType", "identifier : Identifier", "identifier : Inline", "identifier : Named_var", "identifier : New", "identifier : Of", "identifier : Store", "identifier : Struct_var", "identifier : Then", "identifier : Tmp_cset", "identifier : Tmp_string", "identifier : TokType", "identifier : Underef", "identifier : Variable", "op_name : identifier", "op_name : typedefname", "op_name : Auto", "op_name : Break", "op_name : Case", "op_name : Char", "op_name : Cnv", "op_name : Const", "op_name : Continue", "op_name : Def", "op_name : Default", "op_name : Do", "op_name : Doubl", "op_name : Else", "op_name : Enum", "op_name : Errorfail", "op_name : Extern", "op_name : Fail", "op_name : Float", "op_name : For", "op_name : Function", "op_name : Goto", "op_name : If", "op_name : Int", "op_name : Is", "op_name : Keyword", "op_name : Long", "op_name : Operator", "op_name : Register", "op_name : Return", "op_name : Runerr", "op_name : Short", "op_name : Signed", "op_name : Sizeof", "op_name : Static", "op_name : Struct", "op_name : Suspend", "op_name : Switch", "op_name : Tended", "op_name : Typedef", "op_name : Union", "op_name : Unsigned", "op_name : Void", "op_name : Volatile", "op_name : While", "result_seq : /* empty */", "result_seq : length opt_plus", "result_seq : length ',' length opt_plus", "length : IntConst", "length : '*'", "opt_plus : /* empty */", "opt_plus : '+'", "opt_s_parm_lst : /* empty */", "opt_s_parm_lst : s_parm_lst", "opt_s_parm_lst : s_parm_lst '[' identifier ']'", "s_parm_lst : s_parm", "s_parm_lst : s_parm_lst ',' s_parm", "s_parm : identifier", "s_parm : Underef identifier", "s_parm : Underef identifier Arrow identifier", "op_declare : /* empty */", "op_declare : Declare '{' local_dcls '}'", "opt_actions : /* empty */", "opt_actions : actions", "actions : action", "actions : actions action", "action : checking_conversions", "action : detail_code", "action : runerr", "action : '{' opt_actions '}'", "action : Abstract", "action : Abstract '{' type_computations", "action : Abstract '{' type_computations '}'", "checking_conversions : If type_check Then action", "checking_conversions : If type_check Then action Else action", "checking_conversions : Type_case variable Of '{' type_select_lst opt_default '}'", "checking_conversions : Len_case identifier Of '{' len_select_lst Default ':' action '}'", "checking_conversions : Arith_case '(' variable ',' variable ')' Of '{' dest_type ':' action dest_type ':' action dest_type ':' action '}'", "type_select_lst : type_select", "type_select_lst : type_select_lst type_select", "type_select : selector_lst action", "opt_default : /* empty */", "opt_default : Default ':' action", "selector_lst : i_type_name ':'", "selector_lst : selector_lst i_type_name ':'", "len_select_lst : len_select", "len_select_lst : len_select_lst len_select", "len_select : IntConst ':' action", "type_check : simple_check_conj", "type_check : '!' simple_check", "simple_check_conj : simple_check", "simple_check_conj : simple_check_conj And simple_check", "simple_check : Is ':' i_type_name '(' variable ')'", "simple_check : Cnv ':' dest_type '(' variable ')'", "simple_check : Cnv ':' dest_type '(' variable ',' assign_expr ')'", "simple_check : Def ':' dest_type '(' variable ',' assign_expr ')'", "simple_check : Def ':' dest_type '(' variable ',' assign_expr ',' assign_expr ')'", "detail_code : Body", "detail_code : Body compound_stmt", "detail_code : Inline", "detail_code : Inline compound_stmt", "runerr : Runerr '(' IntConst ')' opt_semi", "runerr : Runerr '(' IntConst ',' variable ')' opt_semi", "opt_semi : /* empty */", "opt_semi : ';'", "variable : identifier", "variable : identifier '[' IntConst ']'", "dest_type : IconType", "dest_type : C_Integer", "dest_type : C_Double", "dest_type : C_String", "dest_type : Tmp_string", "dest_type : Tmp_cset", "dest_type : '(' Exact ')' IconType", "dest_type : '(' Exact ')' C_Integer", "i_type_name : Any_value", "i_type_name : Empty_type", "i_type_name : IconType", "i_type_name : Variable", "ret_val : opt_expr", "ret_val : C_Integer assign_expr", "ret_val : C_Double assign_expr", "ret_val : C_String assign_expr", "type_computations : side_effect_lst Return type opt_semi", "type_computations : Return type opt_semi", "type_computations : side_effect_lst", "side_effect_lst : side_effect", "side_effect_lst : side_effect_lst side_effect", "side_effect : Store '[' type ']' '=' type opt_semi", "type : basic_type", "type : type union basic_type", "type : type Intersect basic_type", "basic_type : i_type_name", "basic_type : TokType '(' variable ')'", "basic_type : New i_type_name '(' type_lst ')'", "basic_type : Store '[' type ']'", "basic_type : basic_type '.' attrb_name", "basic_type : '(' type ')'", "union : Incr", "type_lst : type", "type_lst : type_lst ',' type", "attrb_name : Component", "attrb_name : All_fields", }; #endif /* YYDEBUG */ #line 1 "/usr/lib/yaccpar" /* @(#)yaccpar 1.10 89/04/04 SMI; from S5R3 1.10 */ /* ** Skeleton parser driver for yacc output */ /* ** yacc user known macros and defines */ #define YYERROR goto yyerrlab #define YYACCEPT { free(yys); free(yyv); return(0); } #define YYABORT { free(yys); free(yyv); return(1); } #define YYBACKUP( newtoken, newvalue )\ {\ if ( yychar >= 0 || ( yyr2[ yytmp ] >> 1 ) != 1 )\ {\ yyerror( "syntax error - cannot backup" );\ goto yyerrlab;\ }\ yychar = newtoken;\ yystate = *yyps;\ yylval = newvalue;\ goto yynewstate;\ } #define YYRECOVERING() (!!yyerrflag) #ifndef YYDEBUG # define YYDEBUG 1 /* make debugging available */ #endif /* ** user known globals */ int yydebug; /* set to 1 to get debugging */ /* ** driver internal defines */ #define YYFLAG (-1000) /* ** static variables used by the parser */ static YYSTYPE *yyv; /* value stack */ static int *yys; /* state stack */ static YYSTYPE *yypv; /* top of value stack */ static int *yyps; /* top of state stack */ static int yystate; /* current state */ static int yytmp; /* extra var (lasts between blocks) */ int yynerrs; /* number of errors */ int yyerrflag; /* error recovery flag */ int yychar; /* current input token number */ /* ** yyparse - return 0 if worked, 1 if syntax error not recovered from */ int yyparse() { register YYSTYPE *yypvt; /* top of value stack for $vars */ unsigned yymaxdepth = YYMAXDEPTH; /* ** Initialize externals - yyparse may be called more than once */ yyv = (YYSTYPE*)malloc(yymaxdepth*sizeof(YYSTYPE)); yys = (int*)malloc(yymaxdepth*sizeof(int)); if (!yyv || !yys) { yyerror( "out of memory" ); return(1); } yypv = &yyv[-1]; yyps = &yys[-1]; yystate = 0; yytmp = 0; yynerrs = 0; yyerrflag = 0; yychar = -1; goto yystack; { register YYSTYPE *yy_pv; /* top of value stack */ register int *yy_ps; /* top of state stack */ register int yy_state; /* current state */ register int yy_n; /* internal state number info */ /* ** get globals into registers. ** branch to here only if YYBACKUP was called. */ yynewstate: yy_pv = yypv; yy_ps = yyps; yy_state = yystate; goto yy_newstate; /* ** get globals into registers. ** either we just started, or we just finished a reduction */ yystack: yy_pv = yypv; yy_ps = yyps; yy_state = yystate; /* ** top of for (;;) loop while no reductions done */ yy_stack: /* ** put a state and value onto the stacks */ #if YYDEBUG /* ** if debugging, look up token value in list of value vs. ** name pairs. 0 and negative (-1) are special values. ** Note: linear search is used since time is not a real ** consideration while debugging. */ if ( yydebug ) { register int yy_i; (void)printf( "State %d, token ", yy_state ); if ( yychar == 0 ) (void)printf( "end-of-file\n" ); else if ( yychar < 0 ) (void)printf( "-none-\n" ); else { for ( yy_i = 0; yytoks[yy_i].t_val >= 0; yy_i++ ) { if ( yytoks[yy_i].t_val == yychar ) break; } (void)printf( "%s\n", yytoks[yy_i].t_name ); } } #endif /* YYDEBUG */ if ( ++yy_ps >= &yys[ yymaxdepth ] ) /* room on stack? */ { /* ** reallocate and recover. Note that pointers ** have to be reset, or bad things will happen */ int yyps_index = (yy_ps - yys); int yypv_index = (yy_pv - yyv); int yypvt_index = (yypvt - yyv); yymaxdepth += YYMAXDEPTH; yyv = (YYSTYPE*)realloc((char*)yyv, yymaxdepth * sizeof(YYSTYPE)); yys = (int*)realloc((char*)yys, yymaxdepth * sizeof(int)); if (!yyv || !yys) { yyerror( "yacc stack overflow" ); return(1); } yy_ps = yys + yyps_index; yy_pv = yyv + yypv_index; yypvt = yyv + yypvt_index; } *yy_ps = yy_state; *++yy_pv = yyval; /* ** we have a new state - find out what to do */ yy_newstate: if ( ( yy_n = yypact[ yy_state ] ) <= YYFLAG ) goto yydefault; /* simple state */ #if YYDEBUG /* ** if debugging, need to mark whether new token grabbed */ yytmp = yychar < 0; #endif if ( ( yychar < 0 ) && ( ( yychar = yylex() ) < 0 ) ) yychar = 0; /* reached EOF */ #if YYDEBUG if ( yydebug && yytmp ) { register int yy_i; (void)printf( "Received token " ); if ( yychar == 0 ) (void)printf( "end-of-file\n" ); else if ( yychar < 0 ) (void)printf( "-none-\n" ); else { for ( yy_i = 0; yytoks[yy_i].t_val >= 0; yy_i++ ) { if ( yytoks[yy_i].t_val == yychar ) break; } (void)printf( "%s\n", yytoks[yy_i].t_name ); } } #endif /* YYDEBUG */ if ( ( ( yy_n += yychar ) < 0 ) || ( yy_n >= YYLAST ) ) goto yydefault; if ( yychk[ yy_n = yyact[ yy_n ] ] == yychar ) /*valid shift*/ { yychar = -1; yyval = yylval; yy_state = yy_n; if ( yyerrflag > 0 ) yyerrflag--; goto yy_stack; } yydefault: if ( ( yy_n = yydef[ yy_state ] ) == -2 ) { #if YYDEBUG yytmp = yychar < 0; #endif if ( ( yychar < 0 ) && ( ( yychar = yylex() ) < 0 ) ) yychar = 0; /* reached EOF */ #if YYDEBUG if ( yydebug && yytmp ) { register int yy_i; (void)printf( "Received token " ); if ( yychar == 0 ) (void)printf( "end-of-file\n" ); else if ( yychar < 0 ) (void)printf( "-none-\n" ); else { for ( yy_i = 0; yytoks[yy_i].t_val >= 0; yy_i++ ) { if ( yytoks[yy_i].t_val == yychar ) { break; } } (void)printf( "%s\n", yytoks[yy_i].t_name ); } } #endif /* YYDEBUG */ /* ** look through exception table */ { register int *yyxi = yyexca; while ( ( *yyxi != -1 ) || ( yyxi[1] != yy_state ) ) { yyxi += 2; } while ( ( *(yyxi += 2) >= 0 ) && ( *yyxi != yychar ) ) ; if ( ( yy_n = yyxi[1] ) < 0 ) YYACCEPT; } } /* ** check for syntax error */ if ( yy_n == 0 ) /* have an error */ { /* no worry about speed here! */ switch ( yyerrflag ) { case 0: /* new error */ yyerror( "syntax error" ); goto skip_init; yyerrlab: /* ** get globals into registers. ** we have a user generated syntax type error */ yy_pv = yypv; yy_ps = yyps; yy_state = yystate; yynerrs++; skip_init: case 1: case 2: /* incompletely recovered error */ /* try again... */ yyerrflag = 3; /* ** find state where "error" is a legal ** shift action */ while ( yy_ps >= yys ) { yy_n = yypact[ *yy_ps ] + YYERRCODE; if ( yy_n >= 0 && yy_n < YYLAST && yychk[yyact[yy_n]] == YYERRCODE) { /* ** simulate shift of "error" */ yy_state = yyact[ yy_n ]; goto yy_stack; } /* ** current state has no shift on ** "error", pop stack */ #if YYDEBUG # define _POP_ "Error recovery pops state %d, uncovers state %d\n" if ( yydebug ) (void)printf( _POP_, *yy_ps, yy_ps[-1] ); # undef _POP_ #endif yy_ps--; yy_pv--; } /* ** there is no state on stack with "error" as ** a valid shift. give up. */ YYABORT; case 3: /* no shift yet; eat a token */ #if YYDEBUG /* ** if debugging, look up token in list of ** pairs. 0 and negative shouldn't occur, ** but since timing doesn't matter when ** debugging, it doesn't hurt to leave the ** tests here. */ if ( yydebug ) { register int yy_i; (void)printf( "Error recovery discards " ); if ( yychar == 0 ) (void)printf( "token end-of-file\n" ); else if ( yychar < 0 ) (void)printf( "token -none-\n" ); else { for ( yy_i = 0; yytoks[yy_i].t_val >= 0; yy_i++ ) { if ( yytoks[yy_i].t_val == yychar ) { break; } } (void)printf( "token %s\n", yytoks[yy_i].t_name ); } } #endif /* YYDEBUG */ if ( yychar == 0 ) /* reached EOF. quit */ YYABORT; yychar = -1; goto yy_newstate; } }/* end if ( yy_n == 0 ) */ /* ** reduction by production yy_n ** put stack tops, etc. so things right after switch */ #if YYDEBUG /* ** if debugging, print the string that is the user's ** specification of the reduction which is just about ** to be done. */ if ( yydebug ) (void)printf( "Reduce by (%d) \"%s\"\n", yy_n, yyreds[ yy_n ] ); #endif yytmp = yy_n; /* value to switch over */ yypvt = yy_pv; /* $vars top of value stack */ /* ** Look in goto table for next state ** Sorry about using yy_state here as temporary ** register variable, but why not, if it works... ** If yyr2[ yy_n ] doesn't have the low order bit ** set, then there is no action to be done for ** this reduction. So, no saving & unsaving of ** registers done. The only difference between the ** code just after the if and the body of the if is ** the goto yy_stack in the body. This way the test ** can be made before the choice of what to do is needed. */ { /* length of production doubled with extra bit */ register int yy_len = yyr2[ yy_n ]; if ( !( yy_len & 01 ) ) { yy_len >>= 1; yyval = ( yy_pv -= yy_len )[1]; /* $$ = $1 */ yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] + *( yy_ps -= yy_len ) + 1; if ( yy_state >= YYLAST || yychk[ yy_state = yyact[ yy_state ] ] != -yy_n ) { yy_state = yyact[ yypgo[ yy_n ] ]; } goto yy_stack; } yy_len >>= 1; yyval = ( yy_pv -= yy_len )[1]; /* $$ = $1 */ yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] + *( yy_ps -= yy_len ) + 1; if ( yy_state >= YYLAST || yychk[ yy_state = yyact[ yy_state ] ] != -yy_n ) { yy_state = yyact[ yypgo[ yy_n ] ]; } } /* save until reenter driver code */ yystate = yy_state; yyps = yy_ps; yypv = yy_pv; } /* ** code supplied by user is placed in this switch */ switch( yytmp ) { case 1: # line 81 "rttgram.y" {yyval.n = sym_node(yypvt[-0].t);} break; case 2: # line 82 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 3: # line 83 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 4: # line 84 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 5: # line 85 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 6: # line 86 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 7: # line 87 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 8: # line 88 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 9: # line 89 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 10: # line 90 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 11: # line 91 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 12: # line 92 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 13: # line 93 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-1].n); free_t(yypvt[-0].t);} break; case 15: # line 98 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-2].t, yypvt[-3].n, yypvt[-1].n); free_t(yypvt[-0].t);} break; case 16: # line 100 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-0].t, yypvt[-2].n, NULL); free_t(yypvt[-1].t);} break; case 17: # line 102 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-0].t, yypvt[-3].n, yypvt[-1].n); free_t(yypvt[-2].t);} break; case 18: # line 104 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 19: # line 105 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 20: # line 106 "rttgram.y" {yyval.n = node1(PstfxNd, yypvt[-0].t, yypvt[-1].n);} break; case 21: # line 107 "rttgram.y" {yyval.n = node1(PstfxNd, yypvt[-0].t, yypvt[-1].n);} break; case 22: # line 109 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-5].t, yypvt[-3].n, yypvt[-1].n); free_t(yypvt[-4].t); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break; case 23: # line 111 "rttgram.y" {yyval.n = node3(TrnryNd, yypvt[-7].t, yypvt[-5].n, yypvt[-3].n, yypvt[-1].n), free_t(yypvt[-6].t); free_t(yypvt[-4].t); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break; case 24: # line 114 "rttgram.y" {yyval.n = node4(QuadNd, yypvt[-9].t, yypvt[-7].n, yypvt[-5].n, yypvt[-3].n, yypvt[-1].n), free_t(yypvt[-8].t); free_t(yypvt[-6].t); free_t(yypvt[-4].t); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break; case 26: # line 120 "rttgram.y" {yyval.n = node2(CommaNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 28: # line 125 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-1].t, yypvt[-0].n);} break; case 29: # line 126 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-1].t, yypvt[-0].n);} break; case 30: # line 127 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-1].t, yypvt[-0].n);} break; case 31: # line 128 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-1].t, yypvt[-0].n);} break; case 32: # line 129 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-3].t, yypvt[-1].n); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break; case 40: # line 144 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-3].t, yypvt[-2].n, yypvt[-0].n); free_t(yypvt[-1].t);} break; case 42: # line 149 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 43: # line 150 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 44: # line 151 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 46: # line 156 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 47: # line 157 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 49: # line 162 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 50: # line 163 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 52: # line 168 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 53: # line 169 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 54: # line 170 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 55: # line 171 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 57: # line 176 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 58: # line 177 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 60: # line 182 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 62: # line 187 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 64: # line 192 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 66: # line 197 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 68: # line 202 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 70: # line 208 "rttgram.y" {yyval.n = node3(TrnryNd, yypvt[-3].t, yypvt[-4].n, yypvt[-2].n, yypvt[-0].n); free_t(yypvt[-1].t);} break; case 72: # line 214 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 85: # line 233 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 86: # line 237 "rttgram.y" {yyval.n = NULL;} break; case 89: # line 246 "rttgram.y" {yyval.n = NULL;} break; case 91: # line 251 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-0].t, yypvt[-1].n, NULL); dcl_stk->kind_dcl = OtherDcl;} break; case 92: # line 253 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-0].t, yypvt[-2].n, yypvt[-1].n); dcl_stk->kind_dcl = OtherDcl;} break; case 93: # line 256 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-0].t, yypvt[-2].n, yypvt[-1].n); dcl_stk->kind_dcl = OtherDcl;} break; case 95: # line 262 "rttgram.y" {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 98: # line 271 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 99: # line 273 "rttgram.y" {yyval.n = node2(LstNd, NULL, node0(PrimryNd, yypvt[-1].t), yypvt[-0].n);} break; case 102: # line 279 "rttgram.y" {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 103: # line 280 "rttgram.y" {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 104: # line 281 "rttgram.y" {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 107: # line 287 "rttgram.y" {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 108: # line 288 "rttgram.y" {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 110: # line 293 "rttgram.y" {yyval.n = node2(CommaNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 112: # line 299 "rttgram.y" {yyval.n = node2(CommaNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 113: # line 303 "rttgram.y" {yyval.n = yypvt[-0].n; id_def(yypvt[-0].n, NULL);} break; case 114: # line 304 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n); id_def(yypvt[-2].n, yypvt[-0].n);} break; case 115: # line 308 "rttgram.y" {yyval.n = yypvt[-0].n; id_def(yypvt[-0].n, NULL);} break; case 116: # line 310 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n); id_def(yypvt[-2].n, yypvt[-0].n);} break; case 117: # line 314 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t); dcl_stk->kind_dcl = IsTypedef;} break; case 118: # line 315 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 119: # line 316 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 120: # line 317 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 121: # line 318 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 123: # line 323 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 124: # line 327 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 125: # line 328 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 126: # line 329 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 127: # line 330 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 128: # line 331 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 129: # line 332 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 130: # line 333 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 131: # line 334 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 132: # line 335 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 135: # line 342 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-4].t, yypvt[-3].n, yypvt[-1].n); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break; case 136: # line 345 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-3].t, NULL, yypvt[-1].n); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break; case 137: # line 347 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-0].n, NULL);} break; case 141: # line 357 "rttgram.y" {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 142: # line 362 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-0].t, yypvt[-2].n, yypvt[-1].n);} break; case 143: # line 363 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-0].t, yypvt[-2].n, yypvt[-1].n);} break; case 145: # line 368 "rttgram.y" {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 146: # line 372 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 147: # line 373 "rttgram.y" {yyval.n = node2(LstNd, NULL, node0(PrimryNd, yypvt[-1].t), yypvt[-0].n);} break; case 150: # line 379 "rttgram.y" {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 151: # line 380 "rttgram.y" {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 153: # line 384 "rttgram.y" {yyval.n = node2(CommaNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 154: # line 388 "rttgram.y" {yyval.n = node2(StrDclNd, NULL, yypvt[-0].n, NULL); if (dcl_stk->parms_done) pop_cntxt();} break; case 155: # line 390 "rttgram.y" {yyval.n = node2(StrDclNd, yypvt[-1].t, NULL, yypvt[-0].n);} break; case 156: # line 391 "rttgram.y" {if (dcl_stk->parms_done) pop_cntxt();} break; case 157: # line 392 "rttgram.y" {yyval.n = node2(StrDclNd, yypvt[-2].t, yypvt[-3].n, yypvt[-0].n);} break; case 159: # line 398 "rttgram.y" {yyval.n = node2(CommaNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 160: # line 402 "rttgram.y" {yyval.n = node2(StrDclNd, NULL, yypvt[-0].n, NULL); if (dcl_stk->parms_done) pop_cntxt();} break; case 161: # line 404 "rttgram.y" {yyval.n = node2(StrDclNd, yypvt[-1].t, NULL, yypvt[-0].n);} break; case 162: # line 405 "rttgram.y" {if (dcl_stk->parms_done) pop_cntxt();} break; case 163: # line 406 "rttgram.y" {yyval.n = node2(StrDclNd, yypvt[-2].t, yypvt[-3].n, yypvt[-0].n);} break; case 164: # line 410 "rttgram.y" {push_cntxt(0);} break; case 165: # line 411 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-4].t, NULL, yypvt[-1].n); pop_cntxt(); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break; case 166: # line 412 "rttgram.y" {push_cntxt(0);} break; case 167: # line 413 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-5].t, yypvt[-4].n, yypvt[-1].n); pop_cntxt(); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break; case 168: # line 414 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-0].n, NULL);} break; case 170: # line 419 "rttgram.y" {yyval.n = node2(CommaNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 171: # line 423 "rttgram.y" {yyval.n = yypvt[-0].n; id_def(yypvt[-0].n, NULL);} break; case 172: # line 425 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n); id_def(yypvt[-2].n, yypvt[-0].n);} break; case 173: # line 429 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 174: # line 430 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 175: # line 435 "rttgram.y" {yyval.n = node2(ConCatNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 176: # line 439 "rttgram.y" {yyval.n = node2(ConCatNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 178: # line 444 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-1].n); free_t(yypvt[-0].t);} break; case 179: # line 446 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-2].t, yypvt[-3].n, yypvt[-1].n); free_t(yypvt[-0].t);} break; case 180: # line 448 "rttgram.y" {push_cntxt(1);} break; case 181: # line 449 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-0].t, yypvt[-4].n, yypvt[-1].n); if (dcl_stk->nest_lvl == 2) dcl_stk->parms_done = 1; else pop_cntxt(); free_t(yypvt[-3].t);} break; case 182: # line 458 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 183: # line 459 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-1].n); free_t(yypvt[-0].t);} break; case 184: # line 462 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-2].t, yypvt[-3].n, yypvt[-1].n); free_t(yypvt[-0].t);} break; case 185: # line 464 "rttgram.y" {push_cntxt(1);} break; case 186: # line 465 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-0].t, yypvt[-4].n, yypvt[-1].n); if (dcl_stk->nest_lvl == 2) dcl_stk->parms_done = 1; else pop_cntxt(); free_t(yypvt[-3].t);} break; case 189: # line 479 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 190: # line 480 "rttgram.y" {yyval.n = node1(PreSpcNd, yypvt[-1].t, yypvt[-0].n);} break; case 191: # line 481 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-1].t, yypvt[-0].n);} break; case 192: # line 482 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-2].t, node2(LstNd, NULL, yypvt[-1].n,yypvt[-0].n));} break; case 193: # line 486 "rttgram.y" {yyval.n = NULL;} break; case 196: # line 492 "rttgram.y" {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 198: # line 497 "rttgram.y" {yyval.n = node2(CommaNd, yypvt[-1].t, yypvt[-2].n, node0(PrimryNd, yypvt[-0].t));} break; case 199: # line 501 "rttgram.y" {yyval.n = NULL;} break; case 202: # line 507 "rttgram.y" {yyval.n = node2(CommaNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 203: # line 511 "rttgram.y" {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n); id_def(yypvt[-0].n, NULL);} break; case 205: # line 514 "rttgram.y" {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 206: # line 518 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 207: # line 519 "rttgram.y" {yyval.n = node2(CommaNd, yypvt[-1].t, yypvt[-2].n, node0(PrimryNd,yypvt[-0].t));} break; case 210: # line 525 "rttgram.y" {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 211: # line 526 "rttgram.y" {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 213: # line 531 "rttgram.y" {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 215: # line 536 "rttgram.y" {yyval.n = node2(ConCatNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 216: # line 540 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-1].n); free_t(yypvt[-0].t);} break; case 217: # line 543 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-2].t, NULL, yypvt[-1].n); free_t(yypvt[-0].t);} break; case 218: # line 546 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-2].t, yypvt[-3].n, yypvt[-1].n); free_t(yypvt[-0].t);} break; case 219: # line 548 "rttgram.y" {push_cntxt(1);} break; case 220: # line 549 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-0].t, NULL, yypvt[-1].n); pop_cntxt(); free_t(yypvt[-3].t);} break; case 221: # line 552 "rttgram.y" {push_cntxt(1);} break; case 222: # line 553 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-0].t, yypvt[-4].n, yypvt[-1].n); pop_cntxt(); free_t(yypvt[-3].t);} break; case 224: # line 561 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-1].n); free_t(yypvt[-0].t);} break; case 225: # line 563 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-3].t, node2(CommaNd, yypvt[-1].t, yypvt[-2].n, NULL)); free_t(yypvt[-0].t);} break; case 227: # line 569 "rttgram.y" {yyval.n = node2(CommaNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 230: # line 578 "rttgram.y" {push_cntxt(1);} break; case 231: # line 578 "rttgram.y" {yyval.n = yypvt[-0].n; pop_cntxt();} break; case 236: # line 584 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-4].t, yypvt[-2].n, NULL); free_t(yypvt[-3].t); free_t(yypvt[-1].t);} break; case 237: # line 586 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-6].t, yypvt[-4].n, yypvt[-2].n); free_t(yypvt[-5].t); free_t(yypvt[-3].t); free_t(yypvt[-1].t);} break; case 238: # line 590 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 239: # line 591 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-3].t, yypvt[-2].n, yypvt[-0].n); free_t(yypvt[-1].t);} break; case 240: # line 592 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-0].n); free_t(yypvt[-1].t);} break; case 241: # line 596 "rttgram.y" {yyval.n = comp_nd(yypvt[-2].t, NULL, yypvt[-1].n); free_t(yypvt[-0].t);} break; case 242: # line 597 "rttgram.y" {yyval.n = comp_nd(yypvt[-3].t, yypvt[-2].n, yypvt[-1].n); free_t(yypvt[-0].t);} break; case 244: # line 602 "rttgram.y" {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 245: # line 606 "rttgram.y" {yyval.n = NULL;} break; case 248: # line 612 "rttgram.y" {yyval.n = (yypvt[-0].n == NULL ? yypvt[-1].n : node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n));} break; case 250: # line 618 "rttgram.y" {yyval.n = NULL; free_t(yypvt[-3].t); free_t(yypvt[-0].t); dcl_stk->kind_dcl = OtherDcl;} break; case 251: # line 622 "rttgram.y" {tnd_char(); free_t(yypvt[-0].t);} break; case 252: # line 623 "rttgram.y" {tnd_strct(yypvt[-0].t); free_t(yypvt[-1].t);} break; case 253: # line 624 "rttgram.y" {tnd_strct(yypvt[-0].t); free_t(yypvt[-1].t);} break; case 254: # line 625 "rttgram.y" {tnd_union(yypvt[-0].t); free_t(yypvt[-1].t);} break; case 256: # line 630 "rttgram.y" {yyval.n = node2(ConCatNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 257: # line 634 "rttgram.y" {yyval.n = NULL;} break; case 259: # line 638 "rttgram.y" {yyval.n = node1(PstfxNd, yypvt[-0].t, yypvt[-1].n);} break; case 260: # line 642 "rttgram.y" {yyval.n = node3(TrnryNd, yypvt[-4].t, yypvt[-2].n, yypvt[-0].n,NULL); free_t(yypvt[-3].t); free_t(yypvt[-1].t);} break; case 261: # line 644 "rttgram.y" {yyval.n = node3(TrnryNd, yypvt[-6].t, yypvt[-4].n, yypvt[-2].n, yypvt[-0].n); free_t(yypvt[-5].t); free_t(yypvt[-3].t); free_t(yypvt[-1].t);} break; case 262: # line 646 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-4].t, yypvt[-2].n, yypvt[-0].n); free_t(yypvt[-3].t); free_t(yypvt[-1].t);} break; case 263: # line 649 "rttgram.y" {yyval.n = node3(TrnryNd, yypvt[-6].t, yypvt[-5].n, yypvt[-2].n, yypvt[-1].n); free_t(yypvt[-4].t); free_t(yypvt[-3].t); free_t(yypvt[-0].t);} break; case 264: # line 653 "rttgram.y" {yyval.n = node2(ConCatNd, NULL, NULL, yypvt[-0].n);} break; case 265: # line 654 "rttgram.y" {yyval.n = node2(ConCatNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 266: # line 658 "rttgram.y" {yyval.n = node2(ConCatNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 267: # line 662 "rttgram.y" {yyval.n = NULL;} break; case 268: # line 663 "rttgram.y" {yyval.n = yypvt[-0].n; free_t(yypvt[-2].t); free_t(yypvt[-1].t);} break; case 269: # line 667 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-4].t, yypvt[-2].n, yypvt[-0].n); free_t(yypvt[-3].t); free_t(yypvt[-1].t);} break; case 270: # line 669 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-6].t, yypvt[-5].n, yypvt[-2].n); free_t(yypvt[-4].t); free_t(yypvt[-3].t); free_t(yypvt[-1].t); free_t(yypvt[-0].t);} break; case 271: # line 673 "rttgram.y" {yyval.n = node4(QuadNd, yypvt[-8].t, yypvt[-6].n, yypvt[-4].n, yypvt[-2].n, yypvt[-0].n); free_t(yypvt[-7].t); free_t(yypvt[-5].t); free_t(yypvt[-3].t); free_t(yypvt[-1].t);} break; case 272: # line 679 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-1].n); free_t(yypvt[-0].t);} break; case 273: # line 680 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-1].t); free_t(yypvt[-0].t);} break; case 274: # line 681 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-1].t); free_t(yypvt[-0].t);} break; case 275: # line 682 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-1].n); free_t(yypvt[-0].t);} break; case 276: # line 683 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-1].n); free_t(yypvt[-0].t);} break; case 277: # line 684 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-1].t); free_t(yypvt[-0].t);} break; case 278: # line 685 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-1].t); free_t(yypvt[-0].t);} break; case 284: # line 700 "rttgram.y" {dclout(yypvt[-0].n);} break; case 286: # line 705 "rttgram.y" {func_def(yypvt[-0].n);} break; case 287: # line 706 "rttgram.y" {fncout(yypvt[-3].n, yypvt[-1].n, yypvt[-0].n);} break; case 288: # line 710 "rttgram.y" {yyval.n = node2(LstNd, NULL, NULL, yypvt[-0].n);} break; case 289: # line 711 "rttgram.y" {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 290: # line 712 "rttgram.y" {yyval.n = node2(LstNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 291: # line 716 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 292: # line 717 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 293: # line 721 "rttgram.y" {yyval.n = lbl(yypvt[-0].t);} break; case 294: # line 722 "rttgram.y" {yyval.n = lbl(yypvt[-0].t);} break; case 299: # line 737 "rttgram.y" {strt_def();} break; case 301: # line 741 "rttgram.y" {defout(yypvt[-1].n); free_t(yypvt[-0].t);} break; case 302: # line 742 "rttgram.y" {defout(yypvt[-1].n); free_t(yypvt[-0].t);} break; case 303: # line 743 "rttgram.y" {keyconst(yypvt[-1].t); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break; case 304: # line 747 "rttgram.y" {comment = NULL;} break; case 305: # line 748 "rttgram.y" {comment = yypvt[-0].t;} break; case 306: # line 753 "rttgram.y" {impl_fnc(yypvt[-3].t); free_t(yypvt[-7].t); free_t(yypvt[-6].t); free_t(yypvt[-4].t); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break; case 307: # line 755 "rttgram.y" {lex_state = OpHead;} break; case 308: # line 756 "rttgram.y" {lex_state = DfltLex;} break; case 309: # line 757 "rttgram.y" {impl_op(yypvt[-5].t, yypvt[-3].t); free_t(yypvt[-10].t); free_t(yypvt[-9].t); free_t(yypvt[-6].t); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break; case 310: # line 762 "rttgram.y" {impl_key(yypvt[-0].t); free_t(yypvt[-4].t); free_t(yypvt[-3].t); free_t(yypvt[-1].t);} break; case 383: # line 853 "rttgram.y" {set_r_seq(NoRsltSeq, NoRsltSeq, 0);} break; case 384: # line 854 "rttgram.y" {set_r_seq(yypvt[-1].i, yypvt[-1].i, (int)yypvt[-0].i);} break; case 385: # line 855 "rttgram.y" {set_r_seq(yypvt[-3].i, yypvt[-1].i, (int)yypvt[-0].i); free_t(yypvt[-2].t);} break; case 386: # line 859 "rttgram.y" {yyval.i = ttol(yypvt[-0].t); free_t(yypvt[-0].t);} break; case 387: # line 860 "rttgram.y" {yyval.i = UnbndSeq; free_t(yypvt[-0].t);} break; case 388: # line 864 "rttgram.y" {yyval.i = 0;} break; case 389: # line 865 "rttgram.y" {yyval.i = 1; free_t(yypvt[-0].t);} break; case 392: # line 871 "rttgram.y" {var_args(yypvt[-1].t); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break; case 394: # line 876 "rttgram.y" {free_t(yypvt[-1].t);} break; case 395: # line 880 "rttgram.y" {s_prm_def(NULL, yypvt[-0].t);} break; case 396: # line 881 "rttgram.y" {s_prm_def(yypvt[-0].t, NULL); free_t(yypvt[-1].t);} break; case 397: # line 882 "rttgram.y" {s_prm_def(yypvt[-2].t, yypvt[-0].t); free_t(yypvt[-3].t); free_t(yypvt[-1].t);} break; case 398: # line 887 "rttgram.y" {} break; case 399: # line 888 "rttgram.y" {d_lst_typ(yypvt[-1].n); free_t(yypvt[-3].t); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break; case 400: # line 893 "rttgram.y" {yyval.n = NULL;} break; case 403: # line 899 "rttgram.y" {yyval.n = node2(ConCatNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 407: # line 906 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-1].n); free_t(yypvt[-0].t);} break; case 408: # line 907 "rttgram.y" {lex_state = TypeComp;} break; case 409: # line 908 "rttgram.y" {lex_state = DfltLex;} break; case 410: # line 909 "rttgram.y" {yyval.n = yypvt[-2].n; free_t(yypvt[-5].t); free_t(yypvt[-3].t); free_t(yypvt[-0].t);} break; case 411: # line 914 "rttgram.y" {yyval.n = node3(TrnryNd, yypvt[-3].t, yypvt[-2].n, yypvt[-0].n, NULL); free_t(yypvt[-1].t);} break; case 412: # line 916 "rttgram.y" {yyval.n = node3(TrnryNd, yypvt[-5].t, yypvt[-4].n, yypvt[-2].n, yypvt[-0].n); free_t(yypvt[-3].t); free_t(yypvt[-1].t);} break; case 413: # line 918 "rttgram.y" {yyval.n = node3(TrnryNd, yypvt[-6].t, yypvt[-5].n, yypvt[-2].n, yypvt[-1].n); free_t(yypvt[-4].t); free_t(yypvt[-3].t); free_t(yypvt[-0].t);} break; case 414: # line 920 "rttgram.y" {yyval.n = node3(TrnryNd, yypvt[-8].t, sym_node(yypvt[-7].t), yypvt[-4].n, yypvt[-1].n); free_t(yypvt[-6].t), free_t(yypvt[-5].t); free_t(yypvt[-3].t); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break; case 415: # line 924 "rttgram.y" {yyval.n = arith_nd(yypvt[-17].t, yypvt[-15].n, yypvt[-13].n, yypvt[-9].n, yypvt[-7].n, yypvt[-6].n, yypvt[-4].n, yypvt[-3].n, yypvt[-1].n); free_t(yypvt[-16].t); free_t(yypvt[-14].t), free_t(yypvt[-12].t); free_t(yypvt[-11].t); free_t(yypvt[-10].t); free_t(yypvt[-8].t); free_t(yypvt[-5].t); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break; case 416: # line 930 "rttgram.y" {yyval.n = node2(ConCatNd, NULL, NULL, yypvt[-0].n);} break; case 417: # line 931 "rttgram.y" {yyval.n = node2(ConCatNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 418: # line 935 "rttgram.y" {yyval.n = node2(ConCatNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 419: # line 939 "rttgram.y" {yyval.n = NULL;} break; case 420: # line 940 "rttgram.y" {yyval.n = yypvt[-0].n; free_t(yypvt[-2].t); free_t(yypvt[-1].t);} break; case 421: # line 944 "rttgram.y" {yyval.n = node2(ConCatNd, NULL, NULL, yypvt[-1].n); free_t(yypvt[-0].t);} break; case 422: # line 946 "rttgram.y" {yyval.n = node2(ConCatNd, NULL, yypvt[-2].n, yypvt[-1].n); free_t(yypvt[-0].t);} break; case 424: # line 952 "rttgram.y" {yyval.n = node2(ConCatNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 425: # line 956 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-0].n); free_t(yypvt[-1].t);} break; case 427: # line 961 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-1].t, yypvt[-0].n);} break; case 429: # line 966 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 430: # line 971 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-5].t, yypvt[-3].n, yypvt[-1].n); free_t(yypvt[-4].t); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break; case 431: # line 973 "rttgram.y" {yyval.n = node3(TrnryNd, yypvt[-5].t, yypvt[-3].n, yypvt[-1].n, NULL), dst_alloc(yypvt[-3].n, yypvt[-1].n); free_t(yypvt[-4].t); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break; case 432: # line 976 "rttgram.y" {yyval.n = node3(TrnryNd, yypvt[-7].t, yypvt[-5].n, yypvt[-3].n, yypvt[-1].n), free_t(yypvt[-6].t); free_t(yypvt[-4].t); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break; case 433: # line 979 "rttgram.y" {yyval.n = node4(QuadNd, yypvt[-7].t, yypvt[-5].n, yypvt[-3].n, yypvt[-1].n, NULL), dst_alloc(yypvt[-5].n, yypvt[-3].n); free_t(yypvt[-6].t); free_t(yypvt[-4].t); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break; case 434: # line 982 "rttgram.y" {yyval.n = node4(QuadNd, yypvt[-9].t, yypvt[-7].n, yypvt[-5].n, yypvt[-3].n, yypvt[-1].n), free_t(yypvt[-8].t); free_t(yypvt[-6].t); free_t(yypvt[-4].t); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break; case 435: # line 987 "rttgram.y" {push_cntxt(1);} break; case 436: # line 988 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-0].n); pop_cntxt();} break; case 437: # line 989 "rttgram.y" {push_cntxt(1);} break; case 438: # line 990 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-2].t, yypvt[-0].n); pop_cntxt();} break; case 439: # line 995 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-4].t, node0(PrimryNd, yypvt[-2].t), NULL); free_t(yypvt[-3].t); free_t(yypvt[-1].t);} break; case 440: # line 998 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-6].t, node0(PrimryNd, yypvt[-4].t), yypvt[-2].n); free_t(yypvt[-5].t); free_t(yypvt[-3].t); free_t(yypvt[-1].t);} break; case 442: # line 1004 "rttgram.y" {free_t(yypvt[-0].t);} break; case 443: # line 1008 "rttgram.y" {yyval.n = sym_node(yypvt[-0].t);} break; case 444: # line 1009 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-2].t, sym_node(yypvt[-3].t), node0(PrimryNd, yypvt[-1].t)); free_t(yypvt[-0].t);} break; case 445: # line 1014 "rttgram.y" {yyval.n = dest_node(yypvt[-0].t);} break; case 446: # line 1015 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 447: # line 1016 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 448: # line 1017 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 449: # line 1018 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t); ++n_tmp_str;} break; case 450: # line 1019 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t); ++n_tmp_cset;} break; case 451: # line 1020 "rttgram.y" {yyval.n = node0(ExactCnv, chk_exct(yypvt[-0].t)); free_t(yypvt[-3].t); free_t(yypvt[-2].t); free_t(yypvt[-1].t);} break; case 452: # line 1022 "rttgram.y" {yyval.n = node0(ExactCnv, yypvt[-0].t); free_t(yypvt[-3].t); free_t(yypvt[-2].t); free_t(yypvt[-1].t);} break; case 453: # line 1027 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 454: # line 1028 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 455: # line 1029 "rttgram.y" {yyval.n = sym_node(yypvt[-0].t);} break; case 456: # line 1030 "rttgram.y" {yyval.n = node0(PrimryNd, yypvt[-0].t);} break; case 458: # line 1035 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-1].t, yypvt[-0].n);} break; case 459: # line 1036 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-1].t, yypvt[-0].n);} break; case 460: # line 1037 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-1].t, yypvt[-0].n);} break; case 461: # line 1041 "rttgram.y" {yyval.n = node2(AbstrNd, yypvt[-2].t, yypvt[-3].n, yypvt[-1].n);} break; case 462: # line 1042 "rttgram.y" {yyval.n = node2(AbstrNd, yypvt[-2].t, NULL, yypvt[-1].n);} break; case 463: # line 1043 "rttgram.y" {yyval.n = node2(AbstrNd, NULL, yypvt[-0].n, NULL);} break; case 465: # line 1048 "rttgram.y" {yyval.n = node2(ConCatNd, NULL, yypvt[-1].n, yypvt[-0].n);} break; case 466: # line 1052 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-2].t, yypvt[-4].n, yypvt[-1].n); free_t(yypvt[-6].t); free_t(yypvt[-5].t); free_t(yypvt[-3].t);} break; case 468: # line 1058 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 469: # line 1059 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; case 470: # line 1062 "rttgram.y" {yyval.n = node1(IcnTypNd, copy_t(yypvt[-0].n->tok), yypvt[-0].n);} break; case 471: # line 1064 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-3].t, yypvt[-1].n); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break; case 472: # line 1066 "rttgram.y" {yyval.n = node2(BinryNd, yypvt[-4].t, yypvt[-3].n, yypvt[-1].n); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break; case 473: # line 1068 "rttgram.y" {yyval.n = node1(PrefxNd, yypvt[-3].t, yypvt[-1].n); free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break; case 474: # line 1070 "rttgram.y" {yyval.n = node1(PstfxNd, yypvt[-0].t, yypvt[-2].n); free_t(yypvt[-1].t);} break; case 475: # line 1072 "rttgram.y" {yyval.n = yypvt[-1].n; free_t(yypvt[-2].t); free_t(yypvt[-0].t);} break; case 478: # line 1081 "rttgram.y" {yyval.n = node2(CommaNd, yypvt[-1].t, yypvt[-2].n, yypvt[-0].n);} break; } goto yystack; /* reset registers in driver code */ }