/* @(#)reject.c 4.1 12/25/82 */ # include #ifdef pdp11 extern FILE *yyout, *yyin; extern int yyprevious , *yyfnd; extern char yyextra[]; extern char yytext[]; extern int yyleng; #endif extern struct {int *yyaa, *yybb; int *yystops;} *yylstate [], **yylsp, **yyolsp; yyreject () { extern FILE *yyout, *yyin; extern int yyprevious , *yyfnd; extern char yyextra[]; extern char yytext[]; extern int yyleng; for( ; yylsp < yyolsp; yylsp++) yytext[yyleng++] = yyinput(); if (*yyfnd > 0) return(yyracc(*yyfnd++)); while (yylsp-- > yylstate) { yyunput(yytext[yyleng-1]); yytext[--yyleng] = 0; if (*yylsp != 0 && (yyfnd= (*yylsp)->yystops) && *yyfnd > 0) return(yyracc(*yyfnd++)); } if (yytext[0] == 0) return(0); yyoutput(yyprevious = yyinput()); yyleng=0; return(-1); } yyracc(m) { yyolsp = yylsp; if (yyextra[m]) { while (yyback((*yylsp)->yystops, -m) != 1 && yylsp>yylstate) { yylsp--; yyunput(yytext[--yyleng]); } } yyprevious = yytext[yyleng-1]; yytext[yyleng] = 0; return(m); }