]> git.saurik.com Git - bison.git/log
bison.git
18 years agoIn the grammar file, the first column is 1 not 0 on the first line as
Joel E. Denny [Sat, 8 Jul 2006 00:02:04 +0000 (00:02 +0000)] 
In the grammar file, the first column is 1 not 0 on the first line as
on every other line.
* src/parse-gram.y (%initial-action): Initialize @$ correctly.
* tests/input.at (Torturing the Scanner): Update output.

* src/scan-gram.l (scanner_cursor): Declare it static.

18 years agoIn warnings, say "previous declaration" rather than "first
Joel E. Denny [Fri, 7 Jul 2006 21:25:03 +0000 (21:25 +0000)] 
In warnings, say "previous declaration" rather than "first
declaration".
* src/symtab.c (redeclaration): Do that here.
* src/reader.c (record_merge_function_type): In the case of a result
type clash, report the previous declaration rather than the very first
one in the grammar file.
* tests/glr-regression.at (Missed %merge type warnings when LHS type is
declared later): Add a third declaration to check this behavior.
* tests/input.at (Incompatible Aliases): Update output.

18 years ago* ChangeLog: Add mailing list references to some of the 2006-06-26 patches.
Joel E. Denny [Fri, 7 Jul 2006 19:43:33 +0000 (19:43 +0000)] 
* ChangeLog: Add mailing list references to some of the 2006-06-26 patches.

18 years ago* doc/Doxyfile.in: New.
Akim Demaille [Tue, 27 Jun 2006 14:09:54 +0000 (14:09 +0000)] 
* doc/Doxyfile.in: New.
* doc/Makefile.am: Use it.
* src/lalr.h, src/symtab.h: Initial doxygenation.

18 years agoDon't miss %merge result type warnings just because the LHS types are
Joel E. Denny [Mon, 26 Jun 2006 04:45:24 +0000 (04:45 +0000)] 
Don't miss %merge result type warnings just because the LHS types are
declared after the %merge.
* src/reader.c (get_merge_function): Don't set the merger type yet.
(record_merge_function_type): New function for setting the merger type
and checking for clashes.
(grammar_current_rule_merge_set): Set the location of the %merge for
the current rule.
(packgram): Invoke record_merge_function_type for each rule now that
all symbol type declarations have been parsed.
* src/reader.h (merger_list.type_declaration_location): New member
storing the location of the first %merge from which the type for this
merging function was derived.
* src/symlist.h (symbol_list.merger_declaration_location): New member
storing the location of a rule's %merge, if any.
* tests/glr-regression.at (Missed %merge type warnings when LHS type is
declared later): New test to catch the error fixed by the above patch.

18 years agoFix code formatting.
Joel E. Denny [Mon, 26 Jun 2006 04:29:34 +0000 (04:29 +0000)] 
Fix code formatting.

18 years agoGet action warnings (grammar_rule_check) right even when symbol
Joel E. Denny [Mon, 26 Jun 2006 04:16:50 +0000 (04:16 +0000)] 
Get action warnings (grammar_rule_check) right even when symbol
declarations appear after the rules.  Don't mistake the type of $$ in
a midrule to be that of its parent rule's $$.
* src/reader.c (grammar_current_rule_end): Don't invoke
grammar_rule_check yet since not all symbol declarations may have been
parsed yet.
(grammar_midrule_action): Likewise.
Don't record whether the midrule's $$ has been used yet since actions
haven't been translated yet.
Record the midrule's parent rule and its RHS index within the parent
rule.
(grammar_current_rule_action_append): Don't translate the action yet
since not all symbol declarations may have been parsed yet and, thus,
warnings about types for $$, $n, @$, and @n can't be reported yet.
(packgram): Translate the action and invoke grammar_rule_check now that
all symbol declarations have been parsed.
* src/scan-code.l (handle_action_dollar): Now that this is invoked
after parsing the entire grammar file, the symbol list here in the case
of a midrule is actually the midrule's empty RHS, so reference its
parent rule's RHS where necessary.
On the other hand, now that you can already know it's a midrule, you
aren't forced to think $$ has the same type as its parent rule's $$.
(handle_action_at): In the case of a midrule, reference the parent rule
where necessary.
* src/symlist.c (symbol_list_new): Initialize new midrule-related
members.
(symbol_list_length): Now that this is invoked after all rules have
been parsed, a NULL symbol (rather than a NULL symbol list node)
terminates a rule.  symbol_list_print already does this correctly.
* src/symlist.h (symbol_list.midrule_parent_rule,
symbol_list.midrule_parent_rhs_index): New members so that midrules can
remember their relationships with their parents.
* tests/input.at (Type Clashes): Extend to catch the midrule $$ error
fixed by the above patch.
(_AT_UNUSED_VALUES_DECLARATIONS, AT_CHECK_UNUSED_VALUES): New m4 macros
implementing...
(Unused values): ... this old test case and...
(Unused values before symbol declarations): ... this new test case.
This one is the same as `Unused values' except that all symbol
declarations appear after the rules in order to catch the rest of the
errors fixed by the above patch.

18 years agoFix formatting in most recent entry.
Joel E. Denny [Mon, 26 Jun 2006 03:35:27 +0000 (03:35 +0000)] 
Fix formatting in most recent entry.

18 years agoMore cleanup.
Joel E. Denny [Mon, 26 Jun 2006 03:28:57 +0000 (03:28 +0000)] 
More cleanup.
* src/reader.c (current_rule): Declare it static since it's no longer
used outside this file.
(grammar_current_rule_action_append): Remove redundant arguments from
translate_rule_action invocation.
* src/reader.h (current_rule): Remove this unused extern.
* src/scan-code.h (translate_rule_action): Remove redundant arguments.
* src/scan-code.l (translate_rule_action): Likewise.

18 years agoClean up yesterday's patch.
Joel E. Denny [Sun, 25 Jun 2006 06:59:54 +0000 (06:59 +0000)] 
Clean up yesterday's patch.
* parse-gram.y (rhs): Move grammar_midrule_action invocation from here
to...
* src/reader.c (grammar_current_rule_action_append): ... here for
consistency with grammar_current_rule_symbol_append.
* tests/regression.at (Braced code in declaration in rules section):
Make yyerror and yylex static as usual.

18 years agoFix bug that mistakes braced code in a declaration in the rules section
Joel E. Denny [Sat, 24 Jun 2006 06:51:27 +0000 (06:51 +0000)] 
Fix bug that mistakes braced code in a declaration in the rules section
to be a rule action.  Mentioned at
<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00105.html>.
* src/scan-gram.l: Move midrule action detection from the start of the
scanning of any braced code to...
* src/parse-gram.y (rhs): ... the parsing of braced code as a rule
action.  For readability, use $2 and @2 rather than the equivalent
global variables.
* tests/regression.at (Braced code in declaration in rules section):
New test to catch the error fixed by the above patch.

Work on code readability some.
* src/scan-code.l (current_rule): Get rid of this misleading and
redundant declaration: it's actually extern'ed in reader.h.
(YY_DECL, code_lex, handle_action_dollar, handle_action_at,
translate_action): Add a rule argument and use it instead of the global
current_rule.
(translate_rule_action): This already receives current_rule through an
argument, so pass it on to translate_action instead of assigning
current_rule to current_rule.
(translate_symbol_action, translate_code): Pass rule = NULL to
translate_action.

18 years agoRename %before-definitions to %start-header and %after-definitions to
Joel E. Denny [Fri, 23 Jun 2006 20:17:28 +0000 (20:17 +0000)] 
Rename %before-definitions to %start-header and %after-definitions to
%end-header.  Don't use these declarations to separate pre-prologue
blocks from post-prologue blocks.  Add new order-independent
declarations %before-header and %after-header as alternatives to the
traditional Yacc pre-prologue and post-prologue blocks.  Discussed at
<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00110.html>.
* NEWS (2.3+): Update for these changes.
* data/glr.c (b4_before_definitions): Update to...
(b4_start_header): ... this.
(b4_after_definitions): Update to...
(b4_end_header): ... this.
* data/glr.cc: Likewise.
* data/lalr1.cc: Likewise.
* data/yacc.c: Likewise.
* doc/bison.texinfo (The prologue): Update names, and replace remaining
prologue blocks with %*-header declarations.
(Calc++ Parser): Likewise.
(Bison Declaration Summary): Update names.
(Bison Symbols): Update description.
* src/parse-gram.y (PERCENT_AFTER_DEFINITIONS): Update to...
(PERCENT_END_HEADER): ... this.
(PERCENT_BEFORE_DEFINITIONS): Update to...
(PERCENT_START_HEADER): ... this.
(PERCENT_AFTER_HEADER, PERCENT_BEFORE_HEADER): New tokens.
(declaration): Update token names and m4 macro names.
When parsing %end-header and %start-header, invoke translate_code
before muscle_code_grow, and no longer set global booleans to remember
whether these declarations have been seen.
Parse new %after-header and %before-header.
* src/reader.c (before_definitions, after_definitions): Remove.
(prologue_augment): Accept a new bool argument to specify whether to
augment the pre-prologue or post-prologue.
* src/reader.h (before_definitions, after_definitions): Remove these
extern's.
(prologue_augment): Add new bool argument.
* src/scan-gram.l (PERCENT_AFTER_DEFINITIONS): Update to...
(PERCENT_END_HEADER): ... this.
(PERCENT_BEFORE_DEFINITIONS): Update to...
(PERCENT_START_HEADER): ... this.
(PERCENT_AFTER_HEADER, PERCENT_BEFORE_HEADER): New tokens.
* tests/actions.at (Printers and Destructors): Update names.

18 years agoAdd comparison operators for C++ location classes. Discussed at
Joel E. Denny [Thu, 22 Jun 2006 19:46:05 +0000 (19:46 +0000)] 
Add comparison operators for C++ location classes.  Discussed at
<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00092.html>.
* data/c++.m4 (b4_define_location_comparison): New boolean %define
declaration indicating whether filename_type has an operator==.  If
filename_type is `std::string', it defaults to `1', `0' otherwise.
* data/location.cc: Iff b4_define_location_comparison is `1', add
operator== and operator!= for class position and for class location.

