Commit Graph

5361 Commits

Author SHA1 Message Date
Joel E. Denny
51c7ca01e2 Expand GLR acronym in summary of Bison.
Based on discussion with Akim Demaille starting at
<http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00087.html>.
* doc/bison.texinfo (Introduction): Here.
* src/getargs.c (usage): Here.
2009-12-14 16:08:19 -05:00
Alex Rozenman
1f68dca514 Document named references.
* doc/bison.texinfo (Actions): Add new example and xref to
	Using Named References node.
	(Using Named References): New node.
2009-11-26 23:36:20 +02:00
Alex Rozenman
d013372c3f Document named references.
* doc/bison.texinfo (Actions): Add new example and xref to
	Using Named References node.
	(Using Named References): New node.
2009-11-26 23:24:53 +02:00
Joel E. Denny
aa01d1934c cleanup.
* src/Sbitset.c (Sbitset__new_on_obstack): Use Sbitset instead
of char*.
(Sbitset__isEmpty): Use Sbitset instead of char*.
* src/Sbitset.h (Sbitset): Make it a pointer to unsigned char
instead of char.  This helps to avoid casting errors.
(Sbitset__or): Use Sbitset instead of char*.
(cherry picked from commit 5297ebb3bc)
2009-10-16 19:40:43 -04:00
Joel E. Denny
61747047da portability: don't assume 8-bit bytes.
That is, use CHAR_BIT and UCHAR_MAX instead of 8 and 0xff.
* src/Sbitset.h (Sbitset__nbytes): Here.
(Sbitset__byteAddress): Here.
(Sbitset__bit_mask): Here.
(Sbitset__last_byte_mask): Here.
(Sbitset__ones): Here.
(SBITSET__FOR_EACH): Here.
(cherry picked from commit 175620d3c6)
2009-10-16 19:40:38 -04:00
Joel E. Denny
5297ebb3bc cleanup.
* src/Sbitset.c (Sbitset__new_on_obstack): Use Sbitset instead
of char*.
(Sbitset__isEmpty): Use Sbitset instead of char*.
* src/Sbitset.h (Sbitset): Make it a pointer to unsigned char
instead of char.  This helps to avoid casting errors.
(Sbitset__or): Use Sbitset instead of char*.
2009-10-16 19:30:32 -04:00
Joel E. Denny
175620d3c6 portability: don't assume 8-bit bytes.
That is, use CHAR_BIT and UCHAR_MAX instead of 8 and 0xff.
* src/Sbitset.h (Sbitset__nbytes): Here.
(Sbitset__byteAddress): Here.
(Sbitset__bit_mask): Here.
(Sbitset__last_byte_mask): Here.
(Sbitset__ones): Here.
(SBITSET__FOR_EACH): Here.
2009-10-16 19:30:31 -04:00
Joel E. Denny
a70596de95 portability: use va_start and va_end in the same function.
* src/complain.c (error_message): Move va_end from here...
(ERROR_MESSAGE): ... to here.
(cherry picked from commit 786578e394)
2009-10-11 16:28:16 -04:00
Joel E. Denny
786578e394 portability: use va_start and va_end in the same function.
* src/complain.c (error_message): Move va_end from here...
(ERROR_MESSAGE): ... to here.
2009-10-11 16:15:39 -04:00
Joel E. Denny
416a9da61e * data/bison.m4: Update comments for rename to muscle-tab.h.
(cherry picked from commit 51f255a530)
2009-10-08 17:21:59 -04:00
Joel E. Denny
51f255a530 * data/bison.m4: Update comments for rename to muscle-tab.h. 2009-10-08 17:08:01 -04:00
Joel E. Denny
23ec25b7c6 Rename muscle_tab.* to muscle-tab.* for consistency with master.
* src/Makefile.am (bison_SOURCES): Update.
* src/getargs.c, src/ielr.c, src/lalr.c, src/main.c,
src/output.c, src/parse-gram.y, src/print.c, src/reader.c,
src/tables.c: Update include.
* src/muscle_tab.c, src/muscle_tab.h: Rename to...
* src/muscle-tab.c, src/muscle-tab.h: ... these and update
include.
2009-10-08 16:58:22 -04:00
Joel E. Denny
0ab402b48b Minor code cleanup.
* src/muscle_tab.c (MUSCLE_USER_NAME_CONVERT): Remove macro and
replace all uses with UNIQSTR_CONCAT.
* src/uniqstr.c (uniqstr_vsprintf): New function.
* src/uniqstr.h (uniqstr_vsprintf): Add prototype.
(UNIQSTR_CONCAT, UNIQSTR_GEN_FORMAT, UNIQSTR_GEN_FORMAT_): New
macros.
(cherry picked from commit 10659d0ec9)

