]> git.saurik.com Git - bison.git/log
bison.git
16 years agoFix indentation of tables in lalr1.cc
Akim Demaille [Mon, 21 Jul 2008 11:18:17 +0000 (13:18 +0200)] 
Fix indentation of tables in lalr1.cc

* data/lalr1-fusion.cc: Fix the indentation.

16 years agoDestroy the lhs symbols after reduction.
Akim Demaille [Mon, 21 Jul 2008 09:39:55 +0000 (11:39 +0200)] 
Destroy the lhs symbols after reduction.

* data/lalr1-fusion.cc (parse): After the user action, when in
variant mode, destroy the lhs symbols.

16 years agoSimplify yysyntax_error_ use.
Akim Demaille [Mon, 21 Jul 2008 09:13:43 +0000 (11:13 +0200)] 
Simplify yysyntax_error_ use.

* data/lalr1-fusion.cc (yysyntax_error_): Always pass it the token
type, but make it unnamed in the declaration when it is not used.

16 years agoLet yy::variant::build return an lvalue.
Akim Demaille [Fri, 18 Jul 2008 16:37:40 +0000 (18:37 +0200)] 
Let yy::variant::build return an lvalue.

* data/lalr1-fusion.cc (variant::build): Return a reference to the
object.

16 years agoDefine yy::variant only when needed.
Akim Demaille [Fri, 18 Jul 2008 15:56:53 +0000 (17:56 +0200)] 
Define yy::variant only when needed.

* data/lalr1-fusion.cc (yy::variant): Define only if variants are
used.

16 years agoBench the three-stack lalr1.cc.
Akim Demaille [Mon, 25 Aug 2008 14:31:23 +0000 (16:31 +0200)] 
Bench the three-stack lalr1.cc.

* etc/bench.pl.in: Bench the three-stack lalr1.cc vs. the
one-stack one.

16 years agoFail on parse error in calc++.
Akim Demaille [Fri, 18 Jul 2008 08:20:31 +0000 (10:20 +0200)] 
Fail on parse error in calc++.

* doc/bison.texinfo (calc++.cc): Propagate failures to the exit
status.
* examples/calc++/test ($me, $number, $exit, run): New.
Use them to propagate errors to the exit status.

16 years agoDon't specify the skeleton twice in the example.
Akim Demaille [Fri, 18 Jul 2008 07:17:00 +0000 (09:17 +0200)] 
Don't specify the skeleton twice in the example.

* examples/calc++/Makefile.am: Don't pass -S to Bison, the grammar
file does what is needed.

16 years agobench: Improve output.
Akim Demaille [Thu, 17 Jul 2008 14:06:20 +0000 (16:06 +0200)] 
bench: Improve output.

* etc/bench.pl.in (bench_grammar): Tune the printf format.

16 years agobench: check impact of %debug on variants.
Akim Demaille [Thu, 17 Jul 2008 13:54:30 +0000 (15:54 +0200)] 
bench: check impact of %debug on variants.

* etc/bench.pl.in (variant_grammar): Fix the computation of
$variant.
Generate a grammar file that can work with or without %debug.
Do use the @directive.
(bench_variant_parser): Check impact of %debug.
(@directives): Rename all the occurrences to...
(@directive): this, for consistency.

16 years agobench: report the size too.
Akim Demaille [Thu, 17 Jul 2008 13:23:46 +0000 (15:23 +0200)] 
bench: report the size too.

* etc/bench.pl.in ($iterations): Defaults to -3.
(&bench_grammar): Require hireswallclock.
Compute and display the size of the result.
More comments.

16 years agobench: More use of the verbosity level.
Akim Demaille [Thu, 17 Jul 2008 12:51:06 +0000 (14:51 +0200)] 
bench: More use of the verbosity level.

* etc/bench.pl.in ($verbose, &verbose): New.
Use them.
More POD documentation.

16 years agobench.pl: a command line interface
Akim Demaille [Thu, 17 Jul 2008 12:22:53 +0000 (14:22 +0200)] 
bench.pl: a command line interface

* etc/bench.pl.in: More doc.
Some fixes in the documentation.
($cflags, $iterations, &help, &getopt): New.
Use them.
(&variant_grammar): Let the number of stages be 10 times what is
specified.

16 years agoBench the use of Boost.Variants.
Akim Demaille [Thu, 17 Jul 2008 11:46:28 +0000 (13:46 +0200)] 
Bench the use of Boost.Variants.

* etc/bench.pl.in ($cxx, &variant_grammar, &bench_variant_parser):
New.
(&compile): Be ready to compile C++ parsers.
(&bench_push_parser): Move debug information to the outermost
level.
* THANKS: Add Michiel De Wilde.

16 years agobench.pl: Pass directives as a list instead of as a string.
Akim Demaille [Thu, 17 Jul 2008 09:21:21 +0000 (11:21 +0200)] 
bench.pl: Pass directives as a list instead of as a string.

* etc/bench.pl.in (&directives): New.
(&triangular_grammar, &calc_grammar): Use it to format the Bison
directives.
(&triangular_grammar): Do use the directives (were ignored).
(&bench_grammar, &bench_push_parser): Adjust to pass lists of
directives.

16 years agoImprove genericity of bench.pl.
Akim Demaille [Thu, 17 Jul 2008 09:01:30 +0000 (11:01 +0200)] 
Improve genericity of bench.pl.

* etc/bench.pl.in (&bench_grammar): Take the set of benches as
argument.
(&bench_push_parser): New.
Call it.

16 years agoAdd documentation to bench.pl.
Akim Demaille [Thu, 17 Jul 2008 08:44:03 +0000 (10:44 +0200)] 
Add documentation to bench.pl.

* etc/bench.pl.in: Comment changes.

16 years agoFuse the three stacks into a single one.
Akim Demaille [Wed, 22 Oct 2008 10:25:11 +0000 (05:25 -0500)] 
Fuse the three stacks into a single one.

In order to make it easy to perform benchmarks to ensure that there are no
performance loss, lalr1.cc is forked into lalr1-fusion.cc.  Eventually,
lalr1-fusion.cc will replace lalr1.cc.

