platform/upstream/bison.git
15 years agoFix "make distcheck".
Joel E. Denny [Tue, 4 Aug 2009 18:48:48 +0000 (14:48 -0400)]
Fix "make distcheck".

* examples/calc++/Makefile.am: Say $(srcdir)/calc.stamp instead
of just calc.stamp.
(cherry picked from commit cfc9e431c31f7f7291dd16a4a505d6a41e662d0c)

15 years agoPacify "gcc -Wunused" for the input function from Flex.
Joel E. Denny [Sat, 1 Aug 2009 21:51:34 +0000 (17:51 -0400)]
Pacify "gcc -Wunused" for the input function from Flex.

Reported by Alex Rozenman.  This warning shows up with gcc-4.3.0
and later.
* src/scan-code.l: Add "%option noinput", which I cannot find in
the Flex manual, but which Flex has supported since at least as
far back as 2.5.4.  However, if any of our developers still use
Flex 2.5.4, they'll need to stop configuring with
--enable-gcc-warnings because "%option noinput" didn't work
correctly until Flex 2.5.6.
* src/scan-gram.l: Likewise.
* src/scan-skel.l: Likewise.
(cherry picked from commit 42f8609bbd033edf6cca102ca080eade94ed08ef)

15 years agoFix mail address in ChangeLog.
Alex Rozenman [Fri, 31 Jul 2009 19:36:18 +0000 (22:36 +0300)]
Fix mail address in ChangeLog.

15 years ago Fix --enable-gcc-warnings problems.
Alex Rozenman [Fri, 31 Jul 2009 19:23:23 +0000 (22:23 +0300)]
Fix --enable-gcc-warnings problems.

* src/reader.c: Adjust variable names.
* src/scan-code.l: Fix prototypes and adjust names.
* src/named-ref.c: Remove redundant "if".

15 years agoFix a --enable-gcc-warnings problem.
Joel E. Denny [Wed, 29 Jul 2009 17:47:02 +0000 (13:47 -0400)]
Fix a --enable-gcc-warnings problem.

* src/scan-gram.l (SC_ESCAPED_CHARACTER): Actually use length
variable.

15 years ago Fix some memory leaks.
Alex Rozenman [Fri, 24 Jul 2009 18:04:16 +0000 (21:04 +0300)]
Fix some memory leaks.
* src/named-ref.c: Add a pointer check (named_ref_free).
* src/scan-code.l: New function (variant_table_free). Called in
code_scanner_free.
* src/symlist.c: Call to named_ref_free (symbol_list_free).

15 years agoWarn about character literals not of length one.
Joel E. Denny [Fri, 24 Jul 2009 14:29:07 +0000 (10:29 -0400)]
Warn about character literals not of length one.

* NEWS (2.5): Document.
* src/scan-gram.l (INITIAL): Remove comment that we don't check
the length.
(SC_ESCAPED_CHARACTER): Warn if length is wrong.
* tests/input.at (Bad character literals): New test group.

15 years ago* src/lalr.c (state_lookahead_tokens_count): Correct comment.
Joel E. Denny [Fri, 24 Jul 2009 13:59:42 +0000 (09:59 -0400)]
* src/lalr.c (state_lookahead_tokens_count): Correct comment.

15 years agoSome M4 cleanup in the testsuite.
Joel E. Denny [Wed, 22 Jul 2009 19:06:49 +0000 (15:06 -0400)]
Some M4 cleanup in the testsuite.

Suggested by Eric Blake at
<http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00083.html>.
* tests/existing.at (_AT_TEST_EXISTING_GRAMMAR): Do not
complicate the code by distinguishing between a missing value
and an empty string value for an optional argument.  This fix is
allowed by the similar fix in AT_TEST_TABLES_AND_PARSE below.
* tests/local.at (_AT_TEST_TABLES_AND_PARSE): Merge into...
(AT_TEST_TABLES_AND_PARSE): ... this now that the special
arguments are not needed because of the following changes.
Fix stale comments.
Bison developers should use GNU M4 and should not use
POSIXLY_CORRECT when building the test suite, so do not
complicate the code by avoiding $10 and above.
Do not quote an empty string value for an optional argument, and
do not distinguish between a missing value and an empty string
value.

15 years ago* m4/m4.m4: Make it a sym link to submodules/autoconf/m4/m4.m4.
Joel E. Denny [Tue, 21 Jul 2009 18:10:54 +0000 (14:10 -0400)]
* m4/m4.m4: Make it a sym link to submodules/autoconf/m4/m4.m4.

15 years agoRevert unnecessary column realignment in --help output.
Joel E. Denny [Wed, 15 Jul 2009 08:21:00 +0000 (04:21 -0400)]
Revert unnecessary column realignment in --help output.

Reported by Akim Demaille at
<http://lists.gnu.org/archive/html/bison-patches/2009-06/msg00010.html>.
* src/getargs.c (usage): Here.

15 years ago Alphabetical order in src/Makefile.am.
Alex Rozenman [Sat, 4 Jul 2009 19:59:29 +0000 (22:59 +0300)]
Alphabetical order in src/Makefile.am.
* src/Makefile.am: Adjust.

15 years agoRegen.
Alex Rozenman [Sat, 4 Jul 2009 19:17:09 +0000 (22:17 +0300)]
Regen.

15 years ago Style changes and factoring.
Alex Rozenman [Sat, 4 Jul 2009 19:16:17 +0000 (22:16 +0300)]
Style changes and factoring.
* src/named-ref.h: Add comments.
* src/parse-gram.y: Readability and style changes.
* src/reader.c: Factoring: assign_named_ref function.
* src/scan-code.l: Factoring and style changes. Rename
parse_named_ref to parse_ref. Use "c-ctype.h" from gnulib.
Use "unsigned" type for variant index. Improve readablity.
* src/scan-gram.l: Change error messages and add comments.
* src/symlist.h: symbol_list_null: New function decl.
* src/symlist.c: symbol_list_null: Implement here.
* tests/named-refs.at: Adjust for new error messages.

