#line 2 "a.y"#include "a.h" #line 4 "a.y"typedef union { Sym *sym; long lval; double dval; char sval[8]; Gen gen;} YYSTYPE;extern int yyerrflag;#ifndef YYMAXDEPTH#define YYMAXDEPTH 150#endifYYSTYPE yylval;YYSTYPE yyval;#define LTYPE1 57346#define LTYPE2 57347#define LTYPE3 57348#define LTYPE4 57349#define LTYPE5 57350#define LTYPE6 57351#define LTYPE7 57352#define LTYPE8 57353#define LTYPE9 57354#define LTYPEA 57355#define LTYPEB 57356#define LTYPEC 57357#define LTYPED 57358#define LTYPEE 57359#define LTYPEF 57360#define LTYPEG 57361#define LTYPEH 57362#define LTYPEI 57363#define LTYPEJ 57364#define LTYPEK 57365#define LCONST 57366#define LSP 57367#define LSB 57368#define LFP 57369#define LPC 57370#define LHI 57371#define LLO 57372#define LMREG 57373#define LTYPEX 57374#define LREG 57375#define LFREG 57376#define LFCREG 57377#define LR 57378#define LM 57379#define LF 57380#define LFCR 57381#define LSCHED 57382#define LFCONST 57383#define LSCONST 57384#define LNAME 57385#define LLAB 57386#define LVAR 57387#define YYEOFCODE 1#define YYERRCODE 2short yyexca[] ={-1, 1, 1, -1, -2, 0,};#define YYNPROD 119#define YYPRIVATE 57344#define yydebug 1#define YYLAST 634short yyact[] ={ 104, 68, 122, 46, 36, 180, 38, 138, 49, 39, 133, 92, 50, 48, 41, 48, 43, 42, 134, 48, 48, 82, 82, 124, 85, 86, 87, 78, 48, 48, 40, 47, 2, 40, 103, 105, 184, 264, 258, 255, 100, 107, 37, 37, 59, 244, 57, 75, 240, 239, 238, 112, 235, 232, 118, 119, 120, 231, 229, 113, 186, 76, 77, 256, 111, 245, 121, 81, 84, 189, 88, 89, 90, 99, 215, 198, 147, 135, 135, 41, 131, 130, 42, 129, 123, 93, 108, 60, 141, 153, 249, 248, 48, 155, 247, 60, 142, 246, 45, 152, 45, 242, 230, 156, 79, 80, 228, 158, 151, 175, 150, 48, 149, 146, 177, 145, 173, 144, 118, 176, 143, 179, 132, 139, 139, 128, 110, 191, 192, 48, 194, 195, 196, 188, 159, 160, 109, 157, 174, 106, 193, 37, 197, 199, 204, 153, 153, 209, 35, 210, 202, 211, 212, 208, 206, 205, 207, 34, 33, 48, 200, 201, 203, 30, 31, 218, 219, 220, 221, 222, 217, 32, 225, 226, 227, 29, 214, 243, 216, 54, 53, 182, 181, 183, 243, 234, 54, 53, 41, 41, 139, 42, 42, 233, 263, 236, 178, 73, 182, 181, 183, 74, 148, 213, 51, 224, 41, 74, 202, 42, 190, 51, 199, 41, 237, 223, 42, 182, 181, 183, 164, 165, 166, 154, 137, 52, 251, 252, 94, 96, 83, 95, 52, 55, 44, 254, 8, 83, 102, 40, 55, 101, 241, 63, 65, 1, 64, 153, 61, 62, 0, 262, 261, 0, 260, 202, 0, 259, 0, 250, 253, 0, 37, 9, 171, 170, 169, 167, 168, 162, 163, 164, 165, 166, 257, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 0, 54, 53, 125, 0, 126, 127, 171, 170, 169, 167, 168, 162, 163, 164, 165, 166, 6, 126, 127, 4, 3, 5, 0, 0, 7, 51, 187, 54, 53, 0, 97, 98, 69, 0, 41, 73, 71, 42, 70, 74, 72, 0, 0, 0, 58, 0, 52, 0, 0, 0, 60, 56, 51, 0, 55, 54, 53, 97, 98, 69, 172, 41, 73, 71, 42, 70, 74, 72, 0, 0, 0, 58, 0, 52, 0, 0, 0, 91, 56, 0, 51, 55, 54, 53, 0, 66, 67, 69, 0, 41, 73, 71, 42, 70, 74, 72, 0, 0, 0, 58, 0, 52, 54, 117, 114, 0, 56, 51, 50, 55, 0, 0, 97, 98, 69, 0, 41, 73, 71, 42, 70, 74, 72, 0, 54, 53, 58, 51, 52, 0, 54, 53, 0, 56, 0, 0, 55, 0, 0, 0, 0, 54, 53, 0, 116, 115, 58, 0, 52, 51, 0, 0, 0, 56, 0, 51, 55, 0, 41, 0, 0, 42, 0, 0, 41, 0, 51, 42, 58, 0, 52, 54, 53, 0, 58, 56, 52, 50, 55, 0, 0, 56, 54, 53, 55, 154, 137, 52, 54, 53, 0, 0, 83, 0, 0, 55, 51, 0, 0, 54, 53, 0, 0, 0, 0, 41, 0, 51, 42, 0, 54, 53, 0, 51, 0, 0, 0, 52, 0, 54, 53, 0, 83, 0, 51, 55, 136, 137, 52, 54, 53, 0, 58, 140, 52, 51, 55, 0, 0, 56, 0, 0, 55, 58, 51, 52, 0, 0, 0, 0, 140, 0, 185, 55, 51, 0, 52, 0, 0, 0, 0, 83, 0, 58, 55, 52, 0, 0, 0, 0, 83, 0, 0, 55, 0, 52, 0, 0, 0, 0, 83, 0, 0, 55, 171, 170, 169, 167, 168, 162, 163, 164, 165, 166, 170, 169, 167, 168, 162, 163, 164, 165, 166, 169, 167, 168, 162, 163, 164, 165, 166, 167, 168, 162, 163, 164, 165, 166, 162, 163, 164, 165, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 161};short yypact[] ={-1000, 261,-1000, 119, 107, 114, 100,-1000, 99, 90, -29, -29, 410, 28, 341, 145, 28, 36, 416, 416, 505, 505, 153, 153, 153, 28, 28, 313, 286,-1000,-1000, 515, 515,-1000,-1000,-1000, 80,-1000,-1000,-1000, 515,-1000, 26, 77, 67,-1000,-1000,-1000, 4,-1000, 388,-1000,-1000, 515, 515, 515, 457, 24, 290,-1000,-1000, 66,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, 23,-1000, 21,-1000, 20, 63, 468, 468, 61, 58, 56, 54, 16, 515, 190, 53, 51, 49, 427, -50,-1000, 368, 28,-1000,-1000,-1000,-1000,-1000,-1000,-1000, 48, 261, 261, 575,-1000, 297, 145,-1000, 515, -29, 416, 163, 4,-1000, -26,-1000,-1000, 496,-1000,-1000,-1000, -1, 260, 145, 9, 202, 515, 515, 368, 515, 515, 515, 145,-1000,-1000, 15, 290, 303,-1000,-1000, 457,-1000,-1000, 485, 170, 427, 177, 182, 515, 153, 159, 132,-1000, 14, 303,-1000,-1000,-1000, 368,-1000,-1000,-1000, 515, 515, 515, 515, 515, 208, 197, 515, 515, 515,-1000, 47,-1000, -3, 43,-1000,-1000, -4, -8,-1000,-1000,-1000, 474,-1000,-1000,-1000, -9, 182, 303,-1000,-1000,-1000, -11, -12, -13, 42, 146,-1000, 9,-1000, -16,-1000, 5,-1000, 38,-1000,-1000, 35, 32,-1000,-1000, 31, 28, 139,-1000,-1000, 209, 209,-1000,-1000,-1000, 515, 515, 599, 592, 584, 145,-1000, -29,-1000,-1000,-1000, 4,-1000, -22, 3,-1000,-1000,-1000,-1000, 145, -23,-1000, 163, 427, -32, -50, 153,-1000, 604, 604,-1000,-1000,-1000, 158,-1000,-1000,-1000,-1000,-1000,-1000, -24,-1000};short yypgo[] ={ 0, 0, 2, 5, 23, 9, 85, 11, 234, 248, 10, 31, 1, 231, 229, 6, 3, 7, 46, 8, 4, 18, 228, 245, 32, 241, 238, 236, 44};short yyr1[] ={ 0, 23, 23, 25, 24, 26, 24, 24, 24, 24, 24, 24, 24, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 10, 10, 10, 9, 9, 9, 9, 9, 9, 7, 7, 7, 7, 7, 7, 8, 8, 22, 13, 13, 14, 14, 12, 12, 16, 16, 16, 16, 16, 16, 21, 21, 21, 17, 6, 6, 6, 19, 19, 19, 19, 20, 20, 15, 11, 5, 5, 18, 18, 18, 4, 4, 4, 3, 3, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2};short yyr2[] ={ 0, 0, 2, 0, 4, 0, 4, 4, 4, 2, 1, 2, 2, 6, 4, 6, 4, 4, 2, 4, 5, 6, 3, 3, 3, 3, 4, 4, 6, 4, 4, 6, 6, 4, 4, 6, 5, 3, 3, 2, 3, 3, 2, 4, 0, 1, 4, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 4, 1, 4, 2, 2, 4, 2, 2, 3, 1, 2, 1, 3, 1, 1, 1, 1, 4, 3, 4, 1, 1, 2, 1, 1, 4, 4, 5, 7, 0, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 3, 1, 3, 3, 3, 3, 3, 4, 4, 3, 3, 3};short yychk[] ={-1000, -23, -24, 54, 53, 55, 50, 58, -27, 2, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 56, 56, 57, 57, 58, 58, 58, -20, -11, -15, -5, 62, 43, 46, -20, -8, -6, -16, -11, -1, -19, 62, 34, 55, 10, 9, 63, 60, -18, 53, -28, 59, -9, -8, -22, -13, -14, 39, 40, -12, 41, 47, 45, 49, 44, 48, -11, -28, -28, -5, -6, -6, -18, -1, 60, -18, -12, -12, -12, -28, -28, -28, 59, -7, -6, -22, -13, -14, 39, 40, -28, -7, -25, -26, -2, -1, -2, 59, -1, 60, 59, 59, 60, -1, -19, 11, 52, 51, 10, -1, -1, -1, -5, -2, 60, -4, 7, 9, 10, 59, 60, 60, 60, 59, -10, -21, -1, 53, 54, -17, -18, 60, -10, -21, 59, 59, 59, 59, 60, 12, 59, 59, 59, -10, -1, 53, -16, -7, -28, 59, -24, -24, 58, 9, 10, 11, 12, 13, 7, 8, 6, 5, 4, 58, -5, -11, -1, -5, -20, -6, -5, -3, 36, 35, 37, 62, 51, 61, 61, -5, 60, 8, -1, -1, -7, -1, -1, -1, -5, 60, -17, -4, -4, -5, -21, -1, -10, -5, -10, -15, -1, -1, -12, -12, 44, 44, 60, -4, -7, -2, -2, -2, -2, -2, 7, 8, -2, -2, -2, 59, 61, 59, 61, 61, -19, -1, 61, -3, -4, 61, 61, 61, -28, 59, 38, 61, 60, 59, 59, 59, 59, -28, -2, -2, -11, -20, 61, 60, -11, 61, -10, -15, -16, -12, 36, 61};short yydef[] ={ 1, -2, 2, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 44, 0, 0, 44, 44, 0, 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 3, 5, 0, 0, 9, 11, 12, 0, 87, 88, 90, 0, 91, 0, 0, 0, 61, 62, 80, 81, 82, 0, 102, 103, 0, 0, 0, 0, 83, 96, 18, 45, 0, 49, 50, 51, 52, 53, 54, 63, 64, 0, 66, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 45, 44, 55, 56, 57, 58, 59, 60, 42, 0, 0, 0, 0, 108, 0, 0, 89, 0, 0, 0, 0, 70, 71, 0, 73, 74, 0, 104, 105, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 23, 0, 96, 96, 76, 78, 0, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 96, 38, 40, 41, 0, 4, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 90, 14, 0, 90, 16, 17, 0, 0, 99, 100, 101, 0, 75, 85, 107, 0, 0, 96, 97, 98, 19, 0, 0, 0, 44, 0, 77, 47, 48, 0, 26, 0, 27, 0, 29, 30, 0, 0, 33, 34, 68, 44, 0, 47, 43, 109, 110, 111, 112, 113, 0, 0, 116, 117, 118, 0, 92, 0, 86, 93, 72, 0, 84, 0, 0, 65, 67, 69, 20, 45, 0, 79, 0, 0, 0, 0, 0, 36, 114, 115, 13, 15, 94, 0, 21, 46, 28, 31, 32, 35, 0, 95};short yytok1[] ={ 1, 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, 62, 13, 6, 0, 60, 61, 11, 9, 59, 10, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 58, 7, 57, 8, 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, 5, 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, 4, 0, 63};short yytok2[] ={ 2, 3, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55};long yytok3[] ={ 0};#define YYFLAG -1000#define yyclearin yychar = -1#define yyerrok yyerrflag = 0 #ifdef yydebug#include "y.debug"#else#define yydebug 0char* yytoknames[1]; /* for debugging */char* yystates[1]; /* for debugging */#endif /* parser for yacc output */ int yynerrs = 0; /* number of errors */int yyerrflag = 0; /* error recovery flag */ extern int fprint(int, char*, ...);extern int sprint(char*, char*, ...); char*yytokname(int yyc){ static char x[16]; if(yyc > 0 && yyc <= sizeof(yytoknames)/sizeof(yytoknames[0])) if(yytoknames[yyc-1]) return yytoknames[yyc-1]; sprint(x, "<%d>", yyc); return x;} char*yystatname(int yys){ static char x[16]; if(yys >= 0 && yys < sizeof(yystates)/sizeof(yystates[0])) if(yystates[yys]) return yystates[yys]; sprint(x, "<%d>\n", yys); return x;} longyylex1(void){ long yychar; long *t3p; int c; yychar = yylex(); if(yychar <= 0) { c = yytok1[0]; goto out; } if(yychar < sizeof(yytok1)/sizeof(yytok1[0])) { c = yytok1[yychar]; goto out; } if(yychar >= YYPRIVATE) if(yychar < YYPRIVATE+sizeof(yytok2)/sizeof(yytok2[0])) { c = yytok2[yychar-YYPRIVATE]; goto out; } for(t3p=yytok3;; t3p+=2) { c = t3p[0]; if(c == yychar) { c = t3p[1]; goto out; } if(c == 0) break; } c = 0; out: if(c == 0) c = yytok2[1]; /* unknown char */ if(yydebug >= 3) fprint(2, "lex %.4lux %s\n", yychar, yytokname(c)); return c;} intyyparse(void){ struct { YYSTYPE yyv; int yys; } yys[YYMAXDEPTH], *yyp, *yypt; short *yyxi; int yyj, yym, yystate, yyn, yyg; long yychar; YYSTYPE save1, save2; int save3, save4; save1 = yylval; save2 = yyval; save3 = yynerrs; save4 = yyerrflag; yystate = 0; yychar = -1; yynerrs = 0; yyerrflag = 0; yyp = &yys[-1]; goto yystack; ret0: yyn = 0; goto ret; ret1: yyn = 1; goto ret; ret: yylval = save1; yyval = save2; yynerrs = save3; yyerrflag = save4; return yyn; yystack: /* put a state and value onto the stack */ if(yydebug >= 4) fprint(2, "char %s in %s", yytokname(yychar), yystatname(yystate)); yyp++; if(yyp >= &yys[YYMAXDEPTH]) { yyerror("yacc stack overflow"); goto ret1; } yyp->yys = yystate; yyp->yyv = yyval; yynewstate: yyn = yypact[yystate]; if(yyn <= YYFLAG) goto yydefault; /* simple state */ if(yychar < 0) yychar = yylex1(); yyn += yychar; if(yyn < 0 || yyn >= YYLAST) goto yydefault; yyn = yyact[yyn]; if(yychk[yyn] == yychar) { /* valid shift */ yychar = -1; yyval = yylval; yystate = yyn; if(yyerrflag > 0) yyerrflag--; goto yystack; } yydefault: /* default state action */ yyn = yydef[yystate]; if(yyn == -2) { if(yychar < 0) yychar = yylex1(); /* look through exception table */ for(yyxi=yyexca;; yyxi+=2) if(yyxi[0] == -1 && yyxi[1] == yystate) break; for(yyxi += 2;; yyxi += 2) { yyn = yyxi[0]; if(yyn < 0 || yyn == yychar) break; } yyn = yyxi[1]; if(yyn < 0) goto ret0; } if(yyn == 0) { /* error ... attempt to resume parsing */ switch(yyerrflag) { case 0: /* brand new error */ yyerror("syntax error"); yynerrs++; if(yydebug >= 1) { fprint(2, "%s", yystatname(yystate)); fprint(2, "saw %s\n", yytokname(yychar)); } case 1: case 2: /* incompletely recovered error ... try again */ yyerrflag = 3; /* find a state where "error" is a legal shift action */ while(yyp >= yys) { yyn = yypact[yyp->yys] + YYERRCODE; if(yyn >= 0 && yyn < YYLAST) { yystate = yyact[yyn]; /* simulate a shift of "error" */ if(yychk[yystate] == YYERRCODE) goto yystack; } /* the current yyp has no shift onn "error", pop stack */ if(yydebug >= 2) fprint(2, "error recovery pops state %d, uncovers %d\n", yyp->yys, (yyp-1)->yys ); yyp--; }Lines 1–500 of 1051. Load more
#line 2 "a.y" #include "a.h" #line 4 "a.y" typedef union { Sym *sym; long lval; double dval; char sval[8]; Gen gen; } YYSTYPE; extern int yyerrflag; #ifndef YYMAXDEPTH #define YYMAXDEPTH 150 #endif YYSTYPE yylval; YYSTYPE yyval; #define LTYPE1 57346 #define LTYPE2 57347 #define LTYPE3 57348 #define LTYPE4 57349 #define LTYPE5 57350 #define LTYPE6 57351 #define LTYPE7 57352 #define LTYPE8 57353 #define LTYPE9 57354 #define LTYPEA 57355 #define LTYPEB 57356 #define LTYPEC 57357 #define LTYPED 57358 #define LTYPEE 57359 #define LTYPEF 57360 #define LTYPEG 57361 #define LTYPEH 57362 #define LTYPEI 57363 #define LTYPEJ 57364 #define LTYPEK 57365 #define LCONST 57366 #define LSP 57367 #define LSB 57368 #define LFP 57369 #define LPC 57370 #define LHI 57371 #define LLO 57372 #define LMREG 57373 #define LTYPEX 57374 #define LREG 57375 #define LFREG 57376 #define LFCREG 57377 #define LR 57378 #define LM 57379 #define LF 57380 #define LFCR 57381 #define LSCHED 57382 #define LFCONST 57383 #define LSCONST 57384 #define LNAME 57385 #define LLAB 57386 #define LVAR 57387 #define YYEOFCODE 1 #define YYERRCODE 2 short yyexca[] = {-1, 1, 1, -1, -2, 0, }; #define YYNPROD 119 #define YYPRIVATE 57344 #define yydebug 1 #define YYLAST 634 short yyact[] = { 104, 68, 122, 46, 36, 180, 38, 138, 49, 39, 133, 92, 50, 48, 41, 48, 43, 42, 134, 48, 48, 82, 82, 124, 85, 86, 87, 78, 48, 48, 40, 47, 2, 40, 103, 105, 184, 264, 258, 255, 100, 107, 37, 37, 59, 244, 57, 75, 240, 239, 238, 112, 235, 232, 118, 119, 120, 231, 229, 113, 186, 76, 77, 256, 111, 245, 121, 81, 84, 189, 88, 89, 90, 99, 215, 198, 147, 135, 135, 41, 131, 130, 42, 129, 123, 93, 108, 60, 141, 153, 249, 248, 48, 155, 247, 60, 142, 246, 45, 152, 45, 242, 230, 156, 79, 80, 228, 158, 151, 175, 150, 48, 149, 146, 177, 145, 173, 144, 118, 176, 143, 179, 132, 139, 139, 128, 110, 191, 192, 48, 194, 195, 196, 188, 159, 160, 109, 157, 174, 106, 193, 37, 197, 199, 204, 153, 153, 209, 35, 210, 202, 211, 212, 208, 206, 205, 207, 34, 33, 48, 200, 201, 203, 30, 31, 218, 219, 220, 221, 222, 217, 32, 225, 226, 227, 29, 214, 243, 216, 54, 53, 182, 181, 183, 243, 234, 54, 53, 41, 41, 139, 42, 42, 233, 263, 236, 178, 73, 182, 181, 183, 74, 148, 213, 51, 224, 41, 74, 202, 42, 190, 51, 199, 41, 237, 223, 42, 182, 181, 183, 164, 165, 166, 154, 137, 52, 251, 252, 94, 96, 83, 95, 52, 55, 44, 254, 8, 83, 102, 40, 55, 101, 241, 63, 65, 1, 64, 153, 61, 62, 0, 262, 261, 0, 260, 202, 0, 259, 0, 250, 253, 0, 37, 9, 171, 170, 169, 167, 168, 162, 163, 164, 165, 166, 257, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 0, 54, 53, 125, 0, 126, 127, 171, 170, 169, 167, 168, 162, 163, 164, 165, 166, 6, 126, 127, 4, 3, 5, 0, 0, 7, 51, 187, 54, 53, 0, 97, 98, 69, 0, 41, 73, 71, 42, 70, 74, 72, 0, 0, 0, 58, 0, 52, 0, 0, 0, 60, 56, 51, 0, 55, 54, 53, 97, 98, 69, 172, 41, 73, 71, 42, 70, 74, 72, 0, 0, 0, 58, 0, 52, 0, 0, 0, 91, 56, 0, 51, 55, 54, 53, 0, 66, 67, 69, 0, 41, 73, 71, 42, 70, 74, 72, 0, 0, 0, 58, 0, 52, 54, 117, 114, 0, 56, 51, 50, 55, 0, 0, 97, 98, 69, 0, 41, 73, 71, 42, 70, 74, 72, 0, 54, 53, 58, 51, 52, 0, 54, 53, 0, 56, 0, 0, 55, 0, 0, 0, 0, 54, 53, 0, 116, 115, 58, 0, 52, 51, 0, 0, 0, 56, 0, 51, 55, 0, 41, 0, 0, 42, 0, 0, 41, 0, 51, 42, 58, 0, 52, 54, 53, 0, 58, 56, 52, 50, 55, 0, 0, 56, 54, 53, 55, 154, 137, 52, 54, 53, 0, 0, 83, 0, 0, 55, 51, 0, 0, 54, 53, 0, 0, 0, 0, 41, 0, 51, 42, 0, 54, 53, 0, 51, 0, 0, 0, 52, 0, 54, 53, 0, 83, 0, 51, 55, 136, 137, 52, 54, 53, 0, 58, 140, 52, 51, 55, 0, 0, 56, 0, 0, 55, 58, 51, 52, 0, 0, 0, 0, 140, 0, 185, 55, 51, 0, 52, 0, 0, 0, 0, 83, 0, 58, 55, 52, 0, 0, 0, 0, 83, 0, 0, 55, 0, 52, 0, 0, 0, 0, 83, 0, 0, 55, 171, 170, 169, 167, 168, 162, 163, 164, 165, 166, 170, 169, 167, 168, 162, 163, 164, 165, 166, 169, 167, 168, 162, 163, 164, 165, 166, 167, 168, 162, 163, 164, 165, 166, 162, 163, 164, 165, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 161 }; short yypact[] = { -1000, 261,-1000, 119, 107, 114, 100,-1000, 99, 90, -29, -29, 410, 28, 341, 145, 28, 36, 416, 416, 505, 505, 153, 153, 153, 28, 28, 313, 286,-1000, -1000, 515, 515,-1000,-1000,-1000, 80,-1000,-1000,-1000, 515,-1000, 26, 77, 67,-1000,-1000,-1000, 4,-1000, 388,-1000,-1000, 515, 515, 515, 457, 24, 290,-1000, -1000, 66,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, 23,-1000, 21,-1000, 20, 63, 468, 468, 61, 58, 56, 54, 16, 515, 190, 53, 51, 49, 427, -50, -1000, 368, 28,-1000,-1000,-1000,-1000,-1000,-1000,-1000, 48, 261, 261, 575,-1000, 297, 145,-1000, 515, -29, 416, 163, 4,-1000, -26,-1000,-1000, 496,-1000,-1000, -1000, -1, 260, 145, 9, 202, 515, 515, 368, 515, 515, 515, 145,-1000,-1000, 15, 290, 303,-1000,-1000, 457,-1000,-1000, 485, 170, 427, 177, 182, 515, 153, 159, 132,-1000, 14, 303,-1000,-1000,-1000, 368,-1000, -1000,-1000, 515, 515, 515, 515, 515, 208, 197, 515, 515, 515,-1000, 47,-1000, -3, 43,-1000,-1000, -4, -8,-1000,-1000,-1000, 474,-1000,-1000,-1000, -9, 182, 303,-1000,-1000,-1000, -11, -12, -13, 42, 146,-1000, 9,-1000, -16,-1000, 5,-1000, 38,-1000,-1000, 35, 32,-1000,-1000, 31, 28, 139,-1000,-1000, 209, 209, -1000,-1000,-1000, 515, 515, 599, 592, 584, 145,-1000, -29,-1000,-1000,-1000, 4,-1000, -22, 3,-1000,-1000, -1000,-1000, 145, -23,-1000, 163, 427, -32, -50, 153, -1000, 604, 604,-1000,-1000,-1000, 158,-1000,-1000,-1000, -1000,-1000,-1000, -24,-1000 }; short yypgo[] = { 0, 0, 2, 5, 23, 9, 85, 11, 234, 248, 10, 31, 1, 231, 229, 6, 3, 7, 46, 8, 4, 18, 228, 245, 32, 241, 238, 236, 44 }; short yyr1[] = { 0, 23, 23, 25, 24, 26, 24, 24, 24, 24, 24, 24, 24, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 10, 10, 10, 9, 9, 9, 9, 9, 9, 7, 7, 7, 7, 7, 7, 8, 8, 22, 13, 13, 14, 14, 12, 12, 16, 16, 16, 16, 16, 16, 21, 21, 21, 17, 6, 6, 6, 19, 19, 19, 19, 20, 20, 15, 11, 5, 5, 18, 18, 18, 4, 4, 4, 3, 3, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 }; short yyr2[] = { 0, 0, 2, 0, 4, 0, 4, 4, 4, 2, 1, 2, 2, 6, 4, 6, 4, 4, 2, 4, 5, 6, 3, 3, 3, 3, 4, 4, 6, 4, 4, 6, 6, 4, 4, 6, 5, 3, 3, 2, 3, 3, 2, 4, 0, 1, 4, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 4, 1, 4, 2, 2, 4, 2, 2, 3, 1, 2, 1, 3, 1, 1, 1, 1, 4, 3, 4, 1, 1, 2, 1, 1, 4, 4, 5, 7, 0, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 3, 1, 3, 3, 3, 3, 3, 4, 4, 3, 3, 3 }; short yychk[] = { -1000, -23, -24, 54, 53, 55, 50, 58, -27, 2, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 56, 56, 57, 57, 58, 58, 58, -20, -11, -15, -5, 62, 43, 46, -20, -8, -6, -16, -11, -1, -19, 62, 34, 55, 10, 9, 63, 60, -18, 53, -28, 59, -9, -8, -22, -13, -14, 39, 40, -12, 41, 47, 45, 49, 44, 48, -11, -28, -28, -5, -6, -6, -18, -1, 60, -18, -12, -12, -12, -28, -28, -28, 59, -7, -6, -22, -13, -14, 39, 40, -28, -7, -25, -26, -2, -1, -2, 59, -1, 60, 59, 59, 60, -1, -19, 11, 52, 51, 10, -1, -1, -1, -5, -2, 60, -4, 7, 9, 10, 59, 60, 60, 60, 59, -10, -21, -1, 53, 54, -17, -18, 60, -10, -21, 59, 59, 59, 59, 60, 12, 59, 59, 59, -10, -1, 53, -16, -7, -28, 59, -24, -24, 58, 9, 10, 11, 12, 13, 7, 8, 6, 5, 4, 58, -5, -11, -1, -5, -20, -6, -5, -3, 36, 35, 37, 62, 51, 61, 61, -5, 60, 8, -1, -1, -7, -1, -1, -1, -5, 60, -17, -4, -4, -5, -21, -1, -10, -5, -10, -15, -1, -1, -12, -12, 44, 44, 60, -4, -7, -2, -2, -2, -2, -2, 7, 8, -2, -2, -2, 59, 61, 59, 61, 61, -19, -1, 61, -3, -4, 61, 61, 61, -28, 59, 38, 61, 60, 59, 59, 59, 59, -28, -2, -2, -11, -20, 61, 60, -11, 61, -10, -15, -16, -12, 36, 61 }; short yydef[] = { 1, -2, 2, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 44, 0, 0, 44, 44, 0, 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 3, 5, 0, 0, 9, 11, 12, 0, 87, 88, 90, 0, 91, 0, 0, 0, 61, 62, 80, 81, 82, 0, 102, 103, 0, 0, 0, 0, 83, 96, 18, 45, 0, 49, 50, 51, 52, 53, 54, 63, 64, 0, 66, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 45, 44, 55, 56, 57, 58, 59, 60, 42, 0, 0, 0, 0, 108, 0, 0, 89, 0, 0, 0, 0, 70, 71, 0, 73, 74, 0, 104, 105, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 23, 0, 96, 96, 76, 78, 0, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 96, 38, 40, 41, 0, 4, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 90, 14, 0, 90, 16, 17, 0, 0, 99, 100, 101, 0, 75, 85, 107, 0, 0, 96, 97, 98, 19, 0, 0, 0, 44, 0, 77, 47, 48, 0, 26, 0, 27, 0, 29, 30, 0, 0, 33, 34, 68, 44, 0, 47, 43, 109, 110, 111, 112, 113, 0, 0, 116, 117, 118, 0, 92, 0, 86, 93, 72, 0, 84, 0, 0, 65, 67, 69, 20, 45, 0, 79, 0, 0, 0, 0, 0, 36, 114, 115, 13, 15, 94, 0, 21, 46, 28, 31, 32, 35, 0, 95 }; short yytok1[] = { 1, 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, 62, 13, 6, 0, 60, 61, 11, 9, 59, 10, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 58, 7, 57, 8, 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, 5, 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, 4, 0, 63 }; short yytok2[] = { 2, 3, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55 }; long yytok3[] = { 0 }; #define YYFLAG -1000 #define yyclearin yychar = -1 #define yyerrok yyerrflag = 0 #ifdef yydebug #include "y.debug" #else #define yydebug 0 char* yytoknames[1]; /* for debugging */ char* yystates[1]; /* for debugging */ #endif /* parser for yacc output */ int yynerrs = 0; /* number of errors */ int yyerrflag = 0; /* error recovery flag */ extern int fprint(int, char*, ...); extern int sprint(char*, char*, ...); char* yytokname(int yyc) { static char x[16]; if(yyc > 0 && yyc <= sizeof(yytoknames)/sizeof(yytoknames[0])) if(yytoknames[yyc-1]) return yytoknames[yyc-1]; sprint(x, "<%d>", yyc); return x; } char* yystatname(int yys) { static char x[16]; if(yys >= 0 && yys < sizeof(yystates)/sizeof(yystates[0])) if(yystates[yys]) return yystates[yys]; sprint(x, "<%d>\n", yys); return x; } long yylex1(void) { long yychar; long *t3p; int c; yychar = yylex(); if(yychar <= 0) { c = yytok1[0]; goto out; } if(yychar < sizeof(yytok1)/sizeof(yytok1[0])) { c = yytok1[yychar]; goto out; } if(yychar >= YYPRIVATE) if(yychar < YYPRIVATE+sizeof(yytok2)/sizeof(yytok2[0])) { c = yytok2[yychar-YYPRIVATE]; goto out; } for(t3p=yytok3;; t3p+=2) { c = t3p[0]; if(c == yychar) { c = t3p[1]; goto out; } if(c == 0) break; } c = 0; out: if(c == 0) c = yytok2[1]; /* unknown char */ if(yydebug >= 3) fprint(2, "lex %.4lux %s\n", yychar, yytokname(c)); return c; } int yyparse(void) { struct { YYSTYPE yyv; int yys; } yys[YYMAXDEPTH], *yyp, *yypt; short *yyxi; int yyj, yym, yystate, yyn, yyg; long yychar; YYSTYPE save1, save2; int save3, save4; save1 = yylval; save2 = yyval; save3 = yynerrs; save4 = yyerrflag; yystate = 0; yychar = -1; yynerrs = 0; yyerrflag = 0; yyp = &yys[-1]; goto yystack; ret0: yyn = 0; goto ret; ret1: yyn = 1; goto ret; ret: yylval = save1; yyval = save2; yynerrs = save3; yyerrflag = save4; return yyn; yystack: /* put a state and value onto the stack */ if(yydebug >= 4) fprint(2, "char %s in %s", yytokname(yychar), yystatname(yystate)); yyp++; if(yyp >= &yys[YYMAXDEPTH]) { yyerror("yacc stack overflow"); goto ret1; } yyp->yys = yystate; yyp->yyv = yyval; yynewstate: yyn = yypact[yystate]; if(yyn <= YYFLAG) goto yydefault; /* simple state */ if(yychar < 0) yychar = yylex1(); yyn += yychar; if(yyn < 0 || yyn >= YYLAST) goto yydefault; yyn = yyact[yyn]; if(yychk[yyn] == yychar) { /* valid shift */ yychar = -1; yyval = yylval; yystate = yyn; if(yyerrflag > 0) yyerrflag--; goto yystack; } yydefault: /* default state action */ yyn = yydef[yystate]; if(yyn == -2) { if(yychar < 0) yychar = yylex1(); /* look through exception table */ for(yyxi=yyexca;; yyxi+=2) if(yyxi[0] == -1 && yyxi[1] == yystate) break; for(yyxi += 2;; yyxi += 2) { yyn = yyxi[0]; if(yyn < 0 || yyn == yychar) break; } yyn = yyxi[1]; if(yyn < 0) goto ret0; } if(yyn == 0) { /* error ... attempt to resume parsing */ switch(yyerrflag) { case 0: /* brand new error */ yyerror("syntax error"); yynerrs++; if(yydebug >= 1) { fprint(2, "%s", yystatname(yystate)); fprint(2, "saw %s\n", yytokname(yychar)); } case 1: case 2: /* incompletely recovered error ... try again */ yyerrflag = 3; /* find a state where "error" is a legal shift action */ while(yyp >= yys) { yyn = yypact[yyp->yys] + YYERRCODE; if(yyn >= 0 && yyn < YYLAST) { yystate = yyact[yyn]; /* simulate a shift of "error" */ if(yychk[yystate] == YYERRCODE) goto yystack; } /* the current yyp has no shift onn "error", pop stack */ if(yydebug >= 2) fprint(2, "error recovery pops state %d, uncovers %d\n", yyp->yys, (yyp-1)->yys ); yyp--; }