]> git.saurik.com Git - bison.git/log
bison.git
18 years ago* m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check that
Paul Eggert [Thu, 2 Feb 2006 23:53:07 +0000 (23:53 +0000)] 
* m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check that
'#include <map>' works and that you can apply ++ to iterators.

18 years ago* m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check
Paul Eggert [Thu, 2 Feb 2006 07:33:13 +0000 (07:33 +0000)] 
* m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check
that '#include <string>' works.

18 years ago* data/lalr1.cc (yytranslate_): No longer inline.
Paul Eggert [Thu, 2 Feb 2006 05:27:35 +0000 (05:27 +0000)] 
* data/lalr1.cc (yytranslate_): No longer inline.

18 years ago* lib/bbitset.h (struct bitset_vtable): Rename members not, and,
Paul Eggert [Wed, 1 Feb 2006 09:08:00 +0000 (09:08 +0000)] 
* lib/bbitset.h (struct bitset_vtable): Rename members not, and,
or, xor to not_, and_, or_, and xor_, respectively.

18 years ago* tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that "$CC
Paul Eggert [Wed, 1 Feb 2006 08:40:45 +0000 (08:40 +0000)] 
* tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that "$CC
-E" works; it apparently doesn't work with PathScale EKO Compiler
Suite Version 2.0.

18 years agoDuring deterministic GLR operation, user actions should be able to
Joel E. Denny [Mon, 30 Jan 2006 11:15:15 +0000 (11:15 +0000)] 
During deterministic GLR operation, user actions should be able to
influence the parse by changing yychar.  To make this easier to fix and
to make glr.c easier to evolve in general, don't maintain yytoken in
parallel with yychar; just compute yytoken when needed.
* tests/glr-regression.at (Incorrect lookahead during deterministic
GLR): Check that setting yychar in a user action has the intended
effect.
* data/glr.c (yyGLRStack): Remove yytokenp member.
(yyclearin): Don't set *yytokenp.
(yyprocessOneStack, yyreportSyntaxError, yyrecoverSyntaxError): Examine
yychar rather than *yytokenp to determine the current lookahead.
Compute yytoken locally when needed.
(yyparse): Likewise.  Remove the local yytoken that yytokenp used to
point to.

