📄 changelog
字号:
Ideally we should use size_t to represent all object counts, and something like ptrdiff_t to represent signed differences of object counts; but that will require more code-cleanup than I have the time to do right now. * src/LR0.c (allocate_itemsets, new_itemsets, save_reductions): Use size_t, not int or short int, to count objects. * src/closure.c (nritemset, closure): Likewise. * src/closure.h (nritemset, closure): Likewise. * src/nullable.c (nullable_compute): Likewise. * src/print.c (print_core): Likewise. * src/print_graph.c (print_core): Likewise. * src/state.c (state_compare, state_hash): Likewise. * src/state.h (struct state): Likewise. * src/tables.c (default_goto, goto_actions): Likewise. * src/gram.h (rule_number, rule): Use int, not short int. * src/output.c (prepare_rules): Likewise. * src/state.h (state_number, STATE_NUMBER_MAXIMUM, transitions, errs, reductions): Likewise. * src/symtab.h (symbol_number, SYMBOL_NUMBER_MAXIMUM, struct symbol): Likewise. * src/tables.c (vector_number, tally, action_number, ACTION_NUMBER_MINIMUM): Likewise. * src/output.c (muscle_insert_short_int_table): Remove.2004-12-17 Akim Demaille <akim@epita.fr> * data/lalr1.cc: Extensive Doxygenation. (error_): Rename as... (error): this, since it is visible to the user. Adjust callers. (Parser::message): Now an automatic variable from... (Parser::yyreport_syntax_error_): here. * tests/actions.at, tests/calc.at, tests/regression.at: Adjust to Parser::error. * tests/input.at: Escape $.2004-12-16 Paul Eggert <eggert@cs.ucla.edu> * data/glr.c (b4_lhs_value, b4_rhs_value, b4_rhs-location): Parenthesize rhs to avoid obscure problems with mistakes like "foo$$bar = foo$1bar;". Problem reported by twlevo at xs4all. * data/lalr1.cc (b4_lhs_value, b4_rhs_value, b4_lhs_location, b4_rhs_location): Likewise. * data/yacc.c (b4_lhs_value, b4_rhs_value, b4_lhs_location, b4_rhs_location): Likewise.2004-12-16 Akim Demaille <akim@epita.fr> * data/lalr1.cc (yyreport_syntax_error_): Catch up with glr.c and yacc.c: be sure to stay within yycheck_. * tests/actions.at: Re-enable C++ tests.2004-12-16 Akim Demaille <akim@epita.fr> * src/print_graph.c (print_graph): Remove layoutalgorithm uses for real.2004-12-16 Akim Demaille <akim@epita.fr> Use #define to handle the %name-prefix. * data/glr.c, data/yacc.c: Comment changes. * data/lalr1.cc (yylex): Use #define to select the name of yylex, so that one can refer to yylex in the parser file, and have it renamed, as is the case with other skeletons.2004-12-16 Akim Demaille <akim@epita.fr> Move lalr1.cc internals into yy*. * data/lalr1.cc (semantic_stack_, location_stack_, state_stack_) (semantic_stack_, location_stack_, pact_, pact_ninf_, defact_) (pgoto_, defgoto_, table_, table_ninf_, check_, stos_, r1_, r2_) (name_, rhs_, prhs_, rline_, token_number_, eof_, last_, nnts_) (empty_, final_, terror_, errcode_, ntokens_) (user_token_number_max_, undef_token_, n_, len_, state_, nerrs_) (looka_, ilooka_, error_range_, nerrs_): Rename as... (yysemantic_stack_, yylocation_stack_, yystate_stack_) (yysemantic_stack_, yylocation_stack_, yypact_, yypact_ninf_) (yydefact_, yypgoto_, yydefgoto_, yytable_, yytable_ninf_) (yycheck_, yystos_, yyr1_, yyr2_, yyname_, yyrhs_, yyprhs_) (yyrline_, yytoken_number_, yyeof_, yylast_, yynnts_, yyempty_) (yyfinal_, yyterror_, yyerrcode_, yyntokens_) (yyuser_token_number_max_, yyundef_token_, yyn_, yylen_, yystate_) (yynerrs_, yylooka_, yyilooka_, yyerror_range_, yynerrs_): these.2004-12-15 Paul Eggert <eggert@cs.ucla.edu> Fix some problems reported by twlevo at xs4all. * src/symtab.c (symbol_new): Report an error if the input grammar contains too many symbols. This is better than calling abort() later. * src/vcg.h (enum layoutalgorithm): Remove. All uses removed. (struct node, struct graph): Rename member expand to stretch. All uses changed. (struct graph): Remove member layoutalgorithm. All uses removed. * src/vcg.c (get_layoutalgorithm_str): Remove. All uses removed. * src/vcg_defaults.h (G_STRETCH): Renamed from G_EXPAND. All uses changed. (N_STRETCH): Rename from N_EXPAND. All uses changed.2004-12-15 Akim Demaille <akim@epita.fr> * data/lalr1.cc: Normalize /** \brief ... */ to ///. Add more Doxygen comments. (symprint_, stack_print_, reduce_print_, destruct_, pop) (report_syntax_error_, translate_): Rename as... (yysymprint_, yystack_print_, yyreduce_print_, yydestruct_) (yypop_, yyreport_syntax_error_, yytranslate_): this.2004-12-15 Akim Demaille <akim@epita.fr> * data/lalr1.cc (lex_): Rename as... (yylex_): this. Move the trace here. Take the %name-prefix into account. Reported by Alexandre Duret-Lutz.2004-12-15 Akim Demaille <akim@epita.fr> Simplify the C++ parser constructor. * data/lalr1.cc (debug_): Rename as... (yydebug_): so that the parser's internals are always in the yy* pseudo namespace. Adjust uses. (b4_parse_param_decl): Remove the leading comma as it is now only called as unique argument list. (Parser::Parser): Remove the constructor accepting a location and an initial debugging level. Remove from the other ctor the argument for the debugging level. (debug_level_type, debug_level, set_debug_level): New. * tests/actions.at, tests/calc.at, tests/regression.at: Adjust constructor calls.2004-12-15 Akim Demaille <akim@epita.fr> Remove b4_root related material: failure experiment (which goal was to allow to derive from a class). * data/lalr1.cc (b4_root, b4_param, b4_constructor): Remove definitions and uses.2004-12-14 Paul Eggert <eggert@cs.ucla.edu> * data/glr.c (struct yyGLRStack): yyerror_range now has 3 items, not 2, since it's not portable to subtract 1 from the start of an array. The new item 0 is never set or used. All uses changed. (yyrecoverSyntaxError): Use YYLLOC_DEFAULT instead of assuming the default definition of YYLLOC_DEFAULT. Problem reported by Frank Heckenbach.2004-12-12 Paul Eggert <eggert@cs.ucla.edu> * data/glr.c (YYRHSLOC): Don't have two definitions, one for the normal case and one for the error case. Just use the first one uniformly. Problem reported by Frank Heckenbach. (YYLLOC_DEFAULT): Use the conventions of yacc.c, so we can use exactly the same macro in both places. (yyerror_range): Now of type yyGLRStackItem, not YYLTYPE, so that the normal-case YYRHSLOC works for the error case too. All uses changed. * data/yacc.c (YYRHSLOC): New macro, taken from glr.c. (YYLLOC_DEFAULT): Use the same macro as glr.c. * doc/bison.texinfo (Location Default Action): Don't claim that we have an array of locations. Use the same macro for both glr and lalr parsers. Mention YYRHSLOC. Mention what happens when the index is 0.2004-12-10 Paul Eggert <eggert@cs.ucla.edu> * HACKING: Update email addresses to send announcements to. * configure.ac (AC_INIT): Bump version to 1.875f.2004-12-10 Paul Eggert <eggert@cs.ucla.edu> * NEWS: Version 1.875e. * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875e. * src/scan-skel.l: Include "complain.h", for "fatal". * src/relation.h (relation_print, relation_digraph): Relation sizes are of type relation_node, not size_t (this is merely a doc fix, since the two types are equivalent). (relation_transpose): Relation sizes are of type relation_node, not int. * src/relation.c: Likewise. (top, infinity): Now of type relation_node, not int. (traverse, relation_transpose): Use relation_node, not int. * data/glr.c (yyuserAction, yyrecoverSyntaxError): Mark args with ATTRIBUTE_UNUSED if they're not used, to avoid GCC warning. (yyparse): Remove unused local introduced in 2004-10-25 patch. * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): New arg specifying whether the test should be skipped. Use it tp specify that the [%defines %skeleton "lalr1.cc"] tests currently fail on some hosts, and should be skipped.2004-12-08 Paul Eggert <eggert@cs.ucla.edu> * src/system.h (CALLOC, MALLOC, REALLOC): Remove. All callers changed to use xcalloc, xnmalloc, xnrealloc, respectively, unless otherwise specified below. * src/LR0.c (allocate_itemsets): Use xnmalloc, not xcalloc, to allocate kernel_base, kernel_items, kernel_size, since they needn't be initialized to 0. (allocate_storgae): Likewise, for shiftset, redset, shift_symbol. * src/closure.c (new_closure): Likewise, for itemset. * src/derives.c (derives_compute): Likewise, for delts, derives, q. * src/lalr.c (set_goto_map): Likewise, for temp_map. (initialize_F): Likewise, for reads, edge, reads[i], includes[i]. (build_relations): Likewise for edge, states1, includes. * src/nullable.c (nullable_compute): Likewise, for squeue, relts. * src/reader.c (packgram): Likewise, for ritem, rules. * src/reduce.c (nonterminals_reduce): Likewise for nontermmap. * src/relation.c (relation_digraph): Likewise for VERTICES. (relation_transpose): Likewise for new_R, end_R. * src/symtab.c (symbols_token_translations_init): Likewise for token_translations. * src/tables.c (save_row): Likewise for froms, tos, conflict_tos. (token_actions): Likewise for yydefact, actrow, conflrow, 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 (
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -