diff options
Diffstat (limited to 'src/rtt/rttparse.c')
-rw-r--r-- | src/rtt/rttparse.c | 2992 |
1 files changed, 2992 insertions, 0 deletions
diff --git a/src/rtt/rttparse.c b/src/rtt/rttparse.c new file mode 100644 index 0000000..9f18ec1 --- /dev/null +++ b/src/rtt/rttparse.c @@ -0,0 +1,2992 @@ + +# 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 */ +} |