]> git.saurik.com Git - bison.git/log
bison.git
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".

18 years agoRegenerate.
Paul Eggert [Fri, 17 Feb 2006 00:23:08 +0000 (00:23 +0000)] 
Regenerate.

18 years ago* data/yacc.c [(! defined yyoverflow || YYERROR_VERBOSE) && !
Paul Eggert [Fri, 17 Feb 2006 00:08:17 +0000 (00:08 +0000)] 
* data/yacc.c [(! defined yyoverflow || YYERROR_VERBOSE) && !
YYSTACK_USE_ALLOCA && ! defined YYSTACK_ALLOC && defined
__cplusplus && ! defined _STDLIB_H && !
((defined YYMALLOC || defined malloc) && (defined YYFREE ||
defined free))]: Include <stdlib.h> rather than rolling our own
declarations of malloc and free, to avoid problems with
incompatible declarations (using 'throw') C++'s stdlib.h.  This
should fix Debian bug 340012
<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=340012>,
reported by Guillaume Melquiond.

18 years ago* NEWS: Clarify symbols versus types in unused-value warnings.
Paul Eggert [Tue, 14 Feb 2006 00:26:58 +0000 (00:26 +0000)] 
* NEWS: Clarify symbols versus types in unused-value warnings.

18 years agoBump version number.
Paul Eggert [Mon, 13 Feb 2006 19:23:26 +0000 (19:23 +0000)] 
Bump version number.

18 years ago* NEWS: Version 2.1a.
Paul Eggert [Mon, 13 Feb 2006 19:07:04 +0000 (19:07 +0000)] 
* NEWS: Version 2.1a.
* tests/headers.at (AT_TEST_CPP_GUARD_H): Declare yyerror and yylex,
since C99 requires this.

18 years ago* m4/c-working.m4: New file.
Paul Eggert [Sun, 12 Feb 2006 02:14:38 +0000 (02:14 +0000)] 
* m4/c-working.m4: New file.
* configure.ac (BISON_TEST_FOR_WORKING_C_COMPILER): Use it.

18 years ago* Makefile.maint: Merge from coreutils.
Paul Eggert [Sat, 11 Feb 2006 00:42:27 +0000 (00:42 +0000)] 
* Makefile.maint: Merge from coreutils.

18 years ago* m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Catch a
Paul Eggert [Fri, 10 Feb 2006 08:00:30 +0000 (08:00 +0000)] 
* m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Catch a
configuration screwup "./configure CC=/opt/SUNWspro/bin/c89
CFLAGS="-xarch=generic64" CXX=/opt/SUNWspro/bin/CC
LDFLAGS="-xarch=generic64" with Sun C 5.7 on Solaris 10; this
messes up because C++ code is compiled in 32-bit mode but linked
in 64-bit mode.

18 years agoUpdate copyright.
Paul Eggert [Thu, 9 Feb 2006 08:18:57 +0000 (08:18 +0000)] 
Update copyright.

18 years ago* doc/bison.texinfo (Calc++ Scanner): Work around a bug in flex
Paul Eggert [Wed, 8 Feb 2006 19:25:38 +0000 (19:25 +0000)] 
* doc/bison.texinfo (Calc++ Scanner): Work around a bug in flex
2.5.31.  This resembles the 2005-10-10 patch to src/scan-skel.l.

18 years ago* examples/calc++/Makefile.am (check_PROGRAMS): Renamed from
Paul Eggert [Wed, 8 Feb 2006 18:56:01 +0000 (18:56 +0000)] 
* examples/calc++/Makefile.am (check_PROGRAMS): Renamed from
nodist_PROGRAMS, since we don't need to actually compile the
example if we're just doing a plain 'make'.  This avoids bothering
the installer unnecessarily about problems due to weird C++
compilers.

18 years ago* Add a sane default for awk.
Juan Manuel Guerrero [Tue, 7 Feb 2006 00:23:43 +0000 (00:23 +0000)] 
* Add a sane default for awk.

18 years ago* tests/headers.at (AT_TEST_CPP_GUARD_H): Use #include <...> rather
Paul Eggert [Mon, 6 Feb 2006 23:49:52 +0000 (23:49 +0000)] 
* tests/headers.at (AT_TEST_CPP_GUARD_H): Use #include <...> rather
than #include "...", and compile with -I'.'.

18 years agoVarious DJGGP specific issues in /djgpp.
Juan Manuel Guerrero [Mon, 6 Feb 2006 22:34:51 +0000 (22:34 +0000)] 
Various DJGGP specific issues in /djgpp.

18 years ago* Comment fixes.
Juan Manuel Guerrero [Mon, 6 Feb 2006 22:08:13 +0000 (22:08 +0000)] 
* Comment fixes.

18 years ago* Minor documentation fixes.
Juan Manuel Guerrero [Mon, 6 Feb 2006 21:39:39 +0000 (21:39 +0000)] 
* Minor documentation fixes.

18 years ago* Fix data/glr.cc to reflect the renaming of c++.m4 into cxx.m4.
Juan Manuel Guerrero [Mon, 6 Feb 2006 20:51:28 +0000 (20:51 +0000)] 
* Fix data/glr.cc to reflect the renaming of c++.m4 into cxx.m4.

18 years ago* Use colon instead of semicolon as path separator in PATH.
Juan Manuel Guerrero [Mon, 6 Feb 2006 20:44:29 +0000 (20:44 +0000)] 
* Use colon instead of semicolon as path separator in PATH.

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.

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

19 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.

19 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.

19 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.