Some minor fixes.
* src/scan-action.l: Remove unused file.
* src/symtab.c (symbol_printer_set): Use printer_location not
destructor_location.
* src/symtab.h (struct symbol): Replace incorrect source comment for
printer members.
* tests/input.at (Incompatible Aliases): Update output with correct
printer location.

18 years agoDon't put the pre-prologue in the header file. For the yacc.c code
Joel E. Denny [Wed, 21 Jun 2006 01:37:01 +0000 (01:37 +0000)] 
Don't put the pre-prologue in the header file.  For the yacc.c code
file and the glr.c header and code files, move the pre-prologue before
the token definitions.  Add new %before-definitions and
%after-definitions to declare code that will go in both the header file
and code file.  Discussed at
<http://lists.gnu.org/archive/html/bison-patches/2005-12/msg00000.html>,
<http://lists.gnu.org/archive/html/bison-patches/2006-01/msg00016.html>,
and
<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00055.html>.
* NEWS (2.3+): Describe these changes.
* data/glr.c (b4_pre_prologue): Move from within to before...
(b4_shared_declarations): ... this.
Add new b4_before_definitions before b4_token_enums.
Add new b4_after_definitions at the end.
* data/glr.cc (b4_pre_prologue): Replace with...
(b4_before_definitions): ... this in the header file.
(b4_after_definitions): New near the end of the header file.
* data/lalr1.cc (b4_pre_prologue): Move from the header file to the
code file right before including the header file.
(b4_before_definitions): New in the previous position of
b4_pre_prologue in the header file.
(b4_after_definitions): New near the end of the header file.
* data/yacc.c: Clean up some m4 quoting especially in the header file.
(b4_token_enums_defines): In the code file, move to right before
YYSTYPE for consistency with the header file.
(b4_before_definitions): New right before b4_token_enums_defines in
both the header and code file.
(b4_after_definitions): New right after YYLTYPE and yylloc in both the
header and code file.
* doc/bison.texinfo (Prologue): Show use of %before-definitions instead
of prologues for %union dependencies.
(Bison Declaration Summary): In %defines description, mention the
effect of %before-definitions and %after-definitions on the header
file.
(Calc++ Parser): Forward declare driver in a %before-definitions rather
than in the pre-prologue so that make check succeeds.
(Bison Symbols): Add entries for %before-definitions and
%after-definitions.
* src/parse-gram.y (PERCENT_BEFORE_DEFINITIONS): New token for
%before-definitions.
(PERCENT_AFTER_DEFINITIONS): New token for %after-definitions.
(declaration): Parse those declarations and append to
b4_before_definitions and b4_after_definitions, respectively.
* src/reader.c (before_definitions, after_definitions): New bools to
track whether those declarations have been seen.
(prologue_augment): Add to the post-prologue if %union,
%before-definitions, or %after-definitions has been seen.
* src/reader.h (before_definitions, after_definitions): New extern's.
* src/scan-gram.l: Scan the new declarations.
* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Place the second
prologue block in a %before-definitions or a %after-definitions based
on whether the %union is declared.
* tests/regression.at (Early token definitions with --yacc, Early token
definitions without --yacc): Move tests for token definitions into the
post-prologue since token names are no longer defined in the
pre-prologue.

