summaryrefslogtreecommitdiff
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* tests: add -pedantic for --enable-gcc-warnings.Joel E. Denny2011-08-211-0/+1
| | | | | | | | | This should help to avoid some portability problems. For example, it would have revealed the empty unions fixed by the last patch * configure.ac (WARN_CFLAGS_TESTS, WARN_CXXFLAGS_TEST): Implement. * tests/synclines.at (AT_TEST_SYNCLINE): Avoid -pedantic warning about an empty translation unit. (cherry picked from commit 5422d56a718805a2470558808355e04182a12d65)
* tests: fix empty unions.Joel E. Denny2011-08-211-4/+2
| | | | | | | | | | | | Empty unions are not accepted by the ISO C99 grammar or by at least some versions of Sun Studio. Reported by Wolfgang S. Kechel at <http://lists.gnu.org/archive/html/bug-bison/2011-08/msg00003.html>. * NEWS (2.5.1): Document fix. * THANKS (Wolfgang S. Kechel): Add. * tests/existing.at (GNU Cim Grammar) (GNU pic (Groff 1.18.1) Grammar.): Remove empty %union. (cherry picked from commit 7451638148706f6317975db418cc78e488f420aa)
* global: remove unnecessary horizontal tabs.Joel E. Denny2011-07-2416-1280/+1280
| | | | | | | | | | | | | | | This change was made by applying emacs' untabify function to nearly all files in Bison's repository. Required tabs in make files, ChangeLog, regexps, and test code were manually skipped. Other notable exceptions and changes are listed below. * bootstrap: Skip because we sync this with gnulib. * data/m4sugar/foreach.m4 * data/m4sugar/m4sugar.m4: Skip because we sync these with Autoconf. * djgpp: Skip because I don't know how to test djgpp properly, and this code appears to be unmaintained anyway. * README-hacking (Hacking): Specify that tabs should be avoided where not required.
* Fix precedence for end token.Joel E. Denny2011-05-011-3/+7
| | | | | | | | | | | | Since Bison 2.3b, which restored the ability of precedence directives to assign user token numbers, doing so for user token number 0 has produced an assertion failure. * NEWS (2.5): Document fix. * src/symtab.c (symbol_user_token_number_set): In the case of the end token, don't decrement ntokens if it was never incremented. * tests/regression.at (Token number in precedence declaration): Extend. (cherry picked from commit 9d6af153184eea964fef7f87d76a60fe29f715b5)
* tests: pacify gcc 4.6.0's -Wunused-but-set-variable.Joel E. Denny2011-04-161-1/+1
| | | | | | | | | Reported by Jim Meyering at <http://lists.gnu.org/archive/html/bug-bison/2011-04/msg00002.html>. * tests/actions.at (Default %printer and %destructor for mid-rule values): Define YYLLOC_DEFAULT so that it uses its Rhs argument. (cherry picked from commit c9e2da4f20c97c4cb53b68d4912dbdb8836df9a4)
* Add -Wconflicts-sr and -Wconflicts-rr.Joel E. Denny2011-04-092-2/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Thus, conflict reports are now affected by -Werror and -Wnone (unless %expect or %expect-rr is specified). Reported by George Neuner at <http://lists.gnu.org/archive/html/bug-bison/2010-08/msg00002.html>. * NEWS (2.5): Document. * doc/bison.texinfo (Bison Options): Document. * src/complain.c, src/complain.h (set_warning_issued): Export function. * src/conflicts.c (conflicts_print): Suppress conflict report based on -Wno-conflicts-sr and -Wno-conflicts-rr, and treat conflicts as errors if -Werror. * src/getargs.c (warnings_flag): Initialize with warnings_conflicts_sr and warnings_conflicts_rr as well. (warnings_args, warnings_types): Add entries for warnings_conflicts_sr and warnings_conflicts_rr. (usage): Update. * src/getargs.h (enum warnings): Add entries for warnings_conflicts_sr and warnings_conflicts_rr. * tests/conflicts.at (-W versus %expect and %expect-rr): New test group. * tests/local.at (AT_BISON_CHECK_NO_XML): Update now that the conflict report can produce a "warnings being treated as errors" message. Also, check that stderr is now fully scrubbed by -Wnone when the exit status is 0. (cherry picked from commit 6f8bdce25df5669b0b200c2a3848a1c08a44eb79)
* Pacify maintainer-check-posix.Joel E. Denny2011-04-091-72/+68
| | | | | | | | | | Adding command-line options after the grammar file name is not permitted, so disable checks that do that when maintainer-check-posix is running. * tests/local.at (AT_BISON_CHECK_NO_XML): Don't run the problematic checks when POSIXLY_CORRECT=1. Also, for readability, remove an unnecessary m4_if. (cherry picked from commit fc7ce9970f2972443c1a031c91ffef2dfdf28651)
* Add -Wother so -Wnone suppresses all warnings.Joel E. Denny2011-04-091-6/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reported by George Neuner at <http://lists.gnu.org/archive/html/bug-bison/2010-08/msg00002.html>. * NEWS (2.5): Document. * THANKS (George Neuner): Add. * doc/bison.texinfo (Bison Options): Document. * src/complain.c, src/complain.h (warn_at, warn_at_indent, warn): Suppress warning if -Wno-other. (midrule_value_at): New warning function, similar to yacc_at in that it's controlled by its own warning category. * src/getargs.c (warnings_flag): Initialize to warnings_other. (warnings_args, warnings_types): Add entry for warnings_other. (usage): Update. * src/getargs.h (enum warnings): Add entry for warnings_other. * src/gram.c (grammar_rules_useless_report): If -Wno-other, then don't print useless rules. * src/reader.c (symbol_should_be_used): Rather than adjusting the return value based on whether midrule value warnings are enabled, accept a new parameter for telling the caller whether true is being returned for a potential midrule warning. (grammar_rule_check): Use midrule_value_at for midrule value warnings, and continue to use warn_at for all other warnings. Let them check whether the warnings are enabled. * tests/local.at (AT_BISON_CHECK): Update documentation. (AT_BISON_CHECK_NO_XML): Check that -Wnone and --warnings=none disable all warnings exercised in the test suite. (cherry picked from commit 8ffd7912e3b71fb0cc69e83225c3ad8e3452270f)
* Don't let -Wnone disable -Werror.Joel E. Denny2011-04-091-0/+33
| | | | | | | | | | | | Discussed at <http://lists.gnu.org/archive/html/bison-patches/2010-08/msg00009.html>. * NEWS (2.5): Document. * src/getargs.c (flags_argmatch): Accept a new argument that specifies what flags "all" and thus "none" affect. (FLAGS_ARGMATCH): Update flags_argmatch invocation. * tests/input.at (-Werror is not affected by -Wnone and -Wall): New test group. (cherry picked from commit dab9663283437092d17af8ede75f3aff33380d53)
* lr.default-reductions: rename "full" value to "most".Joel E. Denny2011-03-202-7/+7
| | | | | | | | | | | | | | Unlike "consistent" and "accepting", "full" doesn't answer the question of "which states". * doc/bison.texinfo (%define Summary): Update. (Default Reductions): Update. * src/print.c (print_reductions): Update. * src/reader.c (prepare_percent_define_front_end_variables): Update. * src/tables.c (action_row): Update. * tests/input.at (%define enum variables): Update. * tests/reduce.at (%define lr.default-reductions): Update. (cherry picked from commit a6e5a28079865c4924194685723962f198fd33ff)
* named references: fix double free.candidates/named-ref-freeAkim Demaille2011-03-091-0/+13
| | | | | | | | | | | | | | | | | | | | | In `rhs[name]: "a" | "b"', do not free "name" twice. Reported by Tys Lefering. <http://lists.gnu.org/archive/html/bug-bison/2010-06/msg00002.html> * src/named-ref.h, src/named-ref.c (named_ref_copy): New. * src/parse-gram.y (current_lhs): Rename as... (current_lhs_symbol): this. (current_lhs): New function. Use it to free the current lhs named reference. * src/reader.c: Bind lhs to a copy of the current named reference. * src/symlist.c: Rely on free (0) being valid. * tests/named-refs.at: Test this. (cherry picked from commit 8f462efe923947cc4e72deea5b0fa93a5f88000d) Conflicts: src/parse-gram.y
* tests: style changes.Akim Demaille2011-03-091-79/+51
| | | | | * tests/named-refs.at (Redundant words in LHS brackets) (Unresolved references): here.
* lr.default-reductions: rename "all" value to "full".Joel E. Denny2011-03-062-7/+8
| | | | | | | | | | | | | | States that shift the error token do not have default reductions, and GLR disables some default reductions, so "all" was a misnomer. * doc/bison.texinfo (%define Summary): Update. (Default Reductions): Update. * src/print.c (print_reductions): Update. * src/reader.c (prepare_percent_define_front_end_variables): Update. * src/tables.c (action_row): Update. * tests/input.at (%define enum variables): Update. * tests/reduce.at (%define lr.default-reductions): Update. (cherry picked from commit d815ec4a6290e18fac9220438622f6dd27b3227f)
* java: test and document previous bug fix.Joel E. Denny2011-02-191-32/+35
| | | | | | | | | | * NEWS (2.5): Document it. * tests/java.at (_AT_DATA_JAVA_CALC_Y): To one of the yyerror invocations, pass a location that spans multiple tokens. Change yyerror to report all of a location rather than just the begin position. Extend yylex and Position to count tokens on a line. Remove getHashCode as it's unused. Update all expected output. (cherry picked from commit 7776816565040879b3b095130a772c06585daeeb)
* Do not allow identifiers that start with a dash.Joel E. Denny2011-01-294-16/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This cleans up our previous fixes for a bug whereby Bison discarded `.field' in `$-1.field'. The previous fixes were less restrictive about where a dash could appear in an identifier, but the restrictions were hard to explain. That bug was reported and this final fix was originally suggested by Paul Hilfinger. This also fixes a remaining bug reported by Paul Eggert whereby Bison parses `%token ID -123' as `%token ID - 123' and handles `-' as an identifier. Now, `-' cannot be an identifier. Discussed in threads beginning at <http://lists.gnu.org/archive/html/bug-bison/2011-01/msg00000.html>, <http://lists.gnu.org/archive/html/bug-bison/2011-01/msg00004.html>. * NEWS (2.5): Update entry describing the dash extension to grammar symbol names. Also, move that entry before the named references entry because the latter mentions the former. * doc/bison.texinfo (Symbol): Update documentation for symbol names. As suggested by Paul Eggert, mention the effect of periods and dashes on named references. (Decl Summary): Update documentation for unquoted %define values, which, as a side effect, can no longer start with dashes either. * src/scan-code.l (id): Implement. * src/scan-gram.l (id): Implement. * tests/actions.at (Exotic Dollars): Extend test group to exercise bug reported by Paul Hilfinger. * tests/input.at (Symbols): Update test group, and extend to exercise bug reported by Paul Eggert. * tests/named-refs.at (Stray symbols in brackets): Update test group. ($ or @ followed by . or -): Likewise. * tests/regression.at (Invalid inputs): Likewise.
* Revert "Simplify handling of '.' and '-' after unbracketed named references."Joel E. Denny2011-01-291-26/+44
| | | | | | | This reverts commit bf3e44fe46440ebe473798f9d887908b120bb646. See discussion following <http://lists.gnu.org/archive/html/bison-patches/2011-01/msg00030.html>.
* Simplify handling of '.' and '-' after unbracketed named references.Paul Eggert2011-01-091-44/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/bison.texinfo (Mid-Rule Actions): Mention that periods and dashes make symbol names less convenient for named references. * src/scan-code.l: (handle_action_dollar): New arg textlen. All callers changed. (handle_action_at): Likewise. Also, args are pointers to const. (ref_tail_fields): Remove; no longer used. (letter): Now includes '-' and '.', since this is for Bison identifiers. (id): Now the simpler traditional defn, since letters now include '-' and '.'. (c_letter, c_id): New defns. (ref): Use c_id for unbracketed IDs. (<SC_RULE_ACTION>): Simplify, now that the distinction between Bison and unbracketed IDs are now in the regular expressions. (VARIANT_BAD_BRACKETING): Remove. (VARIANT_NOT_VISIBLE_FROM_MIDRULE): Renumber. (find_prefix_end): Remove, replacing with .... (identifier_matches): New function. (variant_add): Use it. Omit EXPLICIT_BRACKETING arg; no longer needed. CP arg is pointer to constant. All callers changed. (show_sub_messages): Remove args CP, EXPLICIT_BRACKETING, DOLLAR_OR_AT. New arg TEXT. All callers changed. Do not worry about showing trailing context. (parse_ref): Args CP, RULE, TEXT are now pointers to const. New arg TEXTLEN. Remove arg DOLLAR_OR_AT. All callers changed. Simplify code now that the regular expressions capture the restrictions. * src/scan-gram.l (letter, id): Adjust to match scan-code.l. * src/symlist.c (symbol_list_null): Arg is now pointer to const. * src/symlist.h: Likewise. * tests/named-refs.at (Misleading references): These are now caught by the C compiler, not by Bison; that's good enough. Adjust test to reflect this. (Many kinds of errors, Unresolved references): Adjust expected diagnostics to match new behavior. The same errors are caught, though the diagnostics are not quite as fancy. ($ or @ followed by . or -): Likewise. Also, Make the grammar unambiguous, so that diagnostics are not complicated by ambiguity warnings.
* Improve error messages for `$' or `@' followed by `.' or `-'.Joel E. Denny2011-01-091-0/+29
| | | | | | | | | | | | | | | | Previously, for this special case of an invalid reference, the usual "symbol not found in production:" was printed. However, because the symbol name was parsed as the empty string, that message was followed immediately by a newline instead of a symbol name. In reality, this is a syntax error, so the reference is invalid regardless of the symbols actually appearing in the production. Discussed at <http://lists.gnu.org/archive/html/bison-patches/2011-01/msg00012.html>. * src/scan-code.l (parse_ref): Report the above case as a syntax error. Other than that, continue to handle this case like any other invalid reference that Bison manages to parse because "possibly meant" messages can still be helpful to the user. * tests/named-refs.at ($ or @ followed by . or -): New test group.
* maint: run "make update-copyright".Joel E. Denny2011-01-0223-38/+26
|
* parse.lac: implement exploratory stack reallocations.Joel E. Denny2010-12-112-6/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * data/yacc.c: Rename %define variable parse.lac.es-capacity to parse.lac.es-capacity-initial. Accept parse.lac.memory-trace with values of "failures" (default) or "full". (b4_declare_parser_state_variables): Add yyesa, yyes, and yyes_capacity variables. (YYSTACK_USE_ALLOCA): Ignore it if LAC requested. (YYSTACK_ALLOC, YYSTACK_FREE, YYSTACK_ALLOC_MAXIMUM): Define if LAC requested. (YYCOPY_NEEDED): New cpp macro. (YYCOPY): Define if LAC requested. (yy_lac_stack_realloc): New function implementing stack reallocations. Use YYMAXDEPTH for maximum stack size given that the stack should never need to grow larger than the main state stack needs to grow without LAC. (YY_LAC_ESTABLISH): Update yy_lac invocation. (yy_lac): Add arguments for exploratory stack memory data recorded in the main parser. Invoke yy_lac_stack_realloc when reallocation is necessary. (yysyntax_error): Add the same new arguments and pass them to yy_lac. (yypstate_delete): Free yyes if necessary. (yyesa, yyes, yyes_capacity): #define these to yypstate members in the case of push parsing. (yyparse, yypush_parse): Initialize yyes and yyes_capacity. Update yysyntax_error invocations. At yyreturn, free yyes if necessary. * src/parse-gram.y: %define parse.lac full. * tests/input.at (LAC: errors for %define): Extend for parse.lac-memory-trace. * tests/regression.at (LAC: Exploratory stack): Extend to check that stack reallocs happen when expected. (LAC: Memory exhaustion): Update to use YYMAXDEPTH and parse.lac.es-capacity-initial.
* parse.lac: implement as %define variable.Joel E. Denny2010-12-113-25/+362
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | LAC = lookahead correction. See discussion at <http://lists.gnu.org/archive/html/bison-patches/2009-09/msg00034.html>. However, one point there must be corrected: because of %nonassoc, LAC is *not* always redundant for lr.type=canonical-lr. * data/yacc.c: Accept values of "none" (default) or "full" for parse.lac. Accept %define parse.lac.es-capacity to specify capacity of LAC's temporary exploratory stack. It defaults to 20 and, for now, will not grow dynamically. (b4_lac_flag, b4_lac_if): New m4 macros. Evaluate as true for parse.lac!=none. (YYBACKUP): Invoke YY_LAC_DISCARD. (YY_LAC_ESTABLISH, YY_LAC_DISCARD): New cpp macros that invoke yy_lac and track when it needs to be invoked (yy_lac): New function that, given the current stack, determines whether a token can eventually be shifted. Return status mimics yyparse return status. (yysyntax_error): Change yystate argument to yyssp so stack top can be passed to yy_lac. If LAC is requested, build expected token list by invoking yy_lac for every token instead of just checking the current state for lookaheads. Return 2 if yy_lac exhausts memory. (yyparse, yypush_parse): Use local variable yy_lac_established and cpp macros YY_LAC_ESTABLISH and YY_LAC_DISCARD to implement LAC. Update yysyntax_error invocation. Add yyexhaustedlab code if LAC is requested. * tests/conflicts.at (%nonassoc and eof): Extend to check the effect of each of -Dlr.type=canonical-lr and -Dparse.lac=full. (parse.error=verbose and consistent errors): Likewise. (LAC: %nonassoc requires splitting canonical LR states): New test group demonstrating how LAC can fix canonical LR. * tests/input.at (LAC: Errors for %define): New test group. * tests/regression.at (LAC: Exploratory stack): New test group. (LAC: Memory exhaustion): New test group.
* yysyntax_error: fix for consistent error with lookahead.Joel E. Denny2010-11-073-55/+211
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * NEWS (2.5): Document. * data/yacc.c (yysyntax_error): In a verbose syntax error message while in a consistent state with a default action (which must be an error action given that yysyntax_error is being invoked), continue to drop the expected token list, but don't drop the unexpected token unless there actually is no lookahead. Moreover, handle that internally instead of returning 1 to tell the caller to do it. With that meaning of 1 gone, renumber return codes more usefully. (yyparse, yypush_parse): Update yysyntax_error usage. Most importantly, set yytoken to YYEMPTY when there's no lookahead. * data/glr.c (yyreportSyntaxError): As in yacc.c, don't drop the unexpected token unless there actually is no lookahead. * data/lalr1.cc (yy::parser::parse): If there's no lookahead, pass yyempty_ not yyla.type to yysyntax_error_. (yy::parser::yysyntax_error_): Again, don't drop the unexpected token unless there actually is no lookahead. * data/lalr1.java (YYParser::parse): If there's no lookahead, set yytoken to yyempty_ before invoking yysyntax_error. (YYParser::yysyntax_error): Again, don't drop the unexpected token unless there actually is no lookahead. * tests/conflicts.at (parse.error=verbose and consistent errors): Extend test group to further reveal how the previous use of the simple "syntax error" message was too general. Test yacc.c, glr.c, lalr1.cc, and lalr1.java. No longer an expected failure. * tests/java.at (AT_JAVA_COMPILE, AT_JAVA_PARSER_CHECK): Move to... * tests/local.at: ... here. (_AT_BISON_OPTION_PUSHDEFS): Push AT_SKEL_JAVA_IF definition. (AT_BISON_OPTION_POPDEFS): Pop it. (AT_FULL_COMPILE): Extend to handle Java.
* yysyntax_error: more preparation for readability of next patch.Joel E. Denny2010-11-071-52/+67
| | | | | | | | There are no behavioral changes here. * data/glr.c (yyreportSyntaxError): Reorganize. * data/lalr1.cc (yy::parser::yysyntax_error_): Reorganize. * tests/conflicts.at (parse.error=verbose and consistent errors): Reorganize.
* Fix portability problem on OpenBSD 4.7.Paul Eggert2010-10-081-3/+3
| | | | | | | | | | Jim Meyering reported this in <http://lists.gnu.org/archive/html/bug-bison/2010-10/msg00007.html>. * data/yacc.c: Use EXIT_SUCCESS as a witness for stdlib.h, not _STDLIB_H. EXIT_SUCCESS has been defined by the standard for quite some time. * src/parse-gram.c, src/parse-gram.h: Regenerate. * tests/regression.at: Tamper with the renamed witness.
* Adjust to recent changes to gnulib bootstrap.Paul Eggert2010-10-081-13/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | * .cvsignore, build-aux/.cvsignore, doc/.cvsignore, etc/.cvsignore: * examples/calc++/.cvsignore, lib/.cvsignore, m4/.cvsignore: * po/.cvsignore, runtime-po/.cvsignore, src/.cvsignore: * tests/.cvsignore: Remove; I don't use CVS to maintain Bison anymore and don't know of anybody else who does. If someone needs these files, they can resurrect them. * .gitignore, build-aux/.gitignore, doc/.gitignore, lib/.gitignore: * m4/.gitignore, po/.gitignore, runtime-po/.gitignore: Omit leading '/', since bootstrap omits it. Adjust file names to match current contents better. * bootstrap: Sync from gnulib: this contains the new gnulib_mk_hook installed just for us. * bootstrap.conf (excluded_files): Don't exclude codeset.m4, glibc21.m4, inttypes_h.m4, size_max.m4, xsize.m4, as they are now needed somehow. Don't have time to look into why. (gnulib_modules): Change malloc to malloc-gnu. Do we really assume the GNU malloc behavior, where malloc (0) != NULL unless we're out of storage? If not, we can omit malloc-gnu; but for now I left it in to be safe. (vc_ignore): Remove. (gnulib_mk_hook): New function. * README-hacking: Renamed from HACKING, since gnulib bootstrap now uses that convention.
* -Werror: fix for rules useless in parser after conflicts.Joel E. Denny2010-08-041-1/+64
| | | | | | | | | | | | | | | * NEWS (2.4.3): Document fix. * src/complain.c (error_message): Extend to handle incomplete error messages so warn and warn_at can be used in more cases. * src/gram.c (grammar_rules_useless_report): Use warn_at so that -Werror is always obeyed. * src/reduce.c (reduce_print): Use warn so that the "warnings being treated as errors" message is printed consistently before the first warning message. This makes testing easier. * tests/local.at (AT_BISON_WERROR_MSG): New macro. (AT_BISON_CHECK_NO_XML): Extend to check -Werror and --warnings=error when warnings appear in bison's stderr. (cherry picked from commit 954474bfa1a875eeefe9aa1989d9c7be6f64726b)
* tests: handle Valgrind that complains about >&-.Joel E. Denny2010-07-241-2/+9
| | | | | | | | | | | * tests/output.at (AT_CHECK_OUTPUT): Extend to accept pre-tests. (Output files: -dv >&-): Skip test group if running maintainer-check-valgrind. (cherry picked from commit c027cccb351b7b553f92a827787fa91d28934e5c) Conflicts: tests/output.at
* Do not use date ranges in copyright notices.Paul Eggert2010-06-1723-26/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See http://www.gnu.org/prep/maintain/maintain.html#Copyright-Notices * HACKING, Makefile.am, NEWS, PACKAGING, README, README-alpha: * TODO, bootstrap, bootstrap.conf: * build-aux/update-b4-copyright, cfg.mk, configure.ac: * data/README, data/bison.m4, data/c++-skel.m4, data/c++.m4: * data/c-skel.m4, data/c.m4, data/glr.c, data/glr.cc: * data/java-skel.m4, data/java.m4, data/lalr1.cc: * data/lalr1.java, data/local.mk, data/location.cc: * data/stack.hh, data/variant.hh, data/xslt/bison.xsl: * data/xslt/xml2dot.xsl, data/xslt/xml2text.xsl: * data/xslt/xml2xhtml.xsl, data/yacc.c, djgpp/Makefile.maint: * djgpp/README.in, djgpp/config.bat, djgpp/config.sed: * djgpp/config.site, djgpp/config_h.sed, djgpp/djunpack.bat: * djgpp/local.mk, djgpp/subpipe.c, djgpp/subpipe.h: * djgpp/testsuite.sed, doc/bison.texinfo, doc/local.mk: * doc/refcard.tex, etc/README, etc/bench.pl.in, etc/local.mk: * examples/calc++/Makefile.am, examples/extexi: * examples/local.mk, lib/abitset.c, lib/abitset.h: * lib/bbitset.h, lib/bitset.c, lib/bitset.h: * lib/bitset_stats.c, lib/bitset_stats.h, lib/bitsetv-print.c: * lib/bitsetv-print.h, lib/bitsetv.c, lib/bitsetv.h: * lib/ebitset.c, lib/ebitset.h, lib/get-errno.c: * lib/get-errno.h, lib/lbitset.c, lib/lbitset.h: * lib/libiberty.h, lib/local.mk, lib/main.c, lib/timevar.c: * lib/timevar.def, lib/timevar.h, lib/vbitset.c: * lib/vbitset.h, lib/yyerror.c, m4/bison-i18n.m4: * m4/c-working.m4, m4/cxx.m4, m4/subpipe.m4, m4/timevar.m4: * src/AnnotationList.c, src/AnnotationList.h: * src/InadequacyList.c, src/InadequacyList.h, src/LR0.c: * src/LR0.h, src/Sbitset.c, src/Sbitset.h, src/assoc.c: * src/assoc.h, src/closure.c, src/closure.h, src/complain.c: * src/complain.h, src/conflicts.c, src/conflicts.h: * src/derives.c, src/derives.h, src/files.c, src/files.h: * src/flex-scanner.h, src/getargs.c, src/getargs.h: * src/gram.c, src/gram.h, src/graphviz.c, src/ielr.c: * src/ielr.h, src/lalr.c, src/lalr.h, src/local.mk: * src/location.c, src/location.h, src/main.c: * src/muscle-tab.c, src/muscle-tab.h, src/named-ref.c: * src/named-ref.h, src/nullable.c, src/nullable.h: * src/output.c, src/output.h, src/parse-gram.y: * src/print-xml.c, src/print-xml.h, src/print.c, src/print.h: * src/print_graph.c, src/print_graph.h, src/reader.c: * src/reader.h, src/reduce.c, src/reduce.h, src/relation.c: * src/relation.h, src/scan-code.h, src/scan-code.l: * src/scan-gram.h, src/scan-gram.l, src/scan-skel.h: * src/scan-skel.l, src/state.c, src/state.h, src/symlist.c: * src/symlist.h, src/symtab.c, src/symtab.h, src/system.h: * src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h: * tests/actions.at, tests/atlocal.in, tests/c++.at: * tests/calc.at, tests/conflicts.at, tests/cxx-type.at: * tests/existing.at, tests/glr-regression.at: * tests/headers.at, tests/input.at, tests/java.at: * tests/local.at, tests/local.mk, tests/named-refs.at: * tests/output.at, tests/push.at, tests/reduce.at: * tests/regression.at, tests/sets.at, tests/skeletons.at: * tests/synclines.at, tests/testsuite.at, tests/torture.at: Don't use date ranges in copyright notices. Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
* c++: use YYRHSLOC.Akim Demaille2010-05-101-11/+12
| | | | | | | | | | * data/lalr1.cc (YYRHSLOC): New. (YYLLOC_DEFAULT): Use it. * data/glr.cc: If location_type was user defined, do not include location.hh, and do not produce location.hh and position.hh. * tests/calc.at (YYLLOC_DEFAULT): Use YYRHSLOC. Check that glr.cc supports user defined location_type. * NEWS: Document this.
* doc: fix typo.Akim Demaille2010-05-071-1/+1
| | | | * tests/synclines.at: here.
* tests: enhance AT_SYNCLINES_COMPILE.Akim Demaille2010-05-041-4/+7
| | | | | | * tests/synclines.at (AT_SYNCLINES_COMPILE): More distcc patterns. (AT_TEST_SYNCLINE): Remove GCC 4.5 protection which is already taken care of in AT_SYNCLINES_COMPILE.
* tests: fix %printer.Akim Demaille2010-05-041-12/+12
| | | | | | | | | | | Currently, there is no check that %printer ... <foo> (nor %destructor) is about an existing <foo> type. This C++ test had it wrong (<::std::string> vs. <std::string>). * tests/c++.at (AT_CHECK_VARIANTS): In list.yy, redefine the pretty-printing of lists into something better for parser traces. Update the expected output. Fix correspondance between %type/%token and %printer.
* lalr1.cc: location_type: make sure we don't depend on loc.(begin|end).Akim Demaille2010-05-042-10/+25
| | | | | | | | * tests/calc.at (Span): Instead of begin/end, as in the built-in location class, use first and last. Define YYLLOC_DEFAULT to adjust to these changes. * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Adjust to the location_type changes.
* Revert 2009-12-30 change for undefined %prec token complaints.Joel E. Denny2010-04-301-2/+2
| | | | | | | | | | | That is, keep them as warnings because that should be sufficient to satisfy POSIX without creating backward compatibility issues. Suggested by Richard Stallman at <http://lists.gnu.org/archive/html/bison-patches/2010-03/msg00033.html>. * NEWS (2.5): Remove mention of complaint. * src/reader.c (grammar_rule_check): Convert warning back to complaint. * tests/input.at (%prec's token must be defined): Update.
* tests: calc: minor refactoring.Akim Demaille2010-04-131-7/+3
| | | | * tests/calc.at (_AT_DATA_CALC_Y): Simplify yylex.
* tests: calc: simplify location management.Akim Demaille2010-04-132-25/+45
| | | | | | | * tests/local.at (AT_LOC_PUSHDEF, AT_LOC_POPDEF): New. (_AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS): Use them to define the appropriate AT_LOC accessors. * tests/calc.at: Use AT_LOC accessors.
* test location_type.Akim Demaille2010-04-132-11/+50
| | | | | | | | | * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Define AT_LOCATION_TYPE_IF. (_AT_BISON_OPTION_POPDEFS): Undefine AT_LOCATION_TYPE_IF. * tests/calc.at (_AT_DATA_CALC_Y): When %define location_type is used, provide a user location type and use it. (Simple LALR1 C++ Calculator): Add a test case for location_type.
* tests: check fclose's return value.Akim Demaille2010-04-131-1/+2
| | | | * tests/calc.at (_AT_DATA_CALC_Y): Check fclose's return status.
* tests: don't depend on the actual location type.Akim Demaille2010-04-131-2/+2
| | | | | | * tests/calc.at: Use yy::parser::location_type rather than yy::location, since the former is always right, and might point to another type than the latter.
* formatting changes.Akim Demaille2010-04-131-5/+11
| | | | * tests/calc.at: Formatting changes.
* portability: fix test suite for GCC 4.5's new #error message.Joel E. Denny2010-04-031-1/+3
| | | | | | | | Reported by Tys Lefering at <http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00030.html>. * NEWS (2.4.3): Mention. * tests/synclines.at (AT_TEST_SYNCLINE): Implement. (cherry picked from commit 18493762be5ddaaa64c9e498dad11afd6b0e82f6)
* tests: fix 250: parse.error=verbose overflow.Akim Demaille2010-03-251-2/+5
| | | | | * tests/regression.at (parse.error=verbose overflow): Avoid the double inclusion of stdlib.h as it triggers hard errors.
* portability: fix for BSD make.Joel E. Denny2010-03-231-1/+1
| | | | | | | | | | | | Reported by Johan van Selst at <http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00016.html>. * tests/local.mk ($(TESTSUITE)): Qualify package.m4 in this dependency list as in package.m4's target rule. (cherry picked from commit cf80e9c3868b4a6a9caf53c3b281ee089deffc86) Conflicts: tests/Makefile.am
* tests: fix maintainer-xml-check for recent changes.Joel E. Denny2010-02-221-1/+5
| | | | | | | | * tests/output.at (AT_CHECK_CONFLICTING_OUTPUT): Use AT_BISON_CHECK_NO_XML rather than AT_BISON_CHECK because an output file whose name conflicts with a previous output file is now never generated. (cherry picked from commit a3d760ef5d7d9bcab78268f5117c39566aa0345c)
* portability: fix several issues with M4 subprocess.Joel E. Denny2010-02-222-1/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | M4's output pipe was not being drained upon fatal errors during scan_skel. As a result, broken-pipe messages from M4 were seen on at least AIX, HP-UX, Solaris, and RHEL4, and this caused a failure in the test suite. The problem was that, on platforms where the default disposition for SIGPIPE is ignore instead of terminate, M4 sometimes saw fwrite fail with errno=EPIPE and then reported it. However, there's some sort of race condition, because the new test group occasionally succeeded. Reported by Albert Chin at <http://lists.gnu.org/archive/html/bug-bison/2010-02/msg00004.html>. There were also problems with the test suite livelocking on Tru64 5.1b. Reported by Didier Godefroy at <http://lists.gnu.org/archive/html/bug-bison/2009-05/msg00005.html>. Switching to create_pipe_bidi suggested by Akim Demaille. To attempt to solve both of these problems, switch to gnulib's create_pipe_bidi and register M4 process as a slave. Along the way, clean up file name conflict handling, which was affected by the broken-pipe problem before the switch. * NEWS (2.4.2): Document. * THANKS (Didier Godefroy): Add. * bootstrap.conf (gnulib_modules): Add pipe. * gnulib: Update to latest to make sure we have all the latest fixes. * lib/local.mk (lib_libbison_a_SOURCES): Remove subpipe.h and subpipe.c. * po/POTFILES.in (lib/subpipe.c): Remove. * src/files.c (compute_output_file_names): Update invocations of output_file_name_check. (output_file_name_check): In the case that the grammar file would be overwritten, use complain instead of fatal, but replace the output file name with /dev/null. Use the /dev/null solution for the case of two conflicting output files as well because it seems safer in case Bison one day tries to open both files at the same time. * src/files.h (output_file_name_check): Update prototype. * src/output.c (output_skeleton): Use create_pipe_bidi and wait_subprocess. Assert that scan_skel completely drains the pipe. * src/scan-skel.l (at_directive_perform): Update output_file_name_check invocation. * tests/output.at (AT_CHECK_CONFLICTING_OUTPUT): Check that the grammar file actually isn't overwritten. (Conflicting output files: -o foo.y): Update expected output. * tests/skeletons.at (Fatal errors but M4 continues producing output): New test group. (cherry picked from commit 22cc8d813ee57c9631e527a31010ab138f9b7e06) Conflicts: NEWS bootstrap.conf lib/.cvsignore lib/.gitignore lib/Makefile.am m4/.cvsignore m4/.gitignore src/output.c
* Code cleanup.Joel E. Denny2010-02-011-2/+0
| | | | | | * tests/atlocal.in (abs_top_srcdir): Remove shell variable, which is already defined in atconfig. (cherry picked from commit 0ee1af2ed57e29c8f5971884d7196e04f524b0b2)
* tests: fix missing include caught by g++ 4.4.1.Joel E. Denny2010-01-221-2/+2
| | | | | | | | Reported by Tys Lefering. * HACKING (Release checks): Add note about trying a recent GCC. * tests/regression.at (_AT_DATA_DANCER_Y): For C++, include cstdlib for abort. (_AT_DATA_EXPECT2_Y): Likewise.
* maint: run "make update-copyright"Joel E. Denny2010-01-0423-39/+28
|
* POSIX: complain if %prec's token was not defined.Joel E. Denny2009-12-311-2/+2
| | | | | | | | * NEWS (2.5): Document. * src/reader.c (grammar_rule_check): Convert warning to complaint. * tests/input.at (%prec's token must be defined): Update. (cherry picked from commit 510df9519ec6347c13a57535d0589e3a87bfe2fe)
* POSIX: warn if %prec's token was not defined.Joel E. Denny2009-12-311-0/+20
| | | | | | | | | | | | | Reported by Florian Krohm at <http://lists.gnu.org/archive/html/bug-bison/2009-12/msg00005.html>. * NEWS (2.4.2): Document. * src/reader.c (grammar_rule_check): Implement. (grammar_current_rule_prec_set): Add comments explaining that we here assume a %prec identifier is a token, but we still manage to support POSIX. * tests/input.at (%prec's token must be defined): New test group. (cherry picked from commit f1ceed07743630aa2aef7c77d8bde23c3794ee1b)