Commit Graph

2183 Commits

Author SHA1 Message Date
Akim Demaille 3d3bc1fe30 Get rid of (yy)rhs and (yy)prhs.
These tables are no longer needed in the parsers, and they don't seem to
be useful.  They are not documented either.

	* src/output.c (prepare_rules): Get rid of rhs and prhs.
	Adjust the computation of (yy)r2.
2008-11-26 09:55:31 +01:00
Akim Demaille 08c81469c6 Rule length is unsigned.
* src/gram.h, src/gram.c (rule_rhs_length): Return a size_t.
2008-11-26 09:52:05 +01:00
Akim Demaille 932b0c960a Get rid of lalr1-split.cc.
It was no longer maintainer.

	* data/lalr1-split.cc: Remove.
	* etc/bench.pl.in (bench_fusion_parser): Remove.
	Adjust.
2008-11-26 09:48:24 +01:00
Akim Demaille 8452c667e6 Use yy* consistently.
* data/glr.c: Now that yyrhs no longer exists as a global
	variable, rename local "rhs" variables into "yyrhs" for
	consistency.
2008-11-26 09:44:21 +01:00
Akim Demaille 783aa653f4 Get rid of yyrhs and yyprhs in glr.c.
* data/glr.c (yyrhs, yyprhs): Remove.
	Instead, use the state stack and yystos.
2008-11-25 23:11:34 +01:00
Akim Demaille 6130b75585 Flag glr tests.
* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): If glr, declare it
	as an Autotest keyword.
2008-11-25 23:08:09 +01:00
Akim Demaille 95a7b1c934 Prefer TESTSUITE_FLAGS.
TESTSUITEFLAGS is barely readable.

	* tests/local.mk (TESTSUITE_FLAGS): Default to $(TESTSUITEFLAGS)
	for backward compatibility.
	Use the former instead of the latter.
2008-11-25 23:01:23 +01:00
Akim Demaille b4f1840114 Get rid of yyrhs and yyprhs in larl1.java.
* data/lalr1.java (yyrhs_, yyprhs_): Remove.
	(yy_reduce_print): Rather, use yystos_ and the state stack.
2008-11-25 22:50:10 +01:00
Akim Demaille c265fd6beb Formatting changes. 2008-11-25 22:25:16 +01:00
Akim Demaille 68dbdee86a Get rid of yyrhs and yyprhs in yacc.c.
They were used to get the symbol types, given a rule number,  when
displaying the top of the stack before a reduction.  But the symbol type
is available from the state stack.  This has two be benefits: two tables
less in the parser (making it smaller), and a more consistent use of the
three stacks which will help to fuse them.

	* data/yacc.c (yyprhs, yyrhs): Remove.
	(YY_REDUCE_PRINT): Pass yyssp to yy_reduce_print.
	(yy_reduce_print): Take yyssp as argument.
	Use it, together with yystos, to get the symbol type.
	* tests/regression.at (Web2c Report): Remove these tables from the
	expected output.
2008-11-25 22:21:24 +01:00
Akim Demaille 6ab1adbe1e b4_tables_map.
The point is to factor the generation of the tables across skeletons.
This is language dependant.

	* data/c.m4 (b4_comment_): New.
	Should be usable to define how to generate tables independently of
	the language.
	(b4_c_comment): New.
	(b4_comment): Bounce to b4_c_comment.
	Now support $2 = [PREFIX] for indentation.
	* data/lalr1.cc (b4_table_declare): Don't output a comment if
	there is no comment.
	Indent it properly when there is one.
	Output the ending semicolon.
	(b4_table_define): Space changes.
	Output the ending semicolon.
	(b4_tables_map): New.
	Use it twice instead of declaring and defining the (integral)
	tables by hand.
2008-11-25 22:18:09 +01:00
Akim Demaille 0fddb3d59f b4_table_declare.
* data/lalr1.cc (b4_table_declare): New.
	Use it to declare the tables defined with b4_table_define.
	(b4_table_define): Declare a third arg to match b4_table_declare
	signature.
	Move all the comments around invocations of b4_table_define into
	the invocations itselves.
	Move things around to have the order for declarations and
	definitions.
2008-11-25 22:14:39 +01:00
Akim Demaille c4ddc0fb0b Formatting changes.
* data/lalr1.java: here.
2008-11-25 22:11:09 +01:00
Akim Demaille e0c653e7e6 b4_args is more general than only C++.
* data/lalr1.cc (b4_args, _b4_args): Move to...
	* data/bison.m4: here.
2008-11-25 22:07:23 +01:00
Di-an Jan 4182a0a186 Implement no-XXX arguments for --warnings, --report, --trace.
* src/getargs.c (flags_argmatch): Handles no-XXX.
	Fix typo in doxygen comment.
2008-11-21 13:09:16 -08:00
Akim Demaille 01466c3ebe Display the changes in cross-options.texi.
* build-aux/cross-options.pl ($sep): New, to separate items.
	* doc/local.mk ($(CROSS_OPTIONS_TEXI)): Use diff to display the
	changes.