15 years agoscan-code: avoid compiler warnings
Eric Blake [Mon, 29 Jun 2009 14:34:21 +0000 (08:34 -0600)]
scan-code: avoid compiler warnings

* src/scan-code.l (parse_named_ref): Use correct specifiers.

Signed-off-by: Eric Blake <ebb9@byu.net>
15 years agobuild: avoid concurrent extraction of calc++.
Akim Demaille [Mon, 29 Jun 2009 13:02:48 +0000 (15:02 +0200)]
build: avoid concurrent extraction of calc++.

* examples/calc++/Makefile.am (calc.stamp): New.
Depend on it to create the sources of calc++ so that concurrent
builds don't launch several "extexi" in parallel.
Not only this is inefficient, this also builds incorrect sources
with several extractions mixed together.

Cherry-picked from 5ece73eaa19c79d5dd40b36a2a7d38cb397c2fcd.

15 years agoRegen.
Alex Rozenman [Sat, 27 Jun 2009 20:45:54 +0000 (23:45 +0300)]
Regen.

15 years agoNamed symbol references.
Alex Rozenman [Sat, 23 May 2009 15:48:03 +0000 (18:48 +0300)]
Named symbol references.

Discussed in:
http://lists.gnu.org/archive/html/bison-patches/2009-01/msg00000.html
http://lists.gnu.org/archive/html/bison-patches/2009-02/msg00002.html
http://lists.gnu.org/archive/html/bison-patches/2009-03/msg00009.html

* src/parse-gram.y: Add new syntax (named_ref.opt).
* src/reader.c: Store named refs in symbol lists.
* src/reader.h: New argument for symbol_append and
action_append functions.
* src/scan-code.h: Add new field (named_ref) into
code_props data structure. Keeps named ref of midrule
actions.
* src/scan-code.l: Support for named refs in semantic
action code. New function 'parse_named_ref'.
* src/scan-gram.l: Support bracketed id.
* src/symlist.c: Store named refs in symbol lists.
* src/symlist.h: New field in symbol list: named_ref.
* src/named-ref.h: New file, a struct for named_ref.
* src/named-ref.c: New file, named_ref_new function.
* src/Makefile.am: Add two new files.
* tests/testsuite.at: Include new test group:
* tests/named-refs.at: this new file.

15 years agohash: check insertion for memory exhaustion.
Akim Demaille [Thu, 25 Jun 2009 04:03:18 +0000 (06:03 +0200)]
hash: check insertion for memory exhaustion.

* src/uniqstr.c (uniqstr_new): New.

15 years agostyle changes.
Akim Demaille [Thu, 11 Jun 2009 12:50:25 +0000 (14:50 +0200)]
style changes.

* data/xslt/xml2dot.xsl, data/xslt/xml2xhtml.xsl: Space changes.
* src/print-xml.c: Style changes.
* tests/conflicts.at: Comment changes.

15 years agoxml: beware of user strings used to give a %prec to rules.
Akim Demaille [Thu, 11 Jun 2009 12:45:10 +0000 (14:45 +0200)]
xml: beware of user strings used to give a %prec to rules.

* tests/conflicts.at (%prec with user strings): New.
* src/gram.c (grammar_rules_print_xml): Escape the precedence for
XML output.

15 years agohash: check insertion for memory exhaustion.
Akim Demaille [Thu, 11 Jun 2009 12:42:12 +0000 (14:42 +0200)]
hash: check insertion for memory exhaustion.

* src/muscle-tab.c (muscle_insert, muscle_grow)
* src/state.c (state_hash_insert): Check the return value of
hash_insert.

15 years agognulib: update.
Akim Demaille [Thu, 11 Jun 2009 13:24:13 +0000 (15:24 +0200)]
gnulib: update.

15 years agodeterministic test suite.
Akim Demaille [Wed, 10 Jun 2009 18:14:52 +0000 (20:14 +0200)]
deterministic test suite.

Some consistency checks on symbols are performed after all the
symbols were read, by an iteration over the symbol table.  This
traversal is nondeterministic, which can be a problem for test
cases.

Avoid this.

Addresses another form of nondeterminism reported by Joel E. Denny.
http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00023.html

* tests/input.at (Numbered tokens): Split the hexadecimal/decimal
test in two.
Use different file names for the three tests to make the
maintenance easier.

15 years agodeterministic user-token-number redeclaration errors.
Akim Demaille [Wed, 3 Jun 2009 21:15:38 +0000 (23:15 +0200)]
deterministic user-token-number redeclaration errors.

Address nondeterminism reported by Joel E. Denny.
http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00023.html

* src/uniqstr.h: Comment changes.
* src/location.h (boundary_cmp, location_cmp): New.
* src/symtab.c (user_token_number_redeclaration): New.
(symbol_translation): Use it.
* tests/input.at (Numbered tokens): Adjust the expected output.

15 years agognulib: update.
Akim Demaille [Wed, 10 Jun 2009 08:40:55 +0000 (10:40 +0200)]
gnulib: update.

* gnulib: Update to latest.
* lib/.cvsignore, lib/.gitignore, m4/.cvsignore,
* m4/.gitignore: Regen.
* src/symtab.c (symbol_from_uniqstr, semantic_type_from_uniqstr):
Call xalloc_die on hash_insert failures.
Requested by the new __warn_unused_result__ attribute of
hash_insert.

15 years agoConvert multiple variable definition warnings to complaints.
Joel E. Denny [Sat, 23 May 2009 06:25:28 +0000 (02:25 -0400)]
Convert multiple variable definition warnings to complaints.

