error.tab.c revision 1590
1#ifndef lint
2static char yysccsid[] = "@(#)yaccpar	1.9 (Berkeley) 02/21/93";
3#endif
4#define YYBYACC 1
5#define YYMAJOR 1
6#define YYMINOR 9
7#define yyclearin (yychar=(-1))
8#define yyerrok (yyerrflag=0)
9#define YYRECOVERING (yyerrflag!=0)
10#define YYPREFIX "yy"
11#define YYERRCODE 256
12short yylhs[] = {                                        -1,
13    0,
14};
15short yylen[] = {                                         2,
16    1,
17};
18short yydefred[] = {                                      0,
19    1,    0,
20};
21short yydgoto[] = {                                       2,
22};
23short yysindex[] = {                                   -256,
24    0,    0,
25};
26short yyrindex[] = {                                      0,
27    0,    0,
28};
29short yygindex[] = {                                      0,
30};
31#define YYTABLESIZE 0
32short yytable[] = {                                       1,
33};
34short yycheck[] = {                                     256,
35};
36#define YYFINAL 2
37#ifndef YYDEBUG
38#define YYDEBUG 0
39#endif
40#define YYMAXTOKEN 0
41#if YYDEBUG
42char *yyname[] = {
43"end-of-file",
44};
45char *yyrule[] = {
46"$accept : S",
47"S : error",
48};
49#endif
50#ifndef YYSTYPE
51typedef int YYSTYPE;
52#endif
53#ifdef YYSTACKSIZE
54#undef YYMAXDEPTH
55#define YYMAXDEPTH YYSTACKSIZE
56#else
57#ifdef YYMAXDEPTH
58#define YYSTACKSIZE YYMAXDEPTH
59#else
60#define YYSTACKSIZE 500
61#define YYMAXDEPTH 500
62#endif
63#endif
64int yydebug;
65int yynerrs;
66int yyerrflag;
67int yychar;
68short *yyssp;
69YYSTYPE *yyvsp;
70YYSTYPE yyval;
71YYSTYPE yylval;
72short yyss[YYSTACKSIZE];
73YYSTYPE yyvs[YYSTACKSIZE];
74#define yystacksize YYSTACKSIZE
75#line 4 "error.y"
76main(){printf("yyparse() = %d\n",yyparse());}
77yylex(){return-1;}
78yyerror(s)char*s;{printf("%s\n",s);}
79#line 80 "error.tab.c"
80#define YYABORT goto yyabort
81#define YYREJECT goto yyabort
82#define YYACCEPT goto yyaccept
83#define YYERROR goto yyerrlab
84int
85yyparse()
86{
87    register int yym, yyn, yystate;
88#if YYDEBUG
89    register char *yys;
90    extern char *getenv();
91
92    if (yys = getenv("YYDEBUG"))
93    {
94        yyn = *yys;
95        if (yyn >= '0' && yyn <= '9')
96            yydebug = yyn - '0';
97    }
98#endif
99
100    yynerrs = 0;
101    yyerrflag = 0;
102    yychar = (-1);
103
104    yyssp = yyss;
105    yyvsp = yyvs;
106    *yyssp = yystate = 0;
107
108yyloop:
109    if (yyn = yydefred[yystate]) goto yyreduce;
110    if (yychar < 0)
111    {
112        if ((yychar = yylex()) < 0) yychar = 0;
113#if YYDEBUG
114        if (yydebug)
115        {
116            yys = 0;
117            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
118            if (!yys) yys = "illegal-symbol";
119            printf("%sdebug: state %d, reading %d (%s)\n",
120                    YYPREFIX, yystate, yychar, yys);
121        }
122#endif
123    }
124    if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
125            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
126    {
127#if YYDEBUG
128        if (yydebug)
129            printf("%sdebug: state %d, shifting to state %d\n",
130                    YYPREFIX, yystate, yytable[yyn]);
131#endif
132        if (yyssp >= yyss + yystacksize - 1)
133        {
134            goto yyoverflow;
135        }
136        *++yyssp = yystate = yytable[yyn];
137        *++yyvsp = yylval;
138        yychar = (-1);
139        if (yyerrflag > 0)  --yyerrflag;
140        goto yyloop;
141    }
142    if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
143            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
144    {
145        yyn = yytable[yyn];
146        goto yyreduce;
147    }
148    if (yyerrflag) goto yyinrecovery;
149#ifdef lint
150    goto yynewerror;
151#endif
152yynewerror:
153    yyerror("syntax error");
154#ifdef lint
155    goto yyerrlab;
156#endif
157yyerrlab:
158    ++yynerrs;
159yyinrecovery:
160    if (yyerrflag < 3)
161    {
162        yyerrflag = 3;
163        for (;;)
164        {
165            if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
166                    yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
167            {
168#if YYDEBUG
169                if (yydebug)
170                    printf("%sdebug: state %d, error recovery shifting\
171 to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
172#endif
173                if (yyssp >= yyss + yystacksize - 1)
174                {
175                    goto yyoverflow;
176                }
177                *++yyssp = yystate = yytable[yyn];
178                *++yyvsp = yylval;
179                goto yyloop;
180            }
181            else
182            {
183#if YYDEBUG
184                if (yydebug)
185                    printf("%sdebug: error recovery discarding state %d\n",
186                            YYPREFIX, *yyssp);
187#endif
188                if (yyssp <= yyss) goto yyabort;
189                --yyssp;
190                --yyvsp;
191            }
192        }
193    }
194    else
195    {
196        if (yychar == 0) goto yyabort;
197#if YYDEBUG
198        if (yydebug)
199        {
200            yys = 0;
201            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
202            if (!yys) yys = "illegal-symbol";
203            printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
204                    YYPREFIX, yystate, yychar, yys);
205        }
206#endif
207        yychar = (-1);
208        goto yyloop;
209    }
210yyreduce:
211#if YYDEBUG
212    if (yydebug)
213        printf("%sdebug: state %d, reducing by rule %d (%s)\n",
214                YYPREFIX, yystate, yyn, yyrule[yyn]);
215#endif
216    yym = yylen[yyn];
217    yyval = yyvsp[1-yym];
218    switch (yyn)
219    {
220    }
221    yyssp -= yym;
222    yystate = *yyssp;
223    yyvsp -= yym;
224    yym = yylhs[yyn];
225    if (yystate == 0 && yym == 0)
226    {
227#if YYDEBUG
228        if (yydebug)
229            printf("%sdebug: after reduction, shifting from state 0 to\
230 state %d\n", YYPREFIX, YYFINAL);
231#endif
232        yystate = YYFINAL;
233        *++yyssp = YYFINAL;
234        *++yyvsp = yyval;
235        if (yychar < 0)
236        {
237            if ((yychar = yylex()) < 0) yychar = 0;
238#if YYDEBUG
239            if (yydebug)
240            {
241                yys = 0;
242                if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
243                if (!yys) yys = "illegal-symbol";
244                printf("%sdebug: state %d, reading %d (%s)\n",
245                        YYPREFIX, YYFINAL, yychar, yys);
246            }
247#endif
248        }
249        if (yychar == 0) goto yyaccept;
250        goto yyloop;
251    }
252    if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
253            yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
254        yystate = yytable[yyn];
255    else
256        yystate = yydgoto[yym];
257#if YYDEBUG
258    if (yydebug)
259        printf("%sdebug: after reduction, shifting from state %d \
260to state %d\n", YYPREFIX, *yyssp, yystate);
261#endif
262    if (yyssp >= yyss + yystacksize - 1)
263    {
264        goto yyoverflow;
265    }
266    *++yyssp = yystate;
267    *++yyvsp = yyval;
268    goto yyloop;
269yyoverflow:
270    yyerror("yacc stack overflow");
271yyabort:
272    return (1);
273yyaccept:
274    return (0);
275}
276