2008-11-21 21:25:16 +01:00
Di-an Jan a7c09cba09 Improves options in the manual.
* doc/bison.texinfo (-g, -x): Add space before argument.
	(Option Cross Key): Implement FIXME: listing directives also.
	* build-aux/cross-options.pl:  Read from <STDIN> rather than <>.
	(Short Option): Special case -d.  Put arguments inside @option.
	(Bison Directive): Add column, automatically extracted from
	src/scan-gram.l (actual name passed as the first argument)
	with special case for %define.
	* doc/local.mk (doc/cross-options.texi): Pass src/scan-gram.l
	to build-aux/cross-options.pl.
	* src/getargs.c (usage): Document limitations of cross-options.pl.
	* src/scan-gram.l: Likewise.
2008-11-20 12:36:30 -08:00
Joel E. Denny 6c88b51e83 Fix unexpanded macros in GLR defines file.
Reported by Csaba Raduly at
<http://lists.gnu.org/archive/html/bug-bison/2008-11/msg00048.html>.
* THANKS (Csaba Raduly): Add.
* data/glr.c: Fix overquoting on b4_prefix for yylval and yylloc.
* tests/calc.at (_AT_DATA_CALC_Y): If %defines is specified, generate
lexer in a separate module that includes the defines file.
(AT_CHECK_CALC): From AT_FULL_COMPILE, request compilation of lexer
source.
* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Push AT_DEFINES_IF.
Adjust AT_LOC and AT_VAL to use AT_NAME_PREFIX.
(AT_BISON_OPTION_POPDEFS): Pop AT_DEFINES_IF.
(AT_DATA_SOURCE_PROLOGUE): New.
(AT_DATA_GRAMMAR_PROLOGUE): Use AT_DATA_SOURCE_PROLOGUE.
(AT_DATA_SOURCE): New.
(AT_FULL_COMPILE): Extend to support an additional source file.
2008-11-19 00:24:34 -05:00
Akim Demaille 1e03480793 More TODO.
* TODO: More short term issues.
2008-11-18 21:06:21 +01:00
Akim Demaille e3dda35c52 Regen.
* src/parse-gram.h, src/parse-gram.c: Regen.
2008-11-18 21:03:02 +01:00
Akim Demaille bd187d7b65 Use b4_subtract where possible.
* data/lalr1.cc (b4_subtract): Move to...
	* data/bison.m4: here.
	* data/glr.c (b4_rhs_data): Use it.
	* data/yacc.c (b4_rhs_value, b4_rhs_location): Use it.
2008-11-18 20:57:26 +01:00
Akim Demaille 6085ab0d78 Remove incorrect mode specification.
* data/glr.cc: Don't pretend it's C code.
2008-11-18 20:53:21 +01:00
Joel E. Denny 9ce405ce1d Simplify last patch slightly.
* src/getargs.c (getargs): Here.
2008-11-17 10:51:17 -05:00
Joel E. Denny a8beef7e6a Fix last warning from --enable-gcc-warnings.
* src/getargs.c (getargs): Don't assign const address to non-const
pointer.
2008-11-17 10:36:28 -05:00
Joel E. Denny d50eea6df5 Don't let maintainer-*-check targets force a version update.
* cfg.mk (_is-dist-target): Implement.  maintainer-check* was already
handled.
2008-11-17 09:50:11 -05:00
Di-an Jan f5f419debe Fix formatting and content of bison.texinfo menus
* doc/bison.texinfo: Synchronize ``Detail Node Listing''.
Align menus.  Adjust word wrapping.  Use node names for menu names.
(Examples): Don't abbreviate node names.
(LocalWords): Remove abbreviations.
(Copying): Make description a sentence.
(Java Action Features): Remove period to match the rest of menu.
2008-11-17 11:08:26 +01:00
Di-an Jan d73e55e022 Handles several --enable-gcc-warnings.
* src/getargs.c (command_line_location): Set parameters to void.
* src/output.c (symbol_type_name_cmp): Make static.
(symbols_by_type_name): Set parameters to void.
(symbol_definitions_output): Remove unused parameter.  Rename as...
(prepare_symbol_definitions): this.
(muscles_output): Move symbol_definitions_output to...
(output): here as prepare_symbol_definitions.
* tests/c++.at (AT_CHECK_VARIANTS): Remove unused parameters of main.
(AT_CHECK_NAMESPACE): Make unused parameter lloc unnamed.
2008-11-17 11:01:41 +01:00
Di-an Jan 68c989dea9 Use AT_DATA_GRAMMAR for C++ variants compiled tests.
* tests/c++.at (AT_CHECK_VARIANTS): Fixes tests 198-202.
Use AT_DATA_GRAMMAR instead of AT_DATA for compiled tests.
2008-11-17 11:00:07 +01:00
Akim Demaille 90290ce5dd Fix ChangeLog. 2008-11-16 19:52:33 +01:00
Akim Demaille 23ce6f4cb3 Add missing $(EXEEXT).
* doc/local.mk ($(CROSS_OPTIONS_TEXI)): The target is
	"src/bison$(EXEEXT)".
	Reported by Di-an Jan.
