]> git.saurik.com Git - bison.git/log
bison.git
14 years agoparse.lac: implement as %define variable.
Joel E. Denny [Sat, 11 Dec 2010 16:13:33 +0000 (11:13 -0500)] 
parse.lac: implement as %define variable.

LAC = lookahead correction.  See discussion at
<http://lists.gnu.org/archive/html/bison-patches/2009-09/msg00034.html>.
However, one point there must be corrected: because of %nonassoc,
LAC is *not* always redundant for lr.type=canonical-lr.
* data/yacc.c: Accept values of "none" (default) or "full" for
parse.lac.  Accept %define parse.lac.es-capacity to specify
capacity of LAC's temporary exploratory stack.  It defaults to 20
and, for now, will not grow dynamically.
(b4_lac_flag, b4_lac_if): New m4 macros.  Evaluate as true for
parse.lac!=none.
(YYBACKUP): Invoke YY_LAC_DISCARD.
(YY_LAC_ESTABLISH, YY_LAC_DISCARD): New cpp macros that invoke
yy_lac and track when it needs to be invoked
(yy_lac): New function that, given the current stack, determines
whether a token can eventually be shifted.  Return status mimics
yyparse return status.
(yysyntax_error): Change yystate argument to yyssp so stack top
can be passed to yy_lac.  If LAC is requested, build expected
token list by invoking yy_lac for every token instead of just
checking the current state for lookaheads.  Return 2 if yy_lac
exhausts memory.
(yyparse, yypush_parse): Use local variable yy_lac_established and
cpp macros YY_LAC_ESTABLISH and YY_LAC_DISCARD to implement LAC.
Update yysyntax_error invocation.  Add yyexhaustedlab code if LAC
is requested.
* tests/conflicts.at (%nonassoc and eof): Extend to check the
effect of each of -Dlr.type=canonical-lr and -Dparse.lac=full.
(parse.error=verbose and consistent errors): Likewise.
(LAC: %nonassoc requires splitting canonical LR states): New test
group demonstrating how LAC can fix canonical LR.
* tests/input.at (LAC: Errors for %define): New test group.
* tests/regression.at (LAC: Exploratory stack): New test group.
(LAC: Memory exhaustion): New test group.

14 years agobuild: use gnulib's new bootstrap_sync option.
Joel E. Denny [Sun, 21 Nov 2010 15:07:13 +0000 (10:07 -0500)] 
build: use gnulib's new bootstrap_sync option.

Now, whenever we update bison's copy of gnulib, bootstrap will
update itself the next time it's run.
* bootstrap: Copy from latest gnulib for bootstrap_sync support.
* bootstrap.conf (bootstrap_sync): Set to true.
* gnulib: Update to latest so bootstrap is in sync now.

14 years agoyysyntax_error: fix for consistent error with lookahead.
Joel E. Denny [Sun, 7 Nov 2010 21:01:56 +0000 (16:01 -0500)] 
yysyntax_error: fix for consistent error with lookahead.

* NEWS (2.5): Document.
* data/yacc.c (yysyntax_error): In a verbose syntax error
message while in a consistent state with a default action (which
must be an error action given that yysyntax_error is being
invoked), continue to drop the expected token list, but don't
drop the unexpected token unless there actually is no lookahead.
Moreover, handle that internally instead of returning 1 to tell
the caller to do it.  With that meaning of 1 gone, renumber
return codes more usefully.
(yyparse, yypush_parse): Update yysyntax_error usage.  Most
importantly, set yytoken to YYEMPTY when there's no lookahead.
* data/glr.c (yyreportSyntaxError): As in yacc.c, don't drop the
unexpected token unless there actually is no lookahead.
* data/lalr1.cc (yy::parser::parse): If there's no lookahead,
pass yyempty_ not yyla.type to yysyntax_error_.
(yy::parser::yysyntax_error_): Again, don't drop the unexpected
token unless there actually is no lookahead.
* data/lalr1.java (YYParser::parse): If there's no lookahead,
set yytoken to yyempty_ before invoking yysyntax_error.
(YYParser::yysyntax_error): Again, don't drop the unexpected
token unless there actually is no lookahead.
* tests/conflicts.at (parse.error=verbose and consistent
errors): Extend test group to further reveal how the previous
use of the simple "syntax error" message was too general.  Test
yacc.c, glr.c, lalr1.cc, and lalr1.java.  No longer an expected
failure.
* tests/java.at (AT_JAVA_COMPILE, AT_JAVA_PARSER_CHECK): Move
to...
* tests/local.at: ... here.
(_AT_BISON_OPTION_PUSHDEFS): Push AT_SKEL_JAVA_IF definition.
(AT_BISON_OPTION_POPDEFS): Pop it.
(AT_FULL_COMPILE): Extend to handle Java.

14 years agoyysyntax_error: more preparation for readability of next patch.
Joel E. Denny [Sun, 7 Nov 2010 14:45:18 +0000 (09:45 -0500)] 
yysyntax_error: more preparation for readability of next patch.

There are no behavioral changes here.
* data/glr.c (yyreportSyntaxError): Reorganize.
* data/lalr1.cc (yy::parser::yysyntax_error_): Reorganize.
* tests/conflicts.at (parse.error=verbose and consistent errors):
Reorganize.

14 years agoyysyntax_error: prepare for readability of next patches.
Joel E. Denny [Sun, 7 Nov 2010 14:44:07 +0000 (09:44 -0500)] 
yysyntax_error: prepare for readability of next patches.

These are purely whitespace changes that result in ugly code
but that make the next couple of patches much easier to read.
* data/glr.c (yyreportSyntaxError): Reindent.
* data/lalr1.cc (yy::parser::yysyntax_error_): Reindent.
* data/lalr1.java (YYParser::yysyntax_error): Reindent.
* data/yacc.c (yysyntax_error): Reindent.

14 years agoFix memory leak.
Joel E. Denny [Mon, 1 Nov 2010 01:26:22 +0000 (21:26 -0400)] 
Fix memory leak.

* src/output.c (prepare_rules): Free temporary array.

14 years agoyysyntax_error: improve invocation readability.
Joel E. Denny [Sun, 31 Oct 2010 22:56:34 +0000 (18:56 -0400)] 
yysyntax_error: improve invocation readability.

* data/yacc.c (yyparse, yypush_parse): For yysyntax_error
invocation, get rid of the while loop, which is misleading
because there are really at most two iterations.

14 years ago* ChangeLog: Correct some errors in previous entries.
Joel E. Denny [Sun, 31 Oct 2010 22:23:12 +0000 (18:23 -0400)] 
* ChangeLog: Correct some errors in previous entries.

14 years agomaint: re-anchor all .gitignore entries.
Joel E. Denny [Sun, 17 Oct 2010 14:18:26 +0000 (10:18 -0400)] 
maint: re-anchor all .gitignore entries.

* bootstrap: Copy from gnulib's latest for the fix to
automatically anchor entries it constructs.
* gnulib: Update to latest just so it has the same bootstrap.
* .gitignore, build-aux/.gitignore, doc/.gitignore:
* lib/.gitignore, m4/.gitignore, po/.gitignore:
* runtime-po/.gitignore: Re-anchor all entries.

