[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: FYI: Generalize the display of values and locations in reductions
From: |
Paul Eggert |
Subject: |
Re: FYI: Generalize the display of values and locations in reductions |
Date: |
Fri, 18 Nov 2005 11:38:06 -0800 |
User-agent: |
Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux) |
<http://lists.gnu.org/archive/html/bison-patches/2005-11/msg00022.html>
broke "make check" in several places. I installed the following to
fix the obvious typos in yacc.c, and to suppress the stdout-count
checks for now.
2005-11-18 Paul Eggert <address@hidden>
* data/yacc.c (yy_reduce_print, YY_REDUCE_PRINT):
Fix typos in previous change that broke 'make check'.
YY_REDUCE_PRINT cannot be a pseudo-varargs macro; that isn't
supported in C.
* tests/calc.at (_AT_CHECK_CALC,_AT_CHECK_CALC_ERROR):
Don't check NUM-STDERR-LINES, since the output format is fluctuating.
We can revert this once things settle down.
--- data/yacc.c 16 Nov 2005 14:20:48 -0000 1.117
+++ data/yacc.c 18 Nov 2005 19:35:23 -0000
@@ -668,9 +668,9 @@ do {
\
`------------------------------------------------*/
]b4_c_function_def([yy_reduce_print], [static void],
- [[YYSTYPE *yyvsp], [yyvsvp]],
- b4_location_if([[[YYLTYPE *yylsp], [yyvlvp]],])
- [[int yyrule], [yyrule]]
+ [[YYSTYPE *yyvsp], [yyvsp]],
+ b4_location_if([[[YYLTYPE *yylsp], [yylsp]],])
+ [[int yyrule], [yyrule]]m4_ifset([b4_parse_param], [,])
b4_parse_param)[
{
int yynrhs = yyr2[yyrule];
@@ -690,10 +690,10 @@ do {
\
}
}
-# define YY_REDUCE_PRINT(Args) \
-do { \
- if (yydebug) \
- yy_reduce_print (yyvsp, ]b4_location_if([yylsp, ])[Args); \
+# define YY_REDUCE_PRINT(Rule) \
+do { \
+ if (yydebug) \
+ yy_reduce_print (yyvsp, ]b4_location_if([yylsp, ])[Rule]b4_user_args[); \
} while (/*CONSTCOND*/ 0)
/* Nonzero means print parse trace. It is left uninitialized so that
@@ -703,7 +703,7 @@ int yydebug;
# define YYDPRINTF(Args)
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
# define YY_STACK_PRINT(Bottom, Top)
-# define YY_REDUCE_PRINT(Args)
+# define YY_REDUCE_PRINT(Rule)
#endif /* !YYDEBUG */
@@ -1261,7 +1261,7 @@ yyreduce:
]b4_location_if(
[[ /* Default location. */
YYLLOC_DEFAULT (yyloc, yylsp - yylen, yylen);]])[
- YY_REDUCE_PRINT ((yyn]b4_user_args[));
+ YY_REDUCE_PRINT (yyn);
switch (yyn)
{
]b4_actions[
--- tests/calc.at 16 Nov 2005 14:20:48 -0000 1.82
+++ tests/calc.at 18 Nov 2005 19:35:23 -0000
@@ -340,12 +340,14 @@ m4_define([AT_DATA_CALC_Y],
-# _AT_CHECK_CALC(BISON-OPTIONS, INPUT, [NUM-STDERR-LINES = 0])
-# ------------------------------------------------------------
+# _AT_CHECK_CALC(BISON-OPTIONS, INPUT, [NUM-STDERR-LINES])
+# --------------------------------------------------------
# Run `calc' on INPUT and expect no STDOUT nor STDERR.
#
# If BISON-OPTIONS contains `%debug' but not `%glr-parser', then
+#
# NUM-STDERR-LINES is the number of expected lines on stderr.
+# Currently this is ignored, though, since the output format is fluctuating.
#
# We don't count GLR's traces yet, since its traces are somewhat
# different from LALR's.
@@ -354,17 +356,11 @@ m4_define([_AT_CHECK_CALC],
[[$2
]])
AT_PARSER_CHECK([./calc input], 0, [], [stderr])
-m4_bmatch([$1],
- [%debug.*%glr\|%glr.*%debug],
- [],
- [%debug],
- [AT_CHECK([wc -l <stderr | sed 's/[[^0-9]]//g'], 0, [$3
-])])
])
# _AT_CHECK_CALC_ERROR(BISON-OPTIONS, EXIT-STATUS, INPUT,
-# [NUM-DEBUG-LINES],
+# [NUM-STDERR-LINES],
# [VERBOSE-AND-LOCATED-ERROR-MESSAGE])
# ---------------------------------------------------------
# Run `calc' on INPUT, and expect a `syntax error' message.
@@ -372,6 +368,9 @@ m4_bmatch([$1],
# If INPUT starts with a slash, it is used as absolute input file name,
# otherwise as contents.
#
+# NUM-STDERR-LINES is the number of expected lines on stderr.
+# Currently this is ignored, though, since the output format is fluctuating.
+#
# If BISON-OPTIONS contains `%location', then make sure the ERROR-LOCATION
# is correctly output on stderr.
#
@@ -388,12 +387,6 @@ m4_define([_AT_CHECK_CALC_ERROR],
[[$3
]])
AT_PARSER_CHECK([./calc input], $2, [], [stderr])])
-m4_bmatch([$1],
- [%debug.*%glr\|%glr.*%debug],
- [],
- [%debug],
- [AT_CHECK([wc -l <stderr | sed 's/[[^0-9]]//g'], 0, [$4
-])])
# Normalize the observed and expected error messages, depending upon the
# options.