18 years ago* src/symtab.h, src/symtab.c (symbol_from_uniqstr): New.
Akim Demaille [Tue, 20 Jun 2006 11:39:22 +0000 (11:39 +0000)] 
* src/symtab.h, src/symtab.c (symbol_from_uniqstr): New.
(symbol_get): Use it.
* src/parse-gram.y: Use it.

18 years agoInstall these changes:
Akim Demaille [Tue, 20 Jun 2006 11:32:19 +0000 (11:32 +0000)] 
Install these changes:
* data/c.m4 (b4_union_name): Leave a default value.
* data/glr.c, data/yacc.c: Use it.

18 years ago* src/scan-gram.l: Remove unused declaration of last_string_1 so the
Joel E. Denny [Mon, 19 Jun 2006 22:31:33 +0000 (22:31 +0000)] 
* src/scan-gram.l: Remove unused declaration of last_string_1 so the
build succeeds when configured with --enable-gcc-warnings.

18 years agoRegenerate.
Paul Eggert [Mon, 19 Jun 2006 21:33:59 +0000 (21:33 +0000)] 
Regenerate.

18 years ago* src/parse-gram.y (char_name): New function.
Paul Eggert [Mon, 19 Jun 2006 21:32:41 +0000 (21:32 +0000)] 
* src/parse-gram.y (char_name): New function.
(CHAR, STRING, string_content): For %printer, properly escape.
(ID): Prefer fputs to fprintf.
(id): Reindent to be consistent with other rules.
Properly quote char.

18 years ago* bootstrap (TP_URL, WGET_COMMAND): New vars.
Paul Eggert [Mon, 19 Jun 2006 20:33:13 +0000 (20:33 +0000)] 
* bootstrap (TP_URL, WGET_COMMAND): New vars.
(get_translations): New function, which uses HTML scraping to
deduce locations of latest translations.
Use this function to grab both bison and bison-runtime .po files.
Don't bother priming the pump for the runtime-po domain any more,
as it's now translated better than bison is.

18 years ago* src/scan-gram.l: No longer "parse" things after `%union' until
Akim Demaille [Mon, 19 Jun 2006 16:49:44 +0000 (16:49 +0000)] 
* src/scan-gram.l: No longer "parse" things after `%union' until
`{'.  Rather, return a single "%union" token.
No longer make symbols: return strings, and leave the conversion
to symbols to the parser.
(SC_PRE_CODE, token_type): Remove.
* src/parse-gram.y (%union): New field `character'.
Sort tokens.
(CHAR): New token.
(ID, ID_COLON): Now that the scanner no longer makes them
identifiers, adjust all uses to invoke symbol_get.
(id_colon): New, wraps the conversion from string to symbol.
(%union): Accept a possible union_name.
(symbol): Now can be a char.
* data/c.m4 (b4_union_name): Leave a default value.
* data/glr.c, data/yacc.c: Use it.

18 years agoAdd name for twlevo.
Paul Eggert [Thu, 15 Jun 2006 18:29:10 +0000 (18:29 +0000)] 
Add name for twlevo.

18 years agoFor associating token numbers with token names for "yacc.c", don't use
Joel E. Denny [Sun, 11 Jun 2006 18:27:44 +0000 (18:27 +0000)] 
For associating token numbers with token names for "yacc.c", don't use
#define statements unless `--yacc' is specified; always use enum
yytokentype.  Most important discussions start at:
<http://lists.gnu.org/archive/html/bison-patches/2005-09/msg00053.html>,
<http://lists.gnu.org/archive/html/bison-patches/2005-12/msg00052.html>,
and
<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00043.html>.
* NEWS (2.3+): Mention.
* data/c.m4 (b4_yacc_if): New.
(b4_token_enums_defines): Use b4_yacc_if to decide whether to add the
token #define's.
* doc/bison.texinfo (Bison Options): Describe the effect of `--yacc'
on token name definitions.
* src/getargs.c (usage): Capitalize `Yacc' in English.
* src/output.c (prepare): Define b4_yacc_flag.
* tests/regression.at (Early token definitions): Test that tokens names
are defined before the pre-prologue not just before the post-prologue.
Remove this test case and copy to...
(Early token definitions with --yacc): ... this to test #define's.
(Early token definitions without --yacc): ... and this to test enums.

18 years ago* NEWS: Reword the post-2.3 change to not be so optimistic about
Paul Eggert [Sun, 11 Jun 2006 08:16:04 +0000 (08:16 +0000)] 
* NEWS: Reword the post-2.3 change to not be so optimistic about
removing the old "look-ahead" spelling.
Update previous look-ahead/lookahead change reports.
* REFERENCES: look-ahead -> lookahead (since that's
what he actually wrote).
* doc/refcard.tex: look ahead -> lookahead,
look-ahead -> lookahead

18 years agoFor consistency, use `lookahead' instead of `look-ahead' or
Joel E. Denny [Sat, 10 Jun 2006 03:02:23 +0000 (03:02 +0000)] 
For consistency, use `lookahead' instead of `look-ahead' or
`look_ahead'.  Discussed starting at
<http://lists.gnu.org/archive/html/bison-patches/2006-01/msg00049.html>
and then at
<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00017.html>.
* NEWS: For the next release, note the change to `--report'.
* TODO, doc/bison.1: Update English.
* doc/bison.texinfo: Update English.
(Understanding Your Parser, Bison Options): Document as
`--report=lookahead' rather than `--report=look-ahead'.
* src/conflicts.c: Update English in comments.
(lookahead_set): Rename from look_ahead_set.
(flush_reduce): Rename argument look_ahead_tokens to lookahead_tokens.
(resolve_sr_conflict): Rename local look_ahead_tokens to
lookahead_tokens, and update other uses.
(flush_shift, set_conflicts, conflicts_solve, count_sr_conflicts,
count_rr_conflicts, conflicts_free): Update uses.
* src/getargs.c (report_args): Move "lookahead" before alternate
spellings.
(report_types): Update uses.
(usage): For `--report' usage description, state `lookahead' spelling
rather than `look-ahead'.
* src/getargs.h (report.report_lookahead_tokens): Rename from
report_look_ahead_tokens.
* src/lalr.c: Update English in comments.
(compute_lookahead_tokens): Rename from compute_look_ahead_tokens.
(state_lookahead_tokens_count): Rename from
state_look_ahead_tokens_count.
Rename local n_look_ahead_tokens to n_lookahead_tokens.
(lookahead_tokens_print): Rename from look_ahead_tokens_print.
Rename local n_look_ahead_tokens to n_lookahead_tokens.
Update other uses.
Update English in output.
(add_lookback_edge, initialize_LA, lalr, lalr_free): Update uses.
* src/print.c: Update English in comments.
(lookahead_set): Rename from look_ahead_set.
(print_reduction): Rename argument lookahead_token from
look_ahead_token.
(print_core, state_default_rule, print_reductions, print_results):
Update uses.
* src/print_graph.c: Update English in comments.
(print_core): Update uses.
* src/state.c: Update English in comments.
(reductions_new): Update uses.
(state_rule_lookahead_tokens_print): Rename from
state_rule_look_ahead_tokens_print, and update other uses.
* src/state.h: Update English in comments.
(reductions.lookahead_tokens): Rename from look_ahead_tokens.
(state_rule_lookahead_tokens_print): Rename from
state_rule_look_ahead_tokens_print.
* src/tables.c: Update English in comments.
(conflict_row, action_row): Update uses.
* tests/glr-regression.at
(Incorrect lookahead during deterministic GLR,
Incorrect lookahead during nondeterministic GLR): Rename
print_look_ahead to print_lookahead.
* tests/torture.at: Update English in comments.
(AT_DATA_LOOKAHEAD_TOKENS_GRAMMAR): Rename from
AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR.
(Many lookahead tokens): Update uses.
* data/glr.c: Update English in comments.
* lalr1.cc: Likewise.
* yacc.c: Likewise.
* src/conflicts.h: Likewise.
* src/lalr.h: Likewise.
* src/main.c: Likewise.
* src/output.c: Likewise.
* src/parse-gram.c: Likewise.
* src/tables.h: Likewise.
* tests/calc.at: Likewise.

18 years ago* src/flex-scanner.h (yytext): Remove stray `*/' in #define.
Joel E. Denny [Thu, 8 Jun 2006 05:33:15 +0000 (05:33 +0000)] 
* src/flex-scanner.h (yytext): Remove stray `*/' in #define.

18 years ago* TODO: Add request from Nelson H. F. Beebe to be able to install
Paul Eggert [Thu, 8 Jun 2006 05:14:36 +0000 (05:14 +0000)] 
* TODO: Add request from Nelson H. F. Beebe to be able to install
Bison without installing the yacc script.

18 years ago* src/flex-scanner.h: For the sake of Flex 2.5.4, don't #define yyleng
Joel E. Denny [Wed, 7 Jun 2006 21:17:35 +0000 (21:17 +0000)] 
* src/flex-scanner.h: For the sake of Flex 2.5.4, don't #define yyleng
and yytext if they're already #define'd.
* src/flex-scanner.h, src/location.h: Move #include "system.h" to...
* src/scan-code-c.c: ... here.
* src/scan-code.l, src/scan-gram.l: ... and here.  Also #include
<config.h>.

18 years agosrc/location.h: #include "system.h" rather than <stdbool.h>.
Joel E. Denny [Wed, 7 Jun 2006 20:15:40 +0000 (20:15 +0000)] 
src/location.h: #include "system.h" rather than <stdbool.h>.

18 years agoGet Bison to build again when configured with --enable-gcc-warnings.
Joel E. Denny [Wed, 7 Jun 2006 20:06:27 +0000 (20:06 +0000)] 
Get Bison to build again when configured with --enable-gcc-warnings.
* src/location.c, src/location.h, src/main.c, src/scan-code.l: Add some
missing #include's.
* src/scan-code.l (handle_action_dollar, handle_action_at): Rename
loc argument as it shadows a global.
* src/scan-gram.l: Remove stray comma that prevents boundary_set
invocation.

* src/.cvsignore: Add scan-code.c.

18 years agoAdd it for real.
Akim Demaille [Wed, 7 Jun 2006 07:58:28 +0000 (07:58 +0000)] 
Add it for real.

18 years ago* src/scan-gram.l: Move the "add a trailing ; to actions" code
Akim Demaille [Wed, 7 Jun 2006 07:09:32 +0000 (07:09 +0000)] 
* src/scan-gram.l: Move the "add a trailing ; to actions" code
to...
* src/scan-code.l: here.
* tests/input.at (Torturing the Scanner): Fix another location
error.

18 years ago* src/Makefile.am (BUILT_SOURCES): Fix the trailing backslash.
Akim Demaille [Wed, 7 Jun 2006 06:52:12 +0000 (06:52 +0000)] 
* src/Makefile.am (BUILT_SOURCES): Fix the trailing backslash.

18 years agoExtract the parsing of user actions from the grammar scanner.
Akim Demaille [Tue, 6 Jun 2006 16:40:06 +0000 (16:40 +0000)] 
Extract the parsing of user actions from the grammar scanner.
As a consequence, the relation between the grammar scanner and
parser is much simpler.  We can also split "composite tokens" back
into simple tokens.
* src/gram.h (ITEM_NUMBER_MAX, RULE_NUMBER_MAX): New.
* src/scan-gram.l (add_column_width, adjust_location): Move to and
rename as...
* src/location.h, src/location.c (add_column_width)
(location_compute): these.
Fix the column count: the initial column is 0.
(location_print): Be robust to ending column being 0.
* src/location.h (boundary_set): New.
* src/main.c: Adjust to scanner_free being renamed as
gram_scanner_free.
* src/output.c: Include scan-code.h.
* src/parse-gram.y: Include scan-gram.h and scan-code.h.
Use boundary_set.
(PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_INITIAL_ACTION)
(PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Remove the {...} part,
which is now, again, a separate token.
Adjust all dependencies.
Whereever actions with $ and @ are used, use translate_code.
(action): Remove this nonterminal which is now useless.
* src/reader.c: Include assert.h, scan-gram.h and scan-code.h.
(grammar_current_rule_action_append): Use translate_code.
(packgram): Bound check ruleno, itemno, and rule_length.
* src/reader.h (gram_in, gram__flex_debug, scanner_cursor)
(last_string, last_braced_code_loc, max_left_semantic_context)
(scanner_initialize, scanner_free, scanner_last_string_free)
(gram_out, gram_lineno, YY_DECL_): Move to...
* src/scan-gram.h: this new file.
(YY_DECL): Rename as...
(GRAM_DECL): this.
* src/scan-code.h, src/scan-code.l, src/scan-code-c.c: New.
* src/scan-gram.l (gram_get_lineno, gram_get_in, gram_get_out):
(gram_get_leng, gram_get_text, gram_set_lineno, gram_set_in):
(gram_set_out, gram_get_debug, gram_set_debug, gram_lex_destroy):
Move these declarations, and...
(obstack_for_string, STRING_GROW, STRING_FINISH, STRING_FREE):
these to...
* src/flex-scanner.h: this new file.
* src/scan-gram.l (rule_length, rule_length_overflow)
(increment_rule_length): Remove.
(last_braced_code_loc): Rename as...
(gram_last_braced_code_loc): this.
Adjust to the changes of the parser.
Move all the handling of $ and @ into...
* src/scan-code.l: here.
* src/scan-gram.l (handle_dollar, handle_at): Remove.
(handle_action_dollar, handle_action_at): Move to...
* src/scan-code.l: here.
* src/Makefile.am (bison_SOURCES): Add flex-scanner.h,
scan-code.h, scan-code-c.c, scan-gram.h.
(EXTRA_bison_SOURCES): Add scan-code.l.
(BUILT_SOURCES): Add scan-code.c.
(yacc): Be robust to white spaces.
* tests/conflicts.at, tests/input.at, tests/reduce.at,
* tests/regression.at: Adjust the column numbers.
* tests/regression.at: Adjust the error message.

18 years ago* src/getargs.c (usage): Mention GLR not just LALR(1) in --help output.
Joel E. Denny [Tue, 6 Jun 2006 06:00:55 +0000 (06:00 +0000)] 
* src/getargs.c (usage): Mention GLR not just LALR(1) in --help output.
Use Akim's wording from
<http://lists.gnu.org/archive/html/bison-patches/2006-05/msg00056.html>.

18 years agoBetween Bison releases, manually append `+' to the previous Bison
Joel E. Denny [Tue, 6 Jun 2006 05:23:44 +0000 (05:23 +0000)] 
Between Bison releases, manually append `+' to the previous Bison
release number, and use that as a signal to automatically print the
ChangeLog's CVS Id keyword from --version.  Discussed starting at
<http://lists.gnu.org/archive/html/bison-patches/2006-05/msg00028.html>.
* ChangeLog: Add Id header.
* configure.ac (AC_INIT): Append `+' to `2.3'.
* src/.cvsignore: Add revision.c.
* src/Makefile.am (bison_SOURCES): Add revision.c and revision.h.
(BUILT_SOURCES): Add revision.c.
(revision.c): New target rule.  This file defines a new global variable
named revision.  It initializes it with either the Id from ChangeLog
or, if VERSION doesn't contain `+', with the empty string.
* src/getargs.c (version): Print the value of revision.
* src/revision.h: Extern revision.