14 years agoFix portability problem on OpenBSD 4.7.
Paul Eggert [Fri, 8 Oct 2010 19:12:48 +0000 (12:12 -0700)] 
Fix portability problem on OpenBSD 4.7.

Jim Meyering reported this in
<http://lists.gnu.org/archive/html/bug-bison/2010-10/msg00007.html>.
* data/yacc.c: Use EXIT_SUCCESS as a witness for stdlib.h,
not _STDLIB_H.  EXIT_SUCCESS has been defined by the standard
for quite some time.
* src/parse-gram.c, src/parse-gram.h: Regenerate.
* tests/regression.at: Tamper with the renamed witness.

14 years agoAdjust to recent changes to gnulib bootstrap.
Paul Eggert [Fri, 8 Oct 2010 18:10:06 +0000 (11:10 -0700)] 
Adjust to recent changes to gnulib bootstrap.

* .cvsignore, build-aux/.cvsignore, doc/.cvsignore, etc/.cvsignore:
* examples/calc++/.cvsignore, lib/.cvsignore, m4/.cvsignore:
* po/.cvsignore, runtime-po/.cvsignore, src/.cvsignore:
* tests/.cvsignore: Remove; I don't use CVS to maintain Bison
anymore and don't know of anybody else who does.  If someone needs
these files, they can resurrect them.
* .gitignore, build-aux/.gitignore, doc/.gitignore, lib/.gitignore:
* m4/.gitignore, po/.gitignore, runtime-po/.gitignore:
Omit leading '/', since bootstrap omits it.
Adjust file names to match current contents better.
* bootstrap: Sync from gnulib: this contains the new gnulib_mk_hook
installed just for us.
* bootstrap.conf (excluded_files): Don't exclude codeset.m4,
glibc21.m4, inttypes_h.m4, size_max.m4, xsize.m4, as they are now
needed somehow.  Don't have time to look into why.
(gnulib_modules): Change malloc to malloc-gnu.  Do we really assume
the GNU malloc behavior, where malloc (0) != NULL unless we're
out of storage?  If not, we can omit malloc-gnu; but for now I left
it in to be safe.
(vc_ignore): Remove.
(gnulib_mk_hook): New function.
* README-hacking: Renamed from HACKING, since gnulib bootstrap now
uses that convention.

14 years agoSync from upstream gnulib and autoconf.
Paul Eggert [Fri, 8 Oct 2010 18:03:04 +0000 (11:03 -0700)] 
Sync from upstream gnulib and autoconf.

14 years agoRemove compiler warnings in GLR parsers.
Paul Hilfinger [Thu, 9 Sep 2010 07:46:50 +0000 (00:46 -0700)] 
Remove compiler warnings in GLR parsers.

* data/glr.c (yySymbol): Define as int to avoid compiler warnings
about possible change of value.

14 years agoFix some errors that were causing testsuite failures for GLR.
Paul Hilfinger [Wed, 8 Sep 2010 07:52:05 +0000 (00:52 -0700)] 
Fix some errors that were causing testsuite failures for GLR.

* data/glr.c (yy_reduce_print): Change yyrhsVals to yyvsp to remove
compiler errors when using %debug.
Add declaration of yylow when locations in use to avoid compilation
error.
(yyglrReduce): Conditionalize message "Parse ... rejected by rule..."
on whether we are in split mode, for consistency with behavior of
non-GLR parsing.

14 years agoAddress GCC warnings about shadowed local variables (yyflag).
Akim Demaille [Wed, 1 Sep 2010 13:13:27 +0000 (15:13 +0200)] 
Address GCC warnings about shadowed local variables (yyflag).

* data/glr.c (YYCHK): Rename yyflag as yychk_flag.
(yyprocessOneStack): Reduce the scope of yyaction, yyconflicts,
yyrule, and yyflag.

14 years agoVersion 2.4.3.
Joel E. Denny [Fri, 6 Aug 2010 00:56:44 +0000 (20:56 -0400)] 
Version 2.4.3.

* NEWS (2.4.3): Set date.
(cherry picked from commit 06d61f775a47b9ae42c84872090cdbaf7204aef7)

Conflicts:

NEWS

14 years agomaint: add gettext version to release announcements.
Joel E. Denny [Thu, 5 Aug 2010 01:15:59 +0000 (21:15 -0400)] 
maint: add gettext version to release announcements.

Suggested by Paul Hilfinger at
<http://lists.gnu.org/archive/html/bison-patches/2010-07/msg00019.html>
<http://lists.gnu.org/archive/html/bison-patches/2010-08/msg00002.html>.
* cfg.mk (bootstrap-tools): Add gettext.
(cherry picked from commit b3b18068885986d25ec2c8f76a7d2b971194598a)

14 years agodoc: fix -W and %expect documentation some.
Joel E. Denny [Thu, 5 Aug 2010 00:17:40 +0000 (20:17 -0400)] 
doc: fix -W and %expect documentation some.

* NEWS (2.4.3): Mention that there are documentation fixes.
* doc/bison.texinfo (Expect Decl): Make it clear that %expect
turns conflicts into errors not warnings.
(Shift/Reduce): Likewise.
(Bison Options): Don't mention -Wsyntax.  It doesn't exist.
(cherry picked from commit 3ffdd5f1254fd9403a5a1d31dbdc5b2756c22775)

14 years ago-Werror: fix for rules useless in parser after conflicts.
Joel E. Denny [Sun, 1 Aug 2010 22:51:46 +0000 (18:51 -0400)] 
-Werror: fix for rules useless in parser after conflicts.

* NEWS (2.4.3): Document fix.
* src/complain.c (error_message): Extend to handle incomplete
error messages so warn and warn_at can be used in more cases.
* src/gram.c (grammar_rules_useless_report): Use warn_at so that
-Werror is always obeyed.
* src/reduce.c (reduce_print): Use warn so that the "warnings
being treated as errors" message is printed consistently before
the first warning message.  This makes testing easier.
* tests/local.at (AT_BISON_WERROR_MSG): New macro.
(AT_BISON_CHECK_NO_XML): Extend to check -Werror and
--warnings=error when warnings appear in bison's stderr.
(cherry picked from commit 954474bfa1a875eeefe9aa1989d9c7be6f64726b)

14 years agoRemove restrictions on expanding GLR stacks in C++.
Paul Hilfinger [Thu, 29 Jul 2010 08:43:37 +0000 (01:43 -0700)] 
Remove restrictions on expanding GLR stacks in C++.

    * data/glr.c:  Remove tests for __cplusplus related to definition of
    YYSTACKEXPANDABLE.
    * doc/bison.texinfo: Rewrite paragraph saying C++ stacks are not
    expandable to instead indicate conditions that prevent their expansion
    in C++.  Reorganize section on GLR semantic values a bit. Remove
    discussion of YYLLOC_DEFAULT. Mention restrictions to POD data.