* doc/bison.texinfo (Bison Options): Remove stray sentence fragment
after `--report' documentation.

18 years ago* src/parse-gram.y (grammar_declaration): Location of printer
Paul Eggert [Mon, 30 Jan 2006 09:00:40 +0000 (09:00 +0000)] 
* src/parse-gram.y (grammar_declaration): Location of printer
symbol is @1, not list->location.
* tests/input.at (Incompatible Aliases): Adjust to above change.

18 years agoRegenerate.
Paul Eggert [Mon, 30 Jan 2006 08:52:20 +0000 (08:52 +0000)] 
Regenerate.

18 years ago* tests/input.at (AT_CHECK_UNUSED_VALUES): Remove. Instead, do
Paul Eggert [Mon, 30 Jan 2006 07:51:58 +0000 (07:51 +0000)] 
* tests/input.at (AT_CHECK_UNUSED_VALUES): Remove.  Instead, do
all the test at once.  This makes the output easier to read in the
normal case.

18 years agoFix a longstanding bug uncovered by bro-0.9a9/src/parse.y, which I
Paul Eggert [Mon, 30 Jan 2006 07:26:00 +0000 (07:26 +0000)] 
Fix a longstanding bug uncovered by bro-0.9a9/src/parse.y, which I
got from <http://bro-ids.org/download.html>.  The bug is that
when two actions appeared in succession, the second one was
scanned before the first one was added to the grammar rule
as a midrule action.  Bison then output the incorrect warning
"parse.y:905.17-906.36: warning: unused value: $3".
* src/parse-gram.y (BRACED_CODE, action): These are no longer
associated with a value.
(rhs): Don't invoke grammar_current_rule_action_append.
(action): Invoke it here instead.
* src/reader.c (grammar_midrule_action): Now extern.
(grammar_current_rule_action_append): Don't invoke
grammar_midrule_action; that is now the scanner's job.
* src/reader.h (last_string, last_braced_code_loc):
(grammar_midrule_action): New decls.
* src/scan-gram.l (last_string): Now extern, sigh.
(last_braced_code_loc): New extern variable.
(<INITIAL>"{"): Invoke grammar_midrule_action if the current
rule already has an action.
(<SC_BRACED_CODE>"}"): Set last_braced_code_loc before returning.
* tests/input.at (AT_CHECK_UNUSED_VALUES):
Add some tests to check that the above changes fixed the bug.

18 years ago* src/reader.c (symbol_should_be_used): Renamed from symbol_typed_p.
Paul Eggert [Fri, 27 Jan 2006 22:51:00 +0000 (22:51 +0000)] 
* src/reader.c (symbol_should_be_used): Renamed from symbol_typed_p.
All used changed.  Check whether the symbol has a destructor,
not whether it is typed.
* tests/input.at (AT_CHECK_UNUSED_VALUES): Add a destructor, so
that the values are still reported as unused.  All line numbers
adjusted.

18 years agoRegenerate.
Paul Eggert [Mon, 23 Jan 2006 08:42:45 +0000 (08:42 +0000)] 
Regenerate.

18 years agoWork around a bug in bro 0.8, which underparenthesizes its
Paul Eggert [Mon, 23 Jan 2006 08:39:52 +0000 (08:39 +0000)] 
Work around a bug in bro 0.8, which underparenthesizes its
definition of YYLLOC_DEFAULT.
* data/glr.c: Change all uses of YYLLOC_DEFAULT to parenthesize
their arguments.
* data/lalr1.cc: Likewise.
* data/yacc.cc: Likewise.

18 years ago* data/yacc.c (b4_int_type): Use yytype_uint8, etc., so that the
Paul Eggert [Mon, 23 Jan 2006 07:59:42 +0000 (07:59 +0000)] 
* data/yacc.c (b4_int_type): Use yytype_uint8, etc., so that the
user can override the types.
(short): #undef, to work around a bug in Pike 7.0.
(yytype_uint8, yytype_int8, yytype_uint16, yytype_int16): New types.
(union yyalloc.yyss): Use yytype_int16 rather than short.
All uses changed.
(yysigned_char): Remove.
* src/parse-gram.y (YYTYPE_UINT8, YYTYPE_INT8, YYTYPE_UINT16):
(YYTYPE_INT16): New macros, to test the new facility in yacc.c.
* tests/regression.at (Web2c Actions): Adjust to above changes.

18 years ago(check_and_convert_grammar): New function.
Paul Eggert [Mon, 23 Jan 2006 04:37:09 +0000 (04:37 +0000)] 
(check_and_convert_grammar): New function.
(reader): Close the input file even if something went wrong during
parsing.  Minor file descriptor leak reported by twlevo.

18 years ago* src/assoc.c (assoc_to_string): Use a default: abort (); case
Paul Eggert [Sun, 22 Jan 2006 08:17:18 +0000 (08:17 +0000)] 
* src/assoc.c (assoc_to_string): Use a default: abort (); case
to pacify gcc -Wswitch-default.
* src/scan-gram.l (adjust_location): Use a default: break; case
to pacify gcc -Wswitch-default.
* src/scan-skel.h (skel_get_lineno, skel_get_in, skel_get_out):
(skel_get_leng, skel_get_text, skel_set_lineno, skel_set_in):
(skel_set_out, skel_get_debug, skel_set_debug, skel_lex_destroy):
Move these decls to scan-skel.l, since they don't need to be
visible elsewhere.
* src/scan-skel.l: Accept the above decls.
(skel_lex): New decl, to pacify GCC when unpatched flex 2.5.31
is used.

18 years agoFix white space glitches.
Paul Eggert [Sun, 22 Jan 2006 08:02:47 +0000 (08:02 +0000)] 
Fix white space glitches.

18 years agoInitial version
Paul Eggert [Sun, 22 Jan 2006 07:59:51 +0000 (07:59 +0000)] 
Initial version

18 years ago* Makefile.cfg (local-checks-to-skip): Add changelog-check,
Paul Eggert [Sun, 22 Jan 2006 07:38:49 +0000 (07:38 +0000)] 
* Makefile.cfg (local-checks-to-skip): Add changelog-check,
since we don't want to insist on a version number at the start
of the changelog every time.
* Makefile.maint: Sync from coreutils a bit better.
(sc_trailing_blank): Renamed from sc_trailing_space.
All uses changed.
(sc_no_if_have_config_h, sc_require_config_h):
(sc_prohibit_assert_without_use): New rules.
(sc_obsolete_symbols): Don't catch Makefile.maint itself.
(sc_dd_max_sym_length): Fix leading spaces in rule.
(sc_system_h_headers): Prefix with @.
(sc_useless_cpp_parens, m4-check): Output line numbers.
(changelog-check): Allow version only in head.
* data/c.m4: Use "defined FOO" instead of "defined (FOO)", to
satisfy new Makefile.maint rule.
* data/glr.c: Likewise.
* data/glr.cc: Likewise.
* data/lalr1.cc: Likewise.
* data/yacc.c: Likewise.
* lib/ebitsetv.c: Likewise.
* lib/lbitset.c: Likewise.
* lib/subpipe.c: Likewise.
* lib/timevar.c: Likewise.
* src/system.h: Likewise.
* data/yacc.c (YYSTYPE): Don't generate trailing spaces in output.
* djgpp/Makefile.maint: Add copyright notice.
* djgpp/README.in: Likewise.
* djgpp/config.bat: Likewise.
* djgpp/config.site: Likewise.
* djgpp/config_h.sed: Likewise.
* djgpp/djunpack.bat: Likewise.
* djgpp/config.sed: Fix copyright notice to match standard format.
* djgpp/subpipe.h: Likewise.
* lib/bitsetv-print.c: Likewise.
* lib/bitsetv.c: Likewise.
* lib/subpipe.h: Likewise.
* lib/timevar.c: Likewise.
* lib/timevar.h: Likewise.
* djgpp/subpipe.c: Use standard recipe for config.h.
* lib/abitset.c: Likewise.
* lib/bitset.c: Likewise.
* lib/bitset_stats.c: Likewise.
* lib/bitsetv-print.c: Likewise.
* lib/bitsetv.c: Likewise.
* lib/ebitsetv.c: Likewise.
* lib/get-errno.c: Likewise.
* lib/lbitset.c: Likewise.
* lib/subpipe.c: Likewise.
* lib/timevar.c: Likewise.
* lib/vbitset.c: Likewise.
* tests/local.at: Likewise.
* src/scan-gram.l: Don't include verify.h, since system.h does
that for us.
* .x-sc_require_config_h: New file.
* .x-sc_unmarked_diagnostics: New file.

18 years agoBe a bit more systematic about using 'abort'.
Paul Eggert [Sat, 21 Jan 2006 04:35:09 +0000 (04:35 +0000)] 
Be a bit more systematic about using 'abort'.
* lib/abitset.c (abitset_test): Remove ATTRIBUTE_UNUSED; not needed.
* lib/bitset.c (bitset_bytes, bitset_init, bitset_op4_cmp):
Put 'default: abort ();' before some other case, to satisfy older
pedantic compilers.
* lib/bitset_stats.c (bitset_stats_init): Likewise.
* lib/ebitset.c (ebitset_elt_find, ebitset_op3_cmp): Likewise.
* lib/lbitset.c (lbitset_elt_find, lbitset_op3_cmp): Likewise.
* src/conflicts.c (resolve_sr_conflict): Likewise.
* src/vcg.c (get_color_str, get_textmode_str, get_shape_str):
(get_decision_str, get_orientation_str, get_node_alignment_str):
(get_arrow_mode_str, get_crossing_type_str, get_view_str):
(get_linestyle_str, get_arrowstyle_str): Likewise.
* src/conflicts.c (resolve_sr_conflict):
Use a default case rather than one for the one remaining enum
value, to catch invalid enum values as well.
* src/lalr.c (set_goto_map, map_goto):
Prefer "assert (FOO);" to "if (!FOO) abort ();".
* src/nullable.c (nullable_compute, token_definitions_output):
Likewise.
* src/reader.c (packgram, reader): Likewise.
* src/state.c (transitions_to, state_new, state_reduction_find):
Likewise.
* src/symtab.c (symbol_user_token_number_set, symbol_make_alias):
(symbol_pack): Likewise.
* src/tables.c (conflict_row, pack_vector): Likewise.
* src/scan-skel.l (QPUTS): Remove unnecessary parens.
(BASE_QPUTS, "@output ".*\n): Remove unnecessary asserts.
* src/system.h: Don't include <assert.h>.
(assert): New macro.

18 years ago* doc/bison.texinfo (Prologue, Rules, Actions, Union Decl, Action Decl):
Paul Eggert [Fri, 20 Jan 2006 22:23:44 +0000 (22:23 +0000)] 
* doc/bison.texinfo (Prologue, Rules, Actions, Union Decl, Action Decl):
(Destructor Decl, Parser Function, Pure Calling):
Describe rules for braces inside C code more carefully.

18 years agoFix some porting glitches found by Nelson H. F. Beebe.
Paul Eggert [Fri, 20 Jan 2006 01:59:30 +0000 (01:59 +0000)] 
Fix some porting glitches found by Nelson H. F. Beebe.
* lib/abitset.c (abitset_resize): Rewrite to avoid warnings from
compilers that don't understand that abort () does not return.
* src/state.c (transitions_to): Likewise.
* m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check
that '#include <cstdlib>' works.
* src/system.h (INT8_MIN, INT16_MIN, INT32_MIN, INT8_MAX):
(INT16_MAX, UINT8_MAX, INT32_MAX, UINT16_MAX, UINT32_MAX):
#undef if ! defined __STDC_VERSION__ || __STDC_VERSION__ < 199901,
for the benefit of some pre-C99 compilers.

18 years ago* bootstrap: Undo changes to gnulib files that autoreconf made.
Paul Eggert [Fri, 20 Jan 2006 00:46:24 +0000 (00:46 +0000)] 
* bootstrap: Undo changes to gnulib files that autoreconf made.

18 years agoUndo changes to gnulib files that autoreconf made.
Paul Eggert [Fri, 20 Jan 2006 00:45:53 +0000 (00:45 +0000)] 
Undo changes to gnulib files that autoreconf made.

18 years agoMinor fixups to get 'make maintainer-check' to work.
Paul Eggert [Fri, 20 Jan 2006 00:08:30 +0000 (00:08 +0000)] 
Minor fixups to get 'make maintainer-check' to work.
* configure.ac: Don't use -Wnested-externs, as it's incompatible
with the new verify.h implementation.
* data/c.m4 (b4_yy_symbol_print_generate): YYUSE (yyoutput).
* data/glr.c (YYUSE): Depend on __GNUC__ as well.
* data/yacc.c (YYUSE): Likewise.
* data/lalr1.cc (yysyntax_error_): YYUSE (yystate).
* lib/subpipe.c (end_of_output_subpipe): The args are unused.
* src/parse-gram.y (declaration): Don't pass a string constant
to a function that expects char *, since GCC might complain
about the constant value.
* src/reader.c (symbol_typed_p): Add parens to pacify GCC.
* tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): #undef yylloc and yylval
before #defining them.
* tests/glr-regression.at
(Incorrectly initialized location for empty right-hand side in GLR):
In yyerror, use the msg arg.
(Corrupted semantic options if user action cuts parse):
(Incorrect lookahead during deterministic GLR):
(Incorrect lookahead during nondeterministic GLR):
Don't name a local var 'index'; it shadows string.h's 'index'.

18 years ago* tests/calc.at (_AT_DATA_CALC_Y): Initialize the whole initial
Akim Demaille [Thu, 19 Jan 2006 12:47:17 +0000 (12:47 +0000)] 
* tests/calc.at (_AT_DATA_CALC_Y): Initialize the whole initial
location, not just parts of it.

18 years ago* TODO: Multiple %union is now implemented, so remove it from
Paul Eggert [Thu, 19 Jan 2006 06:48:52 +0000 (06:48 +0000)] 
* TODO: Multiple %union is now implemented, so remove it from
the wishlist.

18 years ago* NEWS: Document the fact that multiple %unions are now allowed.
Paul Eggert [Thu, 19 Jan 2006 06:44:49 +0000 (06:44 +0000)] 
* NEWS: Document the fact that multiple %unions are now allowed.
* doc/bison.texinfo (Union Decl): Likewise.

18 years agoaccessed -> addressed (fix typo in changelog entry)
Paul Eggert [Thu, 19 Jan 2006 06:03:18 +0000 (06:03 +0000)] 
accessed -> addressed (fix typo in changelog entry)

18 years agoUpgrade Makefile.maint, djgpp/config.sed.
Paul Eggert [Thu, 19 Jan 2006 06:02:24 +0000 (06:02 +0000)] 
Upgrade Makefile.maint, djgpp/config.sed.

18 years agoMerge with coreutils Makefile.maint.
Paul Eggert [Thu, 19 Jan 2006 06:00:28 +0000 (06:00 +0000)] 
Merge with coreutils Makefile.maint.
(CVS_LIST): Use build-aux version if available.
(VERSION_REGEXP): New macro.
(syntax-check-rules): Add sc_no_if_have_config_h,
sc_prohibit_assert_without_use, sc_require_config_h,
sc_useless_cpp_parens.
(sc_obsolete_symbols): Check for O_NDELAY.
(sc_dd_max_sym_length): Track coreutils.
(sc_unmarked_diagnostics): Look in all files, not just *.c.
(sc_useless_cpp_parens): New rule.
(news-date-check): Look for version or today's date.
(changelog-check): Don't require version number near head.
(copyright-check): Use current year instead of hardwiring 2005.
(my-distcheck): Depend on $(release_archive_dir)/$(prev-tgz).
(announcement): Add --gpg-key-ID.

18 years agoAdd copyright notice, and replace "filesystem" with "file system".
Paul Eggert [Thu, 19 Jan 2006 05:53:41 +0000 (05:53 +0000)] 
Add copyright notice, and replace "filesystem" with "file system".

18 years agoAvoid undefined behavior that accessed just before the start of an array.
Paul Eggert [Wed, 18 Jan 2006 23:48:29 +0000 (23:48 +0000)] 
Avoid undefined behavior that accessed just before the start of an array.
* src/reader.c (packgram): Prepend a new sentinel before ritem.
* src/lalr.c (build_relations): Rely on new sentinel.
* src/gram.c (gram_free): Adjust to new sentinel.

18 years agoFix minor white space and indentation problems.
Paul Eggert [Sat, 14 Jan 2006 06:36:04 +0000 (06:36 +0000)] 
Fix minor white space and indentation problems.

18 years ago* data/glr.c (yyGLRStateSet): Rename yylookaheadStatuses to
Joel E. Denny [Thu, 12 Jan 2006 01:43:03 +0000 (01:43 +0000)] 
* data/glr.c (yyGLRStateSet): Rename yylookaheadStatuses to
yylookaheadNeeds.  All uses updated.
(yysplitStack): Rename local yynewLookaheadStatuses to
yynewLookaheadNeeds.
* data/glr-regression.at (Incorrect lookahead during nondeterministic
GLR): In comments, change `lookahead status' to `lookahead need'.

