home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.cs.arizona.edu
/
ftp.cs.arizona.edu.tar
/
ftp.cs.arizona.edu
/
icon
/
historic
/
v92.tgz
/
v92.tar
/
v92
/
src
/
rtt
/
rttparse.c
< prev
next >
Wrap
C/C++ Source or Header
|
1996-03-22
|
116KB
|
2,993 lines
# 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 Equal 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 Register 297
# define Tended 298
# define Char 299
# define Short 300
# define Int 301
# define Long 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 Enum 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 Function 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 Type 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 novalue 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 : Type",
"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 : Type '(' 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 */
}