14 years agomaint: enable gnits only at stable releases.
Joel E. Denny [Fri, 30 Jul 2010 02:05:09 +0000 (22:05 -0400)] 
maint: enable gnits only at stable releases.

* configure.ac (AM_INIT_AUTOMAKE): Underscore or dash in a
version string should disable gnits.  Explain in comments.
(cherry picked from commit 122ff4442985540837fae4b4c904c7018a1a3d38)

Conflicts:

configure.ac

14 years agoi18n: update.
Joel E. Denny [Thu, 29 Jul 2010 01:59:34 +0000 (21:59 -0400)] 
i18n: update.

* po/POTFILES.in: Add src/graphviz.c.
(cherry picked from commit 82df2d6dd61f07bbf7e82c90a7b4c18752a325c0)

14 years agoi18n: fix for gnulib.
Joel E. Denny [Thu, 29 Jul 2010 01:46:07 +0000 (21:46 -0400)] 
i18n: fix for gnulib.

* po/POTFILES.in: Add remaining gnulib files that have
translatable strings.
(cherry picked from commit 4b07bd01d81cca58fb8e0ca86ea40669895fd90c)

14 years agobuild: fix our adjustments for gnulib files in lib.
Joel E. Denny [Mon, 26 Jul 2010 01:24:02 +0000 (21:24 -0400)] 
build: fix our adjustments for gnulib files in lib.

* configure.ac: For prepending lib/ to the values of config
variables, fix detection of empty values.  Also, due to recent
gnulib changes, add LIBUNISTRING_UNITYPES_H and
LIBUNISTRING_UNIWIDTH_H to the list of those variables.

14 years agomaint: use announce-gen's new --mail-headers.
Joel E. Denny [Sun, 25 Jul 2010 19:53:18 +0000 (15:53 -0400)] 
maint: use announce-gen's new --mail-headers.

* HACKING (Announce): Update instructions.
* cfg.mk (announcement_Cc_): Define.
* configure.ac (AM_GNU_GETTEXT_VERSION): Update to 0.18 as
required by latest gnulib.
* gnulib: Update to latest.
(cherry picked from commit e5655564583f2f704dd85d6f602f5fcd86f87467)

14 years agotests: handle Valgrind that complains about >&-.
Joel E. Denny [Sat, 24 Jul 2010 20:30:07 +0000 (16:30 -0400)] 
tests: handle Valgrind that complains about >&-.

* tests/output.at (AT_CHECK_OUTPUT): Extend to accept pre-tests.
(Output files: -dv >&-): Skip test group if running
maintainer-check-valgrind.
(cherry picked from commit c027cccb351b7b553f92a827787fa91d28934e5c)

Conflicts:

tests/output.at

14 years agoAllow specification of semantic predicates.
Paul Hilfinger [Fri, 23 Jul 2010 02:08:10 +0000 (19:08 -0700)] 
Allow specification of semantic predicates.

These changes allow users to prefix an action with %? to indicate that it
is a semantic predicate---an expression that is evaluated immediately (not
deferred, even in GLR nondeterministic mode) and causes a syntax error if
false.  In GLR parsers, this has the effect of killing one of a set of
split-off parses, just as would an ordinary syntax error.

Changelog:

    * NEWS: Describe new semantic-predicate feature.
    * data/c.m4 (b4_predicate_case): New definition.
    * data/java.m4 (b4_predicate_case): New definition.
    * data/glr.c (yyimmediate): Add definition.
    (yydoAction): Remove comment, now obsolete.
    Do YY_REDUCE_PRINT here.
    (yyglrReduce): Alter comment to indicate that semantic values
    need not be deferred.
    Remove YY_REDUCE_PRINT from here; done in yydoAction.
    (yyprocessOneStack): Pass immediate flag.
    Delete stacks rejected by predicates in newly split-off parsers.
    Change handling of yyerr so that only current stack gets deleted
    when semantic predicate fails.
    (yyfillin): Don't crash if a semantic value is unresolved (as may
    happen in predicate rules).
    Copy lr state as well in debugging mode.
    Update comment on setting of yysval to include yyloc as well.
    (yy_reduce_print): Add yynormal argument.  Perform fillin properly.
    Report unresolved RHS values.
    (yyimmediate): New table.
    * src/gram.h (struct rule): Add is_predicate field.
    * src/output.c (user_actions_output): Use b4_predicate_case for
    predicates.
    (prepare_symbols): Output yyimmediate.
    * src/scan-gram.l: Add %? token, SC_PREDICATE state.
    * src/scan-code.l (code_props_rule_action_init): Add is_predicate
    argument.
    * src/scan-code.h (struct code_props): Add is_predicate field.
    (code_props_rule_action_init): New interface.
    * src/parse-gram.y (%?{...}): New token.
    (rhs): Add %?{...} rule.
    * src/parse-gram.c: Regenerate.
    * src/parse-gram.h: Regenerate.
    * src/reader.c (grammar_current_rule_action_append): Add
    immediate argument.
    (grammar_midrule_action): Use new interface for
    code_props_rule_action_init.
    (grammar_current_rule_action_append): Ditto.
    (packgram): Transfer is_predicate value.
    * src/reader.h (grammar_current_rule_action_append): New interface.
    * doc/bison.texinfo: Document semantic predicates (%?).

    * data/glr.c (yylhsNonterm, yyisDefaultedState,yyDefaultAction)
    (yygetLRActions,yynewGLRStackItem,yyaddDeferredAction,yyinitStateSet)
    (yyinitGLRStack,yyexpandGLRStack,yyupdateSplit,yymarkStackDeleted)
    (yyundeleteLastStack,yyglrShift,yyglrShiftDefer,yydoAction,yyglrReduce)
    (yyidenticalOptions,yymergeOptionSets,yyresolveStates,yyresolveAction)
    (yyresolveLocations,yyresolveValue,yyreducePrint): Update parameter
    names in comments and mention all parameters.
    (struct yyGLRState): Fix description of yyposn field.
    (yyresolveLocations): Correct comment so as not to imply action when
    yyn1==0.

14 years agoUpdate from GFDL GFDL 1.2 to 1.3.
Paul Eggert [Fri, 18 Jun 2010 06:53:50 +0000 (23:53 -0700)] 
Update from GFDL GFDL 1.2 to 1.3.

* doc/bison.texinfo: Update GFDL version number.
* doc/fdl.texi: Update to version 1.3, taken from:
http://www.gnu.org/licenses/fdl.texi

14 years agoDo not use date ranges in copyright notices.
Paul Eggert [Fri, 18 Jun 2010 06:16:36 +0000 (23:16 -0700)] 
Do not use date ranges in copyright notices.

See http://www.gnu.org/prep/maintain/maintain.html#Copyright-Notices