18 years ago* data/glr.c (yysplitStack): A little stylistic rewrite.
Paul Hilfinger [Thu, 12 Jan 2006 00:16:35 +0000 (00:16 +0000)] 
* data/glr.c (yysplitStack): A little stylistic rewrite.

18 years ago * data/glr.c (yyaddDeferredAction): Flesh out the comment.
Paul Hilfinger [Wed, 11 Jan 2006 23:08:49 +0000 (23:08 +0000)] 
* data/glr.c (yyaddDeferredAction): Flesh out the comment.

18 years ago* doc/bison.texinfo: Fix some typos.
Joel E. Denny [Wed, 11 Jan 2006 22:39:27 +0000 (22:39 +0000)] 
* doc/bison.texinfo: Fix some typos.
(GLR Semantic Actions): New subsection discussing special
considerations because GLR semantic actions might be deferred.
(Actions): Mention look-ahead usage of yylval.
(Actions and Locations): Mention look-ahead usage of yylloc.
(Special Features for Use in Actions): Add YYEOF entry and mention it
in the yychar entry.
In the yychar entry, remove mention of the local yychar case (pure
parser) since this is irrelevant information when writing semantic
actions and since it's already discussed in `Bison Symbols' where
yychar is otherwise described as an external variable.
In the yychar entry, don't call it the `current' look-ahead since it
isn't when semantic actions are deferred.
In the yychar and yyclearin entries, add note about deferred semantic
actions.
Add yylloc and yylval entries discussing look-ahead usage.
(Look-Ahead Tokens): When discussing yychar, don't call it the
`current' look-ahead, and do mention yylval and yylloc.
(Error Recovery): Cross-reference `Action Features' when mentioning
yyclearin.
(Bison Symbols): In the yychar entry, don't call it the `current'
look-ahead.
In the yylloc and yylval entries, mention look-ahead usage.

18 years agoFix latest changelog entry: the "who" was missing.
Paul Eggert [Mon, 9 Jan 2006 06:49:18 +0000 (06:49 +0000)] 
Fix latest changelog entry: the "who" was missing.

18 years ago* tests/glr-regression.at: Update copyright year to 2006.
Joel E. Denny [Sun, 8 Jan 2006 23:16:51 +0000 (23:16 +0000)] 
* tests/glr-regression.at: Update copyright year to 2006.

18 years ago* data/glr.c (yyGLRStateSet): Add yybool* yylookaheadStatuses member to
Joel E. Denny [Fri, 6 Jan 2006 20:48:33 +0000 (20:48 +0000)] 
* data/glr.c (yyGLRStateSet): Add yybool* yylookaheadStatuses member to
use during nondeterministic operation to track which stacks have
actually needed the current lookahead.
(yyinitStateSet, yyfreeStateSet, yyremoveDeletes, yysplitStack):
Allocate, deallocate, resize, and otherwise shuffle space for
yylookaheadStatuses in parallel with yystates member of yyGLRStateSet.
(yysplitStack, yyprocessOneStack, yyparse): Set lookahead status
appropriately during nondeterministic operation.
(yySemanticOption): Add int yyrawchar, YYSTYPE yyval, and YYLTYPE yyloc
members to store the current lookahead to be used by the deferred
user action.
(yyaddDeferredAction): Add size_t yyk parameter specifying the stack
from which the RHS is taken.  Set the lookahead members of the new
yySemanticOption according to the lookahead status for stack yyk.
(yyglrShiftDefer, yyglrReduce): Pass yyk parameter on to
yyaddDeferredAction.
(yyresolveAction): Set yychar, yylval, and yylloc to the lookahead
members of yySemanticOption before invoking yyuserAction, and then set
them back to their current values afterward.
(yyparse): Set yychar = YYEMPTY where yytoken = YYEMPTY.
(yyreportAmbiguity): Add /*ARGSUSED*/ to pacify lint.
* tests/glr-regression.at: Remove `.' from the ends of recent test case
titles for consistency.
(Leaked merged semantic value if user action cuts parse): In order to
suppress lint warnings, use arguments in merge function, and assign
char value < 128 in main.
(Incorrect lookahead during deterministic GLR): New test case.
(Incorrect lookahead during nondeterministic GLR): New test case.

18 years ago* data/c.m4 (b4_yy_symbol_print_generate): In yy_symbol_print, accept
Joel E. Denny [Fri, 6 Jan 2006 20:09:31 +0000 (20:09 +0000)] 
* data/c.m4 (b4_yy_symbol_print_generate): In yy_symbol_print, accept
!yyvaluep as signal that no semantic value is available to print.
* data/glr.c (yydestroyGLRState): If state is not resolved, don't try
to print a semantic value.

18 years ago* ChangeLog: Correct formatting.
Joel E. Denny [Fri, 6 Jan 2006 01:14:49 +0000 (01:14 +0000)] 
* ChangeLog: Correct formatting.

18 years ago* tests/glr-regression.at: For consistency with my newer test cases,
Joel E. Denny [Fri, 6 Jan 2006 01:07:37 +0000 (01:07 +0000)] 
* tests/glr-regression.at: For consistency with my newer test cases,
don't thank myself.

18 years ago* data/glr.c (yyresolveValue): When merging semantic options, if at
Joel E. Denny [Thu, 5 Jan 2006 21:07:54 +0000 (21:07 +0000)] 
* data/glr.c (yyresolveValue): When merging semantic options, if at
least one user action succeeds but a later one cuts the parse, then
destroy the semantic value before returning rather than leaking it.
(yyresolveStates): If a user action cuts the parse and thus
yyresolveValue fails, ignore the (unset) semantic value rather than
corrupting the yyGLRState, and empty the semantic options list since
the user actions should have called all necessary destructors.
Simplify code with YYCHK.
* tests/glr-regression.at (Corrupted semantic options if user action
cuts parse): New test case.
(Undesirable destructors if user action cuts parse): New test case.
Before applying any of this patch, this test case never actually failed
for me... but only because the corrupted semantic options usually
masked this bug.
(Leaked merged semantic value if user action cuts parse): New test
case.

18 years ago* src/reader.c, src/symlist.h, src/symlist.c: s/mid_rule/midrule/.
Akim Demaille [Thu, 5 Jan 2006 13:38:58 +0000 (13:38 +0000)] 
* src/reader.c, src/symlist.h, src/symlist.c: s/mid_rule/midrule/.

18 years agoRemove stray "*/".
Paul Eggert [Wed, 4 Jan 2006 23:42:53 +0000 (23:42 +0000)] 
Remove stray "*/".

18 years agoRegenerate.
Paul Eggert [Wed, 4 Jan 2006 23:40:11 +0000 (23:40 +0000)] 
Regenerate.

18 years agoUse ususual GNU style.
Paul Eggert [Wed, 4 Jan 2006 23:39:06 +0000 (23:39 +0000)] 
Use ususual GNU style.

18 years ago(b4_c_modern): Parenthesize.
Paul Eggert [Wed, 4 Jan 2006 23:37:07 +0000 (23:37 +0000)] 
(b4_c_modern): Parenthesize.

18 years ago* data/c.m4 (b4_c_modern): New macro, with a new provision for _MSC_VER.
Paul Eggert [Wed, 4 Jan 2006 23:35:43 +0000 (23:35 +0000)] 
* data/c.m4 (b4_c_modern): New macro, with a new provision for _MSC_VER.
(b4_c_function_def): Use it.
* data/yacc.c (YYMODERN_C): Remove.  All uses replaced by
b4_c_modern.
(yystrlen, yystpcpy, yyparse): Use b4_c_function... macros rather
than rolling our own.

18 years agoAlso warn about non-used mid-rule values.
Akim Demaille [Wed, 4 Jan 2006 09:18:37 +0000 (09:18 +0000)] 
Also warn about non-used mid-rule values.
* src/symlist.h, src/symlist.c (symbol_list): Add a mid_rule
member.
(symbol_list_new): Adjust.
* src/reader.c (symbol_typed_p): New.
(grammar_rule_check): Use it.
(grammar_midrule_action): Bind a mid-rule LHS to its rule.
Check its rule.
* tests/input.at (AT_CHECK_UNUSED_VALUES): New.
Use it.
* tests/actions.at (Exotic Dollars): Adjust.

18 years ago* src/reader.c (grammar_midrule_action): If $$ is set in a
Akim Demaille [Wed, 4 Jan 2006 08:32:46 +0000 (08:32 +0000)] 
* src/reader.c (grammar_midrule_action): If $$ is set in a
mid-rule, move the `used' bit to its lhs.
* tests/input.at (Unused values): New.
* tests/actions.at (Exotic Dollars): Adjust: exp is not typed.