2008-11-16 19:49:35 +01:00
Akim Demaille dd704c3561 Update TODO.
* TODO: Update.
2008-11-15 15:03:31 +01:00
Akim Demaille dab244d548 Formatting changes.
* tests/input.at: here.
2008-11-15 14:47:02 +01:00
Akim Demaille 4b4da9fb83 Remove duplicate header inclusion.
* src/LR0.c: here.
2008-11-15 14:43:39 +01:00
Akim Demaille 4ea3f53d26 Regen.
* src/parse-gram.h, src/parse-gram.c: Regen.
2008-11-15 14:42:37 +01:00
Akim Demaille b06df3c2c7 Fixes. 2008-11-15 14:41:58 +01:00
Akim Demaille cb823b6f0c Support parametric types.
There are two issues to handle: first scanning nested angle bracket pairs
to support types such as std::pair< std::string, std::list<std::string> > >.

Another issue is to address idiosyncracies of C++: do not glue two closing
angle brackets together (otherwise it's operator>>), and avoid sticking
blindly a TYPE to the opening <, as it can result in '<:' which is a
digraph for '['.

	* src/scan-gram.l (brace_level): Rename as...
	(nesting): this.
	(SC_TAG): New.
	Implement support for complex tags.
	(tag): Accept \n, but not <.
	* data/lalr1.cc (b4_symbol_value, b4_symbol_value_template)
	(b4_symbol_variant): Leave space around types as parameters.
	* examples/variant.yy: Use nested template types and leading ::.
	* src/parse-gram.y (TYPE, TYPE_TAG_ANY, TYPE_TAG_NONE, type.opt):
	Rename as...
	(TAG, TAG_ANY, TAG_NONE, tag.opt): these.
	* tests/c++.at: Test parametric types.
2008-11-15 14:30:05 +01:00
Akim Demaille 7b6e67533e Test token.prefix.
This is not sufficient, but we test at least that the make_SYMBOL
interface is not affected by token.prefix.  A more general test
will be implemented when the support of token.prefix is generalized
to more skeletons.

	* tests/c++.at: One more variant test, using token.prefix.
2008-11-15 14:26:46 +01:00
Akim Demaille dddec53788 Test the make_TOKEN interface.
* tests/c++.at (AT_CHECK_VARIANTS): Require and use locations.
	Factor the common code in yylex.
	Use it to test "%define lex_symbol".
2008-11-15 14:23:27 +01:00
Akim Demaille 7d3e21ba7b Formatting change. 2008-11-15 14:20:28 +01:00
Akim Demaille 4fc55348e5 Simplify code for variants bench marks.
* etc/bench.pl.in (&generate_grammar_list): Define and use
	location_type.
	Factor the common code in yylex.
2008-11-15 14:17:15 +01:00
Akim Demaille 070e650956 Better error message.
* bootstrap (find_tool): Fix the error message.
2008-11-15 11:33:00 +01:00
Akim Demaille 0078681b6b Update variant.yy to newest interface.
* examples/variant.yy: Define lex_symbol.
	Adjust.
2008-11-15 11:29:57 +01:00
Akim Demaille ff084799a3 Don't use locations in variant.yy.
* examples/variant.yy: Adjust to not using locations.
2008-11-15 11:26:58 +01:00
Akim Demaille b0d79ec65d Comment changes.
* data/local.mk, etc/local.mk, examples/local.mk: Use Automake
	comments for the license.
2008-11-15 11:23:53 +01:00
Akim Demaille d4977ce3e7 Remove tests/Makefile.am.
* tests/Makefile.am: Rename as...
	* tests/local.mk: this.
	* Makefile.am, configure.ac: Adjust.
	* Makefile.am (DISTCLEANFILES): Define.
	(maintainer-check, maintainer-xml-check, maintainer-push-check):
	Remove, we no longer need to bounce to the real targets.
2008-11-15 11:20:20 +01:00
Akim Demaille 87f1149ae2 Comment changes. 2008-11-15 11:17:14 +01:00
Akim Demaille 3641590697 djgpp/local.mk.
* Makefile.am (EXTRA_DIST): Move djgpp related part to...
	* djgpp/local.mk: this new file.
2008-11-15 11:13:57 +01:00
Akim Demaille e2c2f69650 Remove doc/Makefile.am.
* doc/Makefile.am: Rename as...
	* doc/local.mk: this.
	Adjust paths
	* Makefile.am, configure.ac: Adjust.
	* Makefile.am (MOSTLYCLEANFILES): New.
	* src/local.mk: Adjust.
2008-11-15 11:10:03 +01:00
Akim Demaille 2ead32e61c Move sc_tight_scope into maint.mk.
It does not work, and I don't know how it was supposed to work: it seems
to be looking for sources in the build tree.  I just moved it at a better
place, fixing it is still required.

	* src/local.mk (echo): Remove.
	(sc_tight_scope): Move to...
	* maint.mk: here.
2008-11-15 11:06:45 +01:00
Akim Demaille 2df9ec3774 Regen.
* src/parse-gram.h, src/parse-gram.c: Regen.
2008-11-15 11:05:29 +01:00