18 years ago* NEWS: Version 2.3.
Paul Eggert [Mon, 5 Jun 2006 07:45:41 +0000 (07:45 +0000)] 
* NEWS: Version 2.3.
* configure.ac (AC_INIT): Likewise.

18 years ago* data/glr.c (YYRECOVERING): Define to be a function-like macro
Paul Eggert [Tue, 30 May 2006 23:45:04 +0000 (23:45 +0000)] 
* data/glr.c (YYRECOVERING): Define to be a function-like macro
with no arguments, not as an object-like macro.  This is for
compatibility with data/yacc.c.  Problem reported by John P. Hartmann in
<http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00059.html>.
* doc/bison.texinfo (Action Features, Error Recovery, Table of Symbols):
Document this.

18 years ago* src/getargs.c (usage): Back out yesterday's modification of the
Joel E. Denny [Tue, 30 May 2006 16:11:45 +0000 (16:11 +0000)] 
* src/getargs.c (usage): Back out yesterday's modification of the
--help output so that we don't have to wait for translation before
releasing 2.3.

18 years ago* doc/bison.texinfo (Introduction): Don't say "GLR grammar".
Paul Eggert [Tue, 30 May 2006 06:07:06 +0000 (06:07 +0000)] 
* doc/bison.texinfo (Introduction): Don't say "GLR grammar".

18 years agoActualisation of information concerning ports
Juan Manuel Guerrero [Mon, 29 May 2006 19:09:36 +0000 (19:09 +0000)] 
Actualisation of information concerning ports
required to build port and enumeration of the
tests of the testsuite that will be skipped.

18 years ago* src/getargs.c (usage): Mention GLR not just LALR(1) in --help output.
Joel E. Denny [Mon, 29 May 2006 03:39:12 +0000 (03:39 +0000)] 
* src/getargs.c (usage): Mention GLR not just LALR(1) in --help output.

18 years agoRegenerate.
Paul Eggert [Sat, 27 May 2006 00:29:38 +0000 (00:29 +0000)] 
Regenerate.

18 years ago* data/yacc.c (yy_reduce_print): Omit trailing white space in
Paul Eggert [Sat, 27 May 2006 00:28:17 +0000 (00:28 +0000)] 
* data/yacc.c (yy_reduce_print): Omit trailing white space in
generated source code.

18 years ago* Makefile.maint (gzip_rsyncable, GZIP_ENV): Compute within the
Paul Eggert [Mon, 22 May 2006 07:41:15 +0000 (07:41 +0000)] 
* Makefile.maint (gzip_rsyncable, GZIP_ENV): Compute within the
shell, not within 'make', so that 'make' by an ordinary builder
(using GNU make) does not worry about configuring gzip.  This also
works around a bug reported independently by Keith Thompson and by
Georg Schwarz, whereby gzip 1.2.4 --help would output usage on
stderr rather than stdout, messing up the build logs.

18 years ago* data/yacc.c (yyparse): Wrap the final return from yyparse inside YYID
Joel E. Denny [Sun, 21 May 2006 08:11:30 +0000 (08:11 +0000)] 
* data/yacc.c (yyparse): Wrap the final return from yyparse inside YYID
to make sure that YYID will never be unused.  This fixes a 'make
maintainer-check' failure caused by the recent changes to the 'Trivial
grammars' test case, which caused g++ 4.1.0 to complain that YYID was
not used.
* data/glr.c (yyparse): Wrap yyparse's return inside YYID just in case.

18 years agoRegenerate.
Paul Eggert [Sun, 21 May 2006 08:01:24 +0000 (08:01 +0000)] 
Regenerate.

18 years ago* data/glr.c (yyresolveLocations): Remove bogus YYASSERT that the
Joel E. Denny [Sun, 21 May 2006 06:22:36 +0000 (06:22 +0000)] 
* data/glr.c (yyresolveLocations): Remove bogus YYASSERT that the
state before an empty RHS is always resolved here.  Only the location
of that state is guaranteed to be resolved, and that's enough.  This
fixes the remaining bug reported by Derek M. Jones in
<http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00027.html>.
* tests/glr-regression.at (Uninitialized location when reporting
ambiguity): Test the above case.
Also, the embedded comments in this test case claim it checks the case
of an empty RHS that has inherited the initial location.  However, the
corresponding LHS was already resolved, so yyresolveLocations didn't
actually have reason to modify it.  Fix this by forcing
nondeterministic operation at the beginning of the parse.

