📄 changelog
字号:
conflict_list. (save_column): Likewise for froms[symno], tos[symno]. (goto_actions): Likewise for state_count. (pack_table): Likewise for base, pos, check. (tables_generate): Likewise for width. * src/LR0.c (set_states): Don't reuse kernel_size and kernel_base for initial core. Just have a separate core, so we needn't worry about whether kernel_size and kernel_base are initialized. * src/LR0.c (shift_symbol, redset, shiftset, kernel_base, kernel_size, kernel_items): Remove unnecessary initialization. * src/conflicts.c (conflicts): Likewise. * src/derives.c (derives): Likewise. * src/muscle_tablc (muscle_insert): Likewise. * src/relation.c (relation_digraph): Likewise. * src/tables.c (froms, tos, conflict_tos, tally, width, actrow, order, conflrow, conflict_table, conflict_list, table, check): Likewise. * src/closure.c (new_closure): Arg is of type unsigned int, not int. This is because all callers pass unsigned int. * src/closure.h (new_closure): Likewise. * src/lalr.c (initialize_F): Initialize reads[i] in all cases. (build_relations): Initialize includes[i] in all cases. * src/reader.c (packgram): Always initialize rules[ruleno].prec and rules[ruleno].precsym. Initialize members in order. * src/relation.c (relation_transpose): Always initialize new_R[i] and end_R[i]. * src/table.c (conflict_row): Initialize 0 at end of conflict_list. * src/output.c (prepare_actions): Pass 0 instead of conflict_list[0]; conflict_list[0] was always 0, but now it isn't initialized. * src/table.c (table_grow): When conflict_table grew, the grown area wasn't cleared. Fix this. * lib/.cvsignore: Add strdup.c, strdup.h. * m4/.cvsignore: Add strdup.m4.2004-12-07 Paul Eggert <eggert@cs.ucla.edu> * src/lalr.h (GOTO_NUMBER_MAXIMUM): New macro. * src/lalr.c (set_goto_map): Don't allow ngotos to equal GOTO_NUMBER_MAXIMUM, since we occasionally compute ngotos + 1 without checking for overflow. (build_relations): Use END_NODE, not -1, to denote end of edges. * src/lalr.c (set_goto_map, map_goto, initialize_F, add_loopback_edge, build_relations): Use goto_number, not int, for goto numbers. * src/tables.c (save_column, default_goto): Likewise.2004-11-23 Akim Demaille <akim@epita.fr> * data/lalr1.cc (YYSTYPE): Define it as is done for C, instead of #defining from yystype. Don't typedef yystype, C++ does not need it. This lets it possible to forward declare it as union.2004-11-23 Paul Eggert <eggert@cs.ucla.edu> * bootstrap (gnulib_modules): Add extensions. Problem reported by Jim Meyering.2004-11-22 Paul Eggert <eggert@cs.ucla.edu> * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c, src/nullable.c, src/relation.c, src/scan-skel.l, src/system.h, src/tables.c: XFREE -> free, to accommodate recent change to gnulib xalloc.h. Problem reported by Jim Meyering.2004-11-17 Akim Demaille <akim@epita.fr> * data/lalr1.cc (symprint_): Use cdebug_ to avoid warnings.2004-10-28 Akim Demaille <akim@epita.fr>, Alexandre Duret-Lutz <adl@gnu.org> * data/lalr1.cc (Parser::yycdebug_): New, a pointer, to allow changes. (YYCDEBUG): Adjust. Use it instead of cdebug_. (Parser::debug_stream, Parser::set_debug_stream): New. (Parser::symprint_): Define cdebug_ for temporary backward compatibility. * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use debug_stream ().2004-11-17 Akim Demaille <akim@epita.fr> * data/lalr1.cc (Parser:print_): Remove, use %printer instead. * tests/regression.at (_AT_DATA_DANCER_Y): Adjust. * tests/calc.at (_AT_DATA_CALC_Y): Ditto. * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.2004-10-27 Paul Eggert <eggert@cs.ucla.edu> * data/glr.c (yyloc_default): Remove; not used. Problem reported by Frank Heckenbach.2004-10-25 Akim Demaille <akim@epita.fr> * data/glr.c (YYRHSLOC): Move its definition next to its uses. Introduce another definition to address simple location arrays. (yyGLRStack): New member: yyerror_range. (yyrecoverSyntaxError, yyparse): Update it. (yyrecoverSyntaxError): Use it when shifting the error token to have an accurate range, equivalent to the one computed by both yacc.c and lalr1.cc. * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Change its yylex so that column numbers start at column 0, as per GNU Coding Standards, the others tests, and the doc. (_AT_RESOLVED_GLR_OUTPUT_WITH_LOC, _AT_AMBIG_GLR_OUTPUT_WITH_LOC): Adjust to the above change (first column is 0). And adjust the location of the "<error>", now covering the whole line.2004-10-22 Akim Demaille <akim@epita.fr> and Paul Eggert <eggert@cs.ucla.edu> Remove some arbitrary limits on goto numbers and relations. * src/lalr.c (goto_map, ngotos, from_state, to_state): Omit initial values, since they're never used. (set_goto_map): ngotos is now unsigned, so test for overflow by seeing whether it wraps around to zero. * src/lalr.h (goto_number): Now size_t, not short int. (GOTO_NUMBER_MAXIMUM): Remove. * src/relation.c (relation_print, traverse, relation_transpose): Check for END_NODE rather than looking at sign. * src/relation.h (END_NODE): New macro. (relation_node): Now size_t, not short int.2004-10-22 Paul Eggert <eggert@cs.ucla.edu> * doc/bison.texinfo (Language and Grammar): In example, "int" is a keyword, not an identifier. Problem reported by Baron Schwartz in <http://lists.gnu.org/archive/html/bug-bison/2004-10/msg00017.html>.2004-10-11 Akim Demaille <akim@epita.fr> * src/symtab.c (symbol_check_alias_consistency): Also check type names, destructors, and printers. Reported by Alexandre Duret-Lutz. Recode the handling of associativity and precedence in terms of symbol_precedence_set. Accept no redeclaration at all, not even equal to the previous value. (redeclaration): New. Use it to factor redeclaration complaints. (symbol_make_alias): Don't set the type of the alias, let symbol_check_alias_consistency do it as for other features. * src/symtab.h (symbol): Add new member prec_location, and type_location. * src/symtab.c (symbol_precedence_set, symbol_type_set): Set them. * tests/input.at (Incompatible Aliases): New.2004-10-09 Paul Eggert <eggert@cs.ucla.edu> .cvsignore fixes to accommodate gnulib changes, and the practice of naming build directories "_build". * .cvsignore: Add "_*". Sort. * lib/.cvsignore: Add getopt_.h, xalloc-die.c. * m4/.cvsignore: Add "*_gl.m4".2004-10-06 Akim Demaille <akim@epita.fr> * src/parse-gram.y (add_param): Fix the truncation of trailing spaces.2004-10-05 Akim Demaille <akim@epita.fr> In Bison 1.875's yacc.c, YYLLOC_DEFAULT was called regardless whether the reducion was empty or not. This leaves room to improve the use of YYLLOC_DEFAULT in such a case. lalr1.cc is still experimental, so changing this is acceptable. And finally, there are probably not many users who changed the handling of locations in GLR, so changing is admissible too. * data/glr.c, data/lalr1.cc, data/yacc.c (YYLLOC_DEFAULT): On an empty reduction, set @$ to an empty location ending the previously stacked symbol. Adjust uses to make sure the code is triggered on empty reductions. * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust the expected output: empty reductions have empty locations.2004-09-29 Akim Demaille <akim@epita.fr> * data/lalr1.cc: Move towards a more standard C++ coding style for templates: Class < T > -> Class<T>.2004-09-29 Akim Demaille <akim@epita.fr> * data/lalr1.cc: Reinstall the former ctor, for sake of compatibility, but warn it will be removed. Move towards a more standard C++ coding style (i.e., type *var -> type* var).2004-09-27 Paul Eggert <eggert@cs.ucla.edu> * src/parse-gram.y (add_param): Rewrite to avoid strchr, since it's less likely to work if NULs are involved in the future.2004-09-27 Akim Demaille <akim@epita.fr> * data/yacc.c (YY_LOCATION_PRINT): Fix its default declaration.2004-09-27 Akim Demaille <akim@epita.fr> * data/lalr1.cc (b4_parse_param_decl_1): New. (b4_parse_param_decl): Use it to have different names between attribute and argument names. (b4_cc_constructor_call): Likewise.2004-09-24 Akim Demaille <akim@epita.fr> * src/parse-gram.y (add_param): Strip the leading and trailing blanks from a formal argument declaration. (YY_LOCATION_PRINT): New.2004-09-24 Akim Demaille <akim@epita.fr> * data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation after the location.2004-09-24 Akim Demaille <akim@epita.fr> * doc/bison.texinfo (Table of Symbols): Sort.2004-09-21 Akim Demaille <akim@epita.fr> * data/yacc.c, data/glr.c (b4_at_dollar, b4_dollar_dollar): Remove the useless parentheses. Suggested by Paul Eggert.2004-09-20 Akim Demaille <akim@epita.fr> Let the initial-action act on the look-ahead, and use it for the "initial push" (corresponding to an hypothetical beginning-of-file). And let lalr1.cc honor %initial-action. * doc/bison.texinfo (Initial Action Decl): Clarify, and add an example. * data/lalr1.cc (Parser::initlocation_): Remove, bad experiment. (Parser::Parser): Remove the ctor that used to initialize it. (Parser::parse): Like in the other skeletons, issue the "starting parse" message before any action. Honor %initial-action. Initialize the stacks with the lookahead. * data/yacc.c: Let $$ and @$ in %initial-action designate the look-ahead. Push them in the stacks. * tests/actions.at, tests/calc.at: Adjust the C++ ctor invocations.2004-09-20 Akim Demaille <akim@epita.fr> * doc/bison.texinfo (Initial Action Decl): New.2004-09-20 Akim Demaille <akim@epita.fr> * data/yacc.c (YY_LOCATION_PRINT): Use YYLTYPE_IS_TRIVIAL as a clearer criterion to define it. (parse): Initialize the initial location when YYLTYPE_IS_TRIVIAL. When reducing on an empty RHS, use the latest stacked location as location. yylloc is not always available. * data/glr.c: Likewise. Also, honor initial-actions.2004-09-20 Akim Demaille <akim@epita.fr> * data/yacc.c (YY_LOCATION_PRINT): New. Define when we know YYLTYPE's structure, i.e., when the default YYLLOC_DEFAULT is used. * data/c.m4 (b4_yysymprint_generate): Use it. * data/lalr1.cc (YYLLOC_DEFAULT): Stop relying on the initial value of the result. (error_start_): Replace with... (error_range_): this location array. This allows to replace code relying on the implementation of locations by portable code. * data/yacc.c (yylerrsp): Replace with... (yyerror_range): this. Every time a token is popped, update yyerror_range[0], to have an accurate location for the error token. * data/glr.c (YY_LOCATION_PRINT): New. (yyprocessOneStack): Fix an invocation of YY_SYMBOL_PRINT: deference a pointer. * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): No longer report the location in %printers. * src/scan-skel.l: Instead of abort, report error messages to ease understanding skeleton scanning failures.2004-09-16 Akim Demaille <akim@epita.fr> * data/lalr1.cc (Stack::Iterator, Stack::ConstIterator): Rename as... (iterator, const_iterator): these, to be more in the C++ spirit. Also, return reverse iterators so that when displaying the stack we display its bottom first. (Parser::stack_print_, Parser::reduce_print_): Match the messages from yacc.c. We should probably use vector here though.2004-09-16 Akim Demaille <akim@epita.fr> Have more complete shift traces. * data/yacc.c, data/lalr1.c, data/glr.c: Use YY_SYMBOL_PRINT to report Shifts instead of ad hoc YYDPRINTF invocations, including for the error token. * data/lalr1.cc (symprint_): Output the location. * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): In C++, don't output the location within the %printer. Activate GLR tests, at least to make sure they compile properly. They still don't pass though. * tests/calc.at: Adjust expect verbose output, since now "Entering state..." is on a different line than the "Shifting" message.2004-09-08 Akim Demaille <akim@epita.fr> * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Move the Bison directive from the Bison file to the invocation of this macro, so that these directives are passed to AT_BISON_OPTION_PUSHDEFS to get correct help macros. Use these helping macros (e.g., AT_LOC, AT_VAL and so forth). Move the AT_SETUP/AT_CLEANUP outside, to report as test title the extra Bison directives instead of the whole series. Change the grammar so that there are recoverable errors, and
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -