|
|
1.1 ! root 1: ! 2: # line 3 "r.g" ! 3: extern int transfer; ! 4: extern int indent; ! 5: # define IF 257 ! 6: # define ELSE 258 ! 7: # define FOR 259 ! 8: # define WHILE 260 ! 9: # define BREAK 261 ! 10: # define NEXT 262 ! 11: # define DIGITS 263 ! 12: # define DO 264 ! 13: # define GOK 265 ! 14: # define DEFINE 266 ! 15: # define INCLUDE 267 ! 16: # define REPEAT 268 ! 17: # define UNTIL 269 ! 18: # define RETURN 270 ! 19: # define SWITCH 271 ! 20: # define CASE 272 ! 21: # define DEFAULT 273 ! 22: #define yyclearin yychar = -1 ! 23: #define yyerrok yyerrflag = 0 ! 24: extern int yychar; ! 25: extern short yyerrflag; ! 26: #ifndef YYMAXDEPTH ! 27: #define YYMAXDEPTH 150 ! 28: #endif ! 29: #ifndef YYSTYPE ! 30: #define YYSTYPE int ! 31: #endif ! 32: YYSTYPE yylval, yyval; ! 33: # define YYERRCODE 256 ! 34: ! 35: # line 67 "r.g" ! 36: ! 37: short yyexca[] ={ ! 38: -1, 1, ! 39: 0, -1, ! 40: -2, 0, ! 41: }; ! 42: # define YYNPROD 36 ! 43: # define YYLAST 229 ! 44: short yyact[]={ ! 45: ! 46: 14, 32, 45, 32, 47, 40, 41, 39, 1, 30, ! 47: 2, 31, 44, 42, 26, 27, 14, 33, 34, 35, ! 48: 29, 19, 36, 16, 37, 11, 8, 38, 7, 6, ! 49: 28, 5, 4, 3, 0, 0, 0, 0, 0, 43, ! 50: 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 51: 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, ! 52: 0, 0, 0, 0, 15, 0, 48, 0, 0, 0, ! 53: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 54: 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 55: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 56: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 57: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 58: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 59: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 60: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 61: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 62: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 63: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 64: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 65: 0, 0, 0, 0, 0, 0, 0, 17, 18, 0, ! 66: 21, 20, 9, 10, 24, 23, 12, 0, 0, 22, ! 67: 0, 13, 25, 17, 18, 0, 21, 20, 9, 10, ! 68: 24, 23, 12, 0, 0, 22, 0, 13, 25 }; ! 69: short yypact[]={ ! 70: ! 71: -1000, -43,-1000, -43, -43,-269, -43, -43, -43,-1000, ! 72: -1000, -43,-1000,-1000,-1000,-1000, -43,-1000,-1000,-116, ! 73: -1000,-1000,-1000,-1000,-1000,-1000,-253,-1000,-119,-271, ! 74: -1000,-1000,-1000,-1000,-1000,-265,-1000, -59,-1000,-1000, ! 75: -1000,-1000,-1000,-1000,-1000,-1000, -43,-1000,-1000, -43 }; ! 76: short yypgo[]={ ! 77: ! 78: 0, 8, 10, 33, 32, 31, 30, 29, 28, 26, ! 79: 25, 23, 21, 20, 13, 9, 12, 11 }; ! 80: short yyr1[]={ ! 81: ! 82: 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, ! 83: 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, ! 84: 12, 6, 6, 13, 13, 14, 16, 15, 17, 11, ! 85: 3, 4, 7, 8, 9, 10 }; ! 86: short yyr2[]={ ! 87: ! 88: 0, 2, 0, 2, 2, 3, 2, 2, 3, 2, ! 89: 1, 1, 2, 1, 1, 1, 3, 2, 1, 2, ! 90: 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, ! 91: 1, 3, 1, 1, 1, 1 }; ! 92: short yychk[]={ ! 93: ! 94: -1000, -1, -2, -3, -4, -5, -7, -8, -9, 261, ! 95: 262, -10, 265, 270, 59, 123, -11, 256, 257, -12, ! 96: 260, 259, 268, 264, 263, 271, -2, -2, -6, -13, ! 97: -15, -17, 272, -2, -2, -2, -2, -1, -2, 123, ! 98: 258, 125, -14, -15, -16, 273, -1, 269, 125, -1 }; ! 99: short yydef[]={ ! 100: ! 101: 2, -2, 1, 0, 0, 0, 0, 0, 0, 10, ! 102: 11, 0, 13, 14, 15, 2, 0, 18, 30, 0, ! 103: 32, 33, 34, 35, 29, 20, 3, 4, 0, 21, ! 104: 23, 2, 28, 6, 7, 9, 12, 0, 17, 19, ! 105: 31, 5, 22, 24, 2, 26, 27, 8, 16, 25 }; ! 106: #ifndef lint ! 107: static char yaccpar_sccsid[] = "@(#)yaccpar 4.1 (Berkeley) 2/11/83"; ! 108: #endif not lint ! 109: ! 110: # ! 111: # define YYFLAG -1000 ! 112: # define YYERROR goto yyerrlab ! 113: # define YYACCEPT return(0) ! 114: # define YYABORT return(1) ! 115: ! 116: /* parser for yacc output */ ! 117: ! 118: #ifdef YYDEBUG ! 119: int yydebug = 0; /* 1 for debugging */ ! 120: #endif ! 121: YYSTYPE yyv[YYMAXDEPTH]; /* where the values are stored */ ! 122: int yychar = -1; /* current input token number */ ! 123: int yynerrs = 0; /* number of errors */ ! 124: short yyerrflag = 0; /* error recovery flag */ ! 125: ! 126: yyparse() { ! 127: ! 128: short yys[YYMAXDEPTH]; ! 129: short yyj, yym; ! 130: register YYSTYPE *yypvt; ! 131: register short yystate, *yyps, yyn; ! 132: register YYSTYPE *yypv; ! 133: register short *yyxi; ! 134: ! 135: yystate = 0; ! 136: yychar = -1; ! 137: yynerrs = 0; ! 138: yyerrflag = 0; ! 139: yyps= &yys[-1]; ! 140: yypv= &yyv[-1]; ! 141: ! 142: yystack: /* put a state and value onto the stack */ ! 143: ! 144: #ifdef YYDEBUG ! 145: if( yydebug ) printf( "state %d, char 0%o\n", yystate, yychar ); ! 146: #endif ! 147: if( ++yyps> &yys[YYMAXDEPTH] ) { yyerror( "yacc stack overflow" ); return(1); } ! 148: *yyps = yystate; ! 149: ++yypv; ! 150: *yypv = yyval; ! 151: ! 152: yynewstate: ! 153: ! 154: yyn = yypact[yystate]; ! 155: ! 156: if( yyn<= YYFLAG ) goto yydefault; /* simple state */ ! 157: ! 158: if( yychar<0 ) if( (yychar=yylex())<0 ) yychar=0; ! 159: if( (yyn += yychar)<0 || yyn >= YYLAST ) goto yydefault; ! 160: ! 161: if( yychk[ yyn=yyact[ yyn ] ] == yychar ){ /* valid shift */ ! 162: yychar = -1; ! 163: yyval = yylval; ! 164: yystate = yyn; ! 165: if( yyerrflag > 0 ) --yyerrflag; ! 166: goto yystack; ! 167: } ! 168: ! 169: yydefault: ! 170: /* default state action */ ! 171: ! 172: if( (yyn=yydef[yystate]) == -2 ) { ! 173: if( yychar<0 ) if( (yychar=yylex())<0 ) yychar = 0; ! 174: /* look through exception table */ ! 175: ! 176: for( yyxi=yyexca; (*yyxi!= (-1)) || (yyxi[1]!=yystate) ; yyxi += 2 ) ; /* VOID */ ! 177: ! 178: while( *(yyxi+=2) >= 0 ){ ! 179: if( *yyxi == yychar ) break; ! 180: } ! 181: if( (yyn = yyxi[1]) < 0 ) return(0); /* accept */ ! 182: } ! 183: ! 184: if( yyn == 0 ){ /* error */ ! 185: /* error ... attempt to resume parsing */ ! 186: ! 187: switch( yyerrflag ){ ! 188: ! 189: case 0: /* brand new error */ ! 190: ! 191: yyerror( "syntax error" ); ! 192: yyerrlab: ! 193: ++yynerrs; ! 194: ! 195: case 1: ! 196: case 2: /* incompletely recovered error ... try again */ ! 197: ! 198: yyerrflag = 3; ! 199: ! 200: /* find a state where "error" is a legal shift action */ ! 201: ! 202: while ( yyps >= yys ) { ! 203: yyn = yypact[*yyps] + YYERRCODE; ! 204: if( yyn>= 0 && yyn < YYLAST && yychk[yyact[yyn]] == YYERRCODE ){ ! 205: yystate = yyact[yyn]; /* simulate a shift of "error" */ ! 206: goto yystack; ! 207: } ! 208: yyn = yypact[*yyps]; ! 209: ! 210: /* the current yyps has no shift onn "error", pop stack */ ! 211: ! 212: #ifdef YYDEBUG ! 213: if( yydebug ) printf( "error recovery pops state %d, uncovers %d\n", *yyps, yyps[-1] ); ! 214: #endif ! 215: --yyps; ! 216: --yypv; ! 217: } ! 218: ! 219: /* there is no state on the stack with an error shift ... abort */ ! 220: ! 221: yyabort: ! 222: return(1); ! 223: ! 224: ! 225: case 3: /* no shift yet; clobber input char */ ! 226: ! 227: #ifdef YYDEBUG ! 228: if( yydebug ) printf( "error recovery discards char %d\n", yychar ); ! 229: #endif ! 230: ! 231: if( yychar == 0 ) goto yyabort; /* don't discard EOF, quit */ ! 232: yychar = -1; ! 233: goto yynewstate; /* try again in the same state */ ! 234: ! 235: } ! 236: ! 237: } ! 238: ! 239: /* reduction by production yyn */ ! 240: ! 241: #ifdef YYDEBUG ! 242: if( yydebug ) printf("reduce %d\n",yyn); ! 243: #endif ! 244: yyps -= yyr2[yyn]; ! 245: yypvt = yypv; ! 246: yypv -= yyr2[yyn]; ! 247: yyval = yypv[1]; ! 248: yym=yyn; ! 249: /* consult goto table to find next state */ ! 250: yyn = yyr1[yyn]; ! 251: yyj = yypgo[yyn] + *yyps + 1; ! 252: if( yyj>=YYLAST || yychk[ yystate = yyact[yyj] ] != -yyn ) yystate = yyact[yypgo[yyn]]; ! 253: switch(yym){ ! 254: ! 255: case 3: ! 256: # line 18 "r.g" ! 257: { indent--; outcont(yypvt[-1]); } break; ! 258: case 4: ! 259: # line 19 "r.g" ! 260: { indent--; outcont(yypvt[-1]+1); } break; ! 261: case 5: ! 262: # line 20 "r.g" ! 263: { endsw(yypvt[-2], yypvt[-1]); } break; ! 264: case 6: ! 265: # line 21 "r.g" ! 266: { whilestat(yypvt[-1]); } break; ! 267: case 7: ! 268: # line 22 "r.g" ! 269: { forstat(yypvt[-1]); } break; ! 270: case 8: ! 271: # line 23 "r.g" ! 272: { untils(yypvt[-2],1); } break; ! 273: case 9: ! 274: # line 24 "r.g" ! 275: { untils(yypvt[-1],0); } break; ! 276: case 10: ! 277: # line 25 "r.g" ! 278: { breakcode(); } break; ! 279: case 11: ! 280: # line 26 "r.g" ! 281: { nextcode(); } break; ! 282: case 12: ! 283: # line 27 "r.g" ! 284: { dostat(yypvt[-1]); } break; ! 285: case 13: ! 286: # line 28 "r.g" ! 287: { gokcode(yypvt[-0]); } break; ! 288: case 14: ! 289: # line 29 "r.g" ! 290: { retcode(); } break; ! 291: case 18: ! 292: # line 33 "r.g" ! 293: { errcode(); yyclearin; } break; ! 294: case 20: ! 295: # line 37 "r.g" ! 296: { swcode(); } break; ! 297: case 21: ! 298: # line 39 "r.g" ! 299: { yyval = 0; } break; ! 300: case 22: ! 301: # line 40 "r.g" ! 302: { yyval = 1; } break; ! 303: case 26: ! 304: # line 47 "r.g" ! 305: { getdefault(); } break; ! 306: case 28: ! 307: # line 51 "r.g" ! 308: { getcase(); } break; ! 309: case 29: ! 310: # line 53 "r.g" ! 311: { transfer = 0; outcode(yypvt[-0]); } break; ! 312: case 30: ! 313: # line 55 "r.g" ! 314: { ifcode(); } break; ! 315: case 31: ! 316: # line 57 "r.g" ! 317: { elsecode(yypvt[-2]); } break; ! 318: case 32: ! 319: # line 59 "r.g" ! 320: { whilecode(); } break; ! 321: case 33: ! 322: # line 61 "r.g" ! 323: { forcode(); } break; ! 324: case 34: ! 325: # line 63 "r.g" ! 326: { repcode(); } break; ! 327: case 35: ! 328: # line 65 "r.g" ! 329: { docode(); } break; ! 330: } ! 331: goto yystack; /* stack new state and value */ ! 332: ! 333: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.