Commit Graph

  • b2a0b7ca70 Finish implementation of per-type %destructor/%printer. Discussed starting at <http://lists.gnu.org/archive/html/bison-patches/2006-02/msg00064.html> and <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00091.html>. * NEWS (2.3+): Add a description of this feature to the default %destructor/%printer description. * doc/bison.texinfo (Freeing Discarded Symbols): Likewise. * src/symlist.c (symbol_list_destructor_set, symbol_list_printer_set): Invoke semantic_type_destructor_set or semantic_type_printer_set when a list node contains a semantic type. * src/symtab.c, src/symtab.h: Extend with a table that associates semantic types with their %destructor's and %printer's. (semantic_type_from_uniqstr, semantic_type_get, semantic_type_destructor_set, semantic_type_printer_set): New functions composing the public interface of that table. (symbol_destructor_get, symbol_destructor_location_get, symbol_printer_get, symbol_printer_location_get): If there's no per-symbol %destructor/%printer, look up the per-type before trying the default. * tests/actions.at (Per-type %printer and %destructor): New test case. * tests/input.at (Default %printer and %destructor redeclared): Extend to check that multiple occurrences of %symbol-default in a single %destructor/%printer declaration is an error. (Per-type %printer and %destructor redeclared, Unused values with per-type %destructor): New test cases. Joel E. Denny 2006-09-04 22:20:52 +00:00
  • 3be03b13e5 Require default %destructor/%printer to be declared using %symbol-default instead of an empty symbol list, and start working on new per-type %destructor/%printer. Discussed at <http://lists.gnu.org/archive/html/bison-patches/2006-09/msg00007.html>. * NEWS (2.3+): Add %symbol-default to example. * bison.texinfo (Freeing Discarded Symbols): Likewise. (Bison Symbols): Add entry for %symbol-default. * src/parse-gram.y (PERCENT_SYMBOL_DEFAULT): New token. (generic_symlist, generic_symlist_item): New nonterminals for creating a list in which each item is a symbol, semantic type, or %symbol-default. (grammar_declaration): Use generic_symlist in %destructor and %printer declarations instead of symbols.1 or an empty list. (symbol_declaration, precedence_declaration, symbols.1): Update actions for changes to symbol_list. * src/reader.c: Update for changes to symbol_list. * src/scan-code.l: Likewise. * src/scan-gram.l: Scan new PERCENT_SYMBOL_DEFAULT token. * src/symlist.c, src/symlist.h: Extend such that a list node may represent a semantic type or a %symbol-default in addition to just an ordinary symbol. Add switched functions for setting %destructor's and %printer's. * tests/actions.at, tests/input.at: Add %symbol-default to all default %destructor/%printer declarations. Joel E. Denny 2006-09-04 19:29:29 +00:00
  • 3508ce361b Whether the default %destructor/%printer applies to a particular symbol isn't a question of whether the user *declares* that symbol (in %token, for example). It's a question of whether the user by any means *defines* the symbol at all (by simply using a char token, for example). $end is defined by Bison whereas any other token with token number 0 is defined by the user. The error token is always defined by Bison regardless of whether the user declares it with %token, but we may one day let the user define error as a nonterminal instead. * NEWS (2.3+): Say "user-defined" instead of "user-declared". * doc/bison.texinfo (Freeing Discarded Symbols): Likewise, and document the meaning of "user-defined". * tests/actions.at (Default %printer and %destructor for user-declared end token): Rename to... (Default %printer and %destructor for user-defined end token): ... this. Joel E. Denny 2006-08-24 01:26:07 +00:00
  • 9350499cfc Don't apply the default %destructor or %printer to the error token, $undefined, or $accept. This change fits the general rule that the default %destructor and %printer are only for user-declared symbols, and it solves several difficulties that are described in the new test cases listed below. * src/symtab.c (symbol_destructor_get, symbol_printer_get): Implement. * tests/actions.at (Default %printer and %destructor are not for error or $undefined, Default %printer and %destructor are not for $accept): New test cases. Joel E. Denny 2006-08-21 21:53:18 +00:00
  • 4d7370cb4f Allow %start after the first rule. * src/reader.c (grammar_current_rule_begin): Don't set the start symbol when parsing the first rule. (check_and_convert_grammar): Search for it here after all grammar declarations have been parsed. Skip midrules, which have dummy LHS nonterminals. * src/symtab.c (symbol_is_dummy): New function. * src/symtab.h (symbol_is_dummy): Declare it. * tests/input.at (%start after first rule): New test. Joel E. Denny 2006-08-20 03:10:18 +00:00
  • 6d0ef4ec20 Redo some of the previous commit: add back the ability to use non-aliased/undeclared string literals since it might be useful to those declaring %token-table. * src/reader.c (check_and_convert_grammar): Undo changes in previous commit: don't worry about complaints from symbols_pack. * src/symtab.c (symbol_new, symbol_class_set, symbol_check_alias_consistency): Undo changes in previous commit: count each string literal as a new symbol and token, assign it a symbol number, and don't complain about non-aliased string literals. (symbols_pack): Since symbol_make_alias still does not decrement symbol and token counts but does still set aliased tokens to the same number, symbol_pack_processor now leaves empty slots in the symbols array. Remove those slots. * tests/regression.at (Undeclared string literal): Remove test case added in previous commit since non-aliased string literals are allowed again. (Characters Escapes, Web2c Actions): Undo changes in previous commit: remove unnecessary string literal declarations. * tests/sets.at (Firsts): Likewise. Joel E. Denny 2006-08-18 21:43:18 +00:00
  • 965537bc54 Don't allow an undeclared string literal, but allow a string literal to be used before its declaration. * src/reader.c (check_and_convert_grammar): Don't invoke packgram if symbols_pack complained. * src/symtab.c (symbol_new): Don't count a string literal as a new symbol. (symbol_class_set): Don't count a string literal as a new token, and don't assign it a symbol number since symbol_make_alias does that. (symbol_make_alias): It's not necessary to decrement the symbol and token counts anymore. Don't assume that an alias declaration occurs before any uses of the identifier or string, and thus don't assert that one of them has the highest symbol number so far. (symbol_check_alias_consistency): Complain if there's a string literal that wasn't declared as an alias. (symbols_pack): Bail if symbol_check_alias_consistency failed since symbol_pack asserts that every token has been assigned a symbol number although undeclared string literals have not. * tests/regression.at (String alias declared after use, Undeclared string literal): New test case. (Characters Escapes, Web2c Actions): Declare string literals as aliases. * tests/sets.at (Firsts): Likewise. Joel E. Denny 2006-08-18 10:25:50 +00:00
  • 5362ed19b6 Undo last commit. Joel E. Denny 2006-08-14 22:40:33 +00:00
  • 2d2c1a2dec * src/scan-gram.l (braces_level, context_state): Make these globals static. Joel E. Denny 2006-08-14 21:06:05 +00:00
  • 47aee066cc In the grammar scanner, STRING_FINISH unclosed constructs and return them to the parser in order to improve error messages. * src/scan-gram.l (SC_ESCAPED_STRING, SC_ESCAPED_CHARACTER, SC_BRACED_CODE, SC_PROLOGUE): Implement. * tests/input.at (Unclosed constructs): New test case. * tests/regression.at (Invalid inputs): Update now that unclosed %{ is seen. Joel E. Denny 2006-08-14 20:51:33 +00:00
  • 1f6b3679b2 Handle string aliases for character tokens correctly. * src/symtab.c (symbol_user_token_number_set): If the token has an alias, check and set its alias's user token number instead of its own, which is set to indicate the alias. Previously, every occurrence of the character token in the grammar overwrote that alias indicator with the character code. * tests/input.at (String aliases for character tokens): New test. Joel E. Denny 2006-08-14 00:34:17 +00:00
  • 219741d873 * src/parse-gram.y: Add `%expect 0' so we don't overlook conflicts. Joel E. Denny 2006-08-13 03:18:15 +00:00
  • 11daa4e73b * bootstrap: Put in need-ngettext argument to AM_GNU_GETTEXT, to prevent failures when building on older platforms. Check for autopoint failure. Set XGETTEXT_OPTIONS to values that check for C format strings, so that translators are warned about them (this also helps prevent core dumps). Paul Eggert 2006-08-11 20:52:55 +00:00
  • b4c2a79743 * lib/subpipe.c (create_subpipe): Use new gnulib pipe_safer function, since it simplifies our code a bit. Paul Eggert 2006-08-11 20:30:38 +00:00
  • 34ec357927 * configure.ac (AC_ARG_ENABLE): Use -Wextra -Wno-sign-compare rather than -W, so we don't get bogus warnings about sign comparisons. Add -Wpointer-arith, since that warning is useful (it reports code that does not conform to C89 and that some compilers reject). * data/c.m4, data/glr.c, data/lalr1.cc, data/yacc.c: Undo latest change, since it's no longer needed. Paul Eggert 2006-08-11 19:50:14 +00:00
  • f9bfc42aa7 Clean up scanners a bit. * src/flex-scanner.h (FLEX_NO_OBSTACK): New macro that blocks obstack definitions so gcc won't warn when obstack_for_string is unused. * src/scan-code.l: config.h and system.h are already #include'd by scan-code-c.c, so get rid of them here. * src/scan-gram.l: Likewise. * src/scan-skel.l: Likewise, and use flex-scanner.h without obstack definitions rather than duplicating the rest of it. * src/scan-gram-c.c, scan-skel-c.c: #include "system.h". Joel E. Denny 2006-08-10 04:53:04 +00:00
  • 06e8700a00 Suppress signed/unsigned comparison warnings for yycheck. * data/c.m4 (b4_safest_int_type): New macro. * data/glr.c, data/lalr1.cc: Wherever you compare yycheck[i] against a signed int type, cast it to b4_safest_int_type first. * data/yacc.c: Likewise. (b4_safest_int_type): Overwrite the one from c.m4 since b4_int_type is also overwritten. Joel E. Denny 2006-08-10 01:18:50 +00:00
  • 9c4371263f * doc/bison.texinfo: Fix some typos. Paul Eggert 2006-08-09 17:13:46 +00:00
  • 284d8a13e8 * m4/.cvsignore: Add inttypes_h.m4,lib-ld.m4, lib-prefix.m4, po.m4, stdint_h.m4, uintmax_t.m4, ulonglong.m4, warning.m4. Paul Eggert 2006-08-02 05:13:20 +00:00
  • ec5479ce35 Enable declaration of default %printer/%destructor. Make the parser use these for all user-declared grammar symbols for which the user does not declare a specific %printer/%destructor. Thus, the parser uses it for token 0 if the user declares it but not if Bison generates it as $end. Discussed starting at <http://lists.gnu.org/archive/html/bison-patches/2006-02/msg00064.html>, <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00091.html>, and <http://lists.gnu.org/archive/html/bison-patches/2006-07/msg00019.html>. * NEWS (2.3+): Mention. * doc/bison.texinfo (Actions in Mid-Rule): It's no longer impossible to declare a %destructor for a mid-rule's semantic value. It's just impossible to declare one specific to it. (Freeing Discarded Symbols): Mention that @$ can be used in %destructor code. Describe default %destructor form. * src/parse-gram.y (grammar_declaration): Parse default %printer/%destructor declarations. * src/output.c (symbol_destructors_output): Use symbol_destructor_get and symbol_destructor_location_get rather than accessing the destructor and destructor_location members of struct symbol. (symbol_printers_output): Likewise but for %printer's. * src/reader.c (symbol_should_be_used): Likewise but for %destructor's again. * src/symtab.c (default_destructor, default_destructor_location, default_printer, default_printer_location): New static global variables to record the default %destructor and %printer. (symbol_destructor_get, symbol_destructor_location_get, symbol_printer_get, symbol_printer_location_get): New functions to compute the appropriate %destructor and %printer for a symbol. (default_destructor_set, default_printer_set): New functions to set the default %destructor and %printer. * src/symtab.h: Prototype all those new functions. * tests/actions.at (Default %printer and %destructor): New test to check that the right %printer and %destructor are called, that they're not called for $end, and that $$ and @$ work correctly. (Default %printer and %destructor for user-declared end token): New test to check that the default %printer and %destructor are called for a user-declared end token. * tests/input.at (Default %printer and %destructor redeclared, Unused values with default %destructor): New tests to check related grammar warnings and errors. Joel E. Denny 2006-07-29 05:53:42 +00:00
  • 868d2d9638 Clean up handling of %destructor for the end token (token 0). Discussed starting at <http://lists.gnu.org/archive/html/bison-patches/2006-07/msg00019.html> and <http://lists.gnu.org/archive/html/help-bison/2006-07/msg00013.html>. Joel E. Denny 2006-07-29 04:11:33 +00:00
  • 62a9592d3d Update to latest gnulib and gettext versions. * bootstrap (gnulib-modules): Remove hard-locale, stdio-safer. Add fopen-safer. (gnulib_files): Add m4/warning.m4. Don't worry about files overwritten by autopoint. Replace gt_INTL_SUBDIR_CORE with an empty body in m4/gettext_gl.m4. Suppress "id", "ms", "tr" translations for now, since gettext 0.15 rejects them. Don't use autoreconf; instead, invoke autopoint etc. by hand, so that we can remove the intl files at a better time. (intl_files_to_remove): Remove aclocal.m4, since it gets rebuilt anyway. Remove m4/inttypes_h.m4, m4/inttypes.m4, m4/isc-posix.m4, m4/lib-ld.m4, m4/lib-prefix.m4, m4/po.m4, m4/stdint_h.m4, m4/uintmax_t.m4, m4/ulonglong.m4. Add m4/inttypes-h.m4, m4/lock.m4, m4/visibility.m4. Remove datarootdir hack; no longer needed. * configure.ac: Use gl_WARNING_CFLAGS rather than BISON_WARNING. (AM_GNU_GETTEXT_VERSION): Bump from 0.12 to 0.15. * lib/.cvsignore: Remove hard-locale.c, hard-locale.h, strdup.c, strdup.h. * m4/.cvsignore: Remove hard-locale.m4, strdup.m4. * m4/warning.m4: Remove from CVS, since we now use gnulib's version. Paul Eggert 2006-07-25 06:45:06 +00:00
  • 10d6970fb1 * bootstrap: Adjust to today's change to gnulib-tool by invoking it with --assume-autoconf='latest-stable'. Paul Eggert 2006-07-20 16:55:12 +00:00
  • 50a339934c * src/parse-gram.y (grammar_declaration): Don't confuse Doxygen (at least 1.4.7 and 1.4.4) by putting a #line between typedef union YYSTYPE' and {'. * src/muscle_tab.h (muscle_grow): Replace the header comments with those from muscle_tab.c since the old ones are misleading. Joel E. Denny 2006-07-13 20:05:34 +00:00
  • 2ce4ed68c9 Support %define "KEY" {VALUE}. * src/scan-code.h, src/scan-code.l (translate_action) (translate_rule_action, translate_symbol_action, translate_code): Return char *, not const char *. * src/parse-gram.y (declaration): Rename as... (prologue_declaration): this. (string_content): Remove this nonterminal, use STRING. (braceless, content, content.opt): New nonterminal. Use them. (%define): Now accept content.opt, i.e., accept also BRACED_CODE as value. * src/scan-gram.l (getargs.h): Don't include it. Akim Demaille 2006-07-13 08:12:00 +00:00
  • db7e5eb5ef * data/lalr1.cc (YYCDEBUG): Use 'if (yydebug_) (*yycdebug_)' rather than a for-loop that declares a local bool variable. Paul Eggert 2006-07-12 18:01:19 +00:00
  • a5d80ba505 * data/c.m4: Comment changes. Akim Demaille 2006-07-12 13:48:41 +00:00
  • 23eb2a692f * src/complain.c (error_message, ERROR_MESSAGE): New. To factor... (fatal_at, fatal, warn_at, warn, complain_at, complain): these. * src/complain.h, src/complain.c (warning_issued): Remove, unused. Akim Demaille 2006-07-10 19:36:31 +00:00
  • b321737f20 unless unless -> unless Paul Eggert 2006-07-10 00:37:25 +00:00
  • 1f4cc0f4ae Regenerate. Paul Eggert 2006-07-09 20:40:43 +00:00
  • ddc8ede1ab * NEWS: Instead of %union, you can define and use your own union type YYSTYPE if your grammar contains at least one <type> tag. Your YYSTYPE need not be a macro; it can be a typedef. * doc/bison.texinfo (Value Type, Multiple Types, Location Type): (Union Decl, Decl Summary): Document this. * data/glr.c (YYSTYPE): Implement this. * data/glr.cc (YYSTYPE): Likewise. * data/lalr1.cc (YYSTYPE): Likewise. * data/yacc.c (YYSTYPE): Likewise. * src/output.c (prepare): Output tag_seen_flag. * src/parse-gram.y (declaration, grammar_declaration): Use 'union_seen' rather than 'typed' to determine whether %union has been seen, since grammars can now be typed without %union. (symbol_declaration, type.opt, symbol_def): Keep track of whether a tag has been seen. * src/reader.c (union_seen, tag_seen): New vars. (typed): remove. * src/reader.h (union_seen, tag_seen, typed): Likewise. * src/scan-code.l (untyped_var_seen): New variable. (handle_action_dollar): Adjust to above changes. (handle_action_dollar, handle_action_at): Improve overflow checking for outlandish numbers. * tests/input.at (AT_CHECK_UNUSED_VALUES): Redo test to avoid new diagnostics generated by above changes. * tests/regression.at (YYSTYPE typedef): Add test to check for type tags without %union. Paul Eggert 2006-07-09 20:36:33 +00:00
  • b37acfe18c * src/symlist.c (symbol_list_length): Return int, not unsigned int, since callers expect int. Paul Eggert 2006-07-09 19:55:15 +00:00
  • 08bc001306 (gram_scanner_cursor): Remove decl, since this object is now static. Paul Eggert 2006-07-09 19:51:48 +00:00
  • 80ac75bcb6 (flags_argmatch): Return void, not int, to pacify ./configure --enable-gcc-warnings. Paul Eggert 2006-07-09 19:48:45 +00:00
  • f2e690d8c3 (STRING_FREE): Don't use FLEX_PREFIX (last_string) since last_string is already defined to FLEX_PREFIX (last_string). Paul Eggert 2006-07-09 19:44:34 +00:00
  • 7b42569e12 Implement --warnings/-W. * src/getargs.c (report_argmatch, trace_argmatch): Remove, replaced by... (flags_argmatch, FLAGS_ARGMATCH): this new function and macro. Adjust callers. * src/getargs.h, src/getargs.c (warnings, warnings_flags) (warnings_args, warnings_types): New. (getargs, short_options, long_options): Accept -W/--warnings. Sort the options by alphabetical order, upper case letter right before its lower case. Akim Demaille 2006-07-09 17:01:22 +00:00
  • 3b452f4ea6 Change %merge result type clash warnings to errors. Discussed at <http://lists.gnu.org/archive/html/bison-patches/2006-07/msg00026.html>. * src/reader.c (record_merge_function_type): Use complain_at. * tests/glr-regression.at (Missed %merge type warnings when LHS type is declared later): Update test case results. Joel E. Denny 2006-07-09 16:38:31 +00:00
  • b8a4155924 * src/getargs.h, src/getargs.c: Swap --report and --trace handling to be in alphabetical order. (trace_args): Spelling fixes. Akim Demaille 2006-07-09 15:38:42 +00:00
  • cd9e1ba28d * data/yacc.c (YYID, yy_stack_print): Prefix local vars with "yy" so they don't collide with user-defined macros. (yy_stack_print): Don't assume that yytype_int16 promotes to int; this was never guaranteed, and now that we're using gnulib stdint, which defines int_fast16_t to long int, the problem is exposed. Paul Eggert 2006-07-09 07:38:12 +00:00
  • b8445a158c * data/c.m4 (b4_basename): Simplify a bit, since we don't need the full POSIX semantics (and weren't implementing them anyway). Paul Eggert 2006-07-09 04:39:10 +00:00
  • b3d9b5ba18 Regenerate. Paul Eggert 2006-07-09 03:45:57 +00:00
  • cb48f1919c Adjust to Autoconf 2.60 and today's gnulib. * bootstrap (gnulib_modules): Add stdint. Remove special case for m4/onceonly_2_57.m4, since gnulib-tool no longer copies it. (intl_files_to_remove): Remove m4/longlong.m4 and m4/wchar_t.m4, since stdint needs the former and wcwidth (which is now required by mbswidth) needs the latter. Append 'datarootdir = @datarootdir@' to po/Makefile.in.in, to work around a compatibility glitch between gettext 0.14.6 and Autoconf 2.60. * configure.ac (AC_PREREQ): Require Autoconf 2.60. Do not check for uintptr_t, since new stdint module does the right thing. * lib/.cvsignore: Remove alloca.c, alloca.h, alloca_.h. Add stdint.h, stdint_.h, wcwidth.h. * m4/.cvsignore: Remove alloca.m4, onceonly.m4. Add absolute-header.m4, double-slash-root.m4, longlong.m4, stdint.m4, wchar_t.m4, wcwidth.m4. * src/files.c: Include <dirname.h> and <stdio-safer.h> in the usual order for ../lib/*.h files. (file_name_split): Use last_component, not base_name, to adjust to gnulib changes. * src/parse-gram.h: Include <strverscmp.h> in the usual order for ../lib/*.h files. (YYTYPE_INT16, YYTYPE_INT8, YYTYPE_UINT16, YYTYPE_UINT8): Define unconditionally, since we now assume the stdint module. * src/scan-skel.l: Include <dirname.h>. (BASE_QPUTS): Use last_component, not base_name. * src/system.h: Include <unlocked-io.h> in the usual order for ../lib/*.h files. Include <stdint.h> unconditionally, since we now use the stdint module. (uintptr_t): Declare if UINTPTR_MAX is not defined, not HAVE_UINTPTR_T, since we now use the stdint module. (base_name): Remove decl, since files now include <dirname.h> to get the decl. Paul Eggert 2006-07-09 03:44:51 +00:00
  • cd48d21d94 * data/c.m4 (b4_location_initial_column, b4_location_initial_line): New, default to 1. * data/yacc.c, data/glr.c, data/location.cc: Use them. * NEWS, doc/bison.texinfo: The initial column and line are 1 by default. * tests/calc.at: Adjust. Akim Demaille 2006-07-08 20:38:14 +00:00
  • 8ec0a172bc * data/c.m4 (b4_dirname): New. (b4_syncline): Also output the location of its invocation (from the skeleton). (b4_user_action, b4_define_user_action, b4_user_actions) (b4_user_initial_action, b4_user_post_prologue, b4_user_start_header) (b4_user_stype): New. * data/yacc.c, data/glr.c, data/lalr1.cc, data/glr.cc: Use them. Akim Demaille 2006-07-08 14:24:56 +00:00
  • 4a678af8c6 In the grammar file, the first column is 1 not 0 on the first line as on every other line. * src/parse-gram.y (%initial-action): Initialize @$ correctly. * tests/input.at (Torturing the Scanner): Update output. Joel E. Denny 2006-07-08 00:02:04 +00:00
  • dd60572a8b In warnings, say "previous declaration" rather than "first declaration". * src/symtab.c (redeclaration): Do that here. * src/reader.c (record_merge_function_type): In the case of a result type clash, report the previous declaration rather than the very first one in the grammar file. * tests/glr-regression.at (Missed %merge type warnings when LHS type is declared later): Add a third declaration to check this behavior. * tests/input.at (Incompatible Aliases): Update output. Joel E. Denny 2006-07-07 21:25:03 +00:00
  • fab044e6da * ChangeLog: Add mailing list references to some of the 2006-06-26 patches. Joel E. Denny 2006-07-07 19:43:33 +00:00
  • 2073e1b602 * doc/Doxyfile.in: New. * doc/Makefile.am: Use it. * src/lalr.h, src/symtab.h: Initial doxygenation. Akim Demaille 2006-06-27 14:09:54 +00:00
  • 8ee5b53874 Don't miss %merge result type warnings just because the LHS types are declared after the %merge. * src/reader.c (get_merge_function): Don't set the merger type yet. (record_merge_function_type): New function for setting the merger type and checking for clashes. (grammar_current_rule_merge_set): Set the location of the %merge for the current rule. (packgram): Invoke record_merge_function_type for each rule now that all symbol type declarations have been parsed. * src/reader.h (merger_list.type_declaration_location): New member storing the location of the first %merge from which the type for this merging function was derived. * src/symlist.h (symbol_list.merger_declaration_location): New member storing the location of a rule's %merge, if any. * tests/glr-regression.at (Missed %merge type warnings when LHS type is declared later): New test to catch the error fixed by the above patch. Joel E. Denny 2006-06-26 04:45:24 +00:00
  • ad6b1efa2f Fix code formatting. Joel E. Denny 2006-06-26 04:29:34 +00:00
  • ffa4ba3aef Get action warnings (grammar_rule_check) right even when symbol declarations appear after the rules. Don't mistake the type of $$ in a midrule to be that of its parent rule's $$. * src/reader.c (grammar_current_rule_end): Don't invoke grammar_rule_check yet since not all symbol declarations may have been parsed yet. (grammar_midrule_action): Likewise. Don't record whether the midrule's $$ has been used yet since actions haven't been translated yet. Record the midrule's parent rule and its RHS index within the parent rule. (grammar_current_rule_action_append): Don't translate the action yet since not all symbol declarations may have been parsed yet and, thus, warnings about types for $$, $n, @$, and @n can't be reported yet. (packgram): Translate the action and invoke grammar_rule_check now that all symbol declarations have been parsed. * src/scan-code.l (handle_action_dollar): Now that this is invoked after parsing the entire grammar file, the symbol list here in the case of a midrule is actually the midrule's empty RHS, so reference its parent rule's RHS where necessary. On the other hand, now that you can already know it's a midrule, you aren't forced to think $$ has the same type as its parent rule's $$. (handle_action_at): In the case of a midrule, reference the parent rule where necessary. * src/symlist.c (symbol_list_new): Initialize new midrule-related members. (symbol_list_length): Now that this is invoked after all rules have been parsed, a NULL symbol (rather than a NULL symbol list node) terminates a rule. symbol_list_print already does this correctly. * src/symlist.h (symbol_list.midrule_parent_rule, symbol_list.midrule_parent_rhs_index): New members so that midrules can remember their relationships with their parents. * tests/input.at (Type Clashes): Extend to catch the midrule $$ error fixed by the above patch. (_AT_UNUSED_VALUES_DECLARATIONS, AT_CHECK_UNUSED_VALUES): New m4 macros implementing... (Unused values): ... this old test case and... (Unused values before symbol declarations): ... this new test case. This one is the same as `Unused values' except that all symbol declarations appear after the rules in order to catch the rest of the errors fixed by the above patch. Joel E. Denny 2006-06-26 04:16:50 +00:00
  • 300a193064 Fix formatting in most recent entry. Joel E. Denny 2006-06-26 03:35:27 +00:00
  • e256e17f57 More cleanup. * src/reader.c (current_rule): Declare it static since it's no longer used outside this file. (grammar_current_rule_action_append): Remove redundant arguments from translate_rule_action invocation. * src/reader.h (current_rule): Remove this unused extern. * src/scan-code.h (translate_rule_action): Remove redundant arguments. * src/scan-code.l (translate_rule_action): Likewise. Joel E. Denny 2006-06-26 03:28:57 +00:00
  • 381ecb0687 Clean up yesterday's patch. * parse-gram.y (rhs): Move grammar_midrule_action invocation from here to... * src/reader.c (grammar_current_rule_action_append): ... here for consistency with grammar_current_rule_symbol_append. * tests/regression.at (Braced code in declaration in rules section): Make yyerror and yylex static as usual. Joel E. Denny 2006-06-25 06:59:54 +00:00
  • 4210cd0bfc Fix bug that mistakes braced code in a declaration in the rules section to be a rule action. Mentioned at <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00105.html>. * src/scan-gram.l: Move midrule action detection from the start of the scanning of any braced code to... * src/parse-gram.y (rhs): ... the parsing of braced code as a rule action. For readability, use $2 and @2 rather than the equivalent global variables. * tests/regression.at (Braced code in declaration in rules section): New test to catch the error fixed by the above patch. Joel E. Denny 2006-06-24 06:51:27 +00:00
  • 34f98f46ee Rename %before-definitions to %start-header and %after-definitions to %end-header. Don't use these declarations to separate pre-prologue blocks from post-prologue blocks. Add new order-independent declarations %before-header and %after-header as alternatives to the traditional Yacc pre-prologue and post-prologue blocks. Discussed at <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00110.html>. * NEWS (2.3+): Update for these changes. * data/glr.c (b4_before_definitions): Update to... (b4_start_header): ... this. (b4_after_definitions): Update to... (b4_end_header): ... this. * data/glr.cc: Likewise. * data/lalr1.cc: Likewise. * data/yacc.c: Likewise. * doc/bison.texinfo (The prologue): Update names, and replace remaining prologue blocks with %*-header declarations. (Calc++ Parser): Likewise. (Bison Declaration Summary): Update names. (Bison Symbols): Update description. * src/parse-gram.y (PERCENT_AFTER_DEFINITIONS): Update to... (PERCENT_END_HEADER): ... this. (PERCENT_BEFORE_DEFINITIONS): Update to... (PERCENT_START_HEADER): ... this. (PERCENT_AFTER_HEADER, PERCENT_BEFORE_HEADER): New tokens. (declaration): Update token names and m4 macro names. When parsing %end-header and %start-header, invoke translate_code before muscle_code_grow, and no longer set global booleans to remember whether these declarations have been seen. Parse new %after-header and %before-header. * src/reader.c (before_definitions, after_definitions): Remove. (prologue_augment): Accept a new bool argument to specify whether to augment the pre-prologue or post-prologue. * src/reader.h (before_definitions, after_definitions): Remove these extern's. (prologue_augment): Add new bool argument. * src/scan-gram.l (PERCENT_AFTER_DEFINITIONS): Update to... (PERCENT_END_HEADER): ... this. (PERCENT_BEFORE_DEFINITIONS): Update to... (PERCENT_START_HEADER): ... this. (PERCENT_AFTER_HEADER, PERCENT_BEFORE_HEADER): New tokens. * tests/actions.at (Printers and Destructors): Update names. Joel E. Denny 2006-06-23 20:17:28 +00:00
  • 31b2b07ef7 Add comparison operators for C++ location classes. Discussed at <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00092.html>. * data/c++.m4 (b4_define_location_comparison): New boolean %define declaration indicating whether filename_type has an operator==. If filename_type is std::string', it defaults to 1', 0' otherwise. * data/location.cc: Iff b4_define_location_comparison is 1', add operator== and operator!= for class position and for class location. Joel E. Denny 2006-06-22 19:46:05 +00:00
  • 9bc0dd679f Don't put the pre-prologue in the header file. For the yacc.c code file and the glr.c header and code files, move the pre-prologue before the token definitions. Add new %before-definitions and %after-definitions to declare code that will go in both the header file and code file. Discussed at <http://lists.gnu.org/archive/html/bison-patches/2005-12/msg00000.html>, <http://lists.gnu.org/archive/html/bison-patches/2006-01/msg00016.html>, and <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00055.html>. * NEWS (2.3+): Describe these changes. * data/glr.c (b4_pre_prologue): Move from within to before... (b4_shared_declarations): ... this. Add new b4_before_definitions before b4_token_enums. Add new b4_after_definitions at the end. * data/glr.cc (b4_pre_prologue): Replace with... (b4_before_definitions): ... this in the header file. (b4_after_definitions): New near the end of the header file. * data/lalr1.cc (b4_pre_prologue): Move from the header file to the code file right before including the header file. (b4_before_definitions): New in the previous position of b4_pre_prologue in the header file. (b4_after_definitions): New near the end of the header file. * data/yacc.c: Clean up some m4 quoting especially in the header file. (b4_token_enums_defines): In the code file, move to right before YYSTYPE for consistency with the header file. (b4_before_definitions): New right before b4_token_enums_defines in both the header and code file. (b4_after_definitions): New right after YYLTYPE and yylloc in both the header and code file. * doc/bison.texinfo (Prologue): Show use of %before-definitions instead of prologues for %union dependencies. (Bison Declaration Summary): In %defines description, mention the effect of %before-definitions and %after-definitions on the header file. (Calc++ Parser): Forward declare driver in a %before-definitions rather than in the pre-prologue so that make check succeeds. (Bison Symbols): Add entries for %before-definitions and %after-definitions. * src/parse-gram.y (PERCENT_BEFORE_DEFINITIONS): New token for %before-definitions. (PERCENT_AFTER_DEFINITIONS): New token for %after-definitions. (declaration): Parse those declarations and append to b4_before_definitions and b4_after_definitions, respectively. * src/reader.c (before_definitions, after_definitions): New bools to track whether those declarations have been seen. (prologue_augment): Add to the post-prologue if %union, %before-definitions, or %after-definitions has been seen. * src/reader.h (before_definitions, after_definitions): New extern's. * src/scan-gram.l: Scan the new declarations. * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Place the second prologue block in a %before-definitions or a %after-definitions based on whether the %union is declared. * tests/regression.at (Early token definitions with --yacc, Early token definitions without --yacc): Move tests for token definitions into the post-prologue since token names are no longer defined in the pre-prologue. Joel E. Denny 2006-06-21 01:37:01 +00:00
  • 203b927414 * src/symtab.h, src/symtab.c (symbol_from_uniqstr): New. (symbol_get): Use it. * src/parse-gram.y: Use it. Akim Demaille 2006-06-20 11:39:22 +00:00
  • 1b818f33ad Install these changes: * data/c.m4 (b4_union_name): Leave a default value. * data/glr.c, data/yacc.c: Use it. Akim Demaille 2006-06-20 11:32:19 +00:00
  • a7ee59cfb4 * src/scan-gram.l: Remove unused declaration of last_string_1 so the build succeeds when configured with --enable-gcc-warnings. Joel E. Denny 2006-06-19 22:31:33 +00:00
  • d2a1a60ab6 Regenerate. Paul Eggert 2006-06-19 21:33:59 +00:00
  • 33ad1a9c2d * src/parse-gram.y (char_name): New function. (CHAR, STRING, string_content): For %printer, properly escape. (ID): Prefer fputs to fprintf. (id): Reindent to be consistent with other rules. Properly quote char. Paul Eggert 2006-06-19 21:32:41 +00:00
  • 5a2baae7b3 * bootstrap (TP_URL, WGET_COMMAND): New vars. (get_translations): New function, which uses HTML scraping to deduce locations of latest translations. Use this function to grab both bison and bison-runtime .po files. Don't bother priming the pump for the runtime-po domain any more, as it's now translated better than bison is. Paul Eggert 2006-06-19 20:33:13 +00:00
  • 58d7a1a1c7 * src/scan-gram.l: No longer "parse" things after %union' until {'. Rather, return a single "%union" token. No longer make symbols: return strings, and leave the conversion to symbols to the parser. (SC_PRE_CODE, token_type): Remove. * src/parse-gram.y (%union): New field `character'. Sort tokens. (CHAR): New token. (ID, ID_COLON): Now that the scanner no longer makes them identifiers, adjust all uses to invoke symbol_get. (id_colon): New, wraps the conversion from string to symbol. (%union): Accept a possible union_name. (symbol): Now can be a char. * data/c.m4 (b4_union_name): Leave a default value. * data/glr.c, data/yacc.c: Use it. Akim Demaille 2006-06-19 16:49:44 +00:00
  • 40637e8169 Add name for twlevo. Paul Eggert 2006-06-15 18:29:10 +00:00
  • b931235eb9 For associating token numbers with token names for "yacc.c", don't use #define statements unless --yacc' is specified; always use enum yytokentype. Most important discussions start at: <http://lists.gnu.org/archive/html/bison-patches/2005-09/msg00053.html>, <http://lists.gnu.org/archive/html/bison-patches/2005-12/msg00052.html>, and <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00043.html>. * NEWS (2.3+): Mention. * data/c.m4 (b4_yacc_if): New. (b4_token_enums_defines): Use b4_yacc_if to decide whether to add the token #define's. * doc/bison.texinfo (Bison Options): Describe the effect of --yacc' on token name definitions. * src/getargs.c (usage): Capitalize `Yacc' in English. * src/output.c (prepare): Define b4_yacc_flag. * tests/regression.at (Early token definitions): Test that tokens names are defined before the pre-prologue not just before the post-prologue. Remove this test case and copy to... (Early token definitions with --yacc): ... this to test #define's. (Early token definitions without --yacc): ... and this to test enums. Joel E. Denny 2006-06-11 18:27:44 +00:00
  • 9e6e7ed2b2 * NEWS: Reword the post-2.3 change to not be so optimistic about removing the old "look-ahead" spelling. Update previous look-ahead/lookahead change reports. * REFERENCES: look-ahead -> lookahead (since that's what he actually wrote). * doc/refcard.tex: look ahead -> lookahead, look-ahead -> lookahead Paul Eggert 2006-06-11 08:16:04 +00:00
  • 742e4900c8 For consistency, use lookahead' instead of look-ahead' or look_ahead'. Discussed starting at <http://lists.gnu.org/archive/html/bison-patches/2006-01/msg00049.html> and then at <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00017.html>. * NEWS: For the next release, note the change to --report'. * TODO, doc/bison.1: Update English. * doc/bison.texinfo: Update English. (Understanding Your Parser, Bison Options): Document as --report=lookahead' rather than --report=look-ahead'. * src/conflicts.c: Update English in comments. (lookahead_set): Rename from look_ahead_set. (flush_reduce): Rename argument look_ahead_tokens to lookahead_tokens. (resolve_sr_conflict): Rename local look_ahead_tokens to lookahead_tokens, and update other uses. (flush_shift, set_conflicts, conflicts_solve, count_sr_conflicts, count_rr_conflicts, conflicts_free): Update uses. * src/getargs.c (report_args): Move "lookahead" before alternate spellings. (report_types): Update uses. (usage): For --report' usage description, state lookahead' spelling rather than `look-ahead'. * src/getargs.h (report.report_lookahead_tokens): Rename from report_look_ahead_tokens. * src/lalr.c: Update English in comments. (compute_lookahead_tokens): Rename from compute_look_ahead_tokens. (state_lookahead_tokens_count): Rename from state_look_ahead_tokens_count. Rename local n_look_ahead_tokens to n_lookahead_tokens. (lookahead_tokens_print): Rename from look_ahead_tokens_print. Rename local n_look_ahead_tokens to n_lookahead_tokens. Update other uses. Update English in output. (add_lookback_edge, initialize_LA, lalr, lalr_free): Update uses. * src/print.c: Update English in comments. (lookahead_set): Rename from look_ahead_set. (print_reduction): Rename argument lookahead_token from look_ahead_token. (print_core, state_default_rule, print_reductions, print_results): Update uses. * src/print_graph.c: Update English in comments. (print_core): Update uses. * src/state.c: Update English in comments. (reductions_new): Update uses. (state_rule_lookahead_tokens_print): Rename from state_rule_look_ahead_tokens_print, and update other uses. * src/state.h: Update English in comments. (reductions.lookahead_tokens): Rename from look_ahead_tokens. (state_rule_lookahead_tokens_print): Rename from state_rule_look_ahead_tokens_print. * src/tables.c: Update English in comments. (conflict_row, action_row): Update uses. * tests/glr-regression.at (Incorrect lookahead during deterministic GLR, Incorrect lookahead during nondeterministic GLR): Rename print_look_ahead to print_lookahead. * tests/torture.at: Update English in comments. (AT_DATA_LOOKAHEAD_TOKENS_GRAMMAR): Rename from AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR. (Many lookahead tokens): Update uses. * data/glr.c: Update English in comments. * lalr1.cc: Likewise. * yacc.c: Likewise. * src/conflicts.h: Likewise. * src/lalr.h: Likewise. * src/main.c: Likewise. * src/output.c: Likewise. * src/parse-gram.c: Likewise. * src/tables.h: Likewise. * tests/calc.at: Likewise. Joel E. Denny 2006-06-10 03:02:23 +00:00
  • 3c40d0b52d * src/flex-scanner.h (yytext): Remove stray `*/' in #define. Joel E. Denny 2006-06-08 05:33:15 +00:00
  • 5d27808262 * TODO: Add request from Nelson H. F. Beebe to be able to install Bison without installing the yacc script. Paul Eggert 2006-06-08 05:14:36 +00:00
  • 9e6688995e * src/flex-scanner.h: For the sake of Flex 2.5.4, don't #define yyleng and yytext if they're already #define'd. * src/flex-scanner.h, src/location.h: Move #include "system.h" to... * src/scan-code-c.c: ... here. * src/scan-code.l, src/scan-gram.l: ... and here. Also #include <config.h>. Joel E. Denny 2006-06-07 21:17:35 +00:00
  • a898d2780f src/location.h: #include "system.h" rather than <stdbool.h>. Joel E. Denny 2006-06-07 20:15:40 +00:00
  • 0c8e079fa6 Get Bison to build again when configured with --enable-gcc-warnings. * src/location.c, src/location.h, src/main.c, src/scan-code.l: Add some missing #include's. * src/scan-code.l (handle_action_dollar, handle_action_at): Rename loc argument as it shadows a global. * src/scan-gram.l: Remove stray comma that prevents boundary_set invocation. Joel E. Denny 2006-06-07 20:06:27 +00:00
  • 9f936c5e9c Add it for real. Akim Demaille 2006-06-07 07:58:28 +00:00
  • 2346344a08 * src/scan-gram.l: Move the "add a trailing ; to actions" code to... * src/scan-code.l: here. * tests/input.at (Torturing the Scanner): Fix another location error. Akim Demaille 2006-06-07 07:09:32 +00:00
  • 4862bdfd61 * src/Makefile.am (BUILT_SOURCES): Fix the trailing backslash. Akim Demaille 2006-06-07 06:52:12 +00:00
  • e9071366c3 Extract the parsing of user actions from the grammar scanner. As a consequence, the relation between the grammar scanner and parser is much simpler. We can also split "composite tokens" back into simple tokens. * src/gram.h (ITEM_NUMBER_MAX, RULE_NUMBER_MAX): New. * src/scan-gram.l (add_column_width, adjust_location): Move to and rename as... * src/location.h, src/location.c (add_column_width) (location_compute): these. Fix the column count: the initial column is 0. (location_print): Be robust to ending column being 0. * src/location.h (boundary_set): New. * src/main.c: Adjust to scanner_free being renamed as gram_scanner_free. * src/output.c: Include scan-code.h. * src/parse-gram.y: Include scan-gram.h and scan-code.h. Use boundary_set. (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_INITIAL_ACTION) (PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Remove the {...} part, which is now, again, a separate token. Adjust all dependencies. Whereever actions with $ and @ are used, use translate_code. (action): Remove this nonterminal which is now useless. * src/reader.c: Include assert.h, scan-gram.h and scan-code.h. (grammar_current_rule_action_append): Use translate_code. (packgram): Bound check ruleno, itemno, and rule_length. * src/reader.h (gram_in, gram__flex_debug, scanner_cursor) (last_string, last_braced_code_loc, max_left_semantic_context) (scanner_initialize, scanner_free, scanner_last_string_free) (gram_out, gram_lineno, YY_DECL_): Move to... * src/scan-gram.h: this new file. (YY_DECL): Rename as... (GRAM_DECL): this. * src/scan-code.h, src/scan-code.l, src/scan-code-c.c: New. * src/scan-gram.l (gram_get_lineno, gram_get_in, gram_get_out): (gram_get_leng, gram_get_text, gram_set_lineno, gram_set_in): (gram_set_out, gram_get_debug, gram_set_debug, gram_lex_destroy): Move these declarations, and... (obstack_for_string, STRING_GROW, STRING_FINISH, STRING_FREE): these to... * src/flex-scanner.h: this new file. * src/scan-gram.l (rule_length, rule_length_overflow) (increment_rule_length): Remove. (last_braced_code_loc): Rename as... (gram_last_braced_code_loc): this. Adjust to the changes of the parser. Move all the handling of $ and @ into... * src/scan-code.l: here. * src/scan-gram.l (handle_dollar, handle_at): Remove. (handle_action_dollar, handle_action_at): Move to... * src/scan-code.l: here. * src/Makefile.am (bison_SOURCES): Add flex-scanner.h, scan-code.h, scan-code-c.c, scan-gram.h. (EXTRA_bison_SOURCES): Add scan-code.l. (BUILT_SOURCES): Add scan-code.c. (yacc): Be robust to white spaces. * tests/conflicts.at, tests/input.at, tests/reduce.at, * tests/regression.at: Adjust the column numbers. * tests/regression.at: Adjust the error message. Akim Demaille 2006-06-06 16:40:06 +00:00
  • 184e42f065 * src/getargs.c (usage): Mention GLR not just LALR(1) in --help output. Use Akim's wording from <http://lists.gnu.org/archive/html/bison-patches/2006-05/msg00056.html>. Joel E. Denny 2006-06-06 06:00:55 +00:00
  • 7891a7c449 Between Bison releases, manually append +' to the previous Bison release number, and use that as a signal to automatically print the ChangeLog's CVS Id keyword from --version. Discussed starting at <http://lists.gnu.org/archive/html/bison-patches/2006-05/msg00028.html>. * ChangeLog: Add Id header. * configure.ac (AC_INIT): Append +' to 2.3'. * src/.cvsignore: Add revision.c. * src/Makefile.am (bison_SOURCES): Add revision.c and revision.h. (BUILT_SOURCES): Add revision.c. (revision.c): New target rule. This file defines a new global variable named revision. It initializes it with either the Id from ChangeLog or, if VERSION doesn't contain +', with the empty string. * src/getargs.c (version): Print the value of revision. * src/revision.h: Extern revision. Joel E. Denny 2006-06-06 05:23:44 +00:00
  • 4ad3ed84f6 * NEWS: Version 2.3. * configure.ac (AC_INIT): Likewise. Paul Eggert 2006-06-05 07:45:41 +00:00
  • 0210398466 * data/glr.c (YYRECOVERING): Define to be a function-like macro with no arguments, not as an object-like macro. This is for compatibility with data/yacc.c. Problem reported by John P. Hartmann in <http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00059.html>. * doc/bison.texinfo (Action Features, Error Recovery, Table of Symbols): Document this. Paul Eggert 2006-05-30 23:45:04 +00:00
  • 2c08afa5dd * src/getargs.c (usage): Back out yesterday's modification of the --help output so that we don't have to wait for translation before releasing 2.3. Joel E. Denny 2006-05-30 16:11:45 +00:00
  • 6077da5824 * doc/bison.texinfo (Introduction): Don't say "GLR grammar". Paul Eggert 2006-05-30 06:07:06 +00:00
  • c211f84be6 Actualisation of information concerning ports required to build port and enumeration of the tests of the testsuite that will be skipped. Juan Manuel Guerrero 2006-05-29 19:09:36 +00:00
  • 2a26b6c28b * src/getargs.c (usage): Mention GLR not just LALR(1) in --help output. Joel E. Denny 2006-05-29 03:39:12 +00:00
  • e4f0316ae0 Regenerate. Paul Eggert 2006-05-27 00:29:38 +00:00
  • aefef0d6cf * data/yacc.c (yy_reduce_print): Omit trailing white space in generated source code. Paul Eggert 2006-05-27 00:28:17 +00:00
  • fcd8e2011d * Makefile.maint (gzip_rsyncable, GZIP_ENV): Compute within the shell, not within 'make', so that 'make' by an ordinary builder (using GNU make) does not worry about configuring gzip. This also works around a bug reported independently by Keith Thompson and by Georg Schwarz, whereby gzip 1.2.4 --help would output usage on stderr rather than stdout, messing up the build logs. Paul Eggert 2006-05-22 07:41:15 +00:00
  • 7b5cdcbd17 * data/yacc.c (yyparse): Wrap the final return from yyparse inside YYID to make sure that YYID will never be unused. This fixes a 'make maintainer-check' failure caused by the recent changes to the 'Trivial grammars' test case, which caused g++ 4.1.0 to complain that YYID was not used. * data/glr.c (yyparse): Wrap yyparse's return inside YYID just in case. Joel E. Denny 2006-05-21 08:11:30 +00:00
  • 566ac1b4a7 Regenerate. Paul Eggert 2006-05-21 08:01:24 +00:00
  • 5ad0a449d6 * data/glr.c (yyresolveLocations): Remove bogus YYASSERT that the state before an empty RHS is always resolved here. Only the location of that state is guaranteed to be resolved, and that's enough. This fixes the remaining bug reported by Derek M. Jones in <http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00027.html>. * tests/glr-regression.at (Uninitialized location when reporting ambiguity): Test the above case. Also, the embedded comments in this test case claim it checks the case of an empty RHS that has inherited the initial location. However, the corresponding LHS was already resolved, so yyresolveLocations didn't actually have reason to modify it. Fix this by forcing nondeterministic operation at the beginning of the parse. Joel E. Denny 2006-05-21 06:22:36 +00:00
  • 50cce58e9a * data/c.m4 (b4_yy_symbol_print_generate): (b4_yy_symbol_print_generate): Use 'YYSTYPE const' rather than 'const YYSTYPE', and similarly for YYLTYPE. This fixes one of the bugs reported today by Derek M Jones in <http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00027.html>. * doc/bison.texinfo (Value Type): Document that YYSTYPE must be defined to be a type name without parens or brackets. (Location Type): Similarly for YYLTYPE. * tests/regression.at (Trivial grammars): Put in a test for this bug that will be caught by 'make maintainer-check' (though not, alas, by 'make check' unless your compiler is picky). Paul Eggert 2006-05-21 04:48:47 +00:00
  • 95c0638353 Update version number to 2.2a. Paul Eggert 2006-05-19 23:19:04 +00:00
  • aca1717341 Regenerate. Paul Eggert 2006-05-19 21:46:46 +00:00
  • 0d2c8934a5 Whoops, I meant version 2.2. Paul Eggert 2006-05-19 21:46:32 +00:00
  • ab8d9dc52f Version 2.1. Paul Eggert 2006-05-19 21:46:07 +00:00
  • 9138c575d8 * data/glr.c (yyreportTree): Make room in yystates for the state preceding the RHS. This fixes the segmentation fault reported by Derek M. Jones in <http://lists.gnu.org/archive/html/help-bison/2006-05/msg00035.html>. (yyreportTree, yypdumpstack): Subtract 1 from yyrule before printing to the user. Reported for yyreportTree by Derek M. Jones later in the same thread. * THANKS: Add Derek M. Jones. Update my email address. Fix typo in Steve Murphy's name. Joel E. Denny 2006-05-17 16:39:40 +00:00
  • d664514801 * data/glr.c (yyreportSyntaxError): Fix off-by-one error in checking against YYLAST that caused the parser to miss a potential alternative in its diagnostic. Problem reported by Maria Jose Moron Fernandez in <http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00024.html>. * data/lalr1.cc (yysyntax_error_): Likewise. * data/yacc.c (yysyntax_error): Likewise. * tests/regression.at (_AT_DATA_DANCER_Y): Use static array for tokens, in case we run into an older C compiler. (_AT_DATA_EXPECT2_Y, AT_CHECK_EXPECT2): New macros. Use them to check for the off-by-one error fixed above. Paul Eggert 2006-05-15 06:13:53 +00:00
  • 276f48df88 * data/yacc.c (yytnamerr): Fix typo: local var should be of type YYSIZE_T, not size_t. * tests/regression.at (Trivial grammars): New test, to catch the error fixed by the above patch. Paul Eggert 2006-05-15 05:10:06 +00:00