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