#ifdef yyoverflow
/* Each stack pointer address is followed by the size of
the data in use in that stack, in bytes. */
+#ifdef YYLSP_NEEDED
+ /* This used to be a conditional around just the two extra args,
+ but that might be undefined if yyoverflow is a macro. */
yyoverflow("parser stack overflow",
&yyss1, size * sizeof (*yyssp),
&yyvs1, size * sizeof (*yyvsp),
-#ifdef YYLSP_NEEDED
&yyls1, size * sizeof (*yylsp),
-#endif
&yystacksize);
+#else
+ yyoverflow("parser stack overflow",
+ &yyss1, size * sizeof (*yyssp),
+ &yyvs1, size * sizeof (*yyvsp),
+ &yystacksize);
+#endif
yyss = yyss1; yyvs = yyvs1;
#ifdef YYLSP_NEEDED
/* Do a reduction. yyn is the number of a rule to reduce with. */
yyreduce:
yylen = yyr2[yyn];
- yyval = yyvsp[1-yylen]; /* implement default value of the action */
+ if (yylen > 0)
+ yyval = yyvsp[1-yylen]; /* implement default value of the action */
#if YYDEBUG != 0
if (yydebug)
#endif
$ /* the action file gets copied in in place of this dollarsign */
-#line 457 "bison.simple"
+#line 465 "bison.simple"
\f
yyvsp -= yylen;
yyssp -= yylen;