Meanwhile, to make sure that lalr1-fusion.cc is correctly exercized by the
test suite, the user must install a symbolic link from lalr1.cc to it.

Instead of having three stacks (state, value, location), use a stack
of triples.  This considerably simplifies the code (and it will be
easier not to require locations as currently does the C++ parser),
and also gives a 10% speedup according to etc/bench (probably mainly since
memory allocation is done once instead of three times).

Another motivation is to make it easier to destruct properly
semantic values: now that they are bound to their state (hence
symbol type) it will be easier to call the appropriate destructor.

These changes should probably benefit the C parser too.

* data/lalr1.cc: Copy as...  * data/lalr1-fusion.cc: this new
file.
(b4_rhs_value, b4_rhs_location): New definitions overriding those
from c++.m4.
(state_stack_type, semantic_stack_type, location_stack_type)
(yystate_stack_, yysemantic_stack_, yylocation_stack_): Remove.
(data_type, stack_type, yystack_): New.
(YYLLOC_DEFAULT, yypush_): Adjust.
(yyerror_range): Now based on data_type, not location_type.

16 years agoPush the state, value, and location at the same time.
Akim Demaille [Wed, 22 Oct 2008 10:17:07 +0000 (05:17 -0500)] 
Push the state, value, and location at the same time.

This is needed to prepare a forthcoming patch that fuses the three
stacks into one.

* data/lalr1.cc (parser::yypush_): New.
(parser::yynewstate): Change the semantics: instead of arriving to
this label when value and location have been pushed, but yystate
is to be pushed on the state stack, now the three of them must
have been pushed before.  yystate still must be the new state.
This allows to use yypush_ everywhere instead of individual
handling of the stacks.

16 years agoPrefer references to pointers.
Akim Demaille [Wed, 22 Oct 2008 09:16:34 +0000 (04:16 -0500)] 
Prefer references to pointers.

* data/lalr1.cc (b4_symbol_actions): New, overrides the default C
definition to use references instead of pointers.
(yy_symbol_value_print_, yy_symbol_print_, yydestruct_):
Take the value and location as references.
Adjust callers.

16 years agostack::size instead of stack::height.
Akim Demaille [Tue, 21 Oct 2008 23:04:46 +0000 (18:04 -0500)] 
stack::size instead of stack::height.

* data/lalr1.cc (stack::height): Rename as...
(stack::size): this.
Fix the output type.
Comment changes.

16 years agoUse variants to support objects as semantic values.
Akim Demaille [Tue, 21 Oct 2008 23:00:29 +0000 (18:00 -0500)] 
Use variants to support objects as semantic values.

This patch was inspired by work by Michiel De Wilde.  But he used Boost
variants which (i) requires Boost on the user side, (ii) is slow, and
(iii) has useless overhead (the parser knows the type of the semantic value
there is no reason to duplicate this information as Boost.Variants do).

This implementation reserves a buffer large enough to store the largest
objects.  yy::variant implements this buffer.  It was implemented with
Quentin Hocquet.

* src/output.c (type_names_output): New.
(output_skeleton): Invoke it.
* data/c++.m4 (b4_variant_if): New.
(b4_symbol_value): If needed, provide a definition for variants.
* data/lalr1.cc (b4_symbol_value, b4_symbol_action_)
(b4_symbol_variant, _b4_char_sizeof_counter, _b4_char_sizeof_dummy)
(b4_char_sizeof, yy::variant): New.
(parser::parse): If variants are requested, define
parser::union_type, parser::variant, change the definition of
semantic_type, construct $$ before running the user action instead
of performing a default $$ = $1.
* examples/variant.yy: New.
Based on an example by Michiel De Wilde.

16 years agoParameterize the extraction of semantic values.
Akim Demaille [Tue, 21 Oct 2008 22:20:22 +0000 (17:20 -0500)] 
Parameterize the extraction of semantic values.

To make future changes easier, no longer rely on ".TYPE" being the
way to get a semantic value.

* data/c.m4 (b4_symbol_value): New.
Use it.
* data/c++.m4, data/yacc.c: Use it.
* data/glr.c: Use b4_symbol_value.
(b4_rhs_data): New.
Use it.

16 years agoPrepare easier M4 changes.
Akim Demaille [Tue, 21 Oct 2008 22:08:52 +0000 (17:08 -0500)] 
Prepare easier M4 changes.

* data/lalr1.cc: Use escaped [] instead of literals to prepare
future changes.

16 years agoInitiate further development.
Joel E. Denny [Sun, 2 Nov 2008 23:16:13 +0000 (18:16 -0500)] 
Initiate further development.

* NEWS: Create an empty section for new entries.
* gnulib: Update submodule to HEAD.

16 years ago* NEWS: Version 2.4. v2.4
Joel E. Denny [Sun, 2 Nov 2008 21:55:49 +0000 (16:55 -0500)] 
* NEWS: Version 2.4.

16 years agoPrepare for next release.
Joel E. Denny [Sun, 2 Nov 2008 21:55:14 +0000 (16:55 -0500)] 
Prepare for next release.

* NEWS: Briefly mention changes since 2.3b.
* README: Say GNU m4 1.4.6, which we've been requiring in release
announcements already, not 1.4.3, which breaks the build.

16 years agoSay %language is experimental.
Joel E. Denny [Sun, 2 Nov 2008 21:54:45 +0000 (16:54 -0500)] 
Say %language is experimental.

We're thinking of extending it's effect on output file naming.  See the
thread at
<http://lists.gnu.org/archive/html/bison-patches/2008-10/msg00003.html>.
* NEWS: Say it's experimental.
* doc/bison.texinfo (Decl Summary): Say it's experimental, and so don't
recommend it over %skeleton for now.
(Bison Options): Likewise.
(C++ Bison Interface): Use %skeleton not %language.
(Calc++ Parser): Use %skeleton not %language.
* src/getargs.c (usage): Say it's experimental.

