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