X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/1d9d5d7159d998545a047f6d668bc7de22bc3c56..163ab32161538e07dc1d52a8948f4ab36ceed161:/ChangeLog diff --git a/ChangeLog b/ChangeLog index 0444dbd7..4f84075b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,467 @@ +2003-05-05 Paul Eggert + + * lib/bitset.h (__INT_TO_PTR): Define to a value that presumes + C89. This avoids a diagnostic on compilers that define __STDC__ + to 0, fixing a problem with Tru64 cc reported by Martin Mokrejs in + . + +2003-05-03 Paul Eggert + + * lib/bitset.h (BITSET_FOR_EACH, BITSET_FOR_EACH_REVERSE): + Do not overrun array bounds. + This should fix a bug reported today by Olatunji Oluwabukunmi in + . + +2003-04-29 Akim Demaille + + * src/gram.h, src/gram.c (pure_parser, glr_parser): Move to... + * src/getargs.c, src/getargs.h: here, as bool, not int. + (nondeterministic_parser): New. + * src/parse-gram.y, src/scan-gram.l: Support + %nondeterministic-parser. + * src/output.c (prepare): Use nondeterministic_parser instead + of glr_parser where appropriate. + * src/tables.c (conflict_row, action_row, save_row) + (token_actions, token_actions, pack_vector): Ditto. + +2003-04-29 Akim Demaille + + * doc/bison.texinfo (C++ Parsers, Implementing Loops): New. + +2003-04-29 Akim Demaille + + * tests/calc.at: Also test yacc.c and glr.c (but not lalr1.cc yet) + with %pure-parser and %locations to exercise the patch from Yakov + Markovitch below. + +2003-04-28 Tim Van Holder + + * data/yacc.c: (b4_lex_param): Corrected for the case where + %lex-param is provided and %pure-parser isn't. + +2003-04-27 Paul Eggert + + Avoid gcc -Wundef warnings reported by Gerald Pfeifer in + . + * data/yacc.c (YYSTACK_ALLOC): Don't evaluate YYSTACK_USE_ALLOCA + if it is not defined. + (YYMAXDEPTH): Don't evaluate YYMAXDEPTH if it is not defined. + +2003-04-26 Paul Eggert + + * data/lalr1.cc (yy::Parser::pact_ninf_, yy::Parser::table_ninf_): + Declare to be of type suitable for the ninf value itself, not of + type suitable for the corresponding table, since the latter might + be unsigned but the ninf value might be negative. This fixes a + bug reported by Alexandre Duret-Lutz in + . + + * configure.ac (AC_FUNC_ERROR_AT_LINE): Remove, since gl_ERROR + invokes it. We shouldn't invoke it twice because it will attempt + to put error.o in the archive twice. This fixes a glitch reported + by Martin Mokrejs in + . + +2003-04-21 Paul Eggert + + * m4/error.m4: Update from Bruno Haible's 2003-04-14 patch + to gnulib. + +2003-04-21 Yakov Markovitch + + * data/glr.c (yyexpandGLRStack) [!YYSTACKEXPANDABLE]: + Fix obvious typo that results in uncompilable GLR parsers + when both %pure-parser and %locations are used. (trivial change) + +2003-04-17 Paul Eggert + + * src/scan-gram.l: Add %option nounput, since we no longer use unput. + (unexpected_eof): Renamed from unexpected_end_of_file, for brevity. + Do not insert the expected token via unput, as this runs afoul + of a POSIX-compatibility bug in flex 2.5.31. + All uses changed to BEGIN the parent state, + since we no longer insert the expected token via unput. + * tests/regression.at (Invalid inputs): Remove cascaded diagnostic + that is no longer emitted after the above change. + + * src/conflicts.c (set_conflicts): Resolve all conflicts, not just + the first one. This change is from Paul Hilfinger, and it fixes + regression reported by Werner Lemberg in + . + + (resolve_sr_conflict): Don't invoke state_errs_set + unless one or more tokens have been explicitly made errors. + Otherwise, the above change causes Bison to abort. + + * tests/existing.at (GNU pic Grammar): New test case, taken from + Lemberg's email. + +2003-03-31 Akim Demaille + + * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file. + +2003-03-31 Akim Demaille + + * src/output.c (prepare_symbols): Avoid trailing spaces in the + output. + +2003-03-31 Akim Demaille + + * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/. + From Paul Hilfinger. + +2003-03-29 Akim Demaille + + * m4/error.m4: Do not put under dynamic conditions some code which + expansion is under static control. + +2003-03-29 Akim Demaille + + * doc/bison.texinfo (How Can I Reset @code{yyparse}): New. + +2003-03-29 Akim Demaille + + * doc/bison.texinfo (Strings are Destroyed): New. + +2003-03-13 Paul Eggert + + * .cvsignore: Add configure.lineno. + * src/.cvsignore: Add yacc. + * tests/.cvsignore: Add testsuite.log. + * doc/fdl.texi: Sync with latest FSF version. + +2003-03-12 Paul Eggert + + * scan-gram.l (YY_USER_INIT): Initialize code_start, too. + (<>, <>): Set *loc to the scanner + cursor, instead of leaving it undefined. This fixes a bug + reported by Tim Van Holder in + . + * tests/input.at (Torturing the Scanner): Test the scanner on + an empty input file, which was Tim Van Holder's test case. + + * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): When checking whether + can be included, include sys/time.h and + sys/times.h first, if available. This works around the SunOS + 4.1.4 porting bug reported by Bruce Becker in + . + + * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't + AC_CHECK_HEADERS([sys/wait.h]), as this interferes with + AC_HEADER_SYS_WAIT. + + Merge changes from gnulib. This was prompted because the CVS + snapshot didn't build on Solaris 7 due to strnlen problems. + + These changes need to be merged back into gnulib: + * lib/hash.c: Include unconditionally. + * m4/onceonly.m4 (m4_quote): New macro. + (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE): + Quote AC_FOREACH variable-expansions properly. + The 2003-01-03 obstack.h change also needs merging. + {end of changes requiring merging} + + * lib/stdbool.h.in, m4/alloca.m4, m4/dirname.m4, m4/dos.m4, + m4/getopt.m4, m4/hash.m4, m4/malloc.m4, m4/memchr.m4, + m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/quote.m4, + m4/quotearg.m4, m4/realloc.m4, m4/stpcpy.m4, m4/strnlen.m4, + m4/strtol.m4, m4/strtoul.m4, m4/unlocked-io.m4, m4/xalloc.m4: + New files, imported from gnulib. + * m4/Makefile.am (EXTRA_DIST): Add the new m4/*.m4 files mentioned + above. + + * lib/mbswidth.c, m4/error.m4, m4/mbrtowc.m4, m4/mbswidth.m4, + m4/memcmp.m4, m4/prereq.m4, m4/stdbool.m4: Update to current + gnulib sources. + + * configure.ac (gl_DIRNAME, gl_GETOPT, gl_HASH, gl_QUOTE, gl_XALLOC): + Add. + (gl_ERROR): New, replacing jm_PREREQ_ERROR. + (gl_FUNC_ALLOCA): New, replacing AC_FUNC_ALLOCA. + (gl_FUNC_STPCPY): New, replacing AC_REPLACE_FUNCS(stpcpy). + (gl_FUNC_STRNLEN): New, replacing AC_FUNC_STRNLEN. + (gl_MBSWIDTH): New, replacing jm_PREREQ_MBSWIDTH. + (gl_OBSTACK): New, replacing AC_FUNC_OBSTACK. + (gl_QUOTEARG): New, replacing jm_PREREQ_QUOTEARG. + (jm_FUNC_GLIBC_UNLOCKED_IO, gl_FUNC_STPCPY, gl_FUNC_STRTOL): New. + (jm_FUNC_MALLOC): New, replacing AC_FUNC_MALLOC. + (jm_FUNC_REALLOC): New, replacing AC_FUNC_REALLOC. + (jm_PREREQ_ARGMATCH): Remove. + (AC_REPLACE_FUNCS): Remove memchr, memrchr, stpcpy, strtol, strtoul. + * lib/Makefile.am (libbison_a_SOURCES): Add argmatch.c, argmatch.h. + + * src/system.h: Include unconditionally. + + * lib/bbitset.h: Include unconditionally. We have been + assuming at least C89 in the bitset code for some time now. + +2003-03-03 Akim Demaille + + * ro.po: New. + +2003-03-02 Akim Demaille + + * doc/bison.texinfo (Table of Symbols): Reactivate the + documentation for %lex-param, and %parse-param. + +2003-03-02 Akim Demaille + + * data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to + generate verbose error messages. + Use the number of tokens as an upper bound in yytname, as it + cannot be a non terminal. + +2003-03-02 Akim Demaille + + * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error + message. + +2003-03-02 Akim Demaille + + * tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New. + Use them to exercise yycheck overrun. + Based on Andrew Suffield's grammar. + +2003-03-02 Akim Demaille + + Create tests/local.at for Bison generic testing macros. + + * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to... + * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS): + This new file. + * tests/calc.at (AT_CHECK_CALC): Adjust. + * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR) + (AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to... + * tests/local.at: here. + (AT_COMPILE_CXX): Tags the tests using it as c++. + Ignore the test if CXX is not functional. + +2003-03-01 Paul Eggert + + * src/scan-gram.l (code_start): Initialize it to scanner_cursor, + not loc->end, since loc->end might contain garbage and this leads + to undefined behavior on some platforms. + (id_loc, token_start): Use (IF_LINTed) initial values that do not + depend on *loc, so that the reader doesn't give the the false + impression that *loc is initialized. + ("%%"): Do not bother setting code_start, since its value + does not survive the return. + +2003-03-01 Akim Demaille + + * src/scan-gram.l (code_start): Always initialize it when entering + into yylex, as SC_EPILOGUE is activated *before* the corresponding + yylex invocation. An alternative would be making it static, but + then it starts with the second %%'s beginning, instead of its end. + +2003-02-28 Paul Eggert + + * lib/mbswidth.c: Include before "mbswidth.h", to work + around a UnixWare 7.1.1 porting bug reported by John Hughes in + . + +2003-02-26 Paul Eggert + + * README: Mention compiler bug in Sun Forte Developer 6 update 2. + Remove Sequent/Pyramid discussion (nobody uses them any more). + Merge VMS and MS-DOS discussion; these ports may well be dead + but let's keep mentioning them for now. Put <> around email + addresses. Add copyright notice. + +2003-02-24 Paul Eggert + + * data/glr.c (yy_reduce_print): yylineno -> yylno, + to avoid collision with flex use of yylineno. + Problem reported by Bruce Lilly in + . + * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise. + * data/yacc.c (yy_reduce_print): Likewise. + + * config/depcomp: Sync with Automake 1.7.3. + +2003-02-21 Akim Demaille + + * data/lalr1.cc: Use temporary variables instead of casts to + change integer types. + Suggested by Paul Eggert. + +2003-02-21 Akim Demaille + + * doc/bison.texinfo: Use "location" consistently to refer to @n, + to avoid confusions with lalr1.cc's notion of Position. + Suggested by Paul Eggert. + +2003-02-20 Akim Demaille + + * data/lalr1.cc (position.hh): Make sure "columns" never pushes + before initial_columns. + (location.hh): Use consistent variable names when defining the + operator<<. + Use "last" so that we subtract from Positions, not from unsigned. + +2003-02-20 Akim Demaille + + * data/lalr1.cc (position.hh): New subfile, including the extended + and Doxygen'ed documentation of class Position. + (location.hh): Use it. + Document a` la Doxygen. + With the help of Benoit Perrot. + +2003-02-20 Akim Demaille + + * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define + AT_YACC_IF. + Redefine AT_YYERROR_SEES_LOC_IF using it. + (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is + not defined. + Don't use the location in yy::Parser::error_ and + yy::Parser::print_ when not %locations. + Activate more lalr1.cc tests. + +2003-02-19 Akim Demaille + + * data/lalr1.cc: When displaying a line number, be sure to make it + an int. + +2003-02-19 Akim Demaille + + * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_): + Remove, useless. + (YYABORT, YYACCEPT, YYERROR): New. + * tests/calc.at: Renable the lalr1.cc test. + +2003-02-19 Akim Demaille + + * tests/calc.at (AT_CHECK_CALC): Check different scenarios of + error recovery, mixing with/without pops and discarding of the + lookahead. + Exercise YYERROR. + Disable the lalr1.cc tests as currently it doesn't support YYERROR. + +2003-02-17 Paul Eggert + + * tests/atlocal.in (LDFLAGS, LIBS): New vars. + * tests/testsuite.at (AT_COMPILE): Use them. + This fixes the testsuite problem reported by Robert Lentz in + . + +2003-02-12 Paul Eggert + + * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]: + Avoid subscript error in yycheck. Bug reported by Andrew Suffield in + . + * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise. + Check for malloc failure, for consistency with yacc.c. + (yytname_size): Remove, for consistency with yacc.c. + + The bug still remains in data/lalr1.cc, as I didn't have time + to fix it there. + +2003-02-06 Akim Demaille + + * configure.ac (GXX): Rename as... + (CXX): this, to keep the original Autoconf semantics. + Require 2.57. + * data/lalr1.cc: Fix b4_copyright invocations. + If YYDEBUG is not defined, don't depend upon name_ being defined. + (location.hh): Include string and iostream. + (Position::filename): New member. + (Position::Position ()): New. + (operator<< (Position)): New. + (operator- (Position, int)): New. + (Location::first, Location::last): Rename as... + (Location::begin, Location::end): these, to mock the conventional + iterator names. + (operator<< (Location)): New. + * tests/atlocal.in (CXX): New. + * tests/testsuite.at (AT_COMPILE_CXX): New. + * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the + locations in a more synthetic way. + (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if + lalr1.cc is used. + Adjust the C locations to match those from Emacs: first column is + column 0. + Change all the expected results. + Conform to the GCS: simplify the locations when applicable. + (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS) + (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace + these CPP macros with the m4 macros new defined by... + (AT_CHECK_PUSHDEFS): this, i.e.: + (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS) + (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS) + New macros. + (AT_CHECK_POPDEFS): Undefine them. + (AT_CHECK_CALC_LALR1_CC): New. + Use it for the first lalr1.cc test. + +2003-02-04 Akim Demaille + + * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on + Location as is defined. + +2003-02-04 Akim Demaille + + * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon + name_ being defined. + +2003-02-03 Paul Eggert + + * src/gram.h (start_symbol): Remove unused decl. + + Use more-consistent naming conventions for local vars. + + * src/derives.c (derives_compute): Change type of local var from + int to rule_number. + * src/gram.c (grammar_rules_partial_print): Likewise. + * src/print.c (print_core): Likewise. + * src/reduce.c (reduce_grammar_tables): Likewise. + + * src/gram.c (grammar_dump): Change name of item_number * + local var from r to rp. + * src/nullable.c (nullable_compute): Likewise. + + * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var. + + * src/gram.h (symbol_number_as_item_number): Use sym, not s, + for symbol or symbol_number var. + * src/reader.c (grammar_start_symbol_set): Likewise. + * src/reader.h (grammar_start_symbol_set, grammar_symbol_append): + Likewise. + * src/state.c (transitions_to): Likewise. + * src/state.h: Likewise. + * src/tables.c (symbol_number_to_vector_number): Likewise. + + * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for + char * var. + + * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE + var. + + * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size + var. + + * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr): + Use str, not s, for char * var. Use ch, not c, for character var. + Use size for size var. + + * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for + char * var. + (uniqstr_print, uniqst_print_processor): Use ustr, not s, for + uniqstr var. + * src/uniqstr.h: Likewise. + + * src/vcg.c (get_color_str, get_textmode_str, get_shape_str, + get_layoutalgorithm_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): Rename + param to have same name as that of enum, so that we don't use + "s" to stand for a non-state. + +2003-02-02 Akim Demaille + + * src/scan-skel.l: Scan more than one inert character per yylex + invocation. + 2003-02-01 Paul Eggert Version 1.875a. @@ -6565,7 +7029,7 @@ * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and its argument. - Reported by Peter Hámorský. + Reported by Peter Hamorsky. 2001-12-05 Akim Demaille