18 years agoRegenerate.
Paul Eggert [Tue, 3 Jan 2006 22:39:33 +0000 (22:39 +0000)] 
Regenerate.

18 years ago* doc/bison.texinfo (Bison Options): Say more accurately what
Paul Eggert [Tue, 3 Jan 2006 22:35:45 +0000 (22:35 +0000)] 
* doc/bison.texinfo (Bison Options): Say more accurately what
--yacc does.
* src/parse-gram.y (rules_or_grammar_declaration): Don't complain
about declarations in the grammar when in Yacc mode, as POSIX does
not require a diagnostic when the grammar uses extensions.

18 years agoUpdate copyright.
Paul Eggert [Tue, 3 Jan 2006 22:25:58 +0000 (22:25 +0000)] 
Update copyright.

18 years ago(reduce_grammar): Remove unnecessary cast to bool.
Paul Eggert [Tue, 3 Jan 2006 22:24:43 +0000 (22:24 +0000)] 
(reduce_grammar): Remove unnecessary cast to bool.

18 years agoWarn about dubious constructions like "%token T T".
Paul Eggert [Tue, 3 Jan 2006 21:31:57 +0000 (21:31 +0000)] 
Warn about dubious constructions like "%token T T".
* src/symtab.h (struct symbol.declared): New member.
* src/symtab.c (symbol_new): Initialize it to false.
(symbol_class_set): New arg DECLARING, specifying whether
this is a declaration that we want to warn about, if there
is more than one of them.  All uses changed.

18 years ago* data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c:
Paul Eggert [Tue, 3 Jan 2006 20:25:54 +0000 (20:25 +0000)] 
* data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c:
Allow multiple %union directives, whose contents concatenate.
* src/parse-gram.y (grammar_declaration): Likewise.
Use muscle_code_grow, so that we don't need stype_line any more.
All uses changed.

18 years ago(muscle_grow): Fix comment.
Paul Eggert [Tue, 3 Jan 2006 20:19:41 +0000 (20:19 +0000)] 
(muscle_grow): Fix comment.

18 years agoUpdate copyright year to 2006.
Paul Eggert [Tue, 3 Jan 2006 19:12:55 +0000 (19:12 +0000)] 
Update copyright year to 2006.

18 years agoHave glr.cc pass (some of) the calc.at tests.
Akim Demaille [Tue, 3 Jan 2006 09:06:22 +0000 (09:06 +0000)] 
Have glr.cc pass (some of) the calc.at tests.
* data/glr.cc (b4_parse_param_orig): New.
(b4_parse_param): Improve its definition, and bound it more
clearly in the skeleton.
(b4_epilogue): Append, instead of prepending, in order to keep
#line consistency.
Simplify the generation of auxiliary functions: locations and
purity are mandated.
(b4_global_tokens_and_yystype): Honor it.
* data/location.cc (c++.m4): Don't include it.
* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Define AT_GLR_CC_IF
and AT_SKEL_CC_IF.
* tests/calc.at (AT_CHECK_CALC): Rely on AT_SKEL_CC_IF instead of
AT_LALR1_CC_IF.
Be sure to initialize the first position's filename.
(AT_CHECK_CALC_LALR1_CC): Add %location and %defines, they are
mandated anyway.
(AT_CHECK_CALC_GLR_CC): New.
Use it to exercise glr.cc as a lalr1.cc drop-in replacement.

