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