* HACKING, Makefile.am, NEWS, PACKAGING, README, README-alpha:
* TODO, bootstrap, bootstrap.conf:
* build-aux/update-b4-copyright, cfg.mk, configure.ac:
* data/README, data/bison.m4, data/c++-skel.m4, data/c++.m4:
* data/c-skel.m4, data/c.m4, data/glr.c, data/glr.cc:
* data/java-skel.m4, data/java.m4, data/lalr1.cc:
* data/lalr1.java, data/local.mk, data/location.cc:
* data/stack.hh, data/variant.hh, data/xslt/bison.xsl:
* data/xslt/xml2dot.xsl, data/xslt/xml2text.xsl:
* data/xslt/xml2xhtml.xsl, data/yacc.c, djgpp/Makefile.maint:
* djgpp/README.in, djgpp/config.bat, djgpp/config.sed:
* djgpp/config.site, djgpp/config_h.sed, djgpp/djunpack.bat:
* djgpp/local.mk, djgpp/subpipe.c, djgpp/subpipe.h:
* djgpp/testsuite.sed, doc/bison.texinfo, doc/local.mk:
* doc/refcard.tex, etc/README, etc/bench.pl.in, etc/local.mk:
* examples/calc++/Makefile.am, examples/extexi:
* examples/local.mk, lib/abitset.c, lib/abitset.h:
* lib/bbitset.h, lib/bitset.c, lib/bitset.h:
* lib/bitset_stats.c, lib/bitset_stats.h, lib/bitsetv-print.c:
* lib/bitsetv-print.h, lib/bitsetv.c, lib/bitsetv.h:
* lib/ebitset.c, lib/ebitset.h, lib/get-errno.c:
* lib/get-errno.h, lib/lbitset.c, lib/lbitset.h:
* lib/libiberty.h, lib/local.mk, lib/main.c, lib/timevar.c:
* lib/timevar.def, lib/timevar.h, lib/vbitset.c:
* lib/vbitset.h, lib/yyerror.c, m4/bison-i18n.m4:
* m4/c-working.m4, m4/cxx.m4, m4/subpipe.m4, m4/timevar.m4:
* src/AnnotationList.c, src/AnnotationList.h:
* src/InadequacyList.c, src/InadequacyList.h, src/LR0.c:
* src/LR0.h, src/Sbitset.c, src/Sbitset.h, src/assoc.c:
* src/assoc.h, src/closure.c, src/closure.h, src/complain.c:
* src/complain.h, src/conflicts.c, src/conflicts.h:
* src/derives.c, src/derives.h, src/files.c, src/files.h:
* src/flex-scanner.h, src/getargs.c, src/getargs.h:
* src/gram.c, src/gram.h, src/graphviz.c, src/ielr.c:
* src/ielr.h, src/lalr.c, src/lalr.h, src/local.mk:
* src/location.c, src/location.h, src/main.c:
* src/muscle-tab.c, src/muscle-tab.h, src/named-ref.c:
* src/named-ref.h, src/nullable.c, src/nullable.h:
* src/output.c, src/output.h, src/parse-gram.y:
* src/print-xml.c, src/print-xml.h, src/print.c, src/print.h:
* src/print_graph.c, src/print_graph.h, src/reader.c:
* src/reader.h, src/reduce.c, src/reduce.h, src/relation.c:
* src/relation.h, src/scan-code.h, src/scan-code.l:
* src/scan-gram.h, src/scan-gram.l, src/scan-skel.h:
* src/scan-skel.l, src/state.c, src/state.h, src/symlist.c:
* src/symlist.h, src/symtab.c, src/symtab.h, src/system.h:
* src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h:
* tests/actions.at, tests/atlocal.in, tests/c++.at:
* tests/calc.at, tests/conflicts.at, tests/cxx-type.at:
* tests/existing.at, tests/glr-regression.at:
* tests/headers.at, tests/input.at, tests/java.at:
* tests/local.at, tests/local.mk, tests/named-refs.at:
* tests/output.at, tests/push.at, tests/reduce.at:
* tests/regression.at, tests/sets.at, tests/skeletons.at:
* tests/synclines.at, tests/testsuite.at, tests/torture.at:
Don't use date ranges in copyright notices.

Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996,
1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2008, 2009, 2010 Free Software Foundation, Inc.

14 years agolalrl1.cc: give a chance to user defined YYLLOC_DEFAULT.
Akim Demaille [Tue, 11 May 2010 21:51:59 +0000 (23:51 +0200)] 
lalrl1.cc: give a chance to user defined YYLLOC_DEFAULT.

* data/lalr1.cc (YYLLOC_DEFAULT): Move its definition from the
header file to the implementation file, after the user %code
sections.
* NEWS: Document it.

14 years agoNEWS: fix chronology.
Akim Demaille [Wed, 12 May 2010 08:06:59 +0000 (10:06 +0200)] 
NEWS: fix chronology.

* NEWS (C++ parsers use YYRHSLOC): Move from ?.? to 2.5.

14 years agodoc: please Emacs.
Akim Demaille [Tue, 11 May 2010 19:31:31 +0000 (21:31 +0200)] 
doc: please Emacs.

* doc/bison.texinfo (Local Variables): Move this after the
LocalWords, since the latter are looked for in the whole document,
while the former are looked for only at its end.
Require american spell checking.

14 years agodoc: fix lalr1.cc documentation.
Akim Demaille [Mon, 10 May 2010 08:41:21 +0000 (10:41 +0200)] 
doc: fix lalr1.cc documentation.

* doc/bison.texinfo (C++ Scanner Interface): Fix yylex signature.
(C++ Bison Interface): Fix lalr1.cc skeleton name.
(C++ Parser Interface): Fix semantic_type and location_type names.
Document yy::parser::token.
Reported by Jerry Quinn.

(cherry picked from commit 0100cd629d91e3e799b9feb7182965ff348ba61c)

Conflicts:

ChangeLog
doc/bison.texinfo

14 years agoc++: use YYRHSLOC.
Akim Demaille [Sun, 9 May 2010 21:58:50 +0000 (23:58 +0200)] 
c++: use YYRHSLOC.

* data/lalr1.cc (YYRHSLOC): New.
(YYLLOC_DEFAULT): Use it.
* data/glr.cc: If location_type was user defined, do not include
location.hh, and do not produce location.hh and position.hh.
* tests/calc.at (YYLLOC_DEFAULT): Use YYRHSLOC.
Check that glr.cc supports user defined location_type.
* NEWS: Document this.

14 years agocomment change.
Akim Demaille [Sun, 9 May 2010 12:36:09 +0000 (14:36 +0200)] 
comment change.

* data/c++.m4: here.

14 years agodoc: fix typo.
Akim Demaille [Fri, 7 May 2010 15:43:21 +0000 (17:43 +0200)] 
doc: fix typo.

* tests/synclines.at: here.

14 years agotests: enhance AT_SYNCLINES_COMPILE.
Akim Demaille [Wed, 14 Apr 2010 14:40:18 +0000 (16:40 +0200)] 
tests: enhance AT_SYNCLINES_COMPILE.

* tests/synclines.at (AT_SYNCLINES_COMPILE): More distcc patterns.
(AT_TEST_SYNCLINE): Remove GCC 4.5 protection which is already
taken care of in AT_SYNCLINES_COMPILE.