* NEWS (2.5): Add a new entry for that change.
* doc/bison.texinfo (Decl Summary): Update %define entry.
(Bison Options): Update -D/--define/-F/--force-define entry.
* src/muscle_tab.c (muscle_percent_define_insert): Implement.
* src/muscle_tab.h (muscle_percent_define_insert): Update
comments.
* tests/input.at (`%define errors'): Update.
(`%define, --define, --force-define'): Update.

15 years ago-F/--force-define and relative %define/-D/--define priorities.
Joel E. Denny [Fri, 22 May 2009 21:14:08 +0000 (17:14 -0400)]
-F/--force-define and relative %define/-D/--define priorities.

* NEWS (2.5): Add documentation to -D/--define entry.
* build-aux/cross-options.pl: Hard-code association of
--force-define with %define.
* doc/bison.texinfo (Decl Summary): In %define entry,
cross-reference command-line options.
(Bison Options): Add documentation to -D/--define entry.
(Option Cross Key): Widen column for --force-define row.
* src/getargs.c (usage): Document -F/--force-define.  Realign
options in output.
(short_options, long_options, getargs): Parse -F/--force-define,
and update muscle_percent_define_insert invocation.
* src/muscle_tab.h (muscle_percent_define_how): New enum type.
(muscle_percent_define_insert): Add argument with that type.
* src/muscle_tab.c (muscle_percent_define_insert): Implement
-F/--force-define behavior and priorities.
* src/parse-gram.y (prologue_declaration): Update
muscle_percent_define_insert invocations.
* tests/input.at (`%define, --define'): Rename to...
(`%define, --define, --force-define'): ... this and extend.

15 years agoUpdate some comments to make sense for -D.
Joel E. Denny [Fri, 22 May 2009 05:39:07 +0000 (01:39 -0400)]
Update some comments to make sense for -D.

* data/bison.m4 (b4_check_user_names): In header comments, say
"user occurrence" instead of "grammar occurrence".
* src/muscle_tab.h (muscle_percent_define_insert): Likewise.
(muscle_percent_code_grow): Likewise just for consistency.

15 years ago* data/c++.m4: Update copyright year.
Joel E. Denny [Fri, 22 May 2009 05:47:38 +0000 (01:47 -0400)]
* data/c++.m4: Update copyright year.

15 years ago* data/c++.m4 (b4_namespace_close): Simplify slightly.
Joel E. Denny [Wed, 20 May 2009 21:14:08 +0000 (17:14 -0400)]
* data/c++.m4 (b4_namespace_close): Simplify slightly.

15 years agoHandle a trailing `:' in a user-supplied C++ namespace better.
Joel E. Denny [Tue, 19 May 2009 21:51:05 +0000 (17:51 -0400)]
Handle a trailing `:' in a user-supplied C++ namespace better.

* data/c++.m4 (b4_namespace_close): Don't let it be printed
among the closing braces here.  This fix might make the
generated code easier to debug, but otherwise it should be
insignificant because a trailing `:' is a C++ error already.

15 years agoremove useless variable.
Akim Demaille [Tue, 19 May 2009 09:29:40 +0000 (11:29 +0200)]
remove useless variable.

* src/getargs.c (skeleton_arg): Remove now useless variable.
Should help the compiler see that this printf-like call is sane.

15 years agoFix ChangeLog for the previous patch.
Akim Demaille [Mon, 11 May 2009 06:53:35 +0000 (08:53 +0200)]
Fix ChangeLog for the previous patch.

15 years agodoc: use C++ headers.
Akim Demaille [Thu, 7 May 2009 21:18:44 +0000 (23:18 +0200)]
doc: use C++ headers.

* doc/bison.texinfo (Calc++ Scanner): Prefer C++ headers to C
headers.

15 years agofix hexadecimal token number support.
Akim Demaille [Tue, 5 May 2009 07:36:06 +0000 (09:36 +0200)]
fix hexadecimal token number support.

* src/scan-gram.l: Catch incorrect ids after hexadecimal numbers.

15 years agotests: check token numbers.
Akim Demaille [Tue, 5 May 2009 07:35:34 +0000 (09:35 +0200)]
tests: check token numbers.

* tests/input.at (Numbered tokens): New.

15 years agobison: catch bad symbol names.
Akim Demaille [Mon, 4 May 2009 19:23:55 +0000 (21:23 +0200)]
bison: catch bad symbol names.

* src/scan-gram.l({int}{id}): Report as an invalid identifier.
* tests/input.at: Adjust.

15 years agospace changes.
Akim Demaille [Mon, 4 May 2009 19:15:52 +0000 (21:15 +0200)]
space changes.

* src/scan-gram.l: Untabify to be robust to zealous editors.

15 years agoidentifiers: dashes are letters.
Akim Demaille [Mon, 4 May 2009 19:15:17 +0000 (21:15 +0200)]
identifiers: dashes are letters.

Dashes can now start identifiers (symbols and directives).

* src/scan-gram.l ({letter}): Add dash.
({id}): Remove it.
* tests/input.at (Symbols): Adjust.
Remove stray comment.
* tests/regression.at (Invalid inputs): Adjust error message.
* doc/bison.texinfo (Symbols): Update.

15 years agoDeclare %code to be a permanent feature.
Joel E. Denny [Fri, 1 May 2009 06:51:31 +0000 (02:51 -0400)]
Declare %code to be a permanent feature.

* NEWS (2.4.2): Here.
* doc/bison.texinfo (Prologue Alternatives): Don't say it's
experimental.
(Decl Summary): Likewise.
(cherry picked from commit cefb18280b83ea19b742a22f7be8661b518874b5)

15 years agoConvert underscores to dashes in some %define variable names.
Joel E. Denny [Thu, 30 Apr 2009 05:04:33 +0000 (01:04 -0400)]
Convert underscores to dashes in some %define variable names.

For now, just api.push-pull and lr.keep-unreachable-states.
Maintain old names for backward compatibility.
* NEWS (2.5): Document.
* data/c.m4 (b4_identification): Update comment.
* data/yacc.c: Update access.
* doc/bison.texinfo: Update.
* etc/bench.pl.in (bench_grammar): Update use.
* src/files.c (tr): Move to...
* src/getargs.c, src/getargs.h (tr): ... here because I can't
think of a better place to expose it.  My logic is that, for all
uses of tr so far, command-line arguments can be involved, and
getargs.h is already included.
* src/main.c (main): Update access.
* src/muscle_tab.c (muscle_percent_define_insert): Convert old
variable names to new variable names before assigning value.
* src/reader.c (reader): Update setting default.
* tests/calc.at: Update uses.
* tests/conflicts.at (Unreachable States After Conflict
Resolution): Update use.
* tests/input.at (%define enum variables): Update use.
(%define backward compatibility): New test group.
* tests/push.at: Update uses.
* tests/reduce.at: Update uses.
* tests/torture.at: Update uses.

15 years agoSet all front-end %define defaults in one place.
Joel E. Denny [Thu, 30 Apr 2009 04:31:12 +0000 (00:31 -0400)]
Set all front-end %define defaults in one place.

* src/main.c (main): Move lr.keep_unreachable_states default...
* src/reader.c (reader): ... to here.

15 years agoRename lr.default_reductions to lr.default-reductions.
Joel E. Denny [Thu, 30 Apr 2009 01:48:21 +0000 (21:48 -0400)]
Rename lr.default_reductions to lr.default-reductions.

* NEWS (2.5): Here.
* doc/bison.texinfo: Here.
* src/lalr.c (initialize_LA): Here.
* src/print.c (print_reductions): Here.
* src/reader.c (reader): Here.
* src/tables.c (action_row): Here.
* tests/input.at (%define enum variables): Here.
* tests/reduce.at (AT_TEST_LR_DEFAULT_REDUCTIONS): Here.

15 years agoPacify ./configure --enable-gcc-warnings.
Joel E. Denny [Thu, 30 Apr 2009 00:50:01 +0000 (20:50 -0400)]
Pacify ./configure --enable-gcc-warnings.

* tests/input.at (Symbols): Prototype yyerror and yylex.

15 years agotests: check the use of dashes and periods in symbols.
Akim Demaille [Tue, 21 Apr 2009 20:17:25 +0000 (22:17 +0200)]
tests: check the use of dashes and periods in symbols.

* tests/input.at (Symbol): New test group.
(cherry picked from commit 746ee38c7cff93ad1fc97da6f06f124f394fb437)

15 years agoDocument how `%define "var" "value"' is not M4-friendly.
Joel E. Denny [Thu, 30 Apr 2009 00:05:32 +0000 (20:05 -0400)]
Document how `%define "var" "value"' is not M4-friendly.

* src/parse-gram.y (variable): In comments here.

15 years agoAdd copyright updates missed during previous cherry pick.
Joel E. Denny [Thu, 30 Apr 2009 00:03:52 +0000 (20:03 -0400)]
Add copyright updates missed during previous cherry pick.

* src/output.c: Here.
* src/parse-gram.y: Here.
* src/scan-gram.l: Here.

15 years agovariables: accept dashes.
Akim Demaille [Mon, 20 Apr 2009 10:24:23 +0000 (12:24 +0200)]
variables: accept dashes.

* src/scan-gram.l ({id}): Also accept dashes after the initial
letter.
({directive}): Use {id}.
* src/parse-gram.y: Comment and formatting changes.
* doc/bison.texinfo (Symbols): Adjust the lexical definitions of
symbols.
* src/complain.h, src/complain.c (yacc_at): New.
* src/symtab.c (symbol_new): Use yacc_at to report inappropriate
symbol names.
* src/output.c (token_definitions_output): Do not #define token
names with dashes.
(cherry picked from commit 4f646c3794c45940aaf96d5409eff02a2c74978e)

Conflicts:

data/bison.m4
src/parse-gram.y

15 years agoClean up recent patches a little.
Joel E. Denny [Fri, 24 Apr 2009 06:13:26 +0000 (02:13 -0400)]
Clean up recent patches a little.

Reported by Akim Demaille.
* doc/bison.texinfo (Understanding): Fix typos.
* src/print.c (print_reductions): Don't use negated variable.

15 years agoList accepted values for a %define enum variable with an invalid value.
Joel E. Denny [Fri, 24 Apr 2009 05:42:58 +0000 (01:42 -0400)]
List accepted values for a %define enum variable with an invalid value.

Suggested by Akim Demaille at
<http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00082.html>.
* data/bison.m4 (_b4_percent_define_check_values): Implement.
* src/muscle_tab.c (muscle_percent_define_check_values): Implement.
* tests/input.at (%define lr.default_reductions invalid values): Merge
into...
(%define enum variables): ... here, and update output.

15 years agoRename "default rule" to "default reduction".
Joel E. Denny [Thu, 23 Apr 2009 07:18:03 +0000 (03:18 -0400)]
Rename "default rule" to "default reduction".

This includes changing variable names in code, changing
comments, and renaming %define lr.default_rules to %define
lr.default_reductions.
* NEWS (2.5): Update IELR documentation.
* data/glr.c, data/lalr1.cc, data/lalr1.java, data/yacc.c:
Adjust YYDEFACT and yydefact_ documentation.
* doc/bison.texinfo (Decl Summary): Adjust lr.default_reductions
and lr.type documentation.  Make some other wording
improvements.
(Glossary): Adjust cross-references and Default Reduction
definition.
* src/lalr.c (state_lookahead_tokens_count): Adjust code.
Remove a confusing comment pointed out by Akim Demaille.
(initialize_LA): Adjust code.
* src/print-xml.c (print_reductions): Adjust code.
* src/print.c (print_reductions): Adjust code.
* src/reader.c (reader): Adjust code.
* src/tables.c (action_row): Adjust code.
(token_actions): Adjust code.
* src/tables.h: Adjust YYDEFACT documentation.
* tests/input.at (%define lr.default_rules invalid values):
Rename test group to...
(%define lr.default_reductions invalid values): ... this, and
update grammar file and expected output.
* tests/reduce.at (AT_TEST_LR_DEFAULT_RULES): Rename to...
(AT_TEST_LR_DEFAULT_REDUCTIONS): ... this, and update.

15 years agoDocument %define lr.type and lr.default_rules.
Joel E. Denny [Tue, 21 Apr 2009 09:12:01 +0000 (05:12 -0400)]
Document %define lr.type and lr.default_rules.

* NEWS (2.5): Add an entry.
* src/getargs.c (usage): Mention IELR(1) and canonical LR(1)
besides just LALR(1) and GLR(1).
* doc/bison.texinfo (Introduction): Likewise.
(Language and Grammar): Bison is no longer limited to LALR(1)
restrictions.
(GLR parsing): Say deterministic or LR(1) rather than LALR(1)
when trying to distinguish from GLR.  Talk about LR(1) grammars
rather than LALR(1) grammars.
(Decl Summary): In %define api.push_pull entry, say it applies
to deterministic parsers in C rather than LALR(1) parsers in C.
Add lr.default_rules entry.
Add lr.type entry.
(Mystery Conflicts): Bison is no longer limited to LALR(1)
restrictions.
(Generalized LR Parsing): Same changes as for the previous GLR
section.
(Memory Management): Say deterministic rather than LALR(1).
(Understanding): Correct some bison output.
Index discussion of "accepting state".
Say deterministic rather than LALR(1).
(Bison Options): In --yacc entry, say deterministic rather than
LALR(1).
In --report, --graph, and --xml entries, just don't mention
LALR(1).
(C++ Parsers): Say deterministic rather than LALR(1).
(Table of Symbols): Likewise in YYSTACK_USE_ALLOCA entry.
(Glossary): Add Accepting State, Consistent State, Default Rule,
and IELR(1) definitions.
In Generalized LR (GLR) definition, make same changes as in
previous GLR sections.
In LALR(1) definition, say Bison uses LALR(1) by default rather
than implying Bison is limited to LALR(1).
(LocalWords): Add IELR.

15 years agoFinish implementing %define lr.type.
Joel E. Denny [Tue, 21 Apr 2009 07:40:16 +0000 (03:40 -0400)]
Finish implementing %define lr.type.

Its value can be "LALR", "IELR", or "canonical LR".
* lib/timevar.def (TV_IELR_PHASE1): New var.
(TV_IELR_PHASE2): New var.
(TV_IELR_PHASE3): New var.
(TV_IELR_PHASE4): New var.
* src/Makefile.am (bison_SOURCES): Add AnnotationList.c,
AnnotationList.h, InadequacyList.c, InadequacyList.h, Sbitset.c,
Sbitset.h, ielr.h, and ielr.c.
* src/getargs.h, src/getargs.c (enum trace, trace_args,
trace_types): Add trace_ielr.
* src/lalr.h, src/lalr.c (ngotos): Export it.
(F): Rename to...
(goto_follows): ... this, update all uses, and export it.
(set_goto_map): Export it.
(map_goto): Export it.
(compute_lookahead_tokens): Don't free goto_follows yet.  Now
handled in ielr.
(initialize_LA): Export it.  Move lookback allocation to...
(lalr): ... here because, for canonical LR, initialize_LA must
be invoked but lookback and much of the rest of LALR isn't
needed.
* main.c (main): Instead of lalr, invoke ielr, which invokes
lalr.
* src/reader.c (reader): Default lr.type to "LALR".
Default lr.default_rules to "accepting" if lr.type is "canonical
LR".  Leave the default as "all" otherwise.
Check for a valid lr.type value.
* src/state.h, src/state.c (struct state_list): Add state_list
member.
(state_new): Initialize state_list member to NULL.
(state_new_isocore): New function, exported.
* tests/existing.at (AT_TEST_EXISTING_GRAMMAR): New macro that
exercises all values of lr.type.
(GNU AWK Grammar): Rename test group to...
(GNU AWK 3.1.0 Grammar): ... this, and extend to use
AT_TEST_EXISTING_GRAMMAR.
(GNU Cim Grammar): Extend to use AT_TEST_EXISTING_GRAMMAR.
(GNU pic Grammar): Rename test group to...
(GNU pic (Groff 1.18.1) Grammar): ... this, and extend to use
AT_TEST_EXISTING_GRAMMAR.
* tests/reduce.at (AT_TEST_LR_TYPE): New macro that exercises
all values of lr.type.
(Single State Split): New test groups using AT_TEST_LR_TYPE.
(Lane Split): Likewise.
(Complex Lane Split): Likewise.
(Split During Added Lookahead Propagation): Likewise.

15 years agoAdd new files for IELR and canonical LR implementation.
Joel E. Denny [Tue, 21 Apr 2009 06:10:57 +0000 (02:10 -0400)]
Add new files for IELR and canonical LR implementation.

* src/AnnotationList.c: New.
* src/AnnotationList.h: New.
* src/InadequacyList.c: New.
* src/InadequacyList.h: New.
* src/Sbitset.c: New.
* src/Sbitset.h: New.
* src/ielr.c: New.
* src/ielr.h: New.

15 years agoImplement %define lr.default_rules.
Joel E. Denny [Mon, 20 Apr 2009 04:55:50 +0000 (00:55 -0400)]
Implement %define lr.default_rules.

Its value describes the states that are permitted to contain
default rules: "all", "consistent", or "accepting".
* src/reader.c (reader): Default lr.default_rules to "all".
Check for a valid lr.default_rules value.
* src/lalr.c (state_lookahead_tokens_count): If lr.default_rules
is "accepting", then only mark the accepting state as
consistent.
(initialize_LA): Tell state_lookahead_tokens_count whether
lr.default_rules is "accepting".
* src/tables.c (action_row): If lr.default_rules is not "all",
then disable default rules in inconsistent states.
* src/print.c (print_reductions): Use this opportunity to
perform some assertions about whether lr.default_rules was
obeyed correctly.
* tests/local.at (AT_TEST_TABLES_AND_PARSE): New macro that
helps with checking the parser tables for a grammar.
* tests/input.at (%define lr.default_rules invalid values): New
test group.
* tests/reduce.at (AT_TEST_LR_DEFAULT_RULES): New macro using
AT_TEST_TABLES_AND_PARSE.
(`no %define lr.default_rules'): New test group generated by
AT_TEST_LR_DEFAULT_RULES.
(`%define lr.default_rules "all"'): Likewise.
(`%define lr.default_rules "consistent"'): Likewise.
(`%define lr.default_rules "accepting"'): Likewise.

15 years agoConsistently refer to Yacc, not YACC.
Akim Demaille [Mon, 20 Apr 2009 10:53:46 +0000 (12:53 +0200)]
Consistently refer to Yacc, not YACC.

* src/getargs.c (usage, warnings_args): s/YACC/Yacc/.

15 years agoPacify make maintainer-check-posix.
Joel E. Denny [Fri, 17 Apr 2009 20:14:17 +0000 (16:14 -0400)]
Pacify make maintainer-check-posix.

* tests/input.at (%define, --define): Move bison command-line
options before grammar file name.

15 years agoDocument semicolon warnings.
Joel E. Denny [Sat, 4 Apr 2009 06:10:33 +0000 (02:10 -0400)]
Document semicolon warnings.

* NEWS (2.5): Here.

15 years agoFix portability issue in the test suite.
Akim Demaille [Mon, 8 Dec 2008 09:26:38 +0000 (10:26 +0100)]
Fix portability issue in the test suite.

* tests/local.at (AT_MATCHES_CHECK): New.
Based on Perl instead of Sed.  Sed has too many portability
pitfalls, not ever Sed is GNU Sed.
* tests/actions.at (Fix user actions without a trailing semicolon):
Use it.
(cherry picked from commit 6617622c9aaa6ec3a9de5b0867421e2849b68b2f)

15 years agoImplement the FIXME that ends an user action with a semicolon
Di-an Jan [Mon, 8 Dec 2008 05:54:45 +0000 (21:54 -0800)]
Implement the FIXME that ends an user action with a semicolon
if it seems necessary.

* src/scan-code.l (flex rules section): Flag cpp directive from
any `#' to the first unescaped end-of-line.  Semicolon is not
needed after `;', `{', '}', or cpp directives and is needed after
any other token (whitespaces and comments have no effect).
* tests/actions.at (Fix user actions without a trailing semicolon):
New test.
* tests/input.at (AT_CHECK_UNUSED_VALUES): Add semicolons to
to make user actions complete statements.
Adjust column numbers in error messages.
* tests/regression.at (Fix user actions without a trailing semicolon):
Remove.  Covered by new test.
(cherry picked from commit e8cd1ad655bcc704b06fb2f191dc3ac1df32b796)

15 years agodoc: minor fixes.
Akim Demaille [Mon, 13 Apr 2009 18:57:38 +0000 (20:57 +0200)]
doc: minor fixes.

* doc/bison.texinfo (Decl Summary): Fix entry about %debug.
(Table of Symbols): Remove duplicate entry for %debug.

15 years agosubmodules: update to latest
Eric Blake [Fri, 10 Apr 2009 13:36:49 +0000 (07:36 -0600)]
submodules: update to latest

* submodules/autoconf: Use latest upstream Autoconf.

Signed-off-by: Eric Blake <ebb9@byu.net>
15 years agoWork around autoconf 2.63b bug in testsuite.
Eric Blake [Tue, 7 Apr 2009 04:05:38 +0000 (22:05 -0600)]
Work around autoconf 2.63b bug in testsuite.

* tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Avoid tripping
autoconf bug related to # in test.

Signed-off-by: Eric Blake <ebb9@byu.net>
(cherry picked from commit ab3a683f0560e4ec24a06754386ee8c76da6ef67)

15 years ago* NEWS (2.5): Describe new -D/--define feature.
Joel E. Denny [Mon, 6 Apr 2009 10:22:27 +0000 (06:22 -0400)]
* NEWS (2.5): Describe new -D/--define feature.

15 years ago--trace=muscles
Akim Demaille [Tue, 12 Aug 2008 19:48:44 +0000 (21:48 +0200)]
--trace=muscles

* src/getargs.h, src/getargs.c (trace_muscle): New.
(trace_types, trace_args): Support it.
* src/output.c (output_skeleton): Use it.
(cherry picked from commit 5263bea9f7d576c20938619af2197eb5b47a90c3)

15 years agomuscles_output.
Akim Demaille [Tue, 12 Aug 2008 19:11:53 +0000 (21:11 +0200)]
muscles_output.

* src/output.c (muscles_output): New, extracted from...
(output_skeleton): here.
Adjust.

15 years agoDisplay the changes in cross-options.texi.
Akim Demaille [Fri, 21 Nov 2008 20:21:52 +0000 (21:21 +0100)]
Display the changes in cross-options.texi.

* build-aux/cross-options.pl ($sep): New, to separate items.
* doc/Makefile.am ($(srcdir)/cross-options.texi): Use diff to display
the changes.

15 years ago Improves options in the manual.
Di-an Jan [Thu, 20 Nov 2008 20:36:30 +0000 (12:36 -0800)]
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/Makefile.am (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.

15 years agoCopyright years.
Akim Demaille [Wed, 31 Dec 2008 15:55:12 +0000 (16:55 +0100)]
Copyright years.

* data/glr.c: Add 2007 and 2008 here, consistenly with the comments.

15 years agoReally add autoconf as a submodule.
Akim Demaille [Mon, 8 Dec 2008 12:58:37 +0000 (13:58 +0100)]
Really add autoconf as a submodule.

* submodules/autoconf: New.
(cherry picked from commit e5fa6147efaf1f15b832b6f62b09638979bc82ef)

15 years agoInstall autoconf as a submodule to get m4sugar.
Akim Demaille [Sun, 7 Dec 2008 21:14:11 +0000 (22:14 +0100)]
Install autoconf as a submodule to get m4sugar.

* .gitmodules: Add submodules/autoconf.
* data/m4sugar/foreach.m4, data/m4sugar/m4sugar.m4: Now links into
submodules/autoconf.
(cherry picked from commit 6c63b895fbfda2182e148a95aff855e303bdbc30)

15 years agoSimplify last patch slightly.
Joel E. Denny [Mon, 17 Nov 2008 15:51:17 +0000 (10:51 -0500)]
Simplify last patch slightly.

* src/getargs.c (getargs): Here.
(cherry picked from commit 9ce405ce1dd2ff7d495dafe6201b87669549f98b)

15 years agoFix last warning from --enable-gcc-warnings.
Joel E. Denny [Mon, 17 Nov 2008 15:36:28 +0000 (10:36 -0500)]
Fix last warning from --enable-gcc-warnings.

* src/getargs.c (getargs): Don't assign const address to non-const
pointer.
(cherry picked from commit a8beef7e6a9f6b75fa249d59b4c79585190540b6)

15 years agoHandle --enable-gcc-warnings.
Di-an Jan [Mon, 17 Nov 2008 10:01:41 +0000 (11:01 +0100)]
Handle --enable-gcc-warnings.

* src/getargs.c (command_line_location): Set parameters to void.

15 years agoAT_FULL_COMPILE.
Akim Demaille [Mon, 25 Aug 2008 11:43:00 +0000 (13:43 +0200)]
AT_FULL_COMPILE.

* tests/actions.at, tests/regression.at: Use it.

15 years agoPass command line location to skeleton_arg and language_argmatch.
Akim Demaille [Tue, 29 Jul 2008 11:30:02 +0000 (13:30 +0200)]
Pass command line location to skeleton_arg and language_argmatch.

* src/getargs.h, src/getargs.c (skeleton_arg, language_argmatch):
The location argument is now mandatory.
Adjust all dependencies.
(getargs): Use command_line_location.

15 years ago-D, --define.
Akim Demaille [Tue, 29 Jul 2008 10:52:19 +0000 (12:52 +0200)]
-D, --define.

* src/getargs.c (usage): Document -D.
Fix help string for --locations.
(command_line_location): New.
(short_options, long_options, getargs): Support -D, --define.
(getargs): Move -d support at the right place.
* doc/bison.texinfo (Bison Options): Update.
* tests/input.at (%define, --define): New.
(cherry picked from commit 58697c6d89f2db69aa2321fe92fc388f87bf2a3c)

15 years agoInitialize the muscle table before parsing the command line.
Akim Demaille [Tue, 29 Jul 2008 10:47:41 +0000 (12:47 +0200)]
Initialize the muscle table before parsing the command line.

* src/getargs.c (quotearg.h, muscle_tab.h): Include.
(getargs): Define file_name.
* src/main.c (main): Initialize muscle_tab before calling
getargs.
* src/muscle_tab.c (muscle_init): No longer define file_name, as
its value is not available yet.

15 years agoRequire the generation of parse-gram.output.
Akim Demaille [Thu, 7 Aug 2008 18:46:28 +0000 (20:46 +0200)]
Require the generation of parse-gram.output.

* src/Makefile.am (YACC): Pass --report=all.
(cherry picked from commit 432ac57aaae89de7a4305dc72c5a5b716c6defc4)

15 years ago* NEWS (2.5): New stub.
Joel E. Denny [Mon, 6 Apr 2009 08:28:29 +0000 (04:28 -0400)]
* NEWS (2.5): New stub.

15 years agoFix options documentation.
Joel E. Denny [Mon, 6 Apr 2009 06:16:39 +0000 (02:16 -0400)]
Fix options documentation.

* build-aux/cross-options.pl: As in --help output, write optional
arguments as [=ARG] not =[ARG].
* doc/bison.texinfo (Bison Options): Add -W/--warnings argument.

15 years agoFix --help.
Akim Demaille [Tue, 29 Jul 2008 10:44:28 +0000 (12:44 +0200)]
Fix --help.

* src/getargs.c (usage): Fix help string for -W.
(cherry picked from commit 9b9e0a7d46123c50e51f6742eba1bfa0d091b8aa)

15 years agoHandle more general types of option arguments.
Akim Demaille [Tue, 29 Jul 2008 10:41:48 +0000 (12:41 +0200)]
Handle more general types of option arguments.

* build-aux/cross-options.pl: The argument ends at the first
space, not the first non-symbol character.
Use @var for each word appearing the argument description.
(cherry picked from commit 74eae918c3bf3772d260cb25777d9a998172a401)

15 years agoRemove spurious initial empty lines.
Joel E. Denny [Mon, 6 Apr 2009 04:39:49 +0000 (00:39 -0400)]
Remove spurious initial empty lines.

* data/location.cc: End the @output lines with an @.

15 years agoRemove spurious initial empty lines.
Akim Demaille [Tue, 22 Jul 2008 08:24:53 +0000 (10:24 +0200)]
Remove spurious initial empty lines.

* data/glr.c, data/glr.cc, data/lalr1.cc, data/lalr1.java,
* data/yacc.c: End the @output lines with an @.

15 years agoReplace BISON_PROG_GNU_M4 with Autoconf's AC_PROG_GNU_M4.
Joel E. Denny [Sun, 5 Apr 2009 01:12:23 +0000 (21:12 -0400)]
Replace BISON_PROG_GNU_M4 with Autoconf's AC_PROG_GNU_M4.

If the first m4 in $PATH is wrong, it keeps looking.  Moreover, its
requirements for a correct m4 are stricter.
* m4/m4.m4: Replace with Autoconf 2.63's m4/m4.m4.
* configure.ac: Update to use AC_PROG_GNU_M4.
Reported by Eric Blake.

15 years ago* ChangeLog: Update copyright.
Joel E. Denny [Sat, 4 Apr 2009 06:45:01 +0000 (02:45 -0400)]
* ChangeLog: Update copyright.

15 years agoHelp with updating web manual.
Joel E. Denny [Fri, 3 Apr 2009 22:32:02 +0000 (18:32 -0400)]
Help with updating web manual.

* HACKING: Incorporate instructions from gnulib/doc/README.
* bootstrap.conf (gnulib_modules): Add gendocs.

15 years agoFix strange %define locations for default values.
Joel E. Denny [Fri, 3 Apr 2009 07:13:36 +0000 (03:13 -0400)]
Fix strange %define locations for default values.

Reported by Akim Demaille at
<http://lists.gnu.org/archive/html/bug-bison/2007-12/msg00001.html>
and discussed again starting at
<http://lists.gnu.org/archive/html/bison-patches/2008-11/msg00102.html>.
* data/bison.m4 (b4_percent_define_default): Leave syncline blank
because location information is bogus.
Use angle brackets to delimit fake file name because square brackets
look like over-quoted m4.  Choose a better fake file name.
Use negative line numbers.
* src/muscle_tab.c (muscle_percent_define_default): Likewise.
* src/location.c (location_print): If line for a boundary is negative,
only print that boundary's file name.
* src/location.h: Document that.
* tests/skeletons.at (%define Boolean variables: invalid skeleton
defaults): Update output.

15 years agoLocations without columns for command line arguments.
Akim Demaille [Tue, 29 Jul 2008 10:45:21 +0000 (12:45 +0200)]
Locations without columns for command line arguments.

* src/location.c (location_print): Don't display negative columns.
* src/location.h: Document this.
(cherry picked from commit 56c5eca97359ecc15481c6b9dff8f34c63219d70)

15 years agoAdd reminder about uploading public key to keys.gnupg.net.
Joel E. Denny [Tue, 3 Feb 2009 08:08:32 +0000 (03:08 -0500)]
Add reminder about uploading public key to keys.gnupg.net.

* HACKING (Release Procedure): Here.
(cherry picked from commit 06c3084fb5a566e802ba35a9cc54be51db7fe6f1)

15 years agobootstrap: --help to stdout.
Akim Demaille [Tue, 31 Mar 2009 08:41:25 +0000 (10:41 +0200)]
bootstrap: --help to stdout.

* bootstrap (usage): Don't send --help to stderr.
Use a here doc instead of a long string.

15 years agobootstrap: README-hacking no longer exists
Akim Demaille [Tue, 31 Mar 2009 08:40:17 +0000 (10:40 +0200)]
bootstrap: README-hacking no longer exists

* bootstrap (checkout_only_file): Set to HACKING.

15 years agodoc: merge HACKING and README-hacking.
Akim Demaille [Thu, 26 Mar 2009 22:36:18 +0000 (23:36 +0100)]
doc: merge HACKING and README-hacking.

Two files is confusing.
Reported by Alexandre Duret-Lutz.

* README-hacking: Merge into...
* HACKING (Working from the repository): here.

15 years agodoc: update README-hacking.
Akim Demaille [Thu, 26 Mar 2009 22:14:45 +0000 (23:14 +0100)]
doc: update README-hacking.

* README-hacking: We now use git and git submodules.
Reported by Ralf Wildenhues and Alexandre Duret-Lutz.

15 years agolalr1.cc: avoid GCC 4.3 warnings.
Akim Demaille [Thu, 26 Mar 2009 22:02:18 +0000 (23:02 +0100)]
lalr1.cc: avoid GCC 4.3 warnings.

GCC 4.3 now warns about "a || b && c" and asks for explicit
parentheses.
Reported by Alexandre Duret-Lutz.
* data/location.cc: Update copyright years.
(Position::operator==): Use parens to make precedence explicit.
Compare lines and columns first, as they are more likely to be
different, and they are faster to compare.

15 years agognulib: update.
Akim Demaille [Thu, 26 Mar 2009 21:59:01 +0000 (22:59 +0100)]
gnulib: update.

* gnulib: Update to latest.
* lib/Makefile.am (AM_CPPFLAGS): It is now defined by gnulib, so
use +=.

15 years agoUpdate gnulib.
Akim Demaille [Thu, 12 Feb 2009 08:51:53 +0000 (09:51 +0100)]
Update gnulib.

15 years agoFix grep portability issues.
Akim Demaille [Thu, 8 Jan 2009 08:41:21 +0000 (09:41 +0100)]
Fix grep portability issues.

Grep on Solaris does not support -q.
Reported by Summum Bonum.

* NEWS: Add a stub for 2.4.2.
* THANKS: Add Summum Bonum.
* tests/atlocal.in (EGREP): New.
(CC, CXX, XSLTPROC): Make it possible to override them via
envvars.
* tests/java.at: Use $EGREP instead of egrep.
Use AT_CHECK's ignore instead of grep's -q.