]> git.saurik.com Git - bison.git/blame_incremental - ChangeLog
(output_edge): Don't quote linestyle arg.
[bison.git] / ChangeLog
... / ...
CommitLineData
12005-02-28 Paul Eggert <eggert@cs.ucla.edu>
2
3 * doc/bison.texinfo (Semantic Tokens): Fix scoping problem in
4 example, reported by Derek M Jones. Also, make the example even
5 more outrageous, to better illustrate how bad the problem is.
6
72005-02-24 Paul Eggert <eggert@cs.ucla.edu>
8
9 * doc/bison.texinfo (Mfcalc Symtab): Correct the prototype for
10 putsym. Typo reported by Sebastian Piping.
11
122005-02-23 Paul Eggert <eggert@cs.ucla.edu>
13
14 * doc/bison.texinfo (Language and Grammar): some -> same
15 (Epilogue): int he -> in the
16 Typos reported by Sebastian Piping via Justin Pence.
17
182005-02-07 Paul Eggert <eggert@cs.ucla.edu>
19
20 * tests/glr-regression.at (Improper handling of embedded actions
21 and dollar(-N) in GLR parsers): Renamed from "Improper handling of
22 embedded actions and $-N in GLR parsers", work around an Autoconf bug
23 with dollar signs in test names.
24 * tests/input.at (Invalid dollar-n): Renamed from "Invalid \$n",
25 for a similar reason.
26
272005-01-28 Paul Eggert <eggert@cs.ucla.edu>
28
29 * src/vcg.c (output_graph): G_VIEW -> normal_view in case someone
30 wants to redefine G_VIEW.
31
322005-01-27 Paul Eggert <eggert@cs.ucla.edu>
33
34 * src/vcg.c (get_view_str): Remove case for normal_view.
35 Problem reported by twlevo@xs4all.nl.
36
372005-01-24 Paul Eggert <eggert@cs.ucla.edu>
38
39 * configure.ac (O0CFLAGS, O0CXXFLAGS): Fix quoting bug.
40 Problem reported by twlevo@xs4all.nl.
41
42 * doc/bison.texinfo: Change @dircategory from "GNU programming
43 tools" to "Software development". Requested by Richard Stallman
44 via Karl Berry.
45
462005-01-23 Paul Eggert <eggert@cs.ucla.edu>
47
48 * tests/c++.at (AT_CHECK_DOXYGEN): Don't use options after operands.
49 Problem reported by twlevo@xs4all.nl.
50
512005-01-21 Paul Eggert <eggert@cs.ucla.edu>
52
53 * data/yacc.c (YYCOPY, yystpcpy, yyparse): Remove "register"
54 keyword; it's not needed with modern compilers, and it doesn't
55 affect correctness with older compilers. Suggested by
56 twlevo@xs4all.nl.
57
582005-01-17 Paul Eggert <eggert@cs.ucla.edu>
59
60 * data/glr.c (yyuserAction): Add "default: break;" case to pacify
61 gcc -Wswitch-default.
62 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
63 * data/yacc.c (yyparse): Likewise.
64
652005-01-12 Paul Eggert <eggert@cs.ucla.edu>
66
67 * src/system.h (OUTPUT_EXT, TAB_EXT): Define only if not defined
68 already. Let config.h define any nonstandard values.
69
702005-01-10 Paul Eggert <eggert@cs.ucla.edu>
71
72 * tests/calc.at (_AT_DATA_CALC_Y): Use alarm (100), not alarm (10),
73 for the benefit of slower hosts. Problem reported by
74 Nelson H. F. Beebe.
75
762005-01-07 Paul Eggert <eggert@cs.ucla.edu>
77
78 * data/yacc.c (yyparse): Pacify non-GCC compilers about yyerrorlab
79 being defined and not used.
80 * data/lalr1.cc (yyparse): Likewise.
81 Use "if (false)" rather than "if (0)".
82
832005-01-05 Paul Eggert <eggert@cs.ucla.edu>
84
85 * TODO: Mention that we should allow NUL bytes in tokens.
86
872005-01-02 Paul Eggert <eggert@cs.ucla.edu>
88
89 * src/scan-skel.l (<<EOF>>): Don't close standard output.
90 Problem reported by Hans Aberg.
91
922005-01-01 Paul Eggert <eggert@cs.ucla.edu>
93
94 * src/getargs.c (version): Happy new year; update overall
95 program copyright date from 2004 to 2005.
96
97 * src/scan-skel.l ("@output ".*\n): Don't close standard output.
98 Problem reported by Hans Aberg.
99 * tests/output.at (AT_CHECK_OUTPUT): New arg SHELLIO.
100 (Output file names.): Add a test for the case when standard output
101 is closed.
102
1032004-12-26 Paul Eggert <eggert@cs.ucla.edu>
104
105 * doc/bison.texinfo (@copying): Update FDL version number to 1.2,
106 to fix an oversight in the Bison 2.0 manual.
107
1082004-12-25 Paul Eggert <eggert@cs.ucla.edu>
109
110 * NEWS: Version 2.0. Reformat the existing news items since
111 1.875, so that related items are grouped together.
112 * configure.ac (AC_INIT): Bump version to 2.0.
113 * src/parse-gram.c, src/parse-gram.h: Regenerate with 2.0.
114
115 * tests/torture.at (Exploding the Stack Size with Alloca): Set
116 YYSTACK_USE_ALLOCA to 1 if __GNUC__ or alloca are defined;
117 otherwise, we're not testing alloca. Unfortunately there's no
118 simple way to consult HAVE_ALLOCA here.
119
120 * data/lalr1.cc (yydestruct_): Pacify unused variable warning
121 for yymsg, too.
122
123 * src/LR0.c (new_itemsets): Use memset rather than zeroing by
124 hand. This avoids a warning about comparing int to size_t when
125 GCC warnings are enabled.
126
1272004-12-22 Paul Eggert <eggert@cs.ucla.edu>
128
129 * NEWS: Bison-generated parsers no longer default to using the
130 alloca function (when available) to extend the parser stack, due
131 to widespread problems in unchecked stack-overflow detection.
132 * data/glr.c (YYMAXDEPTH): Remove undef when zero. It's the user's
133 responsibility to set it to a positive value. This lets the user
134 specify a value that is not a preprocessor constant.
135 * data/yacc.c (YYMAXDEPTH): Likewise.
136 (YYSTACK_ALLOC): Define only if YYSTACK_USE_ALLOCA is nonzero.
137 * doc/bison.texinfo (Stack Overflow): YYMAXDEPTH no longer needs
138 to be a compile-time constant. However, explain the constraints on it.
139 Also, explain the constraints on YYINITDEPTH.
140 (Table of Symbols): Explain that alloca is no longer the default.
141 Explain the user's responsibility if they define YYSTACK_USE_ALLOCA
142 to 1.
143
144 * doc/bison.texinfo (Location Default Action): Mention that n must
145 be zero when k is zero. Suggested by Frank Heckenbach.
146
1472004-12-22 Akim Demaille <akim@epita.fr>
148
149 * data/lalr1.cc (parser::token_number_type, parser::rhs_number_type)
150 (parser::state_type, parser::semantic_type, parser::location_type):
151 Private, not public.
152 (parser::parse): Return ints, not bool.
153 Returning a bool introduces a problem: 0 corresponds to false, and
154 it seems weird to return false on success. Returning true changes
155 the conventions for yyparse.
156 Alternatively we could return void and send an exception.
157 There is no clear consensus (yet?).
158 (state_stack, semantic_stack, location_stack): Rename as...
159 (state_stack_type, semantic_stack_type, location_stack_type): these.
160 Private, not public.
161 * tests/c++.at: New.
162 * tests/testsuite.at, tests/Makefile.am: Adjust.
163
1642004-12-21 Akim Demaille <akim@epita.fr>
165
166 * data/lalr1.cc (parser::parse): Return a bool instead of an int.
167
1682004-12-21 Akim Demaille <akim@epita.fr>
169
170 Don't impose std::string for filenames.
171
172 * data/lalr1.cc (b4_filename_type): New.
173 (position::filename): Use it.
174 (parser.hh): Move the inclusion of stack.hh and location.hh below
175 the user code, so that needed headers for the filename type can be
176 included first.
177 Forward declare them before the user code.
178 * tests/Makefile.am (check-local, installcheck-local): Pass
179 TESTSUITEFLAGS to the TESTSUITE.
180
1812004-12-20 Akim Demaille <akim@epita.fr>
182
183 Use more STL like names: my_class instead of MyClass.
184
185 * data/lalr1.cc (LocationStack, LocationType, RhsNumberType)
186 (SemanticStack, SemanticType, StateStack, StateType)
187 (TokenNumberType, Stack, Slice, Traits, Parser::location)
188 (Parser::value): Rename as...
189 (location_stack, location_type, rhs_number_type, semantic_stack)
190 (semantic_type, state_stack, state_type, token_number_type, stack)
191 (slice, traits, parser::yylloc, parser::yylval): these.
192
193 * tests/calc.at, tests/regression.at, tests/actions.at: Adjust.
194
1952004-12-19 Paul Eggert <eggert@cs.ucla.edu>
196
197 * data/glr.c (YYLLOC_DEFAULT): Use GNU spacing conventions.
198 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
199
2002004-12-17 Paul Eggert <eggert@cs.ucla.edu>
201
202 Remove uses of 'short int' and 'unsigned short int'. This raises
203 some arbitrary limits. It uses more memory but nowadays that's
204 not much of an issue.
205
206 This change does not affect the generated parsers; that's a different
207 task, as some users will want to conserve memory there.
208
209 Ideally we should use size_t to represent all object counts, and
210 something like ptrdiff_t to represent signed differences of object
211 counts; but that will require more code-cleanup than I have the
212 time to do right now.
213
214 * src/LR0.c (allocate_itemsets, new_itemsets, save_reductions):
215 Use size_t, not int or short int, to count objects.
216 * src/closure.c (nritemset, closure): Likewise.
217 * src/closure.h (nritemset, closure): Likewise.
218 * src/nullable.c (nullable_compute): Likewise.
219 * src/print.c (print_core): Likewise.
220 * src/print_graph.c (print_core): Likewise.
221 * src/state.c (state_compare, state_hash): Likewise.
222 * src/state.h (struct state): Likewise.
223 * src/tables.c (default_goto, goto_actions): Likewise.
224
225 * src/gram.h (rule_number, rule): Use int, not short int.
226 * src/output.c (prepare_rules): Likewise.
227 * src/state.h (state_number, STATE_NUMBER_MAXIMUM, transitions,
228 errs, reductions): Likewise.
229 * src/symtab.h (symbol_number, SYMBOL_NUMBER_MAXIMUM, struct symbol):
230 Likewise.
231 * src/tables.c (vector_number, tally, action_number,
232 ACTION_NUMBER_MINIMUM): Likewise.
233 * src/output.c (muscle_insert_short_int_table): Remove.
234
2352004-12-17 Akim Demaille <akim@epita.fr>
236
237 * data/lalr1.cc: Extensive Doxygenation.
238 (error_): Rename as...
239 (error): this, since it is visible to the user.
240 Adjust callers.
241 (Parser::message): Now an automatic variable from...
242 (Parser::yyreport_syntax_error_): here.
243 * tests/actions.at, tests/calc.at, tests/regression.at: Adjust to
244 Parser::error.
245 * tests/input.at: Escape $.
246
2472004-12-16 Paul Eggert <eggert@cs.ucla.edu>
248
249 * data/glr.c (b4_lhs_value, b4_rhs_value, b4_rhs-location):
250 Parenthesize rhs to avoid obscure problems with mistakes like
251 "foo$$bar = foo$1bar;". Problem reported by twlevo at xs4all.
252 * data/lalr1.cc (b4_lhs_value, b4_rhs_value, b4_lhs_location,
253 b4_rhs_location): Likewise.
254 * data/yacc.c (b4_lhs_value, b4_rhs_value, b4_lhs_location,
255 b4_rhs_location): Likewise.
256
2572004-12-16 Akim Demaille <akim@epita.fr>
258
259 * data/lalr1.cc (yyreport_syntax_error_): Catch up with glr.c and
260 yacc.c: be sure to stay within yycheck_.
261 * tests/actions.at: Re-enable C++ tests.
262
2632004-12-16 Akim Demaille <akim@epita.fr>
264
265 * src/print_graph.c (print_graph): Remove layoutalgorithm uses for
266 real.
267
2682004-12-16 Akim Demaille <akim@epita.fr>
269
270 Use #define to handle the %name-prefix.
271
272 * data/glr.c, data/yacc.c: Comment changes.
273 * data/lalr1.cc (yylex): Use #define to select the name of yylex,
274 so that one can refer to yylex in the parser file, and have it
275 renamed, as is the case with other skeletons.
276
2772004-12-16 Akim Demaille <akim@epita.fr>
278
279 Move lalr1.cc internals into yy*.
280
281 * data/lalr1.cc (semantic_stack_, location_stack_, state_stack_)
282 (semantic_stack_, location_stack_, pact_, pact_ninf_, defact_)
283 (pgoto_, defgoto_, table_, table_ninf_, check_, stos_, r1_, r2_)
284 (name_, rhs_, prhs_, rline_, token_number_, eof_, last_, nnts_)
285 (empty_, final_, terror_, errcode_, ntokens_)
286 (user_token_number_max_, undef_token_, n_, len_, state_, nerrs_)
287 (looka_, ilooka_, error_range_, nerrs_):
288 Rename as...
289 (yysemantic_stack_, yylocation_stack_, yystate_stack_)
290 (yysemantic_stack_, yylocation_stack_, yypact_, yypact_ninf_)
291 (yydefact_, yypgoto_, yydefgoto_, yytable_, yytable_ninf_)
292 (yycheck_, yystos_, yyr1_, yyr2_, yyname_, yyrhs_, yyprhs_)
293 (yyrline_, yytoken_number_, yyeof_, yylast_, yynnts_, yyempty_)
294 (yyfinal_, yyterror_, yyerrcode_, yyntokens_)
295 (yyuser_token_number_max_, yyundef_token_, yyn_, yylen_, yystate_)
296 (yynerrs_, yylooka_, yyilooka_, yyerror_range_, yynerrs_):
297 these.
298
2992004-12-15 Paul Eggert <eggert@cs.ucla.edu>
300
301 Fix some problems reported by twlevo at xs4all.
302 * src/symtab.c (symbol_new): Report an error if the input grammar
303 contains too many symbols. This is better than calling abort() later.
304 * src/vcg.h (enum layoutalgorithm): Remove. All uses removed.
305 (struct node, struct graph):
306 Rename member expand to stretch. All uses changed.
307 (struct graph): Remove member layoutalgorithm. All uses removed.
308 * src/vcg.c (get_layoutalgorithm_str): Remove. All uses removed.
309 * src/vcg_defaults.h (G_STRETCH): Renamed from G_EXPAND.
310 All uses changed.
311 (N_STRETCH): Rename from N_EXPAND. All uses changed.
312
3132004-12-15 Akim Demaille <akim@epita.fr>
314
315 * data/lalr1.cc: Normalize /** \brief ... */ to ///.
316 Add more Doxygen comments.
317 (symprint_, stack_print_, reduce_print_, destruct_, pop)
318 (report_syntax_error_, translate_): Rename as...
319 (yysymprint_, yystack_print_, yyreduce_print_, yydestruct_)
320 (yypop_, yyreport_syntax_error_, yytranslate_): this.
321
3222004-12-15 Akim Demaille <akim@epita.fr>
323
324 * data/lalr1.cc (lex_): Rename as...
325 (yylex_): this.
326 Move the trace here.
327 Take the %name-prefix into account.
328 Reported by Alexandre Duret-Lutz.
329
3302004-12-15 Akim Demaille <akim@epita.fr>
331
332 Simplify the C++ parser constructor.
333
334 * data/lalr1.cc (debug_): Rename as...
335 (yydebug_): so that the parser's internals are always in the yy*
336 pseudo namespace.
337 Adjust uses.
338 (b4_parse_param_decl): Remove the leading comma as it is now only
339 called as unique argument list.
340 (Parser::Parser): Remove the constructor accepting a location and
341 an initial debugging level.
342 Remove from the other ctor the argument for the debugging level.
343 (debug_level_type, debug_level, set_debug_level): New.
344
345 * tests/actions.at, tests/calc.at, tests/regression.at: Adjust
346 constructor calls.
347
3482004-12-15 Akim Demaille <akim@epita.fr>
349
350 Remove b4_root related material: failure experiment
351 (which goal was to allow to derive from a class).
352
353 * data/lalr1.cc (b4_root, b4_param, b4_constructor): Remove
354 definitions and uses.
355
3562004-12-14 Paul Eggert <eggert@cs.ucla.edu>
357
358 * data/glr.c (struct yyGLRStack): yyerror_range now has 3 items,
359 not 2, since it's not portable to subtract 1 from the start of an
360 array. The new item 0 is never set or used. All uses changed.
361
362 (yyrecoverSyntaxError): Use YYLLOC_DEFAULT instead of assuming
363 the default definition of YYLLOC_DEFAULT. Problem reported
364 by Frank Heckenbach.
365
3662004-12-12 Paul Eggert <eggert@cs.ucla.edu>
367
368 * data/glr.c (YYRHSLOC): Don't have two definitions, one for
369 the normal case and one for the error case. Just use the
370 first one uniformly. Problem reported by Frank Heckenbach.
371 (YYLLOC_DEFAULT): Use the conventions of yacc.c, so we can
372 use exactly the same macro in both places.
373 (yyerror_range): Now of type yyGLRStackItem, not YYLTYPE,
374 so that the normal-case YYRHSLOC works for the error case too.
375 All uses changed.
376 * data/yacc.c (YYRHSLOC): New macro, taken from glr.c.
377 (YYLLOC_DEFAULT): Use the same macro as glr.c.
378 * doc/bison.texinfo (Location Default Action): Don't claim that
379 we have an array of locations. Use the same macro for both glr
380 and lalr parsers. Mention YYRHSLOC. Mention what happens when
381 the index is 0.
382
3832004-12-10 Paul Eggert <eggert@cs.ucla.edu>
384
385 * HACKING: Update email addresses to send announcements to.
386
387 * configure.ac (AC_INIT): Bump version to 1.875f.
388
3892004-12-10 Paul Eggert <eggert@cs.ucla.edu>
390
391 * NEWS: Version 1.875e.
392 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875e.
393
394 * src/scan-skel.l: Include "complain.h", for "fatal".
395
396 * src/relation.h (relation_print, relation_digraph):
397 Relation sizes are of type relation_node, not size_t (this is
398 merely a doc fix, since the two types are equivalent).
399 (relation_transpose): Relation sizes are of type relation_node,
400 not int.
401 * src/relation.c: Likewise.
402 (top, infinity): Now of type relation_node, not int.
403 (traverse, relation_transpose): Use relation_node, not int.
404
405 * data/glr.c (yyuserAction, yyrecoverSyntaxError): Mark args
406 with ATTRIBUTE_UNUSED if they're not used, to avoid GCC warning.
407 (yyparse): Remove unused local introduced in 2004-10-25 patch.
408
409 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): New arg
410 specifying whether the test should be skipped. Use it tp
411 specify that the [%defines %skeleton "lalr1.cc"] tests currently
412 fail on some hosts, and should be skipped.
413
4142004-12-08 Paul Eggert <eggert@cs.ucla.edu>
415
416 * src/system.h (CALLOC, MALLOC, REALLOC): Remove. All callers
417 changed to use xcalloc, xnmalloc, xnrealloc, respectively,
418 unless otherwise specified below.
419
420 * src/LR0.c (allocate_itemsets): Use xnmalloc, not xcalloc,
421 to allocate kernel_base, kernel_items, kernel_size, since
422 they needn't be initialized to 0.
423 (allocate_storgae): Likewise, for shiftset, redset, shift_symbol.
424 * src/closure.c (new_closure): Likewise, for itemset.
425 * src/derives.c (derives_compute): Likewise, for delts, derives, q.
426 * src/lalr.c (set_goto_map): Likewise, for temp_map.
427 (initialize_F): Likewise, for reads, edge, reads[i], includes[i].
428 (build_relations): Likewise for edge, states1, includes.
429 * src/nullable.c (nullable_compute): Likewise, for squeue, relts.
430 * src/reader.c (packgram): Likewise, for ritem, rules.
431 * src/reduce.c (nonterminals_reduce): Likewise for nontermmap.
432 * src/relation.c (relation_digraph): Likewise for VERTICES.
433 (relation_transpose): Likewise for new_R, end_R.
434 * src/symtab.c (symbols_token_translations_init): Likewise for
435 token_translations.
436 * src/tables.c (save_row): Likewise for froms, tos, conflict_tos.
437 (token_actions): Likewise for yydefact, actrow, conflrow,
438 conflict_list.
439 (save_column): Likewise for froms[symno], tos[symno].
440 (goto_actions): Likewise for state_count.
441 (pack_table): Likewise for base, pos, check.
442 (tables_generate): Likewise for width.
443
444 * src/LR0.c (set_states): Don't reuse kernel_size and kernel_base
445 for initial core. Just have a separate core, so we needn't worry
446 about whether kernel_size and kernel_base are initialized.
447
448 * src/LR0.c (shift_symbol, redset, shiftset, kernel_base,
449 kernel_size, kernel_items): Remove unnecessary initialization.
450 * src/conflicts.c (conflicts): Likewise.
451 * src/derives.c (derives): Likewise.
452 * src/muscle_tablc (muscle_insert): Likewise.
453 * src/relation.c (relation_digraph): Likewise.
454 * src/tables.c (froms, tos, conflict_tos, tally, width, actrow, order,
455 conflrow, conflict_table, conflict_list, table, check):
456 Likewise.
457
458 * src/closure.c (new_closure): Arg is of type unsigned int, not int.
459 This is because all callers pass unsigned int.
460 * src/closure.h (new_closure): Likewise.
461
462 * src/lalr.c (initialize_F): Initialize reads[i] in all cases.
463 (build_relations): Initialize includes[i] in all cases.
464 * src/reader.c (packgram): Always initialize rules[ruleno].prec
465 and rules[ruleno].precsym. Initialize members in order.
466 * src/relation.c (relation_transpose): Always initialize new_R[i]
467 and end_R[i].
468 * src/table.c (conflict_row): Initialize 0 at end of conflict_list.
469
470 * src/output.c (prepare_actions): Pass 0 instead of conflict_list[0];
471 conflict_list[0] was always 0, but now it isn't initialized.
472
473 * src/table.c (table_grow): When conflict_table grew, the grown
474 area wasn't cleared. Fix this.
475
476 * lib/.cvsignore: Add strdup.c, strdup.h.
477 * m4/.cvsignore: Add strdup.m4.
478
4792004-12-07 Paul Eggert <eggert@cs.ucla.edu>
480
481 * src/lalr.h (GOTO_NUMBER_MAXIMUM): New macro.
482 * src/lalr.c (set_goto_map): Don't allow ngotos to equal
483 GOTO_NUMBER_MAXIMUM, since we occasionally compute
484 ngotos + 1 without checking for overflow.
485 (build_relations): Use END_NODE, not -1, to denote end of edges.
486 * src/lalr.c (set_goto_map, map_goto, initialize_F, add_loopback_edge,
487 build_relations): Use goto_number, not int, for goto numbers.
488 * src/tables.c (save_column, default_goto): Likewise.
489
4902004-11-23 Akim Demaille <akim@epita.fr>
491
492 * data/lalr1.cc (YYSTYPE): Define it as is done for C, instead
493 of #defining from yystype.
494 Don't typedef yystype, C++ does not need it.
495 This lets it possible to forward declare it as union.
496
4972004-11-23 Paul Eggert <eggert@cs.ucla.edu>
498
499 * bootstrap (gnulib_modules): Add extensions.
500 Problem reported by Jim Meyering.
501
5022004-11-22 Paul Eggert <eggert@cs.ucla.edu>
503
504 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c,
505 src/lalr.c, src/nullable.c, src/relation.c, src/scan-skel.l,
506 src/system.h, src/tables.c: XFREE -> free, to accommodate
507 recent change to gnulib xalloc.h.
508 Problem reported by Jim Meyering.
509
5102004-11-17 Akim Demaille <akim@epita.fr>
511
512 * data/lalr1.cc (symprint_): Use cdebug_ to avoid warnings.
513
5142004-10-28 Akim Demaille <akim@epita.fr>,
515 Alexandre Duret-Lutz <adl@gnu.org>
516
517 * data/lalr1.cc (Parser::yycdebug_): New, a pointer, to allow
518 changes.
519 (YYCDEBUG): Adjust.
520 Use it instead of cdebug_.
521 (Parser::debug_stream, Parser::set_debug_stream): New.
522 (Parser::symprint_): Define cdebug_ for temporary backward
523 compatibility.
524 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use
525 debug_stream ().
526
5272004-11-17 Akim Demaille <akim@epita.fr>
528
529 * data/lalr1.cc (Parser:print_): Remove, use %printer instead.
530 * tests/regression.at (_AT_DATA_DANCER_Y): Adjust.
531 * tests/calc.at (_AT_DATA_CALC_Y): Ditto.
532 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
533
5342004-10-27 Paul Eggert <eggert@cs.ucla.edu>
535
536 * data/glr.c (yyloc_default): Remove; not used.
537 Problem reported by Frank Heckenbach.
538
5392004-10-25 Akim Demaille <akim@epita.fr>
540
541 * data/glr.c (YYRHSLOC): Move its definition next to its uses.
542 Introduce another definition to address simple location arrays.
543 (yyGLRStack): New member: yyerror_range.
544 (yyrecoverSyntaxError, yyparse): Update it.
545 (yyrecoverSyntaxError): Use it when shifting the error token to
546 have an accurate range, equivalent to the one computed by both
547 yacc.c and lalr1.cc.
548 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Change its yylex so
549 that column numbers start at column 0, as per GNU Coding
550 Standards, the others tests, and the doc.
551 (_AT_RESOLVED_GLR_OUTPUT_WITH_LOC, _AT_AMBIG_GLR_OUTPUT_WITH_LOC):
552 Adjust to the above change (first column is 0).
553 And adjust the location of the "<error>", now covering the whole
554 line.
555
5562004-10-22 Akim Demaille <akim@epita.fr>
557 and Paul Eggert <eggert@cs.ucla.edu>
558
559 Remove some arbitrary limits on goto numbers and relations.
560 * src/lalr.c (goto_map, ngotos, from_state, to_state): Omit
561 initial values, since they're never used.
562 (set_goto_map): ngotos is now unsigned, so test for overflow
563 by seeing whether it wraps around to zero.
564 * src/lalr.h (goto_number): Now size_t, not short int.
565 (GOTO_NUMBER_MAXIMUM): Remove.
566 * src/relation.c (relation_print, traverse, relation_transpose):
567 Check for END_NODE rather than looking at sign.
568 * src/relation.h (END_NODE): New macro.
569 (relation_node): Now size_t, not short int.
570
5712004-10-22 Paul Eggert <eggert@cs.ucla.edu>
572
573 * doc/bison.texinfo (Language and Grammar): In example, "int" is a
574 keyword, not an identifier. Problem reported by Baron Schwartz in
575 <http://lists.gnu.org/archive/html/bug-bison/2004-10/msg00017.html>.
576
5772004-10-11 Akim Demaille <akim@epita.fr>
578
579 * src/symtab.c (symbol_check_alias_consistency): Also check
580 type names, destructors, and printers.
581 Reported by Alexandre Duret-Lutz.
582 Recode the handling of associativity and precedence in terms
583 of symbol_precedence_set.
584 Accept no redeclaration at all, not even equal to the previous
585 value.
586 (redeclaration): New.
587 Use it to factor redeclaration complaints.
588 (symbol_make_alias): Don't set the type of the alias, let
589 symbol_check_alias_consistency do it as for other features.
590 * src/symtab.h (symbol): Add new member prec_location, and
591 type_location.
592 * src/symtab.c (symbol_precedence_set, symbol_type_set): Set them.
593 * tests/input.at (Incompatible Aliases): New.
594
5952004-10-09 Paul Eggert <eggert@cs.ucla.edu>
596
597 .cvsignore fixes to accommodate gnulib changes,
598 and the practice of naming build directories "_build".
599 * .cvsignore: Add "_*". Sort.
600 * lib/.cvsignore: Add getopt_.h, xalloc-die.c.
601 * m4/.cvsignore: Add "*_gl.m4".
602
6032004-10-06 Akim Demaille <akim@epita.fr>
604
605 * src/parse-gram.y (add_param): Fix the truncation of trailing
606 spaces.
607
6082004-10-05 Akim Demaille <akim@epita.fr>
609
610 In Bison 1.875's yacc.c, YYLLOC_DEFAULT was called regardless
611 whether the reducion was empty or not. This leaves room to
612 improve the use of YYLLOC_DEFAULT in such a case.
613 lalr1.cc is still experimental, so changing this is acceptable.
614 And finally, there are probably not many users who changed the
615 handling of locations in GLR, so changing is admissible too.
616
617 * data/glr.c, data/lalr1.cc, data/yacc.c (YYLLOC_DEFAULT): On an
618 empty reduction, set @$ to an empty location ending the previously
619 stacked symbol.
620 Adjust uses to make sure the code is triggered on empty
621 reductions.
622 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust the
623 expected output: empty reductions have empty locations.
624
6252004-09-29 Akim Demaille <akim@epita.fr>
626
627 * data/lalr1.cc: Move towards a more standard C++ coding style
628 for templates: Class < T > -> Class<T>.
629
6302004-09-29 Akim Demaille <akim@epita.fr>
631
632 * data/lalr1.cc: Reinstall the former ctor, for sake of
633 compatibility, but warn it will be removed.
634 Move towards a more standard C++ coding style (i.e., type *var ->
635 type* var).
636
6372004-09-27 Paul Eggert <eggert@cs.ucla.edu>
638
639 * src/parse-gram.y (add_param): Rewrite to avoid strchr,
640 since it's less likely to work if NULs are involved in the future.
641
6422004-09-27 Akim Demaille <akim@epita.fr>
643
644 * data/yacc.c (YY_LOCATION_PRINT): Fix its default declaration.
645
6462004-09-27 Akim Demaille <akim@epita.fr>
647
648 * data/lalr1.cc (b4_parse_param_decl_1): New.
649 (b4_parse_param_decl): Use it to have different names between attribute
650 and argument names.
651 (b4_cc_constructor_call): Likewise.
652
6532004-09-24 Akim Demaille <akim@epita.fr>
654
655 * src/parse-gram.y (add_param): Strip the leading and trailing
656 blanks from a formal argument declaration.
657 (YY_LOCATION_PRINT): New.
658
6592004-09-24 Akim Demaille <akim@epita.fr>
660
661 * data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation
662 after the location.
663
6642004-09-24 Akim Demaille <akim@epita.fr>
665
666 * doc/bison.texinfo (Table of Symbols): Sort.
667
6682004-09-21 Akim Demaille <akim@epita.fr>
669
670 * data/yacc.c, data/glr.c (b4_at_dollar, b4_dollar_dollar): Remove
671 the useless parentheses.
672 Suggested by Paul Eggert.
673
6742004-09-20 Akim Demaille <akim@epita.fr>
675
676 Let the initial-action act on the look-ahead, and use it for the
677 "initial push" (corresponding to an hypothetical beginning-of-file).
678 And let lalr1.cc honor %initial-action.
679
680 * doc/bison.texinfo (Initial Action Decl): Clarify, and add an
681 example.
682 * data/lalr1.cc (Parser::initlocation_): Remove, bad experiment.
683 (Parser::Parser): Remove the ctor that used to initialize it.
684 (Parser::parse): Like in the other skeletons, issue the "starting
685 parse" message before any action.
686 Honor %initial-action.
687 Initialize the stacks with the lookahead.
688 * data/yacc.c: Let $$ and @$ in %initial-action designate the
689 look-ahead.
690 Push them in the stacks.
691 * tests/actions.at, tests/calc.at: Adjust the C++ ctor invocations.
692
6932004-09-20 Akim Demaille <akim@epita.fr>
694
695 * doc/bison.texinfo (Initial Action Decl): New.
696
6972004-09-20 Akim Demaille <akim@epita.fr>
698
699 * data/yacc.c (YY_LOCATION_PRINT): Use YYLTYPE_IS_TRIVIAL as a
700 clearer criterion to define it.
701 (parse): Initialize the initial location when YYLTYPE_IS_TRIVIAL.
702 When reducing on an empty RHS, use the latest stacked location as
703 location.
704 yylloc is not always available.
705 * data/glr.c: Likewise.
706 Also, honor initial-actions.
707
7082004-09-20 Akim Demaille <akim@epita.fr>
709
710 * data/yacc.c (YY_LOCATION_PRINT): New.
711 Define when we know YYLTYPE's structure, i.e., when the default
712 YYLLOC_DEFAULT is used.
713 * data/c.m4 (b4_yysymprint_generate): Use it.
714 * data/lalr1.cc (YYLLOC_DEFAULT): Stop relying on the initial
715 value of the result.
716 (error_start_): Replace with...
717 (error_range_): this location array.
718 This allows to replace code relying on the implementation of
719 locations by portable code.
720 * data/yacc.c (yylerrsp): Replace with...
721 (yyerror_range): this.
722 Every time a token is popped, update yyerror_range[0], to have an
723 accurate location for the error token.
724 * data/glr.c (YY_LOCATION_PRINT): New.
725 (yyprocessOneStack): Fix an invocation of YY_SYMBOL_PRINT:
726 deference a pointer.
727 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): No longer
728 report the location in %printers.
729
730 * src/scan-skel.l: Instead of abort, report error messages to ease
731 understanding skeleton scanning failures.
732
7332004-09-16 Akim Demaille <akim@epita.fr>
734
735 * data/lalr1.cc (Stack::Iterator, Stack::ConstIterator): Rename as...
736 (iterator, const_iterator): these, to be more in the C++ spirit.
737 Also, return reverse iterators so that when displaying the stack
738 we display its bottom first.
739 (Parser::stack_print_, Parser::reduce_print_): Match the messages
740 from yacc.c.
741 We should probably use vector here though.
742
7432004-09-16 Akim Demaille <akim@epita.fr>
744
745 Have more complete shift traces.
746
747 * data/yacc.c, data/lalr1.c, data/glr.c: Use YY_SYMBOL_PRINT
748 to report Shifts instead of ad hoc YYDPRINTF invocations,
749 including for the error token.
750 * data/lalr1.cc (symprint_): Output the location.
751 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): In C++, don't
752 output the location within the %printer.
753 Activate GLR tests, at least to make sure they compile properly.
754 They still don't pass though.
755 * tests/calc.at: Adjust expect verbose output, since now "Entering
756 state..." is on a different line than the "Shifting" message.
757
7582004-09-08 Akim Demaille <akim@epita.fr>
759
760 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Move the
761 Bison directive from the Bison file to the invocation of this
762 macro, so that these directives are passed to
763 AT_BISON_OPTION_PUSHDEFS to get correct help macros.
764 Use these helping macros (e.g., AT_LOC, AT_VAL and so forth).
765 Move the AT_SETUP/AT_CLEANUP outside, to report as test title
766 the extra Bison directives instead of the whole series.
767 Change the grammar so that there are recoverable errors, and
768 unrecoverable errors. Now we can have the parser give up before
769 consuming the whole input. As a result we now can observe that
770 the lookahead is freed when needed.
771 Change the parser source to parse argv[1] instead of a hard coded
772 string.
773 Simplify yylex, and give a value and location to EOF.
774 Simplify some invocations of AT_CHECK_PRINTER_AND_DESTRUCTOR that
775 passed directives already coded in the file.
776 Add some tests to check the location of "error".
777 For some tests, the C++ parser is correct, and not yacc.c.
778 For other tests, they provide different, but unsatisfying, values,
779 so keep the C++ value so that at least one parser is "correct"
780 according to the test suite.
781 (Actions after errors): Remove, this is subsumed by the
782 AT_CHECK_PRINTER_AND_DESTRUCTOR series.
783
7842004-09-06 Akim Demaille <akim@epita.fr>
785
786 * data/lalr1.cc: Adjust the indentation of the labels.
787 (Parser::pop): New.
788 Use it.
789
7902004-09-06 Akim Demaille <akim@epita.fr>
791
792 * data/yacc.cc, data/glr.cc (yydestruct): Accept an additional
793 argument, an informative message.
794 Call YY_SYMBOL_PRINT.
795 Adjust all callers: integrate the associated YY_SYMBOL_PRINT.
796 * data/lalr1.cc (destruct_): Likewise.
797 In addition, no longer depend on b4_yysymprint_generate and
798 b4_yydestruct_generate to generate these functions, do it "by
799 hand".
800
8012004-09-03 Akim Demaille <akim@epita.fr>
802
803 * data/glr.c, data/lalr1.cc, data/yacc.c: When YYABORT was
804 invoked, yydestruct the lookahead.
805 * tests/calc.at (Calculator $1): Update the expected lengths of
806 traces: there is an added line for the discarded lookahead.
807 * doc/bison.texinfo (Destructor Decl): Some rewording.
808 Define "discarded" symbols.
809
8102004-09-02 Akim Demaille <akim@epita.fr>
811
812 * data/lalr1.cc (translate_, destruct_): No reason to be static.
813
8142004-09-02 Akim Demaille <akim@epita.fr>
815
816 * data/glr.c, yacc.c (YYDSYMPRINT): Remove, not used.
817 (YYDSYMPRINTF): Rename as...
818 (YY_SYMBOL_PRINT): this.
819 * data/lalr1.cc (YY_SYMBOL_PRINT): New, modeled after the previous
820 two.
821 Use it instead of direct symprint_ calls.
822 (yybackup): Tweak the "Now at end of input" case to match yacc.c's
823 one.
824
8252004-09-02 Akim Demaille <akim@epita.fr>
826
827 * data/lalr1.cc (b4_yysymprint_generate): New.
828 (symprint_): New member function, defined when YYDEBUG.
829 Use it consistently instead of token/nterm debugging output by
830 hand.
831 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust
832 %printer calls to use cdebug_ when using lalr1.cc.
833
8342004-08-30 Florian Krohm <florian@edamail.fishkill.ibm.com>
835
836 * data/glr.c: Guard the declarations of yypstack and yypdumpstack
837 with #ifdef YYDEBUG.
838
8392004-08-26 Akim Demaille <akim@epita.fr>
840
841 * doc/bison.texinfo (Implementing Loops): Rename as...
842 (Implementing Gotos/Loops): this.
843
8442004-08-13 Paul Eggert <eggert@cs.ucla.edu>
845
846 Adjust to latest gnulib.
847 * bootstrap (gnulib_modules): Add xalloc-die.
848 Set LC_ALL=C so that file names sort consistently.
849 Prefer the gnulib copies of gettext.m4, glibc21.m4,
850 inttypes_h.m4, lib-ld.m4, lib-prefix.m4, po.m4, stdint_h.m4,
851 uintmax_t.m4, ulonglong.m4.
852 (intl_files_to_remove): Add gettext.m4, lib-ld.m4, lib-prefix.m4,
853 po.m4 since we are now using _gl.m4 instead.
854
8552004-08-10 Florian Krohm <florian@edamail.fishkill.ibm.com>
856
857 * src/scan-action.l: Remove. Scanning of semantic actions is
858 handled in scan-gram.l.
859
8602004-08-07 Florian Krohm <florian@edamail.fishkill.ibm.com>
861
862 * src/scan-gram.l (handle_syncline): Use uniqstr_new not xstrdup.
863
864 * src/location.h (struct): The file member is a uniqstr.
865 (equal_boundaries): Use UNIQSTR_EQ for comparison.
866
8672004-07-22 Paul Eggert <eggert@cs.ucla.edu>
868
869 Fix bug with non-%union parsers that have printers or destructors,
870 which led to a Bison core dump. Reported by Peter Fales in
871 <http://lists.gnu.org/archive/html/bug-bison/2004-07/msg00014.html>.
872
873 * data/c.m4 (b4_symbol_actions): Don't assume %union was used.
874 * data/lalr1.cc (yystype) [defined YYSTYPE]: Define to YYSTYPE,
875 not to our own type.
876 * src/output.c (symbol_destructors_output, symbol_printers_output):
877 Don't assume %union.
878 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR,
879 AT_CHECK_PRINTER_AND_DESTRUCTOR): New argument
880 UNION-FLAG. All callers changed.
881 (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't assume %union.
882 Use type char, not unsigned int, when declaring an array of char;
883 this lets us remove a cast.
884 (Printers and Destructors): Add non-%union test cases.
885
8862004-06-21 Paul Eggert <eggert@cs.ucla.edu>
887
888 * doc/bison.texinfo: Minor editorial changes, mostly to the new
889 GLR writeups. E.g., avoid frenchspacing and the future tense,
890 change "lookahead" to "look-ahead", and change "wrt" to "with
891 respect to".
892
8932004-06-21 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
894
895 * doc/bison.texinfo (Merging GLR Parses, Compiler Requirements):
896 New sections, split off from the GLR Parsers section. Put the new
897 Simple GLR Parser near the start of the GLR section, for clarity.
898 Rewrite connective text.
899
9002004-06-21 Frank Heckenbach <frank@g-n-u.de>
901
902 * doc/bison.texinfo (Simple GLR Parsers): New section.
903
9042004-06-21 Paul Eggert <eggert@cs.ucla.edu>
905
906 * NEWS, TODO, doc/bison.texinfo:
907 Use "look-ahead" instead of "lookahead", to be consistent.
908 * REFERENCES: Fix incorrect reference to DeRemer and Pennello,
909 while we're fixing "look-ahead".
910 * src/conflicts.c (shift_set): Renamed from shiftset.
911 (look_ahead_set): Renamed from lookaheadset.
912 * src/print.c: Likewise.
913 * src/getargs.c (report_args): Add "look-ahead" as the new canonical
914 name for "lookahead".
915 (report_types, usage): Likewise.
916 * src/getargs.h (report_look_ahead_tokens): Renamed from
917 report_lookaheads.
918 * src/lalr.c (compute_look_ahead_tokens): Renamed from
919 compute_lookaheads.
920 (state_look_ahead_tokens_count): Renamed from state_lookaheads_count.
921 (look_ahead_tokens_print): Renamed from lookaheads_print.
922 * src/state.c (state_rule_look_ahead_tokens_print): Renamed from
923 state_rule_lookaheads_print.
924 * src/state.h: Likewise.
925 (reductions.look_ahead_tokens): Renamed from lookaheads.
926 * tests/torture.at (AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR): Renamed from
927 AT_DATA_LOOKAHEADS_GRAMMAR.
928
9292004-06-03 Paul Eggert <eggert@cs.ucla.edu>
930
931 * README: Update location of patched M4 distribution.
932
9332004-05-30 Albert Chin-A-Young <china@thewrittenword.com>
934
935 Don't assume the C++ compiler takes the same arguments as the C compiler
936 (trivial change).
937 * configure.ac (O0CXXFLAGS): New var.
938 * tests/atlocal.in (CXXFLAGS): Use it.
939
9402004-05-29 Paul Eggert <eggert@cs.ucla.edu>
941
942 Fix some "make check" problems with C++ reported by
943 Albert Chin-A-Young for Tru64 C++ in this thread:
944 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00049.html
945
946 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check for std::cerr.
947 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
948 Output to a .cc file for C++, not to a .c file.
949 * tests/calc.at (AT_CHECK_CALC): Likewise.
950 * tests/regression.at (AT_CHECK_DANCER): Likewise.
951 * tests/local.at (AT_COMPILE_CXX): Default to OUTPUT.cc, not OUTPUT.c.
952
9532004-05-28 Albert Chin-A-Young <china@thewrittenword.com>
954
955 * tests/calc.at, tests/actions.at: Workaround for SGI
956 C++ compiler. (trivial change)
957
9582004-05-27 Paul Eggert <eggert@cs.ucla.edu>
959
960 Spent a few hours checking out which prerequisite versions the
961 current sources actually require. I went all the way back to
962 Gettext 0.10.40, Automake 1.4, and Autoconf 2.57 and investigated
963 a seemingly endless set of combinations of versions more recent
964 than that. The bottom line is that the current sources require
965 fairly recent versions of the build tools, and it'll be some work
966 to change this.
967 * configure.ac (AC_PREREQ): Increase from 2.58 to 2.59.
968 (AM_INIT_AUTOMAKE): Increase from 1.7 to 1.8.
969 (AM_GNU_GETTEXT_VERSION): Increase from 0.11.5 to 0.12.
970 Add comments explaining why those particular versions are
971 currently needed.
972
973 * src/parse-gram.y (lloc_default): Rewrite to avoid compiler bug
974 in SGI MIPSpro 7.4.1m. Problem reported by Albert Chin-A-Young in
975 <http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00037.html>.
976
977 * configure.ac (AC_PREREQ): Bump to 2.58, since 2.57 doesn't work
978 (it fails with a Autoconf-without-aclocal-m4 diagnostic).
979
9802004-05-26 Paul Eggert <eggert@cs.ucla.edu>
981
982 * configure.ac (AM_GNU_GETTEXT_VERSION): Lower it from 0.14.1 to
983 0.11.5. Suggested by Bruno Haible.
984 * bootstrap: Remove gettext version checking.
985
986 * doc/bison.texinfo (Decl Summary): Also mention that %union
987 can depend on prerequisite types. Problem reported by Tim
988 Van Holder.
989
9902004-05-25 Paul Eggert <eggert@cs.ucla.edu>
991
992 * README: Mention GNU m4 1.4 bugs and Akim's patched version.
993 * README-alpha: Don't tell people not to package this.
994
995 * bootstrap: Don't assume $(...) works; use `...` instead.
996 Problem reported by Paul Hilfinger. Also, diagnose non-GNU
997 gettext better.
998
999 * doc/bison.texinfo (Decl Summary, Bison Options): Clarify what's
1000 put into the -d output file, and mention what to do if YYSTYPE is
1001 defined as a macro.
1002
10032004-05-24 Paul Eggert <eggert@cs.ucla.edu>
1004
1005 Undo change made earlier today: it caused autopoint to not bring
1006 in ABOUT-NLS. Ouch. Instead, substitute our own diagnostic for
1007 autopoint's.
1008
1009 * bootstrap: Check that gettext version matches what's in
1010 configure.ac. Warn users to ignore robots.txt ERROR 404.
1011 * bootstrap: Undo today's earlier change (logged below).
1012 * configure.ac (AM_GNU_GETTEXT_VERSION): Likewise.
1013
1014 The gettext version checking is causing more trouble than it's
1015 curing; remove it. Problem reported by Paul Hilfinger.
1016
1017 * bootstrap: Issue a warning that one can expect a message
1018 'AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION'.
1019 * configure.ac (AM_GNU_GETTEXT_VERSION): Remove.
1020
10212004-05-23 Paul Eggert <eggert@cs.ucla.edu>
1022
1023 Ensure that the C++ compiler used for testing actually works on a
1024 simple test program; if not, skip the C++-related tests. Problem
1025 reported by Vin Shelton in:
1026 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00026.html
1027
1028 * m4/cxx.m4: New file.
1029 * configure.ac (BISON_TEST_FOR_WORKING_CXX_COMPILER): Add.
1030 * tests/atlocal.in (BISON_CXX_WORKS): Add.
1031 * tests/local.at (AT_COMPILE_CXX): Use it.
1032
10332004-05-21 Paul Eggert <eggert@cs.ucla.edu>
1034
1035 * data/glr.c (yylloc): Output this macro even if locations are not
1036 being generated, as the GLR parser needs it even in that case.
1037 Problem reported by Troy A. Johnson
1038 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=195946>.
1039
1040 * configure.ac (AC_INIT): Update to 1.875e.
1041
10422004-05-21 Paul Eggert <eggert@cs.ucla.edu>
1043
1044 * NEWS: Version 1.875d.
1045 * configure.ac (AC_INIT): Likewise.
1046 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875d.
1047
1048 * configure.ac (--enable-gcc-warnings): Do not enable -Wshadow,
1049 -Wmissing-prototypes, or -Wstrict-prototypes for C++. The current
1050 lalr1.cc runs afoul of the first, and the last two are no longer
1051 supported by GCC 3.4.0.
1052 * README: Mention GNU m4 1.4 or later; mention m4 patches.
1053 * HACKING: Use ./bootstrap, not "make update" to import foreign files.
1054
10552004-05-06 Paul Eggert <eggert@cs.ucla.edu>
1056
1057 * src/muscle_tab.c (hash_muscle): Accept and return size_t, not
1058 unsigned int, for compatibility with latest gnulib hash module.
1059 * src/state.c (state_hash, state_hasher): Likewise.
1060 * src/symtab.c (hash_symbol, hash_symbol_hasher): Likewise.
1061 * src/uniqstr.c (hash_uniqstr): Likewise.
1062
10632004-05-03 Paul Eggert <eggert@cs.ucla.edu>
1064
1065 * NEWS: Unescaped newlines are no longer allowed in char & strings.
1066
1067 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER,
1068 SC_CHARACTER,SC_STRING>): Reject unescaped newlines in
1069 character and string literals.
1070 (unexpected_end): New function.
1071 (unexpected_eof): Use it.
1072 (unexpected_newline): New function.
1073 (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>): Coalesce duplicate
1074 actions.
1075
1076 * NEWS: Document %expect-rr.
1077
1078 * bootstrap (--gnulib-srcdir=*, --cvs-user=*):
1079 Fix typo by replacing $1 with $option.
1080 Remove more 'intl'-related files.
1081 Don't DEFUN AM_INTL_SUBDIR twice.
1082
1083 * lib/.cvsignore: Add strndup.h. Remove memchr.c, memcmp.c,
1084 memrchr.c, strcasecmp.c, strchr.c, strrchr.c, strspn.c, strtol.c,
1085 strtoul.c.
1086 * m4/.cvsignore: Add exitfail.m4, extensions.m4, gnulib.m4,
1087 hard-locale.m4, mbstate_t.m4, strerror_r.m4, strndup.m4,
1088 xstrndup.m4. Remove glibc21.m4, intdiv0.m4, inttypes-pri.m4,
1089 inttypes.m4, inttypes_h.m4, isc-posix.m4, lcmessage.m4,
1090 stdint_h.m4, uintmax_t.m4, ulonglong.m4.
1091 * src/.cvsignore: Add *.output.
1092
1093 * src/parse-gram.y: Put copyright notice inside %{ %} so it
1094 gets copied to the output file.
1095
10962004-04-28 Paul Eggert <eggert@twinsun.com>
1097
1098 Get files from the gnulib and po repositories, instead of relying
1099 on them being in our CVS. Upgrade to latest versions of gnulib
1100 and Automake.
1101
1102 * Makefile.am (SUBDIRS): Remove m4; Automake now does m4.
1103 * bootstrap: Bootstrap from gnulib and po repositories.
1104 Much of this code was stolen from GNU diff and GNU tar's bootstrap.
1105 * README-cvs: Document these changes. Remove version numbers from
1106 mentions of build tools, since they change so often. Mention Flex.
1107
1108 * configure.ac (AC_CONFIG_MACRO_DIR): Add, with m4 as arg.
1109 (gl_USE_SYSTEM_EXTENSIONS): Add.
1110 (AC_GNU_SOURCE, AC_AIX, AC_MINIX):
1111 Remove; no longer needed, as gl_USE_SYSTEM_EXTENSIONS
1112 does this for us.
1113 (AC_ISC_POSIX): Remove; we no longer support this
1114 ancient OS, as it gets in the way of latest Autoconf & gnulib.
1115 (AC_HEADER_STDC): Remove: we now assume C89 or better.
1116 (AC_CHECK_HEADERS_ONCE): Use instead of AC_CHECK_HEADERS.
1117 Do not check for C89 headers, except for locale.h which is used
1118 by the Yacc library and must port to K&R hosts.
1119 (AC_CHECK_FUNCS_ONCE): Use instead of AC_CHECK_FUNCS.
1120 Do not check for C89 functions, except for setlocale which is
1121 used by the Yacc library.
1122 (AC_CHECK_DECLS, AC_REPLACE_FUNCS): Remove; no longer needed.
1123 (gl_DIRNAME, gl_ERROR, gl_FUNC_ALLOCA, gl_FUNC_MEMCHR,
1124 gl_FUNC_MEMRCHR, gl_FUNC_STPCPY, gl_FUNC_STRNLEN, gl_FUNC_STRTOL,
1125 gl_GETOPT, gl_HASH, gl_MBSWIDTH, gl_OBSTACK, gl_QUOTE,
1126 gl_QUOTEARG, gl_XALLOC, jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_MALLOC,
1127 AM_GNU_GETTEXT): Remove; now done by:
1128 (GNULIB_AUTOCONF_SNIPPET): Add. "bootstrap" builds this for us.
1129 (AC_CONFIG_FILES): Remove m4/Makefile, as Automake now does this
1130 for us.
1131
1132 * lib/Makefile.am: Include gnulib.mk, built for us by "bootstrap".
1133 (BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES):
1134 Define to empty, as gnulib.mk will do the rest for us.
1135 ($(libbison_a_OBJECTS), stdbool.h): Remove, as gnulib.mk does this
1136 for us.
1137 (libbison_a_SOURCES): Define to $(lib_SOURCES) now.
1138 (lib_SOURCES): New symbol, containing only the non-gnulib libs.
1139
1140 * src/files.c: Include gnulib's xstrndup.h.
1141
1142 * src/system.h (MALLOC): Use xnmalloc, for better overflow checking.
1143 (REALLOC): Use xnrealloc, for likewise.
1144 (xstrndup, stpcpy): Remove decls, as gnulib does this for us now.
1145 (strnlen, memrchr): Remove decls; functions no longer used.
1146 Include <stpcpy.h>.
1147
1148 * config/depcomp, config/install-sh, lib/alloca.c, lib/argmatch.c,
1149 lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
1150 lib/error.c, lib/error.h, lib/getopt.c, lib/getopt.h,
1151 lib/getopt1.c, lib/gettext.h, lib/hash.c, lib/hash.h,
1152 lib/malloc.c, lib/mbswidth.c, lib/mbswidth.h, lib/memchr.c,
1153 lib/memcmp.c, lib/memrchr.c, lib/obstack.c, lib/obstack.h,
1154 lib/quote.c, lib/quote.h, lib/quotearg.c, lib/quotearg.h,
1155 lib/realloc.c, lib/stdbool_.h, lib/stpcpy.c, lib/strcasecmp.c,
1156 lib/strchr.c, lib/strncasecmp.c, lib/strnlen.c, lib/strrchr.c,
1157 lib/strspn.c, lib/strtol.c, lib/strtoul.c, lib/unlocked-io.h,
1158 lib/xalloc.h, lib/xmalloc.c, lib/xstrdup.c, lib/xstrndup.c,
1159 m4/Makefile.am, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
1160 m4/error.m4, m4/getopt.m4, m4/hash.m4, m4/malloc.m4,
1161 m4/mbrtowc.m4, m4/mbswidth.m4, m4/memchr.m4, m4/memcmp.m4,
1162 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/prereq.m4,
1163 m4/quote.m4, m4/quotearg.m4, m4/realloc.m4, m4/stdbool.m4,
1164 m4/stpcpy.m4, m4/strnlen.m4, m4/strtol.m4, m4/strtoul.m4,
1165 m4/unlocked-io.m4, m4/xalloc.m4, po/LINGUAS, po/Makefile.in.in,
1166 po/Makevars, po/da.po, po/de.po, po/es.po, po/et.po, po/fr.po,
1167 po/hr.po, po/id.po, po/it.po, po/ja.po, po/ms.po, po/nl.po,
1168 po/pt_BR.po, po/ro.po, po/ru.po, po/sv.po, po/tr.po:
1169 Remove, as these files are now generated automatically
1170 by bootstrap or automake.
1171
1172 * po/ChangeLog: Remove: all but one entry was a duplicate
1173 of this file, and I moved that 2000-11-02 entry here.
1174
1175 * config/.cvsignore: Add Makefile, depcomp, install-sh.
1176 * lib/.cvsignore: Add alloca.c, alloca.h, alloca_.h, argmatch.c,
1177 argmatch.h, basename.c, dirname.c, dirname.h, error.c, error.h,
1178 exit.h, exitfail.c, exitfail.h, getopt.c, getopt.h, getopt1.c,
1179 getopt_int.h, gettext.h, gnulib.mk, hard-locale.c, hard-locale.h,
1180 hash.c, hash.h, malloc.c, mbswidth.c, mbswidth.h, memchr.c,
1181 memcmp.c, memrchr.c, obstack.c, obstack.h, quote.c, quote.h,
1182 quotearg.c, quotearg.h, realloc.c, stdbool_.h, stpcpy.c, stpcpy.h,
1183 strcasecmp.c, strchr.c, stripslash.c, strncasecmp.c, strndup.c,
1184 strnlen.c, strrchr.c, strspn.c, strtol.c, strtoul.c,
1185 unlocked-io.h, xalloc.h, xmalloc.c, xstrdup.c, xstrndup.c,
1186 xstrndup.h.
1187 * m4/.cvsignore: Remove Makefile, Makefile.in. Add alloca.m4,
1188 dirname.m4, dos.m4, error.m4, getopt.m4, hash.m4, mbrtowc.m4,
1189 mbswidth.m4, obstack.m4, onceonly.m4, quote.m4, quotearg.m4,
1190 stdbool.m4, stpcpy.m4, strnlen.m4, unlocked-io.m4, xalloc.m4.
1191 * po/.cvsignore: Add *.po, LINGUAS, Makefile.in.in, Makevars.
1192 * src/.cvsignore: Remove *_.c.
1193
1194
1195 * Makefile.maint (GZIP_ENV): Don't use --rsyncable if gzip doesn't
1196 support it. (The latest stable gzip doesn't.)
1197
11982004-04-27 Paul Eggert <eggert@twinsun.com>
1199
1200 * data/lalr1.cc (Parser::stos_) [! YYDEBUG]: Define even in this
1201 case, as stos_ is now used by destructors due to the 2004-02-09
1202 change.
1203
1204 Remove more K&R C support.
1205 * lib/libiberty.y (PARAMS): Remove. All uses removed.
1206 * lib/subpipe.c (errno): Remove decl.
1207 Include <stdlib.h> unconditionally.
1208 (EXIT_FAILURE): Remove macro.
1209 * src/complain.c (vfprintf, strerror): Remove.
1210 * src/system.h: Include limits.h, stdlib.h, string.h, locale.h
1211 unconditionally.
1212 (EXIT_FAILURE, EXIT_SUCCESS, setlocale): Remove defns.
1213 Use latest Autoconf recommendations for including inttypes.h, stdint.h.
1214 (strchr, strspn, memchr): Remove decls.
1215 * tests/calc.at (_AT_DATA_CALC_Y): Include stdlib.h, string.h
1216 unconditionally. Do not declare perror.
1217 * tests/conflicts.at (%nonassoc and eof): Include stdlib.h
1218 unconditionally.
1219
1220 * src/complain.c (_): Remove useless defn, as system.h defines this.
1221
1222 * lib/bitset.h (__INT_TO_PTR): Remove; workaround no longer needed
1223 with latest obstack.h.
1224 * lib/ebitset.c (ebitset_elt_alloc): Don't bother to cast args
1225 to procedure types, as obstack.h now does that for us.
1226 * lib/lbitset.c (lbitset_elt_alloc): Likewise.
1227
1228 * lib/subpipe.h [HAVE_SYS_TYPES_H]: Include <sys/types.h>,
1229 so that this include file can stand alone.
1230 * lib/subpipe.c: Do not include <sys/types.h>, as subpipe.h
1231 does this now. Include subpipe.h first after config.h, to
1232 test whether it can stand alone.
1233
1234 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't
1235 declare yyerror when using lalr.cc, as GCC 3.4.0 warns about the
1236 unused declaration.
1237
1238 * tests/synclines.at (%union synch line): Put a dummy member in
1239 the union, because empty unions aren't allowed in C. Caught
1240 by GCC 3.4.0.
1241
12422004-04-13 Jim Meyering <jim@meyering.net>
1243
1244 * src/conflicts.c (conflicts_print): Correct format string typo:
1245 use `%%' to produce literal `%'. (trivial change)
1246
12472004-03-30 Paul Eggert <eggert@twinsun.com>
1248
1249 * src/getargs.c (version): Update copyright year to 2004.
1250
1251 * data/c.m4 (b4_int_type): Use 'short int' rather than
1252 'short', and similarly for 'long', 'unsigned', etc.
1253 * data/glr.c (YYTRANSLATE, yyconfl, yySymbol, yyItemNum,
1254 yygetLRActions, yyprocessOneStack, yyrecoverSyntaxError,
1255 yy_yypstack, yydumpstack): Likewise.
1256 * data/lalr1.cc (user_token_number_max_, user_token_number_max_,
1257 translate_, seq_, [], pop, Slice, range_, operator+, operator+=):
1258 Likewise.
1259 * data/yacc.c (b4_int_type, yyss, YYSTACK_BYTES, yysigned_char,
1260 yy_stack_print, yyparse): Likewise.
1261 * doc/bison.texinfo (Prologue, Multiple Types): Likewise.
1262 * lib/bbitset.h (bitset_word, BITSET_WORD_BITS): Likewise.
1263 * lib/bitset.c (bitset_print): Likewise.
1264 * lib/bitset_stats.c (bitste_log_histogram_print): Likewise.
1265 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
1266 * lib/bitsetv.c (bitsetv_dump): Likewise.
1267 * lib/ebitset.c (EBITSET_ELT_BITS, ebitset_elt_alloc): Likewise.
1268 * lib/lbitset.c (LBITSET_ELT_BITS, lbitset_elt_alloc, debug_lbitset):
1269 Likewise.
1270 * src/LR0.c (allocate_itemsets): Likewise.
1271 * src/gram.h (rule_number, rule): Likewise.
1272 * src/lalr.h (goto_number): Likewise.
1273 * src/nullable.c (nullable_compute): Likewise.
1274 * src/output.c (prepare_rules): Likewise.
1275 * src/relation.c (relation_print, relation_digraph): Likewise.
1276 * src/relation.h (relation_node): Likewise.
1277 * src/state.h (state_number, transitions, errs, reductions,
1278 struct state): Likewise.
1279 * src/symtab.h (symbol_number, struct symbol): Likewise.
1280 * src/tables.c (vector_number, tally, action_number,
1281 default_goto, goto_actions): Likewise.
1282 * tests/existing.at (GNU Cim Grammar): Likewise.
1283 * tests/regression.at (Web2c Actions): Likewise.
1284
1285 * src/output.c (muscle_insert_short_int_table): Renamed from
1286 muscle_insert_short_table. All uses changed.
1287
12882004-03-25 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
1289
1290 * src/parse-gram.y: Define PERCENT_EXPECT_RR.
1291 (declaration): Replace expected_conflicts with expected_sr_conflicts.
1292 Add %expect-rr rule.
1293
1294 * src/scan-gram.l: Recognize %expect-rr.
1295
1296 * src/conflicts.h (expected_sr_conflicts): Rename from
1297 expected_conflicts.
1298 (expected_rr_conflicts): Declare.
1299
1300 * src/conflicts.c (expected_sr_conflicts): Rename from
1301 expected_conflicts.
1302 (expected_rr_conflicts): Define.
1303 (conflicts_print): Check r/r conflicts against expected_rr_conflicts
1304 for GLR parsers.
1305 Use expected_sr_conflicts in place of expected_conflicts.
1306 Warn if expected_rr_conflicts used in non-GLR parser.
1307
1308 * doc/bison.texinfo: Add documentation for %expect-rr.
1309
13102004-03-08 Paul Eggert <eggert@gnu.org>
1311
1312 Add support for hex token numbers. Suggested by Odd Arild Olsen in
1313 <http://lists.gnu.org/archive/html/bison-patches/2004-03/msg00000.html>.
1314
1315 * NEWS: Document hexadecimal tokens, no NUL bytes, %destructor
1316 in lalr1.cc.
1317 * doc/bison.texinfo (Token Decl): Add hexadecimal token numbers.
1318 * src/scan-gram.l (scan_integer): New function.
1319 ({int}): Use it.
1320 (0[xX][0-9abcdefABCDEF]+): New pattern, to support hex numbers.
1321 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>, \\x[0-9abcdefABCDEF]+,
1322 handle_action_dollar, handle_action_at, convert_ucn_to_byte):
1323 Say "long int", not "long", for uniformity with GNU style.
1324
13252004-02-25 Paul Eggert <eggert@twinsun.com>
1326
1327 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Ignore stdout from
1328 compilers. This fixes a problem with Intel's C++ compiler being
1329 chatty, reported by Guido Trentalancia in
1330 <http://lists.gnu.org/archive/html/bug-bison/2004-02/msg00030.html>.
1331
13322004-02-09 Alexandre Duret-Lutz <adl@gnu.org>
1333
1334 Support %destructor and merge error locations in lalr1.cc.
1335
1336 * data/lalr1.cc (b4_cxx_destruct_def): New macro.
1337 (Parser::stos_): Define unconditionally.
1338 (Parser::destruct_): New method. Generate its body with
1339 b4_yydestruct_generate.
1340 (Parser::error_start_): New attribute.
1341 (Parser::parse) <yyerrlab, yyerrlab1>: Call destruct_ on erroneous
1342 token which are discarded.
1343 (Parser::parse) <yyerrlab, yyerrorlab, yyerrlab1>: Update
1344 error_start_ when erroneous token are discarded.
1345 (Parser::parse) <yyerrlab1>: Compute the location of the error
1346 token so that it covers all the discarded tokens.
1347 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust so
1348 it can be called with `%skeleton "lalr1.cc"', and do that.
1349
13502004-02-02 Paul Eggert <eggert@twinsun.com>
1351
1352 * src/Makefile.am (AM_CPPFLAGS): New macro. It mentions
1353 $(top_srcdir)/lib and ../lib. This fixes a bug reported
1354 by Paul Hilfinger; the old INCLUDES value didn't mention ../lib.
1355 There's no need to mention top_builddir since Automake does that
1356 for us.
1357 (INCLUDES): Remove, as Automake says it's obsolescent.
1358 Contents migrated into AM_CPPFLAGS as described above.
1359 * lib/Makefile.am (INCLUDES): Remove; obsolescent.
1360
13612004-01-14 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
1362
1363 * data/glr.c (yytokenName): Bullet-proof against YYEMPTY token.
1364 (yyreportSyntaxError): Handle case where lookahead token is
1365 YYEMPTY.
1366
13672004-01-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1368
1369 * data/glr.c: Put casts on uses of YYREALLOC and YYMALLOC so that
1370 resulting parsers are compilable with C++.
1371
13722003-12-23 Paul Eggert <eggert@twinsun.com>
1373
1374 * config/depcomp, config/install-sh: Sync with Automake 1.8.
1375 * src/output.c (output_skeleton): Rename local var.
1376 * tests/input.at (Torturing the Scanner): Don't use \x0 or \0 in
1377 Bison tokens, as this runs afoul of the 2003-10-07 change that
1378 disallowed NUL bytes in character constants or string literals.
1379
1380 * tests/local.at: Require Autoconf 2.59's Autotest.
1381 * tests/testsuite.at: Don't include local.at, since we now assume
1382 Autoconf 2.59 or later. Autoconf 2.59 had some problems with
1383 including it.
1384 * tests/Makefile.am ($(TESTSUITE)): Remove warning about ignoring
1385 multiple inclusion warnings.
1386
13872003-12-02 Akim Demaille <akim@epita.fr>
1388
1389 * doc/bison.texinfo (How Can I Reset the Parser): More about start
1390 conditions.
1391 From Bruno Haible.
1392
13932003-11-18 Alexandre Duret-Lutz <adl@gnu.org>
1394
1395 * doc/bison.texinfo (Bison Options): Escape `@' in `$@'.
1396
13972003-10-07 Paul Eggert <eggert@twinsun.com>
1398
1399 * tests/Makefile.am (clean-local): Don't run 'testsuite --clean'
1400 if testsuite doesn't exist.
1401
1402 * doc/bison.texinfo (Symbols): NUL bytes are not allowed in string
1403 literals, unfortunately.
1404 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>):
1405 Complain about NUL bytes in character constants or string literals.
1406
14072003-10-05 Paul Eggert <eggert@twinsun.com>
1408
1409 * NEWS: Don't document %no-default-prec, as it's still
1410 too experimental.
1411 * doc/bison.texinfo: Document %no-default-prec only if
1412 the defaultprec flag is set. Normally it's not.
1413
14142003-10-04 Paul Eggert <eggert@twinsun.com>
1415
1416 * data/glr.c (b4_rhs_value, b4_rhs_location): Yield a
1417 non-modifiable lvalue, instead of a modifiable one.
1418 * doc/bison.texinfo (Actions): Document that $$ can
1419 be assigned to. Do not claim that $$ and $N are
1420 array element references: user code should not rely on this.
1421
14222003-10-01 Paul Eggert <eggert@twinsun.com>
1423
1424 * src/parse-gram.h (PERCENT_NO_DEFAULT_PREC): New token.
1425 (grammar_declaration): Use it.
1426 * src/scan-gram.l: New token %no-default-prec.
1427 * tests/conflicts.at: Revamp tests to use %no-default-prec.
1428 * NEWS, doc/bison.texinfo: Document the above.
1429
14302003-10-01 Akim Demaille <akim@epita.fr>
1431
1432 VCG no longer supports long_straight_phase.
1433
1434 * src/vcg.c, src/vcg.h: Remove the handling of long_straight_phase.
1435 * src/print_graph.c (print_graph): Adjust.
1436
14372003-09-30 Frank Heckenbach <frank@g-n-u.de>
1438 and Paul Eggert <eggert@twinsun.com>
1439
1440 * doc/bison.texinfo (Decl Summary, Contextual Precedence,
1441 Table of Symbols): Document %default-prec.
1442 * src/parse-gram.y (PERCENT_DEFAULT_PREC): New token.
1443 (grammar_declaration): Set default_prec on %default-prec.
1444 * src/scan-gram.l (%default-prec): New token.
1445 * src/reader.h (default_prec): New flag.
1446 * src/reader.c: Likewise.
1447 (packgram): Handle it.
1448 * tests/conflicts.at (%default-prec without %prec,
1449 %default-prec with %prec, %default-prec 1): New tests.
1450
14512003-09-30 Paul Eggert <eggert@twinsun.com>
1452
1453 * tests/testsuite.at: Include local.at, not input.at, fixing
1454 a typo in the 2003-08-25 patch.
1455
14562003-08-27 Akim Demaille <akim@epita.fr>
1457
1458 * data/lalr1.cc (yyparse) [__GNUC__]: "Use" yyerrorlab to pacify
1459 GCC warnings.
1460
14612003-08-26 Akim Demaille <akim@epita.fr>
1462
1463 * config/announce-gen (print_changelog_deltas): Neutralize "<#" as
1464 "<\#" to avoid magic from Gnus when posting parts of this script.
1465
14662003-08-26 Akim Demaille <akim@epita.fr>
1467
1468 * data/lalr1.cc (Parser::report_syntax_error_): New, extracted from
1469 (Parser::parse): here.
1470 Adjust: nerrs and errstatus is now replaced by...
1471 (Parser::nerrs_, Parser::errstatus_): New.
1472
14732003-08-25 Akim Demaille <akim@epita.fr>
1474
1475 * config/announce-gen, Makefile.cfg: New.
1476 * Makefile.am: Adjust.
1477 * GNUmakefile, Makefile.maint: Update from CVS Autoconf, but
1478 keeping local WGET and WGETFLAGS modifications from Paul Eggert.
1479
14802003-08-25 Akim Demaille <akim@epita.fr>
1481
1482 When reducing initial empty rules, Bison parser read an initial
1483 location that is not defined. This results in garbage, and that
1484 affects Bison's own parser. Therefore we need (i) to extend Bison
1485 to support a means to initialize this location, and (ii) to use
1486 this CVS Bison to fix CVS Bison's parser.
1487
1488 * src/reader.h, reader.c (epilogue_augment): Remove, replace
1489 with...
1490 * src/muscle_tab.h, src/muscle_tab.c (muscle_code_grow): this.
1491 * src/parse-gram.y: Adjust.
1492 (%initial-action): New.
1493 (%error-verbose): Since we require CVS Bison, there is no reason
1494 not to use it.
1495 * src/scan-gram.l: Adjust.
1496 * src/Makefile.am (YACC): New, to make sure we use our own parser.
1497 * data/yacc.c (yyparse): Use b4_initial_action.
1498
14992003-08-25 Akim Demaille <akim@epita.fr>
1500
1501 * doc/bison.texinfo: Don't promote stdout for error messages.
1502
15032003-08-25 Akim Demaille <akim@epita.fr>
1504
1505 * data/lalr1.cc (Parser::reduce_print_): Remove unused yyi.
1506 From Alexandre Duret-Lutz.
1507
15082003-08-25 Akim Demaille <akim@epita.fr>
1509
1510 Version 1.875c.
1511
15122003-08-25 Akim Demaille <akim@epita.fr>
1513
1514 * data/lalr1.cc (Parser::stack_print_, YY_STACK_PRINT): New.
1515 Use them.
1516
15172003-08-25 Akim Demaille <akim@epita.fr>
1518
1519 * data/lalr1.cc (Parser::reduce_print_): New.
1520 Use it.
1521
15222003-08-25 Akim Demaille <akim@epita.fr>
1523
1524 Have lalr1.cc catch with Paul Eggert's patch to fix the infinite
1525 error recovery loops. This patch is based on
1526 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00000.html>.
1527 Also, augment the similarity between lalr1.cc and yacc.c.
1528 Note: the locations of error recovery rules are not correct yet.
1529
1530 * data/lalr1.cc: Comment changes to augment the similarity between
1531 lalr1.cc and yacc.c.
1532 (YYERROR): Goto to yyerrorlab, not yyerrlab1.
1533 (yyerrlab1): Remove, but where it used to be (now the bottom part of
1534 yyerrlab), when hitting EOF, pop the whole stack here instead of
1535 merely falling thru the default error handling mechanism.
1536 (yyerrorlab): New label, with the old contents of YYERROR,
1537 plus the following change: pop the stack of rhs corresponding
1538 to the production that invoked YYERROR. That is how Yacc
1539 behaves (required by POSIX).
1540 * tests/calc.at (AT_CHECK_CALC_LALR1_CC): No longer expected to
1541 fail.
1542
15432003-08-25 Akim Demaille <akim@epita.fr>
1544
1545 Tune local.at so that people can "autom4te -l autotest calc.at -o
1546 calc" for instance, to extract a sub test suite.
1547
1548 * tests/testsuite.at: Move the initialization, Autotest version
1549 requirement, and AT_TESTED invocation into...
1550 * tests/local.at: here.
1551 * tests/testsuite.at: Include it for compatibility with Autoconf
1552 2.57.
1553 * tests/Makefile.am ($(TESTSUITE)): Report that the warning should
1554 be ignore.
1555
15562003-08-04 Paul Eggert <eggert@twinsun.com>
1557
1558 Rework code slightly to avoid gcc -Wtraditional warnings.
1559 * data/glr.c (yyuserMerge): Return void, not YYSTYPE.
1560 The returned value is now stored in *YY0. All callers changed.
1561 * src/output.c (merge_output): Adjust to the above change.
1562
15632003-07-26 Paul Eggert <eggert@twinsun.com>
1564
1565 * data/glr.c (YYASSERT): New macro.
1566 (yyfillin, yydoAction, yyglrReduce, yysplitStack,
1567 yyresolveStates, yyprocessOneStack):
1568 Use `YYASSERT (FOO);' rather than `if (! (FOO)) abort ();'.
1569 Derived from a suggestion by Frank Heckenbach.
1570
15712003-07-25 Paul Eggert <eggert@twinsun.com>
1572
1573 * data/glr.c (yyglrReduce): Don't use C89 string concatenation,
1574 for portability to K&R C (after ansi2knr, presumably). See
1575 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>
1576 by Frank Heckenbach, though I have omitted the structure-initialization
1577 part of his glr-knr.diff patch since I recall that the Portable
1578 C Compiler didn't require that change.
1579
1580 Let the user specify how to allocate and free memory.
1581 Derived from a suggestion by Frank Heckenbach in
1582 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>.
1583 * data/glr.c (YYFREE, YYMALLOC, YYREALLOC): New macros.
1584 All uses of free, malloc, realloc changed to use these macros,
1585 and unnecessary casts removed.
1586 * data/yacc.c (YYFREE, YYMALLOC): Likewise.
1587
15882003-07-06 Matthias Mann <MatthiasMann@gmx.de>
1589
1590 * data/lalr1.cc (operator<<(std::ostream&, const Position&)):
1591 use s.empty() rather than s == "" to test for empty string; see
1592 <http://lists.gnu.org/archive/html/bison-patches/2003-07/msg00003.html>
1593 (trivial change)
1594
15952003-06-25 Akim Demaille <akim@epita.fr>
1596
1597 * config/depcomp, config/install-sh: Update from masters.
1598
15992003-06-20 Paul Eggert <eggert@twinsun.com>
1600
1601 * data/glr.c (YYLLOC_DEFAULT): Parenthesize arguments as needed,
1602 and return properly parenthesized result.
1603 * data/lalar1.cc (YYLLOC_DEFAULT): Likewise.
1604 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
1605 Remove unnecessary parentheses from uses.
1606 * doc/bison.texinfo (Location Default Action): Describe the
1607 conventions for parentheses.
1608
16092003-06-19 Paul Eggert <eggert@twinsun.com>
1610
1611 * data/glr.c (yyremoveDeletes, yy_reduce_print, yyglrReduce,
1612 yyreportTree): Do not assume that size_t is the same width as int,
1613 when printing sizes. Print sizes using an unsigned format.
1614 Problem reported by Frank Heckenbach in
1615 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00035.html>.
1616
1617 Port to Forte Developer 7 C compiler.
1618 * data/glr.c (struct YYLTYPE): If locations are not being used,
1619 declare a single dummy member, as empty structs do not conform
1620 to the C standard.
1621 (YYERROR, YYBACKUP): Do not use "do { ...; return foo; } while (0)";
1622 the Forte Developer 7 C compiler complains that end-of-loop
1623 code is not reached.
1624
16252003-06-17 Paul Eggert <eggert@twinsun.com>
1626
1627 * lib/libiberty.h (PARAMS): Spell argument as Args, not as X, to
1628 avoid warnings from picky compilers about redefinition of PARAMS.
1629
16302003-06-17 Paul Eggert <eggert@twinsun.com>
1631
1632 Version 1.875b.
1633
1634 * NEWS: Document 1.875b.
1635
1636 * lib/bbitset.h: Do not include config.h; that's the includer's job.
1637 Do not include <sys/types.h>; shouldn't be needed on a C89 host.
1638 * lib/bitset.h (bitset_compatible_p): Indent as per GNU standard.
1639 Don't use 'index' in comments, as it's a builtin fn on some hosts.
1640 * lib/bitset_stats.c: Include gettext.h unconditionally, as
1641 per recent gettext manual's suggestion.
1642 * lib/ebitset.c (ebitset_resize, ebitset_unused_clear):
1643 Use prototypes, not old-style definitions.
1644 * lib/lbitset.c (lbitset_unused_clear): Likewise.
1645 * lib/vbitset.c (vbitset_resize, vbitset_ones, vbitset_zero,
1646 vbitset_empty_p, vbitset_copy1, vbitset_not, vbitset_equal_p,
1647 vbitset_subset_p, vbitset_disjoint_p, vbitset_and, vbitset_and_cmp,
1648 vbitset_andn, vbitset_andn_cmp, vbitset_or, vbitset_or_cmp,
1649 vbitset_xor, vbitset_xor_cmp, vbitset_and_or, vbitset_and_or_cmp,
1650 vbitset_andn_or, vbitset_andn_or_cmp, vbitset_or_and,
1651 vbitset_or_and_cmp, vbitset_copy): Likewise.
1652
1653 * lib/libiberty.h: Do not include config.h; that's the includer's job.
1654 Do not include <stdlib.h>.
1655 (PARAMS): Define unconditionally for C89.
1656 (ATTRIBUTE_NORETURN): Remove.
1657 (ATTRIBUTE_UNUSED): Define unconditionally.
1658
1659 Upgrade to 2003-06-08 libbitset, submitted by Michael Hayes in:
1660 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00005.html>
1661 * lib/Makefile.am (bitsets_sources): Add vbitset.c, vbitset.h.
1662 * lib/vbitset.c, lib/vbitset.h: New files.
1663 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
1664 lib/bitset_stats.c, lib/ebitset.c, lib/lbitset.c: Import
1665 from libbitset.
1666
1667 * doc/bison.texinfo (How Can I Reset the Parser): Renamed from
1668 `How Can I Reset @code{yyparse}', since texinfo does not allow
1669 arbitrary @ in node names.
1670
1671 * m4/Makefile.am (EXTRA_DIST): Add the following files, which
1672 shouldn't be needed according to the gettext 0.12.1 documentation
1673 but which seem to be needed anyway: codeset.m4 glibc21.m4
1674 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4
1675 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
1676 * po/Makefile.in.in: Upgrade to gettext 0.12.1 version.
1677
1678 * lib/.cvsignore: Add stdbool.h.
1679 * m4/.cvsignore: Add nls.m4, po.m4.
1680
1681 Upgrade to CVS gnulib.
1682 * stdbool_.h: File renamed from stdbool.h.in.
1683 * configure.ac (AM_STDBOOL_H): Invoke this instead of
1684 AC_HEADER_STDBOOL.
1685 (AM_GNU_GETTEXT): Put brackets around args, as latest manual suggests.
1686 (AM_GNU_GETTEXT_VERSION): Update to 0.12.1.
1687 * lib/Makefile.am (EXTRA_DIST): Add stdbool_.h.
1688 (MOSTLYCLEANFILES): New var.
1689 ($(libbison_a_OBJECTS)): Depend on $(STDBOOL_H).
1690 (stdbool.h): New rule.
1691 * lib/dirname.c, lib/dirname.h, lib/hash.c, lib/hash.h,
1692 lib/malloc.c, lib/obstack.h, lib/quote.c, lib/realloc.c,
1693 lib/strcasecmp.c, lib/xalloc.h, m4/alloca.m4, m4/onceonly.m4,
1694 m4/quote.m4: Upgrade to today's gnulib.
1695
1696 * tests/calc.at (AT_CHECK_CALC): New option EXPECTED-TO-FAIL.
1697 (AT_CHECK_CALC_LALR1_CC): Use it, since the C++ LALR parser fails
1698 the tests right now.
1699 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Ensure yylex and
1700 yyerror are declared before use; C99 requires this.
1701
17022003-06-09 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1703
1704 * data/glr.c (YYERROR): Update definition to reset yyerrState to 0
1705 first.
1706 (yyrecoverSyntaxError): Correct the logic for setting and testing
1707 yyerrState.
1708 Correct comment on handling EOF.
1709 Allow states with only a default reduction, rather than failing
1710 (I can't quite reconstruct why these were not allowed before).
1711
1712 Fixes to avoid problem that $-N rules in GLR parsers can cause
1713 buffer overruns, corrupting state.
1714
1715 * src/output.c (prepare_rules): Output max_left_semantic_context
1716 definition.
1717 * src/reader.h (max_left_semantic_context): New variable declaration.
1718 * src/scan-gram.l (max_left_semantic_context): Define.
1719 (handle_action_dollar): Update max_left_semantic_context.
1720 * data/glr.c (YYMAXLEFT): New definition.
1721 (yydoAction): Increase size of yyrhsVals by YYMAXLEFT.
1722 (yyresolveAction): Ditto.
1723
1724 Fixes to problems with location handling in GLR parsers reported by
1725 Frank Heckenbach (2003/06/05).
1726
1727 * data/glr.c (YYLTYPE): Make trivial if locations not used.
1728 (YYRHSLOC): Add parentheses, and define only if locations used.
1729 (YYLLOC_DEFAULT): Add parentheses, and give trivial definition if
1730 locations not used.
1731 (yyuserAction): Use YYLLOC_DEFAULT to set *yylocp.
1732 (yydoAction): Remove redundant initialization of *yyvalp and *yylocp.
1733
1734 * tests/cxx-type.at: Exercise location information; update tests
1735 to differentiate output with and without locations.
1736 Remove forward declarations of yylex and yyerror---caused errors
1737 because default YYLTYPE not yet defined.
1738 Change semantic actions to compute strings, rather than printing
1739 them directly (to test proper passing of semantics values). Change
1740 output to prefix notation and update test data and expected results.
1741 (yylex): Track locations.
1742 (stmtMerge): Return value rather than printing, and include arguments
1743 in value.
1744
17452003-06-03 Paul Eggert <eggert@twinsun.com>
1746
1747 Avoid warnings generated by GCC 2.95.4 when Bison is
1748 configured with --enable-gcc-warnings.
1749 * data/lalr1.cc (yy::]b4_parser_class_name[::parse,
1750 yy::]b4_parser_class_name[::translate_,
1751 yy::Stack::operator[] (unsigned),
1752 yy::Stack::operator[] (unsigned) const,
1753 yy::Slice::operator[] (unsigned),
1754 yy::Slice::operator[] (unsigned) const):
1755 Rename local vars to avoid warnings.
1756 * tests/glr-regression.at (Improper handling of embedded actions
1757 and $-N in GLR parsers): Remove unused local variable from yylex.
1758 * tests/regression.at (_AT_DATA_DANCER_Y): Declare yylex to take
1759 (void) as arg when not pure, since we now assume C89 when building
1760 Bison. Pacify GCC by using parameter.
1761
17622003-06-02 Paul Eggert <eggert@twinsun.com>
1763
1764 * data/lalr1.cc (yy::Position::lines, yy::Position::columns,
1765 yy::Location::lines, yy::Location::columns): Rename arguments
1766 to avoid shadowing; this removes a warning generated by GCC 3.3.
1767
17682003-06-01 Paul Eggert <eggert@twinsun.com>
1769
1770 Don't pass C-only warning optins (e.g., -Wmissing-declarations)
1771 to g++, as GCC 3.3 complains if you do it.
1772 * configure.ac (WARNING_CXXFLAGS): New subst. Set it to
1773 everything that WARNING_CFLAGS has, except omit warnings
1774 not suitable for C++.
1775 (AC_PROG_CXX): Use this instead of AC_CHECK_PROGS([CXX], [g++]).
1776 * tests/atlocal.in (CXXFLAGS): New var.
1777 * tests/local.at (AT_COMPILE_CXX): Use it instead of CFLAGS.
1778
1779 Fix a GLR parser bug I reported in February; see
1780 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00008.html>.
1781 The problem was that GLR parsers did not conform to the C standard,
1782 because actions like { $1 = $2 + $3; } expanded to expressions
1783 that invoked YYFILL in separate subexpressions, and YYFILL assigned
1784 to a local variable. The C standard says that expressions
1785 like (var = f ()) + (var = f ()) have undefined behavior.
1786 Another problem was that GCC sometimes issues warnings that
1787 yyfill and its parameters are unused.
1788
1789 * data/glr.c (yyfillin): Renamed from the old yyfill. Mark
1790 as possibly unused.
1791 (yyfill): New function.
1792 (YYFILL): Use it.
1793 (yyuserAction): Change type of yynormal to bool, so that it matches
1794 the new yyfill signature. Mark it as possibly unused.
1795
1796
1797 Follow up on a bug I reported in February, where a Bison-generated
1798 parser can loop. Provide a test case and a fix for yacc.c. I
1799 don't have a fix for lalr1.cc or for glr.c, unfortunately.
1800 The original bug report is in:
1801 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00044.html>
1802
1803 * data/yacc.c (YYERROR): Now just 'goto yyerrorlab', since the
1804 macro's size was becoming unwieldy.
1805 (yyerrlab): Do not discard an empty lookahead symbol, as this
1806 might destroy garbage.
1807 (yyerrorlab): New label, with the old contents of YYERROR,
1808 plus the following change: pop the stack of rhs corresponding
1809 to the production that invoked YYERROR. That is how Yacc
1810 behaves, and POSIX requires this behavior.
1811 (yyerrlab1): Use YYPOPSTACK instead of its definiens.
1812 * tests/calc.at (_AT_DATA_CALC_Y): Include unistd.h if available.
1813 Define 'alarm' to do nothing if unistd.h is not available.
1814 Add a new rule "exp: '-' error;" to test the above change to
1815 data/yacc.c. Use 'alarm' to abort any test taking longer than
1816 10 seconds, as it's probably looping.
1817 (AT_CHECK_CALC): Test recovery from error in new grammar rule.
1818 Also, the new yacc.c generates two fewer diagnostics for an
1819 existing test.
1820
18212003-05-24 Paul Eggert <eggert@twinsun.com>
1822
1823 * data/glr.c (YYSTACKEXPANDABLE): Do not evaluate
1824 YYSTYPE_IS_TRIVIAL or YYSTYPE_IS_TRIVIAL unless they are defined.
1825 This fixes a problem reported by John Bowman when the Compaq/HP
1826 Alpha cxx compiler happy (e.g. using cxx -D__USE_STD_IOSTREAM
1827 -ansi -Wall -gall).
1828 * data/yacc.c (union yyalloc): Likewise.
1829 (YYCOPY): Do not evaluate __GNUC__ unless it is defined.
1830
1831 Switch from 'int' to 'bool' where that makes sense.
1832
1833 * lib/abitset.c (abitset_test, abitset_empty_p, abitset_equal_p,
1834 abitset_subset_p, abitset_disjoint_p, abitset_and_cmp,
1835 abitset_andn_cmp, abitset_or_cmp, abitset_xor_cmp, abitset_and_or,
1836 abitset_and_or_cmp, abitset_andn_or_cmp, abitset_or_and_cmp):
1837 Return or accept bool, not int. All callers changed.
1838 * lib/bbitset.h: (bitset_toggle_, bitset_copy_, bitset_and_or_cmp_,
1839 bitset_andn_or_cmp_, bitset_or_and_cmp_): Likewise.
1840 * lib/bitset.c (bitset_only_set_p, bitset_print, bitset_toggle_,
1841 bitset_copy_, bitset_op4_cmp, bitset_and_or_cmp_, bitset_andn_or_cmp_,
1842 bitset_or_and_cmp_): Likewise.
1843 * lib/bitset.h (bitset_test, bitset_only_set_p): Likewise.
1844 * lib/bitset_stats.c (bitset_stats_print, bitset_stats_toggle,
1845 bitset_stats_test, bitset_stats_empty_p, bitset_stats_disjoint_p,
1846 bitset_stats_equal_p, bitset_stats_subset_p, bitset_stats_and_cmp,
1847 bitset_stats_andn_cmp, bitset_stats_or_cmp, bitset_stats_xor_cmp,
1848 bitset_stats_and_or_cmp, bitset_stats_andn_or_cmp,
1849 bitset_stats_or_and_cmp): Likewise.
1850 * lib/ebitset.c (ebitset_elt_zero_p, ebitset_equal_p, ebitset_copy_cmp,
1851 ebitset_test, ebitset_empty_p, ebitset_subset_p, ebitset_disjoint_p,
1852 ebitset_op3_cmp, ebitset_and_cmp, ebitset_andn_cmp, ebitset_or_cmp,
1853 ebitset_xor_cmp): Likewise.
1854 * lib/lbitset.c (lbitset_elt_zero_p, lbitset_equal_p, lbitset_copy_cmp,
1855 lbitset_test, lbitset_empty_p, lbitset_subset_p, lbitset_disjoint_p,
1856 lbitset_op3_cmp, lbitset_and_cmp, lbitset_andn_cmp, lbitset_or_cmp,
1857 lbitset_xor_cmp): Likewise.
1858 * lib/bbitset.h: Include <stdbool.h>.
1859 (struct bitset_vtable): The following members now return bool, not
1860 int: toggle, test, empty_p, disjoint_p, equal_p, subset_p,
1861 and_cmp, andn_cmp, or_cmp, xor_cmp, and_or_cmp, andn_or_cmp,
1862 or_and_cmp).
1863 * src/conflicts.c (count_rr_conflicts): Likewise.
1864 * lib/bitset_stats.h (bitset_stats_enabled): Now bool, not int.
1865 All uses changed.
1866 * lib/ebitset.c (ebitset_obstack_init): Likewise.
1867 * lib/lbitset.c (lbitset_obstack_init): Likewise.
1868 * src/getargs.c (debug_flag, defines_flag, locations_flag,
1869 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
1870 graph_flag): Likewise.
1871 * src/getargs.h (debug_flag, defines_flag, locations_flag,
1872 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
1873 graph_flag): Likewise.
1874 * src/output.c (error_verbose): Likewise.
1875 * src/output.h (error_verbose): Likewise.
1876 * src/reader.c (start_flag, typed): Likewise.
1877 * src/reader.h (typed): Likewise.
1878 * src/getargs.c (LOCATIONS_OPTION): New constant.
1879 (long_options, getargs): Use it.
1880 * src/lalr.c (build_relations): Use bool, not int.
1881 * src/nullable.c (nullable_compute): Likewise.
1882 * src/print.c (print_reductions): Likewise.
1883 * src/tables.c (action_row, pack_vector): Likewise.
1884 * src/muscle_tab.h (MUSCLE_INSERT_BOOL): New macro.
1885 * src/output.c (prepare): Use it.
1886 * src/output.c (token_definitions_output,
1887 symbol_destructors_output, symbol_destructors_output): Use string,
1888 not boolean integer, to keep track of whether to output separator.
1889 * src/print_graph.c (print_core): Likewise.
1890 * src/state.c (state_rule_lookaheads_print): Likewise.
1891
1892 * config/install-sh: Sync from automake 1.7.5.
1893
18942003-05-14 Paul Eggert <eggert@twinsun.com>
1895
1896 * src/parse-gram.y (rules_or_grammar_declaration): Require a
1897 semicolon after a grammar declaration, in the interest of possible
1898 future changes to the Bison input language.
1899 Do not allow a stray semicolon at the start of the grammar.
1900 (rhses.1): Allow one or more semicolons after any rule, including
1901 just before "|" as required by POSIX.
1902 * tests/input.at (Torturing the Scanner): Add tests for ";|" in a
1903 grammar.
1904
19052003-05-14 Alexandre Duret-Lutz <adl@gnu.org>
1906
1907 %parse-param support for lalr1.cc.
1908
1909 * data/lalr1.cc (b4_parse_param_decl, b4_parse_param_cons,
1910 b4_cc_constructor_calls, b4_cc_constructor_call,
1911 b4_parse_param_vars, b4_cc_var_decls, b4_cc_var_decl): New m4
1912 definitions.
1913 (yy::b4_parser_class_name::b4_parser_class_name): Take extra
1914 parse-param arguments.
1915 (yy::b4_parser_class_name): Declare instance variables to
1916 hold parse-param arguments.
1917 * tests/calc.at: s/value/semantic_value/ because value clashes
1918 with a member of yy::b4_parser_class_name. Adjust C++ code
1919 to handle %parse-param. Enable %parse-param test in C++.
1920
19212003-05-12 Paul Eggert <eggert@twinsun.com>
1922
1923 * doc/bison.texinfo (How Can I Reset @code{yyparse}): Reword the
1924 English a bit. Fix fclose typo. Change "const char" to "char
1925 const", and use ANSI C rather than K&R for "main". Suggest
1926 YY_FLUSH_BUFFER over yyrestart (as that is what Flex recommends)
1927 and suggest yy_switch_to_buffer.
1928
19292003-05-05 Paul Eggert <eggert@twinsun.com>
1930
1931 * lib/bitset.h (__INT_TO_PTR): Define to a value that presumes
1932 C89. This avoids a diagnostic on compilers that define __STDC__
1933 to 0, fixing a problem with Tru64 cc reported by Martin Mokrejs in
1934 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
1935
19362003-05-03 Paul Eggert <eggert@twinsun.com>
1937
1938 * lib/bitset.h (BITSET_FOR_EACH, BITSET_FOR_EACH_REVERSE):
1939 Do not overrun array bounds.
1940 This should fix a bug reported today by Olatunji Oluwabukunmi in
1941 <http://lists.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
1942
19432003-04-29 Akim Demaille <akim@epita.fr>
1944
1945 * src/gram.h, src/gram.c (pure_parser, glr_parser): Move to...
1946 * src/getargs.c, src/getargs.h: here, as bool, not int.
1947 (nondeterministic_parser): New.
1948 * src/parse-gram.y, src/scan-gram.l: Support
1949 %nondeterministic-parser.
1950 * src/output.c (prepare): Use nondeterministic_parser instead
1951 of glr_parser where appropriate.
1952 * src/tables.c (conflict_row, action_row, save_row)
1953 (token_actions, token_actions, pack_vector): Ditto.
1954
19552003-04-29 Akim Demaille <akim@epita.fr>
1956
1957 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
1958
19592003-04-29 Akim Demaille <akim@epita.fr>
1960
1961 * tests/calc.at: Also test yacc.c and glr.c (but not lalr1.cc yet)
1962 with %pure-parser and %locations to exercise the patch from Yakov
1963 Markovitch below.
1964
19652003-04-28 Tim Van Holder <tim.van.holder@pandora.be>
1966
1967 * data/yacc.c: (b4_lex_param): Corrected for the case where
1968 %lex-param is provided and %pure-parser isn't.
1969
19702003-04-27 Paul Eggert <eggert@twinsun.com>
1971
1972 Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
1973 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
1974 * data/yacc.c (YYSTACK_ALLOC): Don't evaluate YYSTACK_USE_ALLOCA
1975 if it is not defined.
1976 (YYMAXDEPTH): Don't evaluate YYMAXDEPTH if it is not defined.
1977
19782003-04-26 Paul Eggert <eggert@twinsun.com>
1979
1980 * data/lalr1.cc (yy::Parser::pact_ninf_, yy::Parser::table_ninf_):
1981 Declare to be of type suitable for the ninf value itself, not of
1982 type suitable for the corresponding table, since the latter might
1983 be unsigned but the ninf value might be negative. This fixes a
1984 bug reported by Alexandre Duret-Lutz in
1985 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
1986
1987 * configure.ac (AC_FUNC_ERROR_AT_LINE): Remove, since gl_ERROR
1988 invokes it. We shouldn't invoke it twice because it will attempt
1989 to put error.o in the archive twice. This fixes a glitch reported
1990 by Martin Mokrejs in
1991 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
1992
19932003-04-21 Paul Eggert <eggert@twinsun.com>
1994
1995 * m4/error.m4: Update from Bruno Haible's 2003-04-14 patch
1996 to gnulib.
1997
19982003-04-21 Yakov Markovitch <Markovitch@iso.ru>
1999
2000 * data/glr.c (yyexpandGLRStack) [!YYSTACKEXPANDABLE]:
2001 Fix obvious typo that results in uncompilable GLR parsers
2002 when both %pure-parser and %locations are used. (trivial change)
2003
20042003-04-17 Paul Eggert <eggert@twinsun.com>
2005
2006 * src/scan-gram.l: Add %option nounput, since we no longer use unput.
2007 (unexpected_eof): Renamed from unexpected_end_of_file, for brevity.
2008 Do not insert the expected token via unput, as this runs afoul
2009 of a POSIX-compatibility bug in flex 2.5.31.
2010 All uses changed to BEGIN the parent state,
2011 since we no longer insert the expected token via unput.
2012 * tests/regression.at (Invalid inputs): Remove cascaded diagnostic
2013 that is no longer emitted after the above change.
2014
2015 * src/conflicts.c (set_conflicts): Resolve all conflicts, not just
2016 the first one. This change is from Paul Hilfinger, and it fixes
2017 regression reported by Werner Lemberg in
2018 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
2019
2020 (resolve_sr_conflict): Don't invoke state_errs_set
2021 unless one or more tokens have been explicitly made errors.
2022 Otherwise, the above change causes Bison to abort.
2023
2024 * tests/existing.at (GNU pic Grammar): New test case, taken from
2025 Lemberg's email.
2026
20272003-03-31 Akim Demaille <akim@epita.fr>
2028
2029 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
2030
20312003-03-31 Akim Demaille <akim@epita.fr>
2032
2033 * src/output.c (prepare_symbols): Avoid trailing spaces in the
2034 output.
2035
20362003-03-31 Akim Demaille <akim@epita.fr>
2037
2038 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
2039 From Paul Hilfinger.
2040
20412003-03-29 Akim Demaille <akim@epita.fr>
2042
2043 * m4/error.m4: Do not put under dynamic conditions some code which
2044 expansion is under static control.
2045
20462003-03-29 Akim Demaille <akim@epita.fr>
2047
2048 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
2049
20502003-03-29 Akim Demaille <akim@epita.fr>
2051
2052 * doc/bison.texinfo (Strings are Destroyed): New.
2053
20542003-03-13 Paul Eggert <eggert@twinsun.com>
2055
2056 * .cvsignore: Add configure.lineno.
2057 * src/.cvsignore: Add yacc.
2058 * tests/.cvsignore: Add testsuite.log.
2059 * doc/fdl.texi: Sync with latest FSF version.
2060
20612003-03-12 Paul Eggert <eggert@twinsun.com>
2062
2063 * scan-gram.l (YY_USER_INIT): Initialize code_start, too.
2064 (<INITIAL><<EOF>>, <SC_PRE_CODE><<EOF>>): Set *loc to the scanner
2065 cursor, instead of leaving it undefined. This fixes a bug
2066 reported by Tim Van Holder in
2067 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
2068 * tests/input.at (Torturing the Scanner): Test the scanner on
2069 an empty input file, which was Tim Van Holder's test case.
2070
2071 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): When checking whether
2072 <sys/resource.h> can be included, include sys/time.h and
2073 sys/times.h first, if available. This works around the SunOS
2074 4.1.4 porting bug reported by Bruce Becker in
2075 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
2076
2077 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't
2078 AC_CHECK_HEADERS([sys/wait.h]), as this interferes with
2079 AC_HEADER_SYS_WAIT.
2080
2081 Merge changes from gnulib. This was prompted because the CVS
2082 snapshot didn't build on Solaris 7 due to strnlen problems.
2083
2084 These changes need to be merged back into gnulib:
2085 * lib/hash.c: Include <stdbool.h> unconditionally.
2086 * m4/onceonly.m4 (m4_quote): New macro.
2087 (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE):
2088 Quote AC_FOREACH variable-expansions properly.
2089 The 2003-01-03 obstack.h change also needs merging.
2090 {end of changes requiring merging}
2091
2092 * lib/stdbool.h.in, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
2093 m4/getopt.m4, m4/hash.m4, m4/malloc.m4, m4/memchr.m4,
2094 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/quote.m4,
2095 m4/quotearg.m4, m4/realloc.m4, m4/stpcpy.m4, m4/strnlen.m4,
2096 m4/strtol.m4, m4/strtoul.m4, m4/unlocked-io.m4, m4/xalloc.m4:
2097 New files, imported from gnulib.
2098 * m4/Makefile.am (EXTRA_DIST): Add the new m4/*.m4 files mentioned
2099 above.
2100
2101 * lib/mbswidth.c, m4/error.m4, m4/mbrtowc.m4, m4/mbswidth.m4,
2102 m4/memcmp.m4, m4/prereq.m4, m4/stdbool.m4: Update to current
2103 gnulib sources.
2104
2105 * configure.ac (gl_DIRNAME, gl_GETOPT, gl_HASH, gl_QUOTE, gl_XALLOC):
2106 Add.
2107 (gl_ERROR): New, replacing jm_PREREQ_ERROR.
2108 (gl_FUNC_ALLOCA): New, replacing AC_FUNC_ALLOCA.
2109 (gl_FUNC_STPCPY): New, replacing AC_REPLACE_FUNCS(stpcpy).
2110 (gl_FUNC_STRNLEN): New, replacing AC_FUNC_STRNLEN.
2111 (gl_MBSWIDTH): New, replacing jm_PREREQ_MBSWIDTH.
2112 (gl_OBSTACK): New, replacing AC_FUNC_OBSTACK.
2113 (gl_QUOTEARG): New, replacing jm_PREREQ_QUOTEARG.
2114 (jm_FUNC_GLIBC_UNLOCKED_IO, gl_FUNC_STPCPY, gl_FUNC_STRTOL): New.
2115 (jm_FUNC_MALLOC): New, replacing AC_FUNC_MALLOC.
2116 (jm_FUNC_REALLOC): New, replacing AC_FUNC_REALLOC.
2117 (jm_PREREQ_ARGMATCH): Remove.
2118 (AC_REPLACE_FUNCS): Remove memchr, memrchr, stpcpy, strtol, strtoul.
2119 * lib/Makefile.am (libbison_a_SOURCES): Add argmatch.c, argmatch.h.
2120
2121 * src/system.h: Include <stdbool.h> unconditionally.
2122
2123 * lib/bbitset.h: Include <limits.h> unconditionally. We have been
2124 assuming at least C89 in the bitset code for some time now.
2125
21262003-03-03 Akim Demaille <akim@epita.fr>
2127
2128 * ro.po: New.
2129
21302003-03-02 Akim Demaille <akim@epita.fr>
2131
2132 * doc/bison.texinfo (Table of Symbols): Reactivate the
2133 documentation for %lex-param, and %parse-param.
2134
21352003-03-02 Akim Demaille <akim@epita.fr>
2136
2137 * data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to
2138 generate verbose error messages.
2139 Use the number of tokens as an upper bound in yytname, as it
2140 cannot be a non terminal.
2141
21422003-03-02 Akim Demaille <akim@epita.fr>
2143
2144 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
2145 message.
2146
21472003-03-02 Akim Demaille <akim@epita.fr>
2148
2149 * tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New.
2150 Use them to exercise yycheck overrun.
2151 Based on Andrew Suffield's grammar.
2152
21532003-03-02 Akim Demaille <akim@epita.fr>
2154
2155 Create tests/local.at for Bison generic testing macros.
2156
2157 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to...
2158 * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
2159 This new file.
2160 * tests/calc.at (AT_CHECK_CALC): Adjust.
2161 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR)
2162 (AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to...
2163 * tests/local.at: here.
2164 (AT_COMPILE_CXX): Tags the tests using it as c++.
2165 Ignore the test if CXX is not functional.
2166
21672003-03-01 Paul Eggert <eggert@twinsun.com>
2168
2169 * src/scan-gram.l (code_start): Initialize it to scanner_cursor,
2170 not loc->end, since loc->end might contain garbage and this leads
2171 to undefined behavior on some platforms.
2172 (id_loc, token_start): Use (IF_LINTed) initial values that do not
2173 depend on *loc, so that the reader doesn't give the the false
2174 impression that *loc is initialized.
2175 (<INITIAL>"%%"): Do not bother setting code_start, since its value
2176 does not survive the return.
2177
21782003-03-01 Akim Demaille <akim@epita.fr>
2179
2180 * src/scan-gram.l (code_start): Always initialize it when entering
2181 into yylex, as SC_EPILOGUE is activated *before* the corresponding
2182 yylex invocation. An alternative would be making it static, but
2183 then it starts with the second %%'s beginning, instead of its end.
2184
21852003-02-28 Paul Eggert <eggert@twinsun.com>
2186
2187 * lib/mbswidth.c: Include <wchar.h> before "mbswidth.h", to work
2188 around a UnixWare 7.1.1 porting bug reported by John Hughes in
2189 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
2190
21912003-02-26 Paul Eggert <eggert@twinsun.com>
2192
2193 * README: Mention compiler bug in Sun Forte Developer 6 update 2.
2194 Remove Sequent/Pyramid discussion (nobody uses them any more).
2195 Merge VMS and MS-DOS discussion; these ports may well be dead
2196 but let's keep mentioning them for now. Put <> around email
2197 addresses. Add copyright notice.
2198
21992003-02-24 Paul Eggert <eggert@twinsun.com>
2200
2201 * data/glr.c (yy_reduce_print): yylineno -> yylno,
2202 to avoid collision with flex use of yylineno.
2203 Problem reported by Bruce Lilly in
2204 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
2205 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
2206 * data/yacc.c (yy_reduce_print): Likewise.
2207
2208 * config/depcomp: Sync with Automake 1.7.3.
2209
22102003-02-21 Akim Demaille <akim@epita.fr>
2211
2212 * data/lalr1.cc: Use temporary variables instead of casts to
2213 change integer types.
2214 Suggested by Paul Eggert.
2215
22162003-02-21 Akim Demaille <akim@epita.fr>
2217
2218 * doc/bison.texinfo: Use "location" consistently to refer to @n,
2219 to avoid confusions with lalr1.cc's notion of Position.
2220 Suggested by Paul Eggert.
2221
22222003-02-20 Akim Demaille <akim@epita.fr>
2223
2224 * data/lalr1.cc (position.hh): Make sure "columns" never pushes
2225 before initial_columns.
2226 (location.hh): Use consistent variable names when defining the
2227 operator<<.
2228 Use "last" so that we subtract from Positions, not from unsigned.
2229
22302003-02-20 Akim Demaille <akim@epita.fr>
2231
2232 * data/lalr1.cc (position.hh): New subfile, including the extended
2233 and Doxygen'ed documentation of class Position.
2234 (location.hh): Use it.
2235 Document a` la Doxygen.
2236 With the help of Benoit Perrot.
2237
22382003-02-20 Akim Demaille <akim@epita.fr>
2239
2240 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
2241 AT_YACC_IF.
2242 Redefine AT_YYERROR_SEES_LOC_IF using it.
2243 (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
2244 not defined.
2245 Don't use the location in yy::Parser::error_ and
2246 yy::Parser::print_ when not %locations.
2247 Activate more lalr1.cc tests.
2248
22492003-02-19 Akim Demaille <akim@epita.fr>
2250
2251 * data/lalr1.cc: When displaying a line number, be sure to make it
2252 an int.
2253
22542003-02-19 Akim Demaille <akim@epita.fr>
2255
2256 * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
2257 Remove, useless.
2258 (YYABORT, YYACCEPT, YYERROR): New.
2259 * tests/calc.at: Renable the lalr1.cc test.
2260
22612003-02-19 Akim Demaille <akim@epita.fr>
2262
2263 * tests/calc.at (AT_CHECK_CALC): Check different scenarios of
2264 error recovery, mixing with/without pops and discarding of the
2265 lookahead.
2266 Exercise YYERROR.
2267 Disable the lalr1.cc tests as currently it doesn't support YYERROR.
2268
22692003-02-17 Paul Eggert <eggert@twinsun.com>
2270
2271 * tests/atlocal.in (LDFLAGS, LIBS): New vars.
2272 * tests/testsuite.at (AT_COMPILE): Use them.
2273 This fixes the testsuite problem reported by Robert Lentz in
2274 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
2275
22762003-02-12 Paul Eggert <eggert@twinsun.com>
2277
2278 * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
2279 Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
2280 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
2281 * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
2282 Check for malloc failure, for consistency with yacc.c.
2283 (yytname_size): Remove, for consistency with yacc.c.
2284
2285 The bug still remains in data/lalr1.cc, as I didn't have time
2286 to fix it there.
2287
22882003-02-06 Akim Demaille <akim@epita.fr>
2289
2290 * configure.ac (GXX): Rename as...
2291 (CXX): this, to keep the original Autoconf semantics.
2292 Require 2.57.
2293 * data/lalr1.cc: Fix b4_copyright invocations.
2294 If YYDEBUG is not defined, don't depend upon name_ being defined.
2295 (location.hh): Include string and iostream.
2296 (Position::filename): New member.
2297 (Position::Position ()): New.
2298 (operator<< (Position)): New.
2299 (operator- (Position, int)): New.
2300 (Location::first, Location::last): Rename as...
2301 (Location::begin, Location::end): these, to mock the conventional
2302 iterator names.
2303 (operator<< (Location)): New.
2304 * tests/atlocal.in (CXX): New.
2305 * tests/testsuite.at (AT_COMPILE_CXX): New.
2306 * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
2307 locations in a more synthetic way.
2308 (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
2309 lalr1.cc is used.
2310 Adjust the C locations to match those from Emacs: first column is
2311 column 0.
2312 Change all the expected results.
2313 Conform to the GCS: simplify the locations when applicable.
2314 (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
2315 (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
2316 these CPP macros with the m4 macros new defined by...
2317 (AT_CHECK_PUSHDEFS): this, i.e.:
2318 (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
2319 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
2320 New macros.
2321 (AT_CHECK_POPDEFS): Undefine them.
2322 (AT_CHECK_CALC_LALR1_CC): New.
2323 Use it for the first lalr1.cc test.
2324
23252003-02-04 Akim Demaille <akim@epita.fr>
2326
2327 * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
2328 Location as is defined.
2329
23302003-02-04 Akim Demaille <akim@epita.fr>
2331
2332 * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
2333 name_ being defined.
2334
23352003-02-03 Paul Eggert <eggert@twinsun.com>
2336
2337 * src/gram.h (start_symbol): Remove unused decl.
2338
2339 Use more-consistent naming conventions for local vars.
2340
2341 * src/derives.c (derives_compute): Change type of local var from
2342 int to rule_number.
2343 * src/gram.c (grammar_rules_partial_print): Likewise.
2344 * src/print.c (print_core): Likewise.
2345 * src/reduce.c (reduce_grammar_tables): Likewise.
2346
2347 * src/gram.c (grammar_dump): Change name of item_number *
2348 local var from r to rp.
2349 * src/nullable.c (nullable_compute): Likewise.
2350
2351 * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
2352
2353 * src/gram.h (symbol_number_as_item_number): Use sym, not s,
2354 for symbol or symbol_number var.
2355 * src/reader.c (grammar_start_symbol_set): Likewise.
2356 * src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
2357 Likewise.
2358 * src/state.c (transitions_to): Likewise.
2359 * src/state.h: Likewise.
2360 * src/tables.c (symbol_number_to_vector_number): Likewise.
2361
2362 * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
2363 char * var.
2364
2365 * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
2366 var.
2367
2368 * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
2369 var.
2370
2371 * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
2372 Use str, not s, for char * var. Use ch, not c, for character var.
2373 Use size for size var.
2374
2375 * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
2376 char * var.
2377 (uniqstr_print, uniqst_print_processor): Use ustr, not s, for
2378 uniqstr var.
2379 * src/uniqstr.h: Likewise.
2380
2381 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
2382 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
2383 get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
2384 get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
2385 param to have same name as that of enum, so that we don't use
2386 "s" to stand for a non-state.
2387
23882003-02-02 Akim Demaille <akim@epita.fr>
2389
2390 * src/scan-skel.l: Scan more than one inert character per yylex
2391 invocation.
2392
23932003-02-01 Paul Eggert <eggert@twinsun.com>
2394
2395 Version 1.875a.
2396
2397 * po/LINGUAS: Add ms.
2398
23992003-01-30 Akim Demaille <akim@epita.fr>
2400
2401 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
2402
24032003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2404
2405 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
2406 of $1.
2407
2408 Changes in response to error report by S. Eken: GLR mode does not
2409 handle negative $ indices or $ indices in embedded rules correctly.
2410 See <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
2411
2412 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
2413 (b4_rhs_location): Ditto.
2414 (yyfill): New function to copy from stack tree into array
2415 incrementally.
2416 (yyuserAction): Modify to allow incremental move of semantic values
2417 to rhs array when in GLR mode.
2418 Define YYFILL to use in user-defined actions to fill semantic array
2419 as needed.
2420 Remove dummy use of yystack, as there is now a guaranteed use.
2421 (yydoAction): Modify to allow incremental move of semantic values
2422 to rhs array when in GLR mode.
2423 (yyresolveAction): Ditto.
2424 (yyglrShiftDefer): Update comment.
2425 (yyresolveStates): Use X == NULL for pointers, not !X.
2426 (yyglrReduce): Ditto.
2427 (yydoAction): Ditto
2428
2429 * tests/glr-regr1.at: Rename to ...
2430 * tests/glr-regression.at: Add new regression test for the problems
2431 described above (adapted from S. Eken).
2432 Update copyright notice.
2433 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
2434 * tests/Makefile.am: Ditto.
2435
24362003-01-28 Paul Eggert <eggert@twinsun.com>
2437
2438 * data/lalr1.cc: Do not use @output_header_name@ unless
2439 b4_defines_flag is set. This fixes two bugs reported by
2440 Tim Van Holder in
2441 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
2442 and <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
2443
24442003-01-21 Paul Eggert <eggert@twinsun.com>
2445
2446 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
2447 we don't need to worry about yyerrlab1 being reported as an
2448 "unused label" by non-GCC C compilers. The downside is that if
2449 locations are used then a couple of statements are duplicated each
2450 time YYERROR is invoked, but the upside is that the warnings
2451 should vanish.
2452 (yyerrlab1): Move code to YERROR.
2453 (yyerrlab2): Remove. Change uses back to yyerrlab1.
2454 This reverts some of the 2002-12-27 change.
2455
24562003-01-17 Paul Eggert <eggert@twinsun.com>
2457
2458 * src/output.c (symbol_printers_output): Fix typo that led
2459 to core dump. Problem reported by Antonio Rus in
2460 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
2461
24622003-01-13 Akim Demaille <akim@epita.fr>,
2463 Quoc Peyrot <chojin@lrde.epita.fr>,
2464 Robert Anisko <anisko_r@lrde.epita.fr>
2465
2466 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
2467 when the stacks contain one element, as the loop would otherwise
2468 free the last state, and then use the top state (the one we just
2469 popped). This means that the initial elements will not be freed
2470 explicitly, as is the case in yacc.c; it is not a problem, as
2471 these elements have fake values.
2472
24732003-01-11 Paul Eggert <eggert@twinsun.com>
2474
2475 * NEWS: %expect-violations are now just warnings, reverting
2476 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
2477 bootstrapping problem reported by Matthias Klose; see
2478 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
2479 * src/conflicts.c (conflicts_print): Likewise.
2480 * tests/conflicts.at (%expect not enough, %expect too much,
2481 %expect with reduce conflicts): Likewise.
2482 * doc/bison.texinfo (Expect Decl): Document this. Also mention
2483 that the warning is enabled if the number of conflicts changes
2484 (not necessarily increases).
2485
2486 * src/getargs.c (version): Update copyright year.
2487
24882003-01-09 Akim Demaille <akim@epita.fr>
2489
2490 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
2491
24922003-01-08 Paul Eggert <eggert@twinsun.com>
2493
2494 * Makefile.maint (WGETFLAGS):
2495 New macro, containing "-C off" to disable proxy caches.
2496 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
2497 (rel-check): Use $(WGET) instead of wget.
2498
24992003-01-06 Paul Eggert <eggert@twinsun.com>
2500
2501 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
2502 the GLR paper of Scott, Johnstone and Hussain.
2503
25042003-01-04 Paul Eggert <eggert@twinsun.com>
2505
2506 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
2507 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
2508 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
2509 (EXTRA_LIBRARIES): New var, for liby.a.
2510 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
2511 (EXTRA_SCRIPTS): New var, for yacc.
2512
2513 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
2514 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
2515 Problem reported by Nelson H. F. Beebe.
2516
25172003-01-03 Paul Eggert <eggert@twinsun.com>
2518
2519 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
2520 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
2521 when compiling Bison 1.875's `bitset bset = obstack_alloc
2522 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
2523
2524 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
2525 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
2526 grow to a huge size with typical invocation.
2527
2528 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
2529 Use the pattern recommended by Autoconf 2.57, except also protect
2530 against double-definition.
2531 * src/system.h: Likewise.
2532 Portability issues reported by Nelson H. F. Beebe.
2533
2534 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
2535 All uses changed. Provide a definition in both C and C++.
2536 (yytrue, yyfalse): Define even if defined (__cplusplus).
2537
2538 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
2539 Reported by Nelson H. F. Beebe.
2540
2541 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
2542
25432003-01-02 Paul Eggert <eggert@twinsun.com>
2544
2545 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
2546 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
2547 Bug reported by Nelson H. F. Beebe.
2548
25492003-01-01 Paul Eggert <eggert@twinsun.com>
2550
2551 * Version 1.875.
2552
25532002-12-30 Paul Eggert <eggert@twinsun.com>
2554
2555 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
2556 Moved here from...
2557 (<INITIAL>","): Here. This causes stray "," to be treated
2558 more uniformly.
2559
2560 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
2561 last brace in braced code when not in Yacc mode, for compatibility
2562 with Bison 1.35. This resurrects the 2001-12-15 patch to
2563 src/reader.c.
2564
2565 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
2566 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
2567
25682002-12-28 Paul Eggert <eggert@twinsun.com>
2569
2570 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
2571 that of SYM's type. This fixes Debian bug 168069, reported by
2572 Thomas Olsson.
2573
25742002-12-28 Paul Eggert <eggert@twinsun.com>
2575
2576 Version 1.75f.
2577
2578 Switch back to the Yacc style of conflict reports, undoing some
2579 of the 2002-07-30 change.
2580 * doc/bison.texinfo (Understanding): Use Yacc style for
2581 conflict reports. Also, use new way of locating rules.
2582 * src/conflicts.c (conflict_report):
2583 Renamed from conflict_report_yacc, removing the old
2584 'conflict_report'. Translate the entire conflict report at once,
2585 so that we don't assume that "," has the same interpretation in
2586 all languages.
2587 (conflicts_output): Use Yacc-style conflict report for each state,
2588 instead of our more-complicated style.
2589 (conflicts_print): Use Yacc-style conflict report, except print
2590 the input file name when not emulating Yacc.
2591 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
2592 Conflicted Reduction, %expect not enough, %expect too much,
2593 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
2594 * tests/existing.at (GNU Cim Grammar): Likewise.
2595 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
2596
2597 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
2598 fatal): Don't invoke fflush; it's not needed and it might even be
2599 harmful for stdout, as stdout might not be open.
2600 * src/reduce.c (reduce_print): Likewise.
2601
26022002-12-27 Paul Eggert <eggert@twinsun.com>
2603
2604 Fix a bug where error locations were not being recorded correctly.
2605 This problem was originally reported by Paul Hilfinger in
2606 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
2607
2608 * data/yacc.c (yyparse): New local var yylerrsp, to record the
2609 top of the location stack's error locations.
2610 (yyerrlab): Set it. When discarding a token, push its location
2611 onto yylerrsp so that we don't lose track of the error's end.
2612 (yyerrlab1): Now is only the target of YYERROR, so that we can
2613 properly record the location of the action that failed. For GCC
2614 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
2615 GCC warning about yyerrlab1 being unused if YYERROR is unused.
2616 (yyerrlab2): New label, which yyerrlab now falls through to.
2617 Compute the error's location by applying YYLLOC_DEFAULT to
2618 the locations of all the symbols that went into the error.
2619 * doc/bison.texinfo (Location Default Action): Mention that
2620 YYLLOC_DEFAULT is also invoked for syntax errors.
2621 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
2622 Error locations include the locations of all the tokens that were
2623 discarded, not just the last token.
2624
26252002-12-26 Paul Eggert <eggert@twinsun.com>
2626
2627 * src/files.c: Include quote.h.
2628 (compute_output_file_names): Warn if we detect conflicting
2629 outputs to the same file. This should catch the misunderstanding
2630 exemplified by Debian Bug 165349, reported by Bruce Stephens..
2631
2632 * src/conflicts.c (conflicts_print): If the user specifies
2633 "%expect N", report an error if there are any reduce/reduce
2634 conflicts. This is what the manual says should happen.
2635 This fixes Debian bug 130890, reported by Anthony DeRobertis.
2636 * tests/conflicts.at (%expect with reduce conflicts): New test.
2637
2638 Don't use m4_include on relative file names, as it doesn't work as
2639 desired if there happens to be a file with that name under ".".
2640
2641 * m4sugar/version.m4: Remove; it was included but it wasn't used.
2642 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
2643 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
2644 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
2645 * src/output.c (output_skeleton): Use full path names when
2646 specifying a file to include; don't rely on include path, as
2647 it's unreliable when the working file contains a file with
2648 that name.
2649
26502002-12-25 Paul Eggert <eggert@twinsun.com>
2651
2652 Remove obsolete references to bison.simple and bison.hairy.
2653 Problem mentioned by Aubin Mahe in
2654 <http://lists.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
2655 * data/glr.c: Comment fix.
2656 * doc/bison.1: Remove references. Also, mention "yacc".
2657
2658 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
2659 with -g option.
2660
2661 * src/parse-gram.y (declaration): Use enum "report_states" rather
2662 than its numeric value 1.
2663
2664 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
2665 opening a new one. This fixes Debian bug 165349, reported by
2666 Bruce Stephens.
2667
26682002-12-24 Paul Eggert <eggert@twinsun.com>
2669
2670 Version 1.75e.
2671
2672 * Makefile.maint (cvs-update): Don't assume that the shell
2673 supports $(...), as Solaris sh doesn't.
2674
2675 * src/parse-gram.y (lloc_default): Remove test for empty
2676 nonterminals at the end, since it didn't change the result.
2677
26782002-12-24 Paul Eggert <eggert@twinsun.com>
2679
2680 If the user does not define YYSTYPE as a macro, Bison now declares it
2681 using typedef instead of defining it as a macro. POSIX requires this.
2682 For consistency, YYLTYPE is also declared instead of defined.
2683
2684 %union directives can now have a tag before the `{', e.g., the
2685 directive `%union foo {...}' now generates the C code
2686 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
2687 The default union tag is `YYSTYPE', for compatibility with Solaris 9
2688 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
2689 instead of `yyltype'.
2690
2691 `yystype' and `yyltype' are now obsolescent macros instead of being
2692 typedefs or tags; they are no longer documented and will be
2693 withdrawn in a future release.
2694
2695 * data/glr.c (b4_location_type): Remove.
2696 (YYSTYPE): Renamed from yystype.
2697 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
2698 (struct YYLTYPE): Renamed from struct yyltype.
2699 (YYLTYPE): Renamed from yyltype.
2700 (yyltype, yystype): New (and obsolescent) macros,
2701 for backward compatibility.
2702 * data/yacc.c: Likewise.
2703
2704 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
2705 does not specify a union tag. This is for compatibility with
2706 Solaris 9 yacc.
2707
2708 * src/parse-gram.y (add_param): 2nd arg is now char * not char
2709 const *, since it is now modified by stripping surrounding { }.
2710 (current_braced_code): Remove.
2711 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
2712 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
2713 trailing " {...}". Now of type <chars>.
2714 (grammar_declaration): Adjust to bundled tokens.
2715 (code_content): Remove; stripping is now done by add_param.
2716 (print_token_value): Print contents of bundled tokens.
2717 (token_name): New function.
2718
2719 * src/reader.h (braced_code, current_braced_code): Remove.
2720 (token_name): New decl.
2721
2722 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
2723 token_type, not braced_code code_kind. All uses changed.
2724 (SC_PRE_CODE): New state, for scanning after a keyword that
2725 has (or usually has) an immediately-following braced code.
2726 (token_type): New local var, to keep track of which token type
2727 to return when scanning braced code.
2728 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
2729 <INITIAL>"%parse-param", <INITIAL>"%printer",
2730 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
2731 instead of returning a token type immediately.
2732 (<INITIAL>"{"): Set token type.
2733 (<SC_BRACED_CODE>"}"): Use it.
2734 (handle_action_dollar, handle_action_at): Now returns bool
2735 indicating success. Fail if ! current_rule; this prevents a core dump.
2736 (handle_symbol_code_dollar, handle_symbol_code_at):
2737 Remove; merge body into caller.
2738 (handle_dollar, handle_at): Complain in invalid contexts.
2739
2740 * NEWS, doc/bison.texinfo: Document the above.
2741 * NEWS: Fix years and program names in copyright notice.
2742
27432002-12-17 Paul Eggert <eggert@twinsun.com>
2744
2745 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
2746 Reporting, Table of Symbols): Omit mentions of %lex-param and
2747 %parse-param from the documentation for now.
2748
27492002-12-15 Paul Eggert <eggert@twinsun.com>
2750
2751 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
2752 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
2753 lookahead symbol, and which sets yychar in parser actions) and it
2754 disagreed with the Bison documentation. Bug
2755 reported by Andrew Walrond.
2756
2757 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
2758 as the caller now does that.
2759 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
2760 (YYEMPTY): Parenthesize right hand side, since others use it.
2761 (yyparse): Don't assume that our generated code is the only code
2762 that sets yychar.
2763
27642002-12-13 Paul Eggert <eggert@twinsun.com>
2765
2766 Version 1.75d.
2767
2768 POSIX requires a "yacc" command.
2769 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
2770 (MOSTLYCLEANFILES): Add yacc.
2771 (yacc): New rule.
2772 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
2773 as an alias for bison y.
2774
2775 * po/LINGUAS: Add da.
2776
2777 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
2778 problem with latest <getopt.h>.
2779 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
2780
2781 * doc/fdl.texi: Upgrade to 1.2.
2782 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
2783 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
2784 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
2785 gnulib.
2786 * config/install-sh: Sync with autotools.
2787
2788 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
2789 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
2790 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
2791 locations are requested.
2792 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
2793 locations are requested.
2794
27952002-12-12 Paul Eggert <eggert@twinsun.com>
2796
2797 Remove unportable casts and storage allocation tricks.
2798 While we're at it, remove almost all casts, since they
2799 usually aren't needed and are a sign of trouble.
2800
2801 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
2802
2803 * src/derives.c (derives_compute): Do not subtract NTOKENS from
2804 the pointer DSET returned by malloc; this isn't portable.
2805 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
2806 Similarly for DERIVES.
2807 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
2808 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
2809 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
2810
2811 * src/derives.c (derives_compute): Do not bother invoking
2812 int_of_rule_number, since rule numbers are integers.
2813
2814 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
2815 rather than XMALLOC (char, N).
2816
2817 * src/files.c (filename_split): Rewrite to avoid cast.
2818
2819 * src/gram.h (symbol_number_as_item_number,
2820 item_number_as_symbol_number, rule_number_as_item_number,
2821 item_number_as_rule_number):
2822 Now inline functions rather than macros, to avoid casts.
2823 * src/state.h (state_number_as_int): Likewise.
2824 * src/tables.c (state_number_to_vector_number,
2825 symbol_number_to_vector_number): Likewise.
2826
2827 * src/gram.h (int_of_rule_number): Remove; no longer used.
2828
2829 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
2830 since the resulting storage is always stored into.
2831
2832 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
2833 where it's needed.
2834
2835 * src/muscle_tab.c (muscle_m4_output):
2836 Now inline. Return bool, not int.
2837 * src/state.c (state_compare): Likewise.
2838 * src/symtab.c (symbol_check_defined,
2839 symbol_check_alias_consistency, symbol_pack, symbol_translation,
2840 hash_compare_symbol, hash_symbol):
2841 Likewise.
2842 * src/uniqstr.c (uniqstr_print): Likewise.
2843 * src/muscle_tab.c (muscle_m4_output_processor):
2844 New function, to avoid casts.
2845 * src/state.c (state_comparator, stage_hasher): Likewise.
2846 * src/symtab.c (symbol_check_defined_processor,
2847 symbol_check_alias_consistency_processor, symbol_pack_processor,
2848 symbol_translation_processor, hash_symbol_comparator,
2849 hash_symbol_hasher): Likewise.
2850 * src/uniqstr.c (uniqstr_print_processor): Likewise.
2851 * src/muscle_tab.c (muscles_m4_output):
2852 Use new functions instead of casting old functions unportably.
2853 * src/state.c (state_hash_new): Likewise.
2854 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
2855 symbols_token_translations_init):
2856 Likewise.
2857 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
2858
2859 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
2860 var instead of casting to long, to avoid casts.
2861 (prepare_states): Use MALLOC rather than alloca, so that we don't
2862 have to worry about alloca.
2863 * src/state.c (state_hash_lookup): Likewise.
2864
2865 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
2866 local var instead of casting to unsigned char, to avoid casts.
2867
2868 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
2869 STATE_ALLOC): Remove.
2870 (transitions_new, errs_new, reductions_new, state_new): Use malloc
2871 rather than calloc, and use offsetof to avoid allocating slightly
2872 too much storage.
2873 (state_new): Initialize all members.
2874
2875 * src/state.c (state_hash): Use unsigned accumulator, not signed.
2876
2877 * src/symtab.c (symbol_free): Remove; unused.
2878 (symbol_get): Remove cast in lhs of assignment.
2879 (symbols_do): Now static. Accept generic arguments, not
2880 hashing-related ones.
2881
2882 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
2883 (symbol_processor): Remove.
2884 (symbols_do): Remove decl; now static.
2885
2886 * src/system.h (alloca): Remove; decl no longer needed.
2887 (<stddef.h>): Include, for offsetof.
2888 (<inttypes.>, <stdint.h>): Include if available.
2889 (uintptr_t): New type, if system lacks it.
2890 (CALLOC, MALLOC, REALLOC): New macros.
2891 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
2892 new macros.
2893
2894 * src/tables.c (table_size): Now int, to pacify GCC.
2895 (table_grow, table_ninf_remap): Use signed table size.
2896 (save_row): Don't bother initializing locals when not needed.
2897 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
2898 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
2899
2900 * src/vcg.h: Correct misspellings.
2901
2902 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
2903
2904
2905 * src/getargs.c (getargs): Don't assume EOF == -1.
2906
29072002-12-09 Paul Eggert <eggert@twinsun.com>
2908
2909 Change identifier spellings to avoid collisions with names
2910 that are reserved by POSIX.
2911
2912 Don't use names ending in _t, since POSIX reserves them.
2913 For consistency, remove _e and _s endings -- they're weren't
2914 needed to remove ambiguity. All uses changed.
2915 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
2916 turn was just renamed from struniq_t.
2917 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
2918 which in turn was just renamed from struniq_processor_t.
2919 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
2920 in turn was renamed from hash_compare_struniq_t.
2921 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
2922 (state_list): Renamed from state_list_t.
2923 * src/assoc.h (assoc): Renamed from assoc_t.
2924 * src/conflicts.c (enum conflict_resolution): Renamed from
2925 enum conflict_resolution_e.
2926 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
2927 (rule_list): Renamed from rule_list_t.
2928 * src/getargs.h (enum trace): Renamed from enum trace_e.
2929 (enum report): Renamed from enum report_e.
2930 * src/gram.h (item_number): Renamed from item_number_t.
2931 (rule_number): Renamed from rule_number_t.
2932 (struct rule_s): Remove the "rule_s" part; not used.
2933 (rule): Renamed from rule_t.
2934 (rule_filter): Renamed from rule_filter_t.
2935 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
2936 (goto_list): Renamed from goto_list_t.
2937 * src/lalr.h (goto_number): Renamed from goto_number_t.
2938 * src/location.h (location): Renamed from location_t.
2939 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
2940 and moved here from:
2941 * src/muscle_tab.h (muscle_entry_t): here.
2942 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
2943 (rule_list): Renamed from rule_list_t.
2944 * src/print_graph.c (static_graph): Renamed from graph.
2945 * src/reader.h (braced_code): Renamed from braced_code_t.
2946 Remove brace_code_e tag.
2947 * src/relation.h (relation_node): Renamed from relation_node_t.
2948 (relation_nodes): Renamed from relation_nodes_t.
2949 (relation): Renamed from relation_t.
2950 * src/state.h (state_number): Renamed from state_number_t.
2951 (struct state): Renamed from struct state_s.
2952 (state): Renamed from state_t.
2953 (transitions): Renamed from transitions_t. Unused (and
2954 misspelled) transtion_s tag removed.
2955 (errs): Renamed from errs_t. Unused errs_s tag removed.
2956 (reductions): Renamed from reductions_t. Unused tag
2957 reductions_s removed.
2958 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
2959 (struct symbol_list): Renamed from struct symbol_list_s.
2960 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
2961 (struct symbol): Renamed from struct symbol_s.
2962 (symbol): Renamed from symbol_t.
2963 * src/tables.c (vector_number): Renamed from vector_number_t.
2964 (action_number): Renamed from action_t.
2965 * src/tables.h (base_number): Renamed from base_t.
2966 * src/vcg.h (enum color): Renamed from enum color_e.
2967 (enum textmode): Renamed from enum textmode_e.
2968 (enum shape): Renamed from enum shape_e.
2969 (struct colorentry): Renamed from struct colorentry_s.
2970 (struct classname): Renamed from struct classname_s.
2971 (struct infoname): Renamed from struct infoname_s.
2972 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
2973 (enum decision): Renamed from enum decision_e.
2974 (enum orientation): Renamed from enum orientation_e.
2975 (enum alignment): Renamed from enum alignment_e.
2976 (enum arrow_mode): Renamed from enum arrow_mode_e.
2977 (enum crossing_type): Renamed from enum crossing_type_e.
2978 (enum view): Renamed from enum view_e.
2979 (struct node): Renamed from struct node_s.
2980 (node): Renamed from node_t.
2981 (enum linestyle): Renamed from enum linestyle_e.
2982 (enum arrowstyle): Renamed from enum arrowstyle_e.
2983 (struct edge): Renamed from struct edge.
2984 (edge): Renamed from edge_t.
2985 (struct graph): Renamed from struct graph_s.
2986 (graph): Renamed from graph_t.
2987 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
2988 Rename value_t -> value.
2989 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
2990 value_t_as_yystype -> value_as_yystype.
2991
2992 Don't include <errno.h> in the mainstream code, since it
2993 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
2994 * lib/get-errno.c, lib/get-errno.h: New files.
2995 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
2996 get-errno.c.
2997 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
2998 * src/output.c (output_skeleton): Likewise.
2999 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
3000 instead of errno.
3001 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
3002 Likewise.
3003 (handle_action_dollar, handle_action_at): Likewise.
3004 * src/system.h: Do not include <errno.h>.
3005 (TAB_EXT): Renamed from EXT_TAB.
3006 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
3007
3008 Avoid str[a-z]*, since <string.h> reserves that name space.
3009 Change all instances of "struniq" in names to "uniqstr", and
3010 likewise for "STRUNIQ" and "UNIQSTR".
3011 * src/uniqstr.c: Renamed from src/struniq.c.
3012 * src/uniqstr.h: Renamed from src/struniq.h.
3013 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
3014 * src/files.c (strsuffix): Remove; unused.
3015 (concat2): Renamed from stringappend. Now static.
3016 * src/files.h (strsuffix, stringappend): Remove; unused.
3017 * src/parse-gram.y (<chars>): Renamed from <string>.
3018 (<uniqstr>): Renamed from <struniq>.
3019 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
3020 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
3021 (struct graph_s.expand): Renamed from struct graph_s.stretch.
3022 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
3023 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
3024 (N_EXPAND): Renamed from N_STRETCH.
3025
3026 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
3027 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
3028 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
3029 Remove; unused.
3030 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
3031 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
3032 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
3033 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
3034 (BASE_MAXIMUM): Renamed from BASE_MAX.
3035 (BASE_MINIMUM): Renamed from BASE_MIN.
3036 (ACTION_MAX): Remove; unused.
3037 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
3038 Unnecessary casts removed from above defines.
3039
3040
3041 Fix misspelling in names.
3042 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
3043 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
3044 G_NODE_ALIGNEMENT.
3045
3046
3047 * lib/timevar.c (timevar_report): Renamed from time_report,
3048 for consistency with other names.
3049 * lib/timevar.h (timevar_report): New decl.
3050 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
3051
3052
3053 Sort include-file uses.
3054
3055 Reorder all include files under src to be in the order "system.h".
3056 then the ../lib include files in angle brackets (alphabetized),
3057 then the . include files in double-quotes (alphabetized). Fix
3058 dependency breakages encountered in this process, as follows:
3059 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
3060 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
3061 * src/state.h: Include "symtab.h".
3062
30632002-12-08 Paul Eggert <eggert@twinsun.com>
3064
3065 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
3066 since this causes problems when __file__ contains character
3067 sequences like "@" that are treated specially by src/scan-skel.l.
3068 Instead, just use the file's basename. This fixes the bug
3069 reported by Martin Mokrejs in
3070 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
3071
30722002-12-06 Paul Eggert <eggert@twinsun.com>
3073
3074 Add support for rules that do not have trailing semicolons, as
3075 POSIX requires. Improve the quality of locations in Bison
3076 diagnostics.
3077
3078 * src/location.c: Include <quotearg.h>.
3079 (empty_location): Now const.
3080 (location_print): New function. Follow the recommendation of the
3081 GNU Coding Standards for locations that span file boundaries.
3082 * src/location.h: Do not include <quotearg.h>; no longer needed.
3083 (boundary): New type.
3084 (location_t): Use it. This allows locations to span file boundaries.
3085 All member uses changed: file -> start.file or end.file (as needed),
3086 first_line -> start.line, first_column -> start.column,
3087 last_line -> end.line, last_column -> end.column.
3088 (equal_boundaries): New function.
3089 (LOCATION_RESET, LOCATION_STEP): Remove.
3090 (LOCATION_PRINT): Remove. All callers changed to use location_print.
3091 (empty_location): Now const.
3092 (location_print): New decl.
3093 * src/parse-gram.y (lloc_default): New function, which handles
3094 empty locations more accurately.
3095 (YYLLOC_DEFAULT): Use it.
3096 (%token COLON): Remove.
3097 (%token ID_COLON): New token.
3098 (rules): Use it.
3099 (declarations, rules): Remove trailing semicolon.
3100 (declaration, rules_or_grammar_declaration):
3101 Allow empty (";") declaration.
3102 (symbol_def): Remove empty actions; no longer needed.
3103 (rules_or_grammar_declaration): Remove trailing semicolon.
3104 (semi_colon.opt): Remove.
3105 * src/reader.h: Include location.h.
3106 (scanner_cursor): New decl.
3107 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
3108 rolling our own.
3109 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
3110 of *loc.
3111 (STEP): Remove. No longer needed, now that adjust_location does
3112 the work. All uses removed.
3113 (scanner_cursor): New var.
3114 (adjust_location): Renamed from extend_location. It now sets
3115 *loc and adjusts the scanner cursor. All uses changed.
3116 Don't bother testing for CR.
3117 (handle_syncline): Remove location arg; now updates scanner cursor.
3118 All callers changed.
3119 (unexpected_end_of_file): Now accepts start boundary of token or
3120 comment, not location. All callers changed. Update scanner cursor,
3121 not the location.
3122 (SC_AFTER_IDENTIFIER): New state.
3123 (context_state): Renamed from c_context. All uses changed.
3124 (id_loc, code_start, token_start): New local vars.
3125 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
3126 processing of Yacc white space and equivalents here.
3127 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
3128 instead of returning ID immediately, since we need to search for
3129 a subsequent colon.
3130 (<INITIAL>"'", "\""): Save token_start.
3131 (<INITIAL>"%{", "{", "%%"): Save code_start.
3132 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
3133 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
3134 BEGIN context_state at end, not INITIAL.
3135 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
3136 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
3137 Return correct token start.
3138 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
3139 the start of a character, string or multiline comment is found.
3140 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
3141 Reduction): Adjust reported locations to match the more-precise
3142 results now expected.
3143 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
3144 * tests/reduce.at (Useless Rules, Reduced Automaton,
3145 Underivable Rules): Likewise.
3146 * tests/regression.at (Invalid inputs): No longer `expecting ";"
3147 or "|"' now that so many other tokens are allowed by the new grammar.
3148
3149 * src/complain.h (current_file): Remove duplicate decl;
3150 current_file is now owned by files.h.
3151 * src/complain.c, src/scan-gram.l: Include files.h.
3152
31532002-12-06 Paul Eggert <eggert@twinsun.com>
3154
3155 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
3156 promotes to int; it might be unsigned int.
3157 * data/yacc.c (yy_reduce_print): Likewise.
3158
3159 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
3160 be #defined in the prologue, not in the Bison declarations.
3161 This fixes Debian Bug 102878, reported by Shaul Karl.
3162
31632002-12-02 Paul Eggert <eggert@twinsun.com>
3164
3165 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
3166 * lib/strtoul.c: New file, from gnulib.
3167 This fixes a porting bug reported by Peter Klein in
3168 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
3169
31702002-11-30 Paul Eggert <eggert@twinsun.com>
3171
3172 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
3173 and put only a forward declaration in the prologue. This is for
3174 consistency with the other scanner helper functions.
3175
3176 Type clashes now generate warnings, not errors, since it
3177 appears that POSIX may allow some grammars with type clashes.
3178 * src/reader.c (grammar_current_rule_check): Warn about
3179 type clashes instead of complaining.
3180 * tests/input.at (Type Clashes): Expect warnings, not complaints.
3181
3182 Add Yacc library, since POSIX requires it.
3183 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
3184 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
3185 * lib/main.c, lib/yyerror.c: New files.
3186
3187 gram_error can be static; it need not be extern.
3188 * src/reader.h (gram_error): Remove decl.
3189 * src/parse-gram.y (gram_error): Now static. Add static decl.
3190 (print_token_value): Omit parameter names from forward decl,
3191 for consistency.
3192
31932002-11-29 Paul Eggert <eggert@twinsun.com>
3194
3195 * doc/bison.texinfo: Emphasize that yylex and yyerror must
3196 be declared before being used. E.g., one should typically
3197 declare them in the prologue. Use GNU coding style in examples.
3198 Put "const" consistently after the type it modifies. Mention
3199 that C99 supports "inline". Mention that yyerror traditionally
3200 returns "int".
3201
3202 %parse-param and %lex-param now take just one argument, the
3203 declaration; the argument name is deduced from the declaration.
3204
3205 * doc/bison.texinfo (Parser Function, Pure Calling, Error
3206 Reporting, Table of Symbols): Document this.
3207 * src/parse-gram.y (add_param): New function.
3208 (COMMA): Remove.
3209 (declaration): Implement new rule for %parse-param and %lex-param.
3210 * src/scan-gram.l: "," now elicits a warning, rather than being
3211 a token; this is more compatible with byacc.
3212 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
3213
32142002-11-27 Paul Eggert <eggert@twinsun.com>
3215
3216 Rename identifiers to avoid real and potential collisions.
3217
3218 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
3219 to avoid collision with lex macro described by Bruce Lilly in
3220 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
3221 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
3222 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
3223 * src/parse-gram.y (print_token_value): Renamed from yyprint.
3224 All uses changed.
3225 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
3226 The name "yycontrol" violates the name space rules, and this stuff
3227 wasn't being used anyway.
3228 (input): Remove action; this stuff wasn't being used.
3229 (gram_error): Rename local variable yylloc -> loc.
3230 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
3231 (YY_DECL): Don't use "yy" at start of local variables.
3232 All uses changed, e.g., yylloc -> loc.
3233 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
3234 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
3235 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
3236 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
3237
3238 * src/parse-gram.y (gram_error): loc is now const *.
3239 * src/reader.h (gram_error): Likewise.
3240
32412002-11-24 Paul Eggert <eggert@twinsun.com>
3242
3243 Version 1.75c.
3244
3245 * tests/actions.at (Actions after errors): Use an output format
3246 more similar to that of the Printers and Destructors test.
3247 Test the position of the ';' token too.
3248 (Printers and Destructors): Likewise.
3249 (Printers and Destructors: %glr-parser): Remove for now, to avoid
3250 unnecessarily alarming people when the test fails.
3251
3252 * data/yacc.c (yyerrlab1): Move this label down, so that the
3253 parser does not discard the lookahead token if the user code
3254 invokes YYERROR. This change is required for POSIX conformance.
3255
3256 * lib/error.c: Sync with gnulib.
3257
32582002-11-22 Paul Eggert <eggert@twinsun.com>
3259
3260 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
3261 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
3262 * lib/xmalloc.c: Likewise.
3263
32642002-11-20 Paul Eggert <eggert@twinsun.com>
3265
3266 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
3267
32682002-11-20 Paul Eggert <eggert@twinsun.com>
3269
3270 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
3271 should use `if (! x) abort ();' rather than `assert (x);', and
3272 anyway it's one less thing to worry about configuring.
3273
3274 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
3275 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
3276 and replace all instances of assert with abort.
3277 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
3278 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
3279
3280 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
3281 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
3282 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
3283 hash_find_entry, hash_rehash, hash_insert): Likewise.
3284 * src/conflicts.c (resolve_sr_conflict): Likewise.
3285 * src/lalr.c (set_goto_map, map_goto): Likewise.
3286 * src/nullable.c (nullable_compute): Likewise.
3287 * src/output.c (prepare_rules, token_definitions_output): Likewise.
3288 * src/reader.c (packgram, reader): Likewise.
3289 * src/state.c (state_new, state_free, state_transitions_set,
3290 state_reduction_find): Likewise.
3291 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
3292 symbol_pack): Likewise.
3293 * src/tables.c (conflict_row, pack_vector): Likewise.
3294 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
3295 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
3296 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
3297 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
3298
3299 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
3300 (ARGMATCH_CONSTRAINT): New macro.
3301 (ARGMATCH_ASSERT): Use it.
3302
3303 * src/system.h (verify): New macro.
3304 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
3305 rather than assert.
3306 * src/tables.c (tables_generate): Likewise.
3307
3308 * src/struniq.c (struniq_assert): Now returns void, and aborts
3309 if the assertion is false.
3310 (struniq_assert_p): Remove.
3311 * src/struniq.h: Likewise.
3312
33132002-11-18 Paul Eggert <eggert@twinsun.com>
3314
3315 * data/glr.c (yygetLRActions): Replace `yyindex' with
3316 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
3317 This fixes the regression with Sun ONE Studio 7 cc that I reported in
3318 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
3319
33202002-11-18 Akim Demaille <akim@epita.fr>
3321
3322 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
3323 space.
3324 From Tim Van Holder.
3325
33262002-11-17 Paul Eggert <eggert@twinsun.com>
3327
3328 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
3329 to "SyntaxError" for consistency with my 2002-11-15 change.
3330
3331 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
3332 not define to {}, since this breaks the common use of `YYDPRINTF
3333 ((...));' if a single statement is desired (e.g. before `else').
3334 Work around GCC warnings by surrounding corresponding calls with
3335 {} if needed.
3336 (yyhasResolvedValue): Remove unused function.
3337 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
3338 loop body.
3339 (yyreportSyntaxError): Renamed from yyreportParseError.
3340 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
3341 All uses changed.
3342 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
3343 extern when possible. Remove unused initializations.
3344
33452002-11-16 Akim Demaille <akim@epita.fr>
3346
3347 Augment the similarity between GLR and LALR traces.
3348
3349 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
3350 (YY_REDUCE_PRINT): New.
3351 (yyparse): Use them.
3352 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
3353 YYDPRINT here.
3354 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
3355 state reached after the reduction/recovery, since...
3356 (yyparse, yyprocessOneStack): Report the state we are entering in.
3357
33582002-11-16 Akim Demaille <akim@epita.fr>
3359
3360 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
3361 Add support for --trace=skeleton.
3362 * src/scan-skel.l: %option debug.
3363 Scan strings of non-@ or \n instead of character by character.
3364 (scan_skel): Handle trace_skeleton.
3365 (QPUTS): New.
3366 (@output_parser_name@, @output_header_name@): ``Restore'' their
3367 support (used to be M4 macros).
3368 * data/yacc.c: Quote larger chunks, a la glr.c.
3369 * data/lalr1.cc: Likewise.
3370 The header guards are no longer available, so use some other
3371 string than `YYLSP_NEEDED'.
3372
33732002-11-16 Akim Demaille <akim@epita.fr>
3374
3375 Make the ``Printers and Destructors'' test more verbose, taking
3376 `yacc.c''s behavior as (possibly wrong) reference.
3377
3378 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
3379 instead of fprint on stdout.
3380 Set and report the last_line of the symbols.
3381 Consistently display values and locations.
3382
33832002-11-16 Paul Eggert <eggert@twinsun.com>
3384
3385 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
3386
33872002-11-15 Paul Eggert <eggert@twinsun.com>
3388
3389 * tests/actions.at (Actions after errors): New test case.
3390
3391 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
3392 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
3393 tests/action.at, tests/calc.at, tests/conflicts.at,
3394 tests/cxx-type.at, tests/regression.at:
3395 "parse error" -> "syntax error" for POSIX compatibility.
3396 "parsing stack overflow..." -> "parser stack overflow" so
3397 that code matches Bison documentation.
3398
33992002-11-15 Akim Demaille <akim@epita.fr>
3400
3401 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
3402 take two BRACED_CODE, not two string_content.
3403 Free the scanner's obstack when we are done.
3404 (code_content): New.
3405 * tests/calc.at: Adjust.
3406 * doc/bison.texinfo: Adjust.
3407 Also, make sure to include the `,' for these declarations.
3408
34092002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
3410
3411 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
3412 definition; avoids potential autoreconf problems.
3413
34142002-11-15 Akim Demaille <akim@epita.fr>
3415
3416 Always check the value returned by yyparse.
3417
3418 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
3419 returned by yyparse.
3420 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
3421 Adjust calls.
3422 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
3423 returned by yyparse.
3424
34252002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3426
3427 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
3428 on input.at test.
3429
34302002-11-14 Paul Eggert <eggert@twinsun.com>
3431
3432 * src/output.c (output_skeleton): Call xfopen instead of
3433 duplicating xfopen's body.
3434
3435 Fix bugs reported by Nelson H. F. Beebe in
3436 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
3437
3438 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
3439 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
3440 Group compiler. Instead, use "$CC -E bar.c". Include the .h
3441 file twice in the grammar, as an extra check.
3442
3443 * tests/input.at (Torturing the Scanner): Surround the
3444 backslash-newline tests with "#if 0", to make it less likely that
3445 we'll run into compiler bugs. Bring back solitary \ inside
3446 comment, but add a closing comment to work around HP C bug. Don't
3447 test backslash-newline in C character constant.
3448
34492002-11-14 Akim Demaille <akim@epita.fr>
3450
3451 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
3452 status of the compiler.
3453 Calling `exit 1' is no longer needed.
3454 Reported by Nelson H. F. Beebe.
3455
34562002-11-14 Akim Demaille <akim@epita.fr>
3457
3458 * tests/atlocal.in (CPPFLAGS): We have config.h.
3459 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
3460 New.
3461 * tests/actions.at, tests/calc.at, tests/conflicts.at,
3462 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
3463 * tests/regression.at, tests/torture.at: Use them for all the
3464 grammars that are to be compiled.
3465 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
3466 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
3467 * doc/bison.texinfo (GLR Parsers): Document `inline'.
3468
34692002-11-14 Akim Demaille <akim@epita.fr>
3470
3471 * doc/bison.texinfo: Various formatting changes (alignments in
3472 samples, additional @group/@end group, GCS in samples.
3473 Use @deffn instead of simple @table to define the directives,
3474 macros, variables etc.
3475
34762002-11-13 Paul Eggert <eggert@twinsun.com>
3477
3478 Fix some bugs reported by Albert Chin-A-Young in
3479 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
3480
3481 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
3482 -o c"; the HP C compiler chatters during compilation.
3483 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
3484 * tests/headers.at (export YYLTYPE): Likewise.
3485
3486 * tests/input.at (Torturing the Scanner): Remove lines containing
3487 solitary backslashes, as they tickle a bug in the HP C compiler.
3488
3489 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
3490 comments, since they're not portable. Use GNU coding style.
3491
34922002-11-13 Akim Demaille <akim@epita.fr>
3493
3494 * data/yacc.c: Leave bigger chunks of quoted text.
3495 (YYDSYMPRINTF): New.
3496 Use it to report symbol activities.
3497 * data/glr.c (YYDSYMPRINTF): New.
3498 Use it.
3499
35002002-11-12 Paul Eggert <eggert@twinsun.com>
3501
3502 Version 1.75b.
3503
3504 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
3505 (yyglrReduce): Return yyok, not 0.
3506 This should avoid the enumerated-type warnings reported
3507 by Nelson H. F. Beebe in
3508 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
3509
3510 * lib/bbitset.h (BITSET_INLINE): Remove.
3511 * lib/bitset.h [! BITSET_INLINE]: Remove.
3512 (bitset_set, bitset_reset, bitset_test): Rename local vars
3513 to avoid shadowing warnings by GCC.
3514
3515 * data/glr.c (inline): Remove #define. It's the user's
3516 responsibility to #define it away, just like 'const'.
3517 This fixes one of the bugs reported by Nelson H. F. Beebe in
3518 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
3519
3520 * Makefile.maint (po-check): Scan .l and .y files instead of the
3521 .c and the .h files that they generate. This fixes the bug
3522 reported by Tim Van Holder in:
3523 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
3524 Look for N_ as well as for _. Try to avoid matching #define for
3525 N_ and _.
3526 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
3527 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
3528 * src/scan-gram.l: Revamp regular expressions so that " and '
3529 do not confuse xgettext.
3530
3531 * src/struniq.h (struniq_new): Do not declare the return type
3532 to be 'const'; this violates the C standard.
3533 * src/struniq.c (struniq_new): Likewise.
3534
35352002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
3536
3537 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
3538 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
3539 linker.
3540
35412002-11-12 Akim Demaille <akim@epita.fr>
3542
3543 * Makefile.maint: Sync with Autoconf:
3544 (local_updates): New.
3545
35462002-11-12 Akim Demaille <akim@epita.fr>
3547
3548 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
3549
35502002-11-12 Akim Demaille <akim@epita.fr>
3551
3552 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
3553 locations.
3554
35552002-11-12 Akim Demaille <akim@epita.fr>
3556
3557 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
3558 not yyvalue.
3559
35602002-11-12 Akim Demaille <akim@epita.fr>
3561
3562 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
3563 Use it to test the GLR parser.
3564
35652002-11-12 Akim Demaille <akim@epita.fr>
3566
3567 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
3568 defines it.
3569 * data/glr.c (yystos): New.
3570 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
3571 (YYDSYMPRINT): New.
3572 (yyval): Don't define it, it is handled via M4.
3573 (yyrecoverParseError): Free verbosely the discarded symbols.
3574 * data/yacc.c (yysymprint): Remove, rather...
3575 (b4_yysymprint_generate): invoke.
3576 * data/c.m4 (b4_yysymprint_generate): New.
3577 Accept pointers as arguments, as opposed to the version from
3578 yacc.c.
3579 (b4_yydestruct_generate): Likewise.
3580 * tests/cations.at (Printers and Destructors): Use Bison directives
3581 instead of CPP macros.
3582 Don't rely on internal details.
3583
35842002-11-12 Akim Demaille <akim@epita.fr>
3585
3586 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
3587 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
3588 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
3589 it against YYEMPTY and so forth), work on yytoken (i.e., set
3590 it to YYEMPTY etc.).
3591 (yydestruct): Replace with a b4_yydestruct_generate invocation.
3592 (b4_symbol_actions): Remove.
3593 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
3594 for 0, end-of-input.
3595
35962002-11-12 Akim Demaille <akim@epita.fr>
3597
3598 * doc/bison.texinfo (Destructor Decl): New.
3599
36002002-11-12 Akim Demaille <akim@epita.fr>
3601
3602 * src/tables.c (tables_generate): Use free for pointers that
3603 cannot be NULL, not XFREE.
3604 (pack_vector): Use assert, not fatal, for bound violations.
3605 * src/state.c (state_new): Likewise.
3606 * src/reader.c (reader): Likewise.
3607 * src/lalr.c (set_goto_map): Likewise.
3608 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
3609 the file name.
3610
36112002-11-12 Akim Demaille <akim@epita.fr>
3612
3613 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
3614 Restore.
3615 * src/scan-gram.l (last_string): Is global to the file, not to
3616 yylex.
3617 * src/parse-gram.y (input): Don't append the epilogue here,
3618 (epilogue.opt): do it here, and free the scanner's obstack.
3619 * src/reader.c (epilogue_set): Rename as...
3620 (epilogue_augment): this.
3621 * data/c.m4 (b4_epilogue): Defaults to empty.
3622
36232002-11-12 Akim Demaille <akim@epita.fr>
3624
3625 * src/getargs.c (long_options): Remove duplicates.
3626 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
3627 Remove.
3628 * doc/bison.rnh: Remove.
3629 * doc/bison.texinfo (VMS Invocation): Remove.
3630
36312002-11-12 Akim Demaille <akim@epita.fr>
3632
3633 * src/struniq.h, src/struniq.c (struniq_t): Is const.
3634 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
3635
3636 Use struniq for symbols.
3637
3638 * src/symtab.h (symbol_t): The tag member is a struniq.
3639 (symbol_type_set): Adjust.
3640 * src/symtab.c (symbol_new): Takes a struniq.
3641 (symbol_free): Don't free the tag member.
3642 (hash_compare_symbol_t, hash_symbol_t): Rename as...
3643 (hash_compare_symbol, hash_symbol): these.
3644 Use the fact that tags as struniqs.
3645 (symbol_get): Use struniq_new.
3646 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
3647 Returns a strniq.
3648 * src/reader.h (merger_list, grammar_currentmerge_set): The name
3649 and type members are struniqs.
3650 * src/reader.c (get_merge_function)
3651 (grammar_current_rule_merge_set): Adjust.
3652 (TYPE, current_type): Are struniq.
3653
3654 Use struniq for file names.
3655
3656 * src/files.h, src/files.c (infile): Split into...
3657 (grammar_file, current_file): these.
3658 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
3659 * src/reduce.c (reduce_print): Likewise.
3660 * src/getargs.c (getargs): Likewise.
3661 * src/complain.h, src/complain.c: Likewise.
3662 * src/main.c (main): Call struniqs_new early enough to use it for
3663 file names.
3664 Don't free the input file name.
3665
36662002-11-12 Akim Demaille <akim@epita.fr>
3667
3668 * src/symtab.c (symbol_free): Remove dead deactivated code:
3669 type_name are properly removed.
3670 Don't use XFREE to free items that cannot be NULL.
3671 * src/struniq.h, src/struniq.c: New.
3672 * src/main.c (main): Initialize/free struniqs.
3673 * src/parse-gram.y (%union): Add astruniq member.
3674 (yyprint): Adjust.
3675 * src/scan-gram.l (<{tag}>): Return a struniq.
3676 Free the obstack bit that used to store it.
3677 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
3678
36792002-11-11 Paul Eggert <eggert@twinsun.com>
3680
3681 Revamp to fix many (but not all) of the C- and M4-related quoting
3682 problems. Among other things, this fixes the Bison bug reported
3683 by Jan Hubicka when processing the Bash grammar; see:
3684 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
3685
3686 Use new @ escapes consistently. Represent brackets with @{ and @}
3687 rather than @<:@ and @:>@, since this works a bit better with dumb
3688 editors like vi. Represent @ with @@, since @ is now consistently
3689 an escape. Use @oline@ and @ofile@ rather than __oline__ and
3690 __ofile__, to avoid unexpected expansions. Similarly, use @output
3691 rather than #output.
3692
3693 * data/c.m4 (b4_copyright): Omit file name from comment, since
3694 the file name could contain "*/".
3695 (b4_synclines_flag): Don't quote the 2nd argument; it should already
3696 be quoted. All uses changed.
3697
3698 * data/glr.c: Use new @ escapes consistently.
3699 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
3700 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
3701 Remove, since they couldn't handle arbitrary characters in file
3702 names.
3703 * data/lalr1.cc: Likewise.
3704 * data/yacc.c: Likewise.
3705
3706 * src/files.c (output_infix): Remove; all uses removed.
3707 * src/files.h: Likewise.
3708
3709 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
3710 mishandled funny characters in file names, and anyway it isn't
3711 needed any more.
3712 * data/yacc.c: Likewise.
3713 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
3714
3715 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
3716 * data/yacc.c: Likewise.
3717
3718 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
3719 strings now.
3720 (muscle_init): Quote filename as a C string.
3721 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
3722 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
3723 * src/output.c (escaped_file_name_output): New function.
3724 (prepare_symbols): Quote tokens for M4.
3725 (prepare): Don't insert output_infix, output_prefix,
3726 output_parser_name, output_header_name; this is now down by scan-skel.
3727 Insert skeleton as a C string.
3728
3729 * src/output.c (user_actions_output, symbol_destructors_output,
3730 symbol_printers_output): Quote filenames for C and M4.
3731 * src/reader.c (prologue_augment, epilogue_set): Likewise.
3732
3733 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
3734 escapes other than \\ and \'; this simplifies the code.
3735 (<SC_STRING>): Likewise, for \\ and \".
3736 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
3737 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
3738 Use new escapes @{ and @} for [ and ].
3739
3740 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
3741 them with auto vars.
3742 Switch to new escape scheme, where @ is the escape character uniformly.
3743 Abort if a stray escape character is found. Avoid unbounded input
3744 buffer when parsing non-escaped text.
3745
3746 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
3747 __oline__, #output, $@, and @{ do not have unintended meanings.
3748
37492002-11-09 Paul Eggert <eggert@twinsun.com>
3750
3751 Fix the test failure due to GCC warnings described in
3752 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
3753 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
3754 evaluate to 0 if it's impossible for NINF to be in the respective
3755 table.
3756 (yygetLRActions, yyrecoverParseError): Use them.
3757
3758 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
3759 counted in the token inserted at end of file. Now takes
3760 location_t *, not location_t, so that the location can be
3761 adjusted. All uses changed.
3762
3763 * tests/regression.at (Invalid inputs): Adjust wording in
3764 diagnostic to match the new behavior.
3765
3766 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
3767 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
3768 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
3769 abort ();'. This reduces the runtime of the "Many lookaheads"
3770 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
3771 GCC 3.2.
3772
37732002-11-07 Paul Eggert <eggert@twinsun.com>
3774
3775 * src/parse-gram.y (CHARACTER): Remove unused token.
3776 All uses removed.
3777
3778 * src/scan-gram.l: Remove stack option. We no longer use the
3779 stack, since the stack was never deeper than 1; instead, use the
3780 new auto var c_context to record the stacked value.
3781
3782 Remove nounput option. At an unexpected end of file, we now unput
3783 the minimal input necessary to end cleanly; this simplifies the
3784 code.
3785
3786 Avoid unbounded token sizes where this is easy.
3787
3788 (unexpected_end_of_file): New function.
3789 Use it to systematize the error message on unexpected EOF.
3790 (last-string): Now auto, not static.
3791 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
3792 (scanner_last_string_free): Remove; not used.
3793 (percent_percent_count): Move decl to just before use.
3794 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
3795 not the (never otherwised-used) CHARACTER.
3796
37972002-11-07 Akim Demaille <akim@epita.fr>
3798
3799 Let yyerror always receive the msg as last argument, so that
3800 yyerror can be variadic.
3801
3802 * data/yacc.c (b4_yyerror_args): New.
3803 Use it when calling yyerror.
3804 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
3805 Use it when calling yyerror.
3806 * doc/bison.texinfo (Error Reporting): Adjust.
3807 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
3808 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
3809
38102002-11-06 Akim Demaille <akim@epita.fr>
3811
3812 #line should have quoted strings.
3813 Ideally, this should be done by m4_quotearg.
3814
3815 * src/scan-skel.l: Include quotearg.h.
3816 Quote __ofile__.
3817 * src/output.c (symbol_printers_output)
3818 (symbol_destructors_output): Quote the file name.
3819
38202002-11-06 Akim Demaille <akim@epita.fr>
3821
3822 * tests/regression.at (Invalid inputs): Adjust to the recent
3823 messages.
3824
38252002-11-06 Akim Demaille <akim@epita.fr>
3826
3827 Restore --no-lines.
3828 Reported by Jim Kent.
3829
3830 * data/c.m4 (b4_syncline): New.
3831 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
3832 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
3833 * src/output.c (user_actions_output): Likewise.
3834 (prepare): Define 'b4_synclines_flag'.
3835 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
3836
38372002-11-06 Akim Demaille <akim@epita.fr>
3838
3839 * src/main.c (main): Free `infile'.
3840 * src/scan-gram.l (handle_syncline): New.
3841 Recognize `#line'.
3842 * src/output.c (user_actions_output, symbol_destructors_output)
3843 (symbol_printers_output): Use the location's file name, not
3844 infile.
3845 * src/reader.c (prologue_augment, epilogue_set): Likewise.
3846
38472002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3848
3849 * src/tables.c (matching_state): Don't allow states to match if
3850 either has GLR conflict entries.
3851
38522002-11-05 Paul Eggert <eggert@twinsun.com>
3853
3854 * src/scan-gram.l: Use more accurate diagnostics, e.g.
3855 "integer out of range" rather than "invalid value".
3856 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
3857 accordingly.
3858
3859 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
3860 Also, remove one static variable in the scanner.
3861
3862 * src/scan-gram.l (braces_level): Now auto, not static.
3863 Initialize to zero if the compiler is being picky.
3864 (INITIAL): Clear braces_level instead of incrementing it.
3865 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
3866 as POSIX 1003.1-2001 requires.
3867 * src/system.h (IF_LINT): New macro, taken from coreutils.
3868 * configure.ac: Define "lint" if --enable-gcc-warnings.
3869
38702002-11-05 Akim Demaille <akim@epita.fr>
3871
3872 * src/scan-gram.l: When it starts with `%', complain about the
3873 whole directive, not just that `invalid character: %'.
3874
38752002-11-04 Akim Demaille <akim@epita.fr>
3876
3877 * Makefile.maint: Update from Autoconf.
3878 (update, cvs-update, po-update, do-po-update): New.
3879
38802002-11-04 Akim Demaille <akim@epita.fr>
3881
3882 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
3883 and yyerror.
3884 Have yyerror `use' its arguments.
3885 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
3886 returns true when location & yacc & pure & parse-param.
3887 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
3888
38892002-11-04 Akim Demaille <akim@epita.fr>
3890
3891 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
3892 clashes.
3893 * src/scan-gram.l: Use [\'] instead of ['] to pacify
3894 font-lock-mode.
3895 Use complain_at.
3896 Use quote, not quote_n since LOCATION_PRINT no longer uses the
3897 slot 0.
3898
38992002-11-03 Paul Eggert <eggert@twinsun.com>
3900
3901 * src/reader.c (get_merge_function, grammar_current_rule_check):
3902 Use consistent diagnostics for reporting type name clashes.
3903 Quote the types with <>, for consistency with Yacc.
3904 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
3905
39062002-11-03 Akim Demaille <akim@epita.fr>
3907
3908 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
3909 New.
3910 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
3911 (b4_parse_param): Remove.
3912 Use b4_identification.
3913 Propagate b4_pure_args where needed to pass them to yyerror.
3914 * data/glr.m4 (b4_parse_param): Remove.
3915 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
3916 (b4_lpure_formals): New.
3917 Use b4_identification.
3918 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
3919 b4_user_formals and b4_user_args.
3920 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
3921 (yyreportAmbiguity): When using a pure parser, also need
3922 the location, and the parse-params.
3923 Adjust callers.
3924 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
3925 When using a pure parser, also need the parse-params.
3926 Adjust callers.
3927 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
3928 (%pure-parser + %parse-param) LALR and GLR parsers.
3929 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
3930 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
3931 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
3932 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
3933 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
3934 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
3935 * doc/bison.texinfo: Untabify the whole file.
3936 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
3937 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
3938 (Error Reporting): Adjust to these new directives.
3939 Document %error-verbose, deprecate YYERROR_VERBOSE.
3940
39412002-11-03 Akim Demaille <akim@epita.fr>
3942
3943 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
3944 AT_CHECK_CALC_GLR invocations to use % directives, instead of
3945 command line options.
3946 * tests/cxx-type.at: Formatting changes.
3947
39482002-11-03 Paul Eggert <eggert@twinsun.com>
3949
3950 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
3951 to count columns correctly, and to check for invalid inputs.
3952
3953 Use mbsnwidth to count columns correctly. Account for tabs, too.
3954 Include mbswidth.h.
3955 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
3956 (extend_location): New function.
3957 (YY_LINES): Remove.
3958
3959 Handle CRLF in C code rather than in Lex code.
3960 (YY_INPUT): New macro.
3961 (no_cr_read): New function.
3962
3963 Scan UCNs, even though we don't fully handle them yet.
3964 (convert_ucn_to_byte): New function.
3965
3966 Handle backslash-newline correctly in C code.
3967 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
3968 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
3969 all uses changed.
3970 (tag, splice): New EREs. Do not allow NUL or newline in tags.
3971 Use {splice} wherever C allows backslash-newline.
3972 YY_STEP after space, newline, vertical-tab.
3973 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
3974
3975 (letter, id): Don't assume ASCII; e.g., spell out a-z.
3976
3977 ({int}, handle_action_dollar, handle_action_at): Check for integer
3978 overflow.
3979
3980 (YY_STEP): Omit trailing semicolon, so that it's more like C.
3981
3982 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
3983 as well as \000. Check for UCHAR_MAX, not 255.
3984 Allow \x with an arbitrary positive number of digits, as in C.
3985 Check for overflow here.
3986 Allow \? and UCNs, for compatibility with C.
3987
3988 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
3989 with quote slot used by complain_at.
3990
3991 * tests/input.at: Add tests for backslash-newline, m4 quotes
3992 in symbols, long literals, and funny escapes in strings.
3993
3994 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
3995 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
3996 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
3997 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
3998 * m4/mbswidth.m4: New file, from GNU coreutils.
3999
4000 * doc/bison.texinfo (Grammar Outline): Document // comments.
4001 (Symbols): Document that trigraphs have no special meaning in Bison,
4002 nor is backslash-newline allowed.
4003 (Actions): Document that trigraphs have no special meaning.
4004
4005 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
4006 no longer used.
4007
40082002-11-02 Paul Eggert <eggert@twinsun.com>
4009
4010 * src/reader.c: Don't include quote.h; not needed.
4011 (get_merge_function): Reword warning to be consistent with
4012 type clash diagnostic in grammar_current_rule_check.
4013
4014 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
4015 bug in trigraph handling.
4016
4017 * src/output.c (prepare_symbols): When printing token names,
4018 escape "[" as "@<:@" and likewise for "]".
4019
4020 * src/system.h (errno): Remove declaration, as we are now
4021 assuming C89 or better, and C89 guarantees errno.
4022
40232002-10-30 Paul Eggert <eggert@twinsun.com>
4024
4025 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
4026 Check for close failures.
4027 * src/files.h (xfclose): Return void, not int, since it always
4028 returned zero.
4029 * src/files.c (xfclose): Likewise. Report I/O error if ferror
4030 indicates one.
4031 * src/output.c (output_skeleton): Use xfclose rather than fclose
4032 and ferror. xfclose now checks ferror.
4033
4034 * data/glr.c (YYLEFTMOST_STATE): Remove.
4035 (yyreportTree): Use a stack-based leftmost state. This avoids
4036 our continuing battles with bogus warnings about initializers.
4037
40382002-10-30 Akim Demaille <akim@epita.fr>
4039
4040 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
4041 #if.
4042
40432002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4044
4045 * tests/glr-regr1.at: New test for reported regressions.
4046 * tests/testsuite.at: Add glr-regr1.at test.
4047 * tests/Makefile.am: Add glr-regr1.at test.
4048
40492002-10-24 Paul Eggert <eggert@twinsun.com>
4050
4051 Version 1.75a.
4052
4053 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
4054 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
4055 we use malloc. Don't assume 'A' through 'Z' are contiguous.
4056 Don't assume strdup exists; POSIX says its an XSI extension.
4057 Check for buffer overflow on input.
4058
40592002-10-24 Akim Demaille <akim@epita.fr>
4060
4061 * src/output.c (output_skeleton): Don't disable M4sugar comments
4062 too soon: it results in comments being expanded.
4063 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
4064 first output.
4065
40662002-10-24 Akim Demaille <akim@epita.fr>
4067
4068 * data/yacc.c (m4_int_type): New.
4069 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
4070 char' as only yacc.c wants K&R portability.
4071 * data/glr.c (yysigned_char): Remove.
4072 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
4073 Reported by Quoc Peyrot.
4074
40752002-10-23 Paul Eggert <eggert@twinsun.com>
4076
4077 * src/main.c (main): With --trace=time, report times even if a
4078 non-fatal error occurs. Formerly, the times were reported in some
4079 such cases but not in others.
4080 * src/reader.c (reader): Just return if a complaint has been issued,
4081 instead of exiting, so that 'main' can report times.
4082
40832002-10-22 Akim Demaille <akim@epita.fr>
4084
4085 * src/system.h: Include sys/types.
4086 Reported by Bert Deknuydt.
4087
40882002-10-23 Paul Eggert <eggert@twinsun.com>
4089
4090 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
4091 Suggested by Art Haas.
4092
40932002-10-22 Paul Eggert <eggert@twinsun.com>
4094
4095 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
4096 decl; not needed any more.
4097 * src/main.c (main): Use return to exit, undoing yesterday's change.
4098 The last OS that we could find where this wouldn't work is
4099 SunOS 3.5, and that's too old to worry about now.
4100
4101 * data/glr.c (struct yyltype): Define members even when not
4102 doing locations. This is more consistent with yacc.c, and it
4103 works around the following bug reports:
4104 http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
4105 http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
4106
4107 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
4108 @acronym consistently. Standardize on "Yacc" instead of "YACC",
4109 "Algol" instead of "ALGOL". Give a bit more history about BNF.
4110
41112002-10-22 Akim Demaille <akim@epita.fr>
4112
4113 * data/README: New.
4114
41152002-10-21 Paul Eggert <eggert@twinsun.com>
4116
4117 Be consistent about 'bool'; the old code used an enum in one
4118 module and an int in another, and this violates the C standard.
4119 * m4/stdbool.m4: New file, from coreutils 4.5.3.
4120 * configure.ac (AC_HEADER_STDBOOL): Add.
4121 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
4122 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
4123 * src/symtab.c (hash_compare_symbol_t): Likewise.
4124 * src/system.h (bool, false, true): Use a definition consistent
4125 with ../lib/hash.c. All uses changed.
4126
4127 * src/complain.c (warning_issued): Renamed from warn_message_count,
4128 so that we needn't worry about integer overflow (!).
4129 Now of type bool. All uses changed.
4130 (complaint_issued): Renamed from complain_message_count; likewise.
4131
4132 * src/main.c (main): Use exit to exit with failure.
4133
4134 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
4135 rather than 1 and 0.
4136 * src/main.c (main): Likewise.
4137 * src/getargs.c (getargs): Likewise.
4138 * src/reader.c (reader): Likewise.
4139
4140 * src/getarg.c (getargs): Remove duplicate code for
4141 "Try `bison --help'".
4142
4143 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
4144 What was that "2" for?
4145
4146 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
4147 * src/getargs.c (usage): Likewise.
4148
4149 * src/getargs.c (getargs): When there are too few operands, report
4150 the last one. When there are too many, report the first extra
4151 one. This is how diffutils does it.
4152
41532002-10-20 Paul Eggert <eggert@twinsun.com>
4154
4155 Remove K&R vestiges.
4156 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
4157 * src/complain.c (VA_START): Remove. Assume prototypes.
4158 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
4159 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
4160 fatal): Assume prototypes.
4161 * src/complain.h: Assume prototypes.
4162 * src/system.h (PARAMS): Remove.
4163 Include <limits.h> unconditionally, since it's guaranteeed even
4164 for a freestanding C89 compiler.
4165 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
4166 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
4167
41682002-10-20 Akim Demaille <akim@epita.fr>
4169
4170 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
4171 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
4172 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
4173 (yyresolveStates, yyresolveAction, yyresolveStack)
4174 (yyprocessOneStack): Use them.
4175 (yy_reduce_print): New.
4176 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
4177
41782002-10-20 Akim Demaille <akim@epita.fr>
4179
4180 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
4181 arguments and output `void'.
4182 (b4_c_function): Rename as...
4183 (b4_c_function_def): this.
4184 (b4_c_function_decl, b4_c_ansi_function_def)
4185 (b4_c_ansi_function_decl): New.
4186 Change the interpretation of the arguments: before `int, foo', now
4187 `int foo, foo'.
4188 * data/yacc.c (yyparse): Prototype and define thanks to these.
4189 Adjust b4_c_function_def uses.
4190 * data/glr.c (yyparse): Likewise, but ANSI only.
4191
41922002-10-20 Akim Demaille <akim@epita.fr>
4193
4194 * src/output.c (prepare): Move the definition of `tokens_number',
4195 `nterms_number', `undef_token_number', `user_token_number_max'
4196 to...
4197 (prepare_tokens): Here.
4198 (prepare_tokens): Rename as...
4199 (prepare_symbols): this.
4200 (prepare): Move the definition of `rules_number' to...
4201 (prepare_rules): here.
4202 (prepare): Move the definition of `last', `final_state_number',
4203 `states_number' to...
4204 (prepare_states): here.
4205 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
4206
42072002-10-20 Akim Demaille <akim@epita.fr>
4208
4209 * src/tables.h, src/tables.c, src/output.c: Comment changes.
4210
42112002-10-20 Akim Demaille <akim@epita.fr>
4212
4213 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
4214 * data/c.m4: here.
4215
42162002-10-20 Akim Demaille <akim@epita.fr>
4217
4218 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
4219 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
4220 `pair'.
4221 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
4222 `name' to...
4223 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
4224 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
4225 These.
4226
42272002-10-19 Paul Eggert <eggert@twinsun.com>
4228
4229 Do not create a temporary file, as that involves security and
4230 cleanup headaches. Instead, use a pair of pipes.
4231 Derived from a suggestion by Florian Krohm.
4232 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
4233 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
4234 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
4235 (BISON_PREREQ_SUBPIPE): Add.
4236 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
4237 Add subpipe.h, subpipe.c.
4238 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
4239 * po/POTFILES.in: Add lib/subpipe.c.
4240 * src/output.c: Include "subpipe.h".
4241 (m4_invoke): Remove decl.
4242 (scan_skel): New decl.
4243 (output_skeleton): Use pipe rather than temporary file for m4 input.
4244 Check that m4sugar.m4 is readable, to avoid deadlock.
4245 Check for pipe I/O error.
4246 * src/scan-skel.l (readpipe): Remove decl.
4247 (scan_skel): New function, to be used in place of m4_invoke.
4248 Read from stream rather than file.
4249
4250 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
4251 float, as this generates a warning on Solaris 8 + GCC 3.2 with
4252 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
4253 this generates a more-accurate value anyway.
4254
4255 * lib/timevar.c (timervar_accumulate): Rename locals to
4256 avoid confusion with similarly-named more-global.
4257 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
4258
4259 * src/output.c (prepare): Use xstrdup to convert char const *
4260 to char *, to avoid GCC warning.
4261
42622002-10-19 Akim Demaille <akim@epita.fr>
4263
4264 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
4265 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
4266 Use them to have `calc.y' ready for %pure-parser.
4267 * data/yacc.c (YYLEX): Pass a yylex return type to
4268 b4_c_function_call.
4269
42702002-10-19 Akim Demaille <akim@epita.fr>
4271
4272 Prototype support of %lex-param and %parse-param.
4273
4274 * src/parse-gram.y: Add the definition of the %lex-param and
4275 %parse-param tokens, plus their rules.
4276 Drop the `_' version of %glr-parser.
4277 Add the "," token.
4278 * src/scan-gram.l (INITIAL): Scan them.
4279 * src/muscle_tab.c: Comment changes.
4280 (muscle_insert, muscle_find): Rename `pair' as `probe'.
4281 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
4282 (muscle_entry_s): The `value' member is no longer const.
4283 Adjust all dependencies.
4284 * src/muscle_tab.c (muscle_init): Adjust: use
4285 MUSCLE_INSERT_STRING.
4286 Initialize the obstack earlier.
4287 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
4288 (muscle_pair_list_grow): New.
4289 * data/c.m4 (b4_c_function_call, b4_c_args): New.
4290 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
4291 * tests/calc.at: Use %locations, not --locations.
4292 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
4293
42942002-10-19 Akim Demaille <akim@epita.fr>
4295
4296 * src/getargs.c (usage): Take status as argument and exit
4297 accordingly.
4298 Report the traditional `Try ... --help' message when status != 0.
4299 (usage, version): Don't take a FILE * as arg, it is pointless.
4300 (getargs): When there is an incorrect number of arguments, make it
4301 an error, and report it GNUlically thanks to `usage ()'.
4302
43032002-10-18 Paul Eggert <eggert@twinsun.com>
4304
4305 * data/glr.c (yyreportParseError): Don't assume that sprintf
4306 yields the length of the printed string, as this is not true
4307 on SunOS 4.1.4. Reported by Peter Klein.
4308
4309 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
4310 * tests/conflicts.at (%nonassoc and eof): Likewise.
4311 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
4312
43132002-10-17 Akim Demaille <akim@epita.fr>
4314
4315 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
4316 * src/getargs.c (trace_types, trace_args): Adjust.
4317 * src/reader.c (grammar_current_rule_prec_set)
4318 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
4319 Standardize error messages.
4320 And s/@prec/%prec/!
4321 (reader): Use trace_flag to enable scanner/parser debugging,
4322 instead of an adhoc scheme.
4323 * src/scan-gram.l: Remove trailing debugging code.
4324
43252002-10-16 Paul Eggert <eggert@twinsun.com>
4326
4327 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
4328 MUSCLE_TAB_H.
4329
4330 * NEWS: Officially drop support for building Bison with K&R C,
4331 since it didn't work anyway and it's not worth worrying about.
4332 * Makefile.maint (wget_files): Remove ansi2knr.c.
4333 (ansi2knr.c-url_prefix): Remove.
4334 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
4335 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
4336 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
4337
43382002-10-15 Paul Eggert <eggert@twinsun.com>
4339
4340 Stop using the "enum_" trick for K&R-style function definitions;
4341 it confused me, and I was the author! Instead, assume that people
4342 who want to use K&R C compilers (when using these modules in GCC,
4343 perhaps?) will run ansi2knr.
4344
4345 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
4346 All uses of "enum_" changed to "enum ".
4347 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
4348 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
4349
4350 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
4351 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
4352 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
4353 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
4354 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
4355 abitset_not, abitset_ones, abitset_or, abitset_or_and,
4356 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
4357 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
4358 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
4359 Use function prototypes; this removes the need for declaring
4360 static functions simply to provide their prototypes.
4361 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
4362 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
4363 bitset_count_, bitset_create, bitset_dump, bitset_first,
4364 bitset_free, bitset_init, bitset_last, bitset_next,
4365 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
4366 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
4367 bitset_print, bitset_release_memory, bitset_toggle_,
4368 bitset_type_choose, bitset_type_get, bitset_type_name_get,
4369 debug_bitset): Likewise.
4370 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
4371 * lib/bitset_stats.c (bitset_log_histogram_print,
4372 bitset_percent_histogram_print, bitset_stats_and,
4373 bitset_stats_and_cmp, bitset_stats_and_or,
4374 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
4375 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
4376 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
4377 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
4378 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
4379 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
4380 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
4381 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
4382 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
4383 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
4384 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
4385 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
4386 bitset_stats_zero): Likewise.
4387 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
4388 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
4389 bitsetv_dump, debug_bitsetv): Likewise.
4390 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
4391 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
4392 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
4393 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
4394 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
4395 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
4396 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
4397 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
4398 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
4399 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
4400 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
4401 Likewise.
4402 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
4403 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
4404 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
4405 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
4406 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
4407 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
4408 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
4409 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
4410 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
4411 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
4412 lbitset_xor_cmp, lbitset_zero): Likewise.
4413
44142002-10-14 Akim Demaille <akim@epita.fr>
4415
4416 Version 1.75.
4417
44182002-10-14 Akim Demaille <akim@epita.fr>
4419
4420 * tests/Makefile.am (maintainer-check-posix): New.
4421
44222002-10-14 Akim Demaille <akim@epita.fr>
4423
4424 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
4425 member.
4426
44272002-10-14 Akim Demaille <akim@epita.fr>
4428
4429 * src/tables.c (table_ninf_remap): base -> tab.
4430 Reported by Matt Rosing.
4431
44322002-10-14 Paul Eggert <eggert@twinsun.com>
4433
4434 * tests/action.at, tests/calc.at, tests/conflicts.at,
4435 tests/cxx-type.at, tests/headers.at, tests/input.at,
4436 tests/regression.at, tests/synclines.at, tests/torture.at:
4437 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
4438 so that the tests still work even if POSIXLY_CORRECT is set.
4439 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
4440
4441 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
4442 for portability to K&R hosts. Fix typo: signed char is guaranteed
4443 only to 127, not to 128.
4444 * data/glr.c (yysigned_char): New type.
4445 * data/yacc.c (yysigned_char): Likewise.
4446 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
4447
44482002-10-13 Paul Eggert <eggert@twinsun.com>
4449
4450 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
4451 true due to limited range of data type" warning from GCC.
4452
4453 * data/c.m4 (b4_token_defines): Protect against double-inclusion
4454 by wrapping enum yytokentype's definition inside #ifndef
4455 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
4456
44572002-10-13 Akim Demaille <akim@epita.fr>
4458
4459 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
4460 Un yy- yyrhs to avoid the name clash with the global YYRHS.
4461
44622002-10-13 Akim Demaille <akim@epita.fr>
4463
4464 * Makefile.maint: Update from Autoconf 2.54.
4465 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
4466
44672002-10-13 Akim Demaille <akim@epita.fr>
4468
4469 * src/print.c (print_state): Separate the list of solved conflicts
4470 from the other items.
4471 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
4472
44732002-10-13 Akim Demaille <akim@epita.fr>
4474
4475 Let nondeterministic skeletons be usable with deterministic
4476 tables.
4477
4478 With the patch, GAWK compiled by GCC without -O2 passes its test
4479 suite using a GLR parser driven by LALR tables. It fails with -O2
4480 because `struct stat' gives two different answers on my machine:
4481 88 (definition of an auto var) and later 96 (memset on this var).
4482 Hence the stack is badly corrumpted. The headers inclusion is to
4483 blame: if I move the awk.h inclusion before GLR's system header
4484 inclusion, the two struct stat have the same size.
4485
4486 * src/tables.c (pack_table): Always create conflict_table.
4487 (token_actions): Always create conflict_list.
4488 * data/glr.c (YYFLAG): Remove, unused.
4489
44902002-10-13 Akim Demaille <akim@epita.fr>
4491
4492 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
4493 (O0FLAGS): New.
4494 (VALGRIND, GXX): New.
4495 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
4496 * tests/bison.in: Run $PREBISON a pre-command.
4497 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
4498 (maintainer-check-g++): New.
4499 * Makefile.am (maintainer-check): New.
4500
45012002-10-13 Akim Demaille <akim@epita.fr>
4502
4503 * data/glr.c: Formatting changes.
4504 Tweak some trace messages to match yacc.c's.
4505
45062002-10-13 Akim Demaille <akim@epita.fr>
4507
4508 GLR parsers sometimes raise parse errors instead of performing the
4509 default reduction.
4510 Reported by Charles-Henry de Boysson.
4511
4512 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
4513 check the length of the traces when %glr.
4514 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
4515 GLR's traces.
4516 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
4517 Test GLR parsers.
4518 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
4519 (yyltype): Remove the yy prefix from the member names.
4520 (yytable): Complete its comment.
4521 (yygetLRActions): Map error action number from YYTABLE from
4522 YYTABLE_NINF to 0.
4523 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
4524 (which was a bug: it should have been YYTABEL_NINF, and yet it was
4525 not satisfying as we could compare an YYACTION computed from
4526 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
4527 only value for error actions.
4528 (yyreportParseError): In verbose parse error messages, don't issue
4529 `error' in the list of expected tokens.
4530 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
4531 next action to perform to match glr.c's decoding.
4532 (yytable): Complete its comment.
4533
45342002-10-13 Paul Eggert <eggert@twinsun.com>
4535
4536 Fix problem reported by Henrik Grubbstroem in
4537 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
4538 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
4539 because the Bison parser reads the second action before reducing
4540 the first one.
4541 * src/scan-gram.l (rule_length): New static var.
4542 Use it to keep track of the rule length in the scanner, since
4543 we can't expect the parser to be in lock-step sync with the scanner.
4544 (handle_action_dollar, handle_action_at): Use this var.
4545 * tests/actions.at (Exotic Dollars): Test for the problem.
4546
45472002-10-12 Paul Eggert <eggert@twinsun.com>
4548
4549 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
4550 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
4551 Include <sys/time.h> when checking for clock_t and struct tms.
4552 Use same include order as source.
4553 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
4554 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
4555
4556 * lib/timevar.c: Update copyright date and clarify comments.
4557 (get_time) [IN_GCC]: Keep the GCC version for reference.
4558
4559 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
4560 GCC version as of today, then merge Bison's changes.
4561 Change "GCC" to "Bison" in copyright notice. timevar.def's
4562 author is Akim, so change that too.
4563
4564 * src/reader.c (grammar_current_rule_check):
4565 Don't worry about the default action if $$ is untyped.
4566 Prevents bogus warnings reported by Jim Gifford in
4567 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
4568
4569 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
4570 * data/glr.c, data/lalr1.cc, data/yacc.c:
4571 Output token definitions before the first part of user declarations.
4572 Fixes compatibility problem reported by Jim Gifford for kbd in
4573 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
4574
45752002-10-11 Paul Eggert <eggert@twinsun.com>
4576
4577 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
4578 (yyparse): here. This undoes some of the 2002-07-25 change.
4579 Compatibility problem reported by Ralf S. Engelschall with
4580 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
4581
45822002-10-11 Akim Demaille <akim@epita.fr>
4583
4584 * tests/regression.at Characters Escapes): New.
4585 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
4586 characters.
4587 Reported by Jan Nieuwenhuizen.
4588
45892002-10-11 Akim Demaille <akim@epita.fr>
4590
4591 * po/id.po: New.
4592
45932002-10-10 Paul Eggert <eggert@twinsun.com>
4594
4595 Portability fixes for bitsets; this also avoids several GCC
4596 warnings.
4597
4598 * lib/abitset.c: Include <stddef.h>, for offsetof.
4599 * lib/lbitset.c: Likewise.
4600
4601 * lib/abitset.c (abitset_bytes): Return a size that is aligned
4602 properly for vectors of objects. Do not assume that adding a
4603 header size to a multiple of a word size yields a value that is
4604 properly aligned for the whole union.
4605 * lib/bitsetv.c (bitsetv_alloc): Likewise.
4606
4607 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
4608 unique names for structures.
4609 * lib/ebitset.c (ebitset_bytes): Likewise.
4610 * lib/lbitset.c (lbitset_bytes): Likewise.
4611
4612 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
4613 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
4614 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
4615 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
4616 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
4617 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
4618 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
4619 to improve the type-checking that GCC can do.
4620 * lib/bitset.c (bitset_op4_cmp): Likewise.
4621 * lib/bitset_stats.c (bitset_stats_count,
4622 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
4623 bitset_stats_copy, bitset_stats_disjoint_p,
4624 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
4625 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
4626 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
4627 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
4628 bitset_stats_and_or_cmp, bitset_stats_andn_or,
4629 bitset_stats_andn_or_cmp, bitset_stats_or_and,
4630 bitset_stats_or_and_cmp): Likewise.
4631 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
4632 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
4633 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
4634 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
4635
4636 * lib/abitset.h: Include bitset.h, not bbitset.h.
4637 * lib/ebitset.h: Likewise.
4638 * lib/lbitset.h: Likewise.
4639
4640 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
4641 All instances of parameters of type enum bitset_opts are now of
4642 type enum_bitset_opts, to conform to the C Standard, and similarly
4643 for enum_bitset_type.
4644 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
4645 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
4646
4647 Do not use "struct bitset_struct" to mean different things in
4648 different modules. Not only is this confusing, it violates
4649 the C Standard, which requires that structure types in different
4650 modules must be compatible if one is to be passed to the other.
4651 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
4652 All instances of "struct bitset_struct *" replaced with "bitset".
4653 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
4654 (union bitset_union, struct abitset_struct, struct ebitset_struct,
4655 struct lbitset_struct, struct bitset_stats_struct): New types.
4656 All uses of struct bitset_struct changed to union bitset_union,
4657 etc.
4658 * lib/abitset.c (struct abitset_struct, abitset,
4659 struct bitset_struct): Remove.
4660 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
4661 struct bitset_struct): Remove.
4662 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
4663 bitset_struct): Remove.
4664 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
4665 Likewise.
4666
4667 Do not call a function of type T using a call that assumes the
4668 function is of a different type U. Standard C requires that a
4669 function must be called with a type that is compatible with its
4670 definition.
4671 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
4672 New decls.
4673 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
4674 New functions.
4675 * lib/ebitset.c (PFV): Remove.
4676 * lib/lbitset.c (PFV): Likewise.
4677 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
4678 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
4679 decls.
4680 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
4681 (ebitset_vtable): Use them.
4682 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
4683 lbitset_xor): New functions.
4684 (lbitset_vtable): Use them.
4685
4686 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
4687 Declare.
4688
4689 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
4690 GCC warning.
4691 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
4692 Use offsetof, for simplicity.
4693
46942002-10-06 Paul Eggert <eggert@twinsun.com>
4695
4696 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
4697 the same width as int. This reapplies a hunk of the 2002-08-12 patch
4698 <http://lists.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
4699 which was inadvertently undone by the 2002-09-30 patch.
4700 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
4701 the same width as int.
4702
47032002-10-04 Paul Eggert <eggert@twinsun.com>
4704
4705 Version 1.50.
4706
4707 * configure.ac (AC_INIT), NEWS: Increment version number.
4708
4709 * doc/bison.texinfo: Minor spelling, grammar, and white space
4710 fixes.
4711 (Symbols): Mention that any negative value returned from yylex
4712 signifies end-of-input. Warn about negative chars. Mention
4713 the portable Standard C character set.
4714
4715 The GNU coding standard says CFLAGS and YFLAGS are reserved
4716 for the installer to set.
4717 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
4718 * src/Makefile.am (AM_CFLAGS): Likewise.
4719 (AM_YFLAGS): Renamed from YFLAGS.
4720
4721 Fix some MAX and MIN problems.
4722 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
4723 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
4724 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
4725 * src/reader.c (reader): Use it.
4726
4727 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
4728 POSIX 1003.1-2001 has removed fgrep.
4729
47302002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4731
4732 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
4733 interpreted as signed.
4734 * lib/ebitset.c (ebitset_list): Fix bug.
4735
47362002-10-01 Paul Eggert <eggert@twinsun.com>
4737
4738 More fixes for 64-bit hosts and large bitsets.
4739
4740 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
4741 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
4742 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
4743 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
4744 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
4745 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
4746 bitset_count_): Likewise.
4747 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
4748 bitset_first, bitset_last): Likewise.
4749 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
4750 bitset_stats_list_reverse, bitset_stats_size,
4751 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
4752 Likewise.
4753 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
4754 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
4755 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
4756 bitsetv_reflexive_transitive_closure): Likewise.
4757 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
4758 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
4759 Likewise.
4760 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
4761 Likewise.
4762
4763 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
4764 Use size_t, not unsigned int, to count bytes.
4765 * lib/abitset.h (abitset_bytes): Likewise.
4766 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
4767 Likewise.
4768 * lib/bitset.h (bitset_bytes): Likewise.
4769 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
4770 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
4771 * lib/bitsetv.c (bitsetv_alloc): Likewise.
4772 * lib/ebitset.c (ebitset_bytes): Likewise.
4773 * lib/ebitset.h (ebitset_bytes): Likewise.
4774 * lib/lbitset.c (lbitset_bytes): Likewise.
4775 * lib/lbitset.h (lbitset_bytes): Likewise.
4776
4777 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
4778 abitset_subset_p, abitset_disjoint_p, abitset_and,
4779 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
4780 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
4781 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
4782 abitset_or_and, abitset_or_and_cmp):
4783 Use bitset_windex instead of unsigned int.
4784 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
4785 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
4786 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
4787 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
4788 Likewise.
4789 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
4790
4791 * lib/bitset.c (bitset_print):
4792 Use proper printf formats for widths of integer types.
4793 * lib/bitset_stats.c (bitset_percent_histogram_print,
4794 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
4795 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
4796 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
4797 * lib/lbitset.c (lbitset_bytes): Likewise.
4798
4799 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
4800 BITSET_SIZE_MAX): New macros.
4801 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
4802 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
4803 to BITSET_WINDEX_MAX.
4804
4805 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
4806 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
4807 since we now return the bitset_bindex type (not int).
4808
4809 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
4810 when computing sizes.
4811 * lib/ebitset.c (ebitset_elts_grow): Likewise.
4812
4813 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
4814 and avoid cast to unsigned.
4815
48162002-09-30 Akim Demaille <akim@epita.fr>
4817
4818 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
4819 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
4820 Updates from Michael Hayes.
4821
48222002-09-30 Art Haas <ahaas@neosoft.com>
4823
4824 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
4825 invocations.
4826 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
4827 defined.
4828
48292002-09-27 Akim Demaille <akim@epita.fr>
4830
4831 Version 1.49c.
4832
48332002-09-27 Akim Demaille <akim@epita.fr>
4834
4835 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
4836 (Because of AC_LIBSOURCE).
4837
48382002-09-27 Akim Demaille <akim@epita.fr>
4839
4840 Playing with Autoscan.
4841
4842 * configure.ac: Remove the old LIBOBJ tweaks.
4843 (AC_REPLACE_FUNCS): Add strrchr and strtol.
4844 * lib/strrchr.c: New.
4845 * lib/strtol.c: New, from the Coreutils 4.5.1.
4846
48472002-09-27 Akim Demaille <akim@epita.fr>
4848
4849 Playing with Autoscan.
4850
4851 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
4852 * lib/Makefile.am (libbison_a_SOURCES): No longer include
4853 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
4854 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
4855 Coreutils 4.5.1.
4856
48572002-09-24 Akim Demaille <akim@epita.fr>
4858
4859 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
4860 (Frequently Asked Questions, Parser Stack Overflow): New.
4861
48622002-09-13 Akim Demaille <akim@epita.fr>
4863
4864 Playing with autoscan.
4865
4866 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
4867 * src/files.c (skeleton_find): Remove, unused.
4868 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
4869 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
4870
48712002-09-13 Akim Demaille <akim@epita.fr>
4872
4873 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
4874 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
4875
48762002-09-13 Akim Demaille <akim@epita.fr>
4877
4878 * configure.ac: Require 2.54.
4879 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
4880 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
4881 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
4882 Remove, provided by Autoconf macros.
4883
48842002-09-12 Akim Demaille <akim@epita.fr>
4885
4886 * m4/prereq.m4: Update, from Coreutils 4.5.1.
4887
48882002-09-12 Akim Demaille <akim@epita.fr>
4889
4890 * m4/prereq.m4: Update, from Fileutils 4.1.5.
4891 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
4892 Reported by Martin Mokrejs.
4893
48942002-09-10 Akim Demaille <akim@epita.fr>
4895
4896 * src/parse-gram.y: Associate a human readable string to each
4897 token type.
4898 * tests/regression.at (Invalid inputs): Adjust.
4899
49002002-09-10 Gary V. Vaughan <gary@gnu.org>
4901
4902 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
4903 with an Autoconf-2.5x style configure.ac.
4904
49052002-09-06 Paul Eggert <eggert@twinsun.com>
4906
4907 * doc/bison.texinfo (Conditions): Make explicit that the GPL
4908 exception applies only to yacc.c. This is a modification of a
4909 patch originally suggested by Akim Demaille.
4910
49112002-09-06 Akim Demaille <akim@epita.fr>
4912
4913 * data/c.m4 (b4_copyright): Move the GPL exception comment from
4914 here to...
4915 * data/yacc.c: here.
4916
4917 * data/lalr1.cc (struct yyltype): Don't define it, since we use
4918 LocationType.
4919 (b4_ltype): Default to yy::Location from location.hh.
4920
49212002-09-04 Jim Meyering <jim@meyering.net>
4922
4923 * data/yacc.c: Guard the declaration of yytoknum also with
4924 `#ifdef YYPRINT', so it is declared only when used.
4925
49262002-09-04 Akim Demaille <akim@epita.fr>
4927
4928 * configure.in: Rename as...
4929 * configure.ac: this.
4930 Bump to 1.49c.
4931
49322002-09-04 Akim Demaille <akim@epita.fr>
4933
4934 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
4935 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
4936 translate maintainer only messages.
4937
49382002-08-12 Paul Eggert <eggert@twinsun.com>
4939
4940 Version 1.49b.
4941
4942 * Makefile.am (SUBDIRS): Remove intl.
4943 (DISTCLEANFILES): Remove.
4944 * NEWS: Mention that GNU M4 is now required. Clarify what is
4945 meant by "larger grammars". Mention the pt_BR translation.
4946 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
4947 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
4948 Bump version from 0.11.2 to 0.11.5.
4949 (BISON_PREREQ_STAGE): Remove.
4950 (AM_GNU_GETTEXT): Use external gettext.
4951 (AC_OUTPUT): Remove intl/Makefile.
4952
4953 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
4954
4955 * data/glr.c: Include string.h, for strlen.
4956 (yyreportParseError): Use size_t for yysize.
4957 (yy_yypstack): No longer nested inside yypstates, as nested
4958 functions are not portable. Do not assume size_t is the
4959 same width as int.
4960 (yypstates): Do not assume that ptrdiff_t is the same width
4961 as int, and similarly for yyposn and YYINDEX.
4962
4963 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
4964
4965 * lib/Makefile.am (INCLUDES): Do not include from the intl
4966 directory, which has been removed.
4967 * src/Makefile.am (INCLUDES): Likewise.
4968
4969 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
4970 (bitsets_sources, additional_bitsets_sources, timevars_sources):
4971 New vars.
4972
4973 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
4974 * tests/Makefile.am (EXTRA_DIST): Likewise.
4975
4976 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
4977 Do not assume that bitset_windex is the same width as unsigned.
4978
4979 * lib/abitset.c (abitset_unused_clear): Do not assume that
4980 bitset_word is the same width as int.
4981 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
4982 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
4983 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
4984 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
4985 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
4986
4987 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
4988 portability to one's complement hosts!).
4989 * lib/ebitset.c (ebitset_op1): Likewise.
4990 * lib/lbitset.c (lbitset_op1): Likewise.
4991
4992 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
4993 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
4994 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
4995 Sync with fileutils.
4996 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
4997 lib/gettext.h: Sync with diffutils.
4998
4999 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
5000 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
5001
5002 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
5003 PROTOTYPES to check for prototypes, and "defined __STDC__" to
5004 check for void *.
5005
5006 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
5007 size_t; the old version tried to do this but casted improperly.
5008 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
5009 (bitset_test): Now returns int, not unsigned long.
5010
5011 * lib/bitset_stats.c: Include "gettext.h".
5012 (_): New macro.
5013 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
5014 name locals "index", as it generates unnecessary warnings on some
5015 hosts that have an "index" function.
5016
5017 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
5018 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
5019 they need translation.
5020 * src/LR0.c (state_list_append, new_itemsets, get_state,
5021 append_states, generate_states): Likewise.
5022 * src/assoc.c (assoc_to_string): Likewise.
5023 * src/closure.c (print_closure, set_firsts, closure): Likewise.
5024 * src/gram.c (grammar_dump): Likewise.
5025 * src/injections.c (injections_compute): Likewise.
5026 * src/lalr.c (lookaheads_print): Likewise.
5027 * src/relation.c (relation_transpose): Likewise.
5028 * src/scan-gram.l: Likewise.
5029 * src/tables.c (table_grow, pack_vector): Likewise.
5030
5031 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
5032 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
5033 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
5034 * m4/mbstate_t.m4: Sync with fileutils.
5035 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
5036
5037 * po/LINGUAS: Add pt_BR.
5038 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
5039 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
5040 lib/timevar.c.
5041 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
5042 manual recommends.
5043 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
5044
5045 * src/complain.c (strerror_r): Remove decl; not needed.
5046 (strerror): Use same pattern as ../lib/error.c.
5047
5048 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
5049
5050 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
5051
5052 * src/main.c (main): Cast result of bindtextdomain and textdomain
5053 to void, to avoid a GCC warning when --disable-nls is in effect.
5054
5055 * src/scan-gram.l: Use strings rather than escapes when possible,
5056 to minimize the number of warnings from xgettext.
5057 (handle_action_dollar, handle_action_at): Don't use isdigit,
5058 as it mishandles negative chars and it may not work as expected
5059 outside the C locale.
5060
5061 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
5062 this is a GCC extension and is not portable to other compilers.
5063
5064 * src/system.h (alloca): Use same pattern as ../lib/error.c.
5065 Do not include <ctype.h>; no longer needed.
5066 Do not include <malloc.h>; no longer needed (and generates
5067 warnings on OpenBSD 3.0).
5068
5069 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
5070 it's not portable.
5071
5072 * tests/regression.at: Do not use 'cc -c input.c -o input';
5073 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
5074
5075 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
5076 exit status as failure, not just exit status 1. Sun C exits
5077 with status 2 sometimes.
5078
5079 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
5080 Use it for the two large tests.
5081
50822002-08-02 Akim Demaille <akim@epita.fr>
5083
5084 * src/conflicts.c (conflicts_output): Don't output rules never
5085 reduced here, since anyway that computation doesn't work.
5086 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
5087 (rule_useless_p, rule_never_reduced_p): New.
5088 (grammar_rules_partial_print): Use a filter instead of a range.
5089 Display the title only if needed.
5090 (grammar_rules_print): Adjust.
5091 (grammar_rules_never_reduced_report): New.
5092 * src/tables.c (action_row): Move the computation of rules never
5093 reduced to...
5094 (token_actions): here.
5095 * src/main.c (main): Make the parser before making the report, so
5096 that rules never reduced are computed.
5097 Call grammar_rules_never_reduced_report.
5098 * src/print.c (print_results): Report rules never reduced.
5099 * tests/conflicts.at, tests/reduce.at: Adjust.
5100
51012002-08-01 Akim Demaille <akim@epita.fr>
5102
5103 Instead of attaching lookaheads and duplicating the rules being
5104 reduced by a state, attach the lookaheads to the reductions.
5105
5106 * src/state.h (state_t): Remove the `lookaheads',
5107 `lookaheads_rule' member.
5108 (reductions_t): Add a `lookaheads' member.
5109 Use a regular array for the `rules'.
5110 * src/state.c (reductions_new): Initialize the lookaheads member
5111 to 0.
5112 (state_rule_lookaheads_print): Adjust.
5113 * src/state.h, src/state.c (state_reductions_find): New.
5114 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
5115 (count_rr_conflicts): Adjust.
5116 * src/lalr.c (LArule): Remove.
5117 (add_lookback_edge): Adjust.
5118 (state_lookaheads_count): New.
5119 (states_lookaheads_initialize): Merge into...
5120 (initialize_LA): this.
5121 (lalr_free): Adjust.
5122 * src/main.c (main): Don't free nullable and derives too early: it
5123 is used by --verbose.
5124 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
5125
51262002-08-01 Akim Demaille <akim@epita.fr>
5127
5128 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
5129 `rule_number_t**'.
5130 (set_derives, free_derives): Rename as...
5131 (derives_compute, derives_free): this.
5132 Adjust all dependencies.
5133 * src/nullable.c (set_nullable, free_nullable): Rename as...
5134 (nullable_compute, nullable_free): these.
5135 (rule_list_t): Store rule_t *, not rule_number_t.
5136 * src/state.c (state_rule_lookaheads_print): Directly compare rule
5137 pointers, instead of their numbers.
5138 * src/main.c (main): Call nullable_free, and derives_free earlier,
5139 as they were lo longer used.
5140
51412002-08-01 Akim Demaille <akim@epita.fr>
5142
5143 * lib/timevar.c (get_time): Include children time.
5144 * src/lalr.h (LA, LArule): Don't export them: used with the
5145 state_t.
5146 * src/lalr.c (LA, LArule): Static.
5147 * src/lalr.h, src/lalr.c (lalr_free): New.
5148 * src/main.c (main): Call it.
5149 * src/tables.c (pack_vector): Check whether loc is >= to the
5150 table_size, not >.
5151 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
5152 (tables_generate): do it, since that's also it which allocates
5153 them.
5154 Don't free LA and LArule, main does.
5155
51562002-07-31 Akim Demaille <akim@epita.fr>
5157
5158 Separate parser tables computation and output.
5159
5160 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
5161 (conflict_list, conflict_list_cnt, table, check, table_ninf)
5162 (yydefgoto, yydefact, high): Move to...
5163 * src/tables.h, src/tables.c: here.
5164 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
5165 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
5166 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
5167 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
5168 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
5169 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
5170 (action_row, save_row, token_actions, save_column, default_goto)
5171 (goto_actions, sort_actions, matching_state, pack_vector)
5172 (table_ninf_remap, pack_table, prepare_actions): Move to...
5173 * src/tables.c: here.
5174 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
5175 * src/output.c (token_actions, output_base, output_conflicts)
5176 (output_check): Merge into...
5177 (prepare_actions): this.
5178 (actions_output): Rename as...
5179 (user_actions_output): this.
5180 * src/main.c (main): Call tables_generate and tables_free.
5181
51822002-07-31 Akim Demaille <akim@epita.fr>
5183
5184 Steal GCC's --time-report support.
5185
5186 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
5187 stolen/adjusted from GCC.
5188 * m4/stage.m4: Remove time related checks.
5189 * m4/timevar.m4: New.
5190 * configure.in: Adjust.
5191 * src/system.h: Adjust to using timevar.h.
5192 * src/getargs.h, src/getargs.c: Support trace_time for
5193 --trace=time.
5194 * src/main.c (stage): Remove.
5195 (main): Replace `stage' invocations with timevar calls.
5196 * src/output.c: Insert pertinent timevar calls.
5197
51982002-07-31 Akim Demaille <akim@epita.fr>
5199
5200 Let --trace have arguments.
5201
5202 * src/getargs.h (enum trace_e): New.
5203 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
5204 (long_options, short_options): --trace/-T takes an optional
5205 argument.
5206 Change all the uses of trace_flag to reflect the new flags.
5207 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
5208
5209 Strengthen `stage' portability.
5210
5211 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
5212 * configure.in: Use it.
5213 Don't check for malloc.h and sys/times.h.
5214 * src/system.h: Include them when appropriate.
5215 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
5216 times and struct tms are available.
5217
52182002-07-30 Akim Demaille <akim@epita.fr>
5219
5220 In verbose parse error message, don't report `error' as an
5221 expected token.
5222 * tests/actions.at (Printers and Destructors): Adjust.
5223 * tests/calc.at (Calculator $1): Adjust.
5224 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
5225 error message, do not report the parser accepts the error token in
5226 that state.
5227
52282002-07-30 Akim Demaille <akim@epita.fr>
5229
5230 Normalize conflict related messages.
5231
5232 * src/complain.h, src/complain.c (warn, complain): New.
5233 * src/conflicts.c (conflicts_print): Use them.
5234 (conflict_report_yacc): New, extracted from...
5235 (conflicts_print): here.
5236 * tests/conflicts.at, tests/existing.at: Adjust.
5237
52382002-07-30 Akim Demaille <akim@epita.fr>
5239
5240 Report rules which are never reduced by the parser: those hidden
5241 by conflicts.
5242
5243 * src/LR0.c (save_reductions): Don't make the final state too
5244 different: save its reduction (accept) instead of having a state
5245 without any action (no shift or goto, no reduce).
5246 Note: the final state is now a ``regular'' state, i.e., the
5247 parsers now contain `reduce 0' as default reduction.
5248 Nevertheless, since they decide to `accept' when yystate =
5249 final_state, they still will not reduce rule 0.
5250 * src/print.c (print_actions, print_reduction): Adjust.
5251 * src/output.c (action_row): Track reduced rules.
5252 (token_actions): Report rules never reduced.
5253 * tests/conflicts.at, tests/regression.at: Adjust.
5254
52552002-07-30 Akim Demaille <akim@epita.fr>
5256
5257 `stage' was accidently included in a previous patch.
5258 Initiate its autoconfiscation.
5259
5260 * configure.in: Look for malloc.h and sys/times.h.
5261 * src/main.c (stage): Adjust.
5262 Report only when trace_flag.
5263
52642002-07-29 Akim Demaille <akim@epita.fr>
5265
5266 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
5267 state_number_t.
5268 (errs_t): symbol_t*, not symbol_number_t.
5269 (reductions_t): rule_t*, not rule_number_t.
5270 (FOR_EACH_SHIFT): New.
5271 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
5272 * src/print.c, src/print_graph.c: Adjust.
5273
52742002-07-29 Akim Demaille <akim@epita.fr>
5275
5276 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
5277
5278 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
5279 (endtoken, accept): these.
5280 * src/reader.c (reader): Set endtoken's default tag to "$end".
5281 Set undeftoken's tag to "$undefined" instead of "$undefined.".
5282 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
5283 Adjust.
5284
52852002-07-29 Akim Demaille <akim@epita.fr>
5286
5287 * src/reduce.c (reduce_grammar): When the language is empty,
5288 complain about the start symbol, not the axiom.
5289 Use its location.
5290 * tests/reduce.at (Empty Language): New.
5291
52922002-07-26 Akim Demaille <akim@epita.fr>
5293
5294 * src/reader.h, src/reader.c (gram_error): ... can't get
5295 yycontrol without making too strong assumptions on the parser
5296 itself.
5297 * src/output.c (prepare_tokens): Use the real 0th value of
5298 token_translations instead of `0'.
5299 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
5300 visible here.
5301 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
5302 for the time being: %locations ought to provide it to yyerror.
5303
53042002-07-25 Akim Demaille <akim@epita.fr>
5305
5306 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
5307 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
5308 * tests/regression.at (Web2c Actions): Adjust.
5309
53102002-07-25 Akim Demaille <akim@epita.fr>
5311
5312 Stop storing rules from 1 to nrules + 1.
5313
5314 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
5315 * src/nullable.c, src/output.c, src/print.c, src/reader.c
5316 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
5317 Iterate from 0 to nrules.
5318 Use rule_number_as_item_number and item_number_as_rule_number.
5319 Adjust to `derive' now containing possibly 0.
5320 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
5321 Handle the `- 1' part in rule numbers from/to item numbers.
5322 * src/conflicts.c (log_resolution): Fix the message which reversed
5323 shift and reduce.
5324 * src/output.c (action_row): Initialize default_rule to -1.
5325 (token_actions): Adjust.
5326 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
5327 expected output.
5328 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
5329
53302002-07-25 Akim Demaille <akim@epita.fr>
5331
5332 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
5333 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
5334 (b4_c_knr_arg_decl): New.
5335 * data/yacc.c: Use it to define yysymprint, yydestruct, and
5336 yyreport_parse_error.
5337
53382002-07-25 Akim Demaille <akim@epita.fr>
5339
5340 * data/yacc.c (yyreport_parse_error): New, extracted from...
5341 (yyparse): here.
5342 (yydestruct, yysymprint): Move above yyparse.
5343 Be K&R compliant.
5344
53452002-07-25 Akim Demaille <akim@epita.fr>
5346
5347 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
5348 replace...
5349 (b4_sint_type, b4_uint_type): these.
5350 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
5351 * tests/regression.at (Web2c Actions): Adjust.
5352
53532002-07-25 Akim Demaille <akim@epita.fr>
5354
5355 * src/gram.h (TIEM_NUMBER_MAX): New.
5356 (item_number_of_rule_number, rule_number_of_item_number): Rename
5357 as...
5358 (rule_number_as_item_number, item_number_as_rule_number): these.
5359 Adjust dependencies.
5360 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
5361 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
5362 (symbol_number_to_vector_number): New.
5363 (order): Of vector_number_t* type.
5364 (base_t, BASE_MAX, BASE_MIN): New.
5365 (froms, tos, width, pos, check): Of base_t type.
5366 (action_number_t, ACTION_MIN, ACTION_MAX): New.
5367 (actrow): Of action_number_t type.
5368 (conflrow): Of unsigned int type.
5369 (table_ninf, base_ninf): New.
5370 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
5371 (muscle_insert_int_table, muscle_insert_base_table)
5372 (muscle_insert_rule_number_table): New.
5373 (prepare_tokens): Output `toknum' as int_table.
5374 (action_row): Returns a rule_number_t.
5375 Use ACTION_MIN, not SHRT_MIN.
5376 (token_actions): yydefact is rule_number_t*.
5377 (table_ninf_remap): New.
5378 (pack_table): Use it for `base' and `table'.
5379 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
5380 replaced with...
5381 (YYPACT_NINF, YYTABLE_NINF): these.
5382 (yypact, yytable): Compute their types instead of hard-coded
5383 `short'.
5384 * tests/regression.at (Web2c Actions): Adjust.
5385
53862002-07-19 Akim Demaille <akim@epita.fr>
5387
5388 * src/scan-gram.l (id): Can start with an underscore.
5389
53902002-07-16 Akim Demaille <akim@epita.fr>
5391
5392 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
5393 Adjust all former `associativity' dependencies.
5394 * src/symtab.c (symbol_new): Default associativity is `undef', not
5395 `right'.
5396 (symbol_check_alias_consistence): Adjust.
5397
53982002-07-09 Akim Demaille <akim@epita.fr>
5399
5400 * doc/bison.texinfo: Properly set the ``header'' part.
5401 Use @dircategory ``GNU programming tools'' as per Texinfo's
5402 documentation.
5403 Use @copying.
5404
54052002-07-09 Akim Demaille <akim@epita.fr>
5406
5407 * lib/quotearg.h: Protect against multiple inclusions.
5408 * src/location.h (location_t): Add a `file' member.
5409 (LOCATION_RESET, LOCATION_PRINT): Adjust.
5410 * src/complain.c (warn_at, complain_at, fatal_at): Drop
5411 `error_one_per_line' support.
5412
54132002-07-09 Akim Demaille <akim@epita.fr>
5414
5415 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
5416 * src/reader.c (lineno): Remove.
5417 Adjust all dependencies.
5418 (get_merge_function): Take a location and use complain_at.
5419 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
5420 * tests/regression.at (Invalid inputs, Mixing %token styles):
5421 Adjust.
5422
54232002-07-09 Akim Demaille <akim@epita.fr>
5424
5425 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
5426 recovery rule, and forbid extensions when --yacc.
5427 (gram_error): Use complain_at.
5428 * src/reader.c (reader): Exit if there were parse errors.
5429
54302002-07-09 Akim Demaille <akim@epita.fr>
5431
5432 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
5433 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
5434 Reported by R Blake <blakers@mac.com>.
5435
54362002-07-09 Akim Demaille <akim@epita.fr>
5437
5438 * data/yacc.c: Output the copyright notive in the header.
5439
54402002-07-03 Akim Demaille <akim@epita.fr>
5441
5442 * src/output.c (froms, tos): Are state_number_t.
5443 (save_column): sp, sp1, and sp2 are state_number_t.
5444 (prepare): Rename `final' as `final_state_number', `nnts' as
5445 `nterms_number', `nrules' as `rules_number', `nstates' as
5446 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
5447 unused.
5448 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
5449 * data/lalr1.cc (nsym_): Remove, unused.
5450
54512002-07-03 Akim Demaille <akim@epita.fr>
5452
5453 * src/lalr.h, src/lalr.c (goto_number_t): New.
5454 * src/lalr.c (goto_list_t): New.
5455 Propagate them.
5456 * src/nullable.c (rule_list_t): New.
5457 Propagate.
5458 * src/types.h: Remove.
5459
54602002-07-03 Akim Demaille <akim@epita.fr>
5461
5462 * src/closure.c (print_fderives): Use rule_rhs_print.
5463 * src/derives.c (print_derives): Use rule_rhs_print.
5464 (rule_list_t): New, replaces `shorts'.
5465 (set_derives): Add comments.
5466 * tests/sets.at (Nullable, Firsts): Adjust.
5467
54682002-07-03 Akim Demaille <akim@epita.fr>
5469
5470 * src/output.c (prepare_actions): Free `tally' and `width'.
5471 (prepare_actions): Allocate and free `order'.
5472 * src/symtab.c (symbols_free): Free `symbols'.
5473 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
5474 * src/output.c (m4_invoke): Move to...
5475 * src/scan-skel.l: here.
5476 (<<EOF>>): Close yyout, and free its name.
5477
54782002-07-03 Akim Demaille <akim@epita.fr>
5479
5480 Fix some memory leaks, and fix a bug: state 0 was examined twice.
5481
5482 * src/LR0.c (new_state): Merge into...
5483 (state_list_append): this.
5484 (new_states): Merge into...
5485 (generate_states): here.
5486 (set_states): Don't ensure a proper `errs' state member here, do it...
5487 * src/conflicts.c (conflicts_solve): here.
5488 * src/state.h, src/state.c: Comment changes.
5489 (state_t): Rename member `shifts' as `transitions'.
5490 Adjust all dependencies.
5491 (errs_new): For consistency, also take the values as argument.
5492 (errs_dup): Remove.
5493 (state_errs_set): New.
5494 (state_reductions_set, state_transitions_set): Assert that no
5495 previous value was assigned.
5496 (state_free): New.
5497 (states_free): Use it.
5498 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
5499 temporary storage: use `errs' and `nerrs' as elsewhere.
5500 (set_conflicts): Allocate and free this `errs'.
5501
55022002-07-02 Akim Demaille <akim@epita.fr>
5503
5504 * lib/libiberty.h: New.
5505 * lib: Update the bitset implementation from upstream.
5506 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
5507 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
5508 * src/main.c: Adjust bitset stats calls.
5509
55102002-07-01 Paul Eggert <eggert@twinsun.com>
5511
5512 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
5513 char, so that negative chars don't collide with $.
5514
55152002-06-30 Akim Demaille <akim@epita.fr>
5516
5517 Have the GLR tests be `warning' checked, and fix the warnings.
5518
5519 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
5520 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
5521 (yyremoveDeletes): `yyi' and `yyj' are size_t.
5522 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
5523 (yyaddDeferredAction): static.
5524 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
5525 (yyreportParseError): yyprefix is const.
5526 yytokenp is used only when verbose.
5527 (yy__GNUC__): Replace with __GNUC__.
5528 (yypdumpstack): yyi is size_t.
5529 (yypreference): Un-yy local variables and arguments, to avoid
5530 clashes with `yyr1'. Anyway, we are not in the user name space.
5531 (yytname_size): be an int, as is compared with ints.
5532 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
5533 Use them.
5534 * tests/cxx-gram.at: Use quotation to protect $1.
5535 Use AT_COMPILE to enable warnings hunts.
5536 Prototype yylex and yyerror.
5537 `Use' argc.
5538 Include `string.h', not `strings.h'.
5539 Produce and prototype stmtMerge only when used.
5540 yylex takes a location.
5541
55422002-06-30 Akim Demaille <akim@epita.fr>
5543
5544 We spend a lot of time in quotearg, in particular when --verbose.
5545
5546 * src/symtab.c (symbol_get): Store a quoted version of the key.
5547 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
5548 Adjust all callers.
5549
55502002-06-30 Akim Demaille <akim@epita.fr>
5551
5552 * src/state.h (reductions_t): Rename member `nreds' as num.
5553 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
5554 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
5555
55562002-06-30 Akim Demaille <akim@epita.fr>
5557
5558 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
5559 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
5560 (shifts_to): Rename as...
5561 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
5562 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
5563 (TRANSITION_IS_DISABLED, transitions_to): these.
5564
55652002-06-30 Akim Demaille <akim@epita.fr>
5566
5567 * src/print.c (print_shifts, print_gotos): Merge into...
5568 (print_transitions): this.
5569 (print_transitions, print_errs, print_reductions): Align the
5570 lookaheads columns.
5571 (print_core, print_transitions, print_errs, print_state,
5572 print_grammar): Output empty lines separator before, not after.
5573 (state_default_rule_compute): Rename as...
5574 (state_default_rule): this.
5575 * tests/conflicts.at (Defaulted Conflicted Reduction),
5576 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
5577 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
5578
55792002-06-30 Akim Demaille <akim@epita.fr>
5580
5581 Display items as we display rules.
5582
5583 * src/gram.h, src/gram.c (rule_lhs_print): New.
5584 * src/gram.c (grammar_rules_partial_print): Use it.
5585 * src/print.c (print_core): Likewise.
5586 * tests/conflicts.at (Defaulted Conflicted Reduction),
5587 (Unresolved SR Conflicts): Adjust.
5588 (Unresolved SR Conflicts): Adjust and rename as...
5589 (Resolved SR Conflicts): this, as was meant.
5590 * tests/regression.at (Web2c Report): Adjust.
5591
55922002-06-30 Akim Demaille <akim@epita.fr>
5593
5594 * src/print.c (state_default_rule_compute): New, extracted from...
5595 (print_reductions): here.
5596 Pessimize, but clarify the code.
5597 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
5598
55992002-06-30 Akim Demaille <akim@epita.fr>
5600
5601 * src/output.c (action_row): Let default_rule be always a rule
5602 number.
5603
56042002-06-30 Akim Demaille <akim@epita.fr>
5605
5606 * src/closure.c (print_firsts, print_fderives, closure):
5607 Use BITSET_EXECUTE.
5608 * src/lalr.c (lookaheads_print): Likewise.
5609 * src/state.c (state_rule_lookaheads_print): Likewise.
5610 * src/print_graph.c (print_core): Likewise.
5611 * src/print.c (print_reductions): Likewise.
5612 * src/output.c (action_row): Likewise.
5613 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
5614
56152002-06-30 Akim Demaille <akim@epita.fr>
5616
5617 * src/print_graph.c: Use report_flag.
5618
56192002-06-30 Akim Demaille <akim@epita.fr>
5620
5621 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
5622 to...
5623 * src/relation.h, src/relation.c (traverse, relation_digraph)
5624 (relation_print, relation_transpose): New.
5625
56262002-06-30 Akim Demaille <akim@epita.fr>
5627
5628 * src/state.h, src/state.c (shifts_to): New.
5629 * src/lalr.c (build_relations): Use it.
5630
56312002-06-30 Akim Demaille <akim@epita.fr>
5632
5633 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
5634 (item_number_of_rule_number, rule_number_of_item_number): New.
5635 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
5636 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
5637 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
5638 Propagate their use.
5639 Much remains to be done, in particular wrt `shorts' from types.h.
5640
56412002-06-30 Akim Demaille <akim@epita.fr>
5642
5643 * src/symtab.c (symbol_new): Initialize the `printer' member.
5644
56452002-06-30 Akim Demaille <akim@epita.fr>
5646
5647 * src/LR0.c (save_reductions): Remove, replaced by...
5648 * src/state.h, src/state.c (state_reductions_set): New.
5649 (reductions, errs): Rename as...
5650 (reductions_t, errs_t): these.
5651 Adjust all dependencies.
5652
56532002-06-30 Akim Demaille <akim@epita.fr>
5654
5655 * src/LR0.c (state_list_t, state_list_append): New.
5656 (first_state, last_state): Now symbol_list_t.
5657 (this_state): Remove.
5658 (new_itemsets, append_states, save_reductions): Take a state_t as
5659 argument.
5660 (set_states, generate_states): Adjust.
5661 (save_shifts): Remove, replaced by...
5662 * src/state.h, src/state.c (state_shifts_set): New.
5663 (shifts): Rename as...
5664 (shifts_t): this.
5665 Adjust all dependencies.
5666 * src/state.h (state_t): Remove the `next' member.
5667
56682002-06-30 Akim Demaille <akim@epita.fr>
5669
5670 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
5671 escaped in slot 0.
5672
56732002-06-30 Akim Demaille <akim@epita.fr>
5674
5675 Use hash.h for the state hash table.
5676
5677 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
5678 (allocate_storage): Use state_hash_new.
5679 (free_storage): Use state_hash_free.
5680 (new_state, get_state): Adjust.
5681 * src/lalr.h, src/lalr.c (states): Move to...
5682 * src/states.h (state_t): Remove the `link' member, no longer
5683 used.
5684 * src/states.h, src/states.c: here.
5685 (state_hash_new, state_hash_free, state_hash_lookup)
5686 (state_hash_insert, states_free): New.
5687 * src/states.c (state_table, state_compare, state_hash): New.
5688 * src/output.c (output_actions): Do not free states now, since we
5689 still need to know the final_state number in `prepare', called
5690 afterwards. Do it...
5691 * src/main.c (main): here: call states_free after `output'.
5692
56932002-06-30 Akim Demaille <akim@epita.fr>
5694
5695 * src/state.h, src/state.c (state_new): New, extracted from...
5696 * src/LR0.c (new_state): here.
5697 * src/state.h (STATE_ALLOC): Move to...
5698 * src/state.c: here.
5699 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
5700 * src/state.h, src/state.c: here.
5701
57022002-06-30 Akim Demaille <akim@epita.fr>
5703
5704 * src/reader.c (gensym): Rename as...
5705 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
5706 (getsym): Rename as...
5707 (symbol_get): this.
5708
57092002-06-30 Akim Demaille <akim@epita.fr>
5710
5711 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
5712 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
5713 * src/output.c, src/print.c, src/print_graph.c: Propagate.
5714 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
5715
57162002-06-30 Akim Demaille <akim@epita.fr>
5717
5718 Make the test suite pass with warnings checked.
5719
5720 * tests/actions.at (Printers and Destructors): Improve.
5721 Avoid unsigned vs. signed issues.
5722 * tests/calc.at: Don't exercise the scanner here, do it...
5723 * tests/input.at (Torturing the Scanner): here.
5724
57252002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5726
5727 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
5728 reorganize first lines parallel to yacc.c.
5729
57302002-06-28 Akim Demaille <akim@epita.fr>
5731
5732 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
5733 (b4_token_enum, b4_token_defines): New, factored from...
5734 * data/lalr1.cc, data/yacc.c, glr.c: here.
5735
57362002-06-28 Akim Demaille <akim@epita.fr>
5737
5738 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
5739 unused variables.
5740 * src/output.c (merger_output): static.
5741
57422002-06-28 Akim Demaille <akim@epita.fr>
5743
5744 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
5745 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
5746 pacify GCC.
5747 * src/output.c (save_row): Initialize all the variables to pacify GCC.
5748
57492002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5750
5751 Accumulated changelog for new GLR parsing features.
5752
5753 * src/conflicts.c (count_total_conflicts): Change name to
5754 conflicts_total_count.
5755 * src/conflicts.h: Ditto.
5756 * src/output.c (token_actions): Use the new name.
5757 (output_conflicts): Change conflp => conflict_list_heads, and
5758 confl => conflict_list for better readability.
5759 * data/glr.c: Use the new names.
5760 * NEWS: Add self to GLR announcement.
5761
5762 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
5763
5764 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
5765 Akim Demaille.
5766
5767 * data/bison.glr: Change name to glr.c
5768 * data/glr.c: Renamed from bison.glr.
5769 * data/Makefile.am: Add glr.c
5770
5771 * src/getargs.c:
5772
5773 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
5774 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
5775
5776 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5777
5778 * data/bison.glr: Be sure to restore the
5779 current #line when returning to the skeleton contents after having
5780 exposed the input file's #line.
5781
5782 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5783
5784 * data/bison.glr: Bring up to date with changes to bison.simple.
5785
5786 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5787
5788 * data/bison.glr: Correct definitions that use b4_prefix.
5789 Various reformatting.
5790 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
5791 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
5792 yytokenp argument; now part of stack.
5793 (yychar): Define to behave as documented.
5794 (yyclearin): Ditto.
5795
5796 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5797
5798 * src/reader.h: Add declaration for free_merger_functions.
5799
5800 * src/reader.c (merge_functions): New variable.
5801 (get_merge_function): New function.
5802 (free_merger_functions): New function.
5803 (readgram): Check for %prec that is not followed by a symbol.
5804 Handle %dprec and %merge declarations.
5805 (packgram): Initialize dprec and merger fields in rules array.
5806
5807 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
5808 conflict_list_cnt, conflict_list_free): New variables.
5809 (table_grow): Also grow conflict_table.
5810 (prepare_rules): Output dprec and merger tables.
5811 (conflict_row): New function.
5812 (action_row): Output conflict lists for GLR parser. Don't use
5813 default reduction in conflicted states for GLR parser so that there
5814 are spaces for the conflict lists.
5815 (save_row): Also save conflict information.
5816 (token_actions): Allocate conflict list.
5817 (merger_output): New function.
5818 (pack_vector): Pack conflict table, too.
5819 (output_conflicts): New function to output yyconflp and yyconfl.
5820 (output_check): Allocate conflict_tos.
5821 (output_actions): Output conflict tables, also.
5822 (output_skeleton): Output b4_mergers definition.
5823 (prepare): Output b4_max_rhs_length definition.
5824 Use 'bison.glr' as default skeleton for GLR parsers.
5825
5826 * src/gram.c (glr_parser): New flag.
5827 (grammar_free): Call free_merger_functions.
5828
5829 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
5830 all pairs of conflicting reductions, rather than just all tokens
5831 causing conflicts. Needed to size conflict tables.
5832 (conflicts_output): Modify call to count_rr_conflicts for new
5833 interface.
5834 (conflicts_print): Ditto.
5835 (count_total_conflicts): New function.
5836
5837 * src/reader.h (merger_list): New type.
5838 (merge_functions): New variable.
5839
5840 * src/lex.h (tok_dprec, tok_merge): New token types.
5841
5842 * src/gram.h (rule_s): Add dprec and merger fields.
5843 (glr_parser): New flag.
5844
5845 * src/conflicts.h (count_total_conflicts): New function.
5846
5847 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
5848
5849 * doc/bison.texinfo (Generalized LR Parsing): New section.
5850 (GLR Parsers): New section.
5851 (Language and Grammar): Mention GLR parsing.
5852 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
5853 Correct typo ("tge" -> "the").
5854
5855 * data/bison.glr: New skeleton for GLR parsing.
5856
5857 * tests/cxx-gram.at: New tests for GLR parsing.
5858
5859 * tests/testsuite.at: Include cxx-gram.at.
5860
5861 * tests/Makefile.am: Add cxx-gram.at.
5862
5863 * src/parse-gram.y:
5864
5865 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
5866
5867 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
5868
58692002-06-27 Akim Demaille <akim@epita.fr>
5870
5871 * src/options.h, src/options.c: Remove.
5872 * src/getargs.c (short_options, long_options): New.
5873
58742002-06-27 Akim Demaille <akim@epita.fr>
5875
5876 * data/bison.simple, data/bison.c++: Rename as...
5877 * data/yacc.c, data/lalr1.cc: these.
5878 * doc/bison.texinfo (Environment Variables): Remove.
5879
58802002-06-25 Raja R Harinath <harinath@cs.umn.edu>
5881
5882 * src/getargs.c (report_argmatch): Initialize strtok().
5883
58842002-06-20 Akim Demaille <akim@epita.fr>
5885
5886 * data/bison.simple (b4_symbol_actions): New, replaces...
5887 (b4_symbol_destructor, b4_symbol_printer): these.
5888 (yysymprint): Be sure to call YYPRINT only for tokens, and using
5889 user token numbers.
5890
58912002-06-20 Akim Demaille <akim@epita.fr>
5892
5893 * data/bison.simple (yydestructor): Rename as...
5894 (yydestruct): this.
5895
58962002-06-20 Akim Demaille <akim@epita.fr>
5897
5898 * src/symtab.h, src/symtab.c (symbol_type_set)
5899 (symbol_destructor_set, symbol_precedence_set): The location is
5900 the last argument.
5901 Adjust all callers.
5902
59032002-06-20 Akim Demaille <akim@epita.fr>
5904
5905 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
5906 internals.
5907 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
5908 Takes a location.
5909 * src/symtab.h, src/symtab.c (symbol_class_set)
5910 (symbol_user_token_number_set): Likewise.
5911 Adjust all callers.
5912 Promote complain_at.
5913 * tests/input.at (Type Clashes): Adjust.
5914
59152002-06-20 Akim Demaille <akim@epita.fr>
5916
5917 * data/bison.simple (YYLEX): Fix the declaration when
5918 %pure-parser.
5919
59202002-06-20 Akim Demaille <akim@epita.fr>
5921
5922 * data/bison.simple (yysymprint): Don't print the token number,
5923 just its name.
5924 * tests/actions.at (Destructors): Rename as...
5925 (Printers and Destructors): this.
5926 Also exercise %printer.
5927
59282002-06-20 Akim Demaille <akim@epita.fr>
5929
5930 * data/bison.simple (YYDSYMPRINT): New.
5931 Use it to remove many of the #if YYDEBUG/if (yydebug).
5932
59332002-06-20 Akim Demaille <akim@epita.fr>
5934
5935 * src/symtab.h, src/symtab.c (symbol_t): printer and
5936 printer_location are new members.
5937 (symbol_printer_set): New.
5938 * src/parse-gram.y (PERCENT_PRINTER): New token.
5939 Handle its associated rule.
5940 * src/scan-gram.l: Adjust.
5941 (handle_destructor_at, handle_destructor_dollar): Rename as...
5942 (handle_symbol_code_at, handle_symbol_code_dollar): these.
5943 * src/output.c (symbol_printers_output): New.
5944 (output_skeleton): Call it.
5945 * data/bison.simple (yysymprint): New. Cannot be named yyprint
5946 since there are already many grammar files with a user `yyprint'.
5947 Replace the calls to YYPRINT to calls to yysymprint.
5948 * tests/calc.at: Adjust.
5949 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
5950 taking advantage of parser very internal details (stack size!).
5951
59522002-06-20 Akim Demaille <akim@epita.fr>
5953
5954 * src/scan-gram.l: Complete the scanner with the missing patterns
5955 to pacify Flex.
5956 Use `quote' and `symbol_tag_get' where appropriate.
5957
59582002-06-19 Akim Demaille <akim@epita.fr>
5959
5960 * tests/actions.at (Destructors): Augment to test locations.
5961 * data/bison.simple (yydestructor): Pass it the current location
5962 if locations are enabled.
5963 Prototype only when __STDC__ or C++.
5964 Change the argument names to move into the yy name space: there is
5965 user code here.
5966
59672002-06-19 Akim Demaille <akim@epita.fr>
5968
5969 * data/bison.simple (b4_pure_if): New.
5970 Use it instead of #ifdef YYPURE.
5971
59722002-06-19 Akim Demaille <akim@epita.fr>
5973
5974 * data/bison.simple (b4_location_if): New.
5975 Use it instead of #ifdef YYLSP_NEEDED.
5976
59772002-06-19 Akim Demaille <akim@epita.fr>
5978
5979 Prepare @$ in %destructor, but currently don't bind it in the
5980 skeleton, as %location use is not cleaned up yet.
5981
5982 * src/scan-gram.l (handle_dollar, handle_destructor_at)
5983 (handle_action_at): New.
5984 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
5985 a braced_code_t and a location as additional arguments.
5986 (handle_destructor_dollar): Instead of requiring `b4_eval', just
5987 unquote one when outputting `b4_dollar_dollar'.
5988 Adjust callers.
5989 * data/bison.simple (b4_eval): Remove.
5990 (b4_symbol_destructor): Adjust.
5991 * tests/input.at (Invalid @n): Adjust.
5992
59932002-06-19 Zack Weinberg <zack@codesourcery.com>
5994
5995 * doc/bison.texinfo: Document ability to have multiple
5996 prologue sections.
5997
59982002-06-18 Akim Demaille <akim@epita.fr>
5999
6000 * src/files.c (compute_base_names): When computing the output file
6001 names from the input file name, strip the directory part.
6002
60032002-06-18 Akim Demaille <akim@epita.fr>
6004
6005 * data/bison.simple.new: Comment changes.
6006 Reported by Andreas Schwab.
6007
60082002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
6009
6010 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
6011 there are no `label `yyoverflowlab' defined but not used' warnings
6012 when yyoverflow is defined.
6013
60142002-06-18 Akim Demaille <akim@epita.fr>
6015
6016 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
6017 new member.
6018 (symbol_destructor_set): Adjust.
6019 * src/output.c (symbol_destructors_output): Output the destructor
6020 locations.
6021 Output the symbol name.
6022 * data/bison.simple (b4_symbol_destructor): Adjust.
6023
60242002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
6025 and Akim Demaille <akim@epita.fr>
6026
6027 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
6028 what's left on the stack when the error recovery hits EOF.
6029 * tests/actions.at (Destructors): Complete to exercise this case.
6030
60312002-06-17 Akim Demaille <akim@epita.fr>
6032
6033 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
6034 arguments is really empty, not only equal to `[]'.
6035 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
6036 member.
6037 (symbol_destructor_set): New.
6038 * src/output.c (symbol_destructors_output): New.
6039 * src/reader.h (brace_code_t, current_braced_code): New.
6040 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
6041 (handle_dollar): Rename as...
6042 (handle_action_dollar): this.
6043 (handle_destructor_dollar): New.
6044 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
6045 (grammar_declaration): Use it.
6046 * data/bison.simple (yystos): Is always defined.
6047 (yydestructor): New.
6048 * tests/actions.at (Destructors): New.
6049 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
6050
60512002-06-17 Akim Demaille <akim@epita.fr>
6052
6053 * src/symlist.h, src/symlist.c (symbol_list_length): New.
6054 * src/scan-gram.l (handle_dollar, handle_at): Compute the
6055 rule_length only when needed.
6056 * src/output.c (actions_output, token_definitions_output): Output
6057 the full M4 block.
6058 * src/symtab.c: Don't access directly to the symbol tag, use
6059 symbol_tag_get.
6060 * src/parse-gram.y: Use symbol_list_free.
6061
60622002-06-17 Akim Demaille <akim@epita.fr>
6063
6064 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
6065 (symbol_list_prepend, get_type_name): Move to...
6066 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
6067 (symbol_list_prepend, symbol_list_n_type_name_get): here.
6068 Adjust all callers.
6069 (symbol_list_free): New.
6070 * src/scan-gram.l (handle_dollar): Takes a location.
6071 * tests/input.at (Invalid $n): Adjust.
6072
60732002-06-17 Akim Demaille <akim@epita.fr>
6074
6075 * src/reader.h, src/reader.c (symbol_list_new): Export it.
6076 (symbol_list_prepend): New.
6077 * src/parse-gram.y (%union): `list' is a new member.
6078 (symbols.1): New, replaces...
6079 (terms_to_prec.1, nterms_to_type.1): these.
6080 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
6081 Take a location as additional argument.
6082 Adjust all callers.
6083
60842002-06-15 Akim Demaille <akim@epita.fr>
6085
6086 * src/parse-gram.y: Move %token in the declaration section so that
6087 we don't depend upon CVS Bison.
6088
60892002-06-15 Akim Demaille <akim@epita.fr>
6090
6091 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
6092 * src/print.c (print_core): Use it.
6093
60942002-06-15 Akim Demaille <akim@epita.fr>
6095
6096 * src/conflicts.c (log_resolution): Accept the rule involved in
6097 the sr conflicts instead of the lookahead number that points to
6098 that rule.
6099 (flush_reduce): Accept the current lookahead vector as argument,
6100 instead of the index in LA.
6101 (resolve_sr_conflict): Accept the current number of lookahead
6102 bitset to consider for the STATE, instead of the index in LA.
6103 (set_conflicts): Adjust.
6104 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
6105
61062002-06-15 Akim Demaille <akim@epita.fr>
6107
6108 * src/state.h (state_t): Replace the `lookaheadsp' member, a
6109 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
6110 Adjust all dependencies.
6111 * src/lalr.c (initialize_lookaheads): Split into...
6112 (states_lookaheads_count, states_lookaheads_initialize): these.
6113 (lalr): Adjust.
6114
61152002-06-15 Akim Demaille <akim@epita.fr>
6116
6117 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
6118 out of...
6119 (grammar_rules_print): here.
6120 * src/reduce.c (reduce_output): Use it.
6121 * tests/reduce.at (Useless Rules, Reduced Automaton)
6122 (Underivable Rules): Adjust.
6123
61242002-06-15 Akim Demaille <akim@epita.fr>
6125
6126 Copy BYacc's nice way to report the grammar.
6127
6128 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
6129 New.
6130 Don't print the rules' location, it is confusing and useless.
6131 (rule_print): Use grammar_rhs_print.
6132 * src/print.c (print_grammar): Use grammar_rules_print.
6133
61342002-06-15 Akim Demaille <akim@epita.fr>
6135
6136 Complete and rationalize `useless thing' warnings.
6137
6138 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
6139 (symbol_tag_print): New.
6140 Use them everywhere in place of accessing directly the tag member.
6141 * src/gram.h, src/gram.c (rule_print): New.
6142 Use it where a rule used to be printed `by hand'.
6143 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
6144 (reduce_grammar_tables): Report the useless rules.
6145 (reduce_print): Useless things are a warning, not an error.
6146 Report it as such.
6147 * tests/reduce.at (Useless Nonterminals, Useless Rules):
6148 (Reduced Automaton, Underivable Rules): Adjust.
6149 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
6150 * tests/conflicts.at (Unresolved SR Conflicts)
6151 (Solved SR Conflicts): Adjust.
6152
61532002-06-15 Akim Demaille <akim@epita.fr>
6154
6155 Let symbols have a location.
6156
6157 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
6158 (getsym): Adjust.
6159 Adjust all callers.
6160 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
6161 Use location_t, not int.
6162 * src/symtab.c (symbol_check_defined): Take advantage of the
6163 location.
6164 * tests/regression.at (Invalid inputs): Adjust.
6165
61662002-06-15 Akim Demaille <akim@epita.fr>
6167
6168 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
6169 (input): Don't try to initialize yylloc here, do it in the
6170 scanner.
6171 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
6172 * src/gram.h (rule_t): Change line and action_line into location
6173 and action_location, of location_t type.
6174 Adjust all dependencies.
6175 * src/location.h, src/location.c (empty_location): New.
6176 * src/reader.h, src/reader.c (grammar_start_symbol_set)
6177 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
6178 (grammar_current_rule_symbol_append)
6179 (grammar_current_rule_action_append): Expect a location as argument.
6180 * src/reader.c (grammar_midrule_action): Adjust to attach an
6181 action's location as dummy symbol location.
6182 * src/symtab.h, src/symtab.c (startsymbol_location): New.
6183 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
6184 the line numbers.
6185
61862002-06-14 Akim Demaille <akim@epita.fr>
6187
6188 Grammar declarations may be found in the grammar section.
6189
6190 * src/parse-gram.y (rules_or_grammar_declaration): New.
6191 (declarations): Each declaration may end with a semicolon, not
6192 just...
6193 (grammar_declaration): `"%union"'.
6194 (grammar): Branch to rules_or_grammar_declaration.
6195
61962002-06-14 Akim Demaille <akim@epita.fr>
6197
6198 * src/main.c (main): Invoke scanner_free.
6199
62002002-06-14 Akim Demaille <akim@epita.fr>
6201
6202 * src/output.c (m4_invoke): Extracted from...
6203 (output_skeleton): here.
6204 Free tempfile.
6205
62062002-06-14 Akim Demaille <akim@epita.fr>
6207
6208 * src/parse-gram.y (directives, directive, gram)
6209 (grammar_directives, precedence_directives, precedence_directive):
6210 Rename as...
6211 (declarations, declaration, grammar, grammar_declaration)
6212 (precedence_declaration, precedence_declarator): these.
6213 (symbol_declaration): New.
6214
62152002-06-14 Akim Demaille <akim@epita.fr>
6216
6217 * src/files.c (action_obstack): Remove, unused.
6218 (output_obstack): Remove it, and all its dependencies, as it is no
6219 longer needed.
6220 * src/reader.c (epilogue_set): Build the epilogue in the
6221 muscle_obstack.
6222 * src/output.h, src/output.c (muscle_obstack): Move to...
6223 * src/muscle_tab.h, src/muscle_tab.h: here.
6224 (muscle_init): Initialize muscle_obstack.
6225 (muscle_free): New.
6226 * src/main.c (main): Call it.
6227
62282002-06-14 Akim Demaille <akim@epita.fr>
6229
6230 * src/location.h: New, extracted from...
6231 * src/reader.h: here.
6232 * src/Makefile.am (noinst_HEADERS): Merge into
6233 (bison_SOURCES): this.
6234 Add location.h.
6235 * src/parse-gram.y: Use location_t instead of Bison's.
6236 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
6237 Use location_t instead of ints.
6238
62392002-06-14 Akim Demaille <akim@epita.fr>
6240
6241 * data/bison.simple, data/bison.c++: Be sure to restore the
6242 current #line when returning to the skeleton contents after having
6243 exposed the input file's #line.
6244
62452002-06-12 Akim Demaille <akim@epita.fr>
6246
6247 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
6248 eager.
6249 * tests/actions.at (Exotic Dollars): New.
6250
62512002-06-12 Akim Demaille <akim@epita.fr>
6252
6253 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
6254 ['"/] too eagerly.
6255 * tests/input.at (Torturing the Scanner): New.
6256
62572002-06-11 Akim Demaille <akim@epita.fr>
6258
6259 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
6260 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
6261 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
6262 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
6263 * src/reader.c (reader): Use it.
6264
62652002-06-11 Akim Demaille <akim@epita.fr>
6266
6267 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
6268 Adjust all callers.
6269 (scanner_last_string_free): New.
6270
62712002-06-11 Akim Demaille <akim@epita.fr>
6272
6273 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
6274 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
6275 (last_string, YY_OBS_FREE): New.
6276 Use them when returning an ID.
6277
62782002-06-11 Akim Demaille <akim@epita.fr>
6279
6280 Have Bison grammars parsed by a Bison grammar.
6281
6282 * src/reader.c, src/reader.h (prologue_augment): New.
6283 * src/reader.c (copy_definition): Remove.
6284
6285 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
6286 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
6287 (grammar_current_rule_prec_set, grammar_current_rule_check)
6288 (grammar_current_rule_symbol_append)
6289 (grammar_current_rule_action_append): Export.
6290 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
6291 (symbol_list_action_append): Remove.
6292 Hook the routines from reader.
6293 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
6294 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
6295
6296 * src/reader.c (read_declarations): Remove, unused.
6297
6298 * src/parse-gram.y: Handle the epilogue.
6299 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
6300 (grammar_start_symbol_set): this.
6301 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
6302 * src/reader.c (readgram): Remove, unused.
6303 (reader): Adjust to insert eoftoken and axiom where appropriate.
6304
6305 * src/reader.c (copy_dollar): Replace with...
6306 * src/scan-gram.h (handle_dollar): this.
6307 * src/parse-gram.y: Remove `%thong'.
6308
6309 * src/reader.c (copy_at): Replace with...
6310 * src/scan-gram.h (handle_at): this.
6311
6312 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
6313 New.
6314
6315 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
6316 time being.
6317
6318 * src/reader.h, src/reader.c (grammar_rule_end): New.
6319
6320 * src/parse.y (current_type, current_class): New.
6321 Implement `%nterm', `%token' support.
6322 Merge `%term' into `%token'.
6323 (string_as_id): New.
6324 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
6325 type name.
6326
6327 * src/parse-gram.y: Be sure to handle properly the beginning of
6328 rules.
6329
6330 * src/parse-gram.y: Handle %type.
6331 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
6332
6333 * src/parse-gram.y: More directives support.
6334 * src/options.c: No longer handle source directives.
6335
6336 * src/parse-gram.y: Fix %output.
6337
6338 * src/parse-gram.y: Handle %union.
6339 Use the prologue locations.
6340 * src/reader.c (parse_union_decl): Remove.
6341
6342 * src/reader.h, src/reader.c (epilogue_set): New.
6343 * src/parse-gram.y: Use it.
6344
6345 * data/bison.simple, data/bison.c++: b4_stype is now either not
6346 defined, then default to int, or to the contents of %union,
6347 without `union' itself.
6348 Adjust.
6349 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
6350
6351 * src/output.c (actions_output): Don't output braces, as they are
6352 already handled by the scanner.
6353
6354 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
6355 characters to themselves.
6356
6357 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
6358 that the epilogue has a proper #line.
6359
6360 * src/parse-gram.y: Handle precedence/associativity.
6361
6362 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
6363 a terminal.
6364 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
6365 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
6366 at all to define terminals that cannot be emitted.
6367
6368 * src/scan-gram.l: Escape M4 characters.
6369
6370 * src/scan-gram.l: Working properly with escapes in user
6371 strings/characters.
6372
6373 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
6374 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
6375 grammar.
6376 Use more modest sizes, as for the time being the parser does not
6377 release memory, and therefore the process swallows a huge amount
6378 of memory.
6379
6380 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
6381 stricter %token grammar.
6382
6383 * src/symtab.h (associativity): Add `undef_assoc'.
6384 (symbol_precedence_set): Do nothing when passed an undef_assoc.
6385 * src/symtab.c (symbol_check_alias_consistence): Adjust.
6386
6387 * tests/regression.at (Invalid %directive): Remove, as it is now
6388 meaningless.
6389 (Invalid inputs): Adjust to the new error messages.
6390 (Token definitions): The new grammar doesn't allow too many
6391 eccentricities.
6392
6393 * src/lex.h, src/lex.c: Remove.
6394 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
6395 (copy_character, copy_string2, copy_string, copy_identifier)
6396 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
6397 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
6398 (parse_action): Remove.
6399 * po/POTFILES.in: Adjust.
6400
64012002-06-11 Akim Demaille <akim@epita.fr>
6402
6403 * src/reader.c (parse_action): Don't store directly into the
6404 rule's action member: return the action as a string.
6405 Don't require `rule_length' as an argument: compute it.
6406 (grammar_current_rule_symbol_append)
6407 (grammar_current_rule_action_append): New, eved out from
6408 (readgram): here.
6409 Remove `action_flag', `rulelength', unused now.
6410
64112002-06-11 Akim Demaille <akim@epita.fr>
6412
6413 * src/reader.c (grammar_current_rule_prec_set).
6414 (grammar_current_rule_check): New, eved out from...
6415 (readgram): here.
6416 Remove `xaction', `first_rhs': useless.
6417 * tests/input.at (Type clashes): New.
6418 * tests/existing.at (GNU Cim Grammar): Adjust.
6419
64202002-06-11 Akim Demaille <akim@epita.fr>
6421
6422 * src/reader.c (grammar_midrule_action): New, Eved out from
6423 (readgram): here.
6424
64252002-06-11 Akim Demaille <akim@epita.fr>
6426
6427 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
6428 New.
6429 (readgram): Use them as replacement of inlined code, crule and
6430 crule1.
6431
64322002-06-11 Akim Demaille <akim@epita.fr>
6433
6434 * src/reader.c (grammar_end, grammar_symbol_append): New.
6435 (readgram): Use them.
6436 Make the use of `p' as local as possible.
6437
64382002-06-10 Akim Demaille <akim@epita.fr>
6439
6440 GCJ's parser requires the tokens to be defined before the prologue.
6441
6442 * data/bison.simple: Output the token definition before the user's
6443 prologue.
6444 * tests/regression.at (Braces parsing, Duplicate string)
6445 (Mixing %token styles): Check the output from bison.
6446 (Early token definitions): New.
6447
64482002-06-10 Akim Demaille <akim@epita.fr>
6449
6450 * src/symtab.c (symbol_user_token_number_set): Don't complain when
6451 assigning twice the same user number to a token, so that we can
6452 use it in...
6453 * src/lex.c (lex): here.
6454 Also use `symbol_class_set' instead of hand written code.
6455 * src/reader.c (parse_assoc_decl): Likewise.
6456
64572002-06-10 Akim Demaille <akim@epita.fr>
6458
6459 * src/symtab.c, src/symtab.c (symbol_class_set)
6460 (symbol_user_token_number_set): New.
6461 * src/reader.c (parse_token_decl): Use them.
6462 Use a switch instead of ifs.
6463 Use a single argument.
6464
64652002-06-10 Akim Demaille <akim@epita.fr>
6466
6467 Remove `%thong' support as it is undocumented, unused, duplicates
6468 `%token's job, and creates useless e-mail traffic with people who
6469 want to know what it is, why it is undocumented, unused, and
6470 duplicates `%token's job.
6471
6472 * src/reader.c (parse_thong_decl): Remove.
6473 * src/options.c (option_table): Remove "thong".
6474 * src/lex.h (tok_thong): Remove.
6475
64762002-06-10 Akim Demaille <akim@epita.fr>
6477
6478 * src/symtab.c, src/symtab.c (symbol_type_set)
6479 (symbol_precedence_set): New.
6480 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
6481 (value_components_used): Remove, unused.
6482
64832002-06-09 Akim Demaille <akim@epita.fr>
6484
6485 Move symbols handling code out of the reader.
6486
6487 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
6488 (axiom): Move to...
6489 * src/symtab.h, src/symtab.c: here.
6490
6491 * src/gram.c (start_symbol): Remove: use startsymbol->number.
6492 * src/reader.c (startval): Rename as...
6493 * src/symtab.h, src/symtab.c (startsymbol): this.
6494 * src/reader.c: Adjust.
6495
6496 * src/reader.c (symbol_check_defined, symbol_make_alias)
6497 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
6498 (token_translations_init)
6499 Move to...
6500 * src/symtab.c: here.
6501 * src/reader.c (packsymbols): Move to...
6502 * src/symtab.h, src/symtab.c (symbols_pack): here.
6503 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
6504 argument.
6505
65062002-06-03 Akim Demaille <akim@epita.fr>
6507
6508 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
6509 then statements.
6510
65112002-06-03 Akim Demaille <akim@epita.fr>
6512
6513 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
6514 structs with non literals.
6515 * src/scan-skel.l: never-interactive.
6516 * src/conflicts.c (enum conflict_resolution_e): No trailing
6517 comma.
6518 * src/getargs.c (usage): Split long literal strings.
6519 Reported by Hans Aberg.
6520
65212002-05-28 Akim Demaille <akim@epita.fr>
6522
6523 * data/bison.c++: Use C++ ostreams.
6524 (cdebug_): New member.
6525
65262002-05-28 Akim Demaille <akim@epita.fr>
6527
6528 * src/output.c (output_skeleton): Be sure to allocate enough room
6529 for `/' _and_ for `\0' in full_skeleton.
6530
65312002-05-28 Akim Demaille <akim@epita.fr>
6532
6533 * data/bison.c++: Catch up with bison.simple:
6534 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6535 and Paul Eggert <eggert@twinsun.com>: `error' handing.
6536 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
6537 and popping traces.
6538
65392002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6540
6541 * src/output.c (output_skeleton): Put an explicit path in front of
6542 the skeleton file name, rather than relying on the -I directory,
6543 to partially alleviate effects of having a skeleton file lying around
6544 in the current directory.
6545
65462002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6547
6548 * src/conflicts.c (log_resolution): Correct typo:
6549 obstack_printf should be obstack_fgrow1.
6550
65512002-05-26 Akim Demaille <akim@epita.fr>
6552
6553 * src/state.h (state_t): `solved_conflicts' is a new member.
6554 * src/LR0.c (new_state): Set it to 0.
6555 * src/conflicts.h, src/conflicts.c (print_conflicts)
6556 (free_conflicts, solve_conflicts): Rename as...
6557 (conflicts_print, conflicts_free, conflicts_solve): these.
6558 Adjust callers.
6559 * src/conflicts.c (enum conflict_resolution_e)
6560 (solved_conflicts_obstack): New, used by...
6561 (log_resolution): this.
6562 Adjust to attach the conflict resolution to each state.
6563 Complete the description with the precedence/associativity
6564 information.
6565 (resolve_sr_conflict): Adjust.
6566 * src/print.c (print_state): Output its solved_conflicts.
6567 * tests/conflicts.at (Unresolved SR Conflicts)
6568 (Solved SR Conflicts): Exercise --report=all.
6569
65702002-05-26 Akim Demaille <akim@epita.fr>
6571
6572 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
6573 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
6574 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
6575 (token_number_t, item_number_as_token_number)
6576 (token_number_as_item_number, muscle_insert_token_number_table):
6577 Rename as...
6578 (symbol_number_t, item_number_as_symbol_number)
6579 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
6580 these, since it is more appropriate.
6581
65822002-05-26 Akim Demaille <akim@epita.fr>
6583
6584 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
6585 `Error:' lines.
6586 * data/bison.simple (yystos) [YYDEBUG]: New.
6587 (yyparse) [YYDEBUG]: Display the symbols which are popped during
6588 error recovery.
6589 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
6590
65912002-05-25 Akim Demaille <akim@epita.fr>
6592
6593 * doc/bison.texinfo (Debugging): Split into...
6594 (Tracing): this new section, its former contents, and...
6595 (Understanding): this new section.
6596 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
6597 by...
6598 (report_flag): this.
6599 Adjust all dependencies.
6600 (report_args, report_types, report_argmatch): New.
6601 (usage, getargs): Report/support -r, --report.
6602 * src/options.h
6603 (struct option_table_struct): Rename as..,
6604 (struct option_table_s): this.
6605 Rename the `set_flag' member to `flag' to match with getopt_long's
6606 struct.
6607 * src/options.c (option_table): Split verbose into an entry for
6608 %verbose, and another for --verbose.
6609 Support --report/-r, so remove -r from the obsolete --raw.
6610 * src/print.c: Attach full item sets and lookaheads reports to
6611 report_flag instead of trace_flag.
6612 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
6613
66142002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6615 and Paul Eggert <eggert@twinsun.com>
6616
6617 * data/bison.simple (yyparse): Correct error handling to conform to
6618 POSIX and yacc. Specifically, after syntax error is discovered,
6619 do not reduce further before shifting the error token.
6620 Clean up the code a bit by removing the labels yyerrdefault,
6621 yyerrhandle, yyerrpop.
6622 * NEWS: Document the above.
6623
66242002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6625
6626 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
6627 type; it isn't always big enough, since it doesn't necessarily
6628 include non-terminals.
6629 (yytranslate): Expand definition of yy_token_number_type, so that
6630 the latter can be removed.
6631 (yy_token_number_type): Remove, only one use.
6632 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
6633 don't use TokenNumberType as element type.
6634
6635 * tests/regression.at: Modify expected output to agree with change
6636 to yyr1 and yytranslate.
6637
66382002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
6639
6640 * src/reader.c (parse_action): Use copy_character instead of
6641 obstack_1grow.
6642
66432002-05-13 Akim Demaille <akim@epita.fr>
6644
6645 * tests/regression.at (Token definitions): Prototype yylex and
6646 yyerror.
6647
66482002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6649
6650 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
6651 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
6652 32-bit arithmetic.
6653 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
6654
66552002-05-07 Akim Demaille <akim@epita.fr>
6656
6657 * tests/synclines.at: Be sure to prototype yylex and yyerror to
6658 avoid GCC warnings.
6659
66602002-05-07 Akim Demaille <akim@epita.fr>
6661
6662 Kill GCC warnings.
6663
6664 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
6665 over the RHS of each rule.
6666 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
6667 * src/state.h (state_t): Member `nitems' is unsigned short.
6668 * src/LR0.c (get_state): Adjust.
6669 * src/reader.c (packgram): Likewise.
6670 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
6671 `Type'.
6672 (muscle_insert_int_table): Remove, unused.
6673 (prepare_rules): Remove `max'.
6674
66752002-05-06 Akim Demaille <akim@epita.fr>
6676
6677 * src/closure.c (print_firsts): Display of the symbol tags.
6678 (bitmatrix_print): Move to...
6679 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
6680 here.
6681 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
6682
66832002-05-06 Akim Demaille <akim@epita.fr>
6684
6685 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
6686 hash_do_for_each.
6687
66882002-05-06 Akim Demaille <akim@epita.fr>
6689
6690 * src/LR0.c (new_state, get_state): Instead of using the global
6691 `kernel_size' and `kernel_base', have two new arguments:
6692 `core_size' and `core'.
6693 Adjust callers.
6694
66952002-05-06 Akim Demaille <akim@epita.fr>
6696
6697 * src/reader.c (packgram): No longer end `ritem' with a 0
6698 sentinel: it is not used.
6699
67002002-05-05 Akim Demaille <akim@epita.fr>
6701
6702 New experimental feature: display the lookaheads in the report and
6703 graph.
6704
6705 * src/print (print_core): When --trace-flag, display the rules
6706 lookaheads.
6707 * src/print_graph.c (print_core): Likewise.
6708 Swap the arguments.
6709 Adjust caller.
6710
67112002-05-05 Akim Demaille <akim@epita.fr>
6712
6713 * tests/torture.at (Many lookaheads): New test.
6714
67152002-05-05 Akim Demaille <akim@epita.fr>
6716
6717 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
6718 (GENERATE_MUSCLE_INSERT_TABLE): this.
6719 (output_int_table, output_unsigned_int_table, output_short_table)
6720 (output_token_number_table, output_item_number_table): Replace with...
6721 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
6722 (muscle_insert_short_table, muscle_insert_token_number_table)
6723 (muscle_insert_item_number_table): these.
6724 Adjust all callers.
6725 (prepare_tokens): Don't free `translations', since...
6726 * src/reader.h, src/reader.c (grammar_free): do it.
6727 Move to...
6728 * src/gram.h, src/gram.c (grammar_free): here.
6729 * data/bison.simple, data/bison.c++: b4_token_number_max is now
6730 b4_translate_max.
6731
67322002-05-05 Akim Demaille <akim@epita.fr>
6733
6734 * src/output.c (output_unsigned_int_table): New.
6735 (prepare_rules): `i' is unsigned.
6736 `prhs', `rline', `r2' are unsigned int.
6737 Rename muscle `rhs_number_max' as `rhs_max'.
6738 Output muscles `prhs_max', `rline_max', and `r2_max'.
6739 Free rline and r1.
6740 * data/bison.simple, data/bison.c++: Adjust to use these muscles
6741 to compute types instead of constant types.
6742 * tests/regression.at (Web2c Actions): Adjust.
6743
67442002-05-04 Akim Demaille <akim@epita.fr>
6745
6746 * src/symtab.h (SALIAS, SUNDEF): Rename as...
6747 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
6748 Adjust dependencies.
6749 * src/output.c (token_definitions_output): Be sure not to output a
6750 `#define 'a'' when fed with `%token 'a' "a"'.
6751 * tests/regression.at (Token definitions): New.
6752
67532002-05-03 Paul Eggert <eggert@twinsun.com>
6754
6755 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
6756 for K&R C.
6757
67582002-05-03 gettextize <bug-gnu-gettext@gnu.org>
6759
6760 * Makefile.am (SUBDIRS): Remove intl.
6761 (EXTRA_DIST): Add config/config.rpath.
6762
67632002-05-03 Akim Demaille <akim@epita.fr>
6764
6765 * data/bison.simple (m4_if): Don't output empty enums.
6766 And actually, output valid enum definitions :(.
6767
67682002-05-03 Akim Demaille <akim@epita.fr>
6769
6770 * configure.bat: Remove, completely obsolete.
6771 * Makefile.am (EXTRA_DIST): Adjust.
6772 Don't distribute config.rpath...
6773 * config/Makefile.am (EXTRA_DIST): Do it.
6774
67752002-05-03 Akim Demaille <akim@epita.fr>
6776
6777 * configure.in (GETTEXT_VERSION): New.
6778 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
6779
67802002-05-03 Akim Demaille <akim@epita.fr>
6781
6782 * data/bison.simple (b4_token_enum): New.
6783 (b4_token_defines): Use it to output tokens both as #define and
6784 enums.
6785 Suggested by Paul Eggert.
6786 * src/output.c (token_definitions_output): Don't output spurious
6787 white spaces.
6788
67892002-05-03 Akim Demaille <akim@epita.fr>
6790
6791 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
6792
67932002-05-02 Robert Anisko <robert@lrde.epita.fr>
6794
6795 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
6796 Update the stack class, give a try to deque as the default container.
6797
67982002-05-02 Akim Demaille <akim@epita.fr>
6799
6800 * data/bison.simple (yyparse): Do not implement @$ = @1.
6801 (YYLLOC_DEFAULT): Adjust to do it.
6802 * doc/bison.texinfo (Location Default Action): Fix.
6803
68042002-05-02 Akim Demaille <akim@epita.fr>
6805
6806 * src/reader.c (parse_braces): Merge into...
6807 (parse_action): this.
6808
68092002-05-02 Akim Demaille <akim@epita.fr>
6810
6811 * configure.in (ALL_LINGUAS): Remove.
6812 * po/LINGUAS, hr.po: New.
6813
68142002-05-02 Akim Demaille <akim@epita.fr>
6815
6816 Remove the so called hairy (semantic) parsers.
6817
6818 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
6819 * src/gram.h, src/gram.c (semantic_parser): Remove.
6820 (rule_t): Remove the guard and guard_line members.
6821 * src/lex.h (token_t): remove tok_guard.
6822 * src/options.c (option_table): Remove %guard and %semantic_parser
6823 support.
6824 * src/output.c, src/output.h (guards_output): Remove.
6825 (prepare): Adjust.
6826 (token_definitions_output): Don't output the `T'
6827 tokens (???).
6828 (output_skeleton): Don't output the guards.
6829 * src/files.c, src/files.c (attrsfile): Remove.
6830 * src/reader.c (symbol_list): Remove the guard and guard_line
6831 members.
6832 Adjust dependencies.
6833 (parse_guard): Remove.
6834 * data/bison.hairy: Remove.
6835 * doc/bison.texinfo (Environment Variables): Remove occurrences of
6836 BISON_HAIRY.
6837
68382002-05-02 Akim Demaille <akim@epita.fr>
6839
6840 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
6841 (parse_guard): Rename the formal argument `stack_offset' as
6842 `rule_length', which is more readable.
6843 Adjust callers.
6844 (copy_at, copy_dollar): Instead of outputting the hard coded
6845 values of $$, $n and so forth, output invocation to b4_lhs_value,
6846 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
6847 Note: this patch partially drops `semantic-parser' support: it
6848 always does `rule_length - n', where semantic parsers ought to
6849 always use `-n'.
6850 * data/bison.simple, data/bison.c++ (b4_lhs_value)
6851 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
6852
68532002-05-02 Akim Demaille <akim@epita.fr>
6854
6855 * configure.in (AC_INIT): Bump to 1.49b.
6856 (AM_INIT_AUTOMAKE): Short invocation.
6857
68582002-05-02 Akim Demaille <akim@epita.fr>
6859
6860 Version 1.49a.
6861
68622002-05-01 Akim Demaille <akim@epita.fr>
6863
6864 * src/skeleton.h: Remove.
6865
68662002-05-01 Akim Demaille <akim@epita.fr>
6867
6868 * src/skeleton.h: Fix the #endif.
6869 Reported by Magnus Fromreide.
6870
68712002-04-26 Paul Eggert <eggert@twinsun.com>
6872
6873 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
6874 Define if we define YYSTYPE and YYLTYPE, respectively.
6875 (YYCOPY): Fix [] quoting problem in the non-GCC case.
6876
68772002-04-25 Robert Anisko <robert@lrde.epita.fr>
6878
6879 * src/scan-skel.l: Postprocess quadrigraphs.
6880
6881 * src/reader.c (copy_character): New function, used to output
6882 single characters while replacing `[' and `]' with quadrigraphs, to
6883 avoid troubles with M4 quotes.
6884 (copy_comment): Output characters with copy_character.
6885 (read_additionnal_code): Likewise.
6886 (copy_string2): Likewise.
6887 (copy_definition): Likewise.
6888
6889 * tests/calc.at: Exercise M4 quoting.
6890
68912002-04-25 Akim Demaille <akim@epita.fr>
6892
6893 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
6894 between `!' and the command.
6895 Reported by Paul Eggert.
6896
68972002-04-24 Robert Anisko <robert@lrde.epita.fr>
6898
6899 * tests/calc.at: Exercise prologue splitting.
6900
6901 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
6902 `b4_post_prologue' instead of `b4_prologue'.
6903
6904 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
6905 muscles.
6906 (output): Free pre_prologue_obstack and post_prologue_obstack.
6907 * src/files.h, src/files.c (attrs_obstack): Remove.
6908 (pre_prologue_obstack, post_prologue_obstack): New.
6909 * src/reader.c (copy_definition): Add a parameter to specify the
6910 obstack to fill, instead of using attrs_obstack unconditionally.
6911 (read_declarations): Pass pre_prologue_obstack to copy_definition if
6912 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
6913
69142002-04-23 Paul Eggert <eggert@twinsun.com>
6915
6916 * data/bison.simple: Remove unnecessary commentary and white
6917 space differences from 1_29-branch.
6918 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
6919
6920 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
6921 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
6922 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
6923 constructors or destructors.
6924
6925 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
6926
69272002-04-23 Akim Demaille <akim@epita.fr>
6928
6929 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
6930 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
6931 location with columns.
6932 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
6933 All reported by Paul Eggert.
6934
69352002-04-22 Akim Demaille <akim@epita.fr>
6936
6937 * src/reduce.c (dump_grammar): Move to...
6938 * src/gram.h, src/gram.c (grammar_dump): here.
6939 Be sure to separate long item numbers.
6940 Don't read the members of a rule's prec if its nil.
6941
69422002-04-22 Akim Demaille <akim@epita.fr>
6943
6944 * src/output.c (table_size, table_grow): New.
6945 (MAXTABLE): Remove, replace uses with table_size.
6946 (pack_vector): Instead of dying when the table is too big, grow it.
6947
69482002-04-22 Akim Demaille <akim@epita.fr>
6949
6950 * data/bison.simple (yyr1): Its type is that of a token number.
6951 * data/bison.c++ (r1_): Likewise.
6952 * tests/regression.at (Web2c Actions): Adjust.
6953
69542002-04-22 Akim Demaille <akim@epita.fr>
6955
6956 * src/reader.c (token_translations_init): 256 is now the default
6957 value for the error token, i.e., it will be assigned another
6958 number if the user assigned 256 to one of her tokens.
6959 (reader): Don't force 256 to error.
6960 * doc/bison.texinfo (Symbols): Adjust.
6961 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
6962 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
6963 etc. instead of 10, 20, 30 (which was used to `jump' over error
6964 (256) and undefined (2)).
6965
69662002-04-22 Akim Demaille <akim@epita.fr>
6967
6968 Propagate more token_number_t.
6969
6970 * src/gram.h (token_number_as_item_number)
6971 (item_number_as_token_number): New.
6972 * src/output.c (GENERATE_OUTPUT_TABLE): New.
6973 Use it to create output_item_number_table and
6974 output_token_number_table.
6975 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
6976 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
6977 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
6978 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
6979
69802002-04-22 Akim Demaille <akim@epita.fr>
6981
6982 * src/output.h, src/output.c (get_lines_number): Remove.
6983
69842002-04-19 Akim Demaille <akim@epita.fr>
6985
6986 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
6987 as Lex/Flex'.
6988 (Debugging): More details about enabling the debugging features.
6989 (Table of Symbols): Describe $$, $n, @$, and @n.
6990 Suggested by Tim Josling.
6991
69922002-04-19 Akim Demaille <akim@epita.fr>
6993
6994 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
6995
69962002-04-10 Akim Demaille <akim@epita.fr>
6997
6998 * src/system.h: Rely on HAVE_LIMITS_H.
6999 Suggested by Paul Eggert.
7000
70012002-04-09 Akim Demaille <akim@epita.fr>
7002
7003 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
7004 full stderr, and strip it according to the bison options, instead
7005 of composing the error message from different bits.
7006 This makes it easier to check for several error messages.
7007 Adjust all the invocations.
7008 Add an invocation exercising the error token.
7009 Add an invocation demonstrating a stupid error message.
7010 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
7011 Adjust the tests.
7012 Error message are for stderr, not stdout.
7013
70142002-04-09 Akim Demaille <akim@epita.fr>
7015
7016 * src/gram.h, src/gram.c (error_token_number): Remove, use
7017 errtoken->number.
7018 * src/reader.c (reader): Don't specify the user token number (2)
7019 for $undefined, as it uselessly prevents using it.
7020 * src/gram.h (token_number_t): Move to...
7021 * src/symtab.h: here.
7022 (state_t.number): Is a token_number_t.
7023 * src/print.c, src/reader.c: Use undeftoken->number instead of
7024 hard coded 2.
7025 (Even though this 2 is not the same as above: the number of the
7026 undeftoken remains being 2, it is its user token number which
7027 might not be 2).
7028 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
7029 `user_token_number_max'.
7030 Output `undef_token_number'.
7031 * data/bison.simple, data/bison.c++: Use them.
7032 Be sure to map invalid yylex return values to
7033 `undef_token_number'. This saves us from gratuitous SEGV.
7034
7035 * tests/conflicts.at (Solved SR Conflicts)
7036 (Unresolved SR Conflicts): Adjust.
7037 * tests/regression.at (Web2c Actions): Adjust.
7038
70392002-04-08 Akim Demaille <akim@epita.fr>
7040
7041 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
7042 Adding #line.
7043 Remove the duplicate `typedefs'.
7044 (RhsNumberType): Fix the declaration and various other typos.
7045 Use __ofile__.
7046 * data/bison.simple: Use __ofile__.
7047 * src/scan-skel.l: Handle __ofile__.
7048
70492002-04-08 Akim Demaille <akim@epita.fr>
7050
7051 * src/gram.h (item_number_t): New, the type of item numbers in
7052 RITEM. Note that it must be able to code symbol numbers as
7053 positive number, and the negation of rule numbers as negative
7054 numbers.
7055 Adjust all dependencies (pretty many).
7056 * src/reduce.c (rule): Remove this `short *' pointer: use
7057 item_number_t.
7058 * src/system.h (MINSHORT, MAXSHORT): Remove.
7059 Include `limits.h'.
7060 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
7061 (shortcpy): Remove.
7062 (MAXTABLE): Move to...
7063 * src/output.c (MAXTABLE): here.
7064 (prepare_rules): Use output_int_table to output rhs.
7065 * data/bison.simple, data/bison.c++: Adjust.
7066 * tests/torture.at (Big triangle): Move the limit from 254 to
7067 500.
7068 * tests/regression.at (Web2c Actions): Ajust.
7069
7070 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
7071 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
7072 passes, but produces negative #line number, once fixed, GCC is
7073 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
7074 C), it passes.
7075 * src/state.h (state_h): Code input lines on ints, not shorts.
7076
70772002-04-08 Akim Demaille <akim@epita.fr>
7078
7079 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
7080 and then the grammar.
7081
70822002-04-08 Akim Demaille <akim@epita.fr>
7083
7084 * src/system.h: No longer using strndup.
7085
70862002-04-07 Akim Demaille <akim@epita.fr>
7087
7088 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
7089 * src/output.c (output_table_data): Return the longest number.
7090 (prepare_tokens): Output `token_number_max').
7091 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
7092 New.
7093 Use them to define yy_token_number_type/TokenNumberType.
7094 Use this type for yytranslate.
7095 * tests/torture.at (Big triangle): Push the limit from 124 to
7096 253.
7097 * tests/regression.at (Web2c Actions): Adjust.
7098
70992002-04-07 Akim Demaille <akim@epita.fr>
7100
7101 * tests/torture.at (Big triangle): New.
7102 (GNU AWK Grammar, GNU Cim Grammar): Move to...
7103 * tests/existing.at: here.
7104
71052002-04-07 Akim Demaille <akim@epita.fr>
7106
7107 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
7108 nritems.
7109 Adjust dependencies.
7110
71112002-04-07 Akim Demaille <akim@epita.fr>
7112
7113 * src/reader.c: Normalize increments to prefix form.
7114
71152002-04-07 Akim Demaille <akim@epita.fr>
7116
7117 * src/reader.c, symtab.c: Remove debugging code.
7118
71192002-04-07 Akim Demaille <akim@epita.fr>
7120
7121 Rename all the `bucket's as `symbol_t'.
7122
7123 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
7124 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
7125 * src/symtab.c, src/symtab.h (bucket): Rename as...
7126 (symbol_t): this.
7127 (symbol_list_new, bucket_check_defined, bucket_make_alias)
7128 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
7129 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
7130 (buckets_new, buckets_free, buckets_do): Rename as...
7131 (symbol_list_new, symbol_check_defined, symbol_make_alias)
7132 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
7133 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
7134 (symbols_new, symbols_free, symbols_do): these.
7135
71362002-04-07 Akim Demaille <akim@epita.fr>
7137
7138 Use lib/hash for the symbol table.
7139
7140 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
7141 EOF.
7142 * src/lex.c (lex): Set the `number' member of new terminals.
7143 * src/reader.c (bucket_check_defined, bucket_make_alias)
7144 (bucket_check_alias_consistence, bucket_translation): New.
7145 (reader, grammar_free, readgram, token_translations_init)
7146 (packsymbols): Adjust.
7147 (reader): Number the predefined tokens.
7148 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
7149 for predefined tokens.
7150 * src/symtab.h (bucket): Remove all the hash table related
7151 members.
7152 * src/symtab.c (symtab): Replace by...
7153 (bucket_table): this.
7154 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
7155 (buckets_new, buckets_do): New.
7156
71572002-04-07 Akim Demaille <akim@epita.fr>
7158
7159 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
7160 (start_symbol, max_user_token_number, semantic_parser)
7161 (error_token_number): Initialize.
7162 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
7163 Initialize.
7164 (reader): Don't.
7165 (errtoken, eoftoken, undeftoken, axiom): Extern.
7166
71672002-04-07 Akim Demaille <akim@epita.fr>
7168
7169 * src/gram.h (rule_s): prec and precsym are now pointers
7170 to the bucket giving the priority/associativity.
7171 Member `associativity' removed: useless.
7172 * src/reduce.c, src/conflicts.c: Adjust.
7173
71742002-04-07 Akim Demaille <akim@epita.fr>
7175
7176 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
7177 Properly escape the symbols' TAG when outputting them.
7178
71792002-04-07 Akim Demaille <akim@epita.fr>
7180
7181 * src/lalr.h (LA): Is a bitsetv, not bitset*.
7182
71832002-04-07 Akim Demaille <akim@epita.fr>
7184
7185 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
7186 (LArule): this, which is an array to rule_t*.
7187 * src/print.c, src/conflicts.c: Adjust.
7188
71892002-04-07 Akim Demaille <akim@epita.fr>
7190
7191 * src/gram.h (rule_t): Rename `number' as `user_number'.
7192 `number' is a new member.
7193 Adjust dependencies.
7194 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
7195
71962002-04-07 Akim Demaille <akim@epita.fr>
7197
7198 As a result of the previous patch, it is no longer needed
7199 to reorder ritem itself.
7200
7201 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
7202
72032002-04-07 Akim Demaille <akim@epita.fr>
7204
7205 Be sure never to walk through RITEMS, but use only data related to
7206 the rules themselves. RITEMS should be banished.
7207
7208 * src/output.c (output_token_translations): Rename as...
7209 (prepare_tokens): this.
7210 In addition to `translate', prepare the muscles `tname' and
7211 `toknum', which were handled by...
7212 (output_rule_data): this.
7213 Remove, and move the remainder of its outputs into...
7214 (prepare_rules): this new routines, which also merges content from
7215 (output_gram): this.
7216 (prepare_rules): Be sure never to walk through RITEMS.
7217 (output_stos): Rename as...
7218 (prepare_stos): this.
7219 (output): Always invoke prepare_states, after all, just don't use it
7220 in the output if you don't need it.
7221
72222002-04-07 Akim Demaille <akim@epita.fr>
7223
7224 * src/LR0.c (new_state): Display `nstates' as the name of the
7225 newly created state.
7226 Adjust to initialize first_state and last_state if needed.
7227 Be sure to distinguish the initial from the final state.
7228 (new_states): Create the itemset of the initial state, and use
7229 new_state.
7230 * src/closure.c (closure): Now that the initial state has its
7231 items properly set, there is no need for a special case when
7232 creating `ruleset'.
7233
7234 As a result, now the rule 0, reducing to $axiom, is visible in the
7235 outputs. Adjust the test suite.
7236
7237 * tests/conflicts.at (Solved SR Conflicts)
7238 (Unresolved SR Conflicts): Adjust.
7239 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
7240 * tests/conflicts.at (S/R in initial): New.
7241
72422002-04-07 Akim Demaille <akim@epita.fr>
7243
7244 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
7245 the RHS of the rules.
7246 * src/output.c (output_gram): Likewise.
7247
72482002-04-07 Akim Demaille <akim@epita.fr>
7249
7250 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
7251 bucket.
7252 Adjust all dependencies.
7253 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
7254 `number' of the buckets too.
7255 * src/gram.h: Include `symtab.h'.
7256 (associativity): Move to...
7257 * src/symtab.h: here.
7258 No longer include `gram.h'.
7259
72602002-04-07 Akim Demaille <akim@epita.fr>
7261
7262 * src/gram.h, src/gram.c (rules_rhs_length): New.
7263 (ritem_longest_rhs): Use it.
7264 * src/gram.h (rule_t): `number' is a new member.
7265 * src/reader.c (packgram): Set it.
7266 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
7267 the end of `rules', and count them out of `nrules'.
7268 (reduce_output, dump_grammar): Adjust.
7269 * src/print.c (print_grammar): It is no longer needed to check for
7270 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
7271 * tests/reduce.at (Reduced Automaton): New test.
7272
72732002-04-07 Akim Demaille <akim@epita.fr>
7274
7275 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
7276 lacking `+ 1' to nrules, Bison reported as useless a token if it
7277 was used solely to set the precedence of the last rule...
7278
72792002-04-07 Akim Demaille <akim@epita.fr>
7280
7281 * data/bison.c++, data/bison.simple: Don't output the current file
7282 name in #line, to avoid useless diffs between two identical
7283 outputs under different names.
7284
72852002-04-07 Akim Demaille <akim@epita.fr>
7286
7287 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
7288 Normalize loops to using `< nrules + 1', not `<= nrules'.
7289
72902002-04-07 Akim Demaille <akim@epita.fr>
7291
7292 * TODO: Update.
7293
72942002-04-07 Akim Demaille <akim@epita.fr>
7295
7296 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
7297 bucket.value as bucket.number.
7298
72992002-04-07 Akim Demaille <akim@epita.fr>
7300
7301 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
7302 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
7303 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
7304 RHS, instead of being an index in RITEMS.
7305
73062002-04-04 Paul Eggert <eggert@twinsun.com>
7307
7308 * doc/bison.texinfo: Update copyright date.
7309 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
7310 (Symbols): Warn about running Bison in one character set,
7311 but compiling and/or running in an incompatible one.
7312 Warn about character code 256, too.
7313
73142002-04-03 Paul Eggert <eggert@twinsun.com>
7315
7316 * src/bison.data (YYSTACK_ALLOC): Depend on whether
7317 YYERROR_VERBOSE is nonzero, not whether it is defined.
7318
7319 Merge changes from bison-1_29-branch.
7320
73212002-03-20 Paul Eggert <eggert@twinsun.com>
7322
7323 Merge fixes from Debian bison_1.34-1.diff.
7324
7325 * configure.in (AC_PREREQ): 2.53.
7326
73272002-03-20 Akim Demaille <akim@epita.fr>
7328
7329 * src/conflicts.c (log_resolution): Argument `resolution' is const.
7330
73312002-03-19 Paul Eggert <eggert@twinsun.com>
7332
7333 * src/bison.simple (YYCOPY): New macro.
7334 (YYSTACK_RELOCATE): Use it.
7335 Remove Type arg; no longer needed. All callers changed.
7336 (yymemcpy): Remove; no longer needed.
7337
7338 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
7339 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
7340
73412002-03-19 Akim Demaille <akim@epita.fr>
7342
7343 Test and fix the #line outputs.
7344
7345 * tests/atlocal.at (GCC): New.
7346 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
7347 (Prologue synch line, ,%union synch line, Postprologue synch line)
7348 (Action synch line, Epilogue synch line): New tests.
7349 * src/reader.c (parse_union_decl): Define the muscle stype_line.
7350 * data/bison.simple, data/bison.c++: Use it.
7351
73522002-03-19 Akim Demaille <akim@epita.fr>
7353
7354 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
7355 (Solved SR Conflicts, %expect not enough, %expect right)
7356 (%expect too much): Move to...
7357 * tests/conflicts.at: this new file.
7358
73592002-03-19 Akim Demaille <akim@epita.fr>
7360
7361 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
7362 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
7363 that we can move to enums for instance.
7364 * src/output.c (token_definitions_output): Output a list of
7365 `token-name, token-number' instead of the #define.
7366 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
7367
73682002-03-14 Akim Demaille <akim@epita.fr>
7369
7370 Use Gettext 0.11.1.
7371
73722002-03-09 Robert Anisko <robert@lrde.epita.fr>
7373
7374 * data/bison.c++: Make the user able to add members to the generated
7375 parser by subclassing.
7376
73772002-03-05 Robert Anisko <robert@lrde.epita.fr>
7378
7379 * src/reader.c (read_additionnal_code): `c' should be an integer, not
7380 a character.
7381 Reported by Nicolas Tisserand and Nicolas Burrus.
7382
73832002-03-04 Robert Anisko <robert@lrde.epita.fr>
7384
7385 * src/reader.c: Warn about lacking semi-colons, do not complain.
7386
73872002-03-04 Robert Anisko <robert@lrde.epita.fr>
7388
7389 * data/bison.c++: Remove a debug line.
7390
73912002-03-04 Robert Anisko <robert@lrde.epita.fr>
7392
7393 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
7394 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
7395 provide a default implementation.
7396
73972002-03-04 Akim Demaille <akim@epita.fr>
7398
7399 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
7400 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
7401 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
7402 * tests/semantic.at (Parsing Guards): Similarly.
7403 * src/reader.at (readgram): Complain if the last rule is not ended
7404 with a semi-colon.
7405
74062002-03-04 Akim Demaille <akim@epita.fr>
7407
7408 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
7409 * src/closure.c: here.
7410 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
7411 RTC.
7412 * src/warshall.h, src/warshall.c: Remove.
7413 * tests/sets.at (Broken Closure): Adjust.
7414
74152002-03-04 Akim Demaille <akim@epita.fr>
7416
7417 * src/output.c (output_skeleton): tempdir is const.
7418 bytes_read is unused.
7419
74202002-03-04 Akim Demaille <akim@epita.fr>
7421
7422 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
7423 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
7424 Update.
7425 From Michael Hayes.
7426
74272002-03-04 Akim Demaille <akim@epita.fr>
7428
7429 * src/closure.c (closure): `r' is unused.
7430
74312002-03-04 Akim Demaille <akim@epita.fr>
7432
7433 * tests/sets.at (Broken Closure): Add the ending `;'.
7434 * src/reader.at (readgram): Complain if a rule is not ended with a
7435 semi-colon.
7436
74372002-03-04 Akim Demaille <akim@epita.fr>
7438
7439 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
7440 (count_sr_conflicts): Use bitset_count.
7441 * src/reduce.c (inaccessable_symbols): Ditto.
7442 (bits_size): Remove.
7443 * src/warshall.h, src/warshall.c: Convert to bitsetv.
7444
74452002-03-04 Akim Demaille <akim@epita.fr>
7446
7447 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
7448 * src/reduce.c: Remove the `bitset_zero's following the
7449 `bitset_create's, as now it is performed by the latter.
7450
74512002-03-04 Akim Demaille <akim@epita.fr>
7452
7453 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
7454 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
7455 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
7456 latest sources from Michael.
7457
74582002-03-04 Akim Demaille <akim@epita.fr>
7459
7460 * src/output.c (output): Don't free the grammar.
7461 * src/reader.c (grammar_free): New.
7462 * src/main.c (main): Call it and don't free symtab here.
7463
74642002-03-04 Akim Demaille <akim@epita.fr>
7465
7466 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
7467 before returning.
7468 Reported by Benoit Perrot.
7469
74702002-03-04 Akim Demaille <akim@epita.fr>
7471
7472 Use bitset operations when possible, not loops over bits.
7473
7474 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
7475 bitset_or.
7476 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
7477 * src/reduce.c (useless_nonterminals): Formatting changes.
7478 * src/warshall.c (TC): Use bitset_or.
7479
74802002-03-04 Akim Demaille <akim@epita.fr>
7481
7482 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
7483 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
7484 Ditto.
7485
74862002-03-04 Akim Demaille <akim@epita.fr>
7487
7488 * src/lalr.c (F): Now a bitset*.
7489 Adjust all dependencies.
7490
74912002-03-04 Akim Demaille <akim@epita.fr>
7492
7493 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
7494 Adjust all dependencies.
7495
74962002-03-04 Akim Demaille <akim@epita.fr>
7497
7498 * src/L0.c, src/LR0.h (nstates): Be size_t.
7499 Adjust comparisons (signed vs unsigned).
7500 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
7501 bitset*.
7502 Adjust all dependencies.
7503
75042002-03-04 Akim Demaille <akim@epita.fr>
7505
7506 * src/closure.c (firsts): Now, also a bitset.
7507 Adjust all dependencies.
7508 (varsetsize): Remove, now unused.
7509 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
7510
75112002-03-04 Akim Demaille <akim@epita.fr>
7512
7513 * src/print.c: Convert to use bitset.h, not hand coded iterations
7514 over ints.
7515
75162002-03-04 Akim Demaille <akim@epita.fr>
7517
7518 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
7519
75202002-03-04 Akim Demaille <akim@epita.fr>
7521
7522 * src/closure.c (ruleset): Be a bitset.
7523 (rulesetsize): Remove.
7524
75252002-03-04 Akim Demaille <akim@epita.fr>
7526
7527 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
7528 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
7529 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
7530 * src/closure.c (fderives): Be an array of bitsets.
7531
75322002-02-28 Robert Anisko <robert@lrde.epita.fr>
7533
7534 * data/bison.c++: Merge the two generated headers. Insert a copyright
7535 notice in each output file.
7536
75372002-02-28 Akim Demaille <akim@epita.fr>
7538
7539 * data/bison.c++: Copy the prologue of bison.simple to fetch
7540 useful M4 definitions, such as b4_header_guard.
7541
75422002-02-25 Akim Demaille <akim@epita.fr>
7543
7544 * src/getargs.c (version): Give the name of the authors, and use a
7545 translator friendly scheme for the bgr
7546 copyright notice.
7547
75482002-02-25 Akim Demaille <akim@epita.fr>
7549
7550 * src/output.c (header_output): Remove, now handled completely via
7551 M4.
7552
75532002-02-25 Akim Demaille <akim@epita.fr>
7554
7555 * m4/m4.m4: New, from CVS Autoconf.
7556 * configure.in: Invoke it.
7557 * src/output.c (output_skeleton): Use its result instead of the
7558 hard coded name.
7559
75602002-02-25 Akim Demaille <akim@epita.fr>
7561
7562 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
7563 Fileutils 4.1.5.
7564 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
7565 * src/output.c (output_skeleton): Use mkstemp to create a real
7566 temporary file.
7567 Move the filling of `skeleton' and its muscle to...
7568 (prepare): here.
7569 (output): Move the definition of the prologue muscle to...
7570 (prepare): here.
7571 * src/system.h (DEFAULT_TMPDIR): New.
7572
75732002-02-14 Paul Eggert <eggert@twinsun.com>
7574
7575 Remove the support for C++ namespace cleanliness; it was
7576 causing more problems than it was curing, since it didn't work
7577 properly on some nonstandard C++ compilers. This can wait
7578 for a proper C++ parser.
7579
7580 * NEWS: Document this.
7581 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
7582 of C++, as it's treated like C now.
7583 * src/bison.simple (YYSTD): Remove.
7584 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
7585 Treat C++ just like Standard C instead of trying to support
7586 namespace cleanliness.
7587
75882002-02-14 Akim Demaille <akim@epita.fr>
7589
7590 * tests/regression.at (else): Adjust to Andreas' change.
7591
75922002-02-14 Akim Demaille <akim@epita.fr>
7593
7594 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
7595
75962002-02-13 Andreas Schwab <schwab@suse.de>
7597
7598 * src/output.c (output_rule_data): Don't output NULL, it might
7599 not be defined yet.
7600
76012002-02-11 Robert Anisko <robert@lrde.epita.fr>
7602
7603 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
7604 (Copyright notice): Update.
7605
76062002-02-11 Akim Demaille <akim@epita.fr>
7607
7608 * tests/regression.at (%nonassoc and eof): Don't include
7609 nonportable headers.
7610
76112002-02-08 Robert Anisko <robert@lrde.epita.fr>
7612
7613 * data/bison.c++: Correct error recovery. Make the user able to
7614 initialize the starting location.
7615
76162002-02-07 Akim Demaille <akim@epita.fr>
7617
7618 * tests/input.at: New.
7619
76202002-02-07 Robert Anisko <robert@lrde.epita.fr>
7621
7622 * data/bison.c++: Replace some direct m4 expansions by constants. Be
7623 more consistent when naming methods and variables. Put preprocessor
7624 directives around tables only needed for debugging.
7625
76262002-02-07 Robert Anisko <robert@lrde.epita.fr>
7627
7628 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
7629 C++ parsers.
7630 (yy::b4_name::parse): Use print_.
7631
76322002-02-07 Robert Anisko <robert@lrde.epita.fr>
7633
7634 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
7635
76362002-02-07 Robert Anisko <robert@lrde.epita.fr>
7637
7638 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
7639 C++ parsers.
7640 (yy::b4_name::parse): Build verbose error messages, and use error_.
7641
76422002-02-06 Robert Anisko <robert@lrde.epita.fr>
7643
7644 * data/bison.c++: Fix m4 quoting in comments.
7645
76462002-02-06 Robert Anisko <robert@lrde.epita.fr>
7647
7648 * data/bison.c++: Adjust the parser code. Fix some muscles that were
7649 not expanded by m4.
7650
76512002-02-05 Akim Demaille <akim@epita.fr>
7652
7653 * data/bison.c++: Adjust to the M4 back end.
7654 More is certainly needed.
7655
76562002-02-05 Akim Demaille <akim@epita.fr>
7657
7658 Give a try to M4 as a back end.
7659
7660 * lib/readpipe.c: New, from wdiff.
7661 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
7662 BISON_HAIRY.
7663 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
7664 specific values. Now it is m4 that performs the lookup.
7665 * src/parse-skel.y: Remove.
7666 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
7667 * src/output.c (actions_output, guards_output)
7668 (token_definitions_output): No longer keeps track of the output
7669 line number, hence remove the second argument.
7670 (guards_output): Check against the guard member of a rule, not the
7671 action member.
7672 Adjust callers.
7673 (output_skeleton): Don't look for the skeleton location, let m4 do
7674 that.
7675 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
7676 file will be used.
7677 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
7678 (prepare): Given that for the time being changesyntax is not
7679 usable in M4, rename the muscles using `-' to `_'.
7680 Define `defines_flag', `output_parser_name' and `output_header_name'.
7681 * src/output.h (actions_output, guards_output)
7682 (token_definitions_output): Adjust prototypes.
7683 * src/scan-skel.l: Instead of scanning the skeletons, it now
7684 processes the output of m4: `__oline__' and `#output'.
7685 * data/bison.simple: Adjust to be used by M4(sugar).
7686 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
7687 to date.
7688 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
7689 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
7690 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
7691 shamelessly stolen from CVS Autoconf.
7692
76932002-02-05 Akim Demaille <akim@epita.fr>
7694
7695 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
7696 * configure.in: Check for the declarations of free and malloc.
7697 * src/muscle_tab.c: Adjust.
7698
76992002-02-05 Akim Demaille <akim@epita.fr>
7700
7701 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
7702 which have no values.
7703
77042002-02-05 Akim Demaille <akim@epita.fr>
7705
7706 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
7707 * data/: here.
7708
77092002-01-29 Paul Eggert <eggert@twinsun.com>
7710
7711 * src/bison.simple (YYSIZE_T): Do not define merely because
7712 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
7713 On some platforms, <alloca.h> does not declare YYSTD (size_t).
7714
77152002-01-27 Akim Demaille <akim@epita.fr>
7716
7717 Fix `%nonassoc and eof'.
7718
7719 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
7720 which were not properly copied! Replace
7721 memcpy (res->errs, src->errs, src->nerrs);
7722 with
7723 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
7724 !!!
7725 * tests/regression.at (%nonassoc and eof): Adjust to newest
7726 Autotest: `.' is not in the PATH.
7727
77282002-01-27 Akim Demaille <akim@epita.fr>
7729
7730 * tests/sets.at (AT_EXTRACT_SETS): New.
7731 (Nullable): Use it.
7732 (Firsts): New.
7733
77342002-01-26 Akim Demaille <akim@epita.fr>
7735
7736 * tests/actions.at, tests/calc.at, tests/headers.at,
7737 * tests/torture.at: Adjust to the newest Autotest which no longer
7738 forces `.' in the PATH.
7739
77402002-01-25 Akim Demaille <akim@epita.fr>
7741
7742 * tests/regression.at (%nonassoc and eof): New.
7743 Suggested by Robert Anisko.
7744
77452002-01-24 Akim Demaille <akim@epita.fr>
7746
7747 Bison dumps core when trying to complain about broken input files.
7748 Reported by Cris van Pelt.
7749
7750 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
7751 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
7752 into...
7753 (Invalid inputs): Strengthen: exercise parse_percent_token.
7754
77552002-01-24 Robert Anisko <robert.anisko@epita.fr>
7756
7757 * src/Makefile.am: Add bison.c++.
7758 * src/bison.c++: New skeleton.
7759
77602002-01-21 Paolo Bonzini <bonzini@gnu.org>
7761
7762 * po/it.po: New.
7763
77642002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
7765
7766 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
7767
77682002-01-20 Marc Autret <marc@gnu.org>
7769
7770 * src/files.c (compute_output_file_names): Fix
7771
77722002-01-20 Marc Autret <marc@gnu.org>
7773
7774 * tests/output.at: New test.
7775 * src/files.c (compute_base_names): Don't map extensions when
7776 the YACC flag is set, use defaults.
7777 Reported by Evgeny Stambulchik.
7778
77792002-01-20 Marc Autret <marc@gnu.org>
7780
7781 * src/system.h: Need to define __attribute__ away for non-GCC
7782 compilers as well (i.e. the vendor C compiler).
7783 Suggested by Albert Chin-A-Young.
7784
77852002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
7786
7787 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
7788 canonical definition.
7789 * src/system.h: Use the canonical definition for PARAMS (avoids
7790 a conflict with the macro from lib/hash.h).
7791
77922002-01-11 Akim Demaille <akim@epita.fr>
7793
7794 * configure.in: Use AC_FUNC_STRNLEN.
7795 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
7796
77972002-01-09 Akim Demaille <akim@epita.fr>
7798
7799 * src/files.c, src/files.h (output_infix): New.
7800 (tab_extension): Remove.
7801 (compute_base_names): Compute the former, drop the latter.
7802 * src/output.c (prepare): Insert the muscles `output-infix', and
7803 `output-suffix'.
7804 * src/parse-skel.y (string, string.1): New.
7805 (section.header): Use it.
7806 (section.yacc): Remove.
7807 (prefix): Remove too.
7808 * src/scan-skel.l: Adjust.
7809 * src/bison.simple, src/bison.hairy: Adjust.
7810
78112002-01-09 Akim Demaille <akim@epita.fr>
7812
7813 * configure.in (WERROR_CFLAGS): Compute it.
7814 * src/Makefile.am (CFLAGS): Pass it.
7815 * tests/atlocal.in (CFLAGS): Idem.
7816 * src/files.c: Fix a few warnings.
7817 (get_extension_index): Remove, unused.
7818
78192002-01-08 Akim Demaille <akim@epita.fr>
7820
7821 * src/getargs.c (AS_FILE_NAME): New.
7822 (getargs): Use it to convert DOSish file names.
7823 * src/files.c (base_name): Rename as full_base_name to avoid
7824 clashes with `base_name ()'.
7825 (filename_split): New.
7826 (compute_base_names): N-th rewrite, using filename_split.
7827
78282002-01-08 Akim Demaille <akim@epita.fr>
7829
7830 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
7831 New, stolen from the Fileutils 4.1.
7832 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
7833 * configure.in: Check for the presence of memrchr, and of its
7834 prototype.
7835
78362002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
7837
7838 * lib/hash.h (__P): Added definition for this macro.
7839 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
7840 BUILT_SOURCES, to ensure they are generated first.
7841 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
7842 %error-verbose to allow bootstrapping with bison 1.30x.
7843
78442002-01-06 Akim Demaille <akim@epita.fr>
7845
7846 * src/reader.c (parse_braces): Don't fetch the next char, the
7847 convention is to fetch on entry.
7848 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
7849 'switch' without a following semicolon.
7850 * tests/regression.at (braces parsing): New.
7851
78522002-01-06 Akim Demaille <akim@epita.fr>
7853
7854 Bison is dead wrong in its RR conflict reports.
7855
7856 * tests/torture.at (GNU Cim Grammar): New.
7857 * src/conflicts.c (count_rr_conflicts): Fix.
7858
78592002-01-06 Akim Demaille <akim@epita.fr>
7860
7861 Creating package.m4 from configure.ac causes too many problems.
7862
7863 * tests/Makefile.am (package.m4): Create it by hand,
7864 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
7865
78662002-01-06 Akim Demaille <akim@epita.fr>
7867
7868 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
7869 skeleton.h.
7870
78712002-01-04 Paul Eggert <eggert@twinsun.com>
7872
7873 * doc/bison.texinfo (Debugging):
7874 Remove YYSTDERR; it's no longer defined or used.
7875 Also, s/cstdio.h/cstdio/.
7876
78772002-01-03 Akim Demaille <akim@epita.fr>
7878
7879 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
7880
78812002-01-03 Akim Demaille <akim@epita.fr>
7882
7883 * src/parse-skel.y (process_skeleton): Don't bind the parser's
7884 tracing code to --trace, wait for a better --trace option, with
7885 args.
7886
78872002-01-03 Akim Demaille <akim@epita.fr>
7888
7889 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
7890 The ISO C++ standard is extremely clear about it: stderr is
7891 considered a macro, not a regular symbol (see table 94 `Header
7892 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
7893 Therefore std:: does not apply to it. It still does with fprintf.
7894 Also, s/cstdio.h/cstdio/.
7895
78962002-01-03 Akim Demaille <akim@epita.fr>
7897
7898 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
7899 for non system headers.
7900
79012002-01-02 Akim Demaille <akim@epita.fr>
7902
7903 Equip the skeleton chain with location tracking, runtime trace,
7904 pure parser and scanner.
7905
7906 * src/parse-skel.y: Request a pure parser, locations, and prefix
7907 renaming.
7908 (%union): Having several members with the same type does not help
7909 type mismatches, simplify.
7910 (YYPRINT, yyprint): New.
7911 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
7912 (skel_error): this.
7913 Handle locations.
7914 * src/scan-skel.l: Adjust to these changes.
7915 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
7916 (LOCATION_PRINT, skel_control_t): New.
7917
79182001-12-30 Akim Demaille <akim@epita.fr>
7919
7920 * src/parse-skel.y: Get rid of the shift/reduce conflict:
7921 replace `gb' with BLANKS.
7922 * src/scan-skel.l: Adjust.
7923
79242001-12-30 Akim Demaille <akim@epita.fr>
7925
7926 * src/system.h: We don't need nor want bcopy.
7927 Throw away MS-DOS crap: we don't need getpid.
7928 * configure.in: We don't need strndup. It was even causing
7929 problems: because Flex includes the headers *before* us,
7930 _GNU_SOURCE is not defined by config.h, and therefore strndup was
7931 not visible.
7932 * lib/xstrndup.c: New.
7933 * src/scan-skel.l: Use it.
7934 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
7935 * src/parse-skel.y: Use %directives instead of #defines.
7936
79372001-12-30 Akim Demaille <akim@epita.fr>
7938
7939 * src/skeleton.h: New.
7940 * src/output.c (output_parser, output_master_parser): Remove, dead
7941 code.
7942 * src/output.h (get_lines_number, actions_output, guards_output)
7943 (token_definitions_output): Prototype them.
7944 * src/parse-skel.y: Add the license notice.
7945 Include output.h and skeleton.h.
7946 (process_skeleton): Returns void, and takes a single parameter.
7947 * src/scan-skel.l: Add the license notice.
7948 Include skeleton.h.
7949 Don't use %option yylineno: it seems that then Flex imagines
7950 REJECT has been used, and therefore it won't reallocate its
7951 buffers (which makes no other sense to me than a bug). It results
7952 in warnings for `unused: yy_flex_realloc'.
7953
79542001-12-30 Robert Anisko <robert.anisko@epita.fr>
7955
7956 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
7957 (MUSCLE_INSERT_PREFIX): ...to there.
7958 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
7959 (MUSCLE_INSERT_PREFIX): Move from here...
7960
7961 * src/bison.hairy: Add a section directive. Put braces around muscle
7962 names. This parser skeleton is still broken, but Bison should not
7963 choke on a bad muscle 'syntax'.
7964 * src/bison.simple: Add a section directive. Put braces around muscle
7965 names.
7966
7967 * src/files.h (strsuffix, stringappend): Add declarations.
7968 (tab_extension): Add declaration.
7969 (short_base_name): Add declaration.
7970
7971 * src/files.c (strsuffix, stringappend): No longer static. These
7972 functions are used in the skeleton parser.
7973 (tab_extension): New.
7974 (compute_base_names): Use the computations done in this function
7975 to guess if the generated parsers should have '.tab' in their
7976 names.
7977 (short_base_name): No longer static.
7978
7979 * src/output.c (output_skeleton): New.
7980 (output): Disable call to output_master_parser, and give a try to
7981 a new skeleton handling system.
7982 (guards_output, actions_output): No longer static.
7983 (token_definitions_output, get_lines_number): No longer static.
7984
7985 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
7986
7987 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
7988 parse-skel.y.
7989
7990 * src/parse-skel.y: New file.
7991 * src/scan-skel.l: New file.
7992
79932001-12-29 Akim Demaille <akim@epita.fr>
7994
7995 %name-prefix is broken.
7996
7997 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
7998 Adjust all dependencies.
7999 * tests/headers.at (export YYLTYPE): Strengthen this test: use
8000 %name-prefix.
8001
8002 Renaming yylval but not yylloc is not consistent. Now we do.
8003
8004 * src/bison.simple: Prefix yylloc if used.
8005 * doc/bison.texinfo (Decl Summary): Document that.
8006
80072001-12-29 Akim Demaille <akim@epita.fr>
8008
8009 * doc/bison.texinfo: Promote `%long-directive' over
8010 `%long_directive'.
8011 Remove all references to fixed-output-files, yacc is enough.
8012
80132001-12-29 Akim Demaille <akim@epita.fr>
8014
8015 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
8016 user prologue. These are defaults.
8017 * tests/actions.at (Mid-rule actions): Make sure the user can
8018 define YYDEBUG and YYERROR_VERBOSE.
8019
80202001-12-29 Akim Demaille <akim@epita.fr>
8021
8022 * src/output.c (header_output): Don't forget to export YYLTYPE and
8023 yylloc.
8024 * tests/headers.at (export YYLTYPE): New, make sure it does.
8025 * tests/regression.at (%union and --defines, Invalid CPP headers):
8026 Move to...
8027 * tests/headers.at: here.
8028
80292001-12-29 Akim Demaille <akim@epita.fr>
8030
8031 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
8032
80332001-12-29 Akim Demaille <akim@epita.fr>
8034
8035 * tests/actions.at (Mid-rule actions): Output on a single line
8036 instead of several.
8037
80382001-12-29 Akim Demaille <akim@epita.fr>
8039
8040 * doc/bison.texinfo: Formatting changes.
8041
80422001-12-29 Akim Demaille <akim@epita.fr>
8043
8044 Don't store the token defs in a muscle, just be ready to output it
8045 on command. Now possible via `symbols'. Fixes a memory leak.
8046
8047 * src/output.c (token_definitions_output): New.
8048 (output_parser, header_output): Use it.
8049 * src/reader.c (symbols_save): Remove.
8050
80512001-12-29 Akim Demaille <akim@epita.fr>
8052
8053 * src/bison.simple: Do not provide a default for YYSTYPE and
8054 YYLTYPE before the user's prologue. Otherwise it's hardly... a
8055 default.
8056
80572001-12-29 Akim Demaille <akim@epita.fr>
8058
8059 Mid-rule actions are simply... ignored!
8060
8061 * src/reader.c (readgram): Be sure to attach mid-rule actions to
8062 the empty-rule associated to the dummy symbol, not to the host
8063 rule.
8064 * tests/actions.at (Mid-rule actions): New.
8065
80662001-12-29 Akim Demaille <akim@epita.fr>
8067
8068 Memory leak.
8069
8070 * src/reader.c (reader): Free grammar.
8071
80722001-12-29 Akim Demaille <akim@epita.fr>
8073
8074 Memory leak.
8075
8076 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
8077 since it allocates it for each state, although only one is needed.
8078 (allocate_storage): Do it here.
8079
80802001-12-29 Akim Demaille <akim@epita.fr>
8081
8082 * src/options.h, src/options.c (create_long_option_table): Rename
8083 as...
8084 (long_option_table_new): this, with a clearer prototype.
8085 (percent_table): Remove, unused,
8086 * src/getargs.c (getargs): Adjust.
8087
80882001-12-29 Akim Demaille <akim@epita.fr>
8089
8090 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
8091 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
8092 as states.
8093
80942001-12-29 Akim Demaille <akim@epita.fr>
8095
8096 * src/lalr.c (build_relations): Rename `states' as `states1'.
8097 Sorry, I don't understand exactly what it is, no better name...
8098
80992001-12-29 Akim Demaille <akim@epita.fr>
8100
8101 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
8102 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
8103 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
8104 as rules.
8105
81062001-12-29 Akim Demaille <akim@epita.fr>
8107
8108 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
8109 ago.
8110
81112001-12-29 Akim Demaille <akim@epita.fr>
8112
8113 * src/reader.c, src/reader.h (user_toknums): Remove.
8114 Adjust all users to use symbols[i]->user_token_number.
8115
81162001-12-29 Akim Demaille <akim@epita.fr>
8117
8118 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
8119 Adjust all users to use symbols[i]->prec or ->assoc.
8120
81212001-12-29 Akim Demaille <akim@epita.fr>
8122
8123 * src/reader.c, src/reader.h (tags): Remove.
8124 Adjust all users to use symbols[i]->tag.
8125
81262001-12-29 Akim Demaille <akim@epita.fr>
8127
8128 * src/gram.h, src/gram.c (symbols): New, similar to state_table
8129 and rule_table.
8130 * src/reader.c (packsymbols): Fill this table.
8131 Drop sprec.
8132 * src/conflicts.c (resolve_sr_conflict): Adjust.
8133 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
8134 single table.
8135 Use symbols[i]->tag instead of tags[i].
8136
81372001-12-29 Akim Demaille <akim@epita.fr>
8138
8139 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
8140 In addition, put a comment in there, to replace...
8141 * tests/regression.at (%union and C comments): Remove.
8142
81432001-12-29 Akim Demaille <akim@epita.fr>
8144
8145 * tests/regression.at (Web2c Actions): Blindly move the actual
8146 output as expected output. The contents *seem* right to me, but I
8147 can't pretend reading perfectly parser tables... Nonetheless, all
8148 the other tests pass correctly, the table look OK, even though the
8149 presence of `$axiom' is to be noted: AFAICS it is useless (but
8150 harmless).
8151
81522001-12-29 Akim Demaille <akim@epita.fr>
8153
8154 * src/reader.c (readgram): Don't add the rule 0 if there were no
8155 rules read. In other words, add it _after_ having performed
8156 grammar sanity checks.
8157 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
8158
81592001-12-29 Akim Demaille <akim@epita.fr>
8160
8161 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
8162 visible, and some states have now a different number.
8163
81642001-12-29 Akim Demaille <akim@epita.fr>
8165
8166 * src/reader.c (readgram): Bind the initial rule's lineno to that
8167 of the first rule.
8168 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
8169 (Solved SR Conflicts): Adjust rule 0's line number.
8170
81712001-12-29 Akim Demaille <akim@epita.fr>
8172
8173 Fix the `GAWK Grammar' failure.
8174
8175 * src/LR0.c (final_state): Initialize to -1 so that we do compute
8176 the reductions of the first state which was mistakenly confused
8177 with the final state because precisely final_state was initialized
8178 to 0.
8179 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
8180 now noticed by Bison.
8181 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
8182 have a reduction on $default.
8183
81842001-12-29 Akim Demaille <akim@epita.fr>
8185
8186 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
8187 rule line numbers.
8188 * src/closure.c (print_closure): Likewise.
8189 * src/derives.c (print_derives): Likewise.
8190 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
8191 now.
8192
81932001-12-29 Akim Demaille <akim@epita.fr>
8194
8195 * src/lalr.c (lookaheads_print): New.
8196 (lalr): Call it when --trace-flag.
8197 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
8198 are dumped.
8199
82002001-12-29 Akim Demaille <akim@epita.fr>
8201
8202 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
8203 when walking through ritem, even via rule->rhs.
8204 * src/reduce.c (dump_grammar, useful_production, reduce_output)
8205 (useful_production, useless_nonterminals): Likewise.
8206 (reduce_grammar_tables): Likewise, plus update nritems.
8207 * src/nullable.c (set_nullable): Likewise.
8208 * src/lalr.c (build_relations): Likewise.
8209 * tests/sets.at (Nullable): Adjust.
8210 Fortunately, now, the $axiom is no longer nullable.
8211
82122001-12-29 Akim Demaille <akim@epita.fr>
8213
8214 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
8215 the 0-sentinel.
8216 * src/gram.c (ritem_longest_rhs): Likewise.
8217 * src/reduce.c (nonterminals_reduce): Likewise.
8218 * src/print_graph.c (print_graph): Likewise.
8219 * src/output.c (output_rule_data): Likewise.
8220 * src/nullable.c (set_nullable): Likewise.
8221
82222001-12-29 Akim Demaille <akim@epita.fr>
8223
8224 * src/output.c: Comment changes.
8225
82262001-12-27 Paul Eggert <eggert@twinsun.com>
8227
8228 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
8229 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
8230 Sparc, as they were causing more porting problems than the
8231 (minor) performance improvement was worth.
8232
8233 Also, catch up with 1.31's YYSTD.
8234
82352001-12-27 Akim Demaille <akim@epita.fr>
8236
8237 * src/output.c (output_gram): Rely on nritems, not the
8238 0-sentinel. See below.
8239 Use -1 as separator, not 0.
8240 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
8241 Rely on -1 as separator in yyrhs, instead of 0.
8242 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
8243 twice `Now at end of input', therefore there are two lines less to
8244 expect.
8245
82462001-12-27 Akim Demaille <akim@epita.fr>
8247
8248 * tests/regression.at (Unresolved SR Conflicts):
8249 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
8250 below.
8251
82522001-12-27 Akim Demaille <akim@epita.fr>
8253
8254 * src/LR0.c (new_state): Recognize the final state by the fact it
8255 is reached by eoftoken.
8256 (insert_start_shifting_state, insert_eof_shifting_state)
8257 (insert_accepting_state, augment_automaton): Remove, since now
8258 these states are automatically computed from the initial state.
8259 (generate_states): Adjust.
8260 * src/print.c: When reporting a rule number to the user, substract
8261 1, so that the axiom rule is rule 0, and the first user rule is 1.
8262 * src/reduce.c: Likewise.
8263 * src/print_graph.c (print_core): For the time being, just as for
8264 the report, depend upon --trace-flags to dump the full set of
8265 items.
8266 * src/reader.c (readgram): Once the grammar read, insert the rule
8267 0: `$axiom: START-SYMBOL $'.
8268 * tests/set.at: Adjust: rule 0 is now displayed, and since the
8269 number of the states has changed (the final state is no longer
8270 necessarily the last), catch up.
8271
82722001-12-27 Akim Demaille <akim@epita.fr>
8273
8274 Try to make the use of the eoftoken valid. Given that its value
8275 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
8276 is used instead of > 0 where appropriate, (ii), depend upon nritems
8277 instead of the 0-sentinel.
8278
8279 * src/gram.h, src/gram.c (nritems): New.
8280 Expected to be duplication of nitems, but for the time being...
8281 * src/reader.c (packgram): Assert nritems and nitems are equal.
8282 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
8283 * src/closure.c (print_closure, print_fderives): Likewise.
8284 * src/gram.c (ritem_print): Likewise.
8285 * src/print.c (print_core, print_grammar): Likewise.
8286 * src/print_graph.c: Likewise.
8287
82882001-12-27 Akim Demaille <akim@epita.fr>
8289
8290 * src/main.c (main): If there are complains after grammar
8291 reductions, then output the report anyway if requested, then die.
8292 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
8293 * src/reader.c (eoftoken): New.
8294 (parse_token_decl): If the token being defined has value `0', it
8295 is the eoftoken.
8296 (packsymbols): No longer hack `tags' to insert `$' by hand.
8297 Be sure to preserve the value of the eoftoken.
8298 (reader): Make sure eoftoken is defined.
8299 Initialize nsyms to 0: now eoftoken is created just like the others.
8300 * src/print.c (print_grammar): Don't special case the eof token.
8301 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
8302 lie anyway, albeit pleasant.
8303 * tests/calc.at: Exercise error messages with eoftoken.
8304 Change the grammar so that empty input is invalid.
8305 Adjust expectations.
8306 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
8307
83082001-12-27 Akim Demaille <akim@epita.fr>
8309
8310 * configure.in: Check the protos of strchr ans strspn.
8311 Replace strchr if needed.
8312 * src/system.h: Provide the protos of strchr, strspn and memchr if
8313 missing.
8314 * lib/strchr.c: New.
8315 * src/reader.c (symbols_save): Use strchr.
8316
83172001-12-27 Akim Demaille <akim@epita.fr>
8318
8319 * src/print.c, src/print_graph.c (escape): New.
8320 Use it to quote the TAGS outputs.
8321 * src/print_graph.c (print_state): Now errors are in red, and
8322 reductions in green.
8323 Prefer high to wide: output the state number on a line of its own.
8324
83252001-12-27 Akim Demaille <akim@epita.fr>
8326
8327 * src/state.h, src/state.c (reductions_new): New.
8328 * src/LR0.c (set_state_table): Let all the states have a
8329 `reductions', even if reduced to 0.
8330 (save_reductions): Adjust.
8331 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
8332 * src/print.c (print_reductions, print_actions): Adjust.
8333 * src/output.c (action_row): Adjust.
8334
83352001-12-27 Akim Demaille <akim@epita.fr>
8336
8337 * src/state.h, src/state.c (errs_new, errs_dup): New.
8338 * src/LR0.c (set_state_table): Let all the states have an errs,
8339 even if reduced to 0.
8340 * src/print.c (print_errs, print_reductions): Adjust.
8341 * src/output.c (output_actions, action_row): Adjust.
8342 * src/conflicts.c (resolve_sr_conflict): Adjust.
8343
83442001-12-27 Akim Demaille <akim@epita.fr>
8345
8346 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
8347
83482001-12-27 Akim Demaille <akim@epita.fr>
8349
8350 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
8351 * src/print.c: here.
8352 (lookaheadset, shiftset): New, used as additional storage by
8353 print_reductions.
8354 (print_results): Adjust.
8355 (print_shifts, print_gotos, print_errs): New, extracted from...
8356 (print_actions): here.
8357 * src/print_graph.c (print_actions): Remove dead code.
8358
83592001-12-27 Akim Demaille <akim@epita.fr>
8360
8361 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
8362 `$n' and `@n'.
8363
83642001-12-27 Akim Demaille <akim@epita.fr>
8365
8366 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
8367 (build_relations): Adjust.
8368
83692001-12-27 Akim Demaille <akim@epita.fr>
8370
8371 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
8372 duplication.
8373
83742001-12-27 Akim Demaille <akim@epita.fr>
8375
8376 * src/reader.c (packgram): Catch nitems overflows.
8377
83782001-12-27 Akim Demaille <akim@epita.fr>
8379
8380 * src/files.c, src/files.h (guard_obstack): Remove.
8381 * src/output.c (output): Adjust.
8382 * src/reader.c (parse_braces): New, factoring...
8383 (copy_action, copy_guard): these two which are renamed as...
8384 (parse_action, parse_guard): these.
8385 As a voluntary consequence, using braces around guards is now
8386 mandatory.
8387
83882001-12-27 Akim Demaille <akim@epita.fr>
8389
8390 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
8391 * src/reader.c (symbol_list): `guard' and `guard_line' are new
8392 members.
8393 (symbol_list_new): Adjust.
8394 (copy_action): action_line is the first line, not the last.
8395 (copy_guard): Just as for actions, store the `action' only, not
8396 the switch/case/break flesh.
8397 Don't parse the user action that might follow the guard, let...
8398 (readgram): do it, i.e., now, there can be an action after a
8399 guard.
8400 In other words the guard is just explicitly optional.
8401 (packgram): Adjust.
8402 * src/output.c (guards_output): New.
8403 (output_parser): Call it when needed.
8404 (output): Also free the guard and attrs obstacks.
8405 * src/files.c, src/files.h (obstack_save): Remove.
8406 (output_files): Remove.
8407 As a result, if one needs the former `.act' file, using an
8408 appropriate skeleton which requires actions and guards is now
8409 required.
8410 * src/main.c (main): Adjust.
8411 * tests/semantic.at: New.
8412 * tests/regression.at: Use `input.y' as input file name.
8413 Avoid 8+3 problems by requiring input.c when the test needs the
8414 parser.
8415
84162001-12-27 Akim Demaille <akim@epita.fr>
8417
8418 * src/reader.c (symbol_list_new): Be sure to initialize all the
8419 fields.
8420
84212001-12-27 Akim Demaille <akim@epita.fr>
8422
8423 All the hacks using a final pseudo state are now useless.
8424
8425 * src/LR0.c (set_state_table): state_table holds exactly nstates.
8426 * src/lalr.c (nLA): New.
8427 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
8428 instead of lookaheadsp from the pseudo state (nstate + 1).
8429
84302001-12-27 Akim Demaille <akim@epita.fr>
8431
8432 * src/output.c (action_row, token_actions): Use a state_t instead
8433 of a integer, and nlookaheads instead of the following state's
8434 lookaheadsp.
8435
84362001-12-27 Akim Demaille <akim@epita.fr>
8437
8438 * src/conflicts.c (log_resolution, flush_shift)
8439 (resolve_sr_conflict, set_conflicts, solve_conflicts)
8440 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
8441 (conflicts_print, print_reductions): Use a state_t instead of an
8442 integer when referring to a state.
8443 As much as possible, depend upon nlookaheads, instead of the
8444 `lookaheadsp' member of the following state (since lookaheads of
8445 successive states are successive, the difference between state n + 1
8446 and n served as the number of lookaheads for state n).
8447 * src/lalr.c (add_lookback_edge): Likewise.
8448 * src/print.c (print_core, print_actions, print_state)
8449 (print_results): Likewise.
8450 * src/print_graph.c (print_core, print_actions, print_state)
8451 (print_graph): Likewise.
8452 * src/conflicts.h: Adjust.
8453
84542001-12-27 Akim Demaille <akim@epita.fr>
8455
8456 * src/bison.hairy: Formatting/comment changes.
8457 ANSIfy.
8458 Remove `register' indications.
8459 Add plenty of `static'.
8460
84612001-12-27 Akim Demaille <akim@epita.fr>
8462
8463 * src/output.c (prepare): Drop the muscle `ntbase' which
8464 duplicates ntokens.
8465 * src/bison.simple: Formatting/comment changes.
8466 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
8467 is an undocumented synonym.
8468
84692001-12-22 Akim Demaille <akim@epita.fr>
8470
8471 * src/output.c (output_table_data): Change the prototype to use
8472 `int' for array ranges: some invocations do pass an int, not a
8473 short.
8474 Reported by Wayne Green.
8475
84762001-12-22 Akim Demaille <akim@epita.fr>
8477
8478 Some actions of web2c.y are improperly triggered.
8479 Reported by Mike Castle.
8480
8481 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
8482 * tests/regression.at (Web2c): Rename as...
8483 (Web2c Report): this.
8484 (Web2c Actions): New.
8485
84862001-12-22 Akim Demaille <akim@epita.fr>
8487
8488 Reductions in web2c.y are improperly reported.
8489 Reported by Mike Castle.
8490
8491 * src/conflicts.c (print_reductions): Fix.
8492 * tests/regression.at (Web2c): New.
8493
84942001-12-18 Akim Demaille <akim@epita.fr>
8495
8496 Some host fail on `assert (!"foo")', which expands to
8497 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
8498 Reported by Nelson Beebee.
8499
8500 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
8501 `#define it_succeeded 0' and `assert (it_succeeded)'.
8502
85032001-12-17 Marc Autret <autret_m@epita.fr>
8504
8505 * src/bison.simple: Don't hard code the skeleton line and filename.
8506 * src/output.c (output_parser): Rename 'line' as 'output_line'.
8507 New line counter 'skeleton_line' (skeleton-line muscle).
8508
85092001-12-17 Paul Eggert <eggert@twinsun.com>
8510
8511 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
8512 YYDEBUG must be defined to a nonzero value.
8513
8514 * src/bison.simple (yytname): Do not assume that the user defines
8515 YYDEBUG to a properly parenthesized expression.
8516
85172001-12-17 Akim Demaille <akim@epita.fr>
8518
8519 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
8520 nlookaheads is a new member.
8521 Adjust all users.
8522 * src/lalr.h (nlookaheads): Remove this orphan declaration.
8523 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
8524 state.
8525
85262001-12-17 Akim Demaille <akim@epita.fr>
8527
8528 * src/files.h, src/files.c (open_files, close_files): Remove.
8529 * src/main.c (main): Don't open/close files, nor invoke lex_free,
8530 let...
8531 * src/reader.c (reader): Do it.
8532
85332001-12-17 Akim Demaille <akim@epita.fr>
8534
8535 * src/conflicts.c (print_reductions): Formatting changes.
8536
85372001-12-17 Akim Demaille <akim@epita.fr>
8538
8539 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
8540 (flush_reduce): New.
8541 (resolve_sr_conflict): Adjust.
8542
85432001-12-17 Akim Demaille <akim@epita.fr>
8544
8545 * src/output.c (output_obstack): Be static and rename as...
8546 (format_obstack): this, to avoid any confusion with files.c's
8547 output_obstack.
8548 * src/reader.h (muscle_obstack): Move to...
8549 * src/output.h: here, since it's defined in output.c.
8550
85512001-12-17 Akim Demaille <akim@epita.fr>
8552
8553 * src/output.c (action_row, save_column, default_goto)
8554 (sort_actions, matching_state, pack_vector): Better variable
8555 locality.
8556
85572001-12-17 Akim Demaille <akim@epita.fr>
8558
8559 * src/output.c: Various formatting changes.
8560
85612001-12-17 Akim Demaille <akim@epita.fr>
8562
8563 * src/files.c (output_files): Free the output_obstack.
8564 * src/main.c (main): Call print and print_graph conditionally.
8565 * src/print.c (print): Work unconditionally.
8566 * src/print_graph.c (print_graph): Work unconditionally.
8567 * src/conflicts.c (log_resolution): Output only if verbose_flag.
8568
85692001-12-16 Marc Autret <autret_m@epita.fr>
8570
8571 * src/output.c (actions_output): Fix. When we use %no-lines,
8572 there is one less line per action.
8573
85742001-12-16 Marc Autret <autret_m@epita.fr>
8575
8576 * src/bison.simple: Remove a useless #line directive.
8577 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
8578 * src/output.c (get_lines_number): New.
8579 (output_parser): Adjust, now takes care about the lines of a
8580 output muscles.
8581 Fix line numbering.
8582 (actions_output): Computes the number of lines taken by actions.
8583 (output_master_parser): Insert new skeleton which is the name of
8584 the output parser file name.
8585
85862001-12-15 Marc Autret <autret_m@epita.fr>
8587
8588 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
8589
85902001-12-15 Marc Autret <autret_m@epita.fr>
8591
8592 * src/output.c (output_gram): Keep track of the hairy one.
8593
85942001-12-15 Akim Demaille <akim@epita.fr>
8595
8596 Make `make distcheck' work.
8597
8598 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
8599 system.h which uses libgettext.h.
8600
86012001-12-15 Akim Demaille <akim@epita.fr>
8602
8603 * src/nullable.c (set_nullable): Useless rules must be skipped,
8604 otherwise, since we range over their symbols, we might look at a
8605 nonterminal which no longer ``exists'', i.e., it is not counted in
8606 `nvars', hence we overflow our arrays.
8607
86082001-12-15 Akim Demaille <akim@epita.fr>
8609
8610 The header can also be produced directly, without any obstack!
8611 Yahoo!
8612
8613 * src/files.c, src/files.h (defines_obstack): Remove.
8614 (compute_header_macro): Global.
8615 (defines_obstack_save): Remove.
8616 * src/reader.c (parse_union_decl): No longer output to
8617 defines_obstack: its content can be found in the `stype' muscle
8618 anyway.
8619 (output_token_translations): Merge into...
8620 (symbols_output): this.
8621 Rename as...
8622 (symbols_save): this.
8623 (reader): Adjust.
8624 * src/output.c (header_output): New.
8625 (output): Call it.
8626
86272001-12-15 Akim Demaille <akim@epita.fr>
8628
8629 * src/reader.c (parse_union_decl): Instead of handling two obstack
8630 simultaneously, use one to define the `stype' muscle, and use the
8631 value of the latter to fill defines_obstack.
8632 (copy_comment): Remove.
8633 (copy_comment2): Work for a single obstack.
8634 Rename as...
8635 (copy_comment): this.
8636
86372001-12-15 Akim Demaille <akim@epita.fr>
8638
8639 * src/lex.c, src/lex.h (xgetc): No longer static.
8640 * src/reader.c (parse_union_decl): Revamp.
8641
86422001-12-15 Akim Demaille <akim@epita.fr>
8643
8644 Still making progress in separating Bison into (i) input, (ii)
8645 process, (iii) output: now we can directly output the parser file
8646 without using table_obstack at all.
8647
8648 * src/files.c, src/files.h (table_obstack): Bye bye.
8649 (parser_file_name): New.
8650 * src/files.c (compute_output_file_names): Compute it.
8651 * src/output.c (actions_output, output_parser)
8652 (output_master_parser): To a file instead of an obstack.
8653
86542001-12-15 Akim Demaille <akim@epita.fr>
8655
8656 Attach actions to rules, instead of pre-outputting them to
8657 actions_obstack.
8658
8659 * src/gram.h (rule_t): action and action_line are new members.
8660 * src/reader.c (symbol_list): Likewise.
8661 (copy_action): Save the actions within the rule.
8662 (packgram): Save them in rule_table.
8663 * src/output.c (actions_output): New.
8664 (output_parser): Use it on `%%actions'.
8665 (output_rule_data): Don't free rule_table.
8666 (output): Do it.
8667 (prepare): Don't save the `action' muscle.
8668 * src/bison.simple: s/%%action/%%actions/.
8669
86702001-12-15 Akim Demaille <akim@epita.fr>
8671
8672 * src/reader.c (copy_action): When --yacc, don't append a `;'
8673 to the user action: let it fail if lacking.
8674 Suggested by Arnold Robbins and Tom Tromey.
8675
86762001-12-14 Akim Demaille <akim@epita.fr>
8677
8678 * src/lex.c (literalchar): Simply return the char you decoded, non
8679 longer mess around with obstacks and int pointers.
8680 Adjust all callers.
8681
86822001-12-14 Akim Demaille <akim@epita.fr>
8683
8684 * src/lex.c (literalchar): Don't escape the special characters,
8685 just decode them, and keep them as char (before, eol was output as
8686 the 2 char string `\n' etc.).
8687 * src/output.c (output_rule_data): Use quotearg to output the
8688 token strings.
8689
86902001-12-13 Paul Eggert <eggert@twinsun.com>
8691
8692 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
8693 Do not infringe on the global user namespace when using C++.
8694 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
8695 All uses of `fprintf' and `stderr' changed.
8696
8697 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
8698
86992001-12-13 Akim Demaille <akim@epita.fr>
8700
8701 The computation of nullable is broken: it doesn't handle empty
8702 RHS's properly.
8703
8704 * tests/torture.at (GNU AWK Grammar): New.
8705 * tests/sets.at (Nullable): New.
8706 * src/nullable.c (set_nullable): Instead of blindly looping over
8707 `ritems', loop over the rules, and then over their rhs's.
8708
8709 Work around Autotest bugs.
8710
8711 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
8712 frame, because Autotest understand lines starting with a `+' as
8713 traces from the shell. Then, they are not processed properly.
8714 Admittedly an Autotest bug, but we don't have time to wait for
8715 Autotest to catch up.
8716 * tests/regression.at (Broken Closure): Adjust to the new table
8717 frames.
8718 Move to...
8719 * tests/sets.at: here.
8720
87212001-12-13 Akim Demaille <akim@epita.fr>
8722
8723 * src/closure.c (closure): Use nrules instead of playing tricks
8724 with BITS_PER_WORD.
8725
87262001-12-13 Akim Demaille <akim@epita.fr>
8727
8728 * src/print.c (print_actions): Output the handling of `$' as the
8729 traces do: shifting the token EOF. Before EOF was treated as a
8730 nonterminal.
8731 * tests/regression.at: Adjust some tests.
8732 * src/print_graph.c (print_core): Complete the set of items via
8733 closure. The next-to-final and final states are still unsatisfying,
8734 but that's to be addressed elsewhere.
8735 No longer output the rule numbers, but do output the state number.
8736 A single loop for the shifts + gotos is enough, but picked a
8737 distinct color for each.
8738 (print_graph): Initialize and finalize closure.
8739
87402001-12-13 Akim Demaille <akim@epita.fr>
8741
8742 * src/reader.c (readgram): Remove dead code, an strip useless
8743 braces.
8744 (get_type): Remove, unused.
8745
87462001-12-12 Akim Demaille <akim@epita.fr>
8747
8748 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
8749 on that of lib/error.c.
8750
87512001-12-12 Akim Demaille <akim@epita.fr>
8752
8753 Some hosts don't like `/' in includes.
8754
8755 * src/system.h: Include libgettext.h without qualifying the path.
8756 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
8757 $(top_srcdir).
8758
87592001-12-11 Marc Autret <autret_m@epita.fr>
8760
8761 * src/output.c (output_parser): Remove useless muscle.
8762
87632001-12-11 Marc Autret <autret_m@epita.fr>
8764
8765 * src/bison.simple: Remove #line just before %%epilogue. It
8766 is now handled in ...
8767 * src/reader.c (read_additionnal_code): Add the output of a
8768 #line for the epilogue.
8769
87702001-12-10 Marc Autret <autret_m@epita.fr>
8771
8772 * src/reader.c (copy_definition): Re-use CPP-outed code which
8773 replace precedent remove.
8774 * src/bison.simple: Remove #line before %%prologue because
8775 %%input-line is wrong at this time.
8776
87772001-12-10 Marc Autret <autret_m@epita.fr>
8778
8779 * src/reader.c (symbols_output): Clean up.
8780 * src/output.c (output_gram, output): Clean up.
8781
87822001-12-10 Akim Demaille <akim@epita.fr>
8783
8784 * src/lalr.c (initialize_lookaheads): New. Extracted from...
8785 * src/LR0.c (set_state_table): here.
8786 * src/lalr.c (lalr): Call it.
8787
87882001-12-10 Akim Demaille <akim@epita.fr>
8789
8790 * src/state.h (shifts): Remove the `number' member: shifts are
8791 attached to state, hence no longer need to be labelled with a
8792 state number.
8793
87942001-12-10 Akim Demaille <akim@epita.fr>
8795
8796 Now that states have a complete set of members, the linked list of
8797 shifts is useless: just fill directly the state's shifts member.
8798
8799 * src/state.h (shifts): Remove the `next' member.
8800 * src/LR0.c (first_state, last_state): Remove.
8801 Adjust the callers.
8802 (augment_automaton): Don't look for the shifts that must be added
8803 a shift on EOF: it is those of the state we looked for! But now,
8804 since shifts are attached, it is no longer needed to looking
8805 merely by its id: its number.
8806
88072001-12-10 Akim Demaille <akim@epita.fr>
8808
8809 * src/LR0.c (augment_automaton): Better variable locality.
8810 Remove an impossible branch: if there is a state corresponding to
8811 the start symbol being shifted, then there is shift for the start
8812 symbol from the initial state.
8813
88142001-12-10 Akim Demaille <akim@epita.fr>
8815
8816 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
8817 only when appropriate: when insert_start_shifting_state' is not
8818 invoked.
8819 * tests/regression.at (Rule Line Numbers): Adjust.
8820
88212001-12-10 Akim Demaille <akim@epita.fr>
8822
8823 * src/LR0.c (augment_automaton): Now that all states have shifts,
8824 merge the two cases addition shifts to the initial state.
8825
88262001-12-10 Akim Demaille <akim@epita.fr>
8827
8828 * src/lalr.c (set_state_table): Move to...
8829 * src/LR0.c: here.
8830 * src/lalr.c (lalr): Don't call it...
8831 * src/LR0.c (generate_states): do it.
8832 * src/LR0.h (first_state): Remove, only the table is used.
8833
88342001-12-10 Akim Demaille <akim@epita.fr>
8835
8836 * src/LR0.h (first_shift, first_reduction): Remove.
8837 * src/lalr.c: Don't use first_shift: find shifts through the
8838 states.
8839
88402001-12-10 Akim Demaille <akim@epita.fr>
8841
8842 * src/LR0.c: Attach shifts to states as soon as they are
8843 computed.
8844 * src/lalr.c (set_state_table): Instead of assigning shifts to
8845 state, just assert that the mapping was properly done.
8846
88472001-12-10 Akim Demaille <akim@epita.fr>
8848
8849 * src/LR0.c (insert_start_shift): Rename as...
8850 (insert_start_shifting_state): this.
8851 (insert_eof_shifting_state, insert_accepting_state): New.
8852 (augment_automaton): Adjust.
8853 Better locality of the variables.
8854 When looking if the start_symbol is shifted from the initial
8855 state, using `while (... symbol != start_symbol ...)' sounds
8856 better than `while (... symbol < start_symbol ...)': If fail
8857 to see how the order between symbols could be relevant!
8858
88592001-12-10 Akim Demaille <akim@epita.fr>
8860
8861 * src/getargs.h: Don't declare `spec_name_prefix' and
8862 `spec_file_prefix', declared by src/files.h.
8863 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
8864 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
8865 * src/output.c (prepare): Adjust.
8866 * src/reader.c (symbols_output): Likewise.
8867 * src/vmsgetargs.c: Vaguely adjust, but who cares?
8868
88692001-12-10 Akim Demaille <akim@epita.fr>
8870
8871 * src/muscle_tab.c (muscle_init): NULL is a better default than
8872 `"0"'.
8873
88742001-12-10 Akim Demaille <akim@epita.fr>
8875
8876 * src/reader.c (reader): Calling symbols_output once is enough.
8877
88782001-12-10 Akim Demaille <akim@epita.fr>
8879
8880 Now that states have a complete set of members, the linked list of
8881 reductions is useless: just fill directly the state's reductions
8882 member.
8883
8884 * src/state.h (struct reductions): Remove member `number' and
8885 `next'.
8886 * src/LR0.c (first_reduction, last_reduction): Remove.
8887 (save_reductions): Don't link the new reductions, store them in
8888 this_state.
8889 * src/lalr.c (set_state_table): No need to attach reductions to
8890 states, it's already done.
8891 * src/output.c (output_actions): No longer free the shifts, then
8892 the reductions, then the states: free all the states and their
8893 members.
8894
88952001-12-10 Akim Demaille <akim@epita.fr>
8896
8897 * src/options.c (OPTN, DRTV, BOTH): New.
8898 (option_table): Use them.
8899
8900 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
8901 the job of system.h.
8902 * src/options.c: Don't include stdio.h and xalloc.h for the same
8903 reasons.
8904
89052001-12-10 Akim Demaille <akim@epita.fr>
8906
8907 * src/output.c (output, prepare): Make sure the values of the
8908 muscles `action' and `prologue' are 0-terminated.
8909
89102001-12-10 Akim Demaille <akim@epita.fr>
8911
8912 Clean up GCC warnings.
8913
8914 * src/reader.c (copy_action): `buf' is not used.
8915 (parse_skel_decl): Be static.
8916 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
8917 * src/options.h (create_long_option_table): Have a real prototype.
8918 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
8919 (hash_delete_at): Return const void *.
8920 Adjust casts to preserve the const.
8921
89222001-12-10 Akim Demaille <akim@epita.fr>
8923
8924 * configure.in: Require 2.52g.
8925 M4 is not needed, but AUTOM4TE is.
8926 * m4/m4.m4: Remove.
8927 * tests/Makefile.am: Adjust.
8928
89292001-12-10 Akim Demaille <akim@epita.fr>
8930
8931 One structure for states is enough, even though theoretically
8932 there are LR(0) states and LALR(1) states.
8933
8934 * src/lalr.h (state_t): Remove.
8935 (state_table): Be state_t **, not state_t *.
8936 * src/state.h (core, CORE_ALLOC): Rename as...
8937 (state_t, STATE_ALLOC): this.
8938 Add the LALR(1) members: shifts, reductions, errs.
8939 * src/LR0.c (state_table): Rename as...
8940 (state_hash): this, to avoid name clashes with the global
8941 `state_table'.
8942 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
8943 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
8944
89452001-12-10 Akim Demaille <akim@epita.fr>
8946
8947 Bison dumps core on bash.y.
8948 Reported by Pascal Bart.
8949
8950 * src/warshall.c (bitmatrix_print): New.
8951 (TC): Use it.
8952 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
8953 j must be the outer loop.
8954 * tests/regression.at (Broken Closure): New.
8955
89562001-12-05 Akim Demaille <akim@epita.fr>
8957
8958 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
8959 its argument.
8960 Reported by Peter Hamorsky.
8961
89622001-12-05 Akim Demaille <akim@epita.fr>
8963
8964 * src/conflicts.c (err_table): Remove.
8965 (resolve_sr_conflict): Adjust.
8966 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
8967 Rename as...
8968 (state_t.reductions, state_t.shifts): this.
8969
89702001-12-05 Akim Demaille <akim@epita.fr>
8971
8972 * src/reduce.c (reduce_grammar_tables): No longer disable the
8973 removal of useless rules via CPP but via `if (0)', so that the
8974 compiler still check the code is valid.
8975 For instance, it should have noticed `rline' no longer exists: use
8976 the `line' member of rule_t.
8977 * src/gram.c (dummy, rline): Remove, unused.
8978
89792001-12-05 Akim Demaille <akim@epita.fr>
8980
8981 * src/output.c (pack_vector): Use assert, not berror.
8982 * src/main.c (berror): Remove, unused.
8983
89842001-12-05 Akim Demaille <akim@epita.fr>
8985
8986 New experimental feature: if --verbose --trace output all the
8987 items of a state, not only its kernel.
8988
8989 * src/print.c (print_core): If `trace_flag', then invoke closure
8990 before outputting the items of the state (print_core is no longer
8991 a correct name them).
8992 (print_results): Invoke new_closure/free_closure if needed.
8993
89942001-12-05 Akim Demaille <akim@epita.fr>
8995
8996 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
8997 * src/closure.c, src/closure.h (itemsetsize): Rename as...
8998 (nitemset): for consistency with the rest of the project.
8999
90002001-12-05 Akim Demaille <akim@epita.fr>
9001
9002 * src/closure.c (print_closure): Improve.
9003 (closure): Use it for printing input and output.
9004
90052001-12-05 Akim Demaille <akim@epita.fr>
9006
9007 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
9008 indexed by nonterminals.
9009
90102001-12-05 Akim Demaille <akim@epita.fr>
9011
9012 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
9013 what it was!).
9014 * src/warshall.h: Remove accidental duplication of the content.
9015
90162001-12-05 Akim Demaille <akim@epita.fr>
9017
9018 * src/closure.c (set_fderives): De-obfuscate.
9019
90202001-12-05 Akim Demaille <akim@epita.fr>
9021
9022 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
9023
90242001-12-05 Akim Demaille <akim@epita.fr>
9025
9026 * src/closure.c (set_firsts): De-obfuscate.
9027
90282001-12-05 Akim Demaille <akim@epita.fr>
9029
9030 * src/output.c (action_row): De-obfuscate
9031 using the good o' techniques: arrays not pointers, variable
9032 locality, BITISSET, RESETBIT etc.
9033
90342001-12-05 Akim Demaille <akim@epita.fr>
9035
9036 Pessimize the code to simplify it: from now on, all the states
9037 have a valid SHIFTS, which NSHIFTS is possibly 0.
9038
9039 * src/LR0.c (shifts_new): Be global and move to..
9040 * src/state.c, src/state.h: here.
9041 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
9042 * src/print_graph: Adjust.
9043
90442001-12-05 Akim Demaille <akim@epita.fr>
9045
9046 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
9047 * src/conflicts.c: Use it.
9048 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
9049 incorrectly ``simplified''.
9050
90512001-12-05 Akim Demaille <akim@epita.fr>
9052
9053 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
9054 using the good o' techniques: arrays not pointers, variable
9055 locality, BITISSET, RESETBIT etc.
9056
90572001-12-05 Akim Demaille <akim@epita.fr>
9058
9059 * src/state.h (SHIFT_SYMBOL): New.
9060 * src/conflicts.c: Use it to deobfuscate.
9061
90622001-12-05 Akim Demaille <akim@epita.fr>
9063
9064 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
9065 (print_reductions): De-obfuscate using the good o' techniques:
9066 arrays not pointers, variable locality, BITISSET.
9067
90682001-12-05 Akim Demaille <akim@epita.fr>
9069
9070 * src/conflicts.c (print_reductions): Arrays, not pointers.
9071 Use BITISSET.
9072
90732001-12-05 Akim Demaille <akim@epita.fr>
9074
9075 * src/conflicts.c (print_reductions): Pessimize, but clarify.
9076
90772001-12-05 Akim Demaille <akim@epita.fr>
9078
9079 * src/conflicts.c (print_reductions): Improve variable locality.
9080
90812001-12-05 Akim Demaille <akim@epita.fr>
9082
9083 * src/conflicts.c (print_reductions): Pessimize, but clarify.
9084
90852001-12-05 Akim Demaille <akim@epita.fr>
9086
9087 * src/conflicts.c (print_reductions): Improve variable locality.
9088
90892001-12-05 Akim Demaille <akim@epita.fr>
9090
9091 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
9092 * src/lalr.c: Use them.
9093
90942001-12-05 Akim Demaille <akim@epita.fr>
9095
9096 * src/LR0.c (augment_automaton): Formatting changes.
9097 Better variable locality.
9098
90992001-12-05 Akim Demaille <akim@epita.fr>
9100
9101 * src/lalr.c (matrix_print): New.
9102 (transpose): Use it.
9103 Use arrays instead of pointers.
9104
91052001-12-05 Akim Demaille <akim@epita.fr>
9106
9107 * src/lalr.c (maxrhs): Move to...
9108 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
9109 * src/lalr.c (build_relations): Adjust.
9110
91112001-12-05 Akim Demaille <akim@epita.fr>
9112
9113 * src/lalr.c (transpose): Free the memory allocated to the
9114 argument, as it is replaced by the results by the unique caller.
9115 (build_relations): Merely invoke transpose: it handles the memory
9116 deallocation.
9117 Improve variable locality.
9118 Avoid variables used as mere abbreviations.
9119 (compute_lookaheads): Use arrays instead of pointers.
9120
91212001-12-05 Akim Demaille <akim@epita.fr>
9122
9123 * src/lalr.c (initialize_F): Improve variable locality.
9124 Avoid variables used as mere abbreviations.
9125
91262001-12-05 Akim Demaille <akim@epita.fr>
9127
9128 * src/derives.c (print_derives): Display the ruleno.
9129 * src/lalr.c (initialize_F, transpose): Better variable locality
9130 to improve readability.
9131 Avoid variables used as mere abbreviations.
9132
91332001-12-05 Akim Demaille <akim@epita.fr>
9134
9135 * src/lalr.c (traverse): Use arrays instead of pointers.
9136
91372001-12-05 Akim Demaille <akim@epita.fr>
9138
9139 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
9140 the handling of squeue.
9141 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
9142
91432001-12-05 Akim Demaille <akim@epita.fr>
9144
9145 Because useless nonterminals are now kept alive (instead of being
9146 `destroyed'), we now sometimes examine them, and store information
9147 related to them. Hence we need to know their number, and adjust
9148 memory allocations.
9149
9150 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
9151 static.
9152 * src/LR0.c (allocate_itemsets): The memory allocated to
9153 `symbol_count' was used for two different purpose: once to count
9154 the number of occurrences of each symbol, and later reassigned to
9155 `shift_symbol', containing the symbol that can be shifted from a
9156 given state.
9157 Deobfuscate, i.e., allocate, use and free `symbol_count' here
9158 only, and...
9159 (new_itemsets): Allocate `shift_symbol' here.
9160 (allocate_itemsets): symbol_count includes useless nonterminals.
9161 Make room for them.
9162 (free_storage): Use `free', not `XFREE', for pointers that cannot
9163 be null.
9164
91652001-12-05 Akim Demaille <akim@epita.fr>
9166
9167 * src/nullable.c (set_nullable): Deobfuscate the handling of
9168 ritem.
9169 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
9170
91712001-12-05 Akim Demaille <akim@epita.fr>
9172
9173 * src/gram.c, src/gram.h (ritem_print): New.
9174 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
9175 (This useless function was defined only to work around VMS linkers
9176 that can't handle compilation units with variables only).
9177 * src/reduce.c (dump_grammar): Use it to trace the construction of
9178 ritem.
9179
91802001-12-04 Paul Eggert <eggert@twinsun.com>
9181
9182 * src/bison.simple (union yyalloc): Change member names
9183 to be the same as the stack names.
9184 (yyparse): yyptr is now union yyalloc *, not char *.
9185 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
9186 and may generate better code on some machines.
9187 (yystpcpy): Use prototype if __STDC__ is defined, not just
9188 if __cplusplus is defined.
9189
91902001-11-30 Akim Demaille <akim@epita.fr>
9191
9192 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
9193 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
9194 Gettext doesn't compile cleanly, and dies with -Werror.
9195 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
9196 Include WARNING_CFLAGS here.
9197 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
9198 before being defined.
9199
92002001-11-27 Paul Eggert <eggert@twinsun.com>
9201
9202 * lib/quotearg.h (quotearg_n, quotearg_n_style):
9203 First arg is int, not unsigned.
9204 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
9205 (SIZE_MAX, UINT_MAX): New macros.
9206 (quotearg_n_options): Abort if N is negative.
9207 Avoid overflow check on hosts where size_t is 64 bits and int
9208 is 32 bits, as overflow is impossible there.
9209 Fix off-by-one typo that caused unnecessary reallocation.
9210
92112001-11-29 Paul Eggert <eggert@twinsun.com>
9212
9213 Name space cleanup in generated parser.
9214
9215 * doc/bison.texinfo (Bison Parser): Discuss system headers
9216 and their effect on the user name space.
9217
9218 * src/bison.simple:
9219 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
9220 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
9221 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
9222
9223 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
9224 on user names when possible.
9225
9226 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
9227 Simplify test for whather <alloca.h> exists.
9228
9229 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
9230
9231 (<stdio.h>): Include if YYDEBUG.
9232
9233 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
9234 ! defined (yyoverflow) && ! defined (yymemcpy).
9235
9236 (yymemcpy, yyparse): Rename local variables as needed so that
9237 they all begin with 'yy'.
9238
9239 (yystrlen, yystpcpy): New functions.
9240
9241 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
9242 All uses changed.
9243
9244 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
9245 instead of relying on string.h functions. Use YYSTACK_ALLOC
9246 and YYSTACK_FREE instead of malloc and free.
9247
92482001-11-30 Akim Demaille <akim@epita.fr>
9249
9250 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
9251 before their first uses.
9252 (YYBISON, YYPURE): Move to the top of the output.
9253
92542001-11-30 Akim Demaille <akim@epita.fr>
9255
9256 * tests/reduce.at (Useless Nonterminals): Fix.
9257
92582001-11-30 Akim Demaille <akim@epita.fr>
9259
9260 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
9261 if body instead of `;' to pacify GCC's warnings.
9262
92632001-11-30 Akim Demaille <akim@epita.fr>
9264
9265 Instead of mapping the LHS of unused rules to -1, keep the LHS
9266 valid, but flag the rules as invalid.
9267
9268 * src/gram.h (rule_t): `useful' is a new member.
9269 * src/print.c (print_grammar): Adjust.
9270 * src/derives.c (set_derives): Likewise.
9271 * src/reader.c (packgram, reduce_output): Likewise.
9272 * src/reduce.c (reduce_grammar_tables): Likewise.
9273 * tests/reduce.at (Underivable Rules, Useless Rules): New.
9274
92752001-11-30 Akim Demaille <akim@epita.fr>
9276
9277 * src/reduce.c (reduce_output): Formatting changes.
9278 * src/print.c (print_results, print_grammar): Likewise.
9279 * tests/regression.at (Rule Line Numbers)
9280 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
9281
92822001-11-30 Akim Demaille <akim@epita.fr>
9283
9284 * src/reduce.c (nonterminals_reduce): Instead of throwing away
9285 useless nonterminals, move them at the end of the symbol arrays.
9286 (reduce_output): Adjust.
9287 * tests/reduce.at (Useless Nonterminals): Adjust.
9288
92892001-11-30 Akim Demaille <akim@epita.fr>
9290
9291 * src/reduce.c: Various comment/formatting changes.
9292 (nonterminals_reduce): New, extracted from...
9293 (reduce_grammar_tables): here.
9294 (reduce_grammar): Call nonterminals_reduce.
9295
92962001-11-29 Paul Eggert <eggert@twinsun.com>
9297
9298 * src/bison.simple (YYSTACK_REALLOC): Remove.
9299 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
9300 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
9301 New macros.
9302 (union yyalloc): New type.
9303 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
9304 an arbitrary restriction on hosts where size_t is wider than int.
9305
9306 (yyparse): Don't dump core if alloca or malloc fails; instead, report
9307 a parser stack overflow. Allocate just one block of memory for all
9308 three stacks, instead of allocating three blocks; this typically is
9309 faster and reduces fragmentation.
9310
9311 Do not limit the number of items in the stack to a value that fits
9312 in 'int', as this is an arbitrary limit on hosts with 64-bit
9313 size_t and 32-bit int.
9314
93152001-11-29 Marc Autret <autret_m@epita.fr>
9316
9317 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
9318 of defining YYERROR_VERBOSE.
9319 [AT_DATA]: $4 is now out of C declarations in the prologue.
9320
93212001-11-28 Marc Autret <autret_m@epita.fr>
9322
9323 * src/reader.c (parse_dquoted_param): New.
9324 (parse_skel_decl): Use it.
9325 * src/lex.h: Add its prototype.
9326 * src/lex.c (literalchar): Become not static.
9327
93282001-11-28 Marc Autret <autret_m@epita.fr>
9329
9330 * src/output.h: And put its extern declaration here.
9331 * src/output.c (error_verbose): Define here.
9332 (prepare): Echo name modification.
9333 * src/getargs.h: Clean its extern declaration.
9334 * src/getargs.c (error_verbose_flag): Remove.
9335 (getargs): Remove case 'e'.
9336 * src/options.c (option_table): 'error-verbose' is now seen as simple
9337 percent option.
9338 Include output.h.
9339
9340 * src/reader.c (read_declarations): Remove case tok_include.
9341 (parse_include_decl): Remove.
9342 * src/lex.h (token_t): Remove tok_include.
9343 * src/options.c (option_table): 'include' is now a simple command line
9344 option.
9345
93462001-11-28 Marc Autret <autret_m@epita.fr>
9347
9348 * src/bison.simple: Adjust muscle names.
9349 * src/muscle_tab.c (muscle_init): Also rename the muscles.
9350 * src/output.c (prepare): s/_/-/ for the muscles names.
9351 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
9352
93532001-11-28 Marc Autret <autret_m@epita.fr>
9354
9355 * src/bison.simple: Fix debug.
9356 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
9357
93582001-11-28 Akim Demaille <akim@epita.fr>
9359
9360 * src/LR0.c (shifts_new): New.
9361 (save_shifts, insert_start_shift, augment_automaton): Use it.
9362
93632001-11-28 Akim Demaille <akim@epita.fr>
9364
9365 * src/closure.c (closure): `b' and `ruleno' denote the same value:
9366 keep ruleno only.
9367
93682001-11-28 Akim Demaille <akim@epita.fr>
9369
9370 * src/closure.c (closure): Instead of looping over word in array
9371 then bits in words, loop over bits in array.
9372
93732001-11-28 Akim Demaille <akim@epita.fr>
9374
9375 * src/closure.c (closure): No longer optimize the special case
9376 where all the bits of `ruleset[r]' are set to 0, to make the code
9377 clearer.
9378
93792001-11-28 Akim Demaille <akim@epita.fr>
9380
9381 * src/closure.c (closure): `r' and `c' are new variables, used to
9382 de-obfuscate accesses to RULESET and CORE.
9383
93842001-11-28 Akim Demaille <akim@epita.fr>
9385
9386 * src/reduce.c (reduce_print): Use ngettext.
9387 (dump_grammar): Improve the trace accuracy.
9388
93892001-11-28 Akim Demaille <akim@epita.fr>
9390
9391 * src/reduce.c (dump_grammar): Don't translate trace messages.
9392
93932001-11-28 Akim Demaille <akim@epita.fr>
9394
9395 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
9396 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
9397 as all tags are free'ed afterwards.
9398 From Enrico Scholz.
9399
94002001-11-27 Paul Eggert <eggert@twinsun.com>
9401
9402 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
9403 use alloca when we didn't want to, and vice versa.
9404
94052001-11-27 Marc Autret <autret_m@epita.fr>
9406
9407 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
9408 initialization.
9409 * src/output.c (prepare): Remove its update.
9410
94112001-11-27 Marc Autret <autret_m@epita.fr>
9412
9413 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
9414 Use %error-verbose.
9415
94162001-11-27 Marc Autret <autret_m@epita.fr>
9417
9418 * src/bison.simple: Remove YYERROR_VERBOSE using.
9419 Use %%error_verbose.
9420 (yyparse): Likewise.
9421 * src/output.c (prepare): Give its final value.
9422 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
9423 * src/getargs.h: Add its extern declaration.
9424 * src/getargs.c (error_verbose_flag): New int.
9425 (getargs): Update to catch new case.
9426 * src/options.c (option_table): 'error-verbose' is a new option.
9427 (shortopts): Update.
9428
94292001-11-27 Akim Demaille <akim@epita.fr>
9430
9431 * src/system.h: Use intl/libgettext.h.
9432 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
9433
94342001-11-27 Akim Demaille <akim@epita.fr>
9435
9436 * tests/torture.at (Exploding the Stack Size with Malloc):
9437 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
9438
94392001-11-27 Akim Demaille <akim@epita.fr>
9440
9441 * src/files.c: Include error.h.
9442 Reported by Hans Aberg.
9443
94442001-11-26 Marc Autret <autret_m@epita.fr>
9445
9446 * src/reader.c (parse_include_decl): New, not yet implemented.
9447 (read_declarations): Add case tok_include.
9448 * src/getargs.h (include): Add its extern definition.
9449 * src/getargs.c (include): New const char *.
9450 (getargs): Add case '-I'.
9451 * src/options.c (option_table): Add include as command line and
9452 percent option.
9453 * src/lex.h (token_t): Add tok_include.
9454
94552001-11-26 Akim Demaille <akim@epita.fr>
9456
9457 * src/reader.c (readgram): Make sure rules for mid-rule actions
9458 have a lineno equal to that of their host rule.
9459 Reported by Hans Aberg.
9460 * tests/regression.at (Rule Line Numbers): New.
9461
94622001-11-26 Akim Demaille <akim@epita.fr>
9463
9464 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
9465 size_ts.
9466
94672001-11-26 Akim Demaille <akim@epita.fr>
9468
9469 * src/complain.c, src/complain.h (error): Remove, provided by
9470 lib/error.[ch].
9471
94722001-11-26 Akim Demaille <akim@epita.fr>
9473
9474 * src/reader.c (read_declarations): Don't abort on tok_illegal,
9475 issue an error message.
9476 * tests/regression.at (Invalid %directive): New.
9477 Reported by Hans Aberg.
9478
94792001-11-26 Akim Demaille <akim@epita.fr>
9480
9481 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
9482 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
9483
94842001-11-26 Akim Demaille <akim@epita.fr>
9485
9486 * src/conflicts.c (conflicts_print): Don't complain at all when
9487 there are no reduce/reduce conflicts, and as many shift/reduce
9488 conflicts as expected.
9489 * tests/regression.at (%expect right): Adjust.
9490
94912001-11-23 Akim Demaille <akim@epita.fr>
9492
9493 * lib/alloca.c: Update, from fileutils.
9494
94952001-11-23 Akim Demaille <akim@epita.fr>
9496
9497 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
9498
94992001-11-23 Akim Demaille <akim@epita.fr>
9500
9501 * src/system.h: Include alloca.h.
9502 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
9503
95042001-11-23 Akim Demaille <akim@epita.fr>
9505
9506 * src/print_graph.c (print_actions): Remove `rule', unused.
9507 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
9508 pacify GCC's signed < unsigned warnings.
9509 * src/closure.c (itemsetsize): Likewise.
9510 * src/reader.c (symbol_list_new): Static.
9511
95122001-11-23 Akim Demaille <akim@epita.fr>
9513
9514 Attaching lineno to buckets is stupid, since only one copy of each
9515 symbol is kept, only the line of the first occurrence is kept too.
9516
9517 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
9518 * src/reader.c (rline_allocated): Remove, unused.
9519 (symbol_list): Have a `line' member.
9520 (symbol_list_new): New.
9521 (readgram): Use it.
9522 * src/print.c (print_grammar): Output the rule line numbers.
9523 * tests/regression.at (Solved SR Conflicts)
9524 (Unresolved SR Conflicts): Adjust.
9525 Reported by Hans Aberg.
9526
95272001-11-22 Marc Autret <autret_m@epita.fr>
9528
9529 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
9530
95312001-11-22 Marc Autret <autret_m@epita.fr>
9532
9533 * src/muscle_tab.c (muscle_init): Remove initialization of
9534 skeleton muscle.
9535 * src/output.c (output_master_parser): Do it here.
9536
95372001-11-20 Akim Demaille <akim@epita.fr>
9538
9539 * po/sv.po: New.
9540 * configure.in (ALL_LINGUAS): Adjust.
9541 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
9542 longer contains strings to translate.
9543
95442001-11-19 Akim Demaille <akim@epita.fr>
9545
9546 * src/conflicts.c (conflicts_print): Add a missing \n.
9547
95482001-11-19 Akim Demaille <akim@epita.fr>
9549
9550 * src/nullable.c (nullable_print): New.
9551 (set_nullable): Call it when tracing.
9552 Better locality of variables.
9553
95542001-11-19 Akim Demaille <akim@epita.fr>
9555
9556 * src/print.c (print_actions): Better locality of variables.
9557
95582001-11-19 Akim Demaille <akim@epita.fr>
9559
9560 * src/derives.c (print_derives): Fix and enrich.
9561 * src/closure.c (print_fderives): Likewise.
9562
95632001-11-19 Akim Demaille <akim@epita.fr>
9564
9565 * src/closure.c (itemsetend): Remove, replaced with...
9566 (itemsetsize): new.
9567
95682001-11-19 Akim Demaille <akim@epita.fr>
9569
9570 * src/LR0.c (kernel_end): Remove, replaced with...
9571 (kernel_size): new.
9572
95732001-11-19 Akim Demaille <akim@epita.fr>
9574
9575 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
9576 to clarify.
9577
95782001-11-19 Akim Demaille <akim@epita.fr>
9579
9580 * src/closure.c (closure): Use arrays instead of pointers to clarify.
9581
95822001-11-19 Akim Demaille <akim@epita.fr>
9583
9584 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
9585 trace messages.
9586 * src/LR0.c: Likewise.
9587 (allocate_itemsets): Use arrays instead of pointers to clarify.
9588
95892001-11-19 Akim Demaille <akim@epita.fr>
9590
9591 * src/getargs.c (statistics_flag): Replace with...
9592 (trace_flag): New.
9593 (longopts): Accept --trace instead of --statistics.
9594 * src/getargs.h, src/options.c: Adjust.
9595 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
9596 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
9597
95982001-11-19 Akim Demaille <akim@epita.fr>
9599
9600 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
9601 pointers to clarify the code.
9602 (save_reductions, save_shifts): Factor common parts of alternatives.
9603
96042001-11-19 Akim Demaille <akim@epita.fr>
9605
9606 * src/LR0.c (new_state, get_state): Complete TRACE code.
9607 * src/closure.c: Include `reader.h' to get `tags', needed by the
9608 trace code.
9609 Rename the conditional DEBUG as TRACE.
9610 Output consistently TRACEs to stderr, not stdout.
9611 * src/derives.c: Likewise.
9612 * src/reduce.c: (inaccessable_symbols): Using if is better style
9613 than goto.
9614 Use `#if TRACE' instead of `#if 0' for tracing code.
9615
96162001-11-19 Akim Demaille <akim@epita.fr>
9617
9618 * src/system.h (LIST_FREE, shortcpy): New.
9619 * src/LR0.c: Use them.
9620 * src/output.c (free_itemsets, free_reductions, free_shifts):
9621 Remove, replaced by LIST_FREE.
9622
96232001-11-19 Akim Demaille <akim@epita.fr>
9624
9625 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
9626 (REDUCTIONS_ALLOC): New.
9627 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
9628 allocation.
9629
96302001-11-19 Akim Demaille <akim@epita.fr>
9631
9632 * src/LR0.c (new_state): Complete trace code.
9633 * src/nullable.c (set_nullable): Don't translate traces.
9634
96352001-11-19 Akim Demaille <akim@epita.fr>
9636
9637 * src/print_graph.c (print_core): Better locality of variables.
9638 * src/print.c (print_core): Likewise.
9639
96402001-11-19 Akim Demaille <akim@epita.fr>
9641
9642 * src/vcg.c: You do the output, so you are responsible of the
9643 handling of VCG syntax, in particular: use quotearg.
9644 * src/print_graph.c: Don't.
9645 (print_actions): Don't output the actions as part of the nodes,
9646 since that's the job of the edges.
9647 (print_state): Don't output by hand: fill the node description,
9648 and ask for its output.
9649
96502001-11-19 Akim Demaille <akim@epita.fr>
9651
9652 * src/bison.simple (yyparse): When verbosely reporting an error,
9653 no longer put additional quotes around token names.
9654 * tests/calc.at: Adjust.
9655
96562001-11-19 Akim Demaille <akim@epita.fr>
9657
9658 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
9659 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
9660 * src/output.c: Adjust.
9661
96622001-11-19 Akim Demaille <akim@epita.fr>
9663
9664 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
9665 (rule_t): this.
9666 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
9667
96682001-11-19 Akim Demaille <akim@epita.fr>
9669
9670 * src/gram.h (rule_t): New.
9671 (rule_table): New.
9672 (rrhs, rlhs): Remove, part of state_t.
9673 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
9674 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
9675 * src/reader.c, src/reduce.c: Adjust.
9676
96772001-11-19 Akim Demaille <akim@epita.fr>
9678
9679 * src/reader.c (symbols_output): New, extracted from...
9680 (packsymbols): Here.
9681 (reader): Call it.
9682
96832001-11-19 Akim Demaille <akim@epita.fr>
9684
9685 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
9686 (maxrhs): this new function.
9687
96882001-11-19 Akim Demaille <akim@epita.fr>
9689
9690 * src/lalr.c (F): New macro to access the variable F.
9691 Adjust.
9692
96932001-11-19 Akim Demaille <akim@epita.fr>
9694
9695 * src/lalr.h (LA): New macro to access the variable LA.
9696 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9697 * src/lalr.c: Adjust.
9698
96992001-11-19 Akim Demaille <akim@epita.fr>
9700
9701 * src/lalr.c (initialize_LA): Only initialize LA. Let...
9702 (set_state_table): handle the `lookaheads' members.
9703
97042001-11-19 Akim Demaille <akim@epita.fr>
9705
9706 * src/lalr.h (lookaheads): Removed array, whose contents is now
9707 a member of...
9708 (state_t): this structure.
9709 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9710 Adjust.
9711
97122001-11-19 Akim Demaille <akim@epita.fr>
9713
9714 * src/lalr.h (consistent): Removed array, whose contents is now
9715 a member of...
9716 (state_t): this structure.
9717 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9718 Adjust.
9719
97202001-11-19 Akim Demaille <akim@epita.fr>
9721
9722 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
9723 contents are now members of...
9724 (state_t): this structure.
9725 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9726 Adjust.
9727
97282001-11-19 Akim Demaille <akim@epita.fr>
9729
9730 * src/lalr.h (state_t): New.
9731 (state_table): Be a state_t * instead of a core **.
9732 (accessing_symbol): Remove, part of state_t.
9733 * src/lalr.c: Adjust.
9734 (set_accessing_symbol): Merge into...
9735 (set_state_table): this.
9736 * src/print_graph.c, src/conflicts.c: Adjust.
9737
97382001-11-14 Akim Demaille <akim@epita.fr>
9739
9740 * tests/calc.at, tests/output.at, tests/regression.at,
9741 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
9742 now the tests are run in private dirs, therefore AC_CLEANUP and
9743 family can be simplified to 0-ary.
9744 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
9745 use abs. path to find config.h.
9746 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
9747 stderr, there can be way too much random noise.
9748 Instead pass -Werror to GCC and rely on the exit status.
9749 Reported by Wolfram Wagner.
9750
97512001-11-14 Akim Demaille <akim@epita.fr>
9752
9753 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
9754 defined only if yyoverflow is defined, to avoid `warning: unused
9755 variable `yyvs1''.
9756 Reported by The Test Suite.
9757
97582001-11-14 Akim Demaille <akim@epita.fr>
9759
9760 * src/print.c: Include reduce.h.
9761 Reported by Hans Aberg.
9762
97632001-11-14 Akim Demaille <akim@epita.fr>
9764
9765 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
9766 Revert a previous patch: these are really const.
9767 * src/conflicts.c (conflict_report): Additional useless pair of
9768 braces to pacify GCC's warnings for `if () if () {} else {}'.
9769 * src/lex.c (parse_percent_token): Replace equal_offset with
9770 arg_offset.
9771 arg is const.
9772 Be sure to strdup `arg' when used, since there is no reason for
9773 token_buffer not to change.
9774
97752001-11-14 Akim Demaille <akim@epita.fr>
9776
9777 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
9778 definition.
9779 * src/main.c (main): Use them.
9780 Suggested by Hans Aberg.
9781
97822001-11-12 Akim Demaille <akim@epita.fr>
9783
9784 * src/system.h (ngettext): Now that we use ngettext, be sure to
9785 provide a default definition when NLS are not used.
9786
97872001-11-12 Akim Demaille <akim@epita.fr>
9788
9789 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
9790 Use @kbd to denote user input.
9791 (Language and Grammar): ANSIfy the example.
9792 Adjust its layout for info/notinfo.
9793 (Location Tracking Calc): Output error messages to stderr.
9794 Output locations in a more GNUtically correct way.
9795 Fix a couple of Englishos.
9796 Adjust @group/@end group pairs.
9797
97982001-11-12 Akim Demaille <akim@epita.fr>
9799
9800 %expect was not functioning at all.
9801
9802 * src/conflicts.c (expected_conflicts): Set to -1.
9803 (conflict_report): Use ngettext.
9804 (conflicts_print): Check %expect and make its violation an error.
9805 * doc/bison.texinfo (Expect Decl): Adjust.
9806 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
9807 * tests/regression.at (%expect not enough, %expect right)
9808 (%expect too much): New.
9809
98102001-11-12 Akim Demaille <akim@epita.fr>
9811
9812 * tests/regression.at (Conflicts): Rename as...
9813 (Unresolved SR Conflicts): this.
9814 (Solved SR Conflicts): New.
9815
98162001-11-12 Akim Demaille <akim@epita.fr>
9817
9818 * src/reduce.c (print_results): Rename as...
9819 (reduce_output): This.
9820 Output to OUT, passed as argument, instead of output_obstack.
9821 (dump_grammar): Likewise.
9822 (reduce_free): New.
9823 Also free V1.
9824 (reduce_grammar): No longer call reduce_output, since...
9825 * src/print.c (print_results): do it.
9826 * src/main.c (main): Call reduce_free;
9827
98282001-11-12 Akim Demaille <akim@epita.fr>
9829
9830 * src/conflicts.c (print_reductions): Accept OUT as argument.
9831 Output to it, not to output_obstack.
9832 * src/print.c (print_actions): Adjust.
9833
98342001-11-12 Akim Demaille <akim@epita.fr>
9835
9836 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
9837 the result instead of using...
9838 (src_total, rrc_total, src_count, rrc_count): Remove.
9839 (any_conflicts): Remove.
9840 (print_conflicts): Split into...
9841 (conflicts_print, conflicts_output): New.
9842 * src/conflicts.h: Adjust.
9843 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
9844 * src/print.c (print_grammar): Issue `\n' between two rules.
9845 * tests/regression.at (Conflicts): New.
9846 Reported by Tom Lane.
9847
98482001-11-12 Akim Demaille <akim@epita.fr>
9849
9850 * tests/regression.at (Invalid input): Remove, duplicate with
9851 ``Invalid input: 1''.
9852
98532001-11-12 Akim Demaille <akim@epita.fr>
9854
9855 * tests/torture.at (AT_DATA_STACK_TORTURE)
9856 (Exploding the Stack Size with Alloca)
9857 (Exploding the Stack Size with Malloc): New.
9858
98592001-11-12 Akim Demaille <akim@epita.fr>
9860
9861 * src/bison.simple (YYSTACK_REALLOC): New.
9862 (yyparse) [!yyoverflow]: Use it and free the old stack.
9863 Reported by Per Allansson.
9864
98652001-11-12 Pascal Bart <pascal.bart@epita.fr>
9866
9867 * src/bison.simple: Define type yystype instead of YYSTYPE, and
9868 define CPP macro, which substitute YYSTYPE by yystype.
9869 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
9870 with yyltype/YYLTYPE. This allows inclusion of the generated
9871 header within the parser if the compiler, such as GGC, accepts
9872 multiple equivalent #defines.
9873 From Akim.
9874
98752001-11-05 Akim Demaille <akim@epita.fr>
9876
9877 * src/reader.c (symbols_output): New, extracted from...
9878 (packsymbols): here.
9879 (reader): Adjust.
9880
98812001-11-05 Akim Demaille <akim@epita.fr>
9882
9883 * src/lex.c (parse_percent_token): s/quotearg/quote/.
9884
98852001-11-05 Akim Demaille <akim@epita.fr>
9886
9887 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
9888 pattern.
9889
98902001-11-05 Akim Demaille <akim@epita.fr>
9891
9892 * src/options.h (struct option_table_struct): set_flags is void*.
9893 * src/options.c (longopts): Support `--output' and `%output'.
9894 (usage): Adjust.
9895 * src/lex.h (tok_setopt): Remove, replaced with...
9896 (tok_intopt, tok_stropt): these new guys.
9897 * src/lex.c (getopt.h): Not needed.
9898 (token_buffer, unlexed_token_buffer): Not const.
9899 (percent_table): Promote `-' over `_' in directive names.
9900 Active `%name-prefix', `file-prefix', and `output'.
9901 (parse_percent_token): Accept possible arguments to directives.
9902 Promote `-' over `_' in directive names.
9903
99042001-11-04 Akim Demaille <akim@epita.fr>
9905
9906 * doc/bison.texinfo (Decl Summary): Split the list into
9907 `directives for grammars' and `directives for bison'.
9908 Sort'em.
9909 Add description of `%name-prefix', `file-prefix', and `output'.
9910 Promote `-' over `_' in directive names.
9911 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
9912 Simplify the description of `--name-prefix'.
9913 Promote `-' over `_' in directive names.
9914 Promote `--output' over `--output-file'.
9915 Fix the description of `--defines'.
9916 * tests/output.at: Exercise %file-prefix and %output.
9917
99182001-11-02 Akim Demaille <akim@epita.fr>
9919
9920 * doc/refcard.tex: Update.
9921
99222001-11-02 Akim Demaille <akim@epita.fr>
9923
9924 * src/symtab.h (SUNDEF): New.
9925 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
9926 stand for `uninitialized', instead of 0.
9927 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
9928 * src/lex.c (lex): Adjust.
9929
9930 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
9931 Number it 0.
9932 Let yylex return it instead of a plain 0.
9933 Reported by Dick Streefland.
9934
99352001-11-02 Akim Demaille <akim@epita.fr>
9936
9937 * tests/regression.at (Mixing %token styles): New test.
9938
99392001-11-02 Akim Demaille <akim@epita.fr>
9940
9941 * src/reader.c (parse_thong_decl): Formatting changes.
9942 (token_translations_init): New, extracted from...
9943 (packsymbols): Here.
9944 Adjust.
9945
99462001-11-01 Akim Demaille <akim@epita.fr>
9947
9948 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
9949 Check that `9foo.y' produces correct cpp guards.
9950 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
9951 guards.
9952 Reported by Wwp.
9953
99542001-11-01 Akim Demaille <akim@epita.fr>
9955
9956 * tests/regression.at (Invalid input: 2): New.
9957 * src/lex.c (unlexed_token_buffer): New.
9958 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
9959 too.
9960 Reported by Wwp.
9961
99622001-11-01 Akim Demaille <akim@epita.fr>
9963
9964 * tests/calc.at: Catch up with 1.30.
9965 * configure.in: Bump to 1.49a.
9966 Adjust to newer Autotest.
9967
99682001-10-19 Pascal Bart <pascal.bart@epita.fr>
9969
9970 * src/conflicts.c: Move global variables rrc_total and src_total ...
9971 (print_conflicts): here.
9972 * src/output.c (output): Free global variable user_toknums.
9973 * src/lex.c (token_obstack): Become static.
9974
99752001-10-18 Akim Demaille <akim@epita.fr>
9976
9977 * tests/atlocal.in (GCC): Add.
9978 * tests/calc.at: s/m4_match/m4_bmatch/.
9979 s/m4_patsubst/m4_bpatsubst/.
9980 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
9981 * configure.in: AC_SUBST(GCC).
9982
99832001-10-14 Marc Autret <autret_m@epita.fr>
9984
9985 * src/options.c (create_long_option_table): Fix.
9986
99872001-10-10 Akim Demaille <akim@epita.fr>
9988
9989 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
9990
99912001-10-04 Akim Demaille <akim@epita.fr>
9992
9993 * src/reader.c (parse_union_decl): Push the caracters in
9994 union_obstack, not attrs_obstack.
9995
99962001-10-04 Akim Demaille <akim@epita.fr>
9997
9998 Merge in the branch 1.29.
9999
10000 * src/reader.c (packsymbols): Use a temporary obstack for
10001 `%%tokendef', since output_stack is already used elsewhere.
10002
10003 2001-10-02 Akim Demaille <akim@epita.fr>
10004
10005 Bump 1.29d.
10006
10007 2001-10-02 Akim Demaille <akim@epita.fr>
10008
10009 Version 1.29c.
10010
10011 2001-10-02 Akim Demaille <akim@epita.fr>
10012
10013 * tests/regression.at (Invalid CPP headers): New.
10014 From Alexander Belopolsky.
10015 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
10016
10017 2001-10-02 Akim Demaille <akim@epita.fr>
10018
10019 * tests/regression.at (Invalid input): New.
10020 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
10021 Reported by Shura.
10022
10023 2001-10-02 Akim Demaille <akim@epita.fr>
10024
10025 * tests/calc.at: Now that --debug works, the tests must be adjusted.
10026
10027 2001-10-02 Akim Demaille <akim@epita.fr>
10028
10029 * src/output.c (output_parser): Assert `skeleton'.
10030 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
10031 systems.
10032 From Shura.
10033
10034 2001-10-01 Marc Autret <autret_m@epita.fr>
10035
10036 * src/lex.h: Echo modifications.
10037 * src/lex.c (unlex): Parameter is now token_t.
10038 From Hans Aberg.
10039
10040 2001-10-01 Marc Autret <autret_m@epita.fr>
10041
10042 * src/main.c: Include lex.h.
10043 From Hans Aberg.
10044
10045 2001-09-29 Akim Demaille <akim@epita.fr>
10046
10047 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
10048
10049 2001-09-28 Akim Demaille <akim@epita.fr>
10050
10051 * tests/testsuite.at: Update to newer Autotest.
10052 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
10053
10054 2001-09-27 Akim Demaille <akim@epita.fr>
10055
10056 Position independent wrapper.
10057
10058 * tests/bison: Remove.
10059 * tests/bison.in: New.
10060 * configure.in: Adjust.
10061
10062 2001-09-27 Paul Eggert <eggert@twinsun.com>
10063
10064 Port quotearg fixes from tar 1.13.24.
10065
10066 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
10067 tm to be declared.
10068 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
10069 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
10070
10071 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
10072 * m4/mbrtowc.m4: New file.
10073 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
10074 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
10075
10076 2001-09-27 Akim Demaille <akim@epita.fr>
10077
10078 Bump to 1.29c.
10079
10080 2001-09-27 Akim Demaille <akim@epita.fr>
10081
10082 Version 1.29b.
10083
10084 2001-09-25 Akim Demaille <akim@epita.fr>
10085
10086 * src/system.h: Include `xalloc.h'.
10087 Remove it from the C files.
10088 * src/files.c (output_files): Free the obstacks.
10089 * src/lex.c (init_lex): Rename as...
10090 (lex_init): this.
10091 (lex_free): New.
10092 * src/main.c (main): Use it.
10093
10094 2001-09-24 Marc Autret <autret_m@epita.fr>
10095
10096 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
10097 to output informations in fout (FILE*).
10098 (open_graph, close_graph): Likewise.
10099 (output_graph, output_edge, output_node): Likewise.
10100 * src/vcg.h: Update function prototypes.
10101 * src/print_graph.c (print_graph): Open output graph file.
10102 (print_actions): Adjust.
10103 * src/files.h: Remove extern declaration.
10104 * src/files.c: Remove graph_obstack declaration.
10105 (open_files): Remove graph_obstack initialization.
10106 (output_files): Remove graph_obstack saving.
10107
10108 2001-09-24 Marc Autret <autret_m@epita.fr>
10109
10110 * src/files.c (compute_output_file_names): Fix.
10111
10112 2001-09-24 Marc Autret <autret_m@epita.fr>,
10113 Akim Demaille <akim@epita.fr>
10114
10115 * src/reader.c (reader): Remove call to free_symtab ().
10116 * src/main.c (main): Call it here.
10117 Include symtab.h.
10118 * src/conflicts.c (initialize_conflicts): Rename as...
10119 (solve_conflicts): this.
10120 * src/print.c (print_core, print_actions, print_state)
10121 (print_grammar): Dump to a file instead a `output_obstack'.
10122 (print_results): Dump `output_obstack', and then proceed with the
10123 FILE *.
10124 * src/files.c (compute_output_file_names, close_files): New.
10125 (output_files): Adjust.
10126 * src/main.c (main): Adjust.
10127
10128 2001-09-23 Marc Autret <autret_m@epita.fr>
10129
10130 * src/files.c (compute_header_macro): Computes header macro name
10131 from spec_defines_file when given.
10132
10133 2001-09-23 Marc Autret <autret_m@epita.fr>
10134
10135 * src/files.c (output_files): Add default extensions.
10136
10137 2001-09-22 Akim Demaille <akim@epita.fr>
10138
10139 * src/conflicts.c (finalize_conflicts): Rename as...
10140 (free_conflicts): this.
10141
10142 2001-09-22 Akim Demaille <akim@epita.fr>
10143
10144 * src/gram.c (gram_free): Rename back as...
10145 (dummy): this.
10146 (output_token_translations): Free `token_translations'.
10147 * src/symtab.c (free_symtab): Free the tag field.
10148
10149 2001-09-22 Akim Demaille <akim@epita.fr>
10150
10151 Remove `translations' as it is always set to true.
10152
10153 * src/gram.h: Adjust.
10154 * src/reader.c (packsymbols, parse_token_decl): Adjust
10155 * src/print.c (print_grammar): Adjust.
10156 * src/output.c (output_token_translations): Adjust.
10157 * src/lex.c (lex): Adjust.
10158 * src/gram.c: Be sure the set pointers to NULL.
10159 (dummy): Rename as...
10160 (gram_free): this.
10161
10162 2001-09-22 Akim Demaille <akim@epita.fr>
10163
10164 * configure.in: Invoke AM_LIB_DMALLOC.
10165 * src/system.h: Use dmalloc.
10166 * src/LR0.c: Be sure to have pointers initialized to NULL.
10167 (allocate_itemsets): Allocate kernel_items only if needed.
10168
10169 2001-09-22 Akim Demaille <akim@epita.fr>
10170
10171 * configure.in: Bump to 1.29b.
10172 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
10173 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
10174 need xmalloc.c in calc.y.
10175 From Pascal Bart.
10176
10177 2001-09-21 Akim Demaille <akim@epita.fr>
10178
10179 Version 1.29a.
10180 * Makefile.maint, config/config.guess, config/config.sub,
10181 * config/missing: Update from masters.
10182 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
10183 upon package.m4.
10184 * configure.in (ALL_LINGUAS): Add `tr'.
10185
10186 2001-09-21 Akim Demaille <akim@epita.fr>
10187
10188 * tests/Makefile.am (package.m4): Move to...
10189 ($(srcdir)/$(TESTSUITE)): here.
10190
10191 2001-09-20 Akim Demaille <akim@epita.fr>
10192
10193 * src/complain.c: No longer try to be standalone: use system.h.
10194 Don't assume __STDC__ is defined to 1. Just test if it is defined.
10195 * src/complain.h: Likewise.
10196 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
10197 Remove the unused variable `n'.
10198 From Albert Chin-A-Young.
10199
10200 2001-09-18 Marc Autret <autret_m@epita.fr>
10201
10202 * doc/bison.1: Update.
10203 * doc/bison.texinfo (Bison Options): Update --defines and --graph
10204 descriptions.
10205 (Option Cross Key): Update.
10206 Add --graph.
10207
10208 2001-09-18 Marc Autret <autret_m@epita.fr>
10209
10210 * tests/regression.at: New test (comment in %union).
10211
10212 2001-09-18 Marc Autret <autret_m@epita.fr>
10213
10214 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
10215 do that.
10216 Reported by Keith Browne.
10217
10218 2001-09-18 Marc Autret <autret_m@epita.fr>
10219
10220 * tests/output.at: Add tests for --defines and --graph.
10221
10222 2001-09-18 Marc Autret <autret_m@epita.fr>
10223
10224 * tests/output.at: Removes tests of %{header,src}_extension features.
10225
10226 2001-09-18 Akim Demaille <akim@epita.fr>
10227
10228 * tests/Makefile.am (package.m4): New.
10229 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
10230 (_AT_CHECK_CALC_ERROR): Likewise.
10231 Factor the `, ' part of verbose error messages.
10232
10233 2001-09-18 Marc Autret <autret_m@epita.fr>
10234
10235 * src/getargs.c (longopts): Declare --defines and --graph as options
10236 with optional arguments.
10237 * src/files.h: Add extern declarations.
10238 * src/files.c (spec_graph_file, spec_defines_file): New.
10239 (output_files): Update.
10240 Remove CPP-outed code.
10241
10242 2001-09-18 Marc Autret <autret_m@epita.fr>
10243
10244 Turn off %{source,header}_extension feature.
10245
10246 * src/files.c (compute_exts_from_gf): Update.
10247 (compute_exts_from_src): Update.
10248 (output_files): CPP-out useless code.
10249 * src/files.h: Remove {header,source}_extension extern declarations.
10250 * src/reader.c (parse_dquoted_param): CPP-out.
10251 (parse_header_extension_decl): Remove.
10252 (parse_source_extension_decl): Remove.
10253 (read_declarations): Remove cases tok_{hdrext,srcext}.
10254 * src/lex.c (percent_table): Remove {header,source}_extension entries.
10255 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
10256
10257 2001-09-10 Akim Demaille <akim@epita.fr>
10258
10259 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
10260 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
10261 (AT_CHECK_OUTPUT): this.
10262 Merely check ls' exit status, its output is useless.
10263
10264 2001-09-10 Akim Demaille <akim@epita.fr>
10265
10266 * tests/calc.at: Use m4_match.
10267 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
10268
10269 2001-09-10 Marc Autret <autret_m@epita.fr>,
10270 Akim Demaille <akim@epita.fr>
10271
10272 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
10273 enum color_e.
10274 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
10275 to `normal'.
10276 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
10277 * src/lex.h: Adjust prototype.
10278 (token_t): Add `tok_undef'.
10279 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
10280 (parse_percent_token): Now returns token_t.
10281 Add default statement in switch.
10282 (lex): Separate `c' as an input variable, from the token_t result
10283 part.
10284 (unlexed): Is a token_t.
10285
10286 2001-09-10 Akim Demaille <akim@epita.fr>
10287
10288 * configure.in: Bump to 1.29a.
10289
10290 2001-09-07 Akim Demaille <akim@epita.fr>
10291
10292 Version 1.29.
10293
10294 2001-08-30 Akim Demaille <akim@epita.fr>
10295
10296 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
10297 * m4/atconfig.m4: Remove.
10298 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
10299 * tests/bison: New.
10300 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
10301 m4_if, m4_patsubst, and m4_regexp.
10302 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
10303 `input' file instead of echo.
10304
10305 2001-08-29 Akim Demaille <akim@epita.fr>
10306
10307 Bump to 1.28e.
10308
10309 2001-08-29 Akim Demaille <akim@epita.fr>
10310
10311 Version 1.28d.
10312
10313 2001-08-29 Paul Eggert <eggert@twinsun.com>
10314
10315 * src/bison.simple (yyparse): Don't take the address of an
10316 item before the start of an array, as that doesn't conform to
10317 the C Standard.
10318
10319 2001-08-29 Robert Anisko <anisko_r@epita.fr>
10320
10321 * doc/bison.texinfo (Location Tracking Calc): New node.
10322
10323 2001-08-29 Paul Eggert <eggert@twinsun.com>
10324
10325 * src/output.c (output): Do not define const, as this now
10326 causes more problems than it cures.
10327
10328 2001-08-29 Akim Demaille <akim@epita.fr>
10329
10330 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
10331 the nodes.
10332 Be sure to tag the `detailmenu'.
10333
10334 2001-08-29 Akim Demaille <akim@epita.fr>
10335
10336 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
10337 download in a tmp dir.
10338
10339 2001-08-28 Marc Autret <autret_m@epita.fr>
10340
10341 * config/depcomp: New file.
10342
10343 2001-08-28 Marc Autret <autret_m@epita.fr>
10344
10345 * doc/bison.1 (mandoc): Adjust.
10346 From Juan Manuel Guerrero.
10347
10348 2001-08-28 Marc Autret <autret_m@epita.fr>
10349
10350 * src/print_graph.c (print_state): Fix.
10351
10352 2001-08-27 Marc Autret <autret_m@epita.fr>
10353
10354 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
10355 char * members.
10356 Echo modifications to the functions prototypes.
10357 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
10358
10359 2001-08-27 Marc Autret <autret_m@epita.fr>
10360
10361 * src/vcg.c: Include `xalloc.h'.
10362 (add_colorentry): New.
10363 (add_classname): New.
10364 (add_infoname): New.
10365 * src/vcg.h: Add new prototypes.
10366
10367 2001-08-27 Akim Demaille <akim@epita.fr>
10368
10369 * Makefile.maint: Sync. again with CVS Autoconf.
10370
10371 2001-08-27 Akim Demaille <akim@epita.fr>
10372
10373 * Makefile.maint: Formatting changes.
10374 (po-update, cvs-update, update): New targets.
10375 (AMTAR): Remove.
10376
10377 2001-08-27 Akim Demaille <akim@epita.fr>
10378
10379 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
10380 * Makefile.maint: Sync. with CVS Autoconf.
10381
10382 2001-08-27 Marc Autret <autret_m@epita.fr>
10383
10384 * src/vcg.h (struct infoname_s): New.
10385 (struct colorentry_s): New.
10386 (graph_s): New fields {vertical,horizontal}_order in structure.
10387 Add `infoname' field.
10388 Add `colorentry' field;
10389 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
10390 (G_HORIZONTAL_ORDER): New.
10391 (G_INFONAME): New.
10392 (G_COLORENTRY): New.
10393 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
10394 Add output of `infoname'.
10395 Add output of `colorentry'.
10396
10397 2001-08-27 Marc Autret <autret_m@epita.fr>
10398
10399 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
10400 This one shadowed a global parameter.
10401
10402 2001-08-24 Marc Autret <autret_m@epita.fr>
10403
10404 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
10405 instead of `unsigned'.
10406 (print_state): Do not call obstack_object_size () in obstack_grow ()
10407 to avoid macro variables shadowing.
10408
10409 2001-08-23 Marc Autret <autret_m@epita.fr>
10410
10411 * src/lex.c (percent_table): Typo: s/naem/name/.
10412 Add graph option.
10413 Normalize new options declarations.
10414
10415 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
10416
10417 * tests/suite.at: Exercise %header_extension and %source_extension.
10418
10419 2001-08-16 Marc Autret <autret_m@epita.fr>
10420
10421 * src/reader.c (parse_dquoted_param): New.
10422 (parse_header_extension_decl): Use it.
10423 (parse_source_extension_decl): Likewise.
10424
10425 2001-08-16 Marc Autret <autret_m@epita.fr>
10426
10427 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
10428 (get_xxxx_str): Use assert () instead of complain ().
10429 Remove return invokations in default cases.
10430 (get_decision_str): Modify default behaviour. Remove second argument.
10431 Echo modifications on calls.
10432 (output_graph): Fix.
10433
10434 2001-08-16 Marc Autret <autret_m@epita.fr>
10435
10436 * src/getargs.c (usage): Update with ``-g, --graph''.
10437
10438 2001-08-16 Marc Autret <autret_m@epita.fr>
10439
10440 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
10441 (Option Cross Key): Likewise.
10442 * doc/bison.1: Update.
10443
104442001-09-25 Pascal Bart <pascal.bart@epita.fr>
10445
10446 * src/output.c (output_master_parser): Don't finish action_obstack.
10447 (output_parser): Don't care about the muscle action, here.
10448 (prepare): Copy the action_obstack in the action muscle.
10449 (output): Free action_obstack.
10450
104512001-09-23 Pascal Bart <pascal.bart@epita.fr>
10452
10453 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
10454 will contain `%union' declaration.
10455 (parse_union_decl): Delete #line directive output.
10456 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
10457 informations about %union.
10458 (parse_union_decl): Copy the union_obstack in the muscle stype.
10459 * src/bison.simple: Add new #line directive.
10460 Add typdef %%stype YYSTYPE.
10461
104622001-09-23 Pascal Bart <pascal.bart@epita.fr>
10463
10464 * src/bison.simple: Add new `#line' directive.
10465
104662001-09-22 Pascal Bart <pascal.bart@epita.fr>
10467
10468 * src/bison.simple: New `#line' directive.
10469 * src/output.c (output_parser): Support new dynamic muscle input_line.
10470
104712001-09-22 Marc Autret <autret_m@epita.fr>
10472
10473 * src/output.c (output_master_parser): New.
10474 (output_parser): Be more re-entrant.
10475
104762001-09-21 Marc Autret <autret_m@epita.fr>
10477
10478 * src/reader.c (copy_definition, parse_union_decl): Update and use
10479 `linef' muscle.
10480 (copy_action): Likewise.
10481 Use obstack_1grow ().
10482 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
10483
104842001-09-21 Marc Autret <autret_m@epita.fr>
10485
10486 * src/options.c (option_table): Adjust.
10487 * src/lex.c (parse_percent_token): Fix.
10488
104892001-09-20 Pascal Bart <pascal.bart@epita.fr>
10490
10491 * src/options.c (symtab.h): Include it, need by lex.h.
10492
104932001-09-20 Pascal Bart <pascal.bart@epita.fr>
10494
10495 * src/lex.c (parse_percent_token): Change type of variable `tx', which
10496 is now an option_table_struct*.
10497 (option_strcmp): New function option_strcmp.
10498 (parse_percent_token): Call option_strcmp.
10499 * src/getargs.c (xalloc.h, options.h): Include it.
10500 (getargs): Call create_long_option_table.
10501 (getargs): Free longopts at the end of the function.
10502 (shortopts): Move in options.c.
10503 * src/options.c (create_long_option_table): New function. Convert
10504 information from option_table to option structure.
10505 * src/reader.c (options.h): Include it.
10506
10507 * src/Makefile.am: Adjust.
10508 * src/options.c (option_table): Create from longopts and percent_table.
10509 * src/getargs.c (longopts): Delete.
10510 * src/lex.c (struct percent_table_struct): Delete.
10511 (percent_table): Delete.
10512 (options.h): Include it.
10513 * src/options.c: Create.
10514 * src/options.h: Create.
10515 Declare enum opt_access_e.
10516 Define struct option_table_struct.
10517
105182001-09-20 Marc Autret <autret_m@epita.fr>
10519
10520 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
10521 sections of Bison.
10522
105232001-09-19 Pascal Bart <pascal.bart@epita.fr>
10524
10525 * src/bison.simple: s/%%filename/%%skeleton.
10526 * src/muscle_tab.c (getargs.h): Include it.
10527 (muscle_init): Insert new muscle skeleton.
10528
105292001-09-18 Pascal Bart <pascal.bart@epita.fr>
10530
10531 * src/output.c (output_parser): Delete unused variable actions_dumped.
10532
105332001-09-07 Pascal Bart <pascal.bart@epita.fr>
10534
10535 * src/output.c (output): Delete call to reader_output_yylsp.
10536 * src/reader.c (reader): Likewise.
10537 * src/reader.h: Delete declaration of reader_output_yylsp.
10538
105392001-09-02 Marc Autret <autret_m@epita.fr>
10540
10541 * src/reader.c: Include muscle_tab.h.
10542 (parse_union_decl): Update.
10543 (parse_macro_decl): Rename parse_muscle_decl.
10544 Update to use renamed functions and variable.
10545 (read_declarations, copy_action, read_additionnal_code, : Updated
10546 with correct variables and functions names.
10547 (packsymbols, reader): Likewise.
10548
10549 * src/reader.h (muscle_obstack): Extern declaration update.
10550
10551 * src/output.c: Include muscle_tab.h
10552 In all functions using macro_insert, change by using muscle_insert ().
10553 (macro_obstack): Rename muscle_obstack.
10554 Echo modifications in the whole file.
10555 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
10556 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
10557 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
10558
10559 * src/muscle_tab.h: Update double inclusion macros.
10560 (macro_entry_s): Rename muscle_entry_s.
10561 Update prototypes.
10562
10563 * src/muscle_tab.c: Include muscle_tab.h.
10564 Rename macro_tabble to muscle_table.
10565 (mhash1, mhash2, mcmp): Use muscle_entry.
10566 (macro_init): Rename muscle_init. Update.
10567 (macro_insert): Rename muscle_insert. Update.
10568 (macro_find): Rename muscle_find. Update.
10569
10570 * src/main.c: Include muscle_tab.h.
10571 (main): Call muscle_init ().
10572 * src/Makefile.am (bison_SOURCES): Echo modifications.
10573
105742001-09-02 Marc Autret <autret_m@epita.fr>
10575
10576 Now the files macro_tab.[ch] are named muscle_tab.[ch].
10577
10578 * src/muscle_tab.c, src/muscle_tab.h: Add files.
10579
105802001-09-02 Marc Autret <autret_m@epita.fr>
10581
10582 * src/macrotab.c, src/macrotab.h: Remove.
10583
105842001-09-01 Pascal Bart <pascal.bart@epita.fr>
10585
10586 * src/reader.c (copy_guard): Use muscle to specify the `#line'
10587 filename.
10588
105892001-09-01 Marc Autret <autret_m@epita.fr>
10590
10591 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
10592 to an explicit value to activate the feature. We do it here.
10593
105942001-08-31 Pascal Bart <pascal.bart@epita.fr>
10595
10596 * src/output.c (prepare): Delete the `filename' muscule insertion.
10597 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
10598 (parse_union_decl): Likewise.
10599 * src/macrotab.c (macro_init): Initialize filename by infile.
10600
106012001-08-31 Marc Autret <autret_m@epita.fr>
10602
10603 * src/bison.simple (YYLSP_NEEDED): New definition.
10604 * src/output.c (prepare): Add macro insertion of `locations_flag'
10605
106062001-08-31 Pascal Bart <pascal.bart@epita.fr>
10607
10608 * src/output.c (prepare): Delete insertion of previous muscles,
10609 and insert the `prefix' muscles.
10610 * src/macrotab.c (macro_init): Likewise.
10611 (macro_init): Initialization prefix directive by `yy'.
10612 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
10613 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
10614 yylval, yydebug, yyerror, yynerrs and yyparse.
10615 New directive `#define' to substitute yydebug, ... with option
10616 name_prefix.
10617
106182001-08-31 Pascal Bart <pascal.bart@epita.fr>
10619
10620 * src/main.c (main): Standardize.
10621 * src/output.c (output_table_data, output_parser): Likewise.
10622 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
10623
106242001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
10625
10626 * src/reader.c (read_additionnal_code): Rename %%user_code to
10627 %%epilogue.
10628 * src/output.c (output): Rename %%declarations to %%prologue.
10629 * src/bison.simple: Echo modifications.
10630
106312001-08-31 Marc Autret <autret_m@epita.fr>
10632
10633 * src/reader.c (readgram): CleanUp.
10634 (output_token_defines): Likewise.
10635 (packsymbols): Likewise.
10636 (reader): Likewise.
10637 * src/output.c (output): CPP-out useless code.
10638
106392001-08-31 Pascal Bart <pascal.bart@epita.fr>
10640
10641 * src/reader.c (reader): Delete obsolete call to function
10642 output_trailers and output_headers.
10643 * src/output.h: Remove obsolete functions prototypes of output_headers
10644 and output_trailers.
10645
106462001-08-30 Pascal Bart <pascal.bart@epita.fr>
10647
10648 * src/main.c: Include macrotab.h.
10649 * src/macrotab.h (macro_entry_s): Constify fields.
10650 Adjust functions prototypes.
10651 * src/macrotab.c (macro_insert): Constify key and value.
10652 (macro_find): Constify key.
10653 (macro_insert): Include 'xalloc.h'
10654 (macro_insert): Use XMALLOC.
10655 (macro_find): Constify return value.
10656 * src/output.c (output_table_data): Rename table to table_data.
10657 (output_parser): Constify macro_key, macro_value.
10658
106592001-08-30 Marc Autret <autret_m@epita.fr>
10660
10661 * src/reader.c (parse_skel_decl): New.
10662 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
10663 * src/lex.h (token_t): New token `tok_skel'.
10664 * src/lex.c (percent_table): Add skeleton option entry.
10665 Standardize.
10666
106672001-08-29 Marc Autret <autret_m@epita.fr>
10668
10669 * src/bison.simple: Add %%user_code directive at the end.
10670 * src/reader.c (read_additionnal_code): New.
10671 (reader): Use it.
10672 * src/output.c (output_program): Remove.
10673 (output): Update.
10674
106752001-08-28 Marc Autret <autret_m@epita.fr>
10676
10677 * src/output.c (output_actions): Clean up.
10678 (output_gram): CPP-out useless code.
10679 * src/reader.c (reader): Clean up, CPP-out useless code.
10680
106812001-08-28 Pascal Bart <pascal.bart@epita.fr>
10682
10683 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
10684 directive.
10685 * src/bison.simple: Add `%%definitions'.
10686
106872001-08-28 Marc Autret <autret_m@epita.fr>
10688
10689 * config/depcomp: New file.
10690
106912001-08-27 Paul Eggert <eggert@twinsun.com>
10692
10693 * src/bison.simple (yyparse): Don't take the address of an
10694 item before the start of an array, as that doesn't conform to
10695 the C Standard.
10696
106972001-08-27 Robert Anisko <robert.anisko@epita.fr>
10698
10699 * src/output.c (output): Remove the initialization of the macro
10700 obstack. It was done too late here.
10701
10702 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
10703 completely wrong.
10704 (reader): Initialize the macro obstack here, since we need it to grow
10705 '%define' directives.
10706
10707 * src/reader.h: Declare the macro obstack as extern.
10708
107092001-08-27 Robert Anisko <robert.anisko@epita.fr>
10710
10711 * src/output.c (output_parser): Fix. Store single '%' characters in
10712 the output obstack instead of throwing them away.
10713
107142001-08-27 Akim Demaille <akim@epita.fr>
10715
10716 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
10717
107182001-08-25 Robert Anisko <robert.anisko@epita.fr>
10719
10720 * lib/Makefile.am: Adjust.
10721
107222001-08-25 Robert Anisko <robert.anisko@epita.fr>
10723
10724 * src/bison.simple: Update and add '%%' directives.
10725
107262001-08-25 Robert Anisko <robert.anisko@epita.fr>
10727
10728 * src/reader.c (reader): Remove calls to 'output_headers' and
10729 'output_trailers'. Remove some C output.
10730 (readgram): Disable a piece of code that was writing a default
10731 definition for 'YYSTYPE'.
10732 (reader_output_yylsp): Remove.
10733 (packsymbols): Output token defintions to a macro.
10734 (copy_definition): Disable C output.
10735
10736 * src/reader.c (parse_macro_decl): New function used to parse macro
10737 declarations.
10738 (copy_string2): Put the body of copy_string into this new function.
10739 Add a parameter to let the caller choose whether he wants to copy the
10740 string delimiters or not.
10741 (copy_string): Be a simple call to copy_string2 with the last argument
10742 bound to true.
10743 (read_declarations): Add case for macro definition.
10744 (copy_identifier): New.
10745 (parse_macro_decl): Read macro identifiers using copy_identifier
10746 rather than lex.
10747
107482001-08-25 Robert Anisko <robert.anisko@epita.fr>
10749
10750 * src/output.c (prepare): Add prefixed names.
10751 (output_parser): Output semantic actions.
10752 (output_parser): Fix bug on '%%line' directives.
10753
10754 * src/output.c (output_headers): Remove. The C code printed by this
10755 function should now be in the skeletons.
10756 (output_trailers): Remove.
10757 (output): Disable call to 'reader_output_yylsp'.
10758 (output_rule_data): Do not output tables to the table obstack.
10759
10760 * src/output.c: Remove some C dedicated output.
10761 Improve the use of macro and output obstacks.
10762 (output_defines): Remove.
10763
10764 * src/output.c (output_token_translations): Associate 'translate'
10765 table with a macro. No output to the table obstack.
10766 (output_gram): Same for 'rhs' and 'prhs'.
10767 (output_stos): Same for 'stos'.
10768 (output_rule_data): Same for 'r1' and 'r2'.
10769 (token_actions): Same for 'defact'.
10770 (goto_actions): Same for 'defgoto'.
10771 (output_base): Same for 'pact' and 'pgoto'.
10772 (output_table): Same for 'table'.
10773 (output_check): Same for 'check'.
10774
10775 * src/output.c (output_table_data): New function.
10776 (output_short_table): Remove.
10777 (output_short_or_char_table): Remove.
10778
10779 * src/output.c (output_parser): Replace most of the skeleton copy code
10780 with something new. Skeletons are now processed character by character
10781 rather than line by line, and Bison looks for '%%' macros. This is the
10782 first step in making Bison's output process (a lot) more flexible.
10783 (output_parser): Use the macro table.
10784
107852001-08-25 Robert Anisko <robert.anisko@epita.fr>
10786
10787 * src/main.c (main): Initialize the macro table.
10788
107892001-08-25 Robert Anisko <robert.anisko@epita.fr>
10790
10791 * src/lex.c (percent_table): Add tok_define.
10792 * src/lex.h: Add tok_define.
10793
107942001-08-25 Robert Anisko <robert.anisko@epita.fr>
10795
10796 * src/macrotab.c: New file.
10797 * src/macrotab.h: New file.
10798 * src/Makefile.am: Update.
10799
108002001-08-25 Robert Anisko <robert.anisko@epita.fr>
10801
10802 * lib/hash.c: New file.
10803 * lib/hash.h: New file.
10804 * lib/Makefile.am: Update.
10805
108062001-08-15 Akim Demaille <akim@epita.fr>
10807
10808 Version 1.28c.
10809
108102001-08-15 Marc Autret <autret_m@epita.fr>
10811
10812 * src/reader.c (readgram): Indent output macro YYSTYPE.
10813 (packsymbols): Likewise.
10814 (output_token_defines): Likewise.
10815 * src/files.c: Standardize.
10816 (compute_header_macro): New.
10817 (defines_obstack_save): New. Use compute_header_macro.
10818 (output_files): Update. Use defines_obstack_save.
10819
108202001-08-15 Akim Demaille <akim@epita.fr>
10821
10822 * doc/bison.texinfo (Table of Symbols): Document
10823 YYSTACK_USE_ALLOCA.
10824
108252001-08-15 Akim Demaille <akim@epita.fr>
10826
10827 * missing: Update from CVS Automake.
10828 * config/config.guess, config/config.sub, config/texinfo.tex:
10829 Update from gnu.org.
10830
108312001-08-15 Akim Demaille <akim@epita.fr>
10832
10833 * Makefile.maint: Sync with CVS Autoconf.
10834
108352001-08-14 Pascal Bart <pascal.bart@epita.fr>
10836
10837 * doc/bison.texinfo: Include GNU Free Documentation License from
10838 `fdl.texi'.
10839 * doc/fdl.texi: Add to package.
10840
108412001-08-14 Marc Autret <autret_m@epita.fr>
10842
10843 Turn on %{source,header}_extension features.
10844
10845 * src/lex.c (percent_table): Un-CPP out header_extension and
10846 source_extension.
10847 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
10848 (compute_exts_from_src): Remove conditions. It restores priorities
10849 between options.
10850
108512001-08-14 Marc Autret <autret_m@epita.fr>
10852
10853 * src/files.c (compute_base_names): Add extensions computing when
10854 `--file-prefix' used.
10855 Standardize function calls.
10856
108572001-08-13 Marc Autret <autret_m@epita.fr>
10858
10859 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
10860 defining it (defined but null disables alloca).
10861
108622001-08-13 Marc Autret <autret_m@epita.fr>
10863
10864 * src/bison.simple (_yy_memcpy): CPP reformat.
10865
108662001-08-13 Pascal Bart <pascal.bart@epita.fr>
10867
10868 * tests/atconfig.in (CPPFLAGS): Fix.
10869
108702001-08-10 Pascal Bart <pascal.bart@epita.fr>
10871
10872 * doc/bison.texinfo: Include GNU General Public License from
10873 `gpl.texi'.
10874 * doc/gpl.texi: Add to package.
10875
108762001-08-10 Marc Autret <autret_m@epita.fr>
10877
10878 * src/print_graph.h: Fix.
10879 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
10880
108812001-08-10 Akim Demaille <akim@epita.fr>
10882
10883 * src/system.h: Provide default declarations for stpcpy, strndup,
10884 and strnlen.
10885
108862001-08-10 Robert Anisko <anisko_r@epita.fr>
10887
10888 * doc/bison.texinfo (Locations): Update @$ stuff.
10889
108902001-08-09 Robert Anisko <anisko_r@epita.fr>
10891
10892 * src/bison.simple (YYLLOC_DEFAULT): Update.
10893 (yyparse): Adjust.
10894
108952001-08-08 Marc Autret <autret_m@epita.fr>
10896
10897 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
10898 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
10899 Reported by Fabrice Bauzac.
10900
109012001-08-08 Marc Autret <autret_m@epita.fr>
10902
10903 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
10904 * src/vcg.c (output_node): Fix.
10905 * src/vcg.h: Cleanup.
10906 * src/print_graph.c: Add comments.
10907 (node_output_size): New global variable. Simplify the formatting of
10908 the VCG graph output.
10909 (print_actions): Unused code is now used. It notifies the final state
10910 and no action states in the VCG graph. It also give the reduce actions.
10911 The `shift and goto' edges are red and the `go to state' edges are
10912 blue.
10913 Get the current node name and node_obstack by argument.
10914 (node_obstack): New variable.
10915 (print_state): Manage node_obstack.
10916 (print_core): Use node_obstack given by argument.
10917 A node is not only computed here but in print_actions also.
10918 (print_graph): CPP out useless code instead of commenting it.
10919
109202001-08-07 Pascal Bart <pascal.bart@epita.fr>
10921
10922 * tests/atconfig.in (CPPFLAGS): Fix.
10923
109242001-08-07 Akim Demaille <akim@epita.fr>
10925
10926 * src/print_graph.c (quote): New.
10927 (print_core): Use it.
10928
109292001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
10930
10931 * src/vcg.c (complain.h): Include it.
10932 Unepitaize `return' invocations.
10933 [NDEBUG] (main): Remove.
10934 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
10935 * src/files.c (open_files): Initialize graph_obstack.
10936 * src/print_graph.c (print_actions): CPP out useless code.
10937 (print_core): Don't output the last `\n' in labels.
10938 Use `quote'.
10939 * src/files.c (output_files): Output the VCG file.
10940 * src/main.c (main): Invoke print_graph ();
10941
109422001-08-06 Marc Autret <autret_m@epita.fr>
10943
10944 Automaton VCG graph output.
10945 Using option ``-g'' or long option ``--graph'', you can generate
10946 a gram_filename.vcg file containing a VCG description of the LALR (1)
10947 automaton of your grammar.
10948
10949 * src/main.c: Call to print_graph() function.
10950 * src/getargs.h: Update.
10951 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
10952 (graph_flag): New flag.
10953 (longopts): Update.
10954 (getargs): Add case `g'.
10955 * src/files.c (graph_obstack): New obstack struct.
10956 (open_files): Initialize new obstack.
10957 (output_files): Saves graph_obstack if required.
10958 * src/files.h (graph_obstack): New extern declaration.
10959 * src/Makefile.am: Add new source files.
10960
109612001-08-06 Marc Autret <autret_m@epita.fr>
10962
10963 * src/print_graph.c, src/print_graph.h (graph): New.
10964 * src/vcg.h: New file.
10965 * src/vcg.c: New file, VCG graph handling.
10966
109672001-08-06 Marc Autret <autret_m@epita.fr>
10968
10969 Add of %source_extension and %header_extension which specify
10970 the source or/and the header output file extension.
10971
10972 * src/files.c (compute_base_names): Remove initialisation of
10973 src_extension and header_extension.
10974 (compute_exts_from_gf): Update.
10975 (compute_exts_from_src): Update.
10976 (output_files): Update.
10977 * src/reader.c (parse_header_extension_decl): New.
10978 (parse_source_extension_decl): New.
10979 (read_declarations): New case statements for the new tokens.
10980 * src/lex.c (percent_table): Add entries for %source_extension
10981 and %header_extension.
10982 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
10983
109842001-08-06 Marc Autret <autret_m@epita.fr>
10985
10986 * configure.in: Bump to 1.28c.
10987 * doc/bison.texinfo: Texinfo thingies.
10988
109892001-08-04 Pascal Bart <pascal.bart@epita.fr>
10990
10991 * tests/atconfig.in (CPPFLAGS): Add.
10992 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
10993
109942001-08-03 Akim Demaille <akim@epita.fr>
10995
10996 Version 1.28b.
10997
109982001-08-03 Akim Demaille <akim@epita.fr>
10999
11000 * tests/Makefile.am (check-local): Ship testsuite.
11001 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
11002 Include `string.h'.
11003
110042001-08-03 Akim Demaille <akim@epita.fr>
11005
11006 * configure.in: Try using -Wformat when compiling.
11007
110082001-08-03 Akim Demaille <akim@epita.fr>
11009
11010 * configure.in: Bump to 1.28b.
11011
110122001-08-03 Akim Demaille <akim@epita.fr>
11013
11014 * src/complain.c: Adjust strerror_r portability issues.
11015
110162001-08-03 Akim Demaille <akim@epita.fr>
11017
11018 Version 1.28a.
11019
110202001-08-03 Akim Demaille <akim@epita.fr>
11021
11022 * src/getargs.c, src/getarg.h (skeleton)): Constify.
11023 * src/lex.c (literalchar): Avoid name clashes on `buf'.
11024 * src/getargs.c: Include complain.h.
11025 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
11026 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
11027
110282001-08-03 Akim Demaille <akim@epita.fr>
11029
11030 * src/reader.c (readgram): Display hidden chars in error messages.
11031
110322001-08-03 Akim Demaille <akim@epita.fr>
11033
11034 Update to gettext 0.10.39.
11035
110362001-08-03 Akim Demaille <akim@epita.fr>
11037
11038 * lib/strspn.c: New.
11039
110402001-08-01 Marc Autret <autret_m@epita.fr>
11041
11042 * doc/bison.texinfo: Update.
11043 * doc/bison.1 (mandoc): Update.
11044 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
11045 * src/files.c: Support output files extensions computing.
11046 (src_extension): New static variable.
11047 (header_extension): New static variable.
11048 (tr): New function.
11049 (get_extension_index): New function, gets the index of an extension
11050 filename in a string.
11051 (compute_exts_from_gf): New function, computes extensions from the
11052 grammar file extension.
11053 (compute_exts_from_src): New functions, computes extensions from the
11054 C source file extension, file given by ``-o'' option.
11055 (compute_base_names): Update.
11056 (output_files): Update.
11057
110582001-08-01 Robert Anisko <anisko_r@epita.fr>
11059
11060 * doc/bison.texi: Document @$.
11061 (Locations): New section.
11062
110632001-07-18 Akim Demaille <akim@epita.fr>
11064
11065 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
11066 * config/prev-version.txt, config/move-if-change: New.
11067 * Makefile.am: Adjust.
11068
110692001-07-08 Pascal Bart <pascal.bart@epita.fr>
11070
11071 * src/bison.simple (yyparse): Suppress warning `comparaison
11072 between signed and unsigned'.
11073
110742001-07-05 Pascal Bart <pascal.bart@epita.fr>
11075
11076 * src/getargs.h (raw_flag): Remove.
11077 * src/getargs.c: Die on `-r'/`--raw'.
11078 * src/lex.c (parse_percent_token): Die on `%raw'.
11079 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
11080 * tests/calc.at: Suppress test with option `--raw'.
11081
110822001-07-14 Akim Demaille <akim@epita.fr>
11083
11084 * config/: New.
11085 * configure.in: Require Autoconf 2.50.
11086 Update to gettext 0.10.38.
11087
110882001-03-16 Akim Demaille <akim@epita.fr>
11089
11090 * doc/bison.texinfo: ANSIfy the examples.
11091
110922001-03-16 Akim Demaille <akim@epita.fr>
11093
11094 * getargs.c (skeleton): New variable.
11095 (longopts): --skeleton is a new option.
11096 (shortopts, getargs): -S is a new option.
11097 * getargs.h: Declare skeleton.
11098 * output.c (output_parser): Use it.
11099
111002001-03-16 Akim Demaille <akim@epita.fr>
11101
11102 * m4/strerror_r.m4: New.
11103 * m4/error.m4: Run AC_FUNC_STRERROR_R.
11104 * lib/error.h, lib/error.c: Update.
11105
111062001-03-16 Akim Demaille <akim@epita.fr>
11107
11108 * src/getargs.c (longopts): Clean up.
11109
111102001-02-21 Akim Demaille <akim@epita.fr>
11111
11112 * src/reader.c (gensym): `gensym_count' is your own.
11113 Use a static buf to create the symbol name, as token_buffer is no
11114 longer a buffer.
11115
111162001-02-08 Akim Demaille <akim@epita.fr>
11117
11118 * src/conflicts.c (conflict_report): Be sure not to append to res
11119 between two calls, which could happen if both first sprintf were
11120 skipped, but not the first cp += strlen.
11121
111222001-02-08 Akim Demaille <akim@epita.fr>
11123
11124 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
11125 New, from fileutils 4.0.37.
11126 * configure.in: Require Autoconf 2.49c. I took some time before
11127 making this decision. This is the only way out for portability
11128 issues in Bison, it would mean way too much duplicate effort to
11129 import in Bison features implemented in 2.49c since 2.13.
11130 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
11131
111322001-02-02 Akim Demaille <akim@epita.fr>
11133
11134 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
11135 * lib/xalloc.h, lib/xmalloc.c: Update.
11136
111372001-01-19 Akim Demaille <akim@epita.fr>
11138
11139 Get rid of the ad hoc handling of token_buffer in the scanner: use
11140 the obstacks.
11141
11142 * src/lex.c (token_obstack): New.
11143 (init_lex): Initialize it. No longer call...
11144 (grow_token_buffer): this. Remove it.
11145 Adjust all the places which used it to use the obstack.
11146
111472001-01-19 Akim Demaille <akim@epita.fr>
11148
11149 * src/lex.h: Rename all the tokens:
11150 s/\bENDFILE\b/tok_eof/g;
11151 s/\bIDENTIFIER\b/tok_identifier/g;
11152 etc.
11153 Let them be enums, not #define, to ease debugging.
11154 Adjust all the code.
11155
111562001-01-18 Akim Demaille <akim@epita.fr>
11157
11158 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
11159 * src/lex.c (maxtoken, grow_token_buffer): Static.
11160
111612001-01-18 Akim Demaille <akim@epita.fr>
11162
11163 Since we now use obstacks, more % directives can be enabled.
11164
11165 * src/lex.c (percent_table): Also accept `%yacc',
11166 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
11167 `%debug'.
11168 Handle the actions for `%semantic_parser' and `%pure_parser' here,
11169 instead of returning a token.
11170 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
11171 * src/reader.c (read_declarations): Adjust.
11172 * src/files.c (open_files): Don't call `compute_base_names', don't
11173 compute `attrsfile' since they depend upon data which might be
11174 *in* the input file now.
11175 (output_files): Do it here.
11176 * src/output.c (output_headers): Document the fact that this patch
11177 introduces a guaranteed SEGV for semantic parsers.
11178 * doc/bison.texinfo: Document them.
11179 * tests/suite.at: Exercise these %options.
11180
111812000-12-20 Akim Demaille <akim@epita.fr>
11182
11183 Also handle the output file (--verbose) with obstacks.
11184
11185 * files.c (foutput): Remove.
11186 (output_obstack): New.
11187 Adjust all dependencies.
11188 * src/conflicts.c: Return a string.
11189 * src/system.h (obstack_grow_string): Rename as...
11190 (obstack_sgrow): this. Be ready to work with non literals.
11191 (obstack_fgrow4): New.
11192
111932000-12-20 Akim Demaille <akim@epita.fr>
11194
11195 * src/files.c (open_files): Fix the computation of short_base_name
11196 in the case of `-o foo.tab.c'.
11197
111982000-12-20 Akim Demaille <akim@epita.fr>
11199
11200 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
11201 (copy_dollar): Now that everything uses obstacks, get rid of the
11202 FILE * parameters.
11203
112042000-12-20 Akim Demaille <akim@epita.fr>
11205
11206 * src/files.c (open_files): Actually the `.output' file is based
11207 on the short_base_name, not base_name.
11208 * tests/suite.at (Checking output file names): Adjust.
11209
112102000-12-20 Akim Demaille <akim@epita.fr>
11211
11212 * src/bison.s1: Remove, we now use directly...
11213 * src/bison.simple: this.
11214 * src/Makefile.am: Use pkgdata instead of data.
11215
112162000-12-20 Akim Demaille <akim@epita.fr>
11217
11218 * src/files.c (guard_obstack): New.
11219 (open_files): Initialize it.
11220 (output_files): Dump it...
11221 * src/files.h: Export it.
11222 * src/reader.c (copy_guard): Use it.
11223
112242000-12-19 Akim Demaille <akim@epita.fr>
11225
11226 * src/files.c (outfile, defsfile, actfile): Removed as global
11227 vars.
11228 (open_files): Don't compute them.
11229 (output_files): Adjust.
11230 (base_name, short_base_name): Be global.
11231 Adjust dependencies.
11232
112332000-12-19 Akim Demaille <akim@epita.fr>
11234
11235 * src/files.c (strsuffix): New.
11236 (stringappend): Be just like strcat but allocate.
11237 (base_names): Eve out from open_files.
11238 Try to simplify the rather hairy computation of base_name and
11239 short_base_name.
11240 (open_files): Use it.
11241 * tests/suite.at (Checking output file names): New test.
11242
112432000-12-19 Akim Demaille <akim@epita.fr>
11244
11245 * src/system.h (obstack_grow_literal_string): Rename as...
11246 (obstack_grow_string): this.
11247 * src/output.c (output_parser): Recognize `%% actions' instead of
11248 `$'.
11249 * src/bison.s1: s/$/%% actions/.
11250 * src/bison.hairy: Likewise.
11251
112522000-12-19 Akim Demaille <akim@epita.fr>
11253
11254 * src/output.c (output_parser): Compute the `#line' lines when
11255 there are.
11256 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
11257 Suggested by Hans Aberg.
11258
112592000-12-19 Akim Demaille <akim@epita.fr>
11260
11261 Let the handling of the skeleton files be local to the procedures
11262 that use it.
11263
11264 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
11265 longer static.
11266 (fparser, open_extra_files): Remove.
11267 (open_files, output_files): Don't take care of fparser.
11268 * src/files.h: Adjust.
11269 * src/output.c (output_parser): Open and close the file to the
11270 skeleton.
11271 * src/reader.c (read_declarations): When %semantic_parser, open
11272 fguard.
11273
112742000-12-19 Akim Demaille <akim@epita.fr>
11275
11276 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
11277 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
11278
112792000-12-19 Akim Demaille <akim@epita.fr>
11280
11281 * src/files.c (open_files): Yipee! We no longer need all the code
11282 looking for `/tmp' since we have no tmp file.
11283
112842000-12-19 Akim Demaille <akim@epita.fr>
11285
11286 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
11287 New macros.
11288 * src/files.c (open_files): Less dependency on MSDOS etc.
11289
112902000-12-14 Akim Demaille <akim@epita.fr>
11291
11292 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
11293 Provide a default definition.
11294 Use it when executing the default @ action.
11295 * src/reader.c (reader_output_yylsp): No longer include
11296 `timestamp' and `text' in the default YYLTYPE.
11297
112982000-12-12 Akim Demaille <akim@epita.fr>
11299
11300 * src/reader.c (copy_definition, parse_union_decl, copy_action)
11301 (copy_guard): Quote the file names.
11302 Reported by Laurent Mascherpa.
11303
113042000-12-12 Akim Demaille <akim@epita.fr>
11305
11306 * src/output.c (output_headers, output_program, output): Be sure
11307 to escape special characters when outputting filenames.
11308 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
11309 (output_headers): Don't depend on them, Use ACTSTR.
11310
113112000-11-17 Akim Demaille <akim@epita.fr>
11312
11313 * lib/obstack.h: Formatting changes.
11314 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
11315 prevents type checking.
11316 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
11317 cast the value to (void *): assigning a `foo *' to a `void *'
11318 variable is valid.
11319 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
11320 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
11321 append characters.
11322
113232000-11-17 Akim Demaille <akim@epita.fr>
11324
11325 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
11326 as...
11327 (suite.m4, regression.m4, calc.m4): these.
11328 * tests/atgeneral.m4: Update from CVS Autoconf.
11329
113302000-11-17 Akim Demaille <akim@epita.fr>
11331
11332 * tests/regression.m4 (%union and --defines): New test,
11333 demonstrating a current bug in the obstack implementation.
11334
113352000-11-17 Akim Demaille <akim@epita.fr>
11336
11337 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
11338 macros.
11339 Use them to declare the variables which are global or local to
11340 `yyparse'.
11341
113422000-11-17 Akim Demaille <akim@epita.fr>
11343
11344 * acconfig.h: Remove, no longer used.
11345
113462000-11-07 Akim Demaille <akim@epita.fr>
11347
11348 * src: s/Copyright (C)/Copyright/g.
11349
113502000-11-07 Akim Demaille <akim@epita.fr>
11351
11352 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
11353 defining.
11354 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
11355
113562000-11-07 Akim Demaille <akim@epita.fr>
11357
11358 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
11359 Merge in a single CPP if/else.
11360
113612000-11-07 Akim Demaille <akim@epita.fr>
11362
11363 * src/output.c (output): Remove useless variables.
11364 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
11365 argument `data' for consistency with the prototypes.
11366 Qualify it `const'.
11367 (obstack_copy, obstack_copy0): Rename the second argument as
11368 `address' for consistency. Qualify it `const'.
11369 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
11370 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
11371 `const' their input argument (`data' or `address').
11372 Adjust the corresponding macros to include `const' in casts.
11373
113742000-11-03 Akim Demaille <akim@epita.fr>
11375
11376 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
11377 s/PFILE1/BISON_HAIRY/.
11378 Adjust dependencies.
11379
113802000-11-03 Akim Demaille <akim@epita.fr>
11381
11382 For some reason, this was not applied.
11383
11384 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
11385 `unlink': it's no longer used.
11386
113872000-11-03 Akim Demaille <akim@epita.fr>
11388
11389 * src/files.c (skeleton_find): New function, eved out of...
11390 (open_files, open_extra_files): here.
11391
113922000-11-03 Akim Demaille <akim@epita.fr>
11393
11394 Don't use `atexit'.
11395
11396 * src/files.c (obstack_save): New function.
11397 (done): Rename as...
11398 (output_files): this.
11399 Use `obstack_save'.
11400 * src/main.c (main): Don't use `atexit' to register `done', since
11401 it no longer has to remove tmp files, just call `output_files'
11402 when there are no errors.
11403
114042000-11-02 Akim Demaille <akim@epita.fr>
11405
11406 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
11407 `unlink': it's no longer used.
11408 * src/files.h: Formatting changes.
11409
114102000-11-02 Akim Demaille <akim@epita.fr>
11411
11412 Remove the last uses of mktemp and unlink/delete.
11413
11414 * src/files.c (fdefines, ftable): Removed.
11415 (defines_ostack, table_obstack): New.
11416 Adjust dependencies of the former into uses of the latter.
11417 * src/output.c (output_short_or_char_table, output_short_table):
11418 Convert to using obstacks.
11419 * src/reader.c (copy_comment2): Accept one FILE * and two
11420 obstacks.
11421 (output_token_defines, reader_output_yylsp): Use obstacks.
11422 * src/system.h (obstack_fgrow3): New.
11423 * po/POTFILES.in: Adjust.
11424
114252000-11-01 Akim Demaille <akim@epita.fr>
11426
11427 Change each use of `fattrs' into a use of `attrs_obstack'.
11428
11429 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
11430 * src/files.c (fattrs): Remove.
11431 (attrs_obstack): New.
11432 Adjust all dependencies.
11433 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
11434
114352000-11-01 Akim Demaille <akim@epita.fr>
11436
11437 Introduce obstacks.
11438 Change each use of `faction' into a use of `action_obstack'.
11439
11440 * lib/obstack.h, lib/obstack.c: New files.
11441 * src/files.c (faction): Remove.
11442 (action_obstack): New.
11443 Adjust all dependencies.
11444
114452000-10-20 Akim Demaille <akim@epita.fr>
11446
11447 * lib/quote.h (PARAMS): New macro. Use it.
11448
114492000-10-16 Akim Demaille <akim@epita.fr>
11450
11451 * src/output.c (output_short_or_char_table): New function.
11452 (output_short_table, output_token_translations): Use it.
11453 (goto_actions): Use output_short_table.
11454
114552000-10-16 Akim Demaille <akim@epita.fr>
11456
11457 * src/symtab.c (bucket_new): New function.
11458 (getsym): Use it.
11459
11460 * src/output.c (output_short_table): New argument to display the
11461 comment associated with the table.
11462 Adjust dependencies.
11463 (output_gram): Use it.
11464 (output_rule_data): Nicer output layout for YYTNAME.
11465
114662000-10-16 Akim Demaille <akim@epita.fr>
11467
11468 * src/lex.c (read_typename): New function.
11469 (lex): Use it.
11470 * src/reader.c (copy_dollar): Likewise.
11471
114722000-10-16 Akim Demaille <akim@epita.fr>
11473
11474 * src/reader.c (copy_comment2): Expect the input stream to be on
11475 the `/' which is suspected to open a comment, instead of being
11476 called after `//' or `/*' was read.
11477 (copy_comment, copy_definition, parse_union_decl, copy_action)
11478 (copy_guard): Adjust.
11479
114802000-10-16 Akim Demaille <akim@epita.fr>
11481
11482 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
11483 `read_signed_integer'.
11484
114852000-10-16 Akim Demaille <akim@epita.fr>
11486
11487 * src/reader.c (copy_dollar): New function.
11488 (copy_guard, copy_action): Use it.
11489
114902000-10-16 Akim Demaille <akim@epita.fr>
11491
11492 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
11493 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
11494 New files, from Fileutils 4.0.27.
11495 * src/main.c (printable_version): Remove.
11496 * src/lex.c, src/reader.c: Use `quote'.
11497
114982000-10-04 Akim Demaille <akim@epita.fr>
11499
11500 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
11501
115022000-10-04 Akim Demaille <akim@epita.fr>
11503
11504 * doc/bison.texinfo: Various typos spotted by Neil Booth.
11505
115062000-10-04 Akim Demaille <akim@epita.fr>
11507
11508 When a literal string is used to define two different tokens,
11509 `bison -v' segfaults.
11510 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
11511
11512 * tests/regression.m4: New file.
11513 Include the core of the sample provided by Piotr Gackiewicz.
11514 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
11515 properly.
11516
115172000-10-04 Akim Demaille <akim@epita.fr>
11518
11519 * src/reader.c (parse_expect_decl): Keep `count' within the size
11520 of `buffer'.
11521 From Neil Booth.
11522
115232000-10-02 Paul Eggert <eggert@twinsun.com>
11524
11525 * bison.s1 (yyparse): Assign the default value
11526 unconditionally, to avoid a GCC warning and make the parser a
11527 tad smaller.
11528
115292000-10-02 Akim Demaille <akim@epita.fr>
11530
11531 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
11532 options.
11533
115342000-10-02 Akim Demaille <akim@epita.fr>
11535
11536 * src/derives.c, src/print.c, src/reduce.c: To ease the
11537 translation, move some `\n' out of the translated strings.
11538
115392000-10-02 Akim Demaille <akim@epita.fr>
11540
11541 The location tracking mechanism is precious for parse error
11542 messages. Nevertheless, it is enabled only when `@n' is used in
11543 the grammar, which is a different issue (you can use it in error
11544 message, but not in the grammar per se). Therefore, there should
11545 be another means to enable it.
11546
11547 * src/getargs.c (getargs): Support `--locations'.
11548 (usage): Report it.
11549 * src/getargs.h (locationsflag): Export it.
11550 * src/lex.c (percent_table): Support `%locations'.
11551 * src/reader.c (yylsp_needed): Remove this variable, now replaced
11552 with `locationsflag'.
11553 * doc/bison.texinfo: Document `--locations' and `%locations'.
11554 Sort the options.
11555 * tests/calc.m4: Test it.
11556
11557 For regularity of the names, replace each
11558 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
11559 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
11560 In addition replace each `flag' with `_flag'.
11561
115622000-10-02 Akim Demaille <akim@epita.fr>
11563
11564 Also test parse error messages, including with YYERROR_VERBOSE.
11565
11566 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
11567 associative).
11568 Use it to check the computations.
11569 Use it to check `nonassoc' is honored.
11570 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
11571 `--yyerror-verbose'.
11572 (_AT_CHECK_CALC): Adjust to this option.
11573 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
11574
115752000-10-02 Akim Demaille <akim@epita.fr>
11576
11577 Test also `--verbose', `--defines' and `--name-prefix'. Testing
11578 the latter demonstrates a flaw in the handling of non debugging
11579 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
11580 was used in order to simplify:
11581
11582 #if YYDEBUG
11583 if (yydebug)
11584 {
11585 ...
11586 }
11587 #endif
11588
11589 into
11590
11591 if (yydebug)
11592 {
11593 ...
11594 }
11595
11596 unfortunately this leads to a CPP conflict when
11597 `--name-prefix=foo' is used since it produces `#define yydebug
11598 foodebug'.
11599
11600 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
11601 (YYDPRINTF): New macro.
11602 Spread its use.
11603 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
11604 the bison options.
11605 Also test `--verbose', `--defines' and `--name-prefix'.
11606
116072000-10-02 Akim Demaille <akim@epita.fr>
11608
11609 Improve the readability of the produced parsers.
11610
11611 * src/bison.s1: Formatting changes.
11612 Improve the comment related to the `$' mark.
11613 (yydefault): Don't fall through to `yyresume': `goto' there.
11614 * src/output.c (output_parser): When the `$' is met, skip the end
11615 of its line.
11616 New variable, `number_of_dollar_signs', to check there's exactly
11617 one `$' in the parser skeleton.
11618
116192000-10-02 Akim Demaille <akim@epita.fr>
11620
11621 * lib/xstrdup.c: New file, from the fileutils.
11622 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
11623 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
11624 instead of strlen + xmalloc + strcpy.
11625 * src/symtab.c (copys): Remove, use xstrdup instead.
11626
116272000-10-02 Akim Demaille <akim@epita.fr>
11628
11629 * src/gram.h (associativity): New enum type which replaces the
11630 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
11631 `right_assoc', `left_assoc' and `non_assoc'.
11632 Adjust all dependencies.
11633 * src/reader.c: Formatting changes.
11634 (LTYPESTR): Don't define it, use it as a literal in
11635 `reader_output_yylsp'.
11636 * src/symtab.h (symbol_class): New enum type which replaces the
11637 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
11638 `sunknown', `stoken and `snterm'.
11639
116402000-10-02 Akim Demaille <akim@epita.fr>
11641
11642 * src/getargs.c (fixed_outfiles): Rename as...
11643 (yaccflag): for consistency and accuracy.
11644 Adjust dependencies.
11645
116462000-10-02 Akim Demaille <akim@epita.fr>
11647
11648 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
11649 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
11650 difficult and introduced a lot of core dump. It turns out that
11651 Bison used an implementation of `xmalloc' based on `calloc', and
11652 at various places it does depend upon the initialization to 0. I
11653 have not tried to isolate the pertinent places, and all the former
11654 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
11655 someone should address this issue.
11656
11657 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
11658 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
11659 files.
11660 Adjust dependencies.
11661 * src/warshall.h: New file.
11662 Propagate.
11663
116642000-10-02 Akim Demaille <akim@epita.fr>
11665
11666 Various anti-`extern in *.c' changes.
11667
11668 * src/system.h: Include `assert.h'.
11669
116702000-10-02 Akim Demaille <akim@epita.fr>
11671
11672 * src/state.h (nstates, final_state, first_state, first_shift)
11673 (first_reduction): Move their exportation from here...
11674 * src/LR0.h: to here.
11675 Adjust dependencies.
11676 * src/getargs.c (statisticsflag): New variable.
11677 Add support for `--statistics'.
11678 Adjust dependencies.
11679
11680 Remove a lot of now useless `extern' statements in most files.
11681
116822000-10-02 Akim Demaille <akim@epita.fr>
11683
11684 * src/LR0.h: New file.
11685 Propagate its use.
11686
116872000-10-02 Akim Demaille <akim@epita.fr>
11688
11689 * src/print.h: New file.
11690 Propagate its use.
11691 * src/print.c: Formatting and ordering changes.
11692 (verbose, terse): Replace with...
11693 (print_results): this new function.
11694 Adjust dependencies.
11695
116962000-10-02 Akim Demaille <akim@epita.fr>
11697
11698 * src/conflicts.c (conflict_report): New function.
11699 (conflict_log, verbose_conflict_log): Replace with...
11700 (print_conflicts): this function.
11701 Adjust dependencies.
11702 * src/conflicts.h: New file.
11703 Propagate its inclusion.
11704
117052000-10-02 Akim Demaille <akim@epita.fr>
11706
11707 * src/nullable.h: New file.
11708 Propagate its inclusion.
11709 * src/nullable.c: Formatting changes.
11710
117112000-10-02 Akim Demaille <akim@epita.fr>
11712
11713 * src/reduce.h: New file.
11714 Propagate its inclusion.
11715 * src/reduce.c: Topological sort and other formatting changes.
11716 (bool, TRUE, FALSE): Move their definition to...
11717 * src/system.h: here.
11718
117192000-10-02 Akim Demaille <akim@epita.fr>
11720
11721 * src/files.c: Formatting changes.
11722 (tryopen, tryclose, openfiles): Rename as...
11723 (xfopen, xfclose, open_files): this.
11724 (stringappend): static.
11725 * src/files.h: Complete the list of exported symbols.
11726 Propagate its use.
11727
117282000-10-02 Akim Demaille <akim@epita.fr>
11729
11730 * src/reader.h: New file.
11731 Propagate its use instead of tedious list of `extern' and
11732 prototypes.
11733 * src/reader.c: Formatting changes, topological sort,
11734 s/register//.
11735
117362000-10-02 Akim Demaille <akim@epita.fr>
11737
11738 * src/lex.h: Prototype `lex.c' exported functions.
11739 * src/reader.c: Adjust.
11740 * src/lex.c: Formatting changes.
11741 (safegetc): Rename as...
11742 (xgetc): this.
11743
117442000-10-02 Akim Demaille <akim@epita.fr>
11745
11746 * src/lalr.h: New file.
11747 Propagate its inclusion instead of prototypes and `extern'.
11748 * src/lalr.c: Formatting changes, topological sorting etc.
11749
117502000-10-02 Akim Demaille <akim@epita.fr>
11751
11752 * src/output.c (token_actions): Introduce a temporary array,
11753 YYDEFACT, that makes it possible for this function to use
11754 output_short_table.
11755
117562000-10-02 Akim Demaille <akim@epita.fr>
11757
11758 `user_toknums' is output as a `short[]' in `output.c', while it is
11759 defined as a `int[]' in `reader.c'. For consistency with the
11760 other output tables, `user_toknums' is now defined as a table of
11761 shorts.
11762
11763 * src/reader.c (user_toknums): Be a short table instead of an int
11764 table.
11765 Adjust dependencies.
11766
11767 Factor the short table outputs.
11768
11769 * src/output.c (output_short_table): New function.
11770 * src/output.c (output_gram, output_stos, output_rule_data)
11771 (output_base, output_table, output_check): Use it.
11772
117732000-10-02 Akim Demaille <akim@epita.fr>
11774
11775 * src/output.c (output): Topological sort of the functions, in
11776 order to get rid of the `static' prototypes.
11777 No longer use `register'.
11778 * src/output.h: New file.
11779 Propagate its inclusion in files explicitly prototyping functions
11780 from output.c.
11781
117822000-09-21 Akim Demaille <akim@epita.fr>
11783
11784 * src/atgeneral.m4: Update from Autoconf.
11785
117862000-09-21 Akim Demaille <akim@epita.fr>
11787
11788 * src/closure.h: New file.
11789 * src/closure.c: Formatting changes, topological sort over the
11790 functions, use of closure.h.
11791 (initialize_closure, finalize_closure): Rename as...
11792 (new_closure, free_closure): these. Adjust dependencies.
11793 * src/LR0.c: Formatting changes, topological sort, use of
11794 cloture.h.
11795 (initialize_states): Rename as...
11796 (new_states): this.
11797 * src/Makefile.am (noinst_HEADERS): Adjust.
11798
117992000-09-20 Akim Demaille <akim@epita.fr>
11800
11801 * src/acconfig.h: Don't protect config.h against multiple
11802 inclusion.
11803 Don't define PARAMS.
11804 * src/system.h: Define PARAMS.
11805 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
11806 purpose of config.h. system.h must not try to fix wrong
11807 definitions in config.h.
11808
118092000-09-20 Akim Demaille <akim@epita.fr>
11810
11811 * src/derives.h: New file.
11812 * src/main.c, src/derives.h: Use it.
11813 Formatting changes.
11814 * src/Makefile.am (noinst_HEADERS): Adjust.
11815
118162000-09-20 Akim Demaille <akim@epita.fr>
11817
11818 * tests/atgeneral.m4: Update from Autoconf.
11819 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
11820 (AT_CHECK_CALC): New macros.
11821 Use these macros to test bison with options `', `--raw',
11822 `--debug', `--yacc', `--yacc --debug'.
11823
118242000-09-19 Akim Demaille <akim@epita.fr>
11825
11826 * src/output.c: Formatting changes.
11827 * src/machine.h: Remove, leaving its contents in...
11828 * src/system.h: here.
11829 Include stdio.h.
11830 Adjust all dependencies on stdio.h and machine.h.
11831 * src/getargs.h: New file.
11832 Let all `extern' declarations about getargs.c be replaced with
11833 inclusion of `getargs.h'.
11834 * src/Makefile.am (noinst_HEADERS): Adjust.
11835
11836 * tests/calc.m4 (yyin): Be initialized in main, not on the global
11837 scope.
11838 (yyerror): Returns void, not int.
11839 * doc/bison.texinfo: Formatting changes.
11840
118412000-09-19 Akim Demaille <akim@epita.fr>
11842
11843 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
11844 portable.
11845
118462000-09-18 Akim Demaille <akim@epita.fr>
11847
11848 * configure.in: Append WARNING_CFLAGS to CFLAGS.
11849 * src/Makefile.am (INCLUDES): Don't.
11850 Be ready to fetch headers in lib/.
11851
118522000-09-18 Akim Demaille <akim@epita.fr>
11853
11854 * doc/bison.texinfo: Update the copyright.
11855 ANSIfy and GNUify the examples.
11856 Remove the old menu.
11857
118582000-09-18 Akim Demaille <akim@epita.fr>
11859
11860 First set of tests: use the `calc' example from the documentation.
11861
11862 * src/bison.s1 (yyparse): Condition the code using `yytname' which
11863 is defined only when YYDEBUG is.
11864 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
11865 * src/files.c (tryopen, tryclose): Formatting changes.
11866 Move to the top and be static.
11867 * src/reader.c (read_signed_integer): Likewise.
11868 * tests/calc.m4: New file.
11869 * Makefile.am, suite.m4: Adjust.
11870 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
11871
118722000-09-18 Akim Demaille <akim@epita.fr>
11873
11874 Add support for an Autotest test suite for Bison.
11875
11876 * m4/m4.m4, m4/atconfig.m4: New files.
11877 * m4/Makefile.am (EXTRA_DIST): Adjust.
11878 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
11879 files.
11880 * src/getargs.c: Display a more standard --version message.
11881 * src/reader.c (reader): Formatting changes.
11882 No longer depend upon VERSION_STRING.
11883 * configure.in: No longer use `dnl'.
11884 Set up the test suite and the new directory `tests/.
11885 (VERSION_STRING): Remove.
11886
118872000-04-14 Akim Demaille <akim@epita.fr>
11888
11889 * src/reader.c (copy_comment2): New function, same as former
11890 `copy_comment', but outputs into two FILE *.
11891 (copy_comment): Use it.
11892 (parse_union_decl): Use it.
11893 (get_type, parse_start_decl): Use the same `invalid' message.
11894 (parse_start_decl, parse_union_decl): Use the same `multiple'
11895 message.
11896 (parse_union_decl, copy_guard, copy_action): Use the same
11897 `unmatched' message.
11898 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
11899
119002000-03-31 Akim Demaille <akim@epita.fr>
11901
11902 * src/files.c (tryopen, tryclose): Move to the top.
11903 Be static.
11904
119052000-03-31 Akim Demaille <akim@epita.fr>
11906
11907 * src/main.c (main): Don't call `done', exit does it.
11908
119092000-03-31 Akim Demaille <akim@epita.fr>
11910
11911 * allocate.c: s/return (foo)/return foo/.
11912 * lalr.c: Likewise.
11913 * LR0.c: Likewise.
11914 * output.c: Likewise.
11915 * reader.c: Likewise.
11916 * symtab.c: Likewise.
11917 * vmsgetargs.c: Likewise.
11918
119192000-03-31 Akim Demaille <akim@epita.fr>
11920
11921 Clean up the error reporting functions.
11922
11923 * src/report.c: New file.
11924 * src/report.h: Likewise.
11925 * src/Makefile.am: Adjust.
11926 * m4/error.m4: New file.
11927 * m4/Makefile.am: Adjust.
11928 * configure.in (jm_PREREQ_ERROR): Call it.
11929 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
11930 Remove.
11931 (fatal, fatals): Remove. All callers use complain.c::fatal.
11932 (warn, warni, warns, warnss, warnss): Remove. All callers use
11933 complain.c::complain.
11934 (toomany): Remove, use fatal instead.
11935 * src/files.c (done): No argument, use complain_message_count.
11936 * src/main.c (main): Register `done' to `atexit'.
11937
11938 * src/getargs.c (usage): More `fputs', less `fprintf'.
11939
119402000-03-28 Akim Demaille <akim@epita.fr>
11941
11942 * lib/: New directory.
11943 * Makefile.am (SUBDIRS): Adjust.
11944 * configure.in: Adjust.
11945 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
11946 useless.
11947 * src/alloca.c: Moved to lib/.
11948 * src/getopt.c: Likewise.
11949 * src/getopt1.c: Likewise.
11950 * src/getopt.h: Likewise.
11951 * src/ansi2knr.c: Likewise.
11952 * src/ansi2knr.1: Likewise.
11953 * src/Makefile.am: Adjust.
11954 * lib/Makefile.am: New file.
11955
119562000-03-28 Akim Demaille <akim@epita.fr>
11957
11958 * src/getargs.c (usage): Refresh the help message.
11959
119602000-03-17 Akim Demaille <akim@epita.fr>
11961
11962 * src/getopt1.c: Updated from textutils 2.0e
11963 * src/getopt.c: Likewise.
11964 * src/getopt.h: Likewise.
11965
119662000-03-17 Akim Demaille <akim@epita.fr>
11967
11968 * src/Makefile.am (bison.simple): Fix the awk program: quote only
11969 the file name, not the whole `#line LINE FILE'.
11970
119712000-03-17 Akim Demaille <akim@epita.fr>
11972
11973 On syntax errors, report the token on which we choked.
11974
11975 * src/bison.s1 (yyparse): In the label yyerrlab, when
11976 YYERROR_VERBOSE, add yychar in msg.
11977
119782000-03-17 Akim Demaille <akim@epita.fr>
11979
11980 * src/reader.c (copy_at): New function.
11981 (copy_guard): Use it.
11982 (copy_action): Use it.
11983
119842000-03-17 Akim Demaille <akim@epita.fr>
11985
11986 Be kind to translators, save some useless translations.
11987
11988 * src/main.c (banner): New function.
11989 (fatal_banner): Use it.
11990 (warn_banner): Use it.
11991
119922000-03-17 Akim Demaille <akim@epita.fr>
11993
11994 * src/reader.c (copy_definition): Use copy_string and
11995 copy_comment. Removed now unused `match', `ended',
11996 `cplus_comment'.
11997 (copy_comment, copy_string): Moved, to be visible from
11998 copy_definition.
11999
120002000-03-17 Akim Demaille <akim@epita.fr>
12001
12002 * src/reader.c (copy_string): Declare `static inline'. No
12003 problems with inline, since it is checked by configure.
12004 (copy_comment): Likewise.
12005
120062000-03-17 Akim Demaille <akim@epita.fr>
12007
12008 * src/reader.c (packsymbols): Formatting changes.
12009
120102000-03-17 Akim Demaille <akim@epita.fr>
12011
12012 * src/reader.c (copy_comment): New function, factored out from:
12013 (copy_action): Use it. Removed now unused `match', `ended',
12014 `cplus_comment'.
12015 (copy_guard): Likewise.
12016
120172000-03-17 Akim Demaille <akim@epita.fr>
12018
12019 * src/reader.c (copy_string): New function, factored out from:
12020 (copy_action): Use it.
12021 (copy_guard): Likewise.
12022
120232000-03-17 Akim Demaille <akim@epita.fr>
12024
12025 Change the handling of @s so that they behave exactly like $s.
12026 There is now a pseudo variable @$ (readble and writable), location
12027 of the lhs of the rule (by default ranging from the location of
12028 the first symbol of the rhs, to the location of the last symbol,
12029 or, if the rhs is empty, YYLLOC).
12030
12031 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
12032 yyval.
12033 (yyparse): When providing a default semantic action, provide a
12034 default location action.
12035 (after the $): No longer change `*YYLSP', just stack YYLOC the
12036 same way you stack YYVAL.
12037 * src/reader.c (read_declarations): Use warns.
12038 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
12039 (copy_action, case '@'): Likewise.
12040 Use a standard error message, to save useless work from
12041 translators.
12042
120432000-03-17 Akim Demaille <akim@epita.fr>
12044
12045 * src/bison.s1: Formatting and cosmetics changes.
12046 * src/reader.c: Likewise.
12047 Update the Copyright notice.
12048
120492000-03-17 Akim Demaille <akim@epita.fr>
12050
12051 * src/bison.s1 (#line): All set to `#line' only, since the
12052 Makefile now handles them.
12053
120542000-03-16 Akim Demaille <akim@epita.fr>
12055
12056 * src/output.c (output_rule_data): Output the documentation of
12057 some of the tables.
12058 (Copyright notice): Update.
12059 Formatting changes.
12060
120612000-03-16 Akim Demaille <akim@epita.fr>
12062
12063 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
12064 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
12065 One `#if YYDEBUG' remains, since it uses variables which are
12066 defined only if `YYDEBUG != 0'.
12067
120682000-03-16 Akim Demaille <akim@epita.fr>
12069
12070 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
12071 and related variables so that the similarities are highlighted.
12072
120732000-03-16 Akim Demaille <akim@epita.fr>
12074
12075 * src/bison.s1: Properly indent CPP directives.
12076
120772000-03-16 Akim Demaille <akim@epita.fr>
12078
12079 * src/bison.s1: Properly indent the `alloca' CPP section.
12080
120812000-03-16 Akim Demaille <akim@epita.fr>
12082
12083 Do not hard code values of directories in `configure.in'.
12084 Update the `configure' tool chain.
12085
12086 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
12087 src/makefile.am.
12088 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
12089 (AC_OUTPUT): Add m4/Makefile.
12090 Bump to bison 1.28a, 1.29 has never been released.
12091 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
12092 handled via src/Makefile.am.
12093 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
12094 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
12095 autoheader.
12096 * Makefile.am (SUBDIRS): Add m4.
12097 (ACLOCAL_AM_FLAGS): New variable.
12098 (AUTOMAKE_OPTIONS): Add check-news.
12099 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
12100 the proper line number and file name.
12101 (DEFS): Propagate the location of bison library files and of the
12102 locale files.
12103 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
12104 builddir.
12105 * acinclude.m4: Remove, replaced by the directory m4.
12106 * m4/Makefile.am (EXTRA_DIST): New variable.
12107 * m4/gettext.m4: New file, from the fileutils.
12108 * m4/lcmessage.m4: Likewise
12109 * m4/progtest.m4: Likewise.
12110 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
12111
121122000-03-10 Akim Demaille <akim@epita.fr>
12113
12114 * src/closure.c:
12115 Formatting changes of various comments.
12116 Respect the GNU coding standards at various places.
12117 Don't use `_()' when no translation is needed.
12118
121191999-12-13 Jesse Thilo <jthilo@gnu.org>
12120
12121 * src/files.c:
12122 OS/2 honors TMPDIR environment variable.
12123
121241999-12-13 Jesse Thilo <jthilo@gnu.org>
12125
12126 * doc/bison.texinfo: Tweaked spelling and grammar.
12127 Updated ISBN.
12128 Removed reference to price of printed copy.
12129 Mention BISON_SIMPLE and BISON_HAIRY.
12130
121311999-12-13 Jesse Thilo <jthilo@gnu.org>
12132
12133 * configure.in, NEWS:
12134 Bison 1.29 released.
12135
121361999-10-27 Jesse Thilo <jthilo@gnu.org>
12137
12138 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
12139 Added reference card.
12140
121411999-07-26 Jesse Thilo <jthilo@gnu.org>
12142
12143 * po/ru.po: Added Russian translation.
12144
121451999-07-26 Jesse Thilo <jthilo@gnu.org>
12146
12147 * configure.in: Added Russian translation.
12148
121491999-07-06 Jesse Thilo <jthilo@gnu.org>
12150
12151 * configure.in, NEWS, README:
12152 Released version 1.28.
12153
121541999-06-14 Jesse Thilo <jthilo@gnu.org>
12155
12156 * src/system.h:
12157 Squashed redefinition warning on some systems.
12158
12159 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
12160 Have configure build version string instead of relying on ANSI string
12161 concatentation.
12162
121631999-06-14 Jesse Thilo <jthilo@gnu.org>
12164
12165 * po/POTFILES.in: Got rid of version.c.
12166
121671999-06-14 Jesse Thilo <jthilo@gnu.org>
12168
12169 * acconfig.h, configure.in:
12170 Have configure build version string instead of relying on ANSI string
12171 concatentation.
12172
121731999-06-08 Jesse Thilo <jthilo@gnu.org>
12174
12175 * doc/bison.1:
12176 Dropped mention of `+' for long-named options.
12177
121781999-05-30 Jesse Thilo <jthilo@gnu.org>
12179
12180 * src/files.c: Added <unistd.h> for unlink().
12181
12182 * src/Makefile.am, src/system.h:
12183 I18n fixes.
12184
121851999-05-30 Jesse Thilo <jthilo@gnu.org>
12186
12187 * README: Added a FAQ list.
12188
12189 * configure.in, acconfig.h:
12190 I18n fixes.
12191
121921999-05-30 Jesse Thilo <jthilo@gnu.org>
12193
12194 * doc/FAQ, doc/Makefile.am:
12195 Added a FAQ list.
12196
121971999-05-19 Jesse Thilo <jthilo@gnu.org>
12198
12199 * src/alloc.h, src/symtab.h, src/version.c:
12200 Protected inclusion of "config.h" with HAVE_CONFIG_H.
12201
122021999-04-18 Jesse Thilo <jthilo@gnu.org>
12203
12204 * src/.cvsignore, src/Makefile.am:
12205 Reorganized: sources in `src', documentation in `doc'.
12206
12207 * src/lex.c (literalchar):
12208 fixed the code for escaping double quotes (thanks
12209 Jonathan Czisny.)
12210
122111999-04-18 Jesse Thilo <jthilo@gnu.org>
12212
12213 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
12214 Adjusted paths to reflect directory reorganization.
12215
122161999-04-18 Jesse Thilo <jthilo@gnu.org>
12217
12218 * doc/.cvsignore, doc/Makefile.am:
12219 Reorganized: sources in `src', documentation in `doc'.
12220
122211999-04-18 Jesse Thilo <jthilo@gnu.org>
12222
12223 * configure.in:
12224 Updated AC_INIT file to reflect directory reorganization.
12225
12226 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
12227 Reorganized: sources in `src', documentation in `doc'.
12228
122291999-04-13 Jesse Thilo <jthilo@gnu.org>
12230
12231 * src/allocate.c:
12232 Don't declare calloc() and realloc() if not necessary.
12233
122341999-04-13 Jesse Thilo <jthilo@gnu.org>
12235
12236 * configure.in, acconfig.h, acinclude.m4:
12237 Don't declare calloc() and realloc() if not necessary.
12238
122391999-03-23 Jesse Thilo <jthilo@gnu.org>
12240
12241 * po/.cvsignore: Added i18n support.
12242
122431999-03-23 Jesse Thilo <jthilo@gnu.org>
12244
12245 * acconfig.h, configure.in, Makefile.am:
12246 Added i18n support.
12247
122481999-03-22 Jesse Thilo <jthilo@gnu.org>
12249
12250 * src/bison.s1: Fixed #line numbers.
12251
122521999-03-15 Jesse Thilo <jthilo@gnu.org>
12253
12254 * po/es.po, po/fr.po, po/nl.po, po/de.po:
12255 Added PO files from Translation Project.
12256
122571999-03-03 Jesse Thilo <jthilo@gnu.org>
12258
12259 * Makefile.am:
12260 Added support for non-ANSI compilers (ansi2knr).
12261
122621999-02-16 Jesse Thilo <jthilo@gnu.org>
12263
12264 * configure.in: Bumped version number to 1.27.
12265
12266 * Makefile.am:
12267 Added `bison.simple' to list of files removed by `make distclean'.
12268
122691999-02-12 Jesse Thilo <jthilo@gnu.org>
12270
12271 * src/files.c, src/files.h:
12272 Defined locations of parser files in config.h instead of Makefile.
12273
122741999-02-12 Jesse Thilo <jthilo@gnu.org>
12275
12276 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
12277 Defined locations of parser files in config.h instead of Makefile.
12278
122791999-02-09 Jesse Thilo <jthilo@gnu.org>
12280
12281 * Makefile.am:
12282 Removed inappropriate use of $< macro.
12283
122841999-02-05 Jesse Thilo <jthilo@gnu.org>
12285
12286 * po/Makefile.in.in, po/POTFILES.in:
12287 Add `po' directory skeleton.
12288
122891999-01-27 Jesse Thilo <jthilo@gnu.org>
12290
12291 * README: Document help-bison list.
12292
12293 * configure.in: Add check for mkstemp().
12294
122951999-01-20 Jesse Thilo <jthilo@gnu.org>
12296
12297 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
12298 Hush a few compiler warnings.
12299
12300 * src/files.c:
12301 Add tryclose(), which verifies that fclose was successful.
12302 Hush a couple of compiler warnings.
12303
123041999-01-20 Jesse Thilo <jthilo@gnu.org>
12305
12306 * Makefile.am, OChangeLog:
12307 ChangeLog is now automatically generated. Include the old version as
12308 OChangeLog.
12309
123101999-01-14 Jesse Thilo <jthilo@gnu.org>
12311
12312 * src/gram.h, src/lalr.c, src/lex.c, src/lex.h, src/machine.h, src/main.c, src/nullable.c, src/output.c, src/print.c, src/reader.c, src/reduce.c, src/state.h, src/symtab.c, src/symtab.h, src/types.h, src/vmsgetargs.c, src/warshall.c, src/allocate.c, src/alloc.h, src/bison.s1, src/closure.c, src/conflicts.c, src/derives.c, src/files.c, src/files.h, src/getargs.c, src/gram.c, src/LR0.c:
12313 Update FSF address.
12314
123151999-01-14 Jesse Thilo <jthilo@gnu.org>
12316
12317 * doc/bison.texinfo: Fix formatting glitch.
12318
12319 * doc/bison.texinfo: Update FSF address.
12320
123211999-01-14 Jesse Thilo <jthilo@gnu.org>
12322
12323 * acconfig.h: Update FSF address.
12324
123251999-01-08 Jesse Thilo <jthilo@gnu.org>
12326
12327 * src/system.h:
12328 Don't define PACKAGE here, since config.h defines it.
12329
123301998-12-30 Jesse Thilo <jthilo@gnu.org>
12331
12332 * src/reader.c: Update copyright date.
12333
12334 * src/main.c:
12335 Ditch sprintf to statically-sized buffers in fatal/warn functions in
12336 favor of output directly to stderr (avoids buffer overruns).
12337
12338 * src/reader.c: Some checks for premature EOF.
12339
12340 * src/allocate.c, src/alloc.h, src/closure.c, src/conflicts.c, src/derives.c, src/getargs.c, src/gram.c, src/lalr.c, src/lex.c, src/LR0.c, src/main.c, src/nullable.c, src/output.c, src/print.c, src/reduce.c, src/symtab.c, src/symtab.h, src/warshall.c:
12341 Use prototypes if the compiler understands them.
12342
12343 * src/files.c: Honor TMPDIR on Unix hosts.
12344 Use prototypes if the compiler understands them.
12345
12346 * src/reader.c:
12347 Fix a couple of buffer overrun bugs.
12348 Use prototypes if the compiler understands them.
12349
12350 * src/system.h: Include unistd.h and ctype.h.
12351 Use #ifdef instead of #if for NLS symbols.
12352
123531998-12-30 Jesse Thilo <jthilo@gnu.org>
12354
12355 * doc/bison.texinfo:
12356 Delete comment "consider using @set for edition number, etc..." since
12357 we now are doing so.
12358
123591998-12-30 Jesse Thilo <jthilo@gnu.org>
12360
12361 * configure.in:
12362 Use prototypes if the compiler understands them.
12363
12364 * NEWS: Document 1.26 highlights.
12365
12366 * Makefile.am: Require Automake 1.3 or later.
12367
12368 * acconfig.h:
12369 Use prototypes if the compiler understands them.
12370
123711998-12-29 Jesse Thilo <jthilo@gnu.org>
12372
12373 * src/version.c:
12374 Use VERSION symbol from automake for version number.
12375
123761998-12-29 Jesse Thilo <jthilo@gnu.org>
12377
12378 * acconfig.h, configure.in, version.cin:
12379 Use VERSION symbol from automake for version number.
12380
123811998-11-28 Jesse Thilo <jthilo@gnu.org>
12382
12383 * Makefile.am:
12384 Distribute original version of simple parser (bison.s1), not built
12385 version (bison.simple).
12386
123871998-11-28 Jesse Thilo <jthilo@gnu.org>
12388
12389 * doc/bison.texinfo: Add info dir entry.
12390
12391 * doc/bison.texinfo:
12392 Let automake put version number into documentation.
12393
123941998-11-26 Jesse Thilo <jthilo@gnu.org>
12395
12396 * src/bison.cld, src/build.com, src/vmshlp.mar:
12397 Add non-RCS files from /gd/gnu/bison.
12398
123991998-11-26 Jesse Thilo <jthilo@gnu.org>
12400
12401 * doc/bison.1:
12402 Document the BISON_HAIRY and BISON_SIMPLE variables.
12403
124041998-11-25 Jesse Thilo <jthilo@gnu.org>
12405
12406 * src/version.c: Build version.c automatically.
12407
12408 * src/reader.c:
12409 Fix token numbering (used to start at 258, not 257).
12410
12411 * src/system.h: Include config.h.
12412
12413 * src/getargs.c: Update bug report address.
12414
12415 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
12416 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
12417
124181998-11-25 Jesse Thilo <jthilo@gnu.org>
12419
12420 * Makefile.am:
12421 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
12422
12423 * configure.in, version.cin:
12424 Build version.c automatically.
12425
12426 * AUTHORS: Add AUTHORS file.
12427
12428 * README: Update bug report address.
12429
12430 * bison.simple:
12431 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
12432
12433 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
12434 Add automake stuff.
12435
124361998-11-25 Jesse Thilo <jthilo@gnu.org>
12437
12438 * doc/bison.texinfo: Clean up some formatting.
12439
124401998-05-05 Richard Stallman <rms@gnu.org>
12441
12442 * doc/bison.texinfo:
12443 Explain better why to make a pure parser.
12444
124451998-01-05 Richard Stallman <rms@gnu.org>
12446
12447 * src/files.c (openfiles):
12448 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
12449 find a temporary directory, if possible. Do not unlink files while
12450 they are open.
12451
124521997-08-25 Richard Stallman <rms@gnu.org>
12453
12454 * src/reader.c (stack_offset;):
12455 Change some warni to warns.
12456
12457 * src/lex.c (literalchar): Use warns, not warni.
12458
124591997-06-28 Richard Stallman <rms@gnu.org>
12460
12461 * src/bison.s1: Add a Bison version comment.
12462
12463 * src/main.c (fatal, warn, berror):
12464 Use program_name.
12465
124661997-06-28 Richard Stallman <rms@gnu.org>
12467
12468 * Makefile.in (bison_version): New variable.
12469 (dist): Use that variable.
12470 (bison.s1): Substitute the Bison version into bison.simple.
12471
12472 * bison.simple: Add a Bison version comment.
12473
124741997-06-18 Richard Stallman <rms@gnu.org>
12475
12476 * src/main.c (fatal, warn, berror):
12477 Make error messages standard.
12478 (toomany): Improve error message text.
12479
12480 * src/LR0.c, src/closure.c, src/conflicts.c, src/derives.c, src/files.c, src/lalr.c, src/lex.c, src/nullable.c, src/output.c, src/print.c, src/reader.c, src/reduce.c, src/symtab.c:
12481 new.h renamed to alloc.h.
12482
124831997-06-18 Richard Stallman <rms@gnu.org>
12484
12485 * Makefile.in: new.h renamed to alloc.h.
12486
124871997-05-24 Richard Stallman <rms@gnu.org>
12488
12489 * src/lex.c (literalchar):
12490 Fix the code for escaping \, " and '.
12491
12492 (lex): Avoid trouble when there are many chars
12493 to discard in a char literal with just several chars in it.
12494
124951997-05-17 Richard Stallman <rms@gnu.org>
12496
12497 * src/bison.s1:
12498 Use malloc, if using alloca is troublesome.
12499 (YYSTACK_USE_ALLOCA): New flag macro.
12500 Define it for some systems and compilers.
12501 (YYSTACK_ALLOC): New macro.
12502 (yyparse): Use YYSTACK_ALLOC to allocate stack.
12503 If it was malloc'd, free it.
12504
125051997-05-17 Richard Stallman <rms@gnu.org>
12506
12507 * bison.simple:
12508 Use malloc, if using alloca is troublesome.
12509 (YYSTACK_USE_ALLOCA): New flag macro.
12510 Define it for some systems and compilers.
12511 (YYSTACK_ALLOC): New macro.
12512 (yyparse): Use YYSTACK_ALLOC to allocate stack.
12513 If it was malloc'd, free it.
12514
125151997-04-23 Richard Stallman <rms@gnu.org>
12516
12517 * src/bison.s1:
12518 (alloca) [__hpux]: Always define as __builtin_alloca.
12519
125201997-04-23 Richard Stallman <rms@gnu.org>
12521
12522 * bison.simple:
12523 (alloca) [__hpux]: Always define as __builtin_alloca.
12524
125251997-04-22 Richard Stallman <rms@gnu.org>
12526
12527 * src/bison.s1:
12528 [__hpux]: Include alloca.h (right for HPUX 10)
12529 instead of declaring alloca (right for HPUX 9).
12530
12531 * src/bison.s1 (__yy_memcpy):
12532 Declare arg `count' as unsigned int.
12533 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
12534
125351997-04-22 Richard Stallman <rms@gnu.org>
12536
12537 * bison.simple:
12538 [__hpux]: Include alloca.h (right for HPUX 10)
12539 instead of declaring alloca (right for HPUX 9).
12540
12541 * bison.simple (__yy_memcpy):
12542 Declare arg `count' as unsigned int.
12543 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
12544
125451997-01-03 Richard Stallman <rms@gnu.org>
12546
12547 * src/allocate.c: [__STDC__ or _MSC_VER]:
12548 Declare calloc and realloc to return void *.
12549
125501997-01-02 Richard Stallman <rms@gnu.org>
12551
12552 * src/system.h:
12553 [_MSC_VER]: Include stdlib.h and process.h.
12554 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
12555
12556 * src/main.c (main): Return FAILURE as a value.
12557 (printable_version): Declare arg as int, not char.
12558
125591997-01-02 Richard Stallman <rms@gnu.org>
12560
12561 * Makefile.in (dist):
12562 Explicitly check for symlinks, and copy them.
12563
125641996-12-19 Richard Stallman <rms@gnu.org>
12565
12566 * src/files.c:
12567 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
12568
125691996-12-18 Paul Eggert <eggert@gnu.org>
12570
12571 * src/bison.s1 (yyparse):
12572 If __GNUC__ and YYPARSE_PARAM are both defined,
12573 declare yyparse to have a void * argument.
12574
125751996-12-18 Paul Eggert <eggert@gnu.org>
12576
12577 * bison.simple (yyparse):
12578 If __GNUC__ and YYPARSE_PARAM are both defined,
12579 declare yyparse to have a void * argument.
12580
125811996-12-17 Richard Stallman <rms@gnu.org>
12582
12583 * src/reduce.c (nbits): Add some casts.
12584
125851996-08-12 Richard Stallman <rms@gnu.org>
12586
12587 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
12588
125891996-08-12 Richard Stallman <rms@gnu.org>
12590
12591 * bison.simple: Test _MSDOS as well as _MSDOS_.
12592
125931996-07-31 Richard Stallman <rms@gnu.org>
12594
12595 * src/bison.s1:
12596 [__sun && __i386]: Include alloca.h.
12597
125981996-07-31 Richard Stallman <rms@gnu.org>
12599
12600 * bison.simple:
12601 [__sun && __i386]: Include alloca.h.
12602
126031996-07-30 Richard Stallman <rms@gnu.org>
12604
12605 * src/bison.s1: Comment change.
12606
12607 * src/bison.s1: Test _MSDOS_, not MSDOS.
12608
126091996-07-30 Richard Stallman <rms@gnu.org>
12610
12611 * bison.simple: Comment change.
12612
12613 * bison.simple: Test _MSDOS_, not MSDOS.
12614
126151996-06-01 Richard Stallman <rms@gnu.org>
12616
12617 * src/reduce.c, src/reader.c, src/print.c, src/output.c, src/nullable.c, src/lex.c, src/lalr.c, src/getargs.c, src/derives.c, src/conflicts.c, src/closure.c, src/allocate.c:
12618 Insert `_' macro around many string constants.
12619
12620 * src/main.c:
12621 Insert `_' macro around many string constants.
12622
12623 (main): Call setlocale, bindtextdomain and textdomain.
12624
12625 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
12626 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
12627 [ENABLE_NLS]: Include libintl.h.
12628 [ENABLE_NLS] (gettext): Define.
12629 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
12630 (N_, PACKAGE, LOCALEDIR): New macros.
12631
126321996-06-01 Richard Stallman <rms@gnu.org>
12633
12634 * POTFILES.in: New file.
12635
12636 * Makefile.in (allocate.o):
12637 Define target explicitly.
12638
12639 * Makefile.in (CFLAGS): Set to @CFLAGS@.
12640 (LDFLAGS): Set to @LDFLAGS@.
12641 (configure): Run autoconf only if preceding `cd' succeeds.
12642 (bison.s1): Redirect output to temporary file then move the
12643 temporary to the target, rather than redirecting directly to bison.s1.
12644 (clean): Remove config.status and config.log.
12645 (distclean): Don't remove config.status here.
12646
126471996-05-12 Richard Stallman <rms@gnu.org>
12648
12649 * src/bison.s1:
12650 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
12651
126521996-05-12 Richard Stallman <rms@gnu.org>
12653
12654 * bison.simple:
12655 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
12656
126571996-05-11 Richard Stallman <rms@gnu.org>
12658
12659 * src/bison.s1 (__yy_memcpy):
12660 Really reorder the args, as was supposedly done on Feb 14 1995.
12661 (yyparse): Calls changed accordingly.
12662
126631996-05-11 Richard Stallman <rms@gnu.org>
12664
12665 * Makefile.in (dist): Don't use $(srcdir).
12666
12667 * bison.simple (__yy_memcpy):
12668 Really reorder the args, as was supposedly done on Feb 14 1995.
12669 (yyparse): Calls changed accordingly.
12670
126711996-01-27 Richard Stallman <rms@gnu.org>
12672
12673 * src/output.c (output_rule_data):
12674 Test YYERROR_VERBOSE in the conditional
12675 around the definition of ttyname.
12676
126771995-12-29 Richard Stallman <rms@gnu.org>
12678
12679 * src/bison.s1:
12680 Fix line numbers in #line commands.
12681
126821995-12-29 Richard Stallman <rms@gnu.org>
12683
12684 * bison.simple:
12685 Fix line numbers in #line commands.
12686
126871995-12-27 Richard Stallman <rms@gnu.org>
12688
12689 * src/bison.s1 (YYPARSE_PARAM_DECL):
12690 In C++, make it always null.
12691 (YYPARSE_PARAM_ARG): New macro.
12692 (yyparse): Use YYPARSE_PARAM_ARG.
12693
126941995-12-27 Richard Stallman <rms@gnu.org>
12695
12696 * bison.simple (YYPARSE_PARAM_DECL):
12697 In C++, make it always null.
12698 (YYPARSE_PARAM_ARG): New macro.
12699 (yyparse): Use YYPARSE_PARAM_ARG.
12700
127011995-11-29 Richard Stallman <rms@gnu.org>
12702
12703 * doc/bison.texinfo:
12704 Describe literal string tokens, %raw, %no_lines, %token_table.
12705
127061995-11-29 Daniel Hagerty <hag@gnu.org>
12707
12708 * doc/bison.texinfo: Fixed update date
12709
127101995-10-16 Richard Stallman <rms@gnu.org>
12711
12712 * src/version.c: Version 1.25.
12713
127141995-10-16 Richard Stallman <rms@gnu.org>
12715
12716 * NEWS: *** empty log message ***
12717
127181995-10-16 Richard Stallman <rms@gnu.org>
12719
12720 * doc/bison.1, doc/bison.rnh:
12721 Add new options.
12722
127231995-10-15 Richard Stallman <rms@gnu.org>
12724
12725 * src/vmsgetargs.c, src/getargs.c:
12726 Added -n, -k, and -raw switches.
12727 (noparserflag, toknumflag, rawtoknumflag): New variables.
12728
12729 * src/symtab.h (SALIAS):
12730 New #define for adding aliases to %token.
12731 (struct bucket): Added `alias' field.
12732
12733 * src/reduce.c (reduce_grammar):
12734 Revise error message.
12735 (print_notices): Remove final `.' from error message.
12736
12737 * src/reader.c (reader_output_yylsp):
12738 New function.
12739 (readgram): Use `#if 0' around code that accepted %command
12740 inside grammar rules: The documentation doesn't allow it,
12741 and it will fail since the %command processors scan for the next %.
12742 (parse_token_decl): Extended the %token
12743 declaration to allow a multi-character symbol as an alias.
12744 (parse_thong_decl): New function.
12745 (read_declarations): Added %thong declarations.
12746 (read_declarations): Handle NOOP to deal with allowing
12747 % declarations as another means to specify the flags.
12748 (readgram): Allow %prec prior to semantics embedded in a rule.
12749 (skip_to_char, read_declarations, copy_definition)
12750 (parse_token_decl, parse_start_decl, parse_type_decl)
12751 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
12752 (get_type_name, copy_guard, copy_action, readgram)
12753 (get_type, packsymbols): Revised most error messages.
12754 Changed `fatal' to `warnxxx' to avoid aborting for error.
12755 Revised and use multiple warnxxx functions to avoid using VARARGS1.
12756 (read_declarations): Improve the error message for
12757 an invalid character. Do not abort.
12758 (read_declarations, copy_guard, copy_action): Use
12759 printable_version to avoid unprintable characters in printed output.
12760 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
12761 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
12762 Allow the type of a non-terminal can be given
12763 more than once, as long as all specifications give the same type.
12764
12765 * src/output.c:
12766 (output_headers, output_trailers, output, output_gram)
12767 (output_rule_data): Implement noparserflag variable.
12768 Implement toknumflag variable.
12769 (output): Call reader_output_yylsp to output LTYPESTR.
12770
12771 * src/main.c (main):
12772 If reader sees an error, don't process the grammar.
12773 (fatals): Updated to not use VARARGS1.
12774 (printable_version, int_to_string, warn, warni, warns, warnss)
12775 (warnsss): New error reporting functions. Avoid abort for error.
12776
12777 * src/lex.h:
12778 Added THONG and NOOP for alias processing.
12779 Added SETOPT for the new code that allows setting options with %flags.
12780
12781 * src/lex.c:
12782 Include getopt.h. Add some extern decls.
12783 (safegetc): New function to deal with EOF gracefully.
12784 (literalchar); new function to deal with reading \ escapes.
12785 (lex): Use literalchar.
12786 (lex): Implemented "..." tokens.
12787 (literalchar, lex, parse_percent_token): Made tokenbuffer
12788 always contain the token. This includes growing the token
12789 buffer while reading an integer.
12790 (parse_percent_token): Replaced if-else statement with percent_table.
12791 (parse_percent_token): Added % declarations as another
12792 way to specify the flags -n, -l, and -r. Also added hooks for
12793 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
12794 major changes to files.c.
12795 (lex) Retain in the incoming stream a character following
12796 an incorrect '/'.
12797 (skip_white_space, lex): Revised most error messages
12798 and changed fatal to warn to avoid aborting.
12799 (percent_table): Added %thong declarations.
12800
12801 * src/gram.h: Comment changes.
12802
12803 * src/files.c (openfiles, open_extra_files, done):
12804 Add faction flag
12805 and actfile file. Handle noparserflag. Both for -n switch.
12806
12807 * src/conflicts.c (resolve_sr_conflict):
12808 Remove use of alloca.
12809
128101995-06-01 Jim Meyering <meyering@gnu.org>
12811
12812 * doc/bison.texinfo: *** empty log message ***
12813
128141995-05-06 Richard Stallman <rms@gnu.org>
12815
12816 * src/bison.s1: Comment change.
12817
128181995-05-06 Richard Stallman <rms@gnu.org>
12819
12820 * bison.simple: Comment change.
12821
128221995-05-03 Richard Stallman <rms@gnu.org>
12823
12824 * src/version.c: Version now 1.24.
12825
12826 * src/bison.s1: Change distribution terms.
12827
12828 * src/version.c: Version now 1.23.
12829
128301995-05-03 Richard Stallman <rms@gnu.org>
12831
12832 * doc/bison.texinfo:
12833 Rewrite "Conditions for Using Bison".
12834 Update version to 1.24.
12835
128361995-05-03 Richard Stallman <rms@gnu.org>
12837
12838 * bison.simple: Change distribution terms.
12839
128401995-02-23 Richard Stallman <rms@gnu.org>
12841
12842 * src/files.c: Test __VMS_POSIX as well as VMS.
12843
128441995-02-14 Jim Meyering <meyering@gnu.org>
12845
12846 * src/bison.s1 (__yy_memcpy):
12847 Renamed from __yy_bcopy to avoid
12848 confusion. Reverse FROM and TO arguments to be consistent with
12849 those of memcpy.
12850
128511995-02-14 Jim Meyering <meyering@gnu.org>
12852
12853 * bison.simple (__yy_memcpy):
12854 Renamed from __yy_bcopy to avoid
12855 confusion. Reverse FROM and TO arguments to be consistent with
12856 those of memcpy.
12857
128581994-11-10 David J. MacKenzie <djm@gnu.org>
12859
12860 * NEWS: reformat
12861
12862 * NEWS: New file.
12863
12864 * Makefile.in (DISTFILES): Include NEWS.
12865
12866 * Makefile.in (DISTFILES):
12867 Include install-sh, not install.sh.
12868
12869 * configure.in: Update to Autoconf v2 macro names.
12870
128711994-10-05 David J. MacKenzie <djm@gnu.org>
12872
12873 * Makefile.in: fix typo
12874
12875 * Makefile.in (prefix, exec_prefix):
12876 Let configure set them.
12877
128781994-09-28 David J. MacKenzie <djm@gnu.org>
12879
12880 * Makefile.in: Set datadir to $(prefix)/share.
12881
128821994-09-15 Richard Stallman <rms@gnu.org>
12883
12884 * src/bison.s1:
12885 Update copyright notice and GPL version.
12886
128871994-09-15 Richard Stallman <rms@gnu.org>
12888
12889 * bison.simple:
12890 Update copyright notice and GPL version.
12891
128921994-07-12 Richard Stallman <rms@gnu.org>
12893
12894 * src/reduce.c, src/reader.c:
12895 entered into RCS
12896
128971994-05-05 David J. MacKenzie <djm@gnu.org>
12898
12899 * Makefile.in: entered into RCS
12900
129011994-03-26 Richard Stallman <rms@gnu.org>
12902
12903 * src/bison.s1: entered into RCS
12904
129051994-03-26 Richard Stallman <rms@gnu.org>
12906
12907 * bison.simple: entered into RCS
12908
129091994-03-25 Richard Stallman <rms@gnu.org>
12910
12911 * src/main.c: entered into RCS
12912
129131994-03-24 Richard Stallman <rms@gnu.org>
12914
12915 * src/conflicts.c: entered into RCS
12916
129171994-01-02 Richard Stallman <rms@gnu.org>
12918
12919 * Makefile.in: *** empty log message ***
12920
129211993-11-21 Richard Stallman <rms@gnu.org>
12922
12923 * src/bison.s1: *** empty log message ***
12924
129251993-11-21 Richard Stallman <rms@gnu.org>
12926
12927 * doc/bison.texinfo: entered into RCS
12928
12929 * doc/bison.texinfo: *** empty log message ***
12930
129311993-11-21 Richard Stallman <rms@gnu.org>
12932
12933 * bison.simple: *** empty log message ***
12934
129351993-10-25 David J. MacKenzie <djm@gnu.org>
12936
12937 * doc/bison.texinfo: *** empty log message ***
12938
129391993-10-19 Richard Stallman <rms@gnu.org>
12940
12941 * src/bison.s1: *** empty log message ***
12942
129431993-10-19 Richard Stallman <rms@gnu.org>
12944
12945 * bison.simple: *** empty log message ***
12946
129471993-10-14 Richard Stallman <rms@gnu.org>
12948
12949 * src/bison.s1: *** empty log message ***
12950
129511993-10-14 Richard Stallman <rms@gnu.org>
12952
12953 * bison.simple: *** empty log message ***
12954
129551993-09-14 David J. MacKenzie <djm@gnu.org>
12956
12957 * doc/bison.texinfo: *** empty log message ***
12958
129591993-09-13 Noah Friedman <friedman@gnu.org>
12960
12961 * Makefile.in: *** empty log message ***
12962
129631993-09-10 Richard Stallman <rms@gnu.org>
12964
12965 * src/conflicts.c: *** empty log message ***
12966
12967 * src/system.h: entered into RCS
12968
129691993-09-10 Richard Stallman <rms@gnu.org>
12970
12971 * doc/bison.1: entered into RCS
12972
129731993-09-06 Noah Friedman <friedman@gnu.org>
12974
12975 * src/version.c: entered into RCS
12976
129771993-09-06 Noah Friedman <friedman@gnu.org>
12978
12979 * Makefile.in: *** empty log message ***
12980
129811993-07-30 David J. MacKenzie <djm@gnu.org>
12982
12983 * Makefile.in: *** empty log message ***
12984
129851993-07-24 Richard Stallman <rms@gnu.org>
12986
12987 * src/bison.s1: *** empty log message ***
12988
129891993-07-24 Richard Stallman <rms@gnu.org>
12990
12991 * bison.simple: *** empty log message ***
12992
129931993-07-08 David J. MacKenzie <djm@gnu.org>
12994
12995 * Makefile.in: *** empty log message ***
12996
129971993-07-04 Richard Stallman <rms@gnu.org>
12998
12999 * src/bison.s1: *** empty log message ***
13000
130011993-07-04 Richard Stallman <rms@gnu.org>
13002
13003 * bison.simple: *** empty log message ***
13004
130051993-06-26 David J. MacKenzie <djm@gnu.org>
13006
13007 * src/getargs.c: entered into RCS
13008
130091993-06-26 David J. MacKenzie <djm@gnu.org>
13010
13011 * doc/bison.texinfo: *** empty log message ***
13012
13013 * doc/bison.1: New file.
13014
130151993-06-25 Richard Stallman <rms@gnu.org>
13016
13017 * src/getargs.c: New file.
13018
130191993-06-16 Richard Stallman <rms@gnu.org>
13020
13021 * src/bison.s1: *** empty log message ***
13022
130231993-06-16 Richard Stallman <rms@gnu.org>
13024
13025 * bison.simple: *** empty log message ***
13026
130271993-06-03 Richard Stallman <rms@gnu.org>
13028
13029 * src/bison.s1: New file.
13030
130311993-06-03 Richard Stallman <rms@gnu.org>
13032
13033 * doc/bison.texinfo: *** empty log message ***
13034
130351993-06-03 Richard Stallman <rms@gnu.org>
13036
13037 * bison.simple: New file.
13038
130391993-05-19 Richard Stallman <rms@gnu.org>
13040
13041 * doc/bison.texinfo: New file.
13042
130431993-05-07 Noah Friedman <friedman@gnu.org>
13044
13045 * Makefile.in: *** empty log message ***
13046
130471993-04-28 Noah Friedman <friedman@gnu.org>
13048
13049 * src/reader.c: *** empty log message ***
13050
130511993-04-23 Noah Friedman <friedman@gnu.org>
13052
13053 * src/alloc.h: entered into RCS
13054
130551993-04-20 David J. MacKenzie <djm@gnu.org>
13056
13057 * src/version.c: *** empty log message ***
13058
13059 * src/files.c, src/allocate.c:
13060 entered into RCS
13061
13062 * src/reader.c: *** empty log message ***
13063
13064 * src/lex.c: entered into RCS
13065
13066 * src/conflicts.c: New file.
13067
13068 * src/symtab.c: entered into RCS
13069
13070 * src/alloc.h: New file.
13071
13072 * src/LR0.c: entered into RCS
13073
130741993-04-18 Noah Friedman <friedman@gnu.org>
13075
13076 * src/reader.c: New file.
13077
13078 * src/version.c: *** empty log message ***
13079
130801993-04-18 Noah Friedman <friedman@gnu.org>
13081
13082 * Makefile.in: *** empty log message ***
13083
130841993-04-17 Noah Friedman <friedman@gnu.org>
13085
13086 * Makefile.in: *** empty log message ***
13087
130881993-04-15 Richard Stallman <rms@gnu.org>
13089
13090 * src/main.c, src/files.c:
13091 New file.
13092
130931993-04-15 Noah Friedman <friedman@gnu.org>
13094
13095 * configure.in: entered into RCS
13096
13097 * configure.in: *** empty log message ***
13098
13099 * configure.in: New file.
13100
131011993-04-14 Richard Stallman <rms@gnu.org>
13102
13103 * Makefile.in: New file.
13104
131051993-04-13 Richard Stallman <rms@gnu.org>
13106
13107 * src/version.c: New file.
13108
131091993-03-25 Richard Stallman <rms@gnu.org>
13110
13111 * src/output.c: entered into RCS
13112
131131992-09-25 Richard Stallman <rms@gnu.org>
13114
13115 * configure.bat: entered into RCS
13116
131171992-06-22 Richard Stallman <rms@gnu.org>
13118
13119 * src/vmsgetargs.c: entered into RCS
13120
131211992-06-22 Richard Stallman <rms@gnu.org>
13122
13123 * doc/bison.rnh: entered into RCS
13124
131251992-04-20 David J. MacKenzie <djm@gnu.org>
13126
13127 * README: entered into RCS
13128
131291992-01-22 Richard Stallman <rms@gnu.org>
13130
13131 * src/machine.h: entered into RCS
13132
131331991-12-21 Richard Stallman <rms@gnu.org>
13134
13135 * src/lalr.c, src/closure.c:
13136 entered into RCS
13137
131381991-12-20 Richard Stallman <rms@gnu.org>
13139
13140 * src/state.h: entered into RCS
13141
131421991-12-18 Richard Stallman <rms@gnu.org>
13143
13144 * src/print.c, src/nullable.c, src/derives.c:
13145 entered into RCS
13146
131471991-11-03 David J. MacKenzie <djm@gnu.org>
13148
13149 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
13150 entered into RCS
13151
131521988-09-09 Richard Stallman <rms@gnu.org>
13153
13154 * src/bison.hairy: entered into RCS
13155
131561987-12-16 Richard Stallman <rms@gnu.org>
13157
13158 * REFERENCES: entered into RCS
13159
13160-----
13161
13162Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
131631998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
13164
13165This file is part of Bison, the GNU Compiler Compiler.
13166
13167Bison is free software; you can redistribute it and/or modify
13168it under the terms of the GNU General Public License as published by
13169the Free Software Foundation; either version 2, or (at your option)
13170any later version.
13171
13172Bison is distributed in the hope that it will be useful,
13173but WITHOUT ANY WARRANTY; without even the implied warranty of
13174MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13175GNU General Public License for more details.
13176
13177You should have received a copy of the GNU General Public License
13178along with Bison; see the file COPYING. If not, write to
13179the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
13180Boston, MA 02111-1307, USA.