14 years agolalr1.cc: don't generate location.hh when location_type is defined
Akim Demaille [Wed, 14 Apr 2010 15:56:38 +0000 (17:56 +0200)] 
lalr1.cc: don't generate location.hh when location_type is defined

* data/bison.m4 (b4_percent_define_get): Accept a default value.
* data/c++.m4: Do not provide a default value for the %define
variable location_type, rather, use b4_percent_define_get with a
default argument where its value is needed.
* data/lalr1.cc: Do not load location.cc (which outputs both
location.hh and position.hh) if the user defined location_type.
Do not include location.hh either.

14 years agolalr1.cc: minor refactoring.
Akim Demaille [Wed, 14 Apr 2010 16:34:36 +0000 (18:34 +0200)] 
lalr1.cc: minor refactoring.

* data/lalr1.cc: Don't issue empty namespaces.

14 years agotests: fix %printer.
Akim Demaille [Thu, 29 Apr 2010 10:35:13 +0000 (12:35 +0200)] 
tests: fix %printer.

Currently, there is no check that %printer ... <foo> (nor
%destructor) is about an existing <foo> type.  This C++ test had
it wrong (<::std::string> vs. <std::string>).

* tests/c++.at (AT_CHECK_VARIANTS): In list.yy, redefine the
pretty-printing of lists into something better for parser traces.
Update the expected output.
Fix correspondance between %type/%token and %printer.

14 years agolalr1.cc: location_type: make sure we don't depend on loc.(begin|end).
Akim Demaille [Wed, 14 Apr 2010 14:37:54 +0000 (16:37 +0200)] 
lalr1.cc: location_type: make sure we don't depend on loc.(begin|end).

* tests/calc.at (Span): Instead of begin/end, as in the built-in
location class, use first and last.
Define YYLLOC_DEFAULT to adjust to these changes.
* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Adjust to the
location_type changes.

14 years agotests: fix maintainer-xml-check.
Joel E. Denny [Fri, 30 Apr 2010 23:50:52 +0000 (19:50 -0400)] 
tests: fix maintainer-xml-check.

* data/xslt/xml2dot.xsl (xsl:template match="bison-xml-report"):
Update output to include comments now produced by --graph.
(xsl:template match="automaton"): As for --graph, name the
digraph after the grammar file.
* src/print-xml.c (escape_bufs): Enlarge array.
(print_xml): Add bug-report and url attributes to
bison-xml-report element.

14 years agoIn DOT output, convert from "/*" comments to "//" comments.
Joel E. Denny [Fri, 30 Apr 2010 23:50:34 +0000 (19:50 -0400)] 
In DOT output, convert from "/*" comments to "//" comments.

This handles the possibility that a "*/" might appear in
variable portions of those comments at some point in the future.
* src/graphviz.c (start_graph): Implement.

14 years ago* ChangeLog (2010-04-30): Fix typo.
Joel E. Denny [Sat, 1 May 2010 18:47:49 +0000 (14:47 -0400)] 
* ChangeLog (2010-04-30): Fix typo.

14 years agoDocument that undefined %prec identifier warnings will remain.
Joel E. Denny [Fri, 30 Apr 2010 19:29:23 +0000 (15:29 -0400)] 
Document that undefined %prec identifier warnings will remain.

* NEWS (2.4.3): Here.
(2.4.2): Here.
(cherry picked from commit ff1f7871df81d5183eafeff380104da7a4a94749)

14 years agoRevert 2009-12-30 change for undefined %prec token complaints.
Joel E. Denny [Fri, 30 Apr 2010 18:41:07 +0000 (14:41 -0400)] 
Revert 2009-12-30 change for undefined %prec token complaints.

