|
|
1.1 ! root 1: head 1.1; ! 2: branch ; ! 3: access ; ! 4: symbols ; ! 5: locks bin:1.1; ! 6: comment @ * @; ! 7: ! 8: ! 9: 1.1 ! 10: date 93.07.09.08.32.45; author bin; state Exp; ! 11: branches ; ! 12: next ; ! 13: ! 14: ! 15: desc ! 16: @new file from nigel for 4.2 alpha ! 17: @ ! 18: ! 19: ! 20: ! 21: 1.1 ! 22: log ! 23: @Initial revision ! 24: @ ! 25: text ! 26: @#define YYACTSH 13 ! 27: #define YYAMASK 017777 ! 28: #define YYSHIFTACT 0 ! 29: #define YYREDACT 1 ! 30: #define YYACCEPTACT 2 ! 31: #define YYERRACT 3 ! 32: #define YYGOTO 4 ! 33: #define YYPACTION 5 ! 34: #define YYEOFVAL (-1) ! 35: #define YYERRVAL (-2) ! 36: #define YYOTHERS (-1000) ! 37: ! 38: $D ! 39: ! 40: #define YYNOCHAR (-1000) ! 41: #define yyerrok yyerrflag=0 ! 42: #define yyclearin yylval=YYNOCHAR ! 43: int yystack[YYMAXDEPTH]; ! 44: YYSTYPE yyvstack[YYMAXDEPTH], *yyv; ! 45: int yychar; ! 46: ! 47: #ifdef YYDEBUG ! 48: int yydebug = 1; /* No sir, not in the BSS */ ! 49: #include <stdio.h> ! 50: #endif ! 51: ! 52: short yyerrflag; ! 53: int *yys; ! 54: ! 55: yyparse() ! 56: { ! 57: register YYSTYPE *yypvt; ! 58: int act; ! 59: register unsigned *ip, yystate; ! 60: int pno; ! 61: yystate = 0; ! 62: yychar = YYNOCHAR; ! 63: yyv = &yyvstack[-1]; ! 64: yys = &yystack[-1]; ! 65: ! 66: stack: ! 67: if( ++yys >= &yystack[YYMAXDEPTH] ) { ! 68: write(2, "Stack overflow\n", 15); ! 69: exit(1); ! 70: } ! 71: *yys = yystate; ! 72: *++yyv = yyval; ! 73: #ifdef YYDEBUG ! 74: if( yydebug ) ! 75: fprintf(stdout, "Stack state %d, char %d\n", yystate, yychar); ! 76: #endif ! 77: ! 78: read: ! 79: ip = &yyact[yypa[yystate]]; ! 80: if( ip[1] != YYNOCHAR ) { ! 81: if( yychar == YYNOCHAR ) { ! 82: yychar = yylex(); ! 83: #ifdef YYDEBUG ! 84: if( yydebug ) ! 85: fprintf(stdout, "lex read char %d, val %d\n", yychar, yylval); ! 86: #endif ! 87: } ! 88: while (ip[1]!=YYNOCHAR) { ! 89: if (ip[1]==yychar) ! 90: break; ! 91: ip += 2; ! 92: } ! 93: } ! 94: act = ip[0]; ! 95: switch( act>>YYACTSH ) { ! 96: case YYSHIFTACT: ! 97: if( ip[1]==YYNOCHAR ) ! 98: goto YYerract; ! 99: if( yychar != -1 ) ! 100: yychar = YYNOCHAR; /* dont throw away EOF */ ! 101: yystate = act&YYAMASK; ! 102: yyval = yylval; ! 103: #ifdef YYDEBUG ! 104: if( yydebug ) ! 105: fprintf(stdout, "shift %d\n", yystate); ! 106: #endif ! 107: if( yyerrflag ) ! 108: --yyerrflag; ! 109: goto stack; ! 110: ! 111: case YYACCEPTACT: ! 112: #ifdef YYDEBUG ! 113: if( yydebug ) ! 114: fprintf(stdout, "accept\n"); ! 115: #endif ! 116: return(0); ! 117: ! 118: case YYERRACT: ! 119: YYerract: ! 120: switch (yyerrflag) { ! 121: case 0: ! 122: yyerror("Syntax error"); ! 123: ! 124: case 1: ! 125: case 2: ! 126: ! 127: yyerrflag = 3; ! 128: while( yys >= & yystack[0] ) { ! 129: ip = &yyact[yypa[*yys]]; ! 130: while( ip[1]!=YYNOCHAR ) ! 131: ip += 2; ! 132: if( (*ip&~YYAMASK) == (YYSHIFTACT<<YYACTSH) ) { ! 133: yystate = *ip&YYAMASK; ! 134: goto stack; ! 135: } ! 136: #ifdef YYDEBUG ! 137: if( yydebug ) ! 138: fprintf(stderr, "error recovery leaves state %d, uncovers %d\n", *yys, yys[-1]); ! 139: #endif ! 140: yys--; ! 141: yyv--; ! 142: } ! 143: #ifdef YYDEBUG ! 144: if( yydebug ) ! 145: fprintf(stderr, "no shift on error; abort\n"); ! 146: #endif ! 147: return(1); ! 148: ! 149: case 3: ! 150: #ifdef YYDEBUG ! 151: if( yydebug ) ! 152: fprintf(stderr, "Error recovery clobbers char %o\n", yychar); ! 153: #endif ! 154: if( yychar==YYEOFVAL ) ! 155: return(1); ! 156: yychar = YYNOCHAR; ! 157: goto read; ! 158: } ! 159: ! 160: case YYREDACT: ! 161: pno = act&YYAMASK; ! 162: #ifdef YYDEBUG ! 163: if( yydebug ) ! 164: fprintf(stdout, "reduce %d\n", pno); ! 165: #endif ! 166: yypvt = yyv; ! 167: yyv -= yypn[pno]; ! 168: yys -= yypn[pno]; ! 169: yyval = yyv[1]; ! 170: switch(pno) { ! 171: $A ! 172: } ! 173: ip = &yygo[ yypgo[yypdnt[pno]] ]; ! 174: while( *ip!=*yys && *ip!=YYNOCHAR ) ! 175: ip += 2; ! 176: yystate = ip[1]; ! 177: goto stack; ! 178: } ! 179: } ! 180: ! 181: ! 182: ! 183: ! 184: @
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.