Conflicts:

	src/muscle_tab.c
2009-10-08 01:54:31 -04:00
Joel E. Denny
10659d0ec9 Minor code cleanup.
* src/muscle-tab.c (MUSCLE_USER_NAME_CONVERT): Remove macro and
replace all uses with UNIQSTR_CONCAT.
* src/uniqstr.c (uniqstr_vsprintf): New function.
* src/uniqstr.h (uniqstr_vsprintf): Add prototype.
(UNIQSTR_CONCAT, UNIQSTR_GEN_FORMAT, UNIQSTR_GEN_FORMAT_): New
macros.
2009-10-08 01:31:07 -04:00
Joel E. Denny
3c5362b825 * TODO (Complaint submessage indentation): New. 2009-10-06 12:48:43 -04:00
Joel E. Denny
42ec0ae176 Minor code cleanup.
* src/parse-gram.y: Clean up sorting of declarations.
Use types to simplify %printer declarations where possible.
Provide %printer for BRACKETED_ID and symbol.prec.
* src/symtab.c: Whitespace change.
(cherry picked from commit b143f4048f)

Conflicts:

	src/parse-gram.c
	src/parse-gram.h
	src/parse-gram.y
2009-10-05 00:12:58 -04:00
Joel E. Denny
b143f4048f Minor code cleanup.
* src/parse-gram.y: Clean up sorting of declarations.
Use types to simplify %printer declarations where possible.
Provide %printer for BRACKETED_ID and symbol.prec.
* src/symtab.c: Whitespace change.
2009-10-05 00:12:41 -04: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
Akim Demaille
9da640eaa8 Pass the token type to yysyntax_error.
* data/yacc.c (yysyntax_error): Take the transated token instead
of the raw number.
Adjust callers.
(cherry picked from commit 84eedf86fe)

Conflicts:

	TODO
2009-10-04 16:24:17 -04:00
Akim Demaille
d3d3628bde Simplify the i18n of the error messages.
* data/yacc.c (yysyntax_error): Rewrite, using a switch instead
of building dynamically the format string.
(cherry picked from commit eeb2942237)

Conflicts:

	data/lalr1.cc
