summaryrefslogtreecommitdiff
path: root/src/rtt/rttparse.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/rtt/rttparse.c')
-rw-r--r--src/rtt/rttparse.c2992
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 */
+}