18 years ago* src/output.c (output_skeleton): Don't hard wire the inclusion of
Akim Demaille [Mon, 2 Jan 2006 16:26:17 +0000 (16:26 +0000)] 
* src/output.c (output_skeleton): Don't hard wire the inclusion of
c.m4.
* data/c++.m4, data/glr.c, data/yacc.c: Include c.m4.
* data/glr.cc: Do not include stack.hh.

18 years ago* src/output.c (output_skeleton): Don't hard wire the inclusion of
Akim Demaille [Mon, 2 Jan 2006 16:06:11 +0000 (16:06 +0000)] 
* src/output.c (output_skeleton): Don't hard wire the inclusion of
c.m4.
* data/c++.m4: Include c.m4.
* data/glr.cc: Do not include stack.hh.

18 years ago* data/glr.c: Reformat whitespace with tabs.
Akim Demaille [Mon, 2 Jan 2006 15:28:03 +0000 (15:28 +0000)] 
* data/glr.c: Reformat whitespace with tabs.
(b4_lpure_formals): Remove this unused m4 macro.
* tests/cxx-type.at: Reformat whitespace with tabs.
(_AT_TEST_GLR_CXXTYPES): In union Node, rename node_info to nodeInfo
since it's a member.  Rename type to isNterm for clarity.

18 years agoLet glr.cc catch up with symbol_value_print.
Akim Demaille [Thu, 29 Dec 2005 11:06:33 +0000 (11:06 +0000)] 
Let glr.cc catch up with symbol_value_print.
* data/glr.cc (b4_yysymprint_generate): Replace by...
(b4_yy_symbol_print_generate): this.
(yy_symbol_print, yy_symbol_value_print): Declare them.

18 years agoUpdate copyright.
Paul Eggert [Wed, 28 Dec 2005 08:51:34 +0000 (08:51 +0000)] 
Update copyright.