18 years ago* data/c.m4 (b4_yy_symbol_print_generate):
Paul Eggert [Sun, 21 May 2006 04:48:47 +0000 (04:48 +0000)] 
* data/c.m4 (b4_yy_symbol_print_generate):
(b4_yy_symbol_print_generate): Use 'YYSTYPE const' rather than
'const YYSTYPE', and similarly for YYLTYPE.  This fixes one
of the bugs reported today by Derek M Jones in
<http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00027.html>.
* doc/bison.texinfo (Value Type): Document that YYSTYPE must be
defined to be a type name without parens or brackets.
(Location Type): Similarly for YYLTYPE.
* tests/regression.at (Trivial grammars): Put in a test for this
bug that will be caught by 'make maintainer-check' (though not,
alas, by 'make check' unless your compiler is picky).

18 years agoUpdate version number to 2.2a.
Paul Eggert [Fri, 19 May 2006 23:19:04 +0000 (23:19 +0000)] 
Update version number to 2.2a.

18 years agoRegenerate.
Paul Eggert [Fri, 19 May 2006 21:46:46 +0000 (21:46 +0000)] 
Regenerate.

18 years agoWhoops, I meant version 2.2.
Paul Eggert [Fri, 19 May 2006 21:46:32 +0000 (21:46 +0000)] 
Whoops, I meant version 2.2.

18 years agoVersion 2.1.
Paul Eggert [Fri, 19 May 2006 21:46:07 +0000 (21:46 +0000)] 
Version 2.1.

18 years ago* data/glr.c (yyreportTree): Make room in yystates for the state
Joel E. Denny [Wed, 17 May 2006 16:39:40 +0000 (16:39 +0000)] 
* data/glr.c (yyreportTree): Make room in yystates for the state
preceding the RHS.  This fixes the segmentation fault reported by Derek
M. Jones in
<http://lists.gnu.org/archive/html/help-bison/2006-05/msg00035.html>.
(yyreportTree, yypdumpstack): Subtract 1 from yyrule before printing
to the user.  Reported for yyreportTree by Derek M. Jones later in the
same thread.
* THANKS: Add Derek M. Jones.
Update my email address.
Fix typo in Steve Murphy's name.

18 years ago* data/glr.c (yyreportSyntaxError): Fix off-by-one error in
Paul Eggert [Mon, 15 May 2006 06:13:53 +0000 (06:13 +0000)] 
* data/glr.c (yyreportSyntaxError): Fix off-by-one error in
checking against YYLAST that caused the parser to miss a potential
alternative in its diagnostic.
Problem reported by Maria Jose Moron Fernandez in
<http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00024.html>.
* data/lalr1.cc (yysyntax_error_): Likewise.
* data/yacc.c (yysyntax_error): Likewise.
* tests/regression.at (_AT_DATA_DANCER_Y): Use static array for
tokens, in case we run into an older C compiler.
(_AT_DATA_EXPECT2_Y, AT_CHECK_EXPECT2): New macros.
Use them to check for the off-by-one error fixed above.

18 years ago* data/yacc.c (yytnamerr): Fix typo: local var should be of type
Paul Eggert [Mon, 15 May 2006 05:10:06 +0000 (05:10 +0000)] 
* data/yacc.c (yytnamerr): Fix typo: local var should be of type
YYSIZE_T, not size_t.
* tests/regression.at (Trivial grammars): New test, to catch
the error fixed by the above patch.

18 years ago* doc/bison.texinfo (C++ Bison Interface): Clarify the naming
Akim Demaille [Sun, 14 May 2006 21:00:37 +0000 (21:00 +0000)] 
* doc/bison.texinfo (C++ Bison Interface): Clarify the naming
scheme.
Reported by Steve Murphy.

18 years ago* data/glr.cc, data/lalr1.cc: Using %defines is mandatory.
Akim Demaille [Sun, 14 May 2006 20:48:24 +0000 (20:48 +0000)] 
* data/glr.cc, data/lalr1.cc: Using %defines is mandatory.
* data/glr.cc: b4_location_flag is now b4_locations_flag.

18 years agoImplement --trace=m4.
Akim Demaille [Sun, 14 May 2006 20:40:35 +0000 (20:40 +0000)] 
Implement --trace=m4.
* src/getargs.c (trace_types, trace_args): Accept trace_m4.
* src/output.c (output_skeleton): When set, pass -dV to m4.
Factor the handling of flags in m4.
* src/output.c (prepare): Rename the muscle names debug, defines,
error_verbose to debug_flag, defines_flag, error_verbose_flag.
* data/c.m4: Adjust.
(_b4_define_flag_if, b4_define_flag_if, b4_defines_if): New.
Use b4_define_flag_if to define other b4_FLAG_if macros.
(b4_location_if): As a consequence, rename as...
(b4_locations_if): this, for consistency.
Adjust all the skeletons.

18 years ago* etc/bench.pm: Shorten bench names.
Akim Demaille [Sun, 14 May 2006 20:39:18 +0000 (20:39 +0000)] 
* etc/bench.pm: Shorten bench names.

18 years ago* src/output.h, src/output.c (error_verbose): Move to...
Akim Demaille [Sun, 14 May 2006 19:14:10 +0000 (19:14 +0000)] 
* src/output.h, src/output.c (error_verbose): Move to...
* src/getargs.h, src/getargs.c: here.
Sort the flags.
Adjust dependencies.

18 years agoFix.
Akim Demaille [Sun, 14 May 2006 07:23:21 +0000 (07:23 +0000)] 
Fix.

18 years agoGive credit to Akim for suggestion.
Paul Eggert [Sun, 14 May 2006 07:04:09 +0000 (07:04 +0000)] 
Give credit to Akim for suggestion.

18 years agoRegenerate.
Paul Eggert [Sun, 14 May 2006 07:01:49 +0000 (07:01 +0000)] 
Regenerate.

18 years ago* data/c.m4 (b4_copyright): Put the special exception for Bison
Paul Eggert [Sun, 14 May 2006 07:00:18 +0000 (07:00 +0000)] 
* data/c.m4 (b4_copyright): Put the special exception for Bison
skeletons here, so we don't have to put it in each skeleton.  All
uses changed.  Wrap the copyright notice, in case it is longer
than 80 columns.  Replace comma by newline after title.

18 years ago* doc/bison.texinfo (Calc++ Scanner): The flex behavior is an
Paul Eggert [Thu, 11 May 2006 16:54:01 +0000 (16:54 +0000)] 
* doc/bison.texinfo (Calc++ Scanner): The flex behavior is an
incompatibility, not a bug.  Mention that it wasn't fixed as of
flex 2.5.33.

