1 #if HAVE_NBTOOL_CONFIG_H
2 #include "nbtool_config.h"
7 static char yysccsid
[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93";
9 #if defined(__NetBSD__) && defined(__IDSTRING)
10 __IDSTRING(yyrcsid
, "NetBSD: skeleton.c,v 1.29 2008/07/18 14:25:37 drochner Exp ");
11 #endif /* __NetBSD__ && __IDSTRING */
19 #define yyclearin (yychar=(YYEMPTY))
20 #define yyerrok (yyerrflag=0)
21 #define YYRECOVERING (yyerrflag!=0)
23 #line 2 "../../../usr.bin/m4/parser.y"
24 /* NetBSD: parser.y,v 1.2 2009/10/26 21:11:28 christos Exp */
25 /* $OpenBSD: parser.y,v 1.6 2008/08/21 21:00:14 espie Exp $ */
27 * Copyright (c) 2004 Marc Espie <espie@cvs.openbsd.org>
29 * Permission to use, copy, modify, and distribute this software for any
30 * purpose with or without fee is hereby granted, provided that the above
31 * copyright notice and this permission notice appear in all copies.
33 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
34 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
35 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
36 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
37 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
38 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
39 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
41 #if HAVE_NBTOOL_CONFIG_H
42 #include "nbtool_config.h"
44 __RCSID("NetBSD: parser.y,v 1.2 2009/10/26 21:11:28 christos Exp ");
46 #define YYSTYPE int32_t
47 extern int32_t end_result
;
48 extern int yylex(void);
49 extern int yyerror(const char *);
64 const short yylhs
[] = { -1,
65 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
66 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
69 const short yylen
[] = { 2,
70 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
71 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
74 const short yydefred
[] = { 0,
75 25, 0, 0, 0, 0, 0, 0, 0, 22, 21,
76 23, 24, 0, 0, 0, 0, 0, 0, 0, 0,
77 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
78 0, 20, 0, 0, 0, 0, 0, 0, 0, 0,
79 0, 0, 0, 0, 0, 0, 0, 4, 5, 6,
81 const short yydgoto
[] = { 7,
84 const short yysindex
[] = { -13,
85 0, -13, -13, -13, -13, -13, 0, 190, 0, 0,
86 0, 0, 114, -13, -13, -13, -13, -13, -13, -13,
87 -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
88 -13, 0, 321, 347, 159, 397, 354, -24, -24, -35,
89 -35, -35, -35, 136, 136, -31, -31, 0, 0, 0,
91 const short yyrindex
[] = { 0,
92 0, 0, 0, 0, 0, 0, 0, 3, 0, 0,
93 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
94 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
95 0, 0, 65, 56, 51, 48, 74, 60, 66, 34,
96 40, 76, 83, 17, 26, 1, 9, 0, 0, 0,
98 const short yygindex
[] = { 0,
101 #define YYTABLESIZE 663
102 const short yytable
[] = { 0,
103 2, 31, 1, 0, 0, 31, 29, 27, 3, 28,
104 29, 30, 31, 0, 0, 30, 7, 29, 27, 4,
105 28, 0, 30, 0, 0, 8, 6, 0, 0, 2,
106 0, 3, 0, 9, 0, 21, 0, 23, 2, 11,
107 0, 2, 0, 2, 0, 2, 3, 16, 0, 3,
108 17, 3, 0, 3, 7, 18, 0, 7, 0, 13,
109 2, 0, 2, 8, 19, 14, 8, 0, 3, 0,
110 3, 9, 0, 15, 9, 10, 7, 11, 7, 0,
111 11, 0, 12, 0, 0, 8, 0, 8, 16, 0,
112 0, 17, 0, 9, 2, 9, 18, 13, 0, 11,
113 13, 11, 3, 14, 0, 19, 14, 0, 0, 0,
114 7, 15, 5, 10, 15, 0, 10, 0, 0, 8,
115 12, 0, 0, 12, 2, 0, 0, 9, 0, 0,
116 0, 0, 3, 11, 0, 10, 0, 10, 0, 0,
117 7, 16, 12, 0, 12, 0, 0, 0, 0, 8,
118 31, 18, 0, 13, 32, 29, 27, 9, 28, 14,
119 30, 0, 0, 11, 0, 0, 0, 15, 0, 10,
120 0, 16, 31, 21, 17, 23, 12, 29, 27, 0,
121 28, 0, 30, 13, 0, 0, 0, 0, 0, 14,
122 0, 0, 0, 0, 0, 31, 18, 15, 0, 10,
123 29, 27, 0, 28, 0, 30, 12, 17, 0, 0,
124 0, 0, 0, 0, 0, 0, 0, 0, 21, 0,
125 23, 0, 0, 0, 0, 0, 31, 18, 0, 25,
126 26, 29, 27, 0, 28, 0, 30, 16, 22, 24,
127 25, 26, 0, 1, 0, 0, 0, 0, 0, 21,
128 0, 23, 17, 0, 0, 0, 0, 0, 0, 2,
129 2, 2, 2, 2, 2, 2, 2, 3, 3, 3,
130 3, 3, 3, 3, 3, 7, 7, 7, 7, 7,
131 7, 7, 7, 17, 8, 8, 8, 8, 8, 8,
132 8, 8, 9, 9, 9, 9, 9, 9, 11, 11,
133 11, 11, 11, 11, 0, 0, 16, 16, 0, 17,
134 17, 0, 0, 16, 18, 18, 0, 0, 13, 13,
135 13, 13, 0, 19, 14, 14, 14, 14, 0, 0,
136 0, 0, 15, 15, 10, 10, 10, 10, 10, 10,
137 0, 12, 12, 12, 12, 12, 12, 0, 0, 0,
138 0, 0, 0, 0, 0, 0, 0, 31, 18, 0,
139 0, 0, 29, 27, 0, 28, 0, 30, 0, 0,
140 0, 0, 14, 15, 19, 20, 22, 24, 25, 26,
141 21, 0, 23, 31, 18, 0, 0, 0, 29, 27,
142 31, 28, 0, 30, 0, 29, 27, 0, 28, 0,
143 30, 0, 0, 0, 0, 0, 21, 0, 23, 0,
144 0, 0, 0, 21, 17, 23, 0, 0, 0, 19,
145 20, 22, 24, 25, 26, 0, 0, 0, 0, 0,
146 0, 0, 0, 31, 18, 0, 0, 0, 29, 27,
147 17, 28, 0, 30, 16, 0, 0, 0, 14, 15,
148 19, 20, 22, 24, 25, 26, 21, 0, 23, 9,
149 10, 11, 12, 13, 0, 0, 0, 0, 0, 0,
150 16, 33, 34, 35, 36, 37, 38, 39, 40, 41,
151 42, 43, 44, 45, 46, 47, 48, 49, 50, 0,
152 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
153 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
154 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
155 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
156 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
157 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
159 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
160 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
161 15, 19, 20, 22, 24, 25, 26, 0, 0, 0,
162 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
163 0, 0, 0, 0, 0, 0, 0, 19, 20, 22,
164 24, 25, 26, 0, 19, 20, 22, 24, 25, 26,
165 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
166 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
167 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
168 0, 0, 0, 0, 0, 0, 0, 19, 20, 22,
171 const short yycheck
[] = { -1,
172 0, 37, 0, -1, -1, 37, 42, 43, 0, 45,
173 42, 47, 37, -1, -1, 47, 0, 42, 43, 33,
174 45, -1, 47, -1, -1, 0, 40, -1, -1, 43,
175 -1, 45, -1, 0, -1, 60, -1, 62, 38, 0,
176 -1, 41, -1, 43, -1, 45, 38, 0, -1, 41,
177 0, 43, -1, 45, 38, 0, -1, 41, -1, 0,
178 60, -1, 62, 38, 0, 0, 41, -1, 60, -1,
179 62, 38, -1, 0, 41, 0, 60, 38, 62, -1,
180 41, -1, 0, -1, -1, 60, -1, 62, 41, -1,
181 -1, 41, -1, 60, 94, 62, 41, 38, -1, 60,
182 41, 62, 94, 38, -1, 41, 41, -1, -1, -1,
183 94, 38, 126, 38, 41, -1, 41, -1, -1, 94,
184 38, -1, -1, 41, 124, -1, -1, 94, -1, -1,
185 -1, -1, 124, 94, -1, 60, -1, 62, -1, -1,
186 124, 94, 60, -1, 62, -1, -1, -1, -1, 124,
187 37, 38, -1, 94, 41, 42, 43, 124, 45, 94,
188 47, -1, -1, 124, -1, -1, -1, 94, -1, 94,
189 -1, 124, 37, 60, 124, 62, 94, 42, 43, -1,
190 45, -1, 47, 124, -1, -1, -1, -1, -1, 124,
191 -1, -1, -1, -1, -1, 37, 38, 124, -1, 124,
192 42, 43, -1, 45, -1, 47, 124, 94, -1, -1,
193 -1, -1, -1, -1, -1, -1, -1, -1, 60, -1,
194 62, -1, -1, -1, -1, -1, 37, 38, -1, 265,
195 266, 42, 43, -1, 45, -1, 47, 124, 263, 264,
196 265, 266, -1, 257, -1, -1, -1, -1, -1, 60,
197 -1, 62, 94, -1, -1, -1, -1, -1, -1, 259,
198 260, 261, 262, 263, 264, 265, 266, 259, 260, 261,
199 262, 263, 264, 265, 266, 259, 260, 261, 262, 263,
200 264, 265, 266, 94, 259, 260, 261, 262, 263, 264,
201 265, 266, 259, 260, 261, 262, 263, 264, 259, 260,
202 261, 262, 263, 264, -1, -1, 259, 260, -1, 259,
203 260, -1, -1, 124, 259, 260, -1, -1, 259, 260,
204 261, 262, -1, 259, 259, 260, 261, 262, -1, -1,
205 -1, -1, 259, 260, 259, 260, 261, 262, 263, 264,
206 -1, 259, 260, 261, 262, 263, 264, -1, -1, -1,
207 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
208 -1, -1, 42, 43, -1, 45, -1, 47, -1, -1,
209 -1, -1, 259, 260, 261, 262, 263, 264, 265, 266,
210 60, -1, 62, 37, 38, -1, -1, -1, 42, 43,
211 37, 45, -1, 47, -1, 42, 43, -1, 45, -1,
212 47, -1, -1, -1, -1, -1, 60, -1, 62, -1,
213 -1, -1, -1, 60, 94, 62, -1, -1, -1, 261,
214 262, 263, 264, 265, 266, -1, -1, -1, -1, -1,
215 -1, -1, -1, 37, 38, -1, -1, -1, 42, 43,
216 94, 45, -1, 47, 124, -1, -1, -1, 259, 260,
217 261, 262, 263, 264, 265, 266, 60, -1, 62, 2,
218 3, 4, 5, 6, -1, -1, -1, -1, -1, -1,
219 124, 14, 15, 16, 17, 18, 19, 20, 21, 22,
220 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
221 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
222 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
223 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
224 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
225 -1, -1, -1, -1, -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 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
230 260, 261, 262, 263, 264, 265, 266, -1, -1, -1,
231 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
232 -1, -1, -1, -1, -1, -1, -1, 261, 262, 263,
233 264, 265, 266, -1, 261, 262, 263, 264, 265, 266,
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, 261, 262, 263,
244 #define YYMAXTOKEN 268
246 const char * const yyname
[] = {
247 "end-of-file",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,
248 "'!'",0,0,0,"'%'","'&'",0,"'('","')'","'*'","'+'",0,"'-'",0,"'/'",0,0,0,0,0,0,0,
249 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,
250 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,
251 "'~'",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,
252 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,
253 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,
254 0,0,0,0,0,0,0,0,0,0,0,0,0,"NUMBER","ERROR","LOR","LAND","EQ","NE","LE","GE",
255 "LSHIFT","RSHIFT","UMINUS","UPLUS",
257 const char * const yyrule
[] = {
260 "expr : expr '+' expr",
261 "expr : expr '-' expr",
262 "expr : expr '*' expr",
263 "expr : expr '/' expr",
264 "expr : expr '%' expr",
265 "expr : expr LSHIFT expr",
266 "expr : expr RSHIFT expr",
267 "expr : expr '<' expr",
268 "expr : expr '>' expr",
269 "expr : expr LE expr",
270 "expr : expr GE expr",
271 "expr : expr EQ expr",
272 "expr : expr NE expr",
273 "expr : expr '&' expr",
274 "expr : expr '^' expr",
275 "expr : expr '|' expr",
276 "expr : expr LAND expr",
277 "expr : expr LOR expr",
278 "expr : '(' expr ')'",
291 #define YYMAXDEPTH YYSTACKSIZE
294 #define YYSTACKSIZE YYMAXDEPTH
296 #define YYSTACKSIZE 10000
297 #define YYMAXDEPTH 10000
300 #define YYINITSTACKSIZE 200
308 static YYSTYPE yyvalzero
;
315 #line 85 "../../../usr.bin/m4/parser.y"
318 /* allocate initial stack or double stack size, up to YYMAXDEPTH */
319 static int yygrowstack(void);
320 static int yygrowstack(void)
326 if ((newsize
= yystacksize
) == 0)
327 newsize
= YYINITSTACKSIZE
;
328 else if (newsize
>= YYMAXDEPTH
)
330 else if ((newsize
*= 2) > YYMAXDEPTH
)
331 newsize
= YYMAXDEPTH
;
333 if ((newss
= (short *)realloc(yyss
, newsize
* sizeof *newss
)) == NULL
)
337 if ((newvs
= (YYSTYPE
*)realloc(yyvs
, newsize
* sizeof *newvs
)) == NULL
)
341 yystacksize
= newsize
;
342 yysslim
= yyss
+ newsize
- 1;
346 #define YYABORT goto yyabort
347 #define YYREJECT goto yyabort
348 #define YYACCEPT goto yyaccept
349 #define YYERROR goto yyerrlab
353 int yym
, yyn
, yystate
;
357 if ((yys
= getenv("YYDEBUG")) != NULL
)
360 if (yyn
>= '0' && yyn
<= '9')
369 if (yyss
== NULL
&& yygrowstack()) goto yyoverflow
;
372 *yyssp
= yystate
= 0;
375 if ((yyn
= yydefred
[yystate
]) != 0) goto yyreduce
;
378 if ((yychar
= yylex()) < 0) yychar
= 0;
383 if (yychar
<= YYMAXTOKEN
) yys
= yyname
[yychar
];
384 if (!yys
) yys
= "illegal-symbol";
385 printf("%sdebug: state %d, reading %d (%s)\n",
386 YYPREFIX
, yystate
, yychar
, yys
);
390 if ((yyn
= yysindex
[yystate
]) && (yyn
+= yychar
) >= 0 &&
391 yyn
<= YYTABLESIZE
&& yycheck
[yyn
] == yychar
)
395 printf("%sdebug: state %d, shifting to state %d\n",
396 YYPREFIX
, yystate
, yytable
[yyn
]);
398 if (yyssp
>= yysslim
&& yygrowstack())
402 *++yyssp
= yystate
= yytable
[yyn
];
405 if (yyerrflag
> 0) --yyerrflag
;
408 if ((yyn
= yyrindex
[yystate
]) && (yyn
+= yychar
) >= 0 &&
409 yyn
<= YYTABLESIZE
&& yycheck
[yyn
] == yychar
)
414 if (yyerrflag
) goto yyinrecovery
;
417 yyerror("syntax error");
427 if ((yyn
= yysindex
[*yyssp
]) && (yyn
+= YYERRCODE
) >= 0 &&
428 yyn
<= YYTABLESIZE
&& yycheck
[yyn
] == YYERRCODE
)
432 printf("%sdebug: state %d, error recovery shifting\
433 to state %d\n", YYPREFIX
, *yyssp
, yytable
[yyn
]);
435 if (yyssp
>= yysslim
&& yygrowstack())
439 *++yyssp
= yystate
= yytable
[yyn
];
447 printf("%sdebug: error recovery discarding state %d\n",
450 if (yyssp
<= yyss
) goto yyabort
;
458 if (yychar
== 0) goto yyabort
;
463 if (yychar
<= YYMAXTOKEN
) yys
= yyname
[yychar
];
464 if (!yys
) yys
= "illegal-symbol";
465 printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
466 YYPREFIX
, yystate
, yychar
, yys
);
475 printf("%sdebug: state %d, reducing by rule %d (%s)\n",
476 YYPREFIX
, yystate
, yyn
, yyrule
[yyn
]);
480 yyval
= yyvsp
[1-yym
];
486 #line 45 "../../../usr.bin/m4/parser.y"
487 { end_result
= yyvsp
[0]; }
490 #line 47 "../../../usr.bin/m4/parser.y"
491 { yyval
= yyvsp
[-2] + yyvsp
[0]; }
494 #line 48 "../../../usr.bin/m4/parser.y"
495 { yyval
= yyvsp
[-2] - yyvsp
[0]; }
498 #line 49 "../../../usr.bin/m4/parser.y"
499 { yyval
= yyvsp
[-2] * yyvsp
[0]; }
502 #line 50 "../../../usr.bin/m4/parser.y"
505 yyerror("division by zero");
508 yyval
= yyvsp
[-2] / yyvsp
[0];
512 #line 57 "../../../usr.bin/m4/parser.y"
515 yyerror("modulo zero");
518 yyval
= yyvsp
[-2] % yyvsp
[0];
522 #line 64 "../../../usr.bin/m4/parser.y"
523 { yyval
= yyvsp
[-2] << yyvsp
[0]; }
526 #line 65 "../../../usr.bin/m4/parser.y"
527 { yyval
= yyvsp
[-2] >> yyvsp
[0]; }
530 #line 66 "../../../usr.bin/m4/parser.y"
531 { yyval
= yyvsp
[-2] < yyvsp
[0]; }
534 #line 67 "../../../usr.bin/m4/parser.y"
535 { yyval
= yyvsp
[-2] > yyvsp
[0]; }
538 #line 68 "../../../usr.bin/m4/parser.y"
539 { yyval
= yyvsp
[-2] <= yyvsp
[0]; }
542 #line 69 "../../../usr.bin/m4/parser.y"
543 { yyval
= yyvsp
[-2] >= yyvsp
[0]; }
546 #line 70 "../../../usr.bin/m4/parser.y"
547 { yyval
= yyvsp
[-2] == yyvsp
[0]; }
550 #line 71 "../../../usr.bin/m4/parser.y"
551 { yyval
= yyvsp
[-2] != yyvsp
[0]; }
554 #line 72 "../../../usr.bin/m4/parser.y"
555 { yyval
= yyvsp
[-2] & yyvsp
[0]; }
558 #line 73 "../../../usr.bin/m4/parser.y"
559 { yyval
= yyvsp
[-2] ^ yyvsp
[0]; }
562 #line 74 "../../../usr.bin/m4/parser.y"
563 { yyval
= yyvsp
[-2] | yyvsp
[0]; }
566 #line 75 "../../../usr.bin/m4/parser.y"
567 { yyval
= yyvsp
[-2] && yyvsp
[0]; }
570 #line 76 "../../../usr.bin/m4/parser.y"
571 { yyval
= yyvsp
[-2] || yyvsp
[0]; }
574 #line 77 "../../../usr.bin/m4/parser.y"
575 { yyval
= yyvsp
[-1]; }
578 #line 78 "../../../usr.bin/m4/parser.y"
579 { yyval
= -yyvsp
[0]; }
582 #line 79 "../../../usr.bin/m4/parser.y"
583 { yyval
= yyvsp
[0]; }
586 #line 80 "../../../usr.bin/m4/parser.y"
587 { yyval
= !yyvsp
[0]; }
590 #line 81 "../../../usr.bin/m4/parser.y"
591 { yyval
= ~yyvsp
[0]; }
599 if (yystate
== 0 && yym
== 0)
603 printf("%sdebug: after reduction, shifting from state 0 to\
604 state %d\n", YYPREFIX
, YYFINAL
);
611 if ((yychar
= yylex()) < 0) yychar
= 0;
616 if (yychar
<= YYMAXTOKEN
) yys
= yyname
[yychar
];
617 if (!yys
) yys
= "illegal-symbol";
618 printf("%sdebug: state %d, reading %d (%s)\n",
619 YYPREFIX
, YYFINAL
, yychar
, yys
);
623 if (yychar
== 0) goto yyaccept
;
626 if ((yyn
= yygindex
[yym
]) && (yyn
+= yystate
) >= 0 &&
627 yyn
<= YYTABLESIZE
&& yycheck
[yyn
] == yystate
)
628 yystate
= yytable
[yyn
];
630 yystate
= yydgoto
[yym
];
633 printf("%sdebug: after reduction, shifting from state %d \
634 to state %d\n", YYPREFIX
, *yyssp
, yystate
);
636 if (yyssp
>= yysslim
&& yygrowstack())
644 yyerror("yacc stack overflow");