18 years ago* src/location.h (boundary): Note that a line or column equal
Paul Eggert [Wed, 28 Dec 2005 08:45:47 +0000 (08:45 +0000)] 
* src/location.h (boundary): Note that a line or column equal
to INT_MAX indicates an overflow.
* src/scan-gram.l: Include verify.h.  Don't include get-errno.h.
(rule_length_overflow, increment_rule_length, add_column_width):
New functions.
(<INITIAL>{id}, <SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'"):
(<SC_BRACED_CODE>"}"):
Use increment_rule_length rather than incrementing it by hand.
(adjust_location, handle_syncline): Diagnose overflow.
(handle_action_dollar, handle_action_at):
Fix bug with monstrosities like $-2147483648.
Remove now-unnecessary checks.
(scan_integer): Verify assumptions and remove now-unnecessary checks.
(convert_ucn_to_byte): Verify assumptions.
(handle_syncline): New arg LOC.  All callers changed.
Don't store through a value derived from char const * pointer.

18 years ago(grammar_rule_check): Rewrite slightly to avoid GCC warnings.
Paul Eggert [Wed, 28 Dec 2005 08:31:22 +0000 (08:31 +0000)] 
(grammar_rule_check): Rewrite slightly to avoid GCC warnings.

18 years ago* src/reader.c (grammar_midrule_action, grammar_symbol_append):
Paul Eggert [Tue, 27 Dec 2005 19:54:41 +0000 (19:54 +0000)] 
* src/reader.c (grammar_midrule_action, grammar_symbol_append):
Remove unnecessary forward static decls.

18 years ago* src/reader.c (grammar_current_rule_check): Also check that $$
Akim Demaille [Tue, 27 Dec 2005 17:50:00 +0000 (17:50 +0000)] 
* src/reader.c (grammar_current_rule_check): Also check that $$
is used.
Take the rule to check as argument, hence rename as...
(grammar_rule_check): this.
* src/reader.h, src/reader.c (grammar_rule_begin, grammar_rule_end):
Rename as...
(grammar_rule_begin, grammar_rule_end): these, for consistency.
(grammar_midrule_action, grammar_symbol_append): Now static.
* tests/torture.at (input): Don't rely on the default action
being always performed.
* tests/calc.at: "Set" $$ even when the action is "cut" with
YYERROR or other.
* tests/actions.at (Exotic Dollars): Instead of using unused
values, check that the warning is issued.

18 years agoSome wrapping.
Akim Demaille [Tue, 27 Dec 2005 15:42:44 +0000 (15:42 +0000)] 
Some wrapping.

18 years agoRegenerate.
Paul Eggert [Fri, 23 Dec 2005 00:24:39 +0000 (00:24 +0000)] 
Regenerate.

18 years ago* NEWS: Improve wording for unused-value warnings.
Paul Eggert [Fri, 23 Dec 2005 00:13:11 +0000 (00:13 +0000)] 
* NEWS: Improve wording for unused-value warnings.

18 years ago* data/lalr1.cc, data/yacc.c, data/glr.c, data/c.m4
Akim Demaille [Thu, 22 Dec 2005 13:01:50 +0000 (13:01 +0000)] 
* data/lalr1.cc, data/yacc.c, data/glr.c, data/c.m4
(b4_yysymprint_generate): Rename as...
(b4_yy_symbol_print_generate): this.
Generate yy_symbol_print instead of yysymprint.
Generate also yy_symbol_value_print, and use it.

18 years agoWarn about unused values.
Akim Demaille [Thu, 22 Dec 2005 11:40:05 +0000 (11:40 +0000)] 
Warn about unused values.
* src/symlist.h, src/symlist.c (symbol_list, symbol_list_new): Add
a `used' member.
(symbol_list_n_get, symbol_list_n_used_set): New.
(symbol_list_n_type_name_get): Use symbol_list_n_get.
* src/scan-gram.l (handle_action_dollar): Flag used symbols.
* src/reader.c (grammar_current_rule_check): Check that values are
used.
* src/symtab.c (symbol_print): Accept 0.
* tests/existing.at: Remove the type information.
Empty the actions.
Remove useless actions (beware of mid-rule actions: perl -000
-pi -e 's/s*{}(?=[ns]*[|;])//g').
* tests/actions.at (Exotic Dollars): Use unused values.
* tests/calc.at: Likewise.
* tests/glr-regression.at (No users destructors if stack 0 deleted):
Likewise.
* src/gram.c (rule_useful_p, rule_never_reduced_p): Use
rule_useful_p.

18 years agoUndo 2005-12-01 tentative license wording change.
Paul Eggert [Thu, 22 Dec 2005 04:38:26 +0000 (04:38 +0000)] 
Undo 2005-12-01 tentative license wording change.

18 years ago* NEWS: Reword %destructor vs YYABORT etc.
Paul Eggert [Thu, 22 Dec 2005 00:24:40 +0000 (00:24 +0000)] 
* NEWS: Reword %destructor vs YYABORT etc.
* data/glr.c: Use American spacing, for consistency.
* data/glr.cc: Likewise.
* data/lalr1.cc: Likewise.
* data/yacc.c: Likewise.
* data/yacc.c: Reformat comments slightly.
* doc/bison.texinfo: Replace "non-" with "non" when that makes sense,
for consistency.  Fix some spelling errors and reword recently-included
text slightly.
* tests/cxx-type.at: Cast results of malloc, for C++.

18 years ago* tests/cxx-type.at: Construct a tree, count the parents of shared
Akim Demaille [Wed, 21 Dec 2005 15:45:17 +0000 (15:45 +0000)] 
* tests/cxx-type.at: Construct a tree, count the parents of shared
nodes, and free each node once and only once.  Previously, the memory
for semantic values was leaked instead.

18 years ago* data/glr.c (struct yyGLRStack): If pure, add yyval and yyloc members.
Akim Demaille [Wed, 21 Dec 2005 15:33:13 +0000 (15:33 +0000)] 
* data/glr.c (struct yyGLRStack): If pure, add yyval and yyloc members.
(yylval, yylloc): If pure, #define to yystackp->yyval and
yystackp->yyloc similar to yychar and yynerrs.
(yyparse): If pure, remove local yylval and yylloc. Add local
yystackp to accommodate pure definitions of yylval and yylloc.
(b4_lex_param, b4_lyyerror_args, b4_lpure_args): If pure, change
yylvalp and yyllocp to &yylval and &yylloc.
(nerrs, char, lval, lloc): If pure, add #define's for b4_prefix[]
namespace. Previously, nerrs and char were missing, but lval and lloc
weren't necessary.
(yyprocessOneStack, yyreportSyntaxError, yyrecoverSyntaxError): Remove
yylvalp and yyllocp parameters since, if pure, these are now always
accessible through yystackp.  If not pure, they are still accessible
globally.
* data/glr.c, data/yacc.c (YYLLOC_DEFAULT): Change `if (N)' to
`if (YYID (N))' to pacify lint.

18 years agoYYACCEPT, YYERROR, and YYABORT, as user actions, should not
Akim Demaille [Wed, 21 Dec 2005 15:28:30 +0000 (15:28 +0000)] 
YYACCEPT, YYERROR, and YYABORT, as user actions, should not
destroy the RHS symbols of a rule.
* data/yacc.c (yylen): Initialize to 0.
Keep its value to the number of items to possibly shift.
In particular, a regular successful parse that ends on YYFINAL by
a (internal) YYACCEPT must not have yylen != 0.
(yyerrorlab, yyreturn): Pop the RHS.
Reorder a bit to emphasize the `shifting' bits of code.
(YYPOPSTACK): Now accept a number of items to pop.
* data/lalr1.cc: Likewise.
* data/glr.c: Formatting changes.
Use goto instead of fall through.
* doc/bison.texinfo (Destructor Decl): Complete.

18 years agoFix NEWS.
Akim Demaille [Wed, 21 Dec 2005 13:49:44 +0000 (13:49 +0000)] 
Fix NEWS.

18 years ago* Makefile.am: DJGPP specific files added to EXTRA_DIST.
Juan Manuel Guerrero [Wed, 21 Dec 2005 00:24:54 +0000 (00:24 +0000)] 
* Makefile.am: DJGPP specific files added to EXTRA_DIST.
* djgpp/Makefile.maint: Fix PACKAGE variable computation.
* djgpp/config.bat: Replace every occurence of the file name
scan-gram-c.c with c-scan-gram.c. The same for scan-skel-c.c with
c-scan-skel.c to conform with the 8.3 file name restriction on MSDOS.
* djgpp/config.sed: Replace every occurence of the file name
scan-gram-c.c with c-scan-gram.c. The same for scan-skel-c.c with
c-scan-skel.c to conform with the 8.3 file name restriction on MSDOS.
* djgpp/djunpack.bat: DJGPP specific file.
* djgpp/fnchange.lst: DJGPP specific file.
* djgpp/README.in: Add new information about how to unpack the bison
source on MSDOS and other systems which have 8.3 file name restrictions
using djunpack.bat and fnchange.lst.

18 years agoDJGPP specific files added to EXTRA_DIST.
Juan Manuel Guerrero [Wed, 21 Dec 2005 00:11:44 +0000 (00:11 +0000)] 
DJGPP specific files added to EXTRA_DIST.

18 years agoAdd new information about how to unpack the bison source on
Juan Manuel Guerrero [Wed, 21 Dec 2005 00:01:40 +0000 (00:01 +0000)] 
Add new information about how to unpack the bison source on
MSDOS and other systems which have 8.3 file name restrictions
using djunpack.bat and fnchange.lst.

18 years agoReplace file name scan-gram-c.c with scangram-c.c and
Juan Manuel Guerrero [Wed, 21 Dec 2005 00:01:28 +0000 (00:01 +0000)] 
Replace file name scan-gram-c.c with scangram-c.c and
scan-skel-c.c with /src/scanskel-c.c to conform with
the 8.3 file name restriction on MSDOS.

18 years agoFix PACKAGE variable computation.
Juan Manuel Guerrero [Tue, 20 Dec 2005 23:59:50 +0000 (23:59 +0000)] 
Fix PACKAGE variable computation.

18 years agoDJGPP specific file.
Juan Manuel Guerrero [Tue, 20 Dec 2005 23:58:00 +0000 (23:58 +0000)] 
DJGPP specific file.

18 years ago* data/glr.c: Reorder typedef declarations for structs to match order
Paul Eggert [Mon, 12 Dec 2005 21:04:39 +0000 (21:04 +0000)] 
* data/glr.c: Reorder typedef declarations for structs to match order
of struct declarations.
Rename yystack everywhere to yystackp except in yyparse where it's not
a pointer.
(yyglrShift): Change parameter YYSTYPE yysval to YYSTYPE* yyvalp for
consistency.
(yyis_table_ninf): Change 0 to YYID (0) to pacify lint.
(yyreportSyntaxError): Add /*ARGSUSED*/ to pacify lint.
(yyparse): Change while (yytrue) to while ( YYID (yytrue)) to pacify
lint.

18 years ago(build_cvs_prefix): Remove; unused.
Paul Eggert [Mon, 12 Dec 2005 20:59:30 +0000 (20:59 +0000)] 
(build_cvs_prefix): Remove; unused.
(CVS_PREFIX): Adjust to yesterday's Savannah reorganization
when getting gnulib.

18 years ago* tests/sets.at (Accept): Fix typos in regular expression used to
Paul Eggert [Sat, 10 Dec 2005 00:25:27 +0000 (00:25 +0000)] 
* tests/sets.at (Accept): Fix typos in regular expression used to
sed out the final state number.

18 years agoRegenerate.
Paul Eggert [Fri, 9 Dec 2005 23:53:57 +0000 (23:53 +0000)] 
Regenerate.

18 years agoWork around flex portability bug.
Paul Eggert [Fri, 9 Dec 2005 23:53:14 +0000 (23:53 +0000)] 
Work around flex portability bug.

18 years agoWork around portability problem on Solaris 10: flex-generated
Paul Eggert [Fri, 9 Dec 2005 23:51:26 +0000 (23:51 +0000)] 
Work around portability problem on Solaris 10: flex-generated
files include <stdio.h> before <config.h>, which messes up
because the latter defines __EXTENSIONS__.  Address the problem
by creating two new little files that include <config.h> first,
then include the flex-generated files.  Rewrite everyone else
to include <config.h> first, as well.
* lib/timevar.c: Always include "config.h".
* src/Makefile.am (bison_SOURCES): Replace scan-gram.l with
scan-gram-c.c, and scan-skel.l with scan-skel-c.c.
(EXTRA_bison_SOURCES): New macro.
* src/scan-gram-c.c, src/scan-skel-c.c: New files.
* src/system.h: Don't include config.h.
* src/LR0.c: Include <config.h> first.
* src/assoc.c: Likewise.
* src/closure.c: Likewise.
* src/complain.c: Likewise.
* src/conflicts.c: Likewise.
* src/derives.c: Likewise.
* src/files.c: Likewise.
* src/getargs.c: Likewise.
* src/gram.c: Likewise.
* src/lalr.c: Likewise.
* src/location.c: Likewise.
* src/main.c: Likewise.
* src/muscle_tab.c: Likewise.
* src/nullable.c: Likewise.
* src/output.c: Likewise.
* src/parse-gram.y: Likewise.
* src/print.c: Likewise.
* src/print_graph.c: Likewise.
* src/reader.c: Likewise.
* src/reduce.c: Likewise.
* src/relation.c: Likewise.
* src/state.c: Likewise.
* src/symlist.c: Likewise.
* src/symtab.c: Likewise.
* src/tables.c: Likewise.
* src/uniqstr.c: Likewise.
* src/vcg.c: Likewise.

18 years agoRegenerate.
Paul Eggert [Fri, 9 Dec 2005 22:44:37 +0000 (22:44 +0000)] 
Regenerate.

18 years ago* src/parse-gram.y: Fix minor problems uncovered by lint.
Paul Eggert [Fri, 9 Dec 2005 22:43:00 +0000 (22:43 +0000)] 
* src/parse-gram.y: Fix minor problems uncovered by lint.
(current_lhs, current_lhs_location): Now static.
(current_assoc): Remove unused variable.

18 years agoCleanups so that Bison-generated parsers have less lint.
Paul Eggert [Fri, 9 Dec 2005 22:14:36 +0000 (22:14 +0000)] 
Cleanups so that Bison-generated parsers have less lint.
* data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate):
Prepend /*ARGSUSED*/, for lint's sake.
* data/glr.c (YYUSE): Properly parenthesize, and use an alternate
definition if 'lint' is defined.
(YYID): New macro (or function, if lint).
All uses of /*CONSTCOND*/0 replaced by YYID(0).
* data/yacc.c: Likewise.
* data/glr.c (yyuserAction, yyuserMerge, yy_reduce_print):
(yyrecoverSyntaxError): Prepend /*ARGSUSED*/.
* data/glr.cc (YYLLOC_DEFAULT): Omit /*CONSTCOND*/ since this code
is C++ only.
* data/lalr1.cc (YYUSE): Just use a cast, since this code is C++ only.
* data/yacc.c (YYSTACK_FREE) [defined YYSTACK_ALLOC]:
Use YYID(0) rather than 0, for lint.
(yystrlen): Rewrite to avoid lint warning about ptrdiff_t overflow.
(yysyntax_error): Rewrite to avoid lint warnings about parenthesization.

18 years ago* tests/glr-regression.at
Paul Eggert [Thu, 8 Dec 2005 06:52:43 +0000 (06:52 +0000)] 
* tests/glr-regression.at
(Improper handling of embedded actions and dollar(-N) in GLR parsers):
Close memory leak reported by twlevo.

18 years agoMention yyparse, too.
Paul Eggert [Wed, 7 Dec 2005 07:47:52 +0000 (07:47 +0000)] 
Mention yyparse, too.

18 years ago* data/glr.c (yyprocessOneStack): Synchronize the shift for all
Paul Eggert [Tue, 6 Dec 2005 19:38:25 +0000 (19:38 +0000)] 
* data/glr.c (yyprocessOneStack): Synchronize the shift for all
stacks, and iterate another stack in order to call user
destructors.
* tests/glr-regression.at (No users destructors if stack 0 deleted):
New test case.
(Duplicated user destructor for lookahead): This test now is expected
to succeed.