16 years agoJava parser improvements
Di-an Jan [Thu, 16 Oct 2008 11:00:32 +0000 (13:00 +0200)] 
Java parser improvements

2008-11-01  Di-an Jan  <dianj@freeshell.org>
    Paolo Bonzini  <bonzini@gnu.org>

Support all Java parser class modifiers.
* data/java.m4 (b4_percent_define_get3): New.
(b4_final_if, b4_strictfp_if): New.
* data/lalr1.java (final, strictfp, extends, implements): Support.
* doc/bison.texinfo (final, strictfp, extends, implements): Add
documentation.
* tests/java.at (AT_CHECK_JAVA_MINIMAL): New.
(AT_CHECK_JAVA_MINIMAL_W_LEXER): New.
(AT_CHECK_JAVA_GREP): New.
(Java parser class modifiers): New test.
(Java parser class extends and implements): New test.

Model exception propagation better with throws and lex_throws.
* data/java.m4 (b4_list2): New.
(throws): Change default.
* data/lalr1.java (yyaction): Add throws.
(parse): Add lex_throws in addition to throws.
* doc/bison.texinfo (throws, lex_throws): Add documentation.
* tests/java.at (Java throws specifications): New test.

Improve documentation for Java parsers.
* doc/bison.texinfo (Java Parsers): Add subsections.
Don't quote first argument of %define.
(Java Bison Interface): Document output files.  Move documentation
of parser class and merge into Java Parser Interface.  Document
features that error out.  Document directives with no effect.
Move note about Javadoc higher.
(Java Semantic Values): Explicitly mention stype.
Document that generic types cannot be used.
(Java Location Values): Use @deftypeivar.  Document constructors.
Correct return value for toString.
(Java Parser Interface): List undocumented constants/fields.
Move documentation of fields added by %parse-param closer to list
of members.  Document that token names are added as fields.
Document constructors accurately.  Remove error method.
(Java Scanner Interface): Move note on %pure-parser to Java Bison
Interface.  Describe %code lexer and yylex accutately.
Remove documentation that does not match the code.
(Java Action Features): New.
(Java Differences): Add reference.  Add item on semantic values.
Add note about @{ ... @}.  Clarify %% epilogue placement.
(Java Declarations Summary): New.

Fix Java skeleton.
* data/java.m4 (b4_prefix): Correct quoting for m4_define_default.
(b4_remove_comma): Quote test argument.
* tests/java.at (Java parser class and package names): New test.
(Java %parse-param and %lex-param): New test.
(Java stype, position_class and location_class): New test.

16 years agocommit missing ChangeLog entry
Paolo Bonzini [Fri, 31 Oct 2008 13:32:55 +0000 (14:32 +0100)] 
commit missing ChangeLog entry

16 years agoCorrect visible errors in generated Javadoc.
Di-an Jan [Tue, 28 Oct 2008 17:38:06 +0000 (18:38 +0100)] 
Correct visible errors in generated Javadoc.