18 years ago* examples/extexi: Enforce the precedence of concatenation over
Akim Demaille [Thu, 11 May 2006 11:35:13 +0000 (11:35 +0000)] 
* examples/extexi: Enforce the precedence of concatenation over
>>.
Reported by   tommy.nordgren@chello.se

18 years agoComplete ChangeLog.
Akim Demaille [Thu, 11 May 2006 06:21:18 +0000 (06:21 +0000)] 
Complete ChangeLog.

18 years ago* data/lalr1.cc (yytranslate_): Rename token as t to avoid clashes
Akim Demaille [Thu, 11 May 2006 06:18:34 +0000 (06:18 +0000)] 
* data/lalr1.cc (yytranslate_): Rename token as t to avoid clashes
with the member "token".

18 years ago* data/glr.c: Switch to Bison 2.2 special-exception language in
Paul Eggert [Tue, 9 May 2006 06:40:13 +0000 (06:40 +0000)] 
* data/glr.c: Switch to Bison 2.2 special-exception language in
the copyright notice.  Use more-regular format for titles and
copyright notices.
* data/glr.cc: Likewise.
* data/location.cc: Likewise.
* data/yacc.cc: Likewise.
* doc/bison.texinfo (Conditions): Document this.
* NEWS: likewise.  Upgrade version to 2.2.

18 years agoAdd sane defaults for grep, egrep, fgrep and sed.
Juan Manuel Guerrero [Mon, 1 May 2006 14:35:33 +0000 (14:35 +0000)] 
Add sane defaults for grep, egrep, fgrep and sed.

18 years agoAdd information about what autoconf version configuration script
Juan Manuel Guerrero [Sun, 30 Apr 2006 17:02:24 +0000 (17:02 +0000)] 
Add information about what autoconf version configuration script
can be modified by this particular sed script.

18 years agoUse a more general search string in ac_abs_builddir, ac_abs_top_builddir, etc.
Juan Manuel Guerrero [Sun, 30 Apr 2006 16:30:49 +0000 (16:30 +0000)] 
Use a more general search string in ac_abs_builddir, ac_abs_top_builddir, etc.

18 years agoAdd more possible file name variations of Makefile.in.in
Juan Manuel Guerrero [Sun, 30 Apr 2006 16:30:36 +0000 (16:30 +0000)] 
Add more possible file name variations of Makefile.in.in
that must be checked for and renamed to the valid 8+3
file name Makefile.in-in

18 years ago* data/glr.cc: Remove dead code.
Akim Demaille [Thu, 27 Apr 2006 10:43:02 +0000 (10:43 +0000)] 
* data/glr.cc: Remove dead code.

18 years ago* bootstrap: Comment out the AM_CPPFLAGS line, since we don't use
Paul Eggert [Tue, 25 Apr 2006 21:02:36 +0000 (21:02 +0000)] 
* bootstrap: Comment out the AM_CPPFLAGS line, since we don't use
that variable and the line breaks the bootstrap.

18 years ago* doc/bison.texinfo (Multiple start-symbols): New.
Akim Demaille [Mon, 24 Apr 2006 09:45:57 +0000 (09:45 +0000)] 
* doc/bison.texinfo (Multiple start-symbols): New.

18 years ago* etc/README, etc/bench.pl: New.
Akim Demaille [Mon, 24 Apr 2006 08:35:44 +0000 (08:35 +0000)] 
* etc/README, etc/bench.pl: New.

18 years ago* src/scan-gram.l: Be robust to BRACED_CODE appearing before any
Akim Demaille [Mon, 3 Apr 2006 13:50:10 +0000 (13:50 +0000)] 
* src/scan-gram.l: Be robust to BRACED_CODE appearing before any
rule.
Reported by Mickael Labau.
* tests/input.at (Torturing the Scanner): Test it.

18 years ago* doc/bison.texinfo (Decl Summary): Don't mention yylloc twice.
Paul Eggert [Fri, 17 Mar 2006 07:59:20 +0000 (07:59 +0000)] 
* doc/bison.texinfo (Decl Summary): Don't mention yylloc twice.

18 years ago* Delete all environment variables after use to avoid that
Juan Manuel Guerrero [Tue, 14 Mar 2006 23:10:09 +0000 (23:10 +0000)] 
* Delete all environment variables after use to avoid that
  the environment space becomes exhausted.

18 years agoRemove @shorttitlepage stuff; it wasn't used
Paul Eggert [Mon, 13 Mar 2006 23:21:29 +0000 (23:21 +0000)] 
Remove @shorttitlepage stuff; it wasn't used
and didn't really work.
For the index, use @ifnotinfo, not @iftex.
Minor cleanups of spacing and terminology.

18 years ago* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Fix the definition
Akim Demaille [Sun, 12 Mar 2006 15:26:05 +0000 (15:26 +0000)] 
* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Fix the definition
of AT_NAME_PREFIX when %name-prefix is not used.

