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