That is, keep them as warnings because that should be sufficient
to satisfy POSIX without creating backward compatibility issues.
Suggested by Richard Stallman at
<http://lists.gnu.org/archive/html/bison-patches/2010-03/msg00033.html>.
* NEWS (2.5): Remove mention of complaint.
* src/reader.c (grammar_rule_check): Convert warning back to
complaint.
* tests/input.at (%prec's token must be defined): Update.

14 years agobuild: don't require src/bison during bootstrap.
Joel E. Denny [Sun, 25 Apr 2010 21:44:43 +0000 (17:44 -0400)] 
build: don't require src/bison during bootstrap.

Suggested by Eric Blake at
<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00003.html>.
* bootstrap.conf (bootstrap_epilogue): New function to make sure
src/parse-gram.[ch] are stamped later than src/parse-gram.y.
(cherry picked from commit b733bcd00e6fc8db45c86dc289938a28c1bf72d8)

14 years agoi18n: fix untranslatable string.
Joel E. Denny [Sun, 25 Apr 2010 21:05:18 +0000 (17:05 -0400)] 
i18n: fix untranslatable string.

Reported by Goran Uddeborg at
<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00000.html>.
* src/muscle-tab.c (muscle_percent_define_insert): Here.
(cherry picked from commit e0fda26c8dda7f03443f69fb8c20b7cdeb1b37fd)

Conflicts:

src/muscle-tab.c

14 years agotests: calc: minor refactoring.
Akim Demaille [Tue, 13 Apr 2010 21:09:14 +0000 (23:09 +0200)] 
tests: calc: minor refactoring.

* tests/calc.at (_AT_DATA_CALC_Y): Simplify yylex.

14 years agotests: calc: simplify location management.
Akim Demaille [Tue, 13 Apr 2010 21:04:03 +0000 (23:04 +0200)] 
tests: calc: simplify location management.

* tests/local.at (AT_LOC_PUSHDEF, AT_LOC_POPDEF): New.
(_AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS): Use them to
define the appropriate AT_LOC accessors.
* tests/calc.at: Use AT_LOC accessors.

14 years agotest location_type.
Akim Demaille [Tue, 13 Apr 2010 20:05:42 +0000 (22:05 +0200)] 
test location_type.

* tests/local.at (_AT_BISON_OPTION_PUSHDEFS):
Define AT_LOCATION_TYPE_IF.
(_AT_BISON_OPTION_POPDEFS): Undefine AT_LOCATION_TYPE_IF.
* tests/calc.at (_AT_DATA_CALC_Y): When %define location_type is
used, provide a user location type and use it.
(Simple LALR1 C++ Calculator): Add a test case for location_type.

14 years agotests: check fclose's return value.
Akim Demaille [Sat, 10 Apr 2010 11:38:37 +0000 (13:38 +0200)] 
tests: check fclose's return value.

* tests/calc.at (_AT_DATA_CALC_Y): Check fclose's return status.

14 years agotests: don't depend on the actual location type.
Akim Demaille [Sat, 10 Apr 2010 11:37:21 +0000 (13:37 +0200)] 
tests: don't depend on the actual location type.

* tests/calc.at: Use yy::parser::location_type rather than
yy::location, since the former is always right, and might point to
another type than the latter.

14 years agoformatting changes.
Akim Demaille [Sat, 10 Apr 2010 11:35:59 +0000 (13:35 +0200)] 
formatting changes.

* tests/calc.at: Formatting changes.

14 years agolalr1.cc: remove useless forward declaration.
Akim Demaille [Wed, 7 Apr 2010 14:01:42 +0000 (16:01 +0200)] 
lalr1.cc: remove useless forward declaration.

* data/lalr1.cc: Include location.hh before stack.hh.
Remove the useless forward declarations of position and location.
Reported by Chris Morley.
* data/glr.cc: Likewise.

14 years ago* NEWS (2.4.3): Mention fix for Sun Studio C++.
Joel E. Denny [Sun, 11 Apr 2010 18:43:38 +0000 (14:43 -0400)] 
* NEWS (2.4.3): Mention fix for Sun Studio C++.
(cherry picked from commit cb76b1f1a343642c46bbfa2c4a99ae537b22bd9f)

14 years agotests: fix for newer Sun Studio C++.
Joel E. Denny [Sat, 10 Apr 2010 21:37:27 +0000 (17:37 -0400)] 
tests: fix for newer Sun Studio C++.

Reported by Dagobert Michelsen at
<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00023.html>.
* THANKS (Dagobert Michelsen): Add.
* configure.ac (AC_PREREQ): Set to 2.64 so we get the latest
Autoconf macro for handling the restrict keyword.
* gnulib: Update to latest, which no longer overrides that macro
from Autoconf.
(cherry picked from commit 4333ba11c65f428040d54820b6d4c6aa663944d2)

Conflicts:

configure.ac

14 years agoportability: fix pointer arithmetic to conform to C standard.
Joel E. Denny [Sat, 3 Apr 2010 18:58:22 +0000 (14:58 -0400)] 
portability: fix pointer arithmetic to conform to C standard.

Reported by Tys Lefering at
<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00035.html>.
This fix is already implemented in glr.c and does not apply to
lalr1.java.
* data/lalr1.cc (yy::parser::parse): Increase size of
yyerror_range and adjust subscripting so you don't have to
subtract one from the beginning of the array.
* data/yacc.c (b4_declare_parser_state_variables,
yyparse, yypush_parse): Likewise.
(cherry picked from commit 48f4100a8299918a3abc9c5d29db85319cad3cee)

Conflicts:

data/lalr1.cc
data/yacc.c
src/parse-gram.c
src/parse-gram.h

14 years agoremove useless include.
Akim Demaille [Tue, 30 Mar 2010 12:55:41 +0000 (14:55 +0200)] 
remove useless include.

* src/graphviz.h: Don't include stdbool.h.

14 years agograph: sign the output file.
Akim Demaille [Mon, 5 Apr 2010 19:30:36 +0000 (21:30 +0200)] 
graph: sign the output file.

* src/graphviz.c (start_graph): Issue comments about Bison.
Suggested by Tys Lefering.

14 years agoportability: fix test suite for GCC 4.5's new #error message.
Joel E. Denny [Wed, 31 Mar 2010 16:46:53 +0000 (12:46 -0400)] 
portability: fix test suite for GCC 4.5's new #error message.

Reported by Tys Lefering at
<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00030.html>.
* NEWS (2.4.3): Mention.
* tests/synclines.at (AT_TEST_SYNCLINE): Implement.
(cherry picked from commit 18493762be5ddaaa64c9e498dad11afd6b0e82f6)

14 years agofix comments.
Akim Demaille [Tue, 30 Mar 2010 12:33:58 +0000 (14:33 +0200)] 
fix comments.

* src/graphviz.h: Add missing license notice.
Document.
(cherry picked from commit c7b5c7fd0647140e557fc66ec1f5d7a2fa615e9a)

14 years agotests: fix 250: parse.error=verbose overflow.
Akim Demaille [Thu, 25 Mar 2010 16:02:38 +0000 (17:02 +0100)] 
tests: fix 250: parse.error=verbose overflow.

* tests/regression.at (parse.error=verbose overflow): Avoid the
double inclusion of stdlib.h as it triggers hard errors.

14 years agoportability: fix for BSD make.
Joel E. Denny [Wed, 24 Mar 2010 00:21:59 +0000 (20:21 -0400)] 
portability: fix for BSD make.

Reported by Johan van Selst at
<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00016.html>.
* tests/local.mk ($(TESTSUITE)): Qualify package.m4 in
this dependency list as in package.m4's target rule.
(cherry picked from commit cf80e9c3868b4a6a9caf53c3b281ee089deffc86)

Conflicts:

tests/Makefile.am

14 years agoportability: fix spawning on at least FreeBSD 8 and FreeBSD 9.
Joel E. Denny [Tue, 23 Mar 2010 15:42:30 +0000 (11:42 -0400)] 
portability: fix spawning on at least FreeBSD 8 and FreeBSD 9.

Reported by Johan van Selst at
<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00014.html>.
* NEWS (2.4.3): New.
* THANKS (Johan van Selst): Add.
* etc/prefix-gnulib-mk (prefix): Adjust regex for makefile
targets so that gnulib's new c++defs.h is matched.
* gnulib: Update to latest.
(cherry picked from commit 311b2e56eaad952fc7908336e3aeb019dd8bf1ee)

Conflicts:

NEWS

14 years agomaint: update for changes to gnulib's announce-gen.
Joel E. Denny [Sat, 20 Mar 2010 19:41:34 +0000 (15:41 -0400)] 
maint: update for changes to gnulib's announce-gen.

* HACKING (Announce): RELEASE_TYPE=major must now be written
RELEASE_TYPE=stable.
(cherry picked from commit 5a3c69f10348a36ac6e8e822324670c6136f6621)

14 years agoVersion 2.4.2.
Joel E. Denny [Sat, 20 Mar 2010 17:10:09 +0000 (13:10 -0400)] 
Version 2.4.2.

* NEWS (2.4.2): Set version and date.  For the recent test suite
portability fixes, don't be so optimistic about their success
given the lack of feedback on the affected platforms.
(cherry picked from commit 08090fe64c2956a4211fb5f6fd40762fe1f198b5)

Conflicts:

NEWS

14 years agotests: fix maintainer-xml-check for recent changes.
Joel E. Denny [Tue, 23 Feb 2010 02:52:39 +0000 (21:52 -0500)] 
tests: fix maintainer-xml-check for recent changes.

* tests/output.at (AT_CHECK_CONFLICTING_OUTPUT): Use
AT_BISON_CHECK_NO_XML rather than AT_BISON_CHECK because an
output file whose name conflicts with a previous output file
is now never generated.
(cherry picked from commit a3d760ef5d7d9bcab78268f5117c39566aa0345c)

14 years agoportability: fix several issues with M4 subprocess.
Joel E. Denny [Mon, 22 Feb 2010 23:09:19 +0000 (18:09 -0500)] 
portability: fix several issues with M4 subprocess.

M4's output pipe was not being drained upon fatal errors during
scan_skel.  As a result, broken-pipe messages from M4 were seen
on at least AIX, HP-UX, Solaris, and RHEL4, and this caused a
failure in the test suite.  The problem was that, on platforms
where the default disposition for SIGPIPE is ignore instead of
terminate, M4 sometimes saw fwrite fail with errno=EPIPE and
then reported it.  However, there's some sort of race condition,
because the new test group occasionally succeeded.
Reported by Albert Chin at
<http://lists.gnu.org/archive/html/bug-bison/2010-02/msg00004.html>.

There were also problems with the test suite livelocking on
Tru64 5.1b.  Reported by Didier Godefroy at
<http://lists.gnu.org/archive/html/bug-bison/2009-05/msg00005.html>.
Switching to create_pipe_bidi suggested by Akim Demaille.

To attempt to solve both of these problems, switch to gnulib's
create_pipe_bidi and register M4 process as a slave.  Along the
way, clean up file name conflict handling, which was affected by
the broken-pipe problem before the switch.
* NEWS (2.4.2): Document.
* THANKS (Didier Godefroy): Add.
* bootstrap.conf (gnulib_modules): Add pipe.
* gnulib: Update to latest to make sure we have all the latest
fixes.
* lib/local.mk (lib_libbison_a_SOURCES): Remove subpipe.h and
subpipe.c.
* po/POTFILES.in (lib/subpipe.c): Remove.
* src/files.c (compute_output_file_names): Update invocations
of output_file_name_check.
(output_file_name_check): In the case that the grammar file
would be overwritten, use complain instead of fatal, but replace
the output file name with /dev/null.  Use the /dev/null solution
for the case of two conflicting output files as well because it
seems safer in case Bison one day tries to open both files at
the same time.
* src/files.h (output_file_name_check): Update prototype.
* src/output.c (output_skeleton): Use create_pipe_bidi and
wait_subprocess.  Assert that scan_skel completely drains the
pipe.
* src/scan-skel.l (at_directive_perform): Update
output_file_name_check invocation.
* tests/output.at (AT_CHECK_CONFLICTING_OUTPUT): Check that the
grammar file actually isn't overwritten.
(Conflicting output files: -o foo.y): Update expected output.
* tests/skeletons.at (Fatal errors but M4 continues producing
output): New test group.
(cherry picked from commit 22cc8d813ee57c9631e527a31010ab138f9b7e06)

Conflicts:

NEWS
bootstrap.conf
lib/.cvsignore
lib/.gitignore
lib/Makefile.am
m4/.cvsignore
m4/.gitignore
src/output.c

14 years agoUpdate POTFILES.
Joel E. Denny [Fri, 5 Feb 2010 02:07:07 +0000 (21:07 -0500)] 
Update POTFILES.

* HACKING (Release Procedure): Add reminder about keeping
POTFILES files up-to-date.
* po/POTFILES.in (src/muscle-tab.c, src/scan-skel.l): Add.
(cherry picked from commit 9398411bfc774e7d5c46c77039d8ea72f8185a7d)

14 years agoCode cleanup.
Joel E. Denny [Mon, 1 Feb 2010 22:26:29 +0000 (17:26 -0500)] 
Code cleanup.

* tests/atlocal.in (abs_top_srcdir): Remove shell variable,
which is already defined in atconfig.
(cherry picked from commit 0ee1af2ed57e29c8f5971884d7196e04f524b0b2)

14 years agotests: fix missing include caught by g++ 4.4.1.
Joel E. Denny [Fri, 22 Jan 2010 19:53:42 +0000 (14:53 -0500)] 
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.

14 years ago* cfg.mk (gnulib_dir): Assume gnulib is a subdirectory.
Joel E. Denny [Thu, 21 Jan 2010 23:51:29 +0000 (18:51 -0500)] 
* cfg.mk (gnulib_dir): Assume gnulib is a subdirectory.
(cherry picked from commit 97d520633b611829cbd867aec5479e8a9a2759a7)

14 years agomaint: automate PACKAGE_COPYRIGHT_YEAR update, and update it.
Joel E. Denny [Thu, 21 Jan 2010 17:18:45 +0000 (12:18 -0500)] 
maint: automate PACKAGE_COPYRIGHT_YEAR update, and update it.

* HACKING (Release Procedure): Update notes on copyright years.
* Makefile.am (update-package-copyright-year): New target rule.
* build-aux/update-package-copyright-year: New file.
* cfg.mk (update-copyright): Add update-package-copyright-year
as a dependency.
(cherry picked from commit af8a609a90c48d1a7e6ea9e31dba4fbad6c7fbed)

14 years ago* bootstrap: Import improvements from latest gnulib.
Joel E. Denny [Wed, 20 Jan 2010 05:24:55 +0000 (00:24 -0500)] 
* bootstrap: Import improvements from latest gnulib.
(cherry picked from commit 73edad9a25ff7dd15f276a071a39e95bc8cca07a)

Conflicts:

bootstrap

14 years agobuild: require Automake 1.11.1 to avoid a security flaw.
Joel E. Denny [Tue, 19 Jan 2010 23:08:48 +0000 (18:08 -0500)] 
build: require Automake 1.11.1 to avoid a security flaw.

* HACKING (Release Procedure): Don't document Automake security
flaw here.
* configure.ac (AM_INIT_AUTOMAKE): Require 1.11.1, and explain
why here.
(cherry picked from commit 9736697d6d8f9e719cae8b22ff842c5098c7edcb)

14 years agognulib: update to latest.
Joel E. Denny [Tue, 19 Jan 2010 19:54:10 +0000 (14:54 -0500)] 
gnulib: update to latest.

14 years agoChangeLog (2006-09-15): add Odd Arild Olsen's role for push.c.
Joel E. Denny [Tue, 19 Jan 2010 16:41:54 +0000 (11:41 -0500)] 
ChangeLog (2006-09-15): add Odd Arild Olsen's role for push.c.

14 years agoThank the developer of the initial push parser implementation.
Joel E. Denny [Fri, 15 Jan 2010 18:42:04 +0000 (13:42 -0500)] 
Thank the developer of the initial push parser implementation.

This unfortunate oversight is several years old.
* THANKS (Odd Arild Olsen): Add.

14 years agoFix some comments concerning LR(0) versus LALR(1).
Joel E. Denny [Mon, 4 Jan 2010 19:13:43 +0000 (14:13 -0500)] 
Fix some comments concerning LR(0) versus LALR(1).

Stop equating LR(0) with nondeterminism and LALR(1) with
determinism.  That is, if all states are consistent, then LR(0)
tables are deterministic.  On the other hand, LALR(1) tables
might be nondeterministic before conflict resolution, and GLR
permits LALR(1) tables to remain nondeterministic.
* src/LR0.c, src/LR0.h: Here.
* src/lalr.c, src/lalr.h: Here.
* src/main.c (main): Here.
* src/state.c, src/state.h: Here.

* src/ielr.h (ielr): In preconditions, expect LR(0) not LALR(1)
parser tables.
(cherry picked from commit 1c4ad777cb220ea669dc934c9b600a25a824a658)

14 years agomaint: run "make update-copyright"
Joel E. Denny [Mon, 4 Jan 2010 18:38:09 +0000 (13:38 -0500)] 
maint: run "make update-copyright"

14 years agoPOSIX: complain if %prec's token was not defined.
Joel E. Denny [Wed, 30 Dec 2009 08:14:12 +0000 (03:14 -0500)] 
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 510df9519ec6347c13a57535d0589e3a87bfe2fe)