18 years agoApply --prefix to C++ skeletons too: they change the namespace.
Akim Demaille [Sun, 12 Mar 2006 14:45:27 +0000 (14:45 +0000)] 
Apply --prefix to C++ skeletons too: they change the namespace.
The test suite already exercize these cases.
* data/c++.m4 (b4_namespace): New.
* data/lalr1.cc, data/glr.cc, data/location.cc: Use it instead of `yy'.
* data/lalr1.cc (yytnameerr_): Move its definition into the namespace.
* data/yacc.c, data/glr.c: Remove a useless `[]'.
* doc/bison.texinfo: Document it.
(Option Cross Key): Use @multitable in all formats.  It looks
nicer, even in TeX outputs.
(Rules): Use the same code whatever the output type is.
* tests/local.at (_AT_BISON_OPTION_PUSHDEFS)
(_AT_BISON_OPTION_POPDEFS): Support AT_NAME_PREFIX.
* tests/calc.at: Use it, instead of hard coding `yy'.

18 years ago* TODO: Remove dead items.
Akim Demaille [Fri, 10 Mar 2006 13:56:47 +0000 (13:56 +0000)] 
* TODO: Remove dead items.

18 years agoFix ChangeLog.
Akim Demaille [Fri, 10 Mar 2006 13:53:48 +0000 (13:53 +0000)] 
Fix ChangeLog.

18 years ago* doc/FAQ: Remove, merged into...
Akim Demaille [Fri, 10 Mar 2006 13:45:03 +0000 (13:45 +0000)] 
* doc/FAQ: Remove, merged into...
* doc/bison.texinfo (FAQ): this.
* doc/Makefile.am (EXTRA_DIST): Adjust.

18 years ago* data/c.m4 (b4_token_enum): Always define the enum of tokens,
Akim Demaille [Fri, 10 Mar 2006 13:30:19 +0000 (13:30 +0000)] 
* data/c.m4 (b4_token_enum): Always define the enum of tokens,
even if empty.
* data/lalrl1.cc, data/glr.cc (parser::token_type): New.
* doc/bison.texinfo (Calc++ Scanner): Use it.

18 years agoFix two nits reported by twlevo, plus one more that I discovered.
Paul Eggert [Thu, 9 Mar 2006 23:23:11 +0000 (23:23 +0000)] 
Fix two nits reported by twlevo, plus one more that I discovered.

* src/assoc.h (assoc_to_string): Give a name to the arg, as
this is the usual Bison style.
* src/location.h (location_print): Likewise.

* src/reader.h (token_name): Likewise.

18 years agoFix some nits reported by twlevo.
Paul Eggert [Wed, 8 Mar 2006 19:45:10 +0000 (19:45 +0000)] 
Fix some nits reported by twlevo.
* doc/FAQ: Remove ancient Y2K FAQ, replacing it with "secure"
and "POSIX".  Use more-modern syntax for URLs.  Mention C++
and ask for Java.  Don't hardwire OS version numbers.  Add
copyright notice.
* m4/.cvsignore: Add unistd_h.m4, for latest gnulib.
* src/conflicts.c (solved_conflicts_obstack): Now static.

18 years ago* doc/bison.texinfo (Introduction): Mention GLR and C++ as on the web
Joel E. Denny [Wed, 8 Mar 2006 19:34:56 +0000 (19:34 +0000)] 
* doc/bison.texinfo (Introduction): Mention GLR and C++ as on the web
page.  Say "you can use it" not "you may use it" as on the web page;
we're describing capabilities not granting permission.

18 years ago* data/glr.c (yyresolveLocations): Rename local variables to avoid
Paul Eggert [Tue, 7 Mar 2006 06:42:23 +0000 (06:42 +0000)] 
* data/glr.c (yyresolveLocations): Rename local variables to avoid
shadowing warnings.  Use usual patter for iterating through RHS.
* tests/glr-regression.at
(Uninitialized location when reporting ambiguity):
Modify yylex so that it uses its argument, rather than trying
to rely on ARGSUSED (which doesn't work for gcc with warnings).
const char -> char const.

18 years ago* tests/Makefile.am ($(srcdir)/package.m4, maintainer-check-valgrind):
Paul Eggert [Mon, 6 Mar 2006 08:29:22 +0000 (08:29 +0000)] 
* tests/Makefile.am ($(srcdir)/package.m4, maintainer-check-valgrind):
Don't use tabs inside commands; it messes up 'ps'.

18 years ago* tests/glr-regression.at (Uninitialized location when reporting
Joel E. Denny [Mon, 6 Mar 2006 07:39:11 +0000 (07:39 +0000)] 
* tests/glr-regression.at (Uninitialized location when reporting
ambiguity): New test case.
* data/glr.c (yyresolveLocations): New function, which uses
YYLLOC_DEFAULT.
(yyresolveValue): Invoke yyresolveLocations before reporting an
ambiguity.
* doc/bison.texinfo (Default Action for Locations): Note
YYLLOC_DEFAULT's usage for ambiguity locations.
(GLR Semantic Actions): Cross-reference those notes.

18 years ago* tests/glr-regression.at (Leaked semantic values when reporting
Joel E. Denny [Sat, 4 Mar 2006 03:29:03 +0000 (03:29 +0000)] 
* tests/glr-regression.at (Leaked semantic values when reporting
ambiguity): Remove unnecessary union and type declarations.
(Leaked lookahead after nondeterministic parse syntax error): New test
case.
* data/glr.c (yyparse): Check for zero stacks remaining before
attempting to shift the lookahead so that you don't lose it.

18 years agoAvoid memory leaks by not invoking longjmp in yyreportAmbiguity.
Joel E. Denny [Thu, 2 Mar 2006 06:18:09 +0000 (06:18 +0000)] 
Avoid memory leaks by not invoking longjmp in yyreportAmbiguity.
* tests/glr-regression.at (Leaked semantic values when reporting
ambiguity): New test case.
* data/glr.c (yyreportAmbiguity): Invoke yyyerror directly and return
yyabort rather than invoking yyFail, which invokes longjmp.  Remove the
now unnecessary yystackp parameter.
(yyresolveValue): Return yyreportAmbiguity's result.  Now the necessary
destructors can be called.

* tests/glr-regression.at: Don't invoke bison with `-t' unnecessarily
in existing testcases.

18 years agoDon't leak semantic values for parent RHS when a user action cuts the
Joel E. Denny [Thu, 2 Mar 2006 01:35:15 +0000 (01:35 +0000)] 
Don't leak semantic values for parent RHS when a user action cuts the
parser, and clean up related code a bit.
* tests/glr-regression.at (Leaked merged semantic value if user action
cuts parse) Rename to...
(Leaked semantic values if user action cuts parse) ... this.  Add check
for leaked parent RHS values.
* data/glr.c (yydestroyGLRState): In debugging output, distinguish
between an unresolved state (non-empty chain of semantic options) and
an incomplete one (signaled by an empty chain).
(yyresolveStates): Document the interface.  Move all manipulation of an
successfully or unsuccessfully resolved yyGLRState to...
(yyresolveValue): ... here so that yyresolveValue always leaves a
yyGLRState with consistent data and thus is easier to understand.
Remove the yyvalp and yylocp parameters since they are always just
taken from the yys parameter.  When reporting a discarded merged value
in debugging output, note that it is incompletely merged.  Document the
interface.
(yyresolveAction): If resolving any of the RHS states fails, destroy
them all rather than leaking them.  Thus, as long as user actions are
written to clean up the RHS correctly, yyresolveAction always cleans up
the RHS of a semantic option.  Document the interface.

18 years ago* data/glr.c (yyexpandGLRStack): Catch an off-by-one error that
Paul Eggert [Mon, 27 Feb 2006 19:50:59 +0000 (19:50 +0000)] 
* data/glr.c (yyexpandGLRStack): Catch an off-by-one error that
led to a segmentation fault in GNU Pascal.  Problem reported
by Waldek Hebisch.

18 years ago* doc/bison.texinfo (Mid-Rule Actions): Explain how to bury a
Joel E. Denny [Tue, 21 Feb 2006 21:01:57 +0000 (21:01 +0000)] 
* doc/bison.texinfo (Mid-Rule Actions): Explain how to bury a
mid-rule action inside a nonterminal symbol in order to declare a
destructor for its semantic value.

18 years agoAdd "2.1b".
Paul Eggert [Sat, 18 Feb 2006 07:15:32 +0000 (07:15 +0000)] 
Add "2.1b".