xref: /original-bsd/usr.bin/yacc/test/error.tab.c (revision ec356984)
1 #ifndef lint
2 static 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
12 short yylhs[] = {                                        -1,
13     0,
14 };
15 short yylen[] = {                                         2,
16     1,
17 };
18 short yydefred[] = {                                      0,
19     1,    0,
20 };
21 short yydgoto[] = {                                       2,
22 };
23 short yysindex[] = {                                   -256,
24     0,    0,
25 };
26 short yyrindex[] = {                                      0,
27     0,    0,
28 };
29 short yygindex[] = {                                      0,
30 };
31 #define YYTABLESIZE 0
32 short yytable[] = {                                       1,
33 };
34 short yycheck[] = {                                     256,
35 };
36 #define YYFINAL 2
37 #ifndef YYDEBUG
38 #define YYDEBUG 0
39 #endif
40 #define YYMAXTOKEN 0
41 #if YYDEBUG
42 char *yyname[] = {
43 "end-of-file",
44 };
45 char *yyrule[] = {
46 "$accept : S",
47 "S : error",
48 };
49 #endif
50 #ifndef YYSTYPE
51 typedef 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
64 int yydebug;
65 int yynerrs;
66 int yyerrflag;
67 int yychar;
68 short *yyssp;
69 YYSTYPE *yyvsp;
70 YYSTYPE yyval;
71 YYSTYPE yylval;
72 short yyss[YYSTACKSIZE];
73 YYSTYPE yyvs[YYSTACKSIZE];
74 #define yystacksize YYSTACKSIZE
75 #line 4 "error.y"
main()76 main(){printf("yyparse() = %d\n",yyparse());}
yylex()77 yylex(){return-1;}
yyerror(s)78 yyerror(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
84 int
yyparse()85 yyparse()
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 
108 yyloop:
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
152 yynewerror:
153     yyerror("syntax error");
154 #ifdef lint
155     goto yyerrlab;
156 #endif
157 yyerrlab:
158     ++yynerrs;
159 yyinrecovery:
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     }
210 yyreduce:
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 \
260 to 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;
269 yyoverflow:
270     yyerror("yacc stack overflow");
271 yyabort:
272     return (1);
273 yyaccept:
274     return (0);
275 }
276