14 years agoPOSIX: warn if %prec's token was not defined.
Joel E. Denny [Wed, 30 Dec 2009 08:20:11 +0000 (03:20 -0500)] 
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 f1ceed07743630aa2aef7c77d8bde23c3794ee1b)

14 years ago* HACKING (Release Procedure): Recommend a secure automake.
Joel E. Denny [Thu, 31 Dec 2009 17:43:33 +0000 (12:43 -0500)] 
* HACKING (Release Procedure): Recommend a secure automake.

(cherry picked from commit d2829fdc040f928cc3596725783183f9af8ca5af)

14 years agoportability: `<' and `>' are not always defined on addresses.
Joel E. Denny [Tue, 29 Dec 2009 17:43:26 +0000 (12:43 -0500)] 
portability: `<' and `>' are not always defined on addresses.

Specifically, don't sort objects by their memory addresses when
they're not allocated in the same array or other object.  Though
I haven't found a test case where that fails on my platform, C
says the behavior is undefined.
* src/AnnotationList.c (AnnotationList__insertInto): Remove
FIXME.  Use new id field of InadequacyList nodes rather than
their memory addresses when sorting.
(AnnotationList__compute_from_inadequacies): Add
inadequacy_list_node_count argument to pass to
InadequacyList__new_conflict.
* src/AnnotationList.h
(AnnotationList__compute_from_inadequacies): Update prototype
and documentation for new argument.
* src/InadequacyList.c (InadequacyList__new_conflict): Add
node_count argument and use it to assign a unique ID.
* src/InadequacyList.h (InadequacyListNodeCount): New typedef.
(InadequacyList): Add id field.
(InadequacyList__new_conflict): Update prototype and
documentation for new argument.
* src/ielr.c (ielr_compute_annotation_lists): Update
AnnotationList__compute_from_inadequacies invocation.
(cherry picked from commit 2728ac7ecd663c4a60f94fe7ab7679a9e83ebcd0)

