1: /* @(#)reject.c 4.1 12/25/82 */ 2: 3: # include <stdio.h> 4: 5: #ifdef pdp11 6: extern FILE *yyout, *yyin; 7: extern int yyprevious , *yyfnd; 8: extern char yyextra[]; 9: extern char yytext[]; 10: extern int yyleng; 11: #endif 12: 13: extern struct {int *yyaa, *yybb; int *yystops;} *yylstate [], **yylsp, **yyolsp; 14: yyreject () 15: { 16: extern FILE *yyout, *yyin; 17: extern int yyprevious , *yyfnd; 18: extern char yyextra[]; 19: extern char yytext[]; 20: extern int yyleng; 21: for( ; yylsp < yyolsp; yylsp++) 22: yytext[yyleng++] = yyinput(); 23: if (*yyfnd > 0) 24: return(yyracc(*yyfnd++)); 25: while (yylsp-- > yylstate) 26: { 27: yyunput(yytext[yyleng-1]); 28: yytext[--yyleng] = 0; 29: if (*yylsp != 0 && (yyfnd= (*yylsp)->yystops) && *yyfnd > 0) 30: return(yyracc(*yyfnd++)); 31: } 32: if (yytext[0] == 0) 33: return(0); 34: yyoutput(yyprevious = yyinput()); 35: yyleng=0; 36: return(-1); 37: } 38: yyracc(m) 39: { 40: yyolsp = yylsp; 41: if (yyextra[m]) 42: { 43: while (yyback((*yylsp)->yystops, -m) != 1 && yylsp>yylstate) 44: { 45: yylsp--; 46: yyunput(yytext[--yyleng]); 47: } 48: } 49: yyprevious = yytext[yyleng-1]; 50: yytext[yyleng] = 0; 51: return(m); 52: }