1860 Commits

Author SHA1 Message Date
Joel E. Denny
95611b5617 tests: fix missing include caught by g++ 4.4.1.
Reported by Tys Lefering.
* HACKING (Release checks): Add note about trying a recent GCC.
* tests/regression.at (_AT_DATA_DANCER_Y): For C++, include
cstdlib for abort.
(_AT_DATA_EXPECT2_Y): Likewise.
2010-01-22 15:12:40 -05:00
Joel E. Denny
e141f4d4bb maint: run "make update-copyright" 2010-01-04 13:47:36 -05:00
Joel E. Denny
1462fcee1e maint: run "make update-copyright" 2010-01-04 13:46:45 -05:00
Joel E. Denny
882be728b2 POSIX: complain if %prec's token was not defined.
* NEWS (2.5): Document.
* src/reader.c (grammar_rule_check): Convert warning to
complaint.
* tests/input.at (%prec's token must be defined): Update.
(cherry picked from commit 510df9519e)
2009-12-31 12:54:09 -05:00
Joel E. Denny
8bb3a2e7df POSIX: warn if %prec's token was not defined.
Reported by Florian Krohm at
<http://lists.gnu.org/archive/html/bug-bison/2009-12/msg00005.html>.
* NEWS (2.4.2): Document.
* src/reader.c (grammar_rule_check): Implement.
(grammar_current_rule_prec_set): Add comments explaining that we
here assume a %prec identifier is a token, but we still manage
to support POSIX.
* tests/input.at (%prec's token must be defined): New test
group.
(cherry picked from commit f1ceed0774)
2009-12-31 12:53:51 -05:00
Joel E. Denny
510df9519e POSIX: complain if %prec's token was not defined.
* NEWS (2.5): Document.
* src/reader.c (grammar_rule_check): Convert warning to
complaint.
* tests/input.at (%prec's token must be defined): Update.
2009-12-31 12:51:56 -05:00
Joel E. Denny
2c2035282c POSIX: warn if %prec's token was not defined.
Reported by Florian Krohm at
<http://lists.gnu.org/archive/html/bug-bison/2009-12/msg00005.html>.
* NEWS (2.4.2): Document.
* src/reader.c (grammar_rule_check): Implement.
(grammar_current_rule_prec_set): Add comments explaining that we
here assume a %prec identifier is a token, but we still manage
to support POSIX.
* tests/input.at (%prec's token must be defined): New test
group.
(cherry picked from commit f1ceed0774)
2009-12-31 12:51:35 -05:00
Joel E. Denny
abcc7c03cc Fix handling of yychar manipulation in user semantic actions.
The problem was that yacc.c didn't always update the yychar
translation afterwards.  However, other skeletons appear to be
fine.  glr.c appears to already translate yychar before every
use.  lalr1.cc does not define yychar and does not document its
replacement, yyla, for users.  It does provide yyclearin, but
that does not manipulate yyla and thus requires no translation
update.  In lalr1.java, yychar is out of scope during semantic
actions.
* NEWS (2.5): Document.
* data/yacc.c (YYBACKUP): Don't bother translating yychar into
yytoken here.
(yyparse, yypush_parse): Instead, translate before every use of
yytoken, and add comments explaining this approach.
* tests/actions.at (Destroying lookahead assigned by semantic
action): New test group checking that translation happens before
lookahead destructor calls at parser return.  Previously,
incorrect destructors were called.
* tests/conflicts.at (%error-verbose and consistent
errors): New test group checking that translation happens at
syntax error detection before the associated verbose error
message and the associated lookahead destructor calls.  While
the destructor call is fixed by this patch, the verbose error
message is currently incorrect due to another bug (see
comments in test group), so this is an expected failure for now.
(cherry picked from commit df222dfaf4)

Conflicts:

	src/parse-gram.c
	src/parse-gram.h
2009-12-22 14:50:45 -05:00
Joel E. Denny
df222dfaf4 Fix handling of yychar manipulation in user semantic actions.
The problem was that yacc.c didn't always update the yychar
translation afterwards.  However, other skeletons appear to be
fine.  glr.c appears to already translate yychar before every
use.  lalr1.cc does not define yychar and does not document its
replacement, yyla, for users.  It does provide yyclearin, but
that does not manipulate yyla and thus requires no translation
update.  In lalr1.java, yychar is out of scope during semantic
actions.
* NEWS (2.5): Document.
* data/yacc.c (YYBACKUP): Don't bother translating yychar into
yytoken here.
(yyparse, yypush_parse): Instead, translate before every use of
yytoken, and add comments explaining this approach.
* tests/actions.at (Destroying lookahead assigned by semantic
action): New test group checking that translation happens before
lookahead destructor calls at parser return.  Previously,
incorrect destructors were called.
* tests/conflicts.at (parse.error=verbose and consistent
errors): New test group checking that translation happens at
syntax error detection before the associated verbose error
message and the associated lookahead destructor calls.  While
the destructor call is fixed by this patch, the verbose error
message is currently incorrect due to another bug (see
comments in test group), so this is an expected failure for now.
2009-12-22 14:09:06 -05:00
Joel E. Denny
5335b65a79 tests: cleanup.
* tests/c++.at (Syntax error discarding no lookahead): Don't
ignore stderr.  Instead, eliminate remaining warnings.
2009-12-20 16:03:07 -05:00
Joel E. Denny
d59beda068 lalr1.cc: don't discard non-existent lookahead on syntax error.
* data/lalr1.cc (parser::parse): Check yyempty first.
* tests/c++.at (Syntax error discarding no lookahead): New test
group.
2009-12-18 23:58:14 -05:00
Joel E. Denny
3473147172 Add gcc's -Wundef to test suite and fix another warning from it.
* NEWS (2.4.2): Update description of -Wundef fix.
* configure.ac (WARN_CXXFLAGS_TEST): New substitution.
(WARN_CFLAGS_TEST): New substitution.
* data/glr.c: Avoid warning about __STRICT_ANSI__.
* tests/atlocal.in (CFLAGS): Use WARN_CFLAGS_TEST instead of
WARN_CFLAGS.
(NO_WERROR_CFLAGS): Likewise.
(CXXFLAGS): Use WARN_CXXFLAGS_TEST instead of WARN_CXXFLAGS.
(cherry picked from commit a603c6e0bb)
2009-12-16 13:32:50 -05:00
Joel E. Denny
a603c6e0bb Add gcc's -Wundef to test suite and fix another warning from it.
* NEWS (2.4.2): Update description of -Wundef fix.
* configure.ac (WARN_CXXFLAGS_TEST): New substitution.
(WARN_CFLAGS_TEST): New substitution.
* data/glr.c: Avoid warning about __STRICT_ANSI__.
* tests/atlocal.in (CFLAGS): Use WARN_CFLAGS_TEST instead of
WARN_CFLAGS.
(NO_WERROR_CFLAGS): Likewise.
(CXXFLAGS): Use WARN_CXXFLAGS_TEST instead of WARN_CXXFLAGS.
2009-12-16 13:20:49 -05:00
Joel E. Denny
fb9a3976c2 portability: use -DGNULIB_POSIXCHECK.
Reported by Eric Blake.  See discussions at
<http://lists.gnu.org/archive/html/bug-bison/2009-09/msg00008.html>
and
<http://lists.gnu.org/archive/html/bug-gnulib/2009-10/msg00108.html>.
* HACKING (Release checks): Suggest -DGNULIB_POSIXCHECK.
* bootstrap.conf (gnulib_modules): Add all the printf modules
suggested by -DGNULIB_POSIXCHECK.  Add realloc-posix as
suggested by -DGNULIB_POSIXCHECK for gnulib's own vasnprintf.c.
(excluded_files): Remove m4/printf-posix.m4.
* tests/atlocal.in (LIBS): As for LDADD in src/Makefile.am, add
lib/libbison.a so gnulib libraries can be linked.
(cherry picked from commit 5c99151aeb)

Conflicts:

	lib/.cvsignore
	lib/.gitignore
	m4/.cvsignore
	m4/.gitignore
2009-12-15 18:30:34 -05:00
Joel E. Denny
5c99151aeb portability: use -DGNULIB_POSIXCHECK.
Reported by Eric Blake.  See discussions at
<http://lists.gnu.org/archive/html/bug-bison/2009-09/msg00008.html>
and
<http://lists.gnu.org/archive/html/bug-gnulib/2009-10/msg00108.html>.
* HACKING (Release checks): Suggest -DGNULIB_POSIXCHECK.
* bootstrap.conf (gnulib_modules): Add all the printf modules
suggested by -DGNULIB_POSIXCHECK.  Add realloc-posix as
suggested by -DGNULIB_POSIXCHECK for gnulib's own vasnprintf.c.
(excluded_files): Remove m4/printf-posix.m4.
* tests/atlocal.in (LIBS): As for LDADD in src/local.mk, add
lib/libbison.a so gnulib libraries can be linked.
2009-12-15 17:39:07 -05:00
Joel E. Denny
7439c5c0f9 tests: skip tests of file names that platform does not support.
Reported by Michael Raskin at
<http://lists.gnu.org/archive/html/bug-bison/2009-09/msg00001.html>.
* THANKS (Michael Raskin): Add.
* tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Fix.  Cygwin used
to fail at least for file names containing ":" or "\".
(cherry picked from commit 2ceb8c617c)

Conflicts:

	THANKS
2009-10-04 23:23:08 -04:00
Joel E. Denny
9637e0ed1c tests: skip tests of file names that platform does not support.
Reported by Michael Raskin at
<http://lists.gnu.org/archive/html/bug-bison/2009-09/msg00001.html>.
* THANKS (Michael Raskin): Add.
* tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Fix.  Cygwin used
to fail at least for file names containing ":" or "\".
(cherry picked from commit 2ceb8c617c)
2009-10-04 23:18:59 -04:00
Joel E. Denny
69a2ab11cf yysyntax_error: avoid duplicate lookahead collection.
Except when memory reallocation is required, this change
eliminates the need to invoke yysyntax_error twice and thus to
repeat the collection of lookaheads.  It also prepares for
future extensions that will make those repetitions more
expensive and that will require additional memory management in
yysyntax_error.  Finally, it fixes an obscure bug already
exercised in the test suite.
* data/yacc.c (yysyntax_error): Add arguments for message
buffer variables stored in the parser.  Instead of size, return
status similar to yyparse status but indicating success of
message creation.  Other than the actual reallocation of the
message buffer, import and clean up memory management code
from...
(yyparse, yypush_parse): ... here.
* tests/regression.at (%error-verbose overflow): No longer an
expected failure.
(cherry picked from commit 45319f1365)

Conflicts:

	src/parse-gram.c
	src/parse-gram.h
2009-10-04 16:26:39 -04:00
Joel E. Denny
d88cf11791 yysyntax_error: test memory management more.
* tests/atlocal.in (NO_WERROR_CFLAGS): New cpp macro.
* tests/regression.at (%error-verbose and YYSTACK_USE_ALLOCA):
New test group.
(%error-verbose overflow): New test group that reveals an
obscure bug.  Expected fail for now.
(cherry picked from commit 52cea04ad3)
2009-10-04 16:26:25 -04:00
Joel E. Denny
45319f1365 yysyntax_error: avoid duplicate lookahead collection.
Except when memory reallocation is required, this change
eliminates the need to invoke yysyntax_error twice and thus to
repeat the collection of lookaheads.  It also prepares for
future extensions that will make those repetitions more
expensive and that will require additional memory management in
yysyntax_error.  Finally, it fixes an obscure bug already
exercised in the test suite.
* data/yacc.c (yysyntax_error): Add arguments for message
buffer variables stored in the parser.  Instead of size, return
status similar to yyparse status but indicating success of
message creation.  Other than the actual reallocation of the
message buffer, import and clean up memory management code
from...
(yyparse, yypush_parse): ... here.
* tests/regression.at (parse.error=verbose overflow): No longer
an expected failure.
2009-10-04 15:12:32 -04:00
Joel E. Denny
52cea04ad3 yysyntax_error: test memory management more.
* tests/atlocal.in (NO_WERROR_CFLAGS): New cpp macro.
* tests/regression.at (parse.error=verbose and
YYSTACK_USE_ALLOCA): New test group.
(parse.error=verbose overflow): New test group that reveals an
obscure bug.  Expected fail for now.
2009-10-04 15:12:32 -04:00
Joel E. Denny
4b7a4c1b1c tests: don't abuse AT_BISON_CHECK.
* tests/regression.at (parse-gram.y: LALR = IELR): Move
additional shell commands outside of AT_BISON_CHECK.
(cherry picked from commit d8f68fc295)

Conflicts:

	tests/regression.at
2009-09-27 14:41:20 -04:00
Joel E. Denny
d8f68fc295 tests: don't abuse AT_BISON_CHECK.
* tests/regression.at (parse-gram.y: LALR = IELR): Move
additional shell commands outside of AT_BISON_CHECK.
2009-09-27 14:37:00 -04:00
Joel E. Denny
873ac263c8 tests: check that parse-gram.y's IELR and LALR are identical.
* tests/atlocal.in (abs_top_srcdir): New shell variable.
* tests/regression.at (parse-gram.y: LALR = IELR): New test
group.
(cherry picked from commit 43aabb70a9)
2009-09-26 15:32:04 -04:00
Joel E. Denny
43aabb70a9 tests: check that parse-gram.y's IELR and LALR are identical.
* tests/atlocal.in (abs_top_srcdir): New shell variable.
* tests/regression.at (parse-gram.y: LALR = IELR): New test
group.
2009-09-26 15:27:17 -04:00
Alex Rozenman
348f560883 Keep sub-messages aligned. Fix strings for translation.
* src/location.h: (location_print): Add return value.
	* src/location.c: (location_print): Return number of printed
	characters.
	* src/complain.h: Two new functions (complain_at_indent,
	warn_at_indent).
	* src/complain.cpp: Implement the alignment mechanism. Add new
	static variable (indent_ptr). Use and update it (error_message,
	complain_at_indent, warn_at_indent).
	* src/scan-code.l: Fix strings for translations. Use new *_indent
	functions (parse_ref, show_sub_messages).
	* tests/named-ref.at: Adjust testcases.
	* NEWS (2.5): Add an announcement about named references.
2009-09-19 13:15:53 +03:00
Alex Rozenman
66381412d9 Keep sub-messages aligned. Fix strings for translation.
* src/location.h: (location_print): Add return value.
	* src/location.c: (location_print): Return number of printed
	characters.
	* src/complain.h: Two new functions (complain_at_indent,
	warn_at_indent).
	* src/complain.cpp: Implement the alignment mechanism. Add new
	static variable (indent_ptr). Use and update it (error_message,
	complain_at_indent, warn_at_indent).
	* src/scan-code.l: Fix strings for translations. Use new *_indent
	functions (parse_ref, show_sub_messages).
	* NEWS (2.5): Add an announcement about named references.
2009-09-19 13:00:51 +03:00
Joel E. Denny
d93b5f50cf tests: clean up push.at test group titles.
* tests/push.at: Remove "Push Parsing: " from test group titles
because these are already under the banner "Push Parsing Tests".
(cherry picked from commit 00d80a9ced)
2009-09-13 15:36:14 -04:00
Joel E. Denny
00d80a9ced tests: clean up push.at test group titles.
* tests/push.at: Remove "Push Parsing: " from test group titles
because these are already under the banner "Push Parsing Tests".
2009-09-13 13:45:05 -04:00
Alex Rozenman
4c56b1319d Provide an additional sub-message for clarity.
Add "symbol not found in production" error message when
an "invalid reference" is detected in named references
resolution.

	* src/scan-code.l: Update "invalid reference" case.
	* tests/named-ref.at: Adjust test-cases.
2009-09-12 11:54:34 +03:00
Alex Rozenman
f64e406b80 Provide an additional sub-message for clarity.
Add "symbol not found in production" error message when
an "invalid reference" is detected in named references
resolution.

	* src/scan-code.l: Update "invalid reference" case.
	* tests/named-ref.at: Adjust test-cases.
2009-09-12 11:52:25 +03:00
Joel E. Denny
628be6c97d Complain about unused %define variables and %code qualifiers.
* NEWS (2.5): Document.
* data/bison.m4 (b4_check_user_names): Complain instead of warn.
* doc/bison.texinfo (Decl Summary): Document complaint, and
improve %define documentation a little otherwise.
* tests/input.at (Reject unused %code qualifiers): Update.
(%define errors): Update.
(%define, --define, --force-define): Update.
(%define backward compatibility): Update.
(Unused %define api.pure): Update.
* tests/push.at (Push Parsing: Unsupported Skeletons): Update.
(cherry picked from commit c6abeab182)

Conflicts:

	ChangeLog
2009-09-05 18:44:02 -04:00
Joel E. Denny
c6abeab182 Complain about unused %define variables and %code qualifiers.
* NEWS (2.5): Document.
* data/bison.m4 (b4_check_user_names): Complain instead of warn.
* doc/bison.texinfo (Decl Summary): Document complaint, and
improve %define documentation a little otherwise.
* tests/input.at (Reject unused %code qualifiers): Update.
(%define errors): Update.
(%define, --define, --force-define): Update.
(%define backward compatibility): Update.
(Unused %define api.pure): Update.
* tests/push.at (Push Parsing: Unsupported Skeletons): Update.
2009-09-05 17:33:41 -04:00
Alex Rozenman
14e568d744 Use "Unresolved reference" error message when no symbols were found
in a symbolic reference resolution. Remove .expr and -expr from
	the shown reference when the reference is unresolved.

	* src/scan-code.l: Change the error message, adjust location columns,
	rename variable "exact_mode" to "explicit_bracketing".
	* tests/named-ref.at: Adjust existing tests and add a new one.
2009-09-05 13:22:19 +03:00
Alex Rozenman
61bc57e533 Use "Unresolved reference" error message when no symbols were found
in a symbolic reference resolution. Remove .expr and -expr from
	the shown reference when the reference is unresolved.

	* src/scan-code.l: Change the error message, adjust location columns,
	rename variable "exact_mode" to "explicit_bracketing".
	* tests/named-ref.at: Adjust existing tests and add a new one.
2009-09-05 13:16:45 +03:00
Akim Demaille
f4c75eaf2a Adjust synclines in src/parse-gram.[ch].
* tests/bison.in: Do some magic (including working around issues
	with ylwrap) when this wrapper is used to compile
	src/parse-gram.y.
2009-09-04 10:55:16 +02:00
Joel E. Denny
f37495f601 %define: accept unquoted values.
* NEWS (2.5): Group all %define changes together, and document
this one.  Remove quotes in IELR and canonical LR entry.
* doc/bison.texinfo: Remove quotes in most examples throughout.
(Decl Summary): Update %define documentation.
(Table of Symbols): Likewise.
* src/ielr.c (LrType): Update documentation.
* src/parse-gram.y (content.opt): Add production for ID.
* tests/calc.at: Likewise.
* tests/existing.at: Likewise.
* tests/input.at: Likewise.
* tests/local.at: Likewise.
* tests/push.at: Likewise.
* tests/reduce.at: Likewise.
* tests/torture.at: Likewise.
(cherry picked from commit cf499cff31)

Conflicts:

	doc/bison.texinfo
	src/parse-gram.c
	src/parse-gram.h
	tests/actions.at
	tests/calc.at
2009-08-28 08:04:11 -04:00
Joel E. Denny
3a414bbfa0 %define lr.type: make values lowercase IDs.
That is, "LALR" => "lalr", "IELR" => "ielr", and
"canonical LR" => "canonical-lr".
* NEWS (2.5): Update documentation.
* doc/bison.texinfo (Decl Summary): Likewise.
* src/ielr.c (ielr): Use new values.
* src/ielr.h (ielr): Update documentation.
* src/reader.c (prepare_percent_define_front_end_variables): Use
and validate new values.
* tests/existing.at (AT_TEST_EXISTING_GRAMMAR): Update test
grammars.
* tests/reduce.at (AT_TEST_LR_TYPE): Likewise.
(cherry picked from commit 6ba9640406)
2009-08-28 07:35:23 -04:00
Joel E. Denny
cf499cff31 %define: accept unquoted values.
* NEWS (2.5): Group all %define changes together, and document
this one.  Remove quotes in IELR and canonical LR entry.
* doc/bison.texinfo: Remove quotes in most examples throughout.
(Decl Summary): Update %define documentation.
(Table of Symbols): Likewise.
* src/ielr.c (LrType): Update documentation.
* src/parse-gram.y (content.opt): Add production for ID.
* tests/actions.at: Remove quotes in most tests.
* tests/calc.at: Likewise.
* tests/existing.at: Likewise.
* tests/input.at: Likewise.
* tests/local.at: Likewise.
* tests/push.at: Likewise.
* tests/reduce.at: Likewise.
* tests/torture.at: Likewise.
2009-08-28 07:10:28 -04:00
Joel E. Denny
6ba9640406 %define lr.type: make values lowercase IDs.
That is, "LALR" => "lalr", "IELR" => "ielr", and
"canonical LR" => "canonical-lr".
* NEWS (2.5): Update documentation.
* doc/bison.texinfo (Decl Summary): Likewise.
* src/ielr.c (ielr): Use new values.
* src/ielr.h (ielr): Update documentation.
* src/reader.c (prepare_percent_define_front_end_variables): Use
and validate new values.
* tests/existing.at (AT_TEST_EXISTING_GRAMMAR): Update test
grammars.
* tests/reduce.at (AT_TEST_LR_TYPE): Likewise.
2009-08-28 07:10:27 -04:00
Joel E. Denny
74baf5c966 tests: use perl for printing special sequences to files.
And skip tests if perl is not available.  This is better than
playing tricks with shell portability.  Suggested by Akim
Demaille.
* tests/input.at (Bad character literals): Use it here for
omitting final newlines.
(Bad escapes in literals): Use it here for special characters.
(cherry picked from commit b70c7fb4e1)
2009-08-27 03:55:24 -04:00
Joel E. Denny
b70c7fb4e1 tests: use perl for printing special sequences to files.
And skip tests if perl is not available.  This is better than
playing tricks with shell portability.  Suggested by Akim
Demaille.
* tests/input.at (Bad character literals): Use it here for
omitting final newlines.
(Bad escapes in literals): Use it here for special characters.
2009-08-27 03:52:53 -04:00
Joel E. Denny
d63e12792a tests: show a use of %define lr.default-reductions "consistent"
* tests/conflicts.at (%nonassoc and eof): Extend to test that it
prevents the omission of expected tokens for %error-verbose.
(cherry picked from commit d1cc31c5f0)
2009-08-26 16:36:13 -04:00
Joel E. Denny
d1cc31c5f0 tests: show a use of %define lr.default-reductions "consistent"
* tests/conflicts.at (%nonassoc and eof): Extend to test that it
prevents the omission of expected tokens for %error-verbose.
2009-08-26 16:05:29 -04:00
Akim Demaille
833d1720f8 tests: portability fix.
* tests/input.at (Bad escapes in literals): Don't expect "echo
	'\0'" to output \ then 0.
(cherry picked from commit 3bed3a757f)
2009-08-26 13:22:29 +02:00
Akim Demaille
3bed3a757f tests: portability fix.
* tests/input.at (Bad escapes in literals): Don't expect "echo
	'\0'" to output \ then 0.
2009-08-26 13:21:18 +02:00
Joel E. Denny
1fa303077d Fix %error-verbose for conflicts resolved by %nonassoc.
* NEWS (2.5): Document.
* data/glr.c (yyreportSyntaxError): Fix this by checking
yyis_table_ninf.
* data/yacc.c (yysyntax_error): Likewise.
* data/lalr1.cc (yysyntax_error_): Fix this by checking
yytable_ninf_.
* data/lalr1.java (yysyntax_error): Likewise.
* tests/conflicts.at (%nonassoc and eof): Update expected output
and remove FIXME.
(cherry picked from commit 53f036ce02)

Conflicts:

	data/lalr1.cc
	data/lalr1.java
	src/parse-gram.c
	src/parse-gram.h
2009-08-25 02:58:16 -04:00
Joel E. Denny
53f036ce02 Fix %error-verbose for conflicts resolved by %nonassoc.
* NEWS (2.5): Document.
* data/glr.c (yyreportSyntaxError): Fix this by checking
yyis_table_ninf.
* data/yacc.c (yysyntax_error): Likewise.
* data/lalr1.cc (yysyntax_error_): Fix this by checking
yytable_ninf_.
* data/lalr1.java (yysyntax_error): Likewise.
* tests/conflicts.at (%nonassoc and eof): Update expected output
and remove FIXME.
2009-08-25 02:57:15 -04:00
Joel E. Denny
39fb7e6239 Fix complaints about escape sequences.
Discussed starting at
<http://lists.gnu.org/archive/html/bison-patches/2009-08/msg00036.html>.
* src/scan-gram.l (SC_ESCAPED_STRING, SC_ESCAPED_CHARACTER):
For a \0 and similar escape sequences meaning the null
character, report an invalid escape sequence instead of an
invalid null character because the latter does not actually
appear in the user's input.
In all escape sequence complaints, don't escape the initial
backslash, and don't quote when the sequence appears at the end
of the complaint line unless there's whitespace that quotearg
won't escape.
Consistently say "invalid" not "unrecognized".
Consistently prefer "empty character literal" over "extra
characters in character literal" warning for invalid escape
sequences; that is, consistently discard those sequences.
* tests/input.at (Bad escapes in literals): New.
(cherry picked from commit c2724603c9)
2009-08-19 21:05:07 -04:00
Joel E. Denny
c2724603c9 Fix complaints about escape sequences.
Discussed starting at
<http://lists.gnu.org/archive/html/bison-patches/2009-08/msg00036.html>.
* src/scan-gram.l (SC_ESCAPED_STRING, SC_ESCAPED_CHARACTER):
For a \0 and similar escape sequences meaning the null
character, report an invalid escape sequence instead of an
invalid null character because the latter does not actually
appear in the user's input.
In all escape sequence complaints, don't escape the initial
backslash, and don't quote when the sequence appears at the end
of the complaint line unless there's whitespace that quotearg
won't escape.
Consistently say "invalid" not "unrecognized".
Consistently prefer "empty character literal" over "extra
characters in character literal" warning for invalid escape
sequences; that is, consistently discard those sequences.
* tests/input.at (Bad escapes in literals): New.
2009-08-19 20:43:40 -04:00