tools/llvm: Do not build with symbols
[minix3.git] / external / bsd / byacc / dist / test / quote_calc4-s.tab.c
blob447d1bec77dae273469d5cb533e9d9eada1c4c3c
1 /* $NetBSD: quote_calc4-s.tab.c,v 1.1.1.1 2013/04/06 14:45:30 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 quote_calc4_parse
19 #endif /* yyparse */
21 #ifndef yylex
22 #define yylex quote_calc4_lex
23 #endif /* yylex */
25 #ifndef yyerror
26 #define yyerror quote_calc4_error
27 #endif /* yyerror */
29 #ifndef yychar
30 #define yychar quote_calc4_char
31 #endif /* yychar */
33 #ifndef yyval
34 #define yyval quote_calc4_val
35 #endif /* yyval */
37 #ifndef yylval
38 #define yylval quote_calc4_lval
39 #endif /* yylval */
41 #ifndef yydebug
42 #define yydebug quote_calc4_debug
43 #endif /* yydebug */
45 #ifndef yynerrs
46 #define yynerrs quote_calc4_nerrs
47 #endif /* yynerrs */
49 #ifndef yyerrflag
50 #define yyerrflag quote_calc4_errflag
51 #endif /* yyerrflag */
53 #ifndef yylhs
54 #define yylhs quote_calc4_lhs
55 #endif /* yylhs */
57 #ifndef yylen
58 #define yylen quote_calc4_len
59 #endif /* yylen */
61 #ifndef yydefred
62 #define yydefred quote_calc4_defred
63 #endif /* yydefred */
65 #ifndef yydgoto
66 #define yydgoto quote_calc4_dgoto
67 #endif /* yydgoto */
69 #ifndef yysindex
70 #define yysindex quote_calc4_sindex
71 #endif /* yysindex */
73 #ifndef yyrindex
74 #define yyrindex quote_calc4_rindex
75 #endif /* yyrindex */
77 #ifndef yygindex
78 #define yygindex quote_calc4_gindex
79 #endif /* yygindex */
81 #ifndef yytable
82 #define yytable quote_calc4_table
83 #endif /* yytable */
85 #ifndef yycheck
86 #define yycheck quote_calc4_check
87 #endif /* yycheck */
89 #ifndef yyname
90 #define yyname quote_calc4_name
91 #endif /* yyname */
93 #ifndef yyrule
94 #define yyrule quote_calc4_rule
95 #endif /* yyrule */
96 #define YYPREFIX "quote_calc4_"
98 #define YYPURE 0
100 #line 2 "quote_calc4.y"
101 # include <stdio.h>
102 # include <ctype.h>
104 int regs[26];
105 int base;
107 int yylex(void);
108 static void yyerror(const char *s);
110 #line 109 "quote_calc4-s.tab.c"
112 #ifndef YYSTYPE
113 typedef int YYSTYPE;
114 #endif
116 /* compatibility with bison */
117 #ifdef YYPARSE_PARAM
118 /* compatibility with FreeBSD */
119 # ifdef YYPARSE_PARAM_TYPE
120 # define YYPARSE_DECL() yyparse(YYPARSE_PARAM_TYPE YYPARSE_PARAM)
121 # else
122 # define YYPARSE_DECL() yyparse(void *YYPARSE_PARAM)
123 # endif
124 #else
125 # define YYPARSE_DECL() yyparse(void)
126 #endif
128 /* Parameters sent to lex. */
129 #ifdef YYLEX_PARAM
130 # define YYLEX_DECL() yylex(void *YYLEX_PARAM)
131 # define YYLEX yylex(YYLEX_PARAM)
132 #else
133 # define YYLEX_DECL() yylex(void)
134 # define YYLEX yylex()
135 #endif
137 /* Parameters sent to yyerror. */
138 #ifndef YYERROR_DECL
139 #define YYERROR_DECL() yyerror(const char *s)
140 #endif
141 #ifndef YYERROR_CALL
142 #define YYERROR_CALL(msg) yyerror(msg)
143 #endif
145 extern int YYPARSE_DECL();
147 #define OP_ADD 257
148 #define OP_SUB 259
149 #define OP_MUL 261
150 #define OP_DIV 263
151 #define OP_MOD 265
152 #define OP_AND 267
153 #define DIGIT 269
154 #define LETTER 270
155 #define UMINUS 271
156 #define YYERRCODE 256
157 static const short quote_calc4_lhs[] = { -1,
158 0, 0, 0, 1, 1, 2, 2, 2, 2, 2,
159 2, 2, 2, 2, 2, 2, 3, 3,
161 static const short quote_calc4_len[] = { 2,
162 0, 3, 3, 1, 3, 3, 3, 3, 3, 3,
163 3, 3, 3, 2, 1, 1, 1, 2,
165 static const short quote_calc4_defred[] = { 1,
166 0, 0, 0, 17, 0, 0, 0, 0, 0, 3,
167 15, 0, 0, 0, 2, 0, 0, 0, 0, 0,
168 0, 0, 18, 0, 6, 0, 0, 0, 0, 0,
169 0, 0,
171 static const short quote_calc4_dgoto[] = { 1,
172 7, 8, 9,
174 static const short quote_calc4_sindex[] = { 0,
175 -38, 4, -36, 0, -51, -36, 6, -121, -249, 0,
176 0, -243, -36, -23, 0, -36, -36, -36, -36, -36,
177 -36, -36, 0, -121, 0, -121, -121, -121, -121, -121,
178 -121, -243,
180 static const short quote_calc4_rindex[] = { 0,
181 0, 0, 0, 0, -9, 0, 0, 12, -10, 0,
182 0, -5, 0, 0, 0, 0, 0, 0, 0, 0,
183 0, 0, 0, 14, 0, -3, -2, -1, 1, 2,
184 3, -4,
186 static const short quote_calc4_gindex[] = { 0,
187 0, 42, 0,
189 #define YYTABLESIZE 259
190 static const short quote_calc4_table[] = { 16,
191 15, 6, 22, 6, 14, 13, 7, 8, 9, 13,
192 10, 11, 12, 10, 16, 15, 17, 25, 18, 23,
193 19, 4, 20, 5, 21, 0, 0, 0, 0, 0,
194 16, 0, 0, 0, 0, 14, 13, 7, 8, 9,
195 0, 10, 11, 12, 12, 0, 0, 14, 0, 0,
196 0, 0, 0, 0, 24, 0, 0, 26, 27, 28,
197 29, 30, 31, 32, 0, 0, 0, 0, 0, 0,
198 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
199 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
200 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
201 22, 0, 0, 0, 0, 0, 0, 0, 0, 0,
202 0, 0, 0, 16, 15, 0, 0, 0, 14, 13,
203 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
204 0, 0, 0, 0, 0, 0, 16, 0, 17, 0,
205 18, 0, 19, 0, 20, 0, 21, 0, 0, 0,
206 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
207 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
208 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
209 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
210 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
211 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
212 0, 0, 0, 0, 0, 0, 0, 2, 0, 0,
213 0, 3, 0, 3, 0, 0, 0, 0, 0, 0,
214 4, 5, 4, 11, 16, 0, 17, 0, 18, 0,
215 19, 0, 20, 0, 21, 0, 0, 16, 15, 16,
216 15, 16, 15, 16, 15, 16, 15, 16, 15,
218 static const short quote_calc4_check[] = { 10,
219 10, 40, 124, 40, 10, 10, 10, 10, 10, 61,
220 10, 10, 10, 10, 258, 10, 260, 41, 262, 269,
221 264, 10, 266, 10, 268, -1, -1, -1, -1, -1,
222 41, -1, -1, -1, -1, 41, 41, 41, 41, 41,
223 -1, 41, 41, 41, 3, -1, -1, 6, -1, -1,
224 -1, -1, -1, -1, 13, -1, -1, 16, 17, 18,
225 19, 20, 21, 22, -1, -1, -1, -1, -1, -1,
226 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
227 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
228 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
229 124, -1, -1, -1, -1, -1, -1, -1, -1, -1,
230 -1, -1, -1, 124, 124, -1, -1, -1, 124, 124,
231 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
232 -1, -1, -1, -1, -1, -1, 258, -1, 260, -1,
233 262, -1, 264, -1, 266, -1, 268, -1, -1, -1,
234 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
235 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
236 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
237 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
238 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
239 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
240 -1, -1, -1, -1, -1, -1, -1, 256, -1, -1,
241 -1, 260, -1, 260, -1, -1, -1, -1, -1, -1,
242 269, 270, 269, 270, 258, -1, 260, -1, 262, -1,
243 264, -1, 266, -1, 268, -1, -1, 258, 258, 260,
244 260, 262, 262, 264, 264, 266, 266, 268, 268,
246 #define YYFINAL 1
247 #ifndef YYDEBUG
248 #define YYDEBUG 0
249 #endif
250 #define YYMAXTOKEN 271
251 #if YYDEBUG
252 static const char *yyname[] = {
254 "end-of-file",0,0,0,0,0,0,0,0,0,"'\\n'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
255 0,0,0,0,0,0,"'%'","'&'",0,"'('","')'","'*'","'+'",0,"'-'",0,"'/'",0,0,0,0,0,0,0,
256 0,0,0,0,0,0,"'='",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
257 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'|'",0,0,0,0,0,0,
258 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
259 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
260 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
261 0,0,0,0,0,0,"OP_ADD","\"ADD-operator\"","OP_SUB","\"SUB-operator\"","OP_MUL",
262 "\"MUL-operator\"","OP_DIV","\"DIV-operator\"","OP_MOD","\"MOD-operator\"",
263 "OP_AND","\"AND-operator\"","DIGIT","LETTER","UMINUS",
265 static const char *yyrule[] = {
266 "$accept : list",
267 "list :",
268 "list : list stat '\\n'",
269 "list : list error '\\n'",
270 "stat : expr",
271 "stat : LETTER '=' expr",
272 "expr : '(' expr ')'",
273 "expr : expr \"ADD-operator\" expr",
274 "expr : expr \"SUB-operator\" expr",
275 "expr : expr \"MUL-operator\" expr",
276 "expr : expr \"DIV-operator\" expr",
277 "expr : expr \"MOD-operator\" expr",
278 "expr : expr \"AND-operator\" expr",
279 "expr : expr '|' expr",
280 "expr : \"SUB-operator\" expr",
281 "expr : LETTER",
282 "expr : number",
283 "number : DIGIT",
284 "number : number DIGIT",
287 #endif
289 int yydebug;
290 int yynerrs;
292 int yyerrflag;
293 int yychar;
294 YYSTYPE yyval;
295 YYSTYPE yylval;
297 /* define the initial stack-sizes */
298 #ifdef YYSTACKSIZE
299 #undef YYMAXDEPTH
300 #define YYMAXDEPTH YYSTACKSIZE
301 #else
302 #ifdef YYMAXDEPTH
303 #define YYSTACKSIZE YYMAXDEPTH
304 #else
305 #define YYSTACKSIZE 500
306 #define YYMAXDEPTH 500
307 #endif
308 #endif
310 #define YYINITSTACKSIZE 500
312 typedef struct {
313 unsigned stacksize;
314 short *s_base;
315 short *s_mark;
316 short *s_last;
317 YYSTYPE *l_base;
318 YYSTYPE *l_mark;
319 } YYSTACKDATA;
320 /* variables for the parser stack */
321 static YYSTACKDATA yystack;
322 #line 73 "quote_calc4.y"
323 /* start of programs */
326 main (void)
328 while(!feof(stdin)) {
329 yyparse();
331 return 0;
334 static void
335 yyerror(const char *s)
337 fprintf(stderr, "%s\n", s);
341 yylex(void) {
342 /* lexical analysis routine */
343 /* returns LETTER for a lower case letter, yylval = 0 through 25 */
344 /* return DIGIT for a digit, yylval = 0 through 9 */
345 /* all other characters are returned immediately */
347 int c;
349 while( (c=getchar()) == ' ' ) { /* skip blanks */ }
351 /* c is now nonblank */
353 if( islower( c )) {
354 yylval = c - 'a';
355 return ( LETTER );
357 if( isdigit( c )) {
358 yylval = c - '0';
359 return ( DIGIT );
361 return( c );
363 #line 362 "quote_calc4-s.tab.c"
365 #if YYDEBUG
366 #include <stdio.h> /* needed for printf */
367 #endif
369 #include <stdlib.h> /* needed for malloc, etc */
370 #include <string.h> /* needed for memset */
372 /* allocate initial stack or double stack size, up to YYMAXDEPTH */
373 static int yygrowstack(YYSTACKDATA *data)
375 int i;
376 unsigned newsize;
377 short *newss;
378 YYSTYPE *newvs;
380 if ((newsize = data->stacksize) == 0)
381 newsize = YYINITSTACKSIZE;
382 else if (newsize >= YYMAXDEPTH)
383 return -1;
384 else if ((newsize *= 2) > YYMAXDEPTH)
385 newsize = YYMAXDEPTH;
387 i = (int) (data->s_mark - data->s_base);
388 newss = (short *)realloc(data->s_base, newsize * sizeof(*newss));
389 if (newss == 0)
390 return -1;
392 data->s_base = newss;
393 data->s_mark = newss + i;
395 newvs = (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs));
396 if (newvs == 0)
397 return -1;
399 data->l_base = newvs;
400 data->l_mark = newvs + i;
402 data->stacksize = newsize;
403 data->s_last = data->s_base + newsize - 1;
404 return 0;
407 #if YYPURE || defined(YY_NO_LEAKS)
408 static void yyfreestack(YYSTACKDATA *data)
410 free(data->s_base);
411 free(data->l_base);
412 memset(data, 0, sizeof(*data));
414 #else
415 #define yyfreestack(data) /* nothing */
416 #endif
418 #define YYABORT goto yyabort
419 #define YYREJECT goto yyabort
420 #define YYACCEPT goto yyaccept
421 #define YYERROR goto yyerrlab
424 YYPARSE_DECL()
426 int yym, yyn, yystate;
427 #if YYDEBUG
428 const char *yys;
430 if ((yys = getenv("YYDEBUG")) != 0)
432 yyn = *yys;
433 if (yyn >= '0' && yyn <= '9')
434 yydebug = yyn - '0';
436 #endif
438 yynerrs = 0;
439 yyerrflag = 0;
440 yychar = YYEMPTY;
441 yystate = 0;
443 #if YYPURE
444 memset(&yystack, 0, sizeof(yystack));
445 #endif
447 if (yystack.s_base == NULL && yygrowstack(&yystack)) goto yyoverflow;
448 yystack.s_mark = yystack.s_base;
449 yystack.l_mark = yystack.l_base;
450 yystate = 0;
451 *yystack.s_mark = 0;
453 yyloop:
454 if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
455 if (yychar < 0)
457 if ((yychar = YYLEX) < 0) yychar = 0;
458 #if YYDEBUG
459 if (yydebug)
461 yys = 0;
462 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
463 if (!yys) yys = "illegal-symbol";
464 printf("%sdebug: state %d, reading %d (%s)\n",
465 YYPREFIX, yystate, yychar, yys);
467 #endif
469 if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
470 yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
472 #if YYDEBUG
473 if (yydebug)
474 printf("%sdebug: state %d, shifting to state %d\n",
475 YYPREFIX, yystate, yytable[yyn]);
476 #endif
477 if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack))
479 goto yyoverflow;
481 yystate = yytable[yyn];
482 *++yystack.s_mark = yytable[yyn];
483 *++yystack.l_mark = yylval;
484 yychar = YYEMPTY;
485 if (yyerrflag > 0) --yyerrflag;
486 goto yyloop;
488 if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
489 yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
491 yyn = yytable[yyn];
492 goto yyreduce;
494 if (yyerrflag) goto yyinrecovery;
496 yyerror("syntax error");
498 goto yyerrlab;
500 yyerrlab:
501 ++yynerrs;
503 yyinrecovery:
504 if (yyerrflag < 3)
506 yyerrflag = 3;
507 for (;;)
509 if ((yyn = yysindex[*yystack.s_mark]) && (yyn += YYERRCODE) >= 0 &&
510 yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
512 #if YYDEBUG
513 if (yydebug)
514 printf("%sdebug: state %d, error recovery shifting\
515 to state %d\n", YYPREFIX, *yystack.s_mark, yytable[yyn]);
516 #endif
517 if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack))
519 goto yyoverflow;
521 yystate = yytable[yyn];
522 *++yystack.s_mark = yytable[yyn];
523 *++yystack.l_mark = yylval;
524 goto yyloop;
526 else
528 #if YYDEBUG
529 if (yydebug)
530 printf("%sdebug: error recovery discarding state %d\n",
531 YYPREFIX, *yystack.s_mark);
532 #endif
533 if (yystack.s_mark <= yystack.s_base) goto yyabort;
534 --yystack.s_mark;
535 --yystack.l_mark;
539 else
541 if (yychar == 0) goto yyabort;
542 #if YYDEBUG
543 if (yydebug)
545 yys = 0;
546 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
547 if (!yys) yys = "illegal-symbol";
548 printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
549 YYPREFIX, yystate, yychar, yys);
551 #endif
552 yychar = YYEMPTY;
553 goto yyloop;
556 yyreduce:
557 #if YYDEBUG
558 if (yydebug)
559 printf("%sdebug: state %d, reducing by rule %d (%s)\n",
560 YYPREFIX, yystate, yyn, yyrule[yyn]);
561 #endif
562 yym = yylen[yyn];
563 if (yym)
564 yyval = yystack.l_mark[1-yym];
565 else
566 memset(&yyval, 0, sizeof yyval);
567 switch (yyn)
569 case 3:
570 #line 35 "quote_calc4.y"
571 { yyerrok ; }
572 break;
573 case 4:
574 #line 39 "quote_calc4.y"
575 { printf("%d\n",yystack.l_mark[0]);}
576 break;
577 case 5:
578 #line 41 "quote_calc4.y"
579 { regs[yystack.l_mark[-2]] = yystack.l_mark[0]; }
580 break;
581 case 6:
582 #line 45 "quote_calc4.y"
583 { yyval = yystack.l_mark[-1]; }
584 break;
585 case 7:
586 #line 47 "quote_calc4.y"
587 { yyval = yystack.l_mark[-2] + yystack.l_mark[0]; }
588 break;
589 case 8:
590 #line 49 "quote_calc4.y"
591 { yyval = yystack.l_mark[-2] - yystack.l_mark[0]; }
592 break;
593 case 9:
594 #line 51 "quote_calc4.y"
595 { yyval = yystack.l_mark[-2] * yystack.l_mark[0]; }
596 break;
597 case 10:
598 #line 53 "quote_calc4.y"
599 { yyval = yystack.l_mark[-2] / yystack.l_mark[0]; }
600 break;
601 case 11:
602 #line 55 "quote_calc4.y"
603 { yyval = yystack.l_mark[-2] % yystack.l_mark[0]; }
604 break;
605 case 12:
606 #line 57 "quote_calc4.y"
607 { yyval = yystack.l_mark[-2] & yystack.l_mark[0]; }
608 break;
609 case 13:
610 #line 59 "quote_calc4.y"
611 { yyval = yystack.l_mark[-2] | yystack.l_mark[0]; }
612 break;
613 case 14:
614 #line 61 "quote_calc4.y"
615 { yyval = - yystack.l_mark[0]; }
616 break;
617 case 15:
618 #line 63 "quote_calc4.y"
619 { yyval = regs[yystack.l_mark[0]]; }
620 break;
621 case 17:
622 #line 68 "quote_calc4.y"
623 { yyval = yystack.l_mark[0]; base = (yystack.l_mark[0]==0) ? 8 : 10; }
624 break;
625 case 18:
626 #line 70 "quote_calc4.y"
627 { yyval = base * yystack.l_mark[-1] + yystack.l_mark[0]; }
628 break;
629 #line 628 "quote_calc4-s.tab.c"
631 yystack.s_mark -= yym;
632 yystate = *yystack.s_mark;
633 yystack.l_mark -= yym;
634 yym = yylhs[yyn];
635 if (yystate == 0 && yym == 0)
637 #if YYDEBUG
638 if (yydebug)
639 printf("%sdebug: after reduction, shifting from state 0 to\
640 state %d\n", YYPREFIX, YYFINAL);
641 #endif
642 yystate = YYFINAL;
643 *++yystack.s_mark = YYFINAL;
644 *++yystack.l_mark = yyval;
645 if (yychar < 0)
647 if ((yychar = YYLEX) < 0) yychar = 0;
648 #if YYDEBUG
649 if (yydebug)
651 yys = 0;
652 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
653 if (!yys) yys = "illegal-symbol";
654 printf("%sdebug: state %d, reading %d (%s)\n",
655 YYPREFIX, YYFINAL, yychar, yys);
657 #endif
659 if (yychar == 0) goto yyaccept;
660 goto yyloop;
662 if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
663 yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
664 yystate = yytable[yyn];
665 else
666 yystate = yydgoto[yym];
667 #if YYDEBUG
668 if (yydebug)
669 printf("%sdebug: after reduction, shifting from state %d \
670 to state %d\n", YYPREFIX, *yystack.s_mark, yystate);
671 #endif
672 if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack))
674 goto yyoverflow;
676 *++yystack.s_mark = (short) yystate;
677 *++yystack.l_mark = yyval;
678 goto yyloop;
680 yyoverflow:
681 yyerror("yacc stack overflow");
683 yyabort:
684 yyfreestack(&yystack);
685 return (1);
687 yyaccept:
688 yyfreestack(&yystack);
689 return (0);