summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Clean up recent patches a little.Joel E. Denny2009-04-243-7/+14
| | | | | | | Reported by Akim Demaille. * doc/bison.texinfo (Understanding): Fix typos. * src/print.c (print_reductions): Don't use negated variable. (cherry picked from commit 379261b3fd4e799c37bda6d354e7b8fe582357a6)
* List accepted values for a %define enum variable with an invalid value.Joel E. Denny2009-04-244-30/+48
| | | | | | | | | | | Suggested by Akim Demaille at <http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00082.html>. * data/bison.m4 (_b4_percent_define_check_values): Implement. * src/muscle-tab.c (muscle_percent_define_check_values): Implement. * tests/input.at (%define lr.default_reductions invalid values): Merge into... (%define enum variables): ... here, and update output. (cherry picked from commit 25029e164a3b2385ae6d95ca4cd19bad36550c92)
* Rename "default rule" to "default reduction".Joel E. Denny2009-04-2316-239/+280
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This includes changing variable names in code, changing comments, and renaming %define lr.default_rules to %define lr.default_reductions. * NEWS (2.5): Update IELR documentation. * data/bison.m4 (b4_integral_parser_tables_map): Adjust YYDEFACT documentation. * data/glr.c, data/lalr1.java: Sync copyright dates. * doc/bison.texinfo (Decl Summary): Adjust lr.default_reductions and lr.type documentation. Make some other wording improvements. (Glossary): Adjust cross-references and Default Reduction definition. * src/lalr.c (state_lookahead_tokens_count): Adjust code. Remove a confusing comment pointed out by Akim Demaille. (initialize_LA): Adjust code. * src/print-xml.c (print_reductions): Adjust code. * src/print.c (print_reductions): Adjust code. * src/reader.c (reader): Adjust code. * src/tables.c (action_row): Adjust code. (token_actions): Adjust code. * src/tables.h: Adjust YYDEFACT documentation. * tests/input.at (%define lr.default_rules invalid values): Rename test group to... (%define lr.default_reductions invalid values): ... this, and update grammar file and expected output. * tests/reduce.at (AT_TEST_LR_DEFAULT_RULES): Rename to... (AT_TEST_LR_DEFAULT_REDUCTIONS): ... this, and update.
* tests: check the use of dashes and periods in symbols.Akim Demaille2009-04-212-0/+64
| | | | * tests/input.at (Symbol): New test group.
* Document %define lr.type and lr.default_rules.Joel E. Denny2009-04-214-79/+328
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * NEWS (2.5): Add an entry. * src/getargs.c (usage): Mention IELR(1) and canonical LR(1) besides just LALR(1) and GLR(1). * doc/bison.texinfo (Introduction): Likewise. (Language and Grammar): Bison is no longer limited to LALR(1) restrictions. (GLR parsing): Say deterministic or LR(1) rather than LALR(1) when trying to distinguish from GLR. Talk about LR(1) grammars rather than LALR(1) grammars. (Decl Summary): In %define api.push_pull entry, say it applies to deterministic parsers in C rather than LALR(1) parsers in C. Add lr.default_rules entry. Add lr.type entry. (Mystery Conflicts): Bison is no longer limited to LALR(1) restrictions. (Generalized LR Parsing): Same changes as for the previous GLR section. (Memory Management): Say deterministic rather than LALR(1). (Understanding): Correct some bison output. Index discussion of "accepting state". Say deterministic rather than LALR(1). (Bison Options): In --yacc entry, say deterministic rather than LALR(1). In --report, --graph, and --xml entries, just don't mention LALR(1). (C++ Parsers): Say deterministic rather than LALR(1). (Table of Symbols): Likewise in YYSTACK_USE_ALLOCA entry. (Glossary): Add Accepting State, Consistent State, Default Rule, and IELR(1) definitions. In Generalized LR (GLR) definition, make same changes as in previous GLR sections. In LALR(1) definition, say Bison uses LALR(1) by default rather than implying Bison is limited to LALR(1). (LocalWords): Add IELR. (cherry picked from commit 34a6c2d19b85d4650b2d90f60b76d44071d167d1)
* Finish implementing %define lr.type.Joel E. Denny2009-04-2113-99/+2908
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Its value can be "LALR", "IELR", or "canonical LR". * lib/timevar.def (TV_IELR_PHASE1): New var. (TV_IELR_PHASE2): New var. (TV_IELR_PHASE3): New var. (TV_IELR_PHASE4): New var. * src/local.mk (src_bison_SOURCES): Add AnnotationList.c, AnnotationList.h, InadequacyList.c, InadequacyList.h, Sbitset.c, Sbitset.h, ielr.c, and ielr.h. * src/getargs.h, src/getargs.c (enum trace, trace_args, trace_types): Add trace_ielr. * src/lalr.h, src/lalr.c (ngotos): Export it. (F): Rename to... (goto_follows): ... this, update all uses, and export it. (set_goto_map): Export it. (map_goto): Export it. (compute_lookahead_tokens): Don't free goto_follows yet. Now handled in ielr. (initialize_LA): Export it. Move lookback allocation to... (lalr): ... here because, for canonical LR, initialize_LA must be invoked but lookback and much of the rest of LALR isn't needed. * main.c (main): Instead of lalr, invoke ielr, which invokes lalr. * src/reader.c (reader): Default lr.type to "LALR". Default lr.default_rules to "accepting" if lr.type is "canonical LR". Leave the default as "all" otherwise. Check for a valid lr.type value. * src/state.h, src/state.c (struct state_list): Add state_list member. (state_new): Initialize state_list member to NULL. (state_new_isocore): New function, exported. * tests/existing.at (AT_TEST_EXISTING_GRAMMAR): New macro that exercises all values of lr.type. (GNU AWK Grammar): Rename test group to... (GNU AWK 3.1.0 Grammar): ... this, and extend to use AT_TEST_EXISTING_GRAMMAR. (GNU Cim Grammar): Extend to use AT_TEST_EXISTING_GRAMMAR. (GNU pic Grammar): Rename test group to... (GNU pic (Groff 1.18.1) Grammar): ... this, and extend to use AT_TEST_EXISTING_GRAMMAR. * tests/reduce.at (AT_TEST_LR_TYPE): New macro that exercises all values of lr.type. (Single State Split): New test groups using AT_TEST_LR_TYPE. (Lane Split): Likewise. (Complex Lane Split): Likewise. (Split During Added Lookahead Propagation): Likewise.
* Add new files for IELR and canonical LR implementation.Joel E. Denny2009-04-219-0/+2622
| | | | | | | | | | | * src/AnnotationList.c: New. * src/AnnotationList.h: New. * src/InadequacyList.c: New. * src/InadequacyList.h: New. * src/Sbitset.c: New. * src/Sbitset.h: New. * src/ielr.c: New. * src/ielr.h: New.
* Implement %define lr.default_rules.Joel E. Denny2009-04-218-22/+428
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Its value describes the states that are permitted to contain default rules: "all", "consistent", or "accepting". * src/reader.c (reader): Default lr.default_rules to "all". Check for a valid lr.default_rules value. * src/lalr.c (state_lookahead_tokens_count): If lr.default_rules is "accepting", then only mark the accepting state as consistent. (initialize_LA): Tell state_lookahead_tokens_count whether lr.default_rules is "accepting". * src/tables.c (action_row): If lr.default_rules is not "all", then disable default rules in inconsistent states. * src/print.c (print_reductions): Use this opportunity to perform some assertions about whether lr.default_rules was obeyed correctly. * tests/local.at (AT_TEST_TABLES_AND_PARSE): New macro that helps with checking the parser tables for a grammar. * tests/input.at (%define lr.default_rules invalid values): New test group. * tests/reduce.at (AT_TEST_LR_DEFAULT_RULES): New macro using AT_TEST_TABLES_AND_PARSE. (`no %define lr.default_rules'): New test group generated by AT_TEST_LR_DEFAULT_RULES. (`%define lr.default_rules "all"'): Likewise. (`%define lr.default_rules "consistent"'): Likewise. (`%define lr.default_rules "accepting"'): Likewise.
* Formatting change.Akim Demaille2009-04-202-10/+14
|
* bison: factoring.Akim Demaille2009-04-203-25/+31
| | | | | | * src/output.c (token_definitions_output): Use symbol_id_get instead of duplicating its logic. * TODO (YYERRCODE): Extend.
* variables: prefer error-verbose to error_verbose.Akim Demaille2009-04-205-23/+53
| | | | | | | | | | * data/bison.m4 (b4_error_verbose_if): Based on error-verbose instead of error_verbose. * src/scan-gram.l (%error-verbose): Map the error-verbose variable. * doc/bison.texinfo: Promote %define error-verbose instead of %error-verbose. * tests/actions.at: Prefer %define error-verbose to %error-verbose.
* Regen.Akim Demaille2009-04-202-24/+22
| | | | * src/parse-gram.h, src/parse-gram.c: Regen.
* variables: accept dashes.Akim Demaille2009-04-209-18/+75
| | | | | | | | | | | | | | | | * data/bison.m4 (b4_percent_define_if_define_): Also map dashes to underscores. * src/scan-gram.l ({id}): Also accept dashes after the initial letter. ({directive}): Use {id}. * src/parse-gram.y: Comment and formatting changes. * doc/bison.texinfo (Symbols): Adjust the lexical definitions of symbols. * src/complain.h, src/complain.c (yacc_at): New. * src/symtab.c (symbol_new): Use yacc_at to report inappropriate symbol names. * src/output.c (token_definitions_output): Do not #define token names with dashes.
* Consistently refer to Yacc, not YACC.Akim Demaille2009-04-202-2/+7
| | | | * src/getargs.c (usage, warnings_args): s/YACC/Yacc/.
* Pacify make maintainer-check-posix.Joel E. Denny2009-04-172-7/+13
| | | | | * tests/input.at (%define, --define): Move bison command-line options before grammar file name.
* Document semicolon warnings.Joel E. Denny2009-04-172-0/+26
| | | | | * NEWS (2.5): Here. (cherry picked from commit a2d0567444f8ab1fc079796169a9845fec62ed0f)
* Fix ChangeLog.Akim Demaille2009-04-141-1/+1
|
* variables: use `parse.assert' instead of `assert'.Akim Demaille2009-04-147-19/+42
| | | | | | | | * TODO (assert): Remove. * data/bison.m4 (b4_assert_if): Replace with... (b4_parse_assert_if): this. * data/lalr1.cc, data/variant.hh, tests/c++.at: Adjust. * doc/bison.texinfo (Decl Summary): Document parse.assert.
* variables: use `parse.assert' instead of `debug'.Akim Demaille2009-04-1411-29/+76
| | | | | | | | | | | | | | | | * src/getargs.c (getargs): Map -t to %define trace.parse. * src/scan-gram.l (%debug): Map to %define trace.parse. * data/bison.m4 (b4_percent_define_if_define): Map `.' in variable names to `_' in macro names. (b4_debug_if): Replace with... (b4_parse_trace_if): this. * data/glr.c, data/glr.cc, data/lalr1.cc, data/lalr1.java, * data/yacc.c: Adjust. * doc/bison.texinfo (Decl Summary): Document %debug as obsoleted. Use @code to label the variable list. Document the variable parse.trace. (Tracing): Promote the parse.trace variable. * TODO: %printer is not documented.
* doc: minor fixes.Akim Demaille2009-04-142-5/+7
| | | | | * doc/bison.texinfo (Decl Summary): Fix entry about %debug. (Table of Symbols): Remove duplicate entry for %debug.
* submodules: update to latestEric Blake2009-04-102-0/+5
| | | | | | | * submodules/autoconf: Use latest upstream Autoconf. Signed-off-by: Eric Blake <ebb9@byu.net> (cherry picked from commit 7ba0d59da0ec8f6876a66ea81bb9f9190ddec358)
* Work around autoconf 2.63b bug in testsuite.Eric Blake2009-04-102-3/+9
| | | | | | | | * tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Avoid tripping autoconf bug related to # in test. Signed-off-by: Eric Blake <ebb9@byu.net> (cherry picked from commit ab3a683f0560e4ec24a06754386ee8c76da6ef67)
* * NEWS (2.5): New section. Describe new -D/--define feature.Joel E. Denny2009-04-062-1/+21
|
* Regen.Akim Demaille2009-04-063-588/+567
| | | | * src/parse-gram.h, src/parse-gram.c: Regen.
* rename muscle_tab.* as muscle-tab.* for consistency.Akim Demaille2009-04-0610-11/+19
| | | | | | | * src/muscle_tab.h, src/muscle_tab.c: Rename as... * src/muscle-tab.h, src/muscle-tab.c: these. * src/getargs.c, src/local.mk, src/main.c, src/output.c, * src/parse-gram.y, src/reader.c, src/scan-code.l: Adjust.
* Makefile: introduce $(BISON).Akim Demaille2009-04-062-1/+8
| | | | | * src/local.mk (BISON): New. (YACC): Use it.
* parser: handle %locations as %define locations.Akim Demaille2009-04-0610-16/+26
| | | | | | | | | | | | | * src/getargs.h, src/getargs.c (locations_flag): Remove. * src/getargs.c, src/scan-code.l: Use muscle_percent_define_ensure to set "locations" to true. * src/output.c (prepare): Don't output "locations". * src/scan-gram.l (%locations): Handle it as a %<flag>. * src/parse-gram.y: It's no longer a token. Don't handle it. * data/bison.m4 (b4_locations_if): Define it with b4_percent_define_if_define. * data/c.m4, data/glr.cc: Adjust.
* Regen.Akim Demaille2009-04-062-318/+304
| | | | * src/parse-gram.c: Regen.
* muscle: factor the handling of obsolete of obsolete directives.Akim Demaille2009-04-065-20/+50
| | | | | | | | | | | | | Suggested by Joel E. Denny. * src/muscle_tab.h, src/muscle_tab.c (muscle_percent_define_ensure): New, extracted from... * src/parse-gram.y (prologue_declaration: pure-parser): here. Remove it. (prologue_declaration: "%<flag>"): Use muscle_percent_define_ensure. (%error-verbose, %pure-parser): No longer tokens. * src/scan-gram.l (pure-parser): Return as a %<flag>.
* Fix options documentation.Joel E. Denny2009-04-063-7/+17
| | | | | | * build-aux/cross-options.pl: As in --help output, write optional arguments as [=ARG] not =[ARG]. * doc/bison.texinfo (Bison Options): Add -W/--warnings argument.
* Replace BISON_PROG_GNU_M4 with Autoconf's AC_PROG_GNU_M4.Joel E. Denny2009-04-043-33/+13
| | | | | | | | If the first m4 in $PATH is wrong, it keeps looking. Moreover, its requirements for a correct m4 are stricter. * m4/m4.m4: Make it a symbolic link to submodules/autoconf/m4/m4.m4. * configure.ac: Update to use AC_PROG_GNU_M4. Reported by Eric Blake.
* Help with updating web manual.Joel E. Denny2009-04-037-9/+60
| | | | | * HACKING: Incorporate instructions from gnulib/doc/README. * bootstrap.conf (gnulib_modules): Add gendocs.
* Regen.Akim Demaille2009-04-033-430/+434
| | | | * src/parse-gram.h, src/parse-gram.c: Regen.
* Factor %FLAG at scan level.Akim Demaille2009-04-033-13/+26
| | | | | | | | * src/parse-gram.y (PERCENT_DEBUG, PERCENT_ERROR_VERBOSE): Token definitions and associated rules, replaced by.... (PERCENT_FLAG): this new token type, and rule. * src/scan-gram.l (RETURN_PERCENT_FLAG): New. Use it for %debug and %error-verbose.
* Regen.Akim Demaille2009-04-033-184/+191
| | | | * src/parse-gram.h, src/parse-gram.c: Regen.
* Update ChangeLog.Akim Demaille2009-04-031-0/+29
|
* Treat %debug as %define debug.Akim Demaille2009-04-0310-13/+18
| | | | | | | | | * data/bison.m4 (b4_debug_if): New. * data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c, * data/lalr1.java: Use it instead of b4_debug_flag. * src/getargs.h, src/getargs.c (debug_flag): Remove. * src/output.c (prepare): Don't output it. * src/parse-gram.y: Treat %debug as %define debug.
* Regen.Akim Demaille2009-04-032-694/+505
| | | | * src/parse-gram.h, src/parse-gram.c: Regen.
* Treat %error-verbose as %define error_verbose.Akim Demaille2009-04-038-37/+40
| | | | | | | | | | | | | | | | | | | This allows to pass -Derror_verbose on the command line. Better yet, it allows to pass -Derror_verbose=$(ERROR_VERBOSE), with ERROR_VERBOSE being defined as false or true. * data/bison.m4 (b4_percent_define_if_define): Instead of relying on b4_percent_define_ifdef, for does not check the defined value, but only whether the symbol is defined, rely on b4_percent_define_flag_if, so that a value of "false" is processed as a false. If not defined, define the flag to "false". (b4_error_verbose_if): New. * data/glr.c, data/lalr1.cc, data/yacc.c: Use it instead of b4_error_verbose_flag. * src/getargs.h, src/getargs.c (error_verbose_flag): Remove. * src/output.c (prepare): Don't output it. * src/parse-gram.y (%error-verbose): Treat as %define error_verbose.
* Fix strange %define locations for default values.Joel E. Denny2009-04-036-30/+68
| | | | | | | | | | | | | | | | | | Reported by Akim Demaille at <http://lists.gnu.org/archive/html/bug-bison/2007-12/msg00001.html> and discussed again starting at <http://lists.gnu.org/archive/html/bison-patches/2008-11/msg00102.html>. * data/bison.m4 (b4_percent_define_default): Leave syncline blank because location information is bogus. Use angle brackets to delimit fake file name because square brackets look like over-quoted m4. Choose a better fake file name. Use negative line numbers. * src/muscle_tab.c (muscle_percent_define_default): Likewise. * src/location.c (location_print): If line for a boundary is negative, only print that boundary's file name. * src/location.h: Document that. * tests/skeletons.at (%define Boolean variables: invalid skeleton defaults): Update output.
* Pacify ./configure --enable-gcc-warnings.Joel E. Denny2009-04-033-3/+11
| | | | | | * Makefile.am (AM_CFLAGS): Remove $(WERROR_CFLAGS) because many files in lib won't compile with it. * src/local.mk (src_bison_CFLAGS): Use $(WERROR_CFLAGS) here only.
* bootstrap: --help to stdout.Akim Demaille2009-03-312-2/+8
| | | | | * bootstrap (usage): Don't send --help to stderr. Use a here doc instead of a long string.
* bootstrap: README-hacking no longer existsAkim Demaille2009-03-312-3/+8
| | | | * bootstrap (checkout_only_file): Set to HACKING.
* ChangeLog: formatting changes.Akim Demaille2009-03-271-4/+4
|
* doc: merge HACKING and README-hacking.Akim Demaille2009-03-273-130/+124
| | | | | | | | Two files is confusing. Reported by Alexandre Duret-Lutz. * README-hacking: Merge into... * HACKING (Working from the repository): here.
* doc: update README-hacking.Akim Demaille2009-03-273-7/+62
| | | | | * README-hacking: We now use git and git submodules. Reported by Ralf Wildenhues and Alexandre Duret-Lutz.
* lalr1.cc: avoid GCC 4.3 warnings.Akim Demaille2009-03-272-7/+19
| | | | | | | | | | GCC 4.3 now warns about "a || b && c" and asks for explicit parentheses. Reported by Alexandre Duret-Lutz. * data/location.cc: Update copyright years. (Position::operator==): Use parens to make precedence explicit. Compare lines and columns first, as they are more likely to be different, and they are faster to compare.
* gnulib: update.Akim Demaille2009-03-275-8/+16
| | | | | | | | * gnulib: Update to latest. * src/local.mk (AM_CFLAGS): Move to... * Makefile.am: here. * etc/prefix-gnulib-mk (prefix_assignment): Also transform AM_CFLAGS.
* Comment changes.Akim Demaille2009-03-022-3/+7
|
* Share b4_yytranslate_define.Akim Demaille2009-03-023-29/+34
| | | | | * data/lalr1.cc (b4_yytranslate_define): Move to... * data/c++.m4: here.