2008-10-27  Di-an Jan  <dianj@freeshell.org>

    * data/lalr1.jave: Update copyright years.
    (YYParser): Correct name of "generated from" file in Javadoc:
    use b4_file_name instead of @ofile@.
    (Location constructor): Correct Javadoc parameter name.
    (yylloc): Add missing opening m4 quote after b4_location_if.
    This removes a stray [ in the Javadoc of Lexer.getStartPos.
    (Lexer.yyerror): Fix incorrect m4 and Javadoc.
    (YYParser constructor): Correct Javadoc parameter name.

16 years agoAlways put auxiliary code files in the same dir as other output files.
Joel E. Denny [Thu, 30 Oct 2008 19:35:01 +0000 (15:35 -0400)] 
Always put auxiliary code files in the same dir as other output files.

* src/files.c (compute_file_name_parts): When the user specifies
--output but not --file-prefix, extract the directory prefix from the
file prefix not from the grammar file name.  This affects the location
of files like location.hh generated by the C++ skeleton.  The includes
in the other output files require this fix.
* tests/output.at (AT_CHECK_OUTPUT): Automatically create directories
for expected output files.
(Output files): Add a test for the above.

16 years ago* gnulib: Update submodule to HEAD.
Joel E. Denny [Wed, 29 Oct 2008 14:22:01 +0000 (10:22 -0400)] 
* gnulib: Update submodule to HEAD.

16 years agoUpdate copyright year.
Joel E. Denny [Wed, 29 Oct 2008 02:08:52 +0000 (22:08 -0400)] 
Update copyright year.

* src/files.c: Here.

16 years agoDon't overwrite the input file.
Di-an Jan [Wed, 29 Oct 2008 01:38:32 +0000 (21:38 -0400)] 
Don't overwrite the input file.

* src/files.c (output_file_name_check): Fatal error if using input file
for output.
* tests/output.at: (AT_CHECK_CONFLICTING_OUTPUT): Add return status
argument.
(Conflicting output files): Add test.

16 years agoSpace changes.
Akim Demaille [Tue, 21 Oct 2008 21:20:10 +0000 (16:20 -0500)] 
Space changes.

* data/lalr1.cc: Formatting changes.

16 years agoDon't define debugging functions when !YYDEBUG.
Akim Demaille [Tue, 21 Oct 2008 21:14:23 +0000 (16:14 -0500)] 
Don't define debugging functions when !YYDEBUG.

* data/lalr1.cc (debug_stream, set_debug_stream)
(debug_level_type, debug_level, set_debug_level): Don't
declare them when YYDEBUG is not defined.
The implementation are already YYDEBUG-aware.

16 years agoPrefer "continue" for empty loop bodies.
Akim Demaille [Tue, 21 Oct 2008 20:56:12 +0000 (15:56 -0500)] 
Prefer "continue" for empty loop bodies.

* etc/bench.pl.in: Use "continue" instead of {}.

16 years agoSpace and comments changes.
Akim Demaille [Tue, 21 Oct 2008 20:37:26 +0000 (15:37 -0500)] 
Space and comments changes.

* data/c++.m4, data/glr.c, data/lalr1.cc: Copyright year changes.
* data/c.m4, data/lalr1.cc: Space changes.

16 years agoMake gnulib a submodule.
Akim Demaille [Mon, 25 Aug 2008 15:04:30 +0000 (17:04 +0200)] 
Make gnulib a submodule.

* gnulib: New.
* .gitmodules (gnulib): New.

16 years agoFix yyerror_range for user-defined location type in C++.
Joel E. Denny [Sat, 18 Oct 2008 16:46:12 +0000 (12:46 -0400)] 
Fix yyerror_range for user-defined location type in C++.

Reported by Georg Sauthoff at
<http://lists.gnu.org/archive/html/bug-bison/2008-08/msg00008.html>.
* data/lalr1.cc (parse): Change type of yyerror_range to location_type.
* THANKS (Georg Sauthoff): Add.

16 years agoUpdate several administrative files mainly to facilitate releasing.
Joel E. Denny [Sat, 18 Oct 2008 16:17:35 +0000 (12:17 -0400)] 
Update several administrative files mainly to facilitate releasing.

* HACKING (Administrivia): Make the git-merge-changelog notes more
helpful.
(Test suite): Don't say lalr1.cc is not exercised in the test suite.
(Release Procedure): Update for git and add numerous details that were
previously missing.
* Makefile.am (EXTRA_DIST): Remove Makefile.cfg and Makefile.maint.
* maint.mk (announcement): Don't list bison as a bootstrap tool so
that announcements don't claim we bootstrapped with whatever bison
happened to be in PATH.  Add flex as a bootstrap tool.
* Makefile.maint: Remove, previously replaced by maint.mk.
* Makefile.cfg: Remove, and migrate settings to...
* cfg.mk: ... here for the sake of `make announcement'.
* bootstrap.conf (gnulib_modules): Add announce-gen.
* README: Say GNU Bison instead of just Bison.  Suggested by Karl
Berry.

16 years agosmall but important bugfixes for the Java skeleton
Paolo Bonzini [Thu, 9 Oct 2008 19:26:29 +0000 (21:26 +0200)] 
small but important bugfixes for the Java skeleton

2008-10-08  Di-an Jan  <dianj@freeshell.org>  (tiny change)

Small but important bugfixes for the Java skeleton.
* data/lalr1.java (yyerror): Change Location to b4_location_type.
(yy_symbol_print): Call toString on yyvaluep.

16 years agoClarify UPDATED use.
Akim Demaille [Fri, 29 Aug 2008 08:11:10 +0000 (10:11 +0200)] 
Clarify UPDATED use.

* doc/bison.texinfo: It refers to the last edition of this file,
not to the release date of Bison.
Reported by Joel E. Denny.

16 years agoUpdate README.
Akim Demaille [Fri, 29 Aug 2008 08:06:04 +0000 (10:06 +0200)] 
Update README.

* README: Update FAQ pointer.
Reported by Joel E. Denny.

16 years agoResync m4sugar from autoconf.
Eric Blake [Thu, 28 Aug 2008 02:44:41 +0000 (20:44 -0600)] 
Resync m4sugar from autoconf.

* data/m4sugar/m4sugar.m4 (m4_defn, m4_popdef, m4_undefine)
(m4_init): Adjust to latest m4.git changes.
(m4_mapall_sep, _m4_list_cmp, m4_version_compare): Reduce side
effects.
* data/m4sugar/foreach.m4 (_m4_shiftn): Fix off-by-one bug.
(_m4_list_cmp): Reduce side effects.

Signed-off-by: Eric Blake <ebb9@byu.net>
16 years agoCheck yyerrok in calc.at.
Akim Demaille [Mon, 4 Aug 2008 21:23:27 +0000 (23:23 +0200)] 
Check yyerrok in calc.at.

* tests/calc.at (calc.y): Use yyerrok on "( error )".
(AT_CHECK_CALC): Add a check that ensures that yyerrok works as
expected.

16 years agoSupport yyerrok in lalr1.cc.
Akim Demaille [Mon, 4 Aug 2008 21:19:26 +0000 (23:19 +0200)] 
Support yyerrok in lalr1.cc.

YYBACKUP is still to import back into lalr1.cc.

* data/lalr1.cc (yyerrork, yyclearin, YYRECOVERING): Define.

16 years agoFor maintainer-check*, don't recompile for a $(VERSION) update.
Joel E. Denny [Wed, 27 Aug 2008 03:43:03 +0000 (23:43 -0400)] 
For maintainer-check*, don't recompile for a $(VERSION) update.

* cfg.mk: New file.
(_is-dist-target): Override the one in GNUmakefile.
* Makefile.am (EXTRA_DIST): Add cfg.mk.

16 years agoUpdate for recent change to gnulib.
Joel E. Denny [Tue, 26 Aug 2008 07:33:55 +0000 (03:33 -0400)] 
Update for recent change to gnulib.
* src/parse-gram.y: Don't include strverscmp.h.  It comes from
string.h now.

16 years agoRemaining m4sugar merge from autoconf.
Eric Blake [Fri, 15 Aug 2008 17:46:20 +0000 (11:46 -0600)] 
Remaining m4sugar merge from autoconf.

* data/m4sugar/m4sugar.m4: Copy entire file from autoconf.
* data/m4sugar/foreach.m4: New file, copied from autoconf.
* data/Makefile.am (dist_m4sugar_DATA): Distribute it.
* src/output.c (output_skeleton): Tell m4 how to find it.

Signed-off-by: Eric Blake <ebb9@byu.net>
16 years agoPartial m4sugar merge from autoconf: m4_map.
Eric Blake [Fri, 15 Aug 2008 16:59:32 +0000 (10:59 -0600)] 
Partial m4sugar merge from autoconf: m4_map.

* data/m4sugar/m4sugar.m4 (m4_fst): Delete.
(m4_map, m4_map_sep, _m4_map): Rewrite more efficiently.
(m4_apply, _m4_apply, m4_mapall, m4_mapall_sep): New macros.
* data/java.m4 (b4_token_enums): Use more efficient short-circuit
for empty list.
* data/c.m4 (b4_token_defines, b4_token_enums, b4_c_ansi_formals):
Likewise.
(b4_parse_param_for): Avoid m4_fst, now that autoconf no longer
declares it.

Signed-off-by: Eric Blake <ebb9@byu.net>
16 years agoKeep .version and PACKAGE_VERSION in sync.
Joel E. Denny [Thu, 7 Aug 2008 22:37:07 +0000 (18:37 -0400)] 
Keep .version and PACKAGE_VERSION in sync.

* Makefile.am ($(top_srcdir)/.version): Declare configure as a
dependency, and add comments justifying this in more detail.  Discussed
starting at
<http://lists.gnu.org/archive/html/bison-patches/2008-07/msg00022.html>.

16 years agoPartial m4sugar merge from autoconf: m4_shiftn.
Eric Blake [Thu, 7 Aug 2008 03:22:06 +0000 (21:22 -0600)] 
Partial m4sugar merge from autoconf: m4_shiftn.

* data/m4sugar/m4sugar.m4 (m4_shiftn): Faster implementation.
(m4_shift2, m4_shift3): New macros.
(m4_case, m4_bmatch, m4_bpatsubsts, m4_join): Adjust clients.
* data/c.m4 (b4_c_function_def, b4_c_ansi_function_def)
(b4_c_ansi_function_decl, b4_c_function_call): Likewise.
* data/java.m4 (b4_remove_comma): Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
16 years agoPartial m4sugar merge from autoconf: m4_wrap vs. m4 1.6.
Eric Blake [Wed, 16 Jul 2008 18:47:48 +0000 (12:47 -0600)] 
Partial m4sugar merge from autoconf: m4_wrap vs. m4 1.6.

* data/m4sugar/m4sugar.m4 (m4_unquote, m4_wrap_lifo): New macros.
(m4_wrap): Guarantee FIFO order, in spite of m4 1.6.
(m4_init): Consolidate wrapped text into single m4_wrap.
* data/bison.m4 (b4_check_user_names_wrap): Stick with LIFO order
in wrapped text.

Signed-off-by: Eric Blake <ebb9@byu.net>
16 years agoPartial m4sugar merge from autoconf: builtins, version.m4.
Eric Blake [Wed, 16 Jul 2008 15:04:26 +0000 (09:04 -0600)] 
Partial m4sugar merge from autoconf: builtins, version.m4.

* data/m4sugar/m4sugar.m4 (changeword): Nuke.
(m4_prepend): Remove, as it is unused and inherently quadratic,
whereas m4_append is linear in newer m4.
(m4_mkstemp): New builtin.
(m4_symbols): Make rename conditional.
(m4_version_prereq): Ensure fatal error if used in bison, which
intentionally lacks version.m4.

Signed-off-by: Eric Blake <ebb9@byu.net>
16 years agoFix comments in m4sugar.
Eric Blake [Wed, 16 Jul 2008 14:39:53 +0000 (08:39 -0600)] 
Fix comments in m4sugar.

* data/m4sugar/m4sugar.m4: Comment changes, borrowed from autoconf.

Signed-off-by: Eric Blake <ebb9@byu.net>
16 years agoUpdate for recent .gitignore fix in Gnulib.
Joel E. Denny [Sat, 2 Aug 2008 19:18:21 +0000 (15:18 -0400)] 
Update for recent .gitignore fix in Gnulib.

* bootstrap: Back out 2008-07-18 hack now that gnulib-tool creates
anchored .gitignore entries.

16 years agoSet gnu or gnits strictness.
Joel E. Denny [Sat, 2 Aug 2008 06:32:29 +0000 (02:32 -0400)] 
Set gnu or gnits strictness.

* configure.ac (AM_INIT_AUTOMAKE): Set gnu strictness during
development and gnits strictness for releases.  Based on Eric Blake's
suggestion at
<http://lists.gnu.org/archive/html/bug-bison/2008-07/msg00019.html>.

16 years agoclarify documentation of %language in the NEWS file
Paolo Bonzini [Thu, 31 Jul 2008 09:01:47 +0000 (11:01 +0200)] 
clarify documentation of %language in the NEWS file

2008-07-31  Paolo Bonzini  <bonzini@gnu.org>

* NEWS: Clarify documentation of %language.

16 years agodocument and support usage of git-merge-changelog
Paolo Bonzini [Thu, 31 Jul 2008 09:00:58 +0000 (11:00 +0200)] 
document and support usage of git-merge-changelog

2008-07-31  Paolo Bonzini  <bonzini@gnu.org>

Support usage of git-merge-changelog.
* .gitattributes: New.
* HACKING: Document usage of git-merge-changelog.
* bootstrap: Install git-merge-changelog entries in .git/config
if appropriate.

16 years agoadd a .gitattributes file to use the git-merge-changelog driver
Paolo Bonzini [Thu, 31 Jul 2008 08:52:07 +0000 (10:52 +0200)] 
add a .gitattributes file to use the git-merge-changelog driver

16 years agoRemove remaining dependence on CVS Id keyword.
Joel E. Denny [Sun, 27 Jul 2008 19:49:04 +0000 (15:49 -0400)] 
Remove remaining dependence on CVS Id keyword.

* ChangeLog: For the sake of people still using CVS, don't use dollars
when mentioning Id.
* data/xslt/bison.xsl: Remove Id from header comments, where it was
unusual anyway.
* data/xslt/xml2dot.xsl: Likewise.
* data/xslt/xml2text.xsl: Likewise.
* data/xslt/xml2xhtml.xsl: Likewise.
* doc/Doxyfile.in (PROJECT_NUMBER): Don't use ID.
* doc/Makefile.am (neutralize): Remove, no longer needed.
(.x.1): Don't use neutralize.
(edit): Don't substitute for ID.
(Doxyfile): Don't define Id, and thus don't depend on ChangeLog.

16 years agoFix dependence on computed configure variables.
Joel E. Denny [Sun, 27 Jul 2008 04:56:58 +0000 (00:56 -0400)] 
Fix dependence on computed configure variables.

* doc/Makefile.am (common_dep): Depend on $(top_srcdir)/configure not
$(top_srcdir)/configure.ac so that changes to computed variables, such
as PACKAGE_VERSION, are seen.
* tests/Makefile.am ($(srcdir)/package.m4): Likewise.

16 years agoUpdate copyright dates for recent changes.
Joel E. Denny [Sun, 20 Jul 2008 22:33:17 +0000 (18:33 -0400)] 
Update copyright dates for recent changes.

* Makefile.am: Here.
* src/Makefile.am: Here.
* src/reduce.c: Here.
* tests/reduce.at: Here.

16 years agoUse git-version-gen for version names between releases.
Joel E. Denny [Fri, 18 Jul 2008 15:26:15 +0000 (11:26 -0400)] 
Use git-version-gen for version names between releases.

* .cvsignore (.tarball-version, GNUmakefile, *~): Add.
* .gitignore (/.tarball-version, /GNUmakefile, /*~): Add.
* .prev-version: New.
* .version.in: Remove.
* ChangeLog: Remove the $Id$ previously used for capturing the CVS
revision.
* GNUmakefile: Remove, now copied from Gnulib.
* Makefile.am: Add code suggested by comments in
build-aux/git-version-gen.
(EXTRA_DIST): Remove GNUmakefile, handled by Gnulib.  Add maint.mk,
.prev-version, and .version.
* NEWS (2.3b+): Rename to...
(?.?): ... this because we're dropping the "+" version naming scheme,
but, in general, we still can't be sure of our next release name.
* bootstrap: Add a quick hack to remove from .gitignore the
GNUmakefile entry that gnulib adds.  We already have a /GNUmakefile
entry.  This should really be fixed in gnulib instead.
* bootstrap.conf (gnulib_modules): Add gnumakefile.
* configure.ac (AC_INIT): Set version name by invoking
build-aux/git-version-gen.
(AC_CONFIG_FILES): Remove .version, now generated by
build-aux/git-version-gen.
* maint.mk: New, copied from coreutils.
* doc/.cvsignore (bison.1): Add.
* doc/.gitignore (/bison.1): Add.
* doc/bison.1: Remove, generated.
* src/.cvsignore (revision.c): Remove.
* src/.gitignore (/revision.c): Remove.
* src/Makefile.am (bison_SOURCES): Remove revision.c and revision.h.
(BUILT_SOURCES): Remove revision.c.
(revision.c): Remove.
* src/getargs.c (version): Don't print revision after the VERSION.
* src/revision.h: Remove.

16 years agoFix untranslatable composition of sentences.
Joel E. Denny [Wed, 16 Jul 2008 06:56:36 +0000 (02:56 -0400)] 
Fix untranslatable composition of sentences.

Reported by Goran Uddeborg at
<http://lists.gnu.org/archive/html/bug-bison/2008-06/msg00000.html>.
* THANKS (Goran Uddeborg): Add.
* src/reduce.c (reduce_print): Report the number of nonterminals and
rules useless in the grammar in separate sentences.
* tests/reduce.at (Useless Rules): Update output.
(Reduced Automaton): Likewise.
(Underivable Rules): Likewise.
(Empty Language): Likewise.

16 years agoFix some .gitignore and .cvsignore problems.
Joel E. Denny [Wed, 16 Jul 2008 06:05:14 +0000 (02:05 -0400)] 
Fix some .gitignore and .cvsignore problems.

* bootstrap (insert_sorted_if_absent): Replace all uses with...
(insert_vc_ignore): ... this new function, which prepends `/' to all
.gitignore entries before passing them to insert_sorted_if_absent.
* bootstrap.conf (vc_ignore): Set to '.cvsignore .gitignore' so that
.cvsignore files are maintained even though Bison developers run
bootstrap while using Git.
* .cvsignore (*.patch *.log log patches applied): Remove, apparently
unneeded by Bison.
(gnulib): Add.
* .gitignore (/*.patch *.log log patches applied): Remove, broken and
unneeded.  Reported by Eric Blake.
* lib/.gitignore (/*~): Add.
* po/.cvsignore, runtime-po/.cvsignore: Sync with .gitignore.
* examples/calc++/.gitignore (/calc++.exe): Add.  Reported by Eric
Blake.
* src/.gitignore (/bison.exe): Add.  Reported by Eric Blake.

16 years agoImprove forward-compatibility with GNU M4.
Joel E. Denny [Wed, 16 Jul 2008 01:00:36 +0000 (21:00 -0400)] 
Improve forward-compatibility with GNU M4.

Reported by Eric Blake at
<http://lists.gnu.org/archive/html/bug-bison/2008-07/msg00000.html>.
* bootstrap.conf (gnulib_modules): Add unsetenv.
* lib/.gitignore, lib/.cvsignore (/unsetenv.c): Add.
* m4/.gitignore, m4/.cvsignore (/environ.m4): Add.
(/setenv.m4): Add.
* src/output.c (output_skeleton): For the m4 invocation, pass -dV as
the first argument because it may become position-dependent, and unset
POSIXLY_CORRECT so Bison's skeletons have access to GNU M4 extensions.
Add comments explaining these issues in more detail.

16 years agoAdd .gitignore everywhere based on .cvsignore.
Joel E. Denny [Mon, 14 Jul 2008 10:06:26 +0000 (06:06 -0400)] 
Add .gitignore everywhere based on .cvsignore.

* .gitignore: New.
* build-aux/.gitignore: New.
* data/.gitignore: New.
* doc/.gitignore: New.
* etc/.gitignore: New.
* examples/.gitignore: New.
* examples/calc++/.gitignore: New.
* lib/.gitignore: New.
* m4/.gitignore: New.
* po/.gitignore: New.
* runtime-po/.gitignore: New.
* src/.gitignore: New.
* tests/.gitignore: New.

16 years ago* NEWS (2.3b+): New section, empty for now.
Joel E. Denny [Wed, 28 May 2008 03:25:22 +0000 (03:25 +0000)] 
* NEWS (2.3b+): New section, empty for now.
* configure.ac (AC_INIT): 2.3b -> 2.3b+.

16 years ago* NEWS (2.3b): Update release date since there has been a delay in v2.3b
Joel E. Denny [Wed, 28 May 2008 00:28:50 +0000 (00:28 +0000)] 
* NEWS (2.3b): Update release date since there has been a delay in
getting the announcements and tarballs out.

16 years ago* NEWS: Version 2.3b.
Joel E. Denny [Fri, 23 May 2008 05:32:11 +0000 (05:32 +0000)] 
* NEWS: Version 2.3b.
* configure.ac (AC_INIT): Likewise.
(PACKAGE_COPYRIGHT_YEAR): Update to 2008.

16 years ago* HACKING: Don't say don't mention HACKING in the ChangeLog. We've
Joel E. Denny [Fri, 23 May 2008 04:36:56 +0000 (04:36 +0000)] 
* HACKING: Don't say don't mention HACKING in the ChangeLog.  We've
been doing it for years.
(Test suite): Mention maintainer-push-check and maintainer-xml-check.
(Release Procedure): Add FIXME about make alpha being unmaintained.

16 years ago* data/yacc.c: Reformat m4 a little for readability.
Joel E. Denny [Tue, 13 May 2008 05:35:33 +0000 (05:35 +0000)] 
* data/yacc.c: Reformat m4 a little for readability.
* src/lalr.c (build_relations): Correct comment.

16 years ago* djgpp/config.sed: Fixes required to run configure scripts generated by autoconf...
Juan Manuel Guerrero [Mon, 12 May 2008 00:58:38 +0000 (00:58 +0000)] 
* djgpp/config.sed: Fixes required to run configure scripts generated by autoconf 2.62.

16 years agoDJGPP specific issue added.
Juan Manuel Guerrero [Mon, 12 May 2008 00:58:17 +0000 (00:58 +0000)] 
DJGPP specific issue added.

16 years ago* HACKING: Update copyright year.
Joel E. Denny [Wed, 7 May 2008 23:48:30 +0000 (23:48 +0000)] 
* HACKING: Update copyright year.

16 years ago* HACKING (Release Procedure): translation@iro.umontreal.ca is now
Joel E. Denny [Wed, 7 May 2008 23:36:40 +0000 (23:36 +0000)] 
* HACKING (Release Procedure): translation@iro.umontreal.ca is now
coordinator@translationproject.org.

16 years ago* THANKS: Add Eric Blake.
Joel E. Denny [Wed, 7 May 2008 05:02:12 +0000 (05:02 +0000)] 
* THANKS: Add Eric Blake.

16 years agoRevert prior patch, by working around autoconf regression.
Joel E. Denny [Wed, 7 May 2008 02:53:15 +0000 (02:53 +0000)] 
Revert prior patch, by working around autoconf regression.
* tests/output.at (m4_expand): Add workaround for autoconf 2.62.
("Output file name: ("): Uncomment test.
("Output file name: )"): Likewise.
Based on an idea from Noah Misch.

16 years agoGNUmakefile: Update copyright year.
Joel E. Denny [Tue, 22 Apr 2008 08:50:17 +0000 (08:50 +0000)] 
GNUmakefile: Update copyright year.

16 years agotests/output.at: Update copyright date.
Joel E. Denny [Tue, 22 Apr 2008 03:40:19 +0000 (03:40 +0000)] 
tests/output.at: Update copyright date.

16 years agoWork-around an Autoconf 2.62 AT_SETUP bug that was not present in
Joel E. Denny [Tue, 22 Apr 2008 03:37:31 +0000 (03:37 +0000)] 
Work-around an Autoconf 2.62 AT_SETUP bug that was not present in
2.61.  Reported by Juan Manuel Guerrero at
<http://lists.gnu.org/archive/html/bug-bison/2008-04/msg00011.html>.
* tests/output.at ("Output file name: ("): Comment out test case for
now.
("Output file name: )"): Likewise.

16 years ago* GNUmakefile: Update git-version-gen invocation so make dist
Joel E. Denny [Mon, 21 Apr 2008 18:16:32 +0000 (18:16 +0000)] 
* GNUmakefile: Update git-version-gen invocation so make dist
succeeds.

16 years agoUpdate to the current gnulib CVS repository, and fix trigraph handling
Joel E. Denny [Mon, 21 Apr 2008 06:54:39 +0000 (06:54 +0000)] 
Update to the current gnulib CVS repository, and fix trigraph handling
in Bison.
* bootstrap: Update gnulib CVS repository URL.
(symlink_to_dir): Encapsulate the code that guarantees the destination
directory exists into...
(check_dst_dir): ... this new function, and...
(cp_mark_as_generated): ... reuse it here so that bootstrap doesn't
fail when copying files into lib/uniwidth/.
* src/output.c (prepare_symbols): When writing yytname muscles, where
symbol names will be encoded in C-string literals, tell quotearg to
escape trigraphs.  This used to be the default in gnulib.
* tests/regression.at (Token definitions): Because of the change in
gnulib's quotearg behavior, string_as_id in parse-gram.y no longer
escapes trigraphs in symbol names.  Thus, yytname no longer has
trigraphs unnecessarily doubly escaped.  Update test case output.
Extend test case to be sure Bison's own error messages will no longer
have trigraphs in symbol names unnecessarily escaped once.

16 years agoUpdate copyright year, and fix whitespace.
Joel E. Denny [Mon, 21 Apr 2008 01:03:21 +0000 (01:03 +0000)] 
Update copyright year, and fix whitespace.

16 years agoFix make dist infinite loop reported by Juan Manuel Guerrero at
Joel E. Denny [Mon, 21 Apr 2008 00:35:54 +0000 (00:35 +0000)] 
Fix make dist infinite loop reported by Juan Manuel Guerrero at
<http://lists.gnu.org/archive/html/bug-bison/2008-01/msg00009.html>.
* .cvsignore: Add .version.
* .version.in: New.
* bootstrap.conf (gnulib_modules): Add git-version-gen.
* configure.ac (AC_CONFIG_FILES): Add .version.
* build-aux/.cvsignore: Add git-version-gen.

16 years ago* NEWS (2.3a+): Mention that -g now takes an argument.
Joel E. Denny [Sat, 8 Mar 2008 20:49:57 +0000 (20:49 +0000)] 
* NEWS (2.3a+): Mention that -g now takes an argument.
* doc/bison.texinfo (Bison Options): Reword -W entry a little for
consistency.  Update the -g and -x entries now that they take
arguments.  Use brackets to indicate optional arguments.
* src/getargs.c (usage): Explain the relationship between arguments of
long and short options more completely.  Document --defines and -d
separately since the former takes an argument but, for POSIX Yacc, the
latter does not.
(short_options): Let -W take an optional argument like --warnings.
(getargs): Sort cases.

16 years ago* doc/bison.texinfo: Fix a few typos.
Akim Demaille [Thu, 28 Feb 2008 16:28:07 +0000 (16:28 +0000)] 
* doc/bison.texinfo: Fix a few typos.

16 years ago* doc/bison.texinfo (Bison Options): Document -W.
Akim Demaille [Thu, 28 Feb 2008 16:18:37 +0000 (16:18 +0000)] 
* doc/bison.texinfo (Bison Options): Document -W.
Based on Joel E. Denny's NEWS entry, and Automake's documentation.

16 years ago* src/getargs.c (short_options): Split and sort for readability.
Akim Demaille [Thu, 28 Feb 2008 16:01:16 +0000 (16:01 +0000)] 
* src/getargs.c (short_options): Split and sort for readability.
-g and -x take optional arguments, just like their long options.
* build-aux/cross-options.pl: Use /x to make the regexp easier to
understand.
Fix the handling of $opt which resulted in all the argument to be
considered as optional.

16 years ago* NEWS (2.3a+): Don't say %language is experimental. Mention Java and
Joel E. Denny [Sat, 23 Feb 2008 04:26:14 +0000 (04:26 +0000)] 
* NEWS (2.3a+): Don't say %language is experimental.  Mention Java and
say its interface is experimental.
* doc/bison.texinfo (Decl Summary): In the %language entry, mention
Java.
(Bison Options): In the -L and --language entry, mention Java.
(Java Bison Interface): Say the interface is experimental.
* src/getargs.c (usage): Mention -L and --language.

* NEWS (2.3a+): Say the push parsing interface is experimental.
* doc/bison.texinfo (Push Decl): Likewise.
(Decl Summary): Likewise in the "%define api.push_pull" entry.
(Push Parser Function): Likewise.
(Pull Parser Function): Likewise.
(Parser Create Function): Likewise.
(Parser Delete Function): Likewise.
(Table of Symbols): Likewise in the yypstate_delete, yypstate_new,
yypull_parse, and yypush_parse entries.

* NEWS (2.3a+): Mention XML support, and say the schema is
experimental.
* doc/bison.texinfo (Bison Options): Mention -x and --xml.
* src/getargs.c (usage): Say the XML schema is experimental.

* NEWS (2.3a+): Say option instead of flag.

16 years ago* data/xslt/xml2xhtml.xsl (xsl:template match="/"): Change footer text.
Wojciech Polak [Thu, 21 Feb 2008 17:08:18 +0000 (17:08 +0000)] 
* data/xslt/xml2xhtml.xsl (xsl:template match="/"): Change footer text.

16 years ago(xsl:template match="/"): Change footer text.
Wojciech Polak [Thu, 21 Feb 2008 17:07:33 +0000 (17:07 +0000)] 
(xsl:template match="/"): Change footer text.

16 years agoFix impure push parser compile error reported by Bob Rossi at
Joel E. Denny [Wed, 20 Feb 2008 18:23:21 +0000 (18:23 +0000)] 
Fix impure push parser compile error reported by Bob Rossi at
<http://lists.gnu.org/archive/html/help-bison/2008-02/msg00023.html>.
* data/yacc.c: Clean up whitespace in the output a little.
(yypstate_allocated): Define for impure push parsers regardless of
whether the pull interface is also requested.
* tests/push.at (Push Parsing: Multiple impure instances): Extend to
check impure push parsers without the pull interface.

* data/yacc.c (yypstate_new): Don't try to invoke yyerror since
yyerror takes arguments specified by %parse-param while yypstate_new
does not.
* doc/bison.texinfo (Parser Create Function): Document that
yypstate_new returns 0 for multiple impure parser instances.
* tests/push.at (Push Parsing: Multiple impure instances): Update
expected stderr output.

16 years ago* runtime-po/POTFILES.in (push.c): Remove.
Joel E. Denny [Wed, 20 Feb 2008 00:50:00 +0000 (00:50 +0000)] 
* runtime-po/POTFILES.in (push.c): Remove.

16 years ago* src/parse-gram.c, src/parse-gram.h: Regenerate.
Joel E. Denny [Wed, 20 Feb 2008 00:03:43 +0000 (00:03 +0000)] 
* src/parse-gram.c, src/parse-gram.h: Regenerate.

16 years ago* data/Makefile.am (dist_pkgdata_DATA): Remove push.c.
Joel E. Denny [Sun, 17 Feb 2008 19:55:48 +0000 (19:55 +0000)] 
* data/Makefile.am (dist_pkgdata_DATA): Remove push.c.
* data/push.c: Rename to...
* data/yacc.c: ... this, overwriting it.
* etc/bench.pl.in (bench_grammar): `%pure-parser'-> `%define api.pure'.
`%push-pull-parser' -> `%define api.push_pull "both"'.
Remove old yacc.c tests, and update push.c tests to yacc.c.

16 years ago* data/bison.m4 (b4_percent_code_get): Output %code block comments like
Joel E. Denny [Sun, 17 Feb 2008 19:11:21 +0000 (19:11 +0000)] 
* data/bison.m4 (b4_percent_code_get): Output %code block comments like
`"%code top" blocks' instead of `%code "top" blocks'.
* data/push.c: Import yacc.c changes from 2008-01-09 and 2007-08-03.
Clean up whitespace in the output a little.