15 years agoFix handling of yychar manipulation in user semantic actions.
Joel E. Denny [Sun, 20 Dec 2009 07:22:53 +0000 (02:22 -0500)] 
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.

15 years agoYYFAIL: warn about uses and remove from lalr1.java.
Joel E. Denny [Mon, 21 Dec 2009 19:58:48 +0000 (14:58 -0500)] 
YYFAIL: warn about uses and remove from lalr1.java.

* NEWS (2.5): Document.
* data/lalr1.java (parser::YYStack::YYFAIL): Rename to YYERRLAB,
and make it private.  Update all uses.
* src/scan-code.l (SC_RULE_ACTION): Implement warning.

15 years agoYYFAIL: deprecate.
Joel E. Denny [Mon, 21 Dec 2009 19:51:40 +0000 (14:51 -0500)] 
YYFAIL: deprecate.

* NEWS (2.4.2): Document deprecation and the phase-out plan.
* data/lalr1.java (parser::YYStack::YYFAIL): Add comment about
deprecation.
* data/yacc.c (YYFAIL): Likewise, and suppress warnings about
YYFAIL from GCC cpp's -Wunused-macros.
* doc/bison.texinfo (Java Action Features): Remove YYFAIL
documentation.
(LocalWords): Remove YYFAIL.

15 years agotests: cleanup.
Joel E. Denny [Sun, 20 Dec 2009 21:03:07 +0000 (16:03 -0500)] 
tests: cleanup.

* tests/c++.at (Syntax error discarding no lookahead): Don't
ignore stderr.  Instead, eliminate remaining warnings.

15 years agolalr1.cc: don't discard non-existent lookahead on syntax error.
Joel E. Denny [Sat, 19 Dec 2009 04:57:18 +0000 (23:57 -0500)] 
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.

15 years agoCode cleanup.
Joel E. Denny [Thu, 17 Dec 2009 06:09:09 +0000 (01:09 -0500)] 
Code cleanup.

* src/symtab.c, src/symtab.h (symbol_class_get_string): Remove
function, which is no longer used.

15 years agoAdd gcc's -Wundef to test suite and fix another warning from it.
Joel E. Denny [Wed, 16 Dec 2009 18:19:19 +0000 (13:19 -0500)] 
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.

15 years ago* data/yacc.c: Reformat m4 a little.
Joel E. Denny [Wed, 16 Dec 2009 06:41:17 +0000 (01:41 -0500)] 
* data/yacc.c: Reformat m4 a little.

15 years agoDocument gcc -Wundef fix.
Joel E. Denny [Wed, 16 Dec 2009 06:14:44 +0000 (01:14 -0500)] 
Document gcc -Wundef fix.

* NEWS (2.4.2): Here.
* THANKS (Jonathan Nieder): Add.

15 years agoSimplify y.tab.c when location tracking is disabled.
Jonathan Nieder [Wed, 16 Dec 2009 04:07:46 +0000 (22:07 -0600)] 
Simplify y.tab.c when location tracking is disabled.

* data/yacc.c: Do not check YYLTYPE_IS_TRIVIAL if location
tracking is not enabled.  Instead, unconditionally define
YY_LOCATION_PRINT as a no-op for backward compatibility.

15 years agoAvoid warnings from gcc -Wundef y.tab.c.
Jonathan Nieder [Wed, 16 Dec 2009 04:03:18 +0000 (22:03 -0600)] 
Avoid warnings from gcc -Wundef y.tab.c.

* data/glr.c: Check if YYENABLE_NLS and YYLTYPE_IS_TRIVIAL are
defined before using them.
* data/lalr1.cc: Likewise.
* data/yacc.c: Likewise.

15 years agoautoconf: update to latest for fix of M4 detection.
Joel E. Denny [Tue, 15 Dec 2009 23:56:52 +0000 (18:56 -0500)] 
autoconf: update to latest for fix of M4 detection.

Reported by Eric Blake.
* submodules/autoconf: Update.

15 years agoportability: use -DGNULIB_POSIXCHECK.
Joel E. Denny [Tue, 15 Dec 2009 05:15:41 +0000 (00:15 -0500)] 
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.

15 years agognulib: update for fix of fprintf-posix, which we'll use soon.
Joel E. Denny [Tue, 15 Dec 2009 22:20:31 +0000 (17:20 -0500)] 
gnulib: update for fix of fprintf-posix, which we'll use soon.

* etc/prefix-gnulib-mk (prefix): Adjust regex for make file
targets so that gnulib's new arg-nonnull.h and link-warning.h
are matched.
* gnulib: Update.

15 years agoEnable assertion output and --disable-assert for configure.
Joel E. Denny [Mon, 14 Dec 2009 23:04:57 +0000 (18:04 -0500)] 
Enable assertion output and --disable-assert for configure.

* bootstrap.conf (gnulib_modules): Add assert module.
* src/system.h (aver): Define as assert, and summarize the
discussion on this issue.