2009-10-04 16:24:17 -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
37318e2fe9 benchmarks: use %debug consistently among grammars.
* etc/bench.pl.in (generate_grammar_triangular): Do not activate
%debug by default.  It can affect the timings even if yydebug=0.
(generate_grammar_calc): For consistency with other grammars,
use YYDEBUG environment variable to set yydebug.
2009-10-04 14:35:12 -04:00
Joel E. Denny
4c6b13f37e Remove dead code.
* src/symtab.c (symbol_pack): Here because every symbol's number
is always defined by this time.
(cherry picked from commit f74d6d2591)
2009-10-04 13:21:07 -04:00
Joel E. Denny
f74d6d2591 Remove dead code.
* src/symtab.c (symbol_pack): Here because every symbol's number
is always defined by this time.
2009-10-04 13:09:47 -04:00
Alex Rozenman
f840c05ad4 Add additional space after periods in NEWS.
* NEWS (2.5): here.
2009-10-03 18:42:31 +02:00
Alex Rozenman
5b1ff42379 Add additional space after periods in NEWS.
* NEWS (2.5): here.
2009-10-03 18:29:14 +02:00
Joel E. Denny
17a407dc51 Use the correct conversion specifier for size_t.
Reported by Jim Meyering.
* src/Sbitset.h (SBITSET__INDEX__CONVERSION_SPEC): New, "zu"
because Sbitset__Index is size_t.
* src/Sbitset.c (Sbitset__fprint): Use it instead of %d.
(cherry picked from commit 47eced3099)
2009-09-29 08:31:14 -04:00
Joel E. Denny
47eced3099 Use the correct conversion specifier for size_t.
Reported by Jim Meyering.
* src/Sbitset.h (SBITSET__INDEX__CONVERSION_SPEC): New, "zu"
because Sbitset__Index is size_t.
* src/Sbitset.c (Sbitset__fprint): Use it instead of %d.
2009-09-29 07:04:29 -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
Akim Demaille
232be91a83 doc: comment changes.
* doc/bison.texinfo: Comment changes.
(cherry picked from commit 6b5a0de960)

Conflicts:

	doc/bison.texinfo
2009-09-25 23:53:32 -04:00
Akim Demaille
c781580d07 doc: spell checking.
* doc/bison.texinfo: here.
(cherry picked from commit f50bfcd6a1)

Conflicts:

	doc/bison.texinfo
2009-09-25 23:33:19 -04:00
Akim Demaille
298e8ad91a Formatting changes.
* doc/bison.texinfo: here.
2009-09-23 15:07:29 +02: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
Akim Demaille
5ad90d528d todo: short term
* TODO (syntax_error, variable names): New.
2009-09-17 09:43:23 +02:00
Akim Demaille
a6ca4ce229 doc: fixes.
* doc/bison.texinfo: here.
	Reported by Alex Rozenman.
2009-09-17 09:42:30 +02:00
Akim Demaille
3cdc21cfd7 doc: lalr1.cc and variants.
* doc/bison.texinfo (Decl Summary): Document the "lex_symbol" and
	"variant" %define variables.
	(C++ Semantic Values): Split into...
	(C++ Unions, C++ Variants): these.
	The latter is new.
	(C++ Parser Interface): Fix type names.
	Document parser::syntax_error.
	Document the fact that locations are not mandatory.
	(C++ Scanner Interface): Split into...
	(Split Symbols, Complete Symbols): these.
	The later is new.
	(Calc++ Parsing Driver): Use variants.
	Add more comments.
	Adjust style.
	(Calc++ Parser): Declare all the tokens, no
	longer accept raw characters.
	Remove %union.
	Adjust types and printers.
	Remove destructors.
	(Calc++ Scanner): Use make_<SYMBOL> functions.
	Use strerror in error message.
2009-09-16 22:56:41 +02:00
Akim Demaille
f50bfcd6a1 doc: spell checking.
* doc/bison.texinfo: here.
2009-09-16 22:56:37 +02:00
Akim Demaille
6b5a0de960 doc: comment changes.
* doc/bison.texinfo: Comment changes.
2009-09-16 22:56:24 +02:00
Akim Demaille
2b08bcebf0 lalr1.cc: factor the yytranslate_ invocation in make_SYMBOLS.
* data/c++.m4, data/lalr1.cc (parser::symbol_type): Change the
	constructor to take a token_type instead of the (internal) symbol
	number.
	Call yytranslate_.
	* data/variant.hh (b4_symbol_constructor_define_): Therefore,
	don't call yytranslate_ here.
2009-09-16 17:45:22 +02:00
Akim Demaille
c981ce9b2b TODO: statistics.
* TODO (Figures): New.
2009-09-16 17:31:03 +02: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