+ yyprefix = " or ";
+ }
+ yysize += (sizeof ("syntax error, unexpected ")
+ + strlen (yytokenName (*yytokenp)));
+ yymsg = (char*) malloc (yysize);
+ if (yymsg != 0)
+ {
+ char* yyp = yymsg;
+ sprintf (yyp, "syntax error, unexpected %s",
+ yytokenName (*yytokenp));
+ yyp += strlen (yyp);
+ if (yycount < 5)
+ {
+ yyprefix = ", expecting ";
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+ {
+ sprintf (yyp, "%s%s", yyprefix, yytokenName (yyx));
+ yyp += strlen (yyp);
+ yyprefix = " or ";
+ }
+ }
+ yyerror (]b4_lyyerror_args[yymsg);
+ free (yymsg);