tools/llvm: Do not build with symbols
[minix3.git] / external / bsd / byacc / dist / test / pure_error.tab.c
blob79d8d8bee27732e239161b5349abcf89f674ea98
1 /* $NetBSD: pure_error.tab.c,v 1.1.1.4 2013/04/06 14:45:27 christos Exp $ */
3 #ifndef lint
4 static const char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93";
5 #endif
7 #define YYBYACC 1
8 #define YYMAJOR 1
9 #define YYMINOR 9
11 #define YYEMPTY (-1)
12 #define yyclearin (yychar = YYEMPTY)
13 #define yyerrok (yyerrflag = 0)
14 #define YYRECOVERING() (yyerrflag != 0)
17 #ifndef yyparse
18 #define yyparse error_parse
19 #endif /* yyparse */
21 #ifndef yylex
22 #define yylex error_lex
23 #endif /* yylex */
25 #ifndef yyerror
26 #define yyerror error_error
27 #endif /* yyerror */
29 #ifndef yychar
30 #define yychar error_char
31 #endif /* yychar */
33 #ifndef yyval
34 #define yyval error_val
35 #endif /* yyval */
37 #ifndef yylval
38 #define yylval error_lval
39 #endif /* yylval */
41 #ifndef yydebug
42 #define yydebug error_debug
43 #endif /* yydebug */
45 #ifndef yynerrs
46 #define yynerrs error_nerrs
47 #endif /* yynerrs */
49 #ifndef yyerrflag
50 #define yyerrflag error_errflag
51 #endif /* yyerrflag */
53 #ifndef yylhs
54 #define yylhs error_lhs
55 #endif /* yylhs */
57 #ifndef yylen
58 #define yylen error_len
59 #endif /* yylen */
61 #ifndef yydefred
62 #define yydefred error_defred
63 #endif /* yydefred */
65 #ifndef yydgoto
66 #define yydgoto error_dgoto
67 #endif /* yydgoto */
69 #ifndef yysindex
70 #define yysindex error_sindex
71 #endif /* yysindex */
73 #ifndef yyrindex
74 #define yyrindex error_rindex
75 #endif /* yyrindex */
77 #ifndef yygindex
78 #define yygindex error_gindex
79 #endif /* yygindex */
81 #ifndef yytable
82 #define yytable error_table
83 #endif /* yytable */
85 #ifndef yycheck
86 #define yycheck error_check
87 #endif /* yycheck */
89 #ifndef yyname
90 #define yyname error_name
91 #endif /* yyname */
93 #ifndef yyrule
94 #define yyrule error_rule
95 #endif /* yyrule */
96 #define YYPREFIX "error_"
98 #define YYPURE 1
100 #line 2 "pure_error.y"
102 #ifdef YYBISON
103 #define YYSTYPE int
104 #define YYLEX_PARAM &yylval
105 #define YYLEX_DECL() yylex(YYSTYPE *yylval)
106 #define YYERROR_DECL() yyerror(const char *s)
107 int YYLEX_DECL();
108 static void YYERROR_DECL();
109 #endif
111 #line 110 "pure_error.tab.c"
113 #ifndef YYSTYPE
114 typedef int YYSTYPE;
115 #endif
117 /* compatibility with bison */
118 #ifdef YYPARSE_PARAM
119 /* compatibility with FreeBSD */
120 # ifdef YYPARSE_PARAM_TYPE
121 # define YYPARSE_DECL() yyparse(YYPARSE_PARAM_TYPE YYPARSE_PARAM)
122 # else
123 # define YYPARSE_DECL() yyparse(void *YYPARSE_PARAM)
124 # endif
125 #else
126 # define YYPARSE_DECL() yyparse(void)
127 #endif
129 /* Parameters sent to lex. */
130 #ifdef YYLEX_PARAM
131 # ifdef YYLEX_PARAM_TYPE
132 # define YYLEX_DECL() yylex(YYSTYPE *yylval, YYLEX_PARAM_TYPE YYLEX_PARAM)
133 # else
134 # define YYLEX_DECL() yylex(YYSTYPE *yylval, void * YYLEX_PARAM)
135 # endif
136 # define YYLEX yylex(&yylval, YYLEX_PARAM)
137 #else
138 # define YYLEX_DECL() yylex(YYSTYPE *yylval)
139 # define YYLEX yylex(&yylval)
140 #endif
142 /* Parameters sent to yyerror. */
143 #ifndef YYERROR_DECL
144 #define YYERROR_DECL() yyerror(const char *s)
145 #endif
146 #ifndef YYERROR_CALL
147 #define YYERROR_CALL(msg) yyerror(msg)
148 #endif
150 extern int YYPARSE_DECL();
152 #define YYERRCODE 256
153 static const short error_lhs[] = { -1,
156 static const short error_len[] = { 2,
159 static const short error_defred[] = { 0,
160 1, 0,
162 static const short error_dgoto[] = { 2,
164 static const short error_sindex[] = { -256,
165 0, 0,
167 static const short error_rindex[] = { 0,
168 0, 0,
170 static const short error_gindex[] = { 0,
172 #define YYTABLESIZE 0
173 static const short error_table[] = { 1,
175 static const short error_check[] = { 256,
177 #define YYFINAL 2
178 #ifndef YYDEBUG
179 #define YYDEBUG 0
180 #endif
181 #define YYMAXTOKEN 0
182 #if YYDEBUG
183 static const char *yyname[] = {
185 "end-of-file",
187 static const char *yyrule[] = {
188 "$accept : S",
189 "S : error",
192 #endif
194 int yydebug;
195 int yynerrs;
197 /* define the initial stack-sizes */
198 #ifdef YYSTACKSIZE
199 #undef YYMAXDEPTH
200 #define YYMAXDEPTH YYSTACKSIZE
201 #else
202 #ifdef YYMAXDEPTH
203 #define YYSTACKSIZE YYMAXDEPTH
204 #else
205 #define YYSTACKSIZE 500
206 #define YYMAXDEPTH 500
207 #endif
208 #endif
210 #define YYINITSTACKSIZE 500
212 typedef struct {
213 unsigned stacksize;
214 short *s_base;
215 short *s_mark;
216 short *s_last;
217 YYSTYPE *l_base;
218 YYSTYPE *l_mark;
219 } YYSTACKDATA;
220 #line 17 "pure_error.y"
222 #include <stdio.h>
224 #ifdef YYBYACC
225 extern int YYLEX_DECL();
226 #endif
229 main(void)
231 printf("yyparse() = %d\n", yyparse());
232 return 0;
236 yylex(YYSTYPE *value)
238 return value ? 0 : -1;
241 static void
242 yyerror(const char* s)
244 printf("%s\n", s);
246 #line 245 "pure_error.tab.c"
248 #if YYDEBUG
249 #include <stdio.h> /* needed for printf */
250 #endif
252 #include <stdlib.h> /* needed for malloc, etc */
253 #include <string.h> /* needed for memset */
255 /* allocate initial stack or double stack size, up to YYMAXDEPTH */
256 static int yygrowstack(YYSTACKDATA *data)
258 int i;
259 unsigned newsize;
260 short *newss;
261 YYSTYPE *newvs;
263 if ((newsize = data->stacksize) == 0)
264 newsize = YYINITSTACKSIZE;
265 else if (newsize >= YYMAXDEPTH)
266 return -1;
267 else if ((newsize *= 2) > YYMAXDEPTH)
268 newsize = YYMAXDEPTH;
270 i = (int) (data->s_mark - data->s_base);
271 newss = (short *)realloc(data->s_base, newsize * sizeof(*newss));
272 if (newss == 0)
273 return -1;
275 data->s_base = newss;
276 data->s_mark = newss + i;
278 newvs = (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs));
279 if (newvs == 0)
280 return -1;
282 data->l_base = newvs;
283 data->l_mark = newvs + i;
285 data->stacksize = newsize;
286 data->s_last = data->s_base + newsize - 1;
287 return 0;
290 #if YYPURE || defined(YY_NO_LEAKS)
291 static void yyfreestack(YYSTACKDATA *data)
293 free(data->s_base);
294 free(data->l_base);
295 memset(data, 0, sizeof(*data));
297 #else
298 #define yyfreestack(data) /* nothing */
299 #endif
301 #define YYABORT goto yyabort
302 #define YYREJECT goto yyabort
303 #define YYACCEPT goto yyaccept
304 #define YYERROR goto yyerrlab
307 YYPARSE_DECL()
309 int yyerrflag;
310 int yychar;
311 YYSTYPE yyval;
312 YYSTYPE yylval;
314 /* variables for the parser stack */
315 YYSTACKDATA yystack;
316 int yym, yyn, yystate;
317 #if YYDEBUG
318 const char *yys;
320 if ((yys = getenv("YYDEBUG")) != 0)
322 yyn = *yys;
323 if (yyn >= '0' && yyn <= '9')
324 yydebug = yyn - '0';
326 #endif
328 yynerrs = 0;
329 yyerrflag = 0;
330 yychar = YYEMPTY;
331 yystate = 0;
333 #if YYPURE
334 memset(&yystack, 0, sizeof(yystack));
335 #endif
337 if (yystack.s_base == NULL && yygrowstack(&yystack)) goto yyoverflow;
338 yystack.s_mark = yystack.s_base;
339 yystack.l_mark = yystack.l_base;
340 yystate = 0;
341 *yystack.s_mark = 0;
343 yyloop:
344 if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
345 if (yychar < 0)
347 if ((yychar = YYLEX) < 0) yychar = 0;
348 #if YYDEBUG
349 if (yydebug)
351 yys = 0;
352 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
353 if (!yys) yys = "illegal-symbol";
354 printf("%sdebug: state %d, reading %d (%s)\n",
355 YYPREFIX, yystate, yychar, yys);
357 #endif
359 if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
360 yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
362 #if YYDEBUG
363 if (yydebug)
364 printf("%sdebug: state %d, shifting to state %d\n",
365 YYPREFIX, yystate, yytable[yyn]);
366 #endif
367 if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack))
369 goto yyoverflow;
371 yystate = yytable[yyn];
372 *++yystack.s_mark = yytable[yyn];
373 *++yystack.l_mark = yylval;
374 yychar = YYEMPTY;
375 if (yyerrflag > 0) --yyerrflag;
376 goto yyloop;
378 if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
379 yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
381 yyn = yytable[yyn];
382 goto yyreduce;
384 if (yyerrflag) goto yyinrecovery;
386 yyerror("syntax error");
388 goto yyerrlab;
390 yyerrlab:
391 ++yynerrs;
393 yyinrecovery:
394 if (yyerrflag < 3)
396 yyerrflag = 3;
397 for (;;)
399 if ((yyn = yysindex[*yystack.s_mark]) && (yyn += YYERRCODE) >= 0 &&
400 yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
402 #if YYDEBUG
403 if (yydebug)
404 printf("%sdebug: state %d, error recovery shifting\
405 to state %d\n", YYPREFIX, *yystack.s_mark, yytable[yyn]);
406 #endif
407 if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack))
409 goto yyoverflow;
411 yystate = yytable[yyn];
412 *++yystack.s_mark = yytable[yyn];
413 *++yystack.l_mark = yylval;
414 goto yyloop;
416 else
418 #if YYDEBUG
419 if (yydebug)
420 printf("%sdebug: error recovery discarding state %d\n",
421 YYPREFIX, *yystack.s_mark);
422 #endif
423 if (yystack.s_mark <= yystack.s_base) goto yyabort;
424 --yystack.s_mark;
425 --yystack.l_mark;
429 else
431 if (yychar == 0) goto yyabort;
432 #if YYDEBUG
433 if (yydebug)
435 yys = 0;
436 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
437 if (!yys) yys = "illegal-symbol";
438 printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
439 YYPREFIX, yystate, yychar, yys);
441 #endif
442 yychar = YYEMPTY;
443 goto yyloop;
446 yyreduce:
447 #if YYDEBUG
448 if (yydebug)
449 printf("%sdebug: state %d, reducing by rule %d (%s)\n",
450 YYPREFIX, yystate, yyn, yyrule[yyn]);
451 #endif
452 yym = yylen[yyn];
453 if (yym)
454 yyval = yystack.l_mark[1-yym];
455 else
456 memset(&yyval, 0, sizeof yyval);
457 switch (yyn)
460 yystack.s_mark -= yym;
461 yystate = *yystack.s_mark;
462 yystack.l_mark -= yym;
463 yym = yylhs[yyn];
464 if (yystate == 0 && yym == 0)
466 #if YYDEBUG
467 if (yydebug)
468 printf("%sdebug: after reduction, shifting from state 0 to\
469 state %d\n", YYPREFIX, YYFINAL);
470 #endif
471 yystate = YYFINAL;
472 *++yystack.s_mark = YYFINAL;
473 *++yystack.l_mark = yyval;
474 if (yychar < 0)
476 if ((yychar = YYLEX) < 0) yychar = 0;
477 #if YYDEBUG
478 if (yydebug)
480 yys = 0;
481 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
482 if (!yys) yys = "illegal-symbol";
483 printf("%sdebug: state %d, reading %d (%s)\n",
484 YYPREFIX, YYFINAL, yychar, yys);
486 #endif
488 if (yychar == 0) goto yyaccept;
489 goto yyloop;
491 if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
492 yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
493 yystate = yytable[yyn];
494 else
495 yystate = yydgoto[yym];
496 #if YYDEBUG
497 if (yydebug)
498 printf("%sdebug: after reduction, shifting from state %d \
499 to state %d\n", YYPREFIX, *yystack.s_mark, yystate);
500 #endif
501 if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack))
503 goto yyoverflow;
505 *++yystack.s_mark = (short) yystate;
506 *++yystack.l_mark = yyval;
507 goto yyloop;
509 yyoverflow:
510 yyerror("yacc stack overflow");
512 yyabort:
513 yyfreestack(&yystack);
514 return (1);
516 yyaccept:
517 yyfreestack(&yystack);
518 return (0);