]> git.saurik.com Git - bison.git/blob - ChangeLog
* src/lalr.h, src/lalr.c (goto_number_t): New.
[bison.git] / ChangeLog
1 2002-07-03 Akim Demaille <akim@epita.fr>
2
3 * src/lalr.h, src/lalr.c (goto_number_t): New.
4 * src/lalr.c (goto_list_t): New.
5 Propagate them.
6 * src/nullable.c (rule_list_t): New.
7 Propagate.
8 * src/types.h: Remove.
9
10 2002-07-03 Akim Demaille <akim@epita.fr>
11
12 * src/closure.c (print_fderives): Use rule_rhs_print.
13 * src/derives.c (print_derives): Use rule_rhs_print.
14 (rule_list_t): New, replaces `shorts'.
15 (set_derives): Add comments.
16 * tests/sets.at (Nullable, Firsts): Adjust.
17
18 2002-07-03 Akim Demaille <akim@epita.fr>
19
20 * src/output.c (prepare_actions): Free `tally' and `width'.
21 (prepare_actions): Allocate and free `order'.
22 * src/symtab.c (symbols_free): Free `symbols'.
23 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
24 * src/output.c (m4_invoke): Move to...
25 * src/scan-skel.l: here.
26 (<<EOF>>): Close yyout, and free its name.
27
28 2002-07-03 Akim Demaille <akim@epita.fr>
29
30 Fix some memory leaks, and fix a bug: state 0 was examined twice.
31
32 * src/LR0.c (new_state): Merge into...
33 (state_list_append): this.
34 (new_states): Merge into...
35 (generate_states): here.
36 (set_states): Don't ensure a proper `errs' state member here, do it...
37 * src/conflicts.c (conflicts_solve): here.
38 * src/state.h, src/state.c: Comment changes.
39 (state_t): Rename member `shifts' as `transitions'.
40 Adjust all dependencies.
41 (errs_new): For consistency, also take the values as argument.
42 (errs_dup): Remove.
43 (state_errs_set): New.
44 (state_reductions_set, state_transitions_set): Assert that no
45 previous value was assigned.
46 (state_free): New.
47 (states_free): Use it.
48 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
49 temporary storage: use `errs' and `nerrs' as elsewhere.
50 (set_conflicts): Allocate and free this `errs'.
51
52 2002-07-02 Akim Demaille <akim@epita.fr>
53
54 * lib/libiberty.h: New.
55 * lib: Update the bitset implementation from upstream.
56 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
57 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
58 * src/main.c: Adjust bitset stats calls.
59
60 2002-07-01 Paul Eggert <eggert@twinsun.com>
61
62 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
63 char, so that negative chars don't collide with $.
64
65 2002-06-30 Akim Demaille <akim@epita.fr>
66
67 Have the GLR tests be `warning' checked, and fix the warnings.
68
69 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
70 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
71 (yyremoveDeletes): `yyi' and `yyj' are size_t.
72 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
73 (yyaddDeferredAction): static.
74 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
75 (yyreportParseError): yyprefix is const.
76 yytokenp is used only when verbose.
77 (yy__GNUC__): Replace with __GNUC__.
78 (yypdumpstack): yyi is size_t.
79 (yypreference): Un-yy local variables and arguments, to avoid
80 clashes with `yyr1'. Anyway, we are not in the user name space.
81 (yytname_size): be an int, as is compared with ints.
82 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
83 Use them.
84 * tests/cxx-gram.at: Use quotation to protect $1.
85 Use AT_COMPILE to enable warnings hunts.
86 Prototype yylex and yyerror.
87 `Use' argc.
88 Include `string.h', not `strings.h'.
89 Produce and prototype stmtMerge only when used.
90 yylex takes a location.
91
92 2002-06-30 Akim Demaille <akim@epita.fr>
93
94 We spend a lot of time in quotearg, in particular when --verbose.
95
96 * src/symtab.c (symbol_get): Store a quoted version of the key.
97 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
98 Adjust all callers.
99
100 2002-06-30 Akim Demaille <akim@epita.fr>
101
102 * src/state.h (reductions_t): Rename member `nreds' as num.
103 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
104 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
105
106 2002-06-30 Akim Demaille <akim@epita.fr>
107
108 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
109 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
110 (shifts_to): Rename as...
111 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
112 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
113 (TRANSITION_IS_DISABLED, transitions_to): these.
114
115 2002-06-30 Akim Demaille <akim@epita.fr>
116
117 * src/print.c (print_shifts, print_gotos): Merge into...
118 (print_transitions): this.
119 (print_transitions, print_errs, print_reductions): Align the
120 lookaheads columns.
121 (print_core, print_transitions, print_errs, print_state,
122 print_grammar): Output empty lines separator before, not after.
123 (state_default_rule_compute): Rename as...
124 (state_default_rule): this.
125 * tests/conflicts.at (Defaulted Conflicted Reduction),
126 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
127 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
128
129 2002-06-30 Akim Demaille <akim@epita.fr>
130
131 Display items as we display rules.
132
133 * src/gram.h, src/gram.c (rule_lhs_print): New.
134 * src/gram.c (grammar_rules_partial_print): Use it.
135 * src/print.c (print_core): Likewise.
136 * tests/conflicts.at (Defaulted Conflicted Reduction),
137 (Unresolved SR Conflicts): Adjust.
138 (Unresolved SR Conflicts): Adjust and rename as...
139 (Resolved SR Conflicts): this, as was meant.
140 * tests/regression.at (Web2c Report): Adjust.
141
142 2002-06-30 Akim Demaille <akim@epita.fr>
143
144 * src/print.c (state_default_rule_compute): New, extracted from...
145 (print_reductions): here.
146 Pessimize, but clarify the code.
147 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
148
149 2002-06-30 Akim Demaille <akim@epita.fr>
150
151 * src/output.c (action_row): Let default_rule be always a rule
152 number.
153
154 2002-06-30 Akim Demaille <akim@epita.fr>
155
156 * src/closure.c (print_firsts, print_fderives, closure):
157 Use BITSET_EXECUTE.
158 * src/lalr.c (lookaheads_print): Likewise.
159 * src/state.c (state_rule_lookaheads_print): Likewise.
160 * src/print_graph.c (print_core): Likewise.
161 * src/print.c (print_reductions): Likewise.
162 * src/output.c (action_row): Likewise.
163 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
164
165 2002-06-30 Akim Demaille <akim@epita.fr>
166
167 * src/print_graph.c: Use report_flag.
168
169 2002-06-30 Akim Demaille <akim@epita.fr>
170
171 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
172 to...
173 * src/relation.h, src/relation.c (traverse, relation_digraph)
174 (relation_print, relation_transpose): New.
175
176 2002-06-30 Akim Demaille <akim@epita.fr>
177
178 * src/state.h, src/state.c (shifts_to): New.
179 * src/lalr.c (build_relations): Use it.
180
181 2002-06-30 Akim Demaille <akim@epita.fr>
182
183 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
184 (item_number_of_rule_number, rule_number_of_item_number): New.
185 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
186 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
187 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
188 Propagate their use.
189 Much remains to be done, in particular wrt `shorts' from types.h.
190
191 2002-06-30 Akim Demaille <akim@epita.fr>
192
193 * src/symtab.c (symbol_new): Initialize the `printer' member.
194
195 2002-06-30 Akim Demaille <akim@epita.fr>
196
197 * src/LR0.c (save_reductions): Remove, replaced by...
198 * src/state.h, src/state.c (state_reductions_set): New.
199 (reductions, errs): Rename as...
200 (reductions_t, errs_t): these.
201 Adjust all dependencies.
202
203 2002-06-30 Akim Demaille <akim@epita.fr>
204
205 * src/LR0.c (state_list_t, state_list_append): New.
206 (first_state, last_state): Now symbol_list_t.
207 (this_state): Remove.
208 (new_itemsets, append_states, save_reductions): Take a state_t as
209 argument.
210 (set_states, generate_states): Adjust.
211 (save_shifts): Remove, replaced by...
212 * src/state.h, src/state.c (state_shifts_set): New.
213 (shifts): Rename as...
214 (shifts_t): this.
215 Adjust all dependencies.
216 * src/state.h (state_t): Remove the `next' member.
217
218 2002-06-30 Akim Demaille <akim@epita.fr>
219
220 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
221 escaped in slot 0.
222
223 2002-06-30 Akim Demaille <akim@epita.fr>
224
225 Use hash.h for the state hash table.
226
227 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
228 (allocate_storage): Use state_hash_new.
229 (free_storage): Use state_hash_free.
230 (new_state, get_state): Adjust.
231 * src/lalr.h, src/lalr.c (states): Move to...
232 * src/states.h (state_t): Remove the `link' member, no longer
233 used.
234 * src/states.h, src/states.c: here.
235 (state_hash_new, state_hash_free, state_hash_lookup)
236 (state_hash_insert, states_free): New.
237 * src/states.c (state_table, state_compare, state_hash): New.
238 * src/output.c (output_actions): Do not free states now, since we
239 still need to know the final_state number in `prepare', called
240 afterwards. Do it...
241 * src/main.c (main): here: call states_free after `output'.
242
243 2002-06-30 Akim Demaille <akim@epita.fr>
244
245 * src/state.h, src/state.c (state_new): New, extracted from...
246 * src/LR0.c (new_state): here.
247 * src/state.h (STATE_ALLOC): Move to...
248 * src/state.c: here.
249 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
250 * src/state.h, src/state.c: here.
251
252 2002-06-30 Akim Demaille <akim@epita.fr>
253
254 * src/reader.c (gensym): Rename as...
255 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
256 (getsym): Rename as...
257 (symbol_get): this.
258
259 2002-06-30 Akim Demaille <akim@epita.fr>
260
261 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
262 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
263 * src/output.c, src/print.c, src/print_graph.c: Propagate.
264 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
265
266 2002-06-30 Akim Demaille <akim@epita.fr>
267
268 Make the test suite pass with warnings checked.
269
270 * tests/actions.at (Printers and Destructors): Improve.
271 Avoid unsigned vs. signed issues.
272 * tests/calc.at: Don't exercise the scanner here, do it...
273 * tests/input.at (Torturing the Scanner): here.
274
275 2002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
276
277 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
278 reorganize first lines parallel to yacc.c.
279
280 2002-06-28 Akim Demaille <akim@epita.fr>
281
282 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
283 (b4_token_enum, b4_token_defines): New, factored from...
284 * data/lalr1.cc, data/yacc.c, glr.c: here.
285
286 2002-06-28 Akim Demaille <akim@epita.fr>
287
288 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
289 unused variables.
290 * src/output.c (merger_output): static.
291
292 2002-06-28 Akim Demaille <akim@epita.fr>
293
294 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
295 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
296 pacify GCC.
297 * src/output.c (save_row): Initialize all the variables to pacify GCC.
298
299 2002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
300
301 Accumulated changelog for new GLR parsing features.
302
303 * src/conflicts.c (count_total_conflicts): Change name to
304 conflicts_total_count.
305 * src/conflicts.h: Ditto.
306 * src/output.c (token_actions): Use the new name.
307 (output_conflicts): Change conflp => conflict_list_heads, and
308 confl => conflict_list for better readability.
309 * data/glr.c: Use the new names.
310 * NEWS: Add self to GLR announcement.
311
312 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
313
314 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
315 Akim Demaille.
316
317 * data/bison.glr: Change name to glr.c
318 * data/glr.c: Renamed from bison.glr.
319 * data/Makefile.am: Add glr.c
320
321 * src/getargs.c:
322
323 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
324 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
325
326 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
327
328 * data/bison.glr: Be sure to restore the
329 current #line when returning to the skeleton contents after having
330 exposed the input file's #line.
331
332 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
333
334 * data/bison.glr: Bring up to date with changes to bison.simple.
335
336 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
337
338 * data/bison.glr: Correct definitions that use b4_prefix.
339 Various reformatting.
340 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
341 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
342 yytokenp argument; now part of stack.
343 (yychar): Define to behave as documented.
344 (yyclearin): Ditto.
345
346 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
347
348 * src/reader.h: Add declaration for free_merger_functions.
349
350 * src/reader.c (merge_functions): New variable.
351 (get_merge_function): New function.
352 (free_merger_functions): New function.
353 (readgram): Check for %prec that is not followed by a symbol.
354 Handle %dprec and %merge declarations.
355 (packgram): Initialize dprec and merger fields in rules array.
356
357 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
358 conflict_list_cnt, conflict_list_free): New variables.
359 (table_grow): Also grow conflict_table.
360 (prepare_rules): Output dprec and merger tables.
361 (conflict_row): New function.
362 (action_row): Output conflict lists for GLR parser. Don't use
363 default reduction in conflicted states for GLR parser so that there
364 are spaces for the conflict lists.
365 (save_row): Also save conflict information.
366 (token_actions): Allocate conflict list.
367 (merger_output): New function.
368 (pack_vector): Pack conflict table, too.
369 (output_conflicts): New function to output yyconflp and yyconfl.
370 (output_check): Allocate conflict_tos.
371 (output_actions): Output conflict tables, also.
372 (output_skeleton): Output b4_mergers definition.
373 (prepare): Output b4_max_rhs_length definition.
374 Use 'bison.glr' as default skeleton for GLR parsers.
375
376 * src/gram.c (glr_parser): New flag.
377 (grammar_free): Call free_merger_functions.
378
379 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
380 all pairs of conflicting reductions, rather than just all tokens
381 causing conflicts. Needed to size conflict tables.
382 (conflicts_output): Modify call to count_rr_conflicts for new
383 interface.
384 (conflicts_print): Ditto.
385 (count_total_conflicts): New function.
386
387 * src/reader.h (merger_list): New type.
388 (merge_functions): New variable.
389
390 * src/lex.h (tok_dprec, tok_merge): New token types.
391
392 * src/gram.h (rule_s): Add dprec and merger fields.
393 (glr_parser): New flag.
394
395 * src/conflicts.h (count_total_conflicts): New function.
396
397 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
398
399 * doc/bison.texinfo (Generalized LR Parsing): New section.
400 (GLR Parsers): New section.
401 (Language and Grammar): Mention GLR parsing.
402 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
403 Correct typo ("tge" -> "the").
404
405 * data/bison.glr: New skeleton for GLR parsing.
406
407 * tests/cxx-gram.at: New tests for GLR parsing.
408
409 * tests/testsuite.at: Include cxx-gram.at.
410
411 * tests/Makefile.am: Add cxx-gram.at.
412
413 * src/parse-gram.y:
414
415 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
416
417 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
418
419 2002-06-27 Akim Demaille <akim@epita.fr>
420
421 * src/options.h, src/options.c: Remove.
422 * src/getargs.c (short_options, long_options): New.
423
424 2002-06-27 Akim Demaille <akim@epita.fr>
425
426 * data/bison.simple, data/bison.c++: Rename as...
427 * data/yacc.c, data/lalr1.cc: these.
428 * doc/bison.texinfo (Environment Variables): Remove.
429
430 2002-06-25 Raja R Harinath <harinath@cs.umn.edu>
431
432 * src/getargs.c (report_argmatch): Initialize strtok().
433
434 2002-06-20 Akim Demaille <akim@epita.fr>
435
436 * data/bison.simple (b4_symbol_actions): New, replaces...
437 (b4_symbol_destructor, b4_symbol_printer): these.
438 (yysymprint): Be sure to call YYPRINT only for tokens, and using
439 user token numbers.
440
441 2002-06-20 Akim Demaille <akim@epita.fr>
442
443 * data/bison.simple (yydestructor): Rename as...
444 (yydestruct): this.
445
446 2002-06-20 Akim Demaille <akim@epita.fr>
447
448 * src/symtab.h, src/symtab.c (symbol_type_set)
449 (symbol_destructor_set, symbol_precedence_set): The location is
450 the last argument.
451 Adjust all callers.
452
453 2002-06-20 Akim Demaille <akim@epita.fr>
454
455 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
456 internals.
457 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
458 Takes a location.
459 * src/symtab.h, src/symtab.c (symbol_class_set)
460 (symbol_user_token_number_set): Likewise.
461 Adjust all callers.
462 Promote complain_at.
463 * tests/input.at (Type Clashes): Adjust.
464
465 2002-06-20 Akim Demaille <akim@epita.fr>
466
467 * data/bison.simple (YYLEX): Fix the declaration when
468 %pure-parser.
469
470 2002-06-20 Akim Demaille <akim@epita.fr>
471
472 * data/bison.simple (yysymprint): Don't print the token number,
473 just its name.
474 * tests/actions.at (Destructors): Rename as...
475 (Printers and Destructors): this.
476 Also exercise %printer.
477
478 2002-06-20 Akim Demaille <akim@epita.fr>
479
480 * data/bison.simple (YYDSYMPRINT): New.
481 Use it to remove many of the #if YYDEBUG/if (yydebug).
482
483 2002-06-20 Akim Demaille <akim@epita.fr>
484
485 * src/symtab.h, src/symtab.c (symbol_t): printer and
486 printer_location are new members.
487 (symbol_printer_set): New.
488 * src/parse-gram.y (PERCENT_PRINTER): New token.
489 Handle its associated rule.
490 * src/scan-gram.l: Adjust.
491 (handle_destructor_at, handle_destructor_dollar): Rename as...
492 (handle_symbol_code_at, handle_symbol_code_dollar): these.
493 * src/output.c (symbol_printers_output): New.
494 (output_skeleton): Call it.
495 * data/bison.simple (yysymprint): New. Cannot be named yyprint
496 since there are already many grammar files with a user `yyprint'.
497 Replace the calls to YYPRINT to calls to yysymprint.
498 * tests/calc.at: Adjust.
499 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
500 taking advantage of parser very internal details (stack size!).
501
502 2002-06-20 Akim Demaille <akim@epita.fr>
503
504 * src/scan-gram.l: Complete the scanner with the missing patterns
505 to pacify Flex.
506 Use `quote' and `symbol_tag_get' where appropriate.
507
508 2002-06-19 Akim Demaille <akim@epita.fr>
509
510 * tests/actions.at (Destructors): Augment to test locations.
511 * data/bison.simple (yydestructor): Pass it the current location
512 if locations are enabled.
513 Prototype only when __STDC__ or C++.
514 Change the argument names to move into the yy name space: there is
515 user code here.
516
517 2002-06-19 Akim Demaille <akim@epita.fr>
518
519 * data/bison.simple (b4_pure_if): New.
520 Use it instead of #ifdef YYPURE.
521
522 2002-06-19 Akim Demaille <akim@epita.fr>
523
524 * data/bison.simple (b4_location_if): New.
525 Use it instead of #ifdef YYLSP_NEEDED.
526
527 2002-06-19 Akim Demaille <akim@epita.fr>
528
529 Prepare @$ in %destructor, but currently don't bind it in the
530 skeleton, as %location use is not cleaned up yet.
531
532 * src/scan-gram.l (handle_dollar, handle_destructor_at)
533 (handle_action_at): New.
534 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
535 a braced_code_t and a location as additional arguments.
536 (handle_destructor_dollar): Instead of requiring `b4_eval', just
537 unquote one when outputting `b4_dollar_dollar'.
538 Adjust callers.
539 * data/bison.simple (b4_eval): Remove.
540 (b4_symbol_destructor): Adjust.
541 * tests/input.at (Invalid @n): Adjust.
542
543 2002-06-19 Zack Weinberg <zack@codesourcery.com>
544
545 * doc/bison.texinfo: Document ability to have multiple
546 prologue sections.
547
548 2002-06-18 Akim Demaille <akim@epita.fr>
549
550 * src/files.c (compute_base_names): When computing the output file
551 names from the input file name, strip the directory part.
552
553 2002-06-18 Akim Demaille <akim@epita.fr>
554
555 * data/bison.simple.new: Comment changes.
556 Reported by Andreas Schwab.
557
558 2002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
559
560 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
561 there are no `label `yyoverflowlab' defined but not used' warnings
562 when yyoverflow is defined.
563
564 2002-06-18 Akim Demaille <akim@epita.fr>
565
566 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
567 new member.
568 (symbol_destructor_set): Adjust.
569 * src/output.c (symbol_destructors_output): Output the destructor
570 locations.
571 Output the symbol name.
572 * data/bison.simple (b4_symbol_destructor): Adjust.
573
574 2002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
575 and Akim Demaille <akim@epita.fr>
576
577 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
578 what's left on the stack when the error recovery hits EOF.
579 * tests/actions.at (Destructors): Complete to exercise this case.
580
581 2002-06-17 Akim Demaille <akim@epita.fr>
582
583 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
584 arguments is really empty, not only equal to `[]'.
585 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
586 member.
587 (symbol_destructor_set): New.
588 * src/output.c (symbol_destructors_output): New.
589 * src/reader.h (brace_code_t, current_braced_code): New.
590 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
591 (handle_dollar): Rename as...
592 (handle_action_dollar): this.
593 (handle_destructor_dollar): New.
594 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
595 (grammar_declaration): Use it.
596 * data/bison.simple (yystos): Is always defined.
597 (yydestructor): New.
598 * tests/actions.at (Destructors): New.
599 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
600
601 2002-06-17 Akim Demaille <akim@epita.fr>
602
603 * src/symlist.h, src/symlist.c (symbol_list_length): New.
604 * src/scan-gram.l (handle_dollar, handle_at): Compute the
605 rule_length only when needed.
606 * src/output.c (actions_output, token_definitions_output): Output
607 the full M4 block.
608 * src/symtab.c: Don't access directly to the symbol tag, use
609 symbol_tag_get.
610 * src/parse-gram.y: Use symbol_list_free.
611
612 2002-06-17 Akim Demaille <akim@epita.fr>
613
614 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
615 (symbol_list_prepend, get_type_name): Move to...
616 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
617 (symbol_list_prepend, symbol_list_n_type_name_get): here.
618 Adjust all callers.
619 (symbol_list_free): New.
620 * src/scan-gram.l (handle_dollar): Takes a location.
621 * tests/input.at (Invalid $n): Adjust.
622
623 2002-06-17 Akim Demaille <akim@epita.fr>
624
625 * src/reader.h, src/reader.c (symbol_list_new): Export it.
626 (symbol_list_prepend): New.
627 * src/parse-gram.y (%union): `list' is a new member.
628 (symbols.1): New, replaces...
629 (terms_to_prec.1, nterms_to_type.1): these.
630 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
631 Take a location as additional argument.
632 Adjust all callers.
633
634 2002-06-15 Akim Demaille <akim@epita.fr>
635
636 * src/parse-gram.y: Move %token in the declaration section so that
637 we don't depend upon CVS Bison.
638
639 2002-06-15 Akim Demaille <akim@epita.fr>
640
641 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
642 * src/print.c (print_core): Use it.
643
644 2002-06-15 Akim Demaille <akim@epita.fr>
645
646 * src/conflicts.c (log_resolution): Accept the rule involved in
647 the sr conflicts instead of the lookahead number that points to
648 that rule.
649 (flush_reduce): Accept the current lookahead vector as argument,
650 instead of the index in LA.
651 (resolve_sr_conflict): Accept the current number of lookahead
652 bitset to consider for the STATE, instead of the index in LA.
653 (set_conflicts): Adjust.
654 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
655
656 2002-06-15 Akim Demaille <akim@epita.fr>
657
658 * src/state.h (state_t): Replace the `lookaheadsp' member, a
659 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
660 Adjust all dependencies.
661 * src/lalr.c (initialize_lookaheads): Split into...
662 (states_lookaheads_count, states_lookaheads_initialize): these.
663 (lalr): Adjust.
664
665 2002-06-15 Akim Demaille <akim@epita.fr>
666
667 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
668 out of...
669 (grammar_rules_print): here.
670 * src/reduce.c (reduce_output): Use it.
671 * tests/reduce.at (Useless Rules, Reduced Automaton)
672 (Underivable Rules): Adjust.
673
674 2002-06-15 Akim Demaille <akim@epita.fr>
675
676 Copy BYacc's nice way to report the grammar.
677
678 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
679 New.
680 Don't print the rules' location, it is confusing and useless.
681 (rule_print): Use grammar_rhs_print.
682 * src/print.c (print_grammar): Use grammar_rules_print.
683
684 2002-06-15 Akim Demaille <akim@epita.fr>
685
686 Complete and rationalize `useless thing' warnings.
687
688 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
689 (symbol_tag_print): New.
690 Use them everywhere in place of accessing directly the tag member.
691 * src/gram.h, src/gram.c (rule_print): New.
692 Use it where a rule used to be printed `by hand'.
693 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
694 (reduce_grammar_tables): Report the useless rules.
695 (reduce_print): Useless things are a warning, not an error.
696 Report it as such.
697 * tests/reduce.at (Useless Nonterminals, Useless Rules):
698 (Reduced Automaton, Underivable Rules): Adjust.
699 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
700 * tests/conflicts.at (Unresolved SR Conflicts)
701 (Solved SR Conflicts): Adjust.
702
703 2002-06-15 Akim Demaille <akim@epita.fr>
704
705 Let symbols have a location.
706
707 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
708 (getsym): Adjust.
709 Adjust all callers.
710 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
711 Use location_t, not int.
712 * src/symtab.c (symbol_check_defined): Take advantage of the
713 location.
714 * tests/regression.at (Invalid inputs): Adjust.
715
716 2002-06-15 Akim Demaille <akim@epita.fr>
717
718 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
719 (input): Don't try to initialize yylloc here, do it in the
720 scanner.
721 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
722 * src/gram.h (rule_t): Change line and action_line into location
723 and action_location, of location_t type.
724 Adjust all dependencies.
725 * src/location.h, src/location.c (empty_location): New.
726 * src/reader.h, src/reader.c (grammar_start_symbol_set)
727 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
728 (grammar_current_rule_symbol_append)
729 (grammar_current_rule_action_append): Expect a location as argument.
730 * src/reader.c (grammar_midrule_action): Adjust to attach an
731 action's location as dummy symbol location.
732 * src/symtab.h, src/symtab.c (startsymbol_location): New.
733 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
734 the line numbers.
735
736 2002-06-14 Akim Demaille <akim@epita.fr>
737
738 Grammar declarations may be found in the grammar section.
739
740 * src/parse-gram.y (rules_or_grammar_declaration): New.
741 (declarations): Each declaration may end with a semicolon, not
742 just...
743 (grammar_declaration): `"%union"'.
744 (grammar): Branch to rules_or_grammar_declaration.
745
746 2002-06-14 Akim Demaille <akim@epita.fr>
747
748 * src/main.c (main): Invoke scanner_free.
749
750 2002-06-14 Akim Demaille <akim@epita.fr>
751
752 * src/output.c (m4_invoke): Extracted from...
753 (output_skeleton): here.
754 Free tempfile.
755
756 2002-06-14 Akim Demaille <akim@epita.fr>
757
758 * src/parse-gram.y (directives, directive, gram)
759 (grammar_directives, precedence_directives, precedence_directive):
760 Rename as...
761 (declarations, declaration, grammar, grammar_declaration)
762 (precedence_declaration, precedence_declarator): these.
763 (symbol_declaration): New.
764
765 2002-06-14 Akim Demaille <akim@epita.fr>
766
767 * src/files.c (action_obstack): Remove, unused.
768 (output_obstack): Remove it, and all its dependencies, as it is no
769 longer needed.
770 * src/reader.c (epilogue_set): Build the epilogue in the
771 muscle_obstack.
772 * src/output.h, src/output.c (muscle_obstack): Move to...
773 * src/muscle_tab.h, src/muscle_tab.h: here.
774 (muscle_init): Initialize muscle_obstack.
775 (muscle_free): New.
776 * src/main.c (main): Call it.
777
778 2002-06-14 Akim Demaille <akim@epita.fr>
779
780 * src/location.h: New, extracted from...
781 * src/reader.h: here.
782 * src/Makefile.am (noinst_HEADERS): Merge into
783 (bison_SOURCES): this.
784 Add location.h.
785 * src/parse-gram.y: Use location_t instead of Bison's.
786 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
787 Use location_t instead of ints.
788
789 2002-06-14 Akim Demaille <akim@epita.fr>
790
791 * data/bison.simple, data/bison.c++: Be sure to restore the
792 current #line when returning to the skeleton contents after having
793 exposed the input file's #line.
794
795 2002-06-12 Akim Demaille <akim@epita.fr>
796
797 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
798 eager.
799 * tests/actions.at (Exotic Dollars): New.
800
801 2002-06-12 Akim Demaille <akim@epita.fr>
802
803 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
804 ['"/] too eagerly.
805 * tests/input.at (Torturing the Scanner): New.
806
807 2002-06-11 Akim Demaille <akim@epita.fr>
808
809 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
810 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
811 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
812 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
813 * src/reader.c (reader): Use it.
814
815 2002-06-11 Akim Demaille <akim@epita.fr>
816
817 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
818 Adjust all callers.
819 (scanner_last_string_free): New.
820
821 2002-06-11 Akim Demaille <akim@epita.fr>
822
823 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
824 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
825 (last_string, YY_OBS_FREE): New.
826 Use them when returning an ID.
827
828 2002-06-11 Akim Demaille <akim@epita.fr>
829
830 Have Bison grammars parsed by a Bison grammar.
831
832 * src/reader.c, src/reader.h (prologue_augment): New.
833 * src/reader.c (copy_definition): Remove.
834
835 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
836 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
837 (grammar_current_rule_prec_set, grammar_current_rule_check)
838 (grammar_current_rule_symbol_append)
839 (grammar_current_rule_action_append): Export.
840 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
841 (symbol_list_action_append): Remove.
842 Hook the routines from reader.
843 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
844 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
845
846 * src/reader.c (read_declarations): Remove, unused.
847
848 * src/parse-gram.y: Handle the epilogue.
849 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
850 (grammar_start_symbol_set): this.
851 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
852 * src/reader.c (readgram): Remove, unused.
853 (reader): Adjust to insert eoftoken and axiom where appropriate.
854
855 * src/reader.c (copy_dollar): Replace with...
856 * src/scan-gram.h (handle_dollar): this.
857 * src/parse-gram.y: Remove `%thong'.
858
859 * src/reader.c (copy_at): Replace with...
860 * src/scan-gram.h (handle_at): this.
861
862 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
863 New.
864
865 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
866 time being.
867
868 * src/reader.h, src/reader.c (grammar_rule_end): New.
869
870 * src/parse.y (current_type, current_class): New.
871 Implement `%nterm', `%token' support.
872 Merge `%term' into `%token'.
873 (string_as_id): New.
874 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
875 type name.
876
877 * src/parse-gram.y: Be sure to handle properly the beginning of
878 rules.
879
880 * src/parse-gram.y: Handle %type.
881 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
882
883 * src/parse-gram.y: More directives support.
884 * src/options.c: No longer handle source directives.
885
886 * src/parse-gram.y: Fix %output.
887
888 * src/parse-gram.y: Handle %union.
889 Use the prologue locations.
890 * src/reader.c (parse_union_decl): Remove.
891
892 * src/reader.h, src/reader.c (epilogue_set): New.
893 * src/parse-gram.y: Use it.
894
895 * data/bison.simple, data/bison.c++: b4_stype is now either not
896 defined, then default to int, or to the contents of %union,
897 without `union' itself.
898 Adjust.
899 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
900
901 * src/output.c (actions_output): Don't output braces, as they are
902 already handled by the scanner.
903
904 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
905 characters to themselves.
906
907 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
908 that the epilogue has a proper #line.
909
910 * src/parse-gram.y: Handle precedence/associativity.
911
912 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
913 a terminal.
914 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
915 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
916 at all to define terminals that cannot be emitted.
917
918 * src/scan-gram.l: Escape M4 characters.
919
920 * src/scan-gram.l: Working properly with escapes in user
921 strings/characters.
922
923 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
924 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
925 grammar.
926 Use more modest sizes, as for the time being the parser does not
927 release memory, and therefore the process swallows a huge amount
928 of memory.
929
930 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
931 stricter %token grammar.
932
933 * src/symtab.h (associativity): Add `undef_assoc'.
934 (symbol_precedence_set): Do nothing when passed an undef_assoc.
935 * src/symtab.c (symbol_check_alias_consistence): Adjust.
936
937 * tests/regression.at (Invalid %directive): Remove, as it is now
938 meaningless.
939 (Invalid inputs): Adjust to the new error messages.
940 (Token definitions): The new grammar doesn't allow too many
941 eccentricities.
942
943 * src/lex.h, src/lex.c: Remove.
944 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
945 (copy_character, copy_string2, copy_string, copy_identifier)
946 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
947 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
948 (parse_action): Remove.
949 * po/POTFILES.in: Adjust.
950
951 2002-06-11 Akim Demaille <akim@epita.fr>
952
953 * src/reader.c (parse_action): Don't store directly into the
954 rule's action member: return the action as a string.
955 Don't require `rule_length' as an argument: compute it.
956 (grammar_current_rule_symbol_append)
957 (grammar_current_rule_action_append): New, eved out from
958 (readgram): here.
959 Remove `action_flag', `rulelength', unused now.
960
961 2002-06-11 Akim Demaille <akim@epita.fr>
962
963 * src/reader.c (grammar_current_rule_prec_set).
964 (grammar_current_rule_check): New, eved out from...
965 (readgram): here.
966 Remove `xaction', `first_rhs': useless.
967 * tests/input.at (Type clashes): New.
968 * tests/existing.at (GNU Cim Grammar): Adjust.
969
970 2002-06-11 Akim Demaille <akim@epita.fr>
971
972 * src/reader.c (grammar_midrule_action): New, Eved out from
973 (readgram): here.
974
975 2002-06-11 Akim Demaille <akim@epita.fr>
976
977 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
978 New.
979 (readgram): Use them as replacement of inlined code, crule and
980 crule1.
981
982 2002-06-11 Akim Demaille <akim@epita.fr>
983
984 * src/reader.c (grammar_end, grammar_symbol_append): New.
985 (readgram): Use them.
986 Make the use of `p' as local as possible.
987
988 2002-06-10 Akim Demaille <akim@epita.fr>
989
990 GCJ's parser requires the tokens to be defined before the prologue.
991
992 * data/bison.simple: Output the token definition before the user's
993 prologue.
994 * tests/regression.at (Braces parsing, Duplicate string)
995 (Mixing %token styles): Check the output from bison.
996 (Early token definitions): New.
997
998 2002-06-10 Akim Demaille <akim@epita.fr>
999
1000 * src/symtab.c (symbol_user_token_number_set): Don't complain when
1001 assigning twice the same user number to a token, so that we can
1002 use it in...
1003 * src/lex.c (lex): here.
1004 Also use `symbol_class_set' instead of hand written code.
1005 * src/reader.c (parse_assoc_decl): Likewise.
1006
1007 2002-06-10 Akim Demaille <akim@epita.fr>
1008
1009 * src/symtab.c, src/symtab.c (symbol_class_set)
1010 (symbol_user_token_number_set): New.
1011 * src/reader.c (parse_token_decl): Use them.
1012 Use a switch instead of ifs.
1013 Use a single argument.
1014
1015 2002-06-10 Akim Demaille <akim@epita.fr>
1016
1017 Remove `%thong' support as it is undocumented, unused, duplicates
1018 `%token's job, and creates useless e-mail traffic with people who
1019 want to know what it is, why it is undocumented, unused, and
1020 duplicates `%token's job.
1021
1022 * src/reader.c (parse_thong_decl): Remove.
1023 * src/options.c (option_table): Remove "thong".
1024 * src/lex.h (tok_thong): Remove.
1025
1026 2002-06-10 Akim Demaille <akim@epita.fr>
1027
1028 * src/symtab.c, src/symtab.c (symbol_type_set)
1029 (symbol_precedence_set): New.
1030 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
1031 (value_components_used): Remove, unused.
1032
1033 2002-06-09 Akim Demaille <akim@epita.fr>
1034
1035 Move symbols handling code out of the reader.
1036
1037 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
1038 (axiom): Move to...
1039 * src/symtab.h, src/symtab.c: here.
1040
1041 * src/gram.c (start_symbol): Remove: use startsymbol->number.
1042 * src/reader.c (startval): Rename as...
1043 * src/symtab.h, src/symtab.c (startsymbol): this.
1044 * src/reader.c: Adjust.
1045
1046 * src/reader.c (symbol_check_defined, symbol_make_alias)
1047 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
1048 (token_translations_init)
1049 Move to...
1050 * src/symtab.c: here.
1051 * src/reader.c (packsymbols): Move to...
1052 * src/symtab.h, src/symtab.c (symbols_pack): here.
1053 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
1054 argument.
1055
1056 2002-06-03 Akim Demaille <akim@epita.fr>
1057
1058 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
1059 then statements.
1060
1061 2002-06-03 Akim Demaille <akim@epita.fr>
1062
1063 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
1064 structs with non literals.
1065 * src/scan-skel.l: never-interactive.
1066 * src/conflicts.c (enum conflict_resolution_e): No trailing
1067 comma.
1068 * src/getargs.c (usage): Split long literal strings.
1069 Reported by Hans Aberg.
1070
1071 2002-05-28 Akim Demaille <akim@epita.fr>
1072
1073 * data/bison.c++: Use C++ ostreams.
1074 (cdebug_): New member.
1075
1076 2002-05-28 Akim Demaille <akim@epita.fr>
1077
1078 * src/output.c (output_skeleton): Be sure to allocate enough room
1079 for `/' _and_ for `\0' in full_skeleton.
1080
1081 2002-05-28 Akim Demaille <akim@epita.fr>
1082
1083 * data/bison.c++: Catch up with bison.simple:
1084 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1085 and Paul Eggert <eggert@twinsun.com>: `error' handing.
1086 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
1087 and popping traces.
1088
1089 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1090
1091 * src/output.c (output_skeleton): Put an explicit path in front of
1092 the skeleton file name, rather than relying on the -I directory,
1093 to partially alleviate effects of having a skeleton file lying around
1094 in the current directory.
1095
1096 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1097
1098 * src/conflicts.c (log_resolution): Correct typo:
1099 obstack_printf should be obstack_fgrow1.
1100
1101 2002-05-26 Akim Demaille <akim@epita.fr>
1102
1103 * src/state.h (state_t): `solved_conflicts' is a new member.
1104 * src/LR0.c (new_state): Set it to 0.
1105 * src/conflicts.h, src/conflicts.c (print_conflicts)
1106 (free_conflicts, solve_conflicts): Rename as...
1107 (conflicts_print, conflicts_free, conflicts_solve): these.
1108 Adjust callers.
1109 * src/conflicts.c (enum conflict_resolution_e)
1110 (solved_conflicts_obstack): New, used by...
1111 (log_resolution): this.
1112 Adjust to attach the conflict resolution to each state.
1113 Complete the description with the precedence/associativity
1114 information.
1115 (resolve_sr_conflict): Adjust.
1116 * src/print.c (print_state): Output its solved_conflicts.
1117 * tests/conflicts.at (Unresolved SR Conflicts)
1118 (Solved SR Conflicts): Exercise --report=all.
1119
1120 2002-05-26 Akim Demaille <akim@epita.fr>
1121
1122 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
1123 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
1124 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
1125 (token_number_t, item_number_as_token_number)
1126 (token_number_as_item_number, muscle_insert_token_number_table):
1127 Rename as...
1128 (symbol_number_t, item_number_as_symbol_number)
1129 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
1130 these, since it is more appropriate.
1131
1132 2002-05-26 Akim Demaille <akim@epita.fr>
1133
1134 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
1135 `Error:' lines.
1136 * data/bison.simple (yystos) [YYDEBUG]: New.
1137 (yyparse) [YYDEBUG]: Display the symbols which are popped during
1138 error recovery.
1139 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
1140
1141 2002-05-25 Akim Demaille <akim@epita.fr>
1142
1143 * doc/bison.texinfo (Debugging): Split into...
1144 (Tracing): this new section, its former contents, and...
1145 (Understanding): this new section.
1146 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
1147 by...
1148 (report_flag): this.
1149 Adjust all dependencies.
1150 (report_args, report_types, report_argmatch): New.
1151 (usage, getargs): Report/support -r, --report.
1152 * src/options.h
1153 (struct option_table_struct): Rename as..,
1154 (struct option_table_s): this.
1155 Rename the `set_flag' member to `flag' to match with getopt_long's
1156 struct.
1157 * src/options.c (option_table): Split verbose into an entry for
1158 %verbose, and another for --verbose.
1159 Support --report/-r, so remove -r from the obsolete --raw.
1160 * src/print.c: Attach full item sets and lookaheads reports to
1161 report_flag instead of trace_flag.
1162 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
1163
1164 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1165 and Paul Eggert <eggert@twinsun.com>
1166
1167 * data/bison.simple (yyparse): Correct error handling to conform to
1168 POSIX and yacc. Specifically, after syntax error is discovered,
1169 do not reduce further before shifting the error token.
1170 Clean up the code a bit by removing the labels yyerrdefault,
1171 yyerrhandle, yyerrpop.
1172 * NEWS: Document the above.
1173
1174 2002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1175
1176 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
1177 type; it isn't always big enough, since it doesn't necessarily
1178 include non-terminals.
1179 (yytranslate): Expand definition of yy_token_number_type, so that
1180 the latter can be removed.
1181 (yy_token_number_type): Remove, only one use.
1182 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
1183 don't use TokenNumberType as element type.
1184
1185 * tests/regression.at: Modify expected output to agree with change
1186 to yyr1 and yytranslate.
1187
1188 2002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
1189
1190 * src/reader.c (parse_action): Use copy_character instead of
1191 obstack_1grow.
1192
1193 2002-05-13 Akim Demaille <akim@epita.fr>
1194
1195 * tests/regression.at (Token definitions): Prototype yylex and
1196 yyerror.
1197
1198 2002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1199
1200 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
1201 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
1202 32-bit arithmetic.
1203 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
1204
1205 2002-05-07 Akim Demaille <akim@epita.fr>
1206
1207 * tests/synclines.at: Be sure to prototype yylex and yyerror to
1208 avoid GCC warnings.
1209
1210 2002-05-07 Akim Demaille <akim@epita.fr>
1211
1212 Kill GCC warnings.
1213
1214 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
1215 over the RHS of each rule.
1216 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
1217 * src/state.h (state_t): Member `nitems' is unsigned short.
1218 * src/LR0.c (get_state): Adjust.
1219 * src/reader.c (packgram): Likewise.
1220 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
1221 `Type'.
1222 (muscle_insert_int_table): Remove, unused.
1223 (prepare_rules): Remove `max'.
1224
1225 2002-05-06 Akim Demaille <akim@epita.fr>
1226
1227 * src/closure.c (print_firsts): Display of the symbol tags.
1228 (bitmatrix_print): Move to...
1229 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
1230 here.
1231 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
1232
1233 2002-05-06 Akim Demaille <akim@epita.fr>
1234
1235 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
1236 hash_do_for_each.
1237
1238 2002-05-06 Akim Demaille <akim@epita.fr>
1239
1240 * src/LR0.c (new_state, get_state): Instead of using the global
1241 `kernel_size' and `kernel_base', have two new arguments:
1242 `core_size' and `core'.
1243 Adjust callers.
1244
1245 2002-05-06 Akim Demaille <akim@epita.fr>
1246
1247 * src/reader.c (packgram): No longer end `ritem' with a 0
1248 sentinel: it is not used.
1249
1250 2002-05-05 Akim Demaille <akim@epita.fr>
1251
1252 New experimental feature: display the lookaheads in the report and
1253 graph.
1254
1255 * src/print (print_core): When --trace-flag, display the rules
1256 lookaheads.
1257 * src/print_graph.c (print_core): Likewise.
1258 Swap the arguments.
1259 Adjust caller.
1260
1261 2002-05-05 Akim Demaille <akim@epita.fr>
1262
1263 * tests/torture.at (Many lookaheads): New test.
1264
1265 2002-05-05 Akim Demaille <akim@epita.fr>
1266
1267 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
1268 (GENERATE_MUSCLE_INSERT_TABLE): this.
1269 (output_int_table, output_unsigned_int_table, output_short_table)
1270 (output_token_number_table, output_item_number_table): Replace with...
1271 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
1272 (muscle_insert_short_table, muscle_insert_token_number_table)
1273 (muscle_insert_item_number_table): these.
1274 Adjust all callers.
1275 (prepare_tokens): Don't free `translations', since...
1276 * src/reader.h, src/reader.c (grammar_free): do it.
1277 Move to...
1278 * src/gram.h, src/gram.c (grammar_free): here.
1279 * data/bison.simple, data/bison.c++: b4_token_number_max is now
1280 b4_translate_max.
1281
1282 2002-05-05 Akim Demaille <akim@epita.fr>
1283
1284 * src/output.c (output_unsigned_int_table): New.
1285 (prepare_rules): `i' is unsigned.
1286 `prhs', `rline', `r2' are unsigned int.
1287 Rename muscle `rhs_number_max' as `rhs_max'.
1288 Output muscles `prhs_max', `rline_max', and `r2_max'.
1289 Free rline and r1.
1290 * data/bison.simple, data/bison.c++: Adjust to use these muscles
1291 to compute types instead of constant types.
1292 * tests/regression.at (Web2c Actions): Adjust.
1293
1294 2002-05-04 Akim Demaille <akim@epita.fr>
1295
1296 * src/symtab.h (SALIAS, SUNDEF): Rename as...
1297 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
1298 Adjust dependencies.
1299 * src/output.c (token_definitions_output): Be sure not to output a
1300 `#define 'a'' when fed with `%token 'a' "a"'.
1301 * tests/regression.at (Token definitions): New.
1302
1303 2002-05-03 Paul Eggert <eggert@twinsun.com>
1304
1305 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
1306 for K&R C.
1307
1308 2002-05-03 gettextize <bug-gnu-gettext@gnu.org>
1309
1310 * Makefile.am (SUBDIRS): Remove intl.
1311 (EXTRA_DIST): Add config/config.rpath.
1312
1313 2002-05-03 Akim Demaille <akim@epita.fr>
1314
1315 * data/bison.simple (m4_if): Don't output empty enums.
1316 And actually, output valid enum definitions :(.
1317
1318 2002-05-03 Akim Demaille <akim@epita.fr>
1319
1320 * configure.bat: Remove, completely obsolete.
1321 * Makefile.am (EXTRA_DIST): Adjust.
1322 Don't distribute config.rpath...
1323 * config/Makefile.am (EXTRA_DIST): Do it.
1324
1325 2002-05-03 Akim Demaille <akim@epita.fr>
1326
1327 * configure.in (GETTEXT_VERSION): New.
1328 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
1329
1330 2002-05-03 Akim Demaille <akim@epita.fr>
1331
1332 * data/bison.simple (b4_token_enum): New.
1333 (b4_token_defines): Use it to output tokens both as #define and
1334 enums.
1335 Suggested by Paul Eggert.
1336 * src/output.c (token_definitions_output): Don't output spurious
1337 white spaces.
1338
1339 2002-05-03 Akim Demaille <akim@epita.fr>
1340
1341 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
1342
1343 2002-05-02 Robert Anisko <robert@lrde.epita.fr>
1344
1345 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
1346 Update the stack class, give a try to deque as the default container.
1347
1348 2002-05-02 Akim Demaille <akim@epita.fr>
1349
1350 * data/bison.simple (yyparse): Do not implement @$ = @1.
1351 (YYLLOC_DEFAULT): Adjust to do it.
1352 * doc/bison.texinfo (Location Default Action): Fix.
1353
1354 2002-05-02 Akim Demaille <akim@epita.fr>
1355
1356 * src/reader.c (parse_braces): Merge into...
1357 (parse_action): this.
1358
1359 2002-05-02 Akim Demaille <akim@epita.fr>
1360
1361 * configure.in (ALL_LINGUAS): Remove.
1362 * po/LINGUAS, hr.po: New.
1363
1364 2002-05-02 Akim Demaille <akim@epita.fr>
1365
1366 Remove the so called hairy (semantic) parsers.
1367
1368 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
1369 * src/gram.h, src/gram.c (semantic_parser): Remove.
1370 (rule_t): Remove the guard and guard_line members.
1371 * src/lex.h (token_t): remove tok_guard.
1372 * src/options.c (option_table): Remove %guard and %semantic_parser
1373 support.
1374 * src/output.c, src/output.h (guards_output): Remove.
1375 (prepare): Adjust.
1376 (token_definitions_output): Don't output the `T'
1377 tokens (???).
1378 (output_skeleton): Don't output the guards.
1379 * src/files.c, src/files.c (attrsfile): Remove.
1380 * src/reader.c (symbol_list): Remove the guard and guard_line
1381 members.
1382 Adjust dependencies.
1383 (parse_guard): Remove.
1384 * data/bison.hairy: Remove.
1385 * doc/bison.texinfo (Environment Variables): Remove occurrences of
1386 BISON_HAIRY.
1387
1388 2002-05-02 Akim Demaille <akim@epita.fr>
1389
1390 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
1391 (parse_guard): Rename the formal argument `stack_offset' as
1392 `rule_length', which is more readable.
1393 Adjust callers.
1394 (copy_at, copy_dollar): Instead of outputting the hard coded
1395 values of $$, $n and so forth, output invocation to b4_lhs_value,
1396 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
1397 Note: this patch partially drops `semantic-parser' support: it
1398 always does `rule_length - n', where semantic parsers ought to
1399 always use `-n'.
1400 * data/bison.simple, data/bison.c++ (b4_lhs_value)
1401 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
1402
1403 2002-05-02 Akim Demaille <akim@epita.fr>
1404
1405 * configure.in (AC_INIT): Bump to 1.49b.
1406 (AM_INIT_AUTOMAKE): Short invocation.
1407
1408 2002-05-02 Akim Demaille <akim@epita.fr>
1409
1410 Version 1.49a.
1411
1412 2002-05-01 Akim Demaille <akim@epita.fr>
1413
1414 * src/skeleton.h: Remove.
1415
1416 2002-05-01 Akim Demaille <akim@epita.fr>
1417
1418 * src/skeleton.h: Fix the #endif.
1419 Reported by Magnus Fromreide.
1420
1421 2002-04-26 Paul Eggert <eggert@twinsun.com>
1422
1423 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
1424 Define if we define YYSTYPE and YYLTYPE, respectively.
1425 (YYCOPY): Fix [] quoting problem in the non-GCC case.
1426
1427 2002-04-25 Robert Anisko <robert@lrde.epita.fr>
1428
1429 * src/scan-skel.l: Postprocess quadrigraphs.
1430
1431 * src/reader.c (copy_character): New function, used to output
1432 single characters while replacing `[' and `]' with quadrigraphs, to
1433 avoid troubles with M4 quotes.
1434 (copy_comment): Output characters with copy_character.
1435 (read_additionnal_code): Likewise.
1436 (copy_string2): Likewise.
1437 (copy_definition): Likewise.
1438
1439 * tests/calc.at: Exercise M4 quoting.
1440
1441 2002-04-25 Akim Demaille <akim@epita.fr>
1442
1443 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
1444 between `!' and the command.
1445 Reported by Paul Eggert.
1446
1447 2002-04-24 Robert Anisko <robert@lrde.epita.fr>
1448
1449 * tests/calc.at: Exercise prologue splitting.
1450
1451 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
1452 `b4_post_prologue' instead of `b4_prologue'.
1453
1454 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
1455 muscles.
1456 (output): Free pre_prologue_obstack and post_prologue_obstack.
1457 * src/files.h, src/files.c (attrs_obstack): Remove.
1458 (pre_prologue_obstack, post_prologue_obstack): New.
1459 * src/reader.c (copy_definition): Add a parameter to specify the
1460 obstack to fill, instead of using attrs_obstack unconditionally.
1461 (read_declarations): Pass pre_prologue_obstack to copy_definition if
1462 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
1463
1464 2002-04-23 Paul Eggert <eggert@twinsun.com>
1465
1466 * data/bison.simple: Remove unnecessary commentary and white
1467 space differences from 1_29-branch.
1468 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
1469
1470 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
1471 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
1472 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
1473 constructors or destructors.
1474
1475 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
1476
1477 2002-04-23 Akim Demaille <akim@epita.fr>
1478
1479 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
1480 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
1481 location with columns.
1482 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
1483 All reported by Paul Eggert.
1484
1485 2002-04-22 Akim Demaille <akim@epita.fr>
1486
1487 * src/reduce.c (dump_grammar): Move to...
1488 * src/gram.h, src/gram.c (grammar_dump): here.
1489 Be sure to separate long item numbers.
1490 Don't read the members of a rule's prec if its nil.
1491
1492 2002-04-22 Akim Demaille <akim@epita.fr>
1493
1494 * src/output.c (table_size, table_grow): New.
1495 (MAXTABLE): Remove, replace uses with table_size.
1496 (pack_vector): Instead of dying when the table is too big, grow it.
1497
1498 2002-04-22 Akim Demaille <akim@epita.fr>
1499
1500 * data/bison.simple (yyr1): Its type is that of a token number.
1501 * data/bison.c++ (r1_): Likewise.
1502 * tests/regression.at (Web2c Actions): Adjust.
1503
1504 2002-04-22 Akim Demaille <akim@epita.fr>
1505
1506 * src/reader.c (token_translations_init): 256 is now the default
1507 value for the error token, i.e., it will be assigned another
1508 number if the user assigned 256 to one of her tokens.
1509 (reader): Don't force 256 to error.
1510 * doc/bison.texinfo (Symbols): Adjust.
1511 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
1512 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
1513 etc. instead of 10, 20, 30 (which was used to `jump' over error
1514 (256) and undefined (2)).
1515
1516 2002-04-22 Akim Demaille <akim@epita.fr>
1517
1518 Propagate more token_number_t.
1519
1520 * src/gram.h (token_number_as_item_number)
1521 (item_number_as_token_number): New.
1522 * src/output.c (GENERATE_OUTPUT_TABLE): New.
1523 Use it to create output_item_number_table and
1524 output_token_number_table.
1525 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
1526 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
1527 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
1528 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
1529
1530 2002-04-22 Akim Demaille <akim@epita.fr>
1531
1532 * src/output.h, src/output.c (get_lines_number): Remove.
1533
1534 2002-04-19 Akim Demaille <akim@epita.fr>
1535
1536 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
1537 as Lex/Flex'.
1538 (Debugging): More details about enabling the debugging features.
1539 (Table of Symbols): Describe $$, $n, @$, and @n.
1540 Suggested by Tim Josling.
1541
1542 2002-04-19 Akim Demaille <akim@epita.fr>
1543
1544 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
1545
1546 2002-04-10 Akim Demaille <akim@epita.fr>
1547
1548 * src/system.h: Rely on HAVE_LIMITS_H.
1549 Suggested by Paul Eggert.
1550
1551 2002-04-09 Akim Demaille <akim@epita.fr>
1552
1553 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
1554 full stderr, and strip it according to the bison options, instead
1555 of composing the error message from different bits.
1556 This makes it easier to check for several error messages.
1557 Adjust all the invocations.
1558 Add an invocation exercising the error token.
1559 Add an invocation demonstrating a stupid error message.
1560 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
1561 Adjust the tests.
1562 Error message are for stderr, not stdout.
1563
1564 2002-04-09 Akim Demaille <akim@epita.fr>
1565
1566 * src/gram.h, src/gram.c (error_token_number): Remove, use
1567 errtoken->number.
1568 * src/reader.c (reader): Don't specify the user token number (2)
1569 for $undefined, as it uselessly prevents using it.
1570 * src/gram.h (token_number_t): Move to...
1571 * src/symtab.h: here.
1572 (state_t.number): Is a token_number_t.
1573 * src/print.c, src/reader.c: Use undeftoken->number instead of
1574 hard coded 2.
1575 (Even though this 2 is not the same as above: the number of the
1576 undeftoken remains being 2, it is its user token number which
1577 might not be 2).
1578 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
1579 `user_token_number_max'.
1580 Output `undef_token_number'.
1581 * data/bison.simple, data/bison.c++: Use them.
1582 Be sure to map invalid yylex return values to
1583 `undef_token_number'. This saves us from gratuitous SEGV.
1584
1585 * tests/conflicts.at (Solved SR Conflicts)
1586 (Unresolved SR Conflicts): Adjust.
1587 * tests/regression.at (Web2c Actions): Adjust.
1588
1589 2002-04-08 Akim Demaille <akim@epita.fr>
1590
1591 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
1592 Adding #line.
1593 Remove the duplicate `typedefs'.
1594 (RhsNumberType): Fix the declaration and various other typos.
1595 Use __ofile__.
1596 * data/bison.simple: Use __ofile__.
1597 * src/scan-skel.l: Handle __ofile__.
1598
1599 2002-04-08 Akim Demaille <akim@epita.fr>
1600
1601 * src/gram.h (item_number_t): New, the type of item numbers in
1602 RITEM. Note that it must be able to code symbol numbers as
1603 positive number, and the negation of rule numbers as negative
1604 numbers.
1605 Adjust all dependencies (pretty many).
1606 * src/reduce.c (rule): Remove this `short *' pointer: use
1607 item_number_t.
1608 * src/system.h (MINSHORT, MAXSHORT): Remove.
1609 Include `limits.h'.
1610 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
1611 (shortcpy): Remove.
1612 (MAXTABLE): Move to...
1613 * src/output.c (MAXTABLE): here.
1614 (prepare_rules): Use output_int_table to output rhs.
1615 * data/bison.simple, data/bison.c++: Adjust.
1616 * tests/torture.at (Big triangle): Move the limit from 254 to
1617 500.
1618 * tests/regression.at (Web2c Actions): Ajust.
1619
1620 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
1621 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
1622 passes, but produces negative #line number, once fixed, GCC is
1623 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
1624 C), it passes.
1625 * src/state.h (state_h): Code input lines on ints, not shorts.
1626
1627 2002-04-08 Akim Demaille <akim@epita.fr>
1628
1629 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
1630 and then the grammar.
1631
1632 2002-04-08 Akim Demaille <akim@epita.fr>
1633
1634 * src/system.h: No longer using strndup.
1635
1636 2002-04-07 Akim Demaille <akim@epita.fr>
1637
1638 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
1639 * src/output.c (output_table_data): Return the longest number.
1640 (prepare_tokens): Output `token_number_max').
1641 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
1642 New.
1643 Use them to define yy_token_number_type/TokenNumberType.
1644 Use this type for yytranslate.
1645 * tests/torture.at (Big triangle): Push the limit from 124 to
1646 253.
1647 * tests/regression.at (Web2c Actions): Adjust.
1648
1649 2002-04-07 Akim Demaille <akim@epita.fr>
1650
1651 * tests/torture.at (Big triangle): New.
1652 (GNU AWK Grammar, GNU Cim Grammar): Move to...
1653 * tests/existing.at: here.
1654
1655 2002-04-07 Akim Demaille <akim@epita.fr>
1656
1657 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
1658 nritems.
1659 Adjust dependencies.
1660
1661 2002-04-07 Akim Demaille <akim@epita.fr>
1662
1663 * src/reader.c: Normalize increments to prefix form.
1664
1665 2002-04-07 Akim Demaille <akim@epita.fr>
1666
1667 * src/reader.c, symtab.c: Remove debugging code.
1668
1669 2002-04-07 Akim Demaille <akim@epita.fr>
1670
1671 Rename all the `bucket's as `symbol_t'.
1672
1673 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
1674 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
1675 * src/symtab.c, src/symtab.h (bucket): Rename as...
1676 (symbol_t): this.
1677 (symbol_list_new, bucket_check_defined, bucket_make_alias)
1678 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
1679 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
1680 (buckets_new, buckets_free, buckets_do): Rename as...
1681 (symbol_list_new, symbol_check_defined, symbol_make_alias)
1682 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
1683 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
1684 (symbols_new, symbols_free, symbols_do): these.
1685
1686 2002-04-07 Akim Demaille <akim@epita.fr>
1687
1688 Use lib/hash for the symbol table.
1689
1690 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
1691 EOF.
1692 * src/lex.c (lex): Set the `number' member of new terminals.
1693 * src/reader.c (bucket_check_defined, bucket_make_alias)
1694 (bucket_check_alias_consistence, bucket_translation): New.
1695 (reader, grammar_free, readgram, token_translations_init)
1696 (packsymbols): Adjust.
1697 (reader): Number the predefined tokens.
1698 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
1699 for predefined tokens.
1700 * src/symtab.h (bucket): Remove all the hash table related
1701 members.
1702 * src/symtab.c (symtab): Replace by...
1703 (bucket_table): this.
1704 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
1705 (buckets_new, buckets_do): New.
1706
1707 2002-04-07 Akim Demaille <akim@epita.fr>
1708
1709 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
1710 (start_symbol, max_user_token_number, semantic_parser)
1711 (error_token_number): Initialize.
1712 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
1713 Initialize.
1714 (reader): Don't.
1715 (errtoken, eoftoken, undeftoken, axiom): Extern.
1716
1717 2002-04-07 Akim Demaille <akim@epita.fr>
1718
1719 * src/gram.h (rule_s): prec and precsym are now pointers
1720 to the bucket giving the priority/associativity.
1721 Member `associativity' removed: useless.
1722 * src/reduce.c, src/conflicts.c: Adjust.
1723
1724 2002-04-07 Akim Demaille <akim@epita.fr>
1725
1726 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
1727 Properly escape the symbols' TAG when outputting them.
1728
1729 2002-04-07 Akim Demaille <akim@epita.fr>
1730
1731 * src/lalr.h (LA): Is a bitsetv, not bitset*.
1732
1733 2002-04-07 Akim Demaille <akim@epita.fr>
1734
1735 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
1736 (LArule): this, which is an array to rule_t*.
1737 * src/print.c, src/conflicts.c: Adjust.
1738
1739 2002-04-07 Akim Demaille <akim@epita.fr>
1740
1741 * src/gram.h (rule_t): Rename `number' as `user_number'.
1742 `number' is a new member.
1743 Adjust dependencies.
1744 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
1745
1746 2002-04-07 Akim Demaille <akim@epita.fr>
1747
1748 As a result of the previous patch, it is no longer needed
1749 to reorder ritem itself.
1750
1751 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
1752
1753 2002-04-07 Akim Demaille <akim@epita.fr>
1754
1755 Be sure never to walk through RITEMS, but use only data related to
1756 the rules themselves. RITEMS should be banished.
1757
1758 * src/output.c (output_token_translations): Rename as...
1759 (prepare_tokens): this.
1760 In addition to `translate', prepare the muscles `tname' and
1761 `toknum', which were handled by...
1762 (output_rule_data): this.
1763 Remove, and move the remainder of its outputs into...
1764 (prepare_rules): this new routines, which also merges content from
1765 (output_gram): this.
1766 (prepare_rules): Be sure never to walk through RITEMS.
1767 (output_stos): Rename as...
1768 (prepare_stos): this.
1769 (output): Always invoke prepare_states, after all, just don't use it
1770 in the output if you don't need it.
1771
1772 2002-04-07 Akim Demaille <akim@epita.fr>
1773
1774 * src/LR0.c (new_state): Display `nstates' as the name of the
1775 newly created state.
1776 Adjust to initialize first_state and last_state if needed.
1777 Be sure to distinguish the initial from the final state.
1778 (new_states): Create the itemset of the initial state, and use
1779 new_state.
1780 * src/closure.c (closure): Now that the initial state has its
1781 items properly set, there is no need for a special case when
1782 creating `ruleset'.
1783
1784 As a result, now the rule 0, reducing to $axiom, is visible in the
1785 outputs. Adjust the test suite.
1786
1787 * tests/conflicts.at (Solved SR Conflicts)
1788 (Unresolved SR Conflicts): Adjust.
1789 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
1790 * tests/conflicts.at (S/R in initial): New.
1791
1792 2002-04-07 Akim Demaille <akim@epita.fr>
1793
1794 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
1795 the RHS of the rules.
1796 * src/output.c (output_gram): Likewise.
1797
1798 2002-04-07 Akim Demaille <akim@epita.fr>
1799
1800 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
1801 bucket.
1802 Adjust all dependencies.
1803 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
1804 `number' of the buckets too.
1805 * src/gram.h: Include `symtab.h'.
1806 (associativity): Move to...
1807 * src/symtab.h: here.
1808 No longer include `gram.h'.
1809
1810 2002-04-07 Akim Demaille <akim@epita.fr>
1811
1812 * src/gram.h, src/gram.c (rules_rhs_length): New.
1813 (ritem_longest_rhs): Use it.
1814 * src/gram.h (rule_t): `number' is a new member.
1815 * src/reader.c (packgram): Set it.
1816 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
1817 the end of `rules', and count them out of `nrules'.
1818 (reduce_output, dump_grammar): Adjust.
1819 * src/print.c (print_grammar): It is no longer needed to check for
1820 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
1821 * tests/reduce.at (Reduced Automaton): New test.
1822
1823 2002-04-07 Akim Demaille <akim@epita.fr>
1824
1825 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
1826 lacking `+ 1' to nrules, Bison reported as useless a token if it
1827 was used solely to set the precedence of the last rule...
1828
1829 2002-04-07 Akim Demaille <akim@epita.fr>
1830
1831 * data/bison.c++, data/bison.simple: Don't output the current file
1832 name in #line, to avoid useless diffs between two identical
1833 outputs under different names.
1834
1835 2002-04-07 Akim Demaille <akim@epita.fr>
1836
1837 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
1838 Normalize loops to using `< nrules + 1', not `<= nrules'.
1839
1840 2002-04-07 Akim Demaille <akim@epita.fr>
1841
1842 * TODO: Update.
1843
1844 2002-04-07 Akim Demaille <akim@epita.fr>
1845
1846 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
1847 bucket.value as bucket.number.
1848
1849 2002-04-07 Akim Demaille <akim@epita.fr>
1850
1851 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
1852 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
1853 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
1854 RHS, instead of being an index in RITEMS.
1855
1856 2002-04-04 Paul Eggert <eggert@twinsun.com>
1857
1858 * doc/bison.texinfo: Update copyright date.
1859 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
1860 (Symbols): Warn about running Bison in one character set,
1861 but compiling and/or running in an incompatible one.
1862 Warn about character code 256, too.
1863
1864 2002-04-03 Paul Eggert <eggert@twinsun.com>
1865
1866 * src/bison.data (YYSTACK_ALLOC): Depend on whether
1867 YYERROR_VERBOSE is nonzero, not whether it is defined.
1868
1869 Merge changes from bison-1_29-branch.
1870
1871 2002-03-20 Paul Eggert <eggert@twinsun.com>
1872
1873 Merge fixes from Debian bison_1.34-1.diff.
1874
1875 * configure.in (AC_PREREQ): 2.53.
1876
1877 2002-03-20 Akim Demaille <akim@epita.fr>
1878
1879 * src/conflicts.c (log_resolution): Argument `resolution' is const.
1880
1881 2002-03-19 Paul Eggert <eggert@twinsun.com>
1882
1883 * src/bison.simple (YYCOPY): New macro.
1884 (YYSTACK_RELOCATE): Use it.
1885 Remove Type arg; no longer needed. All callers changed.
1886 (yymemcpy): Remove; no longer needed.
1887
1888 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
1889 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
1890
1891 2002-03-19 Akim Demaille <akim@epita.fr>
1892
1893 Test and fix the #line outputs.
1894
1895 * tests/atlocal.at (GCC): New.
1896 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
1897 (Prologue synch line, ,%union synch line, Postprologue synch line)
1898 (Action synch line, Epilogue synch line): New tests.
1899 * src/reader.c (parse_union_decl): Define the muscle stype_line.
1900 * data/bison.simple, data/bison.c++: Use it.
1901
1902 2002-03-19 Akim Demaille <akim@epita.fr>
1903
1904 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
1905 (Solved SR Conflicts, %expect not enough, %expect right)
1906 (%expect too much): Move to...
1907 * tests/conflicts.at: this new file.
1908
1909 2002-03-19 Akim Demaille <akim@epita.fr>
1910
1911 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
1912 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
1913 that we can move to enums for instance.
1914 * src/output.c (token_definitions_output): Output a list of
1915 `token-name, token-number' instead of the #define.
1916 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
1917
1918 2002-03-14 Akim Demaille <akim@epita.fr>
1919
1920 Use Gettext 0.11.1.
1921
1922 2002-03-09 Robert Anisko <robert@lrde.epita.fr>
1923
1924 * data/bison.c++: Make the user able to add members to the generated
1925 parser by subclassing.
1926
1927 2002-03-05 Robert Anisko <robert@lrde.epita.fr>
1928
1929 * src/reader.c (read_additionnal_code): `c' should be an integer, not
1930 a character.
1931 Reported by Nicolas Tisserand and Nicolas Burrus.
1932
1933 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
1934
1935 * src/reader.c: Warn about lacking semi-colons, do not complain.
1936
1937 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
1938
1939 * data/bison.c++: Remove a debug line.
1940
1941 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
1942
1943 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
1944 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
1945 provide a default implementation.
1946
1947 2002-03-04 Akim Demaille <akim@epita.fr>
1948
1949 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
1950 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
1951 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
1952 * tests/semantic.at (Parsing Guards): Similarly.
1953 * src/reader.at (readgram): Complain if the last rule is not ended
1954 with a semi-colon.
1955
1956 2002-03-04 Akim Demaille <akim@epita.fr>
1957
1958 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
1959 * src/closure.c: here.
1960 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
1961 RTC.
1962 * src/warshall.h, src/warshall.c: Remove.
1963 * tests/sets.at (Broken Closure): Adjust.
1964
1965 2002-03-04 Akim Demaille <akim@epita.fr>
1966
1967 * src/output.c (output_skeleton): tempdir is const.
1968 bytes_read is unused.
1969
1970 2002-03-04 Akim Demaille <akim@epita.fr>
1971
1972 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
1973 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
1974 Update.
1975 From Michael Hayes.
1976
1977 2002-03-04 Akim Demaille <akim@epita.fr>
1978
1979 * src/closure.c (closure): `r' is unused.
1980
1981 2002-03-04 Akim Demaille <akim@epita.fr>
1982
1983 * tests/sets.at (Broken Closure): Add the ending `;'.
1984 * src/reader.at (readgram): Complain if a rule is not ended with a
1985 semi-colon.
1986
1987 2002-03-04 Akim Demaille <akim@epita.fr>
1988
1989 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
1990 (count_sr_conflicts): Use bitset_count.
1991 * src/reduce.c (inaccessable_symbols): Ditto.
1992 (bits_size): Remove.
1993 * src/warshall.h, src/warshall.c: Convert to bitsetv.
1994
1995 2002-03-04 Akim Demaille <akim@epita.fr>
1996
1997 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
1998 * src/reduce.c: Remove the `bitset_zero's following the
1999 `bitset_create's, as now it is performed by the latter.
2000
2001 2002-03-04 Akim Demaille <akim@epita.fr>
2002
2003 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
2004 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
2005 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
2006 latest sources from Michael.
2007
2008 2002-03-04 Akim Demaille <akim@epita.fr>
2009
2010 * src/output.c (output): Don't free the grammar.
2011 * src/reader.c (grammar_free): New.
2012 * src/main.c (main): Call it and don't free symtab here.
2013
2014 2002-03-04 Akim Demaille <akim@epita.fr>
2015
2016 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
2017 before returning.
2018 Reported by Benoit Perrot.
2019
2020 2002-03-04 Akim Demaille <akim@epita.fr>
2021
2022 Use bitset operations when possible, not loops over bits.
2023
2024 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
2025 bitset_or.
2026 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
2027 * src/reduce.c (useless_nonterminals): Formatting changes.
2028 * src/warshall.c (TC): Use bitset_or.
2029
2030 2002-03-04 Akim Demaille <akim@epita.fr>
2031
2032 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
2033 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
2034 Ditto.
2035
2036 2002-03-04 Akim Demaille <akim@epita.fr>
2037
2038 * src/lalr.c (F): Now a bitset*.
2039 Adjust all dependencies.
2040
2041 2002-03-04 Akim Demaille <akim@epita.fr>
2042
2043 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
2044 Adjust all dependencies.
2045
2046 2002-03-04 Akim Demaille <akim@epita.fr>
2047
2048 * src/L0.c, src/LR0.h (nstates): Be size_t.
2049 Adjust comparisons (signed vs unsigned).
2050 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
2051 bitset*.
2052 Adjust all dependencies.
2053
2054 2002-03-04 Akim Demaille <akim@epita.fr>
2055
2056 * src/closure.c (firsts): Now, also a bitset.
2057 Adjust all dependencies.
2058 (varsetsize): Remove, now unused.
2059 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
2060
2061 2002-03-04 Akim Demaille <akim@epita.fr>
2062
2063 * src/print.c: Convert to use bitset.h, not hand coded iterations
2064 over ints.
2065
2066 2002-03-04 Akim Demaille <akim@epita.fr>
2067
2068 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
2069
2070 2002-03-04 Akim Demaille <akim@epita.fr>
2071
2072 * src/closure.c (ruleset): Be a bitset.
2073 (rulesetsize): Remove.
2074
2075 2002-03-04 Akim Demaille <akim@epita.fr>
2076
2077 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
2078 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
2079 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
2080 * src/closure.c (fderives): Be an array of bitsets.
2081
2082 2002-02-28 Robert Anisko <robert@lrde.epita.fr>
2083
2084 * data/bison.c++: Merge the two generated headers. Insert a copyright
2085 notice in each output file.
2086
2087 2002-02-28 Akim Demaille <akim@epita.fr>
2088
2089 * data/bison.c++: Copy the prologue of bison.simple to fetch
2090 useful M4 definitions, such as b4_header_guard.
2091
2092 2002-02-25 Akim Demaille <akim@epita.fr>
2093
2094 * src/getargs.c (version): Give the name of the authors, and use a
2095 translator friendly scheme for the bgr
2096 copyright notice.
2097
2098 2002-02-25 Akim Demaille <akim@epita.fr>
2099
2100 * src/output.c (header_output): Remove, now handled completely via
2101 M4.
2102
2103 2002-02-25 Akim Demaille <akim@epita.fr>
2104
2105 * m4/m4.m4: New, from CVS Autoconf.
2106 * configure.in: Invoke it.
2107 * src/output.c (output_skeleton): Use its result instead of the
2108 hard coded name.
2109
2110 2002-02-25 Akim Demaille <akim@epita.fr>
2111
2112 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
2113 Fileutils 4.1.5.
2114 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
2115 * src/output.c (output_skeleton): Use mkstemp to create a real
2116 temporary file.
2117 Move the filling of `skeleton' and its muscle to...
2118 (prepare): here.
2119 (output): Move the definition of the prologue muscle to...
2120 (prepare): here.
2121 * src/system.h (DEFAULT_TMPDIR): New.
2122
2123 2002-02-14 Paul Eggert <eggert@twinsun.com>
2124
2125 Remove the support for C++ namespace cleanliness; it was
2126 causing more problems than it was curing, since it didn't work
2127 properly on some nonstandard C++ compilers. This can wait
2128 for a proper C++ parser.
2129
2130 * NEWS: Document this.
2131 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
2132 of C++, as it's treated like C now.
2133 * src/bison.simple (YYSTD): Remove.
2134 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
2135 Treat C++ just like Standard C instead of trying to support
2136 namespace cleanliness.
2137
2138 2002-02-14 Akim Demaille <akim@epita.fr>
2139
2140 * tests/regression.at (else): Adjust to Andreas' change.
2141
2142 2002-02-14 Akim Demaille <akim@epita.fr>
2143
2144 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
2145
2146 2002-02-13 Andreas Schwab <schwab@suse.de>
2147
2148 * src/output.c (output_rule_data): Don't output NULL, it might
2149 not be defined yet.
2150
2151 2002-02-11 Robert Anisko <robert@lrde.epita.fr>
2152
2153 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
2154 (Copyright notice): Update.
2155
2156 2002-02-11 Akim Demaille <akim@epita.fr>
2157
2158 * tests/regression.at (%nonassoc and eof): Don't include
2159 nonportable headers.
2160
2161 2002-02-08 Robert Anisko <robert@lrde.epita.fr>
2162
2163 * data/bison.c++: Correct error recovery. Make the user able to
2164 initialize the starting location.
2165
2166 2002-02-07 Akim Demaille <akim@epita.fr>
2167
2168 * tests/input.at: New.
2169
2170 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
2171
2172 * data/bison.c++: Replace some direct m4 expansions by constants. Be
2173 more consistent when naming methods and variables. Put preprocessor
2174 directives around tables only needed for debugging.
2175
2176 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
2177
2178 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
2179 C++ parsers.
2180 (yy::b4_name::parse): Use print_.
2181
2182 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
2183
2184 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
2185
2186 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
2187
2188 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
2189 C++ parsers.
2190 (yy::b4_name::parse): Build verbose error messages, and use error_.
2191
2192 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
2193
2194 * data/bison.c++: Fix m4 quoting in comments.
2195
2196 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
2197
2198 * data/bison.c++: Adjust the parser code. Fix some muscles that were
2199 not expanded by m4.
2200
2201 2002-02-05 Akim Demaille <akim@epita.fr>
2202
2203 * data/bison.c++: Adjust to the M4 back end.
2204 More is certainly needed.
2205
2206 2002-02-05 Akim Demaille <akim@epita.fr>
2207
2208 Give a try to M4 as a back end.
2209
2210 * lib/readpipe.c: New, from wdiff.
2211 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
2212 BISON_HAIRY.
2213 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
2214 specific values. Now it is m4 that performs the lookup.
2215 * src/parse-skel.y: Remove.
2216 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
2217 * src/output.c (actions_output, guards_output)
2218 (token_definitions_output): No longer keeps track of the output
2219 line number, hence remove the second argument.
2220 (guards_output): Check against the guard member of a rule, not the
2221 action member.
2222 Adjust callers.
2223 (output_skeleton): Don't look for the skeleton location, let m4 do
2224 that.
2225 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
2226 file will be used.
2227 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
2228 (prepare): Given that for the time being changesyntax is not
2229 usable in M4, rename the muscles using `-' to `_'.
2230 Define `defines_flag', `output_parser_name' and `output_header_name'.
2231 * src/output.h (actions_output, guards_output)
2232 (token_definitions_output): Adjust prototypes.
2233 * src/scan-skel.l: Instead of scanning the skeletons, it now
2234 processes the output of m4: `__oline__' and `#output'.
2235 * data/bison.simple: Adjust to be used by M4(sugar).
2236 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
2237 to date.
2238 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
2239 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
2240 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
2241 shamelessly stolen from CVS Autoconf.
2242
2243 2002-02-05 Akim Demaille <akim@epita.fr>
2244
2245 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
2246 * configure.in: Check for the declarations of free and malloc.
2247 * src/muscle_tab.c: Adjust.
2248
2249 2002-02-05 Akim Demaille <akim@epita.fr>
2250
2251 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
2252 which have no values.
2253
2254 2002-02-05 Akim Demaille <akim@epita.fr>
2255
2256 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
2257 * data/: here.
2258
2259 2002-01-29 Paul Eggert <eggert@twinsun.com>
2260
2261 * src/bison.simple (YYSIZE_T): Do not define merely because
2262 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
2263 On some platforms, <alloca.h> does not declare YYSTD (size_t).
2264
2265 2002-01-27 Akim Demaille <akim@epita.fr>
2266
2267 Fix `%nonassoc and eof'.
2268
2269 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
2270 which were not properly copied! Replace
2271 memcpy (res->errs, src->errs, src->nerrs);
2272 with
2273 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
2274 !!!
2275 * tests/regression.at (%nonassoc and eof): Adjust to newest
2276 Autotest: `.' is not in the PATH.
2277
2278 2002-01-27 Akim Demaille <akim@epita.fr>
2279
2280 * tests/sets.at (AT_EXTRACT_SETS): New.
2281 (Nullable): Use it.
2282 (Firsts): New.
2283
2284 2002-01-26 Akim Demaille <akim@epita.fr>
2285
2286 * tests/actions.at, tests/calc.at, tests/headers.at,
2287 * tests/torture.at: Adjust to the newest Autotest which no longer
2288 forces `.' in the PATH.
2289
2290 2002-01-25 Akim Demaille <akim@epita.fr>
2291
2292 * tests/regression.at (%nonassoc and eof): New.
2293 Suggested by Robert Anisko.
2294
2295 2002-01-24 Akim Demaille <akim@epita.fr>
2296
2297 Bison dumps core when trying to complain about broken input files.
2298 Reported by Cris van Pelt.
2299
2300 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
2301 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
2302 into...
2303 (Invalid inputs): Strengthen: exercise parse_percent_token.
2304
2305 2002-01-24 Robert Anisko <robert.anisko@epita.fr>
2306
2307 * src/Makefile.am: Add bison.c++.
2308 * src/bison.c++: New skeleton.
2309
2310 2002-01-21 Paolo Bonzini <bonzini@gnu.org>
2311
2312 * po/it.po: New.
2313
2314 2002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
2315
2316 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
2317
2318 2002-01-20 Marc Autret <marc@gnu.org>
2319
2320 * src/files.c (compute_output_file_names): Fix
2321
2322 2002-01-20 Marc Autret <marc@gnu.org>
2323
2324 * tests/output.at: New test.
2325 * src/files.c (compute_base_names): Don't map extensions when
2326 the YACC flag is set, use defaults.
2327 Reported by Evgeny Stambulchik.
2328
2329 2002-01-20 Marc Autret <marc@gnu.org>
2330
2331 * src/system.h: Need to define __attribute__ away for non-GCC
2332 compilers as well (i.e. the vendor C compiler).
2333 Suggested by Albert Chin-A-Young.
2334
2335 2002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
2336
2337 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
2338 canonical definition.
2339 * src/system.h: Use the canonical definition for PARAMS (avoids
2340 a conflict with the macro from lib/hash.h).
2341
2342 2002-01-11 Akim Demaille <akim@epita.fr>
2343
2344 * configure.in: Use AC_FUNC_STRNLEN.
2345 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
2346
2347 2002-01-09 Akim Demaille <akim@epita.fr>
2348
2349 * src/files.c, src/files.h (output_infix): New.
2350 (tab_extension): Remove.
2351 (compute_base_names): Compute the former, drop the latter.
2352 * src/output.c (prepare): Insert the muscles `output-infix', and
2353 `output-suffix'.
2354 * src/parse-skel.y (string, string.1): New.
2355 (section.header): Use it.
2356 (section.yacc): Remove.
2357 (prefix): Remove too.
2358 * src/scan-skel.l: Adjust.
2359 * src/bison.simple, src/bison.hairy: Adjust.
2360
2361 2002-01-09 Akim Demaille <akim@epita.fr>
2362
2363 * configure.in (WERROR_CFLAGS): Compute it.
2364 * src/Makefile.am (CFLAGS): Pass it.
2365 * tests/atlocal.in (CFLAGS): Idem.
2366 * src/files.c: Fix a few warnings.
2367 (get_extension_index): Remove, unused.
2368
2369 2002-01-08 Akim Demaille <akim@epita.fr>
2370
2371 * src/getargs.c (AS_FILE_NAME): New.
2372 (getargs): Use it to convert DOSish file names.
2373 * src/files.c (base_name): Rename as full_base_name to avoid
2374 clashes with `base_name ()'.
2375 (filename_split): New.
2376 (compute_base_names): N-th rewrite, using filename_split.
2377
2378 2002-01-08 Akim Demaille <akim@epita.fr>
2379
2380 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
2381 New, stolen from the Fileutils 4.1.
2382 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
2383 * configure.in: Check for the presence of memrchr, and of its
2384 prototype.
2385
2386 2002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
2387
2388 * lib/hash.h (__P): Added definition for this macro.
2389 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
2390 BUILT_SOURCES, to ensure they are generated first.
2391 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
2392 %error-verbose to allow bootstrapping with bison 1.30x.
2393
2394 2002-01-06 Akim Demaille <akim@epita.fr>
2395
2396 * src/reader.c (parse_braces): Don't fetch the next char, the
2397 convention is to fetch on entry.
2398 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
2399 'switch' without a following semicolon.
2400 * tests/regression.at (braces parsing): New.
2401
2402 2002-01-06 Akim Demaille <akim@epita.fr>
2403
2404 Bison is dead wrong in its RR conflict reports.
2405
2406 * tests/torture.at (GNU Cim Grammar): New.
2407 * src/conflicts.c (count_rr_conflicts): Fix.
2408
2409 2002-01-06 Akim Demaille <akim@epita.fr>
2410
2411 Creating package.m4 from configure.ac causes too many problems.
2412
2413 * tests/Makefile.am (package.m4): Create it by hand,
2414 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
2415
2416 2002-01-06 Akim Demaille <akim@epita.fr>
2417
2418 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
2419 skeleton.h.
2420
2421 2002-01-04 Paul Eggert <eggert@twinsun.com>
2422
2423 * doc/bison.texinfo (Debugging):
2424 Remove YYSTDERR; it's no longer defined or used.
2425 Also, s/cstdio.h/cstdio/.
2426
2427 2002-01-03 Akim Demaille <akim@epita.fr>
2428
2429 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
2430
2431 2002-01-03 Akim Demaille <akim@epita.fr>
2432
2433 * src/parse-skel.y (process_skeleton): Don't bind the parser's
2434 tracing code to --trace, wait for a better --trace option, with
2435 args.
2436
2437 2002-01-03 Akim Demaille <akim@epita.fr>
2438
2439 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
2440 The ISO C++ standard is extremely clear about it: stderr is
2441 considered a macro, not a regular symbol (see table 94 `Header
2442 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
2443 Therefore std:: does not apply to it. It still does with fprintf.
2444 Also, s/cstdio.h/cstdio/.
2445
2446 2002-01-03 Akim Demaille <akim@epita.fr>
2447
2448 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
2449 for non system headers.
2450
2451 2002-01-02 Akim Demaille <akim@epita.fr>
2452
2453 Equip the skeleton chain with location tracking, runtime trace,
2454 pure parser and scanner.
2455
2456 * src/parse-skel.y: Request a pure parser, locations, and prefix
2457 renaming.
2458 (%union): Having several members with the same type does not help
2459 type mismatches, simplify.
2460 (YYPRINT, yyprint): New.
2461 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
2462 (skel_error): this.
2463 Handle locations.
2464 * src/scan-skel.l: Adjust to these changes.
2465 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
2466 (LOCATION_PRINT, skel_control_t): New.
2467
2468 2001-12-30 Akim Demaille <akim@epita.fr>
2469
2470 * src/parse-skel.y: Get rid of the shift/reduce conflict:
2471 replace `gb' with BLANKS.
2472 * src/scan-skel.l: Adjust.
2473
2474 2001-12-30 Akim Demaille <akim@epita.fr>
2475
2476 * src/system.h: We don't need nor want bcopy.
2477 Throw away MS-DOS crap: we don't need getpid.
2478 * configure.in: We don't need strndup. It was even causing
2479 problems: because Flex includes the headers *before* us,
2480 _GNU_SOURCE is not defined by config.h, and therefore strndup was
2481 not visible.
2482 * lib/xstrndup.c: New.
2483 * src/scan-skel.l: Use it.
2484 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
2485 * src/parse-skel.y: Use %directives instead of #defines.
2486
2487 2001-12-30 Akim Demaille <akim@epita.fr>
2488
2489 * src/skeleton.h: New.
2490 * src/output.c (output_parser, output_master_parser): Remove, dead
2491 code.
2492 * src/output.h (get_lines_number, actions_output, guards_output)
2493 (token_definitions_output): Prototype them.
2494 * src/parse-skel.y: Add the license notice.
2495 Include output.h and skeleton.h.
2496 (process_skeleton): Returns void, and takes a single parameter.
2497 * src/scan-skel.l: Add the license notice.
2498 Include skeleton.h.
2499 Don't use %option yylineno: it seems that then Flex imagines
2500 REJECT has been used, and therefore it won't reallocate its
2501 buffers (which makes no other sense to me than a bug). It results
2502 in warnings for `unused: yy_flex_realloc'.
2503
2504 2001-12-30 Robert Anisko <robert.anisko@epita.fr>
2505
2506 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
2507 (MUSCLE_INSERT_PREFIX): ...to there.
2508 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
2509 (MUSCLE_INSERT_PREFIX): Move from here...
2510
2511 * src/bison.hairy: Add a section directive. Put braces around muscle
2512 names. This parser skeleton is still broken, but Bison should not
2513 choke on a bad muscle 'syntax'.
2514 * src/bison.simple: Add a section directive. Put braces around muscle
2515 names.
2516
2517 * src/files.h (strsuffix, stringappend): Add declarations.
2518 (tab_extension): Add declaration.
2519 (short_base_name): Add declaration.
2520
2521 * src/files.c (strsuffix, stringappend): No longer static. These
2522 functions are used in the skeleton parser.
2523 (tab_extension): New.
2524 (compute_base_names): Use the computations done in this function
2525 to guess if the generated parsers should have '.tab' in their
2526 names.
2527 (short_base_name): No longer static.
2528
2529 * src/output.c (output_skeleton): New.
2530 (output): Disable call to output_master_parser, and give a try to
2531 a new skeleton handling system.
2532 (guards_output, actions_output): No longer static.
2533 (token_definitions_output, get_lines_number): No longer static.
2534
2535 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
2536
2537 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
2538 parse-skel.y.
2539
2540 * src/parse-skel.y: New file.
2541 * src/scan-skel.l: New file.
2542
2543 2001-12-29 Akim Demaille <akim@epita.fr>
2544
2545 %name-prefix is broken.
2546
2547 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
2548 Adjust all dependencies.
2549 * tests/headers.at (export YYLTYPE): Strengthen this test: use
2550 %name-prefix.
2551
2552 Renaming yylval but not yylloc is not consistent. Now we do.
2553
2554 * src/bison.simple: Prefix yylloc if used.
2555 * doc/bison.texinfo (Decl Summary): Document that.
2556
2557 2001-12-29 Akim Demaille <akim@epita.fr>
2558
2559 * doc/bison.texinfo: Promote `%long-directive' over
2560 `%long_directive'.
2561 Remove all references to fixed-output-files, yacc is enough.
2562
2563 2001-12-29 Akim Demaille <akim@epita.fr>
2564
2565 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
2566 user prologue. These are defaults.
2567 * tests/actions.at (Mid-rule actions): Make sure the user can
2568 define YYDEBUG and YYERROR_VERBOSE.
2569
2570 2001-12-29 Akim Demaille <akim@epita.fr>
2571
2572 * src/output.c (header_output): Don't forget to export YYLTYPE and
2573 yylloc.
2574 * tests/headers.at (export YYLTYPE): New, make sure it does.
2575 * tests/regression.at (%union and --defines, Invalid CPP headers):
2576 Move to...
2577 * tests/headers.at: here.
2578
2579 2001-12-29 Akim Demaille <akim@epita.fr>
2580
2581 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
2582
2583 2001-12-29 Akim Demaille <akim@epita.fr>
2584
2585 * tests/actions.at (Mid-rule actions): Output on a single line
2586 instead of several.
2587
2588 2001-12-29 Akim Demaille <akim@epita.fr>
2589
2590 * doc/bison.texinfo: Formatting changes.
2591
2592 2001-12-29 Akim Demaille <akim@epita.fr>
2593
2594 Don't store the token defs in a muscle, just be ready to output it
2595 on command. Now possible via `symbols'. Fixes a memory leak.
2596
2597 * src/output.c (token_definitions_output): New.
2598 (output_parser, header_output): Use it.
2599 * src/reader.c (symbols_save): Remove.
2600
2601 2001-12-29 Akim Demaille <akim@epita.fr>
2602
2603 * src/bison.simple: Do not provide a default for YYSTYPE and
2604 YYLTYPE before the user's prologue. Otherwise it's hardly... a
2605 default.
2606
2607 2001-12-29 Akim Demaille <akim@epita.fr>
2608
2609 Mid-rule actions are simply... ignored!
2610
2611 * src/reader.c (readgram): Be sure to attach mid-rule actions to
2612 the empty-rule associated to the dummy symbol, not to the host
2613 rule.
2614 * tests/actions.at (Mid-rule actions): New.
2615
2616 2001-12-29 Akim Demaille <akim@epita.fr>
2617
2618 Memory leak.
2619
2620 * src/reader.c (reader): Free grammar.
2621
2622 2001-12-29 Akim Demaille <akim@epita.fr>
2623
2624 Memory leak.
2625
2626 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
2627 since it allocates it for each state, although only one is needed.
2628 (allocate_storage): Do it here.
2629
2630 2001-12-29 Akim Demaille <akim@epita.fr>
2631
2632 * src/options.h, src/options.c (create_long_option_table): Rename
2633 as...
2634 (long_option_table_new): this, with a clearer prototype.
2635 (percent_table): Remove, unused,
2636 * src/getargs.c (getargs): Adjust.
2637
2638 2001-12-29 Akim Demaille <akim@epita.fr>
2639
2640 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
2641 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
2642 as states.
2643
2644 2001-12-29 Akim Demaille <akim@epita.fr>
2645
2646 * src/lalr.c (build_relations): Rename `states' as `states1'.
2647 Sorry, I don't understand exactly what it is, no better name...
2648
2649 2001-12-29 Akim Demaille <akim@epita.fr>
2650
2651 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
2652 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
2653 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
2654 as rules.
2655
2656 2001-12-29 Akim Demaille <akim@epita.fr>
2657
2658 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
2659 ago.
2660
2661 2001-12-29 Akim Demaille <akim@epita.fr>
2662
2663 * src/reader.c, src/reader.h (user_toknums): Remove.
2664 Adjust all users to use symbols[i]->user_token_number.
2665
2666 2001-12-29 Akim Demaille <akim@epita.fr>
2667
2668 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
2669 Adjust all users to use symbols[i]->prec or ->assoc.
2670
2671 2001-12-29 Akim Demaille <akim@epita.fr>
2672
2673 * src/reader.c, src/reader.h (tags): Remove.
2674 Adjust all users to use symbols[i]->tag.
2675
2676 2001-12-29 Akim Demaille <akim@epita.fr>
2677
2678 * src/gram.h, src/gram.c (symbols): New, similar to state_table
2679 and rule_table.
2680 * src/reader.c (packsymbols): Fill this table.
2681 Drop sprec.
2682 * src/conflicts.c (resolve_sr_conflict): Adjust.
2683 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
2684 single table.
2685 Use symbols[i]->tag instead of tags[i].
2686
2687 2001-12-29 Akim Demaille <akim@epita.fr>
2688
2689 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
2690 In addition, put a comment in there, to replace...
2691 * tests/regression.at (%union and C comments): Remove.
2692
2693 2001-12-29 Akim Demaille <akim@epita.fr>
2694
2695 * tests/regression.at (Web2c Actions): Blindly move the actual
2696 output as expected output. The contents *seem* right to me, but I
2697 can't pretend reading perfectly parser tables... Nonetheless, all
2698 the other tests pass correctly, the table look OK, even though the
2699 presence of `$axiom' is to be noted: AFAICS it is useless (but
2700 harmless).
2701
2702 2001-12-29 Akim Demaille <akim@epita.fr>
2703
2704 * src/reader.c (readgram): Don't add the rule 0 if there were no
2705 rules read. In other words, add it _after_ having performed
2706 grammar sanity checks.
2707 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
2708
2709 2001-12-29 Akim Demaille <akim@epita.fr>
2710
2711 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
2712 visible, and some states have now a different number.
2713
2714 2001-12-29 Akim Demaille <akim@epita.fr>
2715
2716 * src/reader.c (readgram): Bind the initial rule's lineno to that
2717 of the first rule.
2718 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
2719 (Solved SR Conflicts): Adjust rule 0's line number.
2720
2721 2001-12-29 Akim Demaille <akim@epita.fr>
2722
2723 Fix the `GAWK Grammar' failure.
2724
2725 * src/LR0.c (final_state): Initialize to -1 so that we do compute
2726 the reductions of the first state which was mistakenly confused
2727 with the final state because precisely final_state was initialized
2728 to 0.
2729 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
2730 now noticed by Bison.
2731 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
2732 have a reduction on $default.
2733
2734 2001-12-29 Akim Demaille <akim@epita.fr>
2735
2736 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
2737 rule line numbers.
2738 * src/closure.c (print_closure): Likewise.
2739 * src/derives.c (print_derives): Likewise.
2740 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
2741 now.
2742
2743 2001-12-29 Akim Demaille <akim@epita.fr>
2744
2745 * src/lalr.c (lookaheads_print): New.
2746 (lalr): Call it when --trace-flag.
2747 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
2748 are dumped.
2749
2750 2001-12-29 Akim Demaille <akim@epita.fr>
2751
2752 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
2753 when walking through ritem, even via rule->rhs.
2754 * src/reduce.c (dump_grammar, useful_production, reduce_output)
2755 (useful_production, useless_nonterminals): Likewise.
2756 (reduce_grammar_tables): Likewise, plus update nritems.
2757 * src/nullable.c (set_nullable): Likewise.
2758 * src/lalr.c (build_relations): Likewise.
2759 * tests/sets.at (Nullable): Adjust.
2760 Fortunately, now, the $axiom is no longer nullable.
2761
2762 2001-12-29 Akim Demaille <akim@epita.fr>
2763
2764 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
2765 the 0-sentinel.
2766 * src/gram.c (ritem_longest_rhs): Likewise.
2767 * src/reduce.c (nonterminals_reduce): Likewise.
2768 * src/print_graph.c (print_graph): Likewise.
2769 * src/output.c (output_rule_data): Likewise.
2770 * src/nullable.c (set_nullable): Likewise.
2771
2772 2001-12-29 Akim Demaille <akim@epita.fr>
2773
2774 * src/output.c: Comment changes.
2775
2776 2001-12-27 Paul Eggert <eggert@twinsun.com>
2777
2778 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
2779 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
2780 Sparc, as they were causing more porting problems than the
2781 (minor) performance improvement was worth.
2782
2783 Also, catch up with 1.31's YYSTD.
2784
2785 2001-12-27 Akim Demaille <akim@epita.fr>
2786
2787 * src/output.c (output_gram): Rely on nritems, not the
2788 0-sentinel. See below.
2789 Use -1 as separator, not 0.
2790 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
2791 Rely on -1 as separator in yyrhs, instead of 0.
2792 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
2793 twice `Now at end of input', therefore there are two lines less to
2794 expect.
2795
2796 2001-12-27 Akim Demaille <akim@epita.fr>
2797
2798 * tests/regression.at (Unresolved SR Conflicts):
2799 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
2800 below.
2801
2802 2001-12-27 Akim Demaille <akim@epita.fr>
2803
2804 * src/LR0.c (new_state): Recognize the final state by the fact it
2805 is reached by eoftoken.
2806 (insert_start_shifting_state, insert_eof_shifting_state)
2807 (insert_accepting_state, augment_automaton): Remove, since now
2808 these states are automatically computed from the initial state.
2809 (generate_states): Adjust.
2810 * src/print.c: When reporting a rule number to the user, substract
2811 1, so that the axiom rule is rule 0, and the first user rule is 1.
2812 * src/reduce.c: Likewise.
2813 * src/print_graph.c (print_core): For the time being, just as for
2814 the report, depend upon --trace-flags to dump the full set of
2815 items.
2816 * src/reader.c (readgram): Once the grammar read, insert the rule
2817 0: `$axiom: START-SYMBOL $'.
2818 * tests/set.at: Adjust: rule 0 is now displayed, and since the
2819 number of the states has changed (the final state is no longer
2820 necessarily the last), catch up.
2821
2822 2001-12-27 Akim Demaille <akim@epita.fr>
2823
2824 Try to make the use of the eoftoken valid. Given that its value
2825 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
2826 is used instead of > 0 where appropriate, (ii), depend upon nritems
2827 instead of the 0-sentinel.
2828
2829 * src/gram.h, src/gram.c (nritems): New.
2830 Expected to be duplication of nitems, but for the time being...
2831 * src/reader.c (packgram): Assert nritems and nitems are equal.
2832 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
2833 * src/closure.c (print_closure, print_fderives): Likewise.
2834 * src/gram.c (ritem_print): Likewise.
2835 * src/print.c (print_core, print_grammar): Likewise.
2836 * src/print_graph.c: Likewise.
2837
2838 2001-12-27 Akim Demaille <akim@epita.fr>
2839
2840 * src/main.c (main): If there are complains after grammar
2841 reductions, then output the report anyway if requested, then die.
2842 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
2843 * src/reader.c (eoftoken): New.
2844 (parse_token_decl): If the token being defined has value `0', it
2845 is the eoftoken.
2846 (packsymbols): No longer hack `tags' to insert `$' by hand.
2847 Be sure to preserve the value of the eoftoken.
2848 (reader): Make sure eoftoken is defined.
2849 Initialize nsyms to 0: now eoftoken is created just like the others.
2850 * src/print.c (print_grammar): Don't special case the eof token.
2851 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
2852 lie anyway, albeit pleasant.
2853 * tests/calc.at: Exercise error messages with eoftoken.
2854 Change the grammar so that empty input is invalid.
2855 Adjust expectations.
2856 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
2857
2858 2001-12-27 Akim Demaille <akim@epita.fr>
2859
2860 * configure.in: Check the protos of strchr ans strspn.
2861 Replace strchr if needed.
2862 * src/system.h: Provide the protos of strchr, strspn and memchr if
2863 missing.
2864 * lib/strchr.c: New.
2865 * src/reader.c (symbols_save): Use strchr.
2866
2867 2001-12-27 Akim Demaille <akim@epita.fr>
2868
2869 * src/print.c, src/print_graph.c (escape): New.
2870 Use it to quote the TAGS outputs.
2871 * src/print_graph.c (print_state): Now errors are in red, and
2872 reductions in green.
2873 Prefer high to wide: output the state number on a line of its own.
2874
2875 2001-12-27 Akim Demaille <akim@epita.fr>
2876
2877 * src/state.h, src/state.c (reductions_new): New.
2878 * src/LR0.c (set_state_table): Let all the states have a
2879 `reductions', even if reduced to 0.
2880 (save_reductions): Adjust.
2881 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
2882 * src/print.c (print_reductions, print_actions): Adjust.
2883 * src/output.c (action_row): Adjust.
2884
2885 2001-12-27 Akim Demaille <akim@epita.fr>
2886
2887 * src/state.h, src/state.c (errs_new, errs_dup): New.
2888 * src/LR0.c (set_state_table): Let all the states have an errs,
2889 even if reduced to 0.
2890 * src/print.c (print_errs, print_reductions): Adjust.
2891 * src/output.c (output_actions, action_row): Adjust.
2892 * src/conflicts.c (resolve_sr_conflict): Adjust.
2893
2894 2001-12-27 Akim Demaille <akim@epita.fr>
2895
2896 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
2897
2898 2001-12-27 Akim Demaille <akim@epita.fr>
2899
2900 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
2901 * src/print.c: here.
2902 (lookaheadset, shiftset): New, used as additional storage by
2903 print_reductions.
2904 (print_results): Adjust.
2905 (print_shifts, print_gotos, print_errs): New, extracted from...
2906 (print_actions): here.
2907 * src/print_graph.c (print_actions): Remove dead code.
2908
2909 2001-12-27 Akim Demaille <akim@epita.fr>
2910
2911 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
2912 `$n' and `@n'.
2913
2914 2001-12-27 Akim Demaille <akim@epita.fr>
2915
2916 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
2917 (build_relations): Adjust.
2918
2919 2001-12-27 Akim Demaille <akim@epita.fr>
2920
2921 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
2922 duplication.
2923
2924 2001-12-27 Akim Demaille <akim@epita.fr>
2925
2926 * src/reader.c (packgram): Catch nitems overflows.
2927
2928 2001-12-27 Akim Demaille <akim@epita.fr>
2929
2930 * src/files.c, src/files.h (guard_obstack): Remove.
2931 * src/output.c (output): Adjust.
2932 * src/reader.c (parse_braces): New, factoring...
2933 (copy_action, copy_guard): these two which are renamed as...
2934 (parse_action, parse_guard): these.
2935 As a voluntary consequence, using braces around guards is now
2936 mandatory.
2937
2938 2001-12-27 Akim Demaille <akim@epita.fr>
2939
2940 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
2941 * src/reader.c (symbol_list): `guard' and `guard_line' are new
2942 members.
2943 (symbol_list_new): Adjust.
2944 (copy_action): action_line is the first line, not the last.
2945 (copy_guard): Just as for actions, store the `action' only, not
2946 the switch/case/break flesh.
2947 Don't parse the user action that might follow the guard, let...
2948 (readgram): do it, i.e., now, there can be an action after a
2949 guard.
2950 In other words the guard is just explicitly optional.
2951 (packgram): Adjust.
2952 * src/output.c (guards_output): New.
2953 (output_parser): Call it when needed.
2954 (output): Also free the guard and attrs obstacks.
2955 * src/files.c, src/files.h (obstack_save): Remove.
2956 (output_files): Remove.
2957 As a result, if one needs the former `.act' file, using an
2958 appropriate skeleton which requires actions and guards is now
2959 required.
2960 * src/main.c (main): Adjust.
2961 * tests/semantic.at: New.
2962 * tests/regression.at: Use `input.y' as input file name.
2963 Avoid 8+3 problems by requiring input.c when the test needs the
2964 parser.
2965
2966 2001-12-27 Akim Demaille <akim@epita.fr>
2967
2968 * src/reader.c (symbol_list_new): Be sure to initialize all the
2969 fields.
2970
2971 2001-12-27 Akim Demaille <akim@epita.fr>
2972
2973 All the hacks using a final pseudo state are now useless.
2974
2975 * src/LR0.c (set_state_table): state_table holds exactly nstates.
2976 * src/lalr.c (nLA): New.
2977 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
2978 instead of lookaheadsp from the pseudo state (nstate + 1).
2979
2980 2001-12-27 Akim Demaille <akim@epita.fr>
2981
2982 * src/output.c (action_row, token_actions): Use a state_t instead
2983 of a integer, and nlookaheads instead of the following state's
2984 lookaheadsp.
2985
2986 2001-12-27 Akim Demaille <akim@epita.fr>
2987
2988 * src/conflicts.c (log_resolution, flush_shift)
2989 (resolve_sr_conflict, set_conflicts, solve_conflicts)
2990 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
2991 (conflicts_print, print_reductions): Use a state_t instead of an
2992 integer when referring to a state.
2993 As much as possible, depend upon nlookaheads, instead of the
2994 `lookaheadsp' member of the following state (since lookaheads of
2995 successive states are successive, the difference between state n + 1
2996 and n served as the number of lookaheads for state n).
2997 * src/lalr.c (add_lookback_edge): Likewise.
2998 * src/print.c (print_core, print_actions, print_state)
2999 (print_results): Likewise.
3000 * src/print_graph.c (print_core, print_actions, print_state)
3001 (print_graph): Likewise.
3002 * src/conflicts.h: Adjust.
3003
3004 2001-12-27 Akim Demaille <akim@epita.fr>
3005
3006 * src/bison.hairy: Formatting/comment changes.
3007 ANSIfy.
3008 Remove `register' indications.
3009 Add plenty of `static'.
3010
3011 2001-12-27 Akim Demaille <akim@epita.fr>
3012
3013 * src/output.c (prepare): Drop the muscle `ntbase' which
3014 duplicates ntokens.
3015 * src/bison.simple: Formatting/comment changes.
3016 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
3017 is an undocumented synonym.
3018
3019 2001-12-22 Akim Demaille <akim@epita.fr>
3020
3021 * src/output.c (output_table_data): Change the prototype to use
3022 `int' for array ranges: some invocations do pass an int, not a
3023 short.
3024 Reported by Wayne Green.
3025
3026 2001-12-22 Akim Demaille <akim@epita.fr>
3027
3028 Some actions of web2c.y are improperly triggered.
3029 Reported by Mike Castle.
3030
3031 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
3032 * tests/regression.at (Web2c): Rename as...
3033 (Web2c Report): this.
3034 (Web2c Actions): New.
3035
3036 2001-12-22 Akim Demaille <akim@epita.fr>
3037
3038 Reductions in web2c.y are improperly reported.
3039 Reported by Mike Castle.
3040
3041 * src/conflicts.c (print_reductions): Fix.
3042 * tests/regression.at (Web2c): New.
3043
3044 2001-12-18 Akim Demaille <akim@epita.fr>
3045
3046 Some host fail on `assert (!"foo")', which expands to
3047 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
3048 Reported by Nelson Beebee.
3049
3050 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
3051 `#define it_succeeded 0' and `assert (it_succeeded)'.
3052
3053 2001-12-17 Marc Autret <autret_m@epita.fr>
3054
3055 * src/bison.simple: Don't hard code the skeleton line and filename.
3056 * src/output.c (output_parser): Rename 'line' as 'output_line'.
3057 New line counter 'skeleton_line' (skeleton-line muscle).
3058
3059 2001-12-17 Paul Eggert <eggert@twinsun.com>
3060
3061 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
3062 YYDEBUG must be defined to a nonzero value.
3063
3064 * src/bison.simple (yytname): Do not assume that the user defines
3065 YYDEBUG to a properly parenthesized expression.
3066
3067 2001-12-17 Akim Demaille <akim@epita.fr>
3068
3069 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
3070 nlookaheads is a new member.
3071 Adjust all users.
3072 * src/lalr.h (nlookaheads): Remove this orphan declaration.
3073 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
3074 state.
3075
3076 2001-12-17 Akim Demaille <akim@epita.fr>
3077
3078 * src/files.h, src/files.c (open_files, close_files): Remove.
3079 * src/main.c (main): Don't open/close files, nor invoke lex_free,
3080 let...
3081 * src/reader.c (reader): Do it.
3082
3083 2001-12-17 Akim Demaille <akim@epita.fr>
3084
3085 * src/conflicts.c (print_reductions): Formatting changes.
3086
3087 2001-12-17 Akim Demaille <akim@epita.fr>
3088
3089 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
3090 (flush_reduce): New.
3091 (resolve_sr_conflict): Adjust.
3092
3093 2001-12-17 Akim Demaille <akim@epita.fr>
3094
3095 * src/output.c (output_obstack): Be static and rename as...
3096 (format_obstack): this, to avoid any confusion with files.c's
3097 output_obstack.
3098 * src/reader.h (muscle_obstack): Move to...
3099 * src/output.h: here, since it's defined in output.c.
3100
3101 2001-12-17 Akim Demaille <akim@epita.fr>
3102
3103 * src/output.c (action_row, save_column, default_goto)
3104 (sort_actions, matching_state, pack_vector): Better variable
3105 locality.
3106
3107 2001-12-17 Akim Demaille <akim@epita.fr>
3108
3109 * src/output.c: Various formatting changes.
3110
3111 2001-12-17 Akim Demaille <akim@epita.fr>
3112
3113 * src/files.c (output_files): Free the output_obstack.
3114 * src/main.c (main): Call print and print_graph conditionally.
3115 * src/print.c (print): Work unconditionally.
3116 * src/print_graph.c (print_graph): Work unconditionally.
3117 * src/conflicts.c (log_resolution): Output only if verbose_flag.
3118
3119 2001-12-16 Marc Autret <autret_m@epita.fr>
3120
3121 * src/output.c (actions_output): Fix. When we use %no-lines,
3122 there is one less line per action.
3123
3124 2001-12-16 Marc Autret <autret_m@epita.fr>
3125
3126 * src/bison.simple: Remove a useless #line directive.
3127 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
3128 * src/output.c (get_lines_number): New.
3129 (output_parser): Adjust, now takes care about the lines of a
3130 output muscles.
3131 Fix line numbering.
3132 (actions_output): Computes the number of lines taken by actions.
3133 (output_master_parser): Insert new skeleton which is the name of
3134 the output parser file name.
3135
3136 2001-12-15 Marc Autret <autret_m@epita.fr>
3137
3138 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
3139
3140 2001-12-15 Marc Autret <autret_m@epita.fr>
3141
3142 * src/output.c (output_gram): Keep track of the hairy one.
3143
3144 2001-12-15 Akim Demaille <akim@epita.fr>
3145
3146 Make `make distcheck' work.
3147
3148 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
3149 system.h which uses libgettext.h.
3150
3151 2001-12-15 Akim Demaille <akim@epita.fr>
3152
3153 * src/nullable.c (set_nullable): Useless rules must be skipped,
3154 otherwise, since we range over their symbols, we might look at a
3155 nonterminal which no longer ``exists'', i.e., it is not counted in
3156 `nvars', hence we overflow our arrays.
3157
3158 2001-12-15 Akim Demaille <akim@epita.fr>
3159
3160 The header can also be produced directly, without any obstack!
3161 Yahoo!
3162
3163 * src/files.c, src/files.h (defines_obstack): Remove.
3164 (compute_header_macro): Global.
3165 (defines_obstack_save): Remove.
3166 * src/reader.c (parse_union_decl): No longer output to
3167 defines_obstack: its content can be found in the `stype' muscle
3168 anyway.
3169 (output_token_translations): Merge into...
3170 (symbols_output): this.
3171 Rename as...
3172 (symbols_save): this.
3173 (reader): Adjust.
3174 * src/output.c (header_output): New.
3175 (output): Call it.
3176
3177 2001-12-15 Akim Demaille <akim@epita.fr>
3178
3179 * src/reader.c (parse_union_decl): Instead of handling two obstack
3180 simultaneously, use one to define the `stype' muscle, and use the
3181 value of the latter to fill defines_obstack.
3182 (copy_comment): Remove.
3183 (copy_comment2): Work for a single obstack.
3184 Rename as...
3185 (copy_comment): this.
3186
3187 2001-12-15 Akim Demaille <akim@epita.fr>
3188
3189 * src/lex.c, src/lex.h (xgetc): No longer static.
3190 * src/reader.c (parse_union_decl): Revamp.
3191
3192 2001-12-15 Akim Demaille <akim@epita.fr>
3193
3194 Still making progress in separating Bison into (i) input, (ii)
3195 process, (iii) output: now we can directly output the parser file
3196 without using table_obstack at all.
3197
3198 * src/files.c, src/files.h (table_obstack): Bye bye.
3199 (parser_file_name): New.
3200 * src/files.c (compute_output_file_names): Compute it.
3201 * src/output.c (actions_output, output_parser)
3202 (output_master_parser): To a file instead of an obstack.
3203
3204 2001-12-15 Akim Demaille <akim@epita.fr>
3205
3206 Attach actions to rules, instead of pre-outputting them to
3207 actions_obstack.
3208
3209 * src/gram.h (rule_t): action and action_line are new members.
3210 * src/reader.c (symbol_list): Likewise.
3211 (copy_action): Save the actions within the rule.
3212 (packgram): Save them in rule_table.
3213 * src/output.c (actions_output): New.
3214 (output_parser): Use it on `%%actions'.
3215 (output_rule_data): Don't free rule_table.
3216 (output): Do it.
3217 (prepare): Don't save the `action' muscle.
3218 * src/bison.simple: s/%%action/%%actions/.
3219
3220 2001-12-15 Akim Demaille <akim@epita.fr>
3221
3222 * src/reader.c (copy_action): When --yacc, don't append a `;'
3223 to the user action: let it fail if lacking.
3224 Suggested by Arnold Robbins and Tom Tromey.
3225
3226 2001-12-14 Akim Demaille <akim@epita.fr>
3227
3228 * src/lex.c (literalchar): Simply return the char you decoded, non
3229 longer mess around with obstacks and int pointers.
3230 Adjust all callers.
3231
3232 2001-12-14 Akim Demaille <akim@epita.fr>
3233
3234 * src/lex.c (literalchar): Don't escape the special characters,
3235 just decode them, and keep them as char (before, eol was output as
3236 the 2 char string `\n' etc.).
3237 * src/output.c (output_rule_data): Use quotearg to output the
3238 token strings.
3239
3240 2001-12-13 Paul Eggert <eggert@twinsun.com>
3241
3242 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
3243 Do not infringe on the global user namespace when using C++.
3244 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
3245 All uses of `fprintf' and `stderr' changed.
3246
3247 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
3248
3249 2001-12-13 Akim Demaille <akim@epita.fr>
3250
3251 The computation of nullable is broken: it doesn't handle empty
3252 RHS's properly.
3253
3254 * tests/torture.at (GNU AWK Grammar): New.
3255 * tests/sets.at (Nullable): New.
3256 * src/nullable.c (set_nullable): Instead of blindly looping over
3257 `ritems', loop over the rules, and then over their rhs's.
3258
3259 Work around Autotest bugs.
3260
3261 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
3262 frame, because Autotest understand lines starting with a `+' as
3263 traces from the shell. Then, they are not processed properly.
3264 Admittedly an Autotest bug, but we don't have time to wait for
3265 Autotest to catch up.
3266 * tests/regression.at (Broken Closure): Adjust to the new table
3267 frames.
3268 Move to...
3269 * tests/sets.at: here.
3270
3271 2001-12-13 Akim Demaille <akim@epita.fr>
3272
3273 * src/closure.c (closure): Use nrules instead of playing tricks
3274 with BITS_PER_WORD.
3275
3276 2001-12-13 Akim Demaille <akim@epita.fr>
3277
3278 * src/print.c (print_actions): Output the handling of `$' as the
3279 traces do: shifting the token EOF. Before EOF was treated as a
3280 nonterminal.
3281 * tests/regression.at: Adjust some tests.
3282 * src/print_graph.c (print_core): Complete the set of items via
3283 closure. The next-to-final and final states are still unsatisfying,
3284 but that's to be addressed elsewhere.
3285 No longer output the rule numbers, but do output the state number.
3286 A single loop for the shifts + gotos is enough, but picked a
3287 distinct color for each.
3288 (print_graph): Initialize and finalize closure.
3289
3290 2001-12-13 Akim Demaille <akim@epita.fr>
3291
3292 * src/reader.c (readgram): Remove dead code, an strip useless
3293 braces.
3294 (get_type): Remove, unused.
3295
3296 2001-12-12 Akim Demaille <akim@epita.fr>
3297
3298 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
3299 on that of lib/error.c.
3300
3301 2001-12-12 Akim Demaille <akim@epita.fr>
3302
3303 Some hosts don't like `/' in includes.
3304
3305 * src/system.h: Include libgettext.h without qualifying the path.
3306 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
3307 $(top_srcdir).
3308
3309 2001-12-11 Marc Autret <autret_m@epita.fr>
3310
3311 * src/output.c (output_parser): Remove useless muscle.
3312
3313 2001-12-11 Marc Autret <autret_m@epita.fr>
3314
3315 * src/bison.simple: Remove #line just before %%epilogue. It
3316 is now handled in ...
3317 * src/reader.c (read_additionnal_code): Add the output of a
3318 #line for the epilogue.
3319
3320 2001-12-10 Marc Autret <autret_m@epita.fr>
3321
3322 * src/reader.c (copy_definition): Re-use CPP-outed code which
3323 replace precedent remove.
3324 * src/bison.simple: Remove #line before %%prologue because
3325 %%input-line is wrong at this time.
3326
3327 2001-12-10 Marc Autret <autret_m@epita.fr>
3328
3329 * src/reader.c (symbols_output): Clean up.
3330 * src/output.c (output_gram, output): Clean up.
3331
3332 2001-12-10 Akim Demaille <akim@epita.fr>
3333
3334 * src/lalr.c (initialize_lookaheads): New. Extracted from...
3335 * src/LR0.c (set_state_table): here.
3336 * src/lalr.c (lalr): Call it.
3337
3338 2001-12-10 Akim Demaille <akim@epita.fr>
3339
3340 * src/state.h (shifts): Remove the `number' member: shifts are
3341 attached to state, hence no longer need to be labelled with a
3342 state number.
3343
3344 2001-12-10 Akim Demaille <akim@epita.fr>
3345
3346 Now that states have a complete set of members, the linked list of
3347 shifts is useless: just fill directly the state's shifts member.
3348
3349 * src/state.h (shifts): Remove the `next' member.
3350 * src/LR0.c (first_state, last_state): Remove.
3351 Adjust the callers.
3352 (augment_automaton): Don't look for the shifts that must be added
3353 a shift on EOF: it is those of the state we looked for! But now,
3354 since shifts are attached, it is no longer needed to looking
3355 merely by its id: its number.
3356
3357 2001-12-10 Akim Demaille <akim@epita.fr>
3358
3359 * src/LR0.c (augment_automaton): Better variable locality.
3360 Remove an impossible branch: if there is a state corresponding to
3361 the start symbol being shifted, then there is shift for the start
3362 symbol from the initial state.
3363
3364 2001-12-10 Akim Demaille <akim@epita.fr>
3365
3366 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
3367 only when appropriate: when insert_start_shifting_state' is not
3368 invoked.
3369 * tests/regression.at (Rule Line Numbers): Adjust.
3370
3371 2001-12-10 Akim Demaille <akim@epita.fr>
3372
3373 * src/LR0.c (augment_automaton): Now that all states have shifts,
3374 merge the two cases addition shifts to the initial state.
3375
3376 2001-12-10 Akim Demaille <akim@epita.fr>
3377
3378 * src/lalr.c (set_state_table): Move to...
3379 * src/LR0.c: here.
3380 * src/lalr.c (lalr): Don't call it...
3381 * src/LR0.c (generate_states): do it.
3382 * src/LR0.h (first_state): Remove, only the table is used.
3383
3384 2001-12-10 Akim Demaille <akim@epita.fr>
3385
3386 * src/LR0.h (first_shift, first_reduction): Remove.
3387 * src/lalr.c: Don't use first_shift: find shifts through the
3388 states.
3389
3390 2001-12-10 Akim Demaille <akim@epita.fr>
3391
3392 * src/LR0.c: Attach shifts to states as soon as they are
3393 computed.
3394 * src/lalr.c (set_state_table): Instead of assigning shifts to
3395 state, just assert that the mapping was properly done.
3396
3397 2001-12-10 Akim Demaille <akim@epita.fr>
3398
3399 * src/LR0.c (insert_start_shift): Rename as...
3400 (insert_start_shifting_state): this.
3401 (insert_eof_shifting_state, insert_accepting_state): New.
3402 (augment_automaton): Adjust.
3403 Better locality of the variables.
3404 When looking if the start_symbol is shifted from the initial
3405 state, using `while (... symbol != start_symbol ...)' sounds
3406 better than `while (... symbol < start_symbol ...)': If fail
3407 to see how the order between symbols could be relevant!
3408
3409 2001-12-10 Akim Demaille <akim@epita.fr>
3410
3411 * src/getargs.h: Don't declare `spec_name_prefix' and
3412 `spec_file_prefix', declared by src/files.h.
3413 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
3414 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
3415 * src/output.c (prepare): Adjust.
3416 * src/reader.c (symbols_output): Likewise.
3417 * src/vmsgetargs.c: Vaguely adjust, but who cares?
3418
3419 2001-12-10 Akim Demaille <akim@epita.fr>
3420
3421 * src/muscle_tab.c (muscle_init): NULL is a better default than
3422 `"0"'.
3423
3424 2001-12-10 Akim Demaille <akim@epita.fr>
3425
3426 * src/reader.c (reader): Calling symbols_output once is enough.
3427
3428 2001-12-10 Akim Demaille <akim@epita.fr>
3429
3430 Now that states have a complete set of members, the linked list of
3431 reductions is useless: just fill directly the state's reductions
3432 member.
3433
3434 * src/state.h (struct reductions): Remove member `number' and
3435 `next'.
3436 * src/LR0.c (first_reduction, last_reduction): Remove.
3437 (save_reductions): Don't link the new reductions, store them in
3438 this_state.
3439 * src/lalr.c (set_state_table): No need to attach reductions to
3440 states, it's already done.
3441 * src/output.c (output_actions): No longer free the shifts, then
3442 the reductions, then the states: free all the states and their
3443 members.
3444
3445 2001-12-10 Akim Demaille <akim@epita.fr>
3446
3447 * src/options.c (OPTN, DRTV, BOTH): New.
3448 (option_table): Use them.
3449
3450 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
3451 the job of system.h.
3452 * src/options.c: Don't include stdio.h and xalloc.h for the same
3453 reasons.
3454
3455 2001-12-10 Akim Demaille <akim@epita.fr>
3456
3457 * src/output.c (output, prepare): Make sure the values of the
3458 muscles `action' and `prologue' are 0-terminated.
3459
3460 2001-12-10 Akim Demaille <akim@epita.fr>
3461
3462 Clean up GCC warnings.
3463
3464 * src/reader.c (copy_action): `buf' is not used.
3465 (parse_skel_decl): Be static.
3466 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
3467 * src/options.h (create_long_option_table): Have a real prototype.
3468 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
3469 (hash_delete_at): Return const void *.
3470 Adjust casts to preserve the const.
3471
3472 2001-12-10 Akim Demaille <akim@epita.fr>
3473
3474 * configure.in: Require 2.52g.
3475 M4 is not needed, but AUTOM4TE is.
3476 * m4/m4.m4: Remove.
3477 * tests/Makefile.am: Adjust.
3478
3479 2001-12-10 Akim Demaille <akim@epita.fr>
3480
3481 One structure for states is enough, even though theoretically
3482 there are LR(0) states and LALR(1) states.
3483
3484 * src/lalr.h (state_t): Remove.
3485 (state_table): Be state_t **, not state_t *.
3486 * src/state.h (core, CORE_ALLOC): Rename as...
3487 (state_t, STATE_ALLOC): this.
3488 Add the LALR(1) members: shifts, reductions, errs.
3489 * src/LR0.c (state_table): Rename as...
3490 (state_hash): this, to avoid name clashes with the global
3491 `state_table'.
3492 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
3493 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
3494
3495 2001-12-10 Akim Demaille <akim@epita.fr>
3496
3497 Bison dumps core on bash.y.
3498 Reported by Pascal Bart.
3499
3500 * src/warshall.c (bitmatrix_print): New.
3501 (TC): Use it.
3502 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
3503 j must be the outer loop.
3504 * tests/regression.at (Broken Closure): New.
3505
3506 2001-12-05 Akim Demaille <akim@epita.fr>
3507
3508 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
3509 its argument.
3510 Reported by Peter Hámorský.
3511
3512 2001-12-05 Akim Demaille <akim@epita.fr>
3513
3514 * src/conflicts.c (err_table): Remove.
3515 (resolve_sr_conflict): Adjust.
3516 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
3517 Rename as...
3518 (state_t.reductions, state_t.shifts): this.
3519
3520 2001-12-05 Akim Demaille <akim@epita.fr>
3521
3522 * src/reduce.c (reduce_grammar_tables): No longer disable the
3523 removal of useless rules via CPP but via `if (0)', so that the
3524 compiler still check the code is valid.
3525 For instance, it should have noticed `rline' no longer exists: use
3526 the `line' member of rule_t.
3527 * src/gram.c (dummy, rline): Remove, unused.
3528
3529 2001-12-05 Akim Demaille <akim@epita.fr>
3530
3531 * src/output.c (pack_vector): Use assert, not berror.
3532 * src/main.c (berror): Remove, unused.
3533
3534 2001-12-05 Akim Demaille <akim@epita.fr>
3535
3536 New experimental feature: if --verbose --trace output all the
3537 items of a state, not only its kernel.
3538
3539 * src/print.c (print_core): If `trace_flag', then invoke closure
3540 before outputting the items of the state (print_core is no longer
3541 a correct name them).
3542 (print_results): Invoke new_closure/free_closure if needed.
3543
3544 2001-12-05 Akim Demaille <akim@epita.fr>
3545
3546 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
3547 * src/closure.c, src/closure.h (itemsetsize): Rename as...
3548 (nitemset): for consistency with the rest of the project.
3549
3550 2001-12-05 Akim Demaille <akim@epita.fr>
3551
3552 * src/closure.c (print_closure): Improve.
3553 (closure): Use it for printing input and output.
3554
3555 2001-12-05 Akim Demaille <akim@epita.fr>
3556
3557 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
3558 indexed by nonterminals.
3559
3560 2001-12-05 Akim Demaille <akim@epita.fr>
3561
3562 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
3563 what it was!).
3564 * src/warshall.h: Remove accidental duplication of the content.
3565
3566 2001-12-05 Akim Demaille <akim@epita.fr>
3567
3568 * src/closure.c (set_fderives): De-obfuscate.
3569
3570 2001-12-05 Akim Demaille <akim@epita.fr>
3571
3572 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
3573
3574 2001-12-05 Akim Demaille <akim@epita.fr>
3575
3576 * src/closure.c (set_firsts): De-obfuscate.
3577
3578 2001-12-05 Akim Demaille <akim@epita.fr>
3579
3580 * src/output.c (action_row): De-obfuscate
3581 using the good o' techniques: arrays not pointers, variable
3582 locality, BITISSET, RESETBIT etc.
3583
3584 2001-12-05 Akim Demaille <akim@epita.fr>
3585
3586 Pessimize the code to simplify it: from now on, all the states
3587 have a valid SHIFTS, which NSHIFTS is possibly 0.
3588
3589 * src/LR0.c (shifts_new): Be global and move to..
3590 * src/state.c, src/state.h: here.
3591 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
3592 * src/print_graph: Adjust.
3593
3594 2001-12-05 Akim Demaille <akim@epita.fr>
3595
3596 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
3597 * src/conflicts.c: Use it.
3598 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
3599 incorrectly ``simplified''.
3600
3601 2001-12-05 Akim Demaille <akim@epita.fr>
3602
3603 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
3604 using the good o' techniques: arrays not pointers, variable
3605 locality, BITISSET, RESETBIT etc.
3606
3607 2001-12-05 Akim Demaille <akim@epita.fr>
3608
3609 * src/state.h (SHIFT_SYMBOL): New.
3610 * src/conflicts.c: Use it to deobfuscate.
3611
3612 2001-12-05 Akim Demaille <akim@epita.fr>
3613
3614 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
3615 (print_reductions): De-obfuscate using the good o' techniques:
3616 arrays not pointers, variable locality, BITISSET.
3617
3618 2001-12-05 Akim Demaille <akim@epita.fr>
3619
3620 * src/conflicts.c (print_reductions): Arrays, not pointers.
3621 Use BITISSET.
3622
3623 2001-12-05 Akim Demaille <akim@epita.fr>
3624
3625 * src/conflicts.c (print_reductions): Pessimize, but clarify.
3626
3627 2001-12-05 Akim Demaille <akim@epita.fr>
3628
3629 * src/conflicts.c (print_reductions): Improve variable locality.
3630
3631 2001-12-05 Akim Demaille <akim@epita.fr>
3632
3633 * src/conflicts.c (print_reductions): Pessimize, but clarify.
3634
3635 2001-12-05 Akim Demaille <akim@epita.fr>
3636
3637 * src/conflicts.c (print_reductions): Improve variable locality.
3638
3639 2001-12-05 Akim Demaille <akim@epita.fr>
3640
3641 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
3642 * src/lalr.c: Use them.
3643
3644 2001-12-05 Akim Demaille <akim@epita.fr>
3645
3646 * src/LR0.c (augment_automaton): Formatting changes.
3647 Better variable locality.
3648
3649 2001-12-05 Akim Demaille <akim@epita.fr>
3650
3651 * src/lalr.c (matrix_print): New.
3652 (transpose): Use it.
3653 Use arrays instead of pointers.
3654
3655 2001-12-05 Akim Demaille <akim@epita.fr>
3656
3657 * src/lalr.c (maxrhs): Move to...
3658 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
3659 * src/lalr.c (build_relations): Adjust.
3660
3661 2001-12-05 Akim Demaille <akim@epita.fr>
3662
3663 * src/lalr.c (transpose): Free the memory allocated to the
3664 argument, as it is replaced by the results by the unique caller.
3665 (build_relations): Merely invoke transpose: it handles the memory
3666 deallocation.
3667 Improve variable locality.
3668 Avoid variables used as mere abbreviations.
3669 (compute_lookaheads): Use arrays instead of pointers.
3670
3671 2001-12-05 Akim Demaille <akim@epita.fr>
3672
3673 * src/lalr.c (initialize_F): Improve variable locality.
3674 Avoid variables used as mere abbreviations.
3675
3676 2001-12-05 Akim Demaille <akim@epita.fr>
3677
3678 * src/derives.c (print_derives): Display the ruleno.
3679 * src/lalr.c (initialize_F, transpose): Better variable locality
3680 to improve readability.
3681 Avoid variables used as mere abbreviations.
3682
3683 2001-12-05 Akim Demaille <akim@epita.fr>
3684
3685 * src/lalr.c (traverse): Use arrays instead of pointers.
3686
3687 2001-12-05 Akim Demaille <akim@epita.fr>
3688
3689 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
3690 the handling of squeue.
3691 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
3692
3693 2001-12-05 Akim Demaille <akim@epita.fr>
3694
3695 Because useless nonterminals are now kept alive (instead of being
3696 `destroyed'), we now sometimes examine them, and store information
3697 related to them. Hence we need to know their number, and adjust
3698 memory allocations.
3699
3700 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
3701 static.
3702 * src/LR0.c (allocate_itemsets): The memory allocated to
3703 `symbol_count' was used for two different purpose: once to count
3704 the number of occurrences of each symbol, and later reassigned to
3705 `shift_symbol', containing the symbol that can be shifted from a
3706 given state.
3707 Deobfuscate, i.e., allocate, use and free `symbol_count' here
3708 only, and...
3709 (new_itemsets): Allocate `shift_symbol' here.
3710 (allocate_itemsets): symbol_count includes useless nonterminals.
3711 Make room for them.
3712 (free_storage): Use `free', not `XFREE', for pointers that cannot
3713 be null.
3714
3715 2001-12-05 Akim Demaille <akim@epita.fr>
3716
3717 * src/nullable.c (set_nullable): Deobfuscate the handling of
3718 ritem.
3719 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
3720
3721 2001-12-05 Akim Demaille <akim@epita.fr>
3722
3723 * src/gram.c, src/gram.h (ritem_print): New.
3724 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
3725 (This useless function was defined only to work around VMS linkers
3726 that can't handle compilation units with variables only).
3727 * src/reduce.c (dump_grammar): Use it to trace the construction of
3728 ritem.
3729
3730 2001-12-04 Paul Eggert <eggert@twinsun.com>
3731
3732 * src/bison.simple (union yyalloc): Change member names
3733 to be the same as the stack names.
3734 (yyparse): yyptr is now union yyalloc *, not char *.
3735 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
3736 and may generate better code on some machines.
3737 (yystpcpy): Use prototype if __STDC__ is defined, not just
3738 if __cplusplus is defined.
3739
3740 2001-11-30 Akim Demaille <akim@epita.fr>
3741
3742 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
3743 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
3744 Gettext doesn't compile cleanly, and dies with -Werror.
3745 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
3746 Include WARNING_CFLAGS here.
3747 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
3748 before being defined.
3749
3750 2001-11-27 Paul Eggert <eggert@twinsun.com>
3751
3752 * lib/quotearg.h (quotearg_n, quotearg_n_style):
3753 First arg is int, not unsigned.
3754 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
3755 (SIZE_MAX, UINT_MAX): New macros.
3756 (quotearg_n_options): Abort if N is negative.
3757 Avoid overflow check on hosts where size_t is 64 bits and int
3758 is 32 bits, as overflow is impossible there.
3759 Fix off-by-one typo that caused unnecessary reallocation.
3760
3761 2001-11-29 Paul Eggert <eggert@twinsun.com>
3762
3763 Name space cleanup in generated parser.
3764
3765 * doc/bison.texinfo (Bison Parser): Discuss system headers
3766 and their effect on the user name space.
3767
3768 * src/bison.simple:
3769 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
3770 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
3771 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
3772
3773 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
3774 on user names when possible.
3775
3776 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
3777 Simplify test for whather <alloca.h> exists.
3778
3779 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
3780
3781 (<stdio.h>): Include if YYDEBUG.
3782
3783 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
3784 ! defined (yyoverflow) && ! defined (yymemcpy).
3785
3786 (yymemcpy, yyparse): Rename local variables as needed so that
3787 they all begin with 'yy'.
3788
3789 (yystrlen, yystpcpy): New functions.
3790
3791 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
3792 All uses changed.
3793
3794 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
3795 instead of relying on string.h functions. Use YYSTACK_ALLOC
3796 and YYSTACK_FREE instead of malloc and free.
3797
3798 2001-11-30 Akim Demaille <akim@epita.fr>
3799
3800 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
3801 before their first uses.
3802 (YYBISON, YYPURE): Move to the top of the output.
3803
3804 2001-11-30 Akim Demaille <akim@epita.fr>
3805
3806 * tests/reduce.at (Useless Nonterminals): Fix.
3807
3808 2001-11-30 Akim Demaille <akim@epita.fr>
3809
3810 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
3811 if body instead of `;' to pacify GCC's warnings.
3812
3813 2001-11-30 Akim Demaille <akim@epita.fr>
3814
3815 Instead of mapping the LHS of unused rules to -1, keep the LHS
3816 valid, but flag the rules as invalid.
3817
3818 * src/gram.h (rule_t): `useful' is a new member.
3819 * src/print.c (print_grammar): Adjust.
3820 * src/derives.c (set_derives): Likewise.
3821 * src/reader.c (packgram, reduce_output): Likewise.
3822 * src/reduce.c (reduce_grammar_tables): Likewise.
3823 * tests/reduce.at (Underivable Rules, Useless Rules): New.
3824
3825 2001-11-30 Akim Demaille <akim@epita.fr>
3826
3827 * src/reduce.c (reduce_output): Formatting changes.
3828 * src/print.c (print_results, print_grammar): Likewise.
3829 * tests/regression.at (Rule Line Numbers)
3830 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
3831
3832 2001-11-30 Akim Demaille <akim@epita.fr>
3833
3834 * src/reduce.c (nonterminals_reduce): Instead of throwing away
3835 useless nonterminals, move them at the end of the symbol arrays.
3836 (reduce_output): Adjust.
3837 * tests/reduce.at (Useless Nonterminals): Adjust.
3838
3839 2001-11-30 Akim Demaille <akim@epita.fr>
3840
3841 * src/reduce.c: Various comment/formatting changes.
3842 (nonterminals_reduce): New, extracted from...
3843 (reduce_grammar_tables): here.
3844 (reduce_grammar): Call nonterminals_reduce.
3845
3846 2001-11-29 Paul Eggert <eggert@twinsun.com>
3847
3848 * src/bison.simple (YYSTACK_REALLOC): Remove.
3849 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
3850 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
3851 New macros.
3852 (union yyalloc): New type.
3853 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
3854 an arbitrary restriction on hosts where size_t is wider than int.
3855
3856 (yyparse): Don't dump core if alloca or malloc fails; instead, report
3857 a parser stack overflow. Allocate just one block of memory for all
3858 three stacks, instead of allocating three blocks; this typically is
3859 faster and reduces fragmentation.
3860
3861 Do not limit the number of items in the stack to a value that fits
3862 in 'int', as this is an arbitrary limit on hosts with 64-bit
3863 size_t and 32-bit int.
3864
3865 2001-11-29 Marc Autret <autret_m@epita.fr>
3866
3867 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
3868 of defining YYERROR_VERBOSE.
3869 [AT_DATA]: $4 is now out of C declarations in the prologue.
3870
3871 2001-11-28 Marc Autret <autret_m@epita.fr>
3872
3873 * src/reader.c (parse_dquoted_param): New.
3874 (parse_skel_decl): Use it.
3875 * src/lex.h: Add its prototype.
3876 * src/lex.c (literalchar): Become not static.
3877
3878 2001-11-28 Marc Autret <autret_m@epita.fr>
3879
3880 * src/output.h: And put its extern declaration here.
3881 * src/output.c (error_verbose): Define here.
3882 (prepare): Echo name modification.
3883 * src/getargs.h: Clean its extern declaration.
3884 * src/getargs.c (error_verbose_flag): Remove.
3885 (getargs): Remove case 'e'.
3886 * src/options.c (option_table): 'error-verbose' is now seen as simple
3887 percent option.
3888 Include output.h.
3889
3890 * src/reader.c (read_declarations): Remove case tok_include.
3891 (parse_include_decl): Remove.
3892 * src/lex.h (token_t): Remove tok_include.
3893 * src/options.c (option_table): 'include' is now a simple command line
3894 option.
3895
3896 2001-11-28 Marc Autret <autret_m@epita.fr>
3897
3898 * src/bison.simple: Adjust muscle names.
3899 * src/muscle_tab.c (muscle_init): Also rename the muscles.
3900 * src/output.c (prepare): s/_/-/ for the muscles names.
3901 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
3902
3903 2001-11-28 Marc Autret <autret_m@epita.fr>
3904
3905 * src/bison.simple: Fix debug.
3906 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
3907
3908 2001-11-28 Akim Demaille <akim@epita.fr>
3909
3910 * src/LR0.c (shifts_new): New.
3911 (save_shifts, insert_start_shift, augment_automaton): Use it.
3912
3913 2001-11-28 Akim Demaille <akim@epita.fr>
3914
3915 * src/closure.c (closure): `b' and `ruleno' denote the same value:
3916 keep ruleno only.
3917
3918 2001-11-28 Akim Demaille <akim@epita.fr>
3919
3920 * src/closure.c (closure): Instead of looping over word in array
3921 then bits in words, loop over bits in array.
3922
3923 2001-11-28 Akim Demaille <akim@epita.fr>
3924
3925 * src/closure.c (closure): No longer optimize the special case
3926 where all the bits of `ruleset[r]' are set to 0, to make the code
3927 clearer.
3928
3929 2001-11-28 Akim Demaille <akim@epita.fr>
3930
3931 * src/closure.c (closure): `r' and `c' are new variables, used to
3932 de-obfuscate accesses to RULESET and CORE.
3933
3934 2001-11-28 Akim Demaille <akim@epita.fr>
3935
3936 * src/reduce.c (reduce_print): Use ngettext.
3937 (dump_grammar): Improve the trace accuracy.
3938
3939 2001-11-28 Akim Demaille <akim@epita.fr>
3940
3941 * src/reduce.c (dump_grammar): Don't translate trace messages.
3942
3943 2001-11-28 Akim Demaille <akim@epita.fr>
3944
3945 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
3946 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
3947 as all tags are free'ed afterwards.
3948 From Enrico Scholz.
3949
3950 2001-11-27 Paul Eggert <eggert@twinsun.com>
3951
3952 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
3953 use alloca when we didn't want to, and vice versa.
3954
3955 2001-11-27 Marc Autret <autret_m@epita.fr>
3956
3957 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
3958 initialization.
3959 * src/output.c (prepare): Remove its update.
3960
3961 2001-11-27 Marc Autret <autret_m@epita.fr>
3962
3963 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
3964 Use %error-verbose.
3965
3966 2001-11-27 Marc Autret <autret_m@epita.fr>
3967
3968 * src/bison.simple: Remove YYERROR_VERBOSE using.
3969 Use %%error_verbose.
3970 (yyparse): Likewise.
3971 * src/output.c (prepare): Give its final value.
3972 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
3973 * src/getargs.h: Add its extern declaration.
3974 * src/getargs.c (error_verbose_flag): New int.
3975 (getargs): Update to catch new case.
3976 * src/options.c (option_table): 'error-verbose' is a new option.
3977 (shortopts): Update.
3978
3979 2001-11-27 Akim Demaille <akim@epita.fr>
3980
3981 * src/system.h: Use intl/libgettext.h.
3982 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
3983
3984 2001-11-27 Akim Demaille <akim@epita.fr>
3985
3986 * tests/torture.at (Exploding the Stack Size with Malloc):
3987 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
3988
3989 2001-11-27 Akim Demaille <akim@epita.fr>
3990
3991 * src/files.c: Include error.h.
3992 Reported by Hans Aberg.
3993
3994 2001-11-26 Marc Autret <autret_m@epita.fr>
3995
3996 * src/reader.c (parse_include_decl): New, not yet implemented.
3997 (read_declarations): Add case tok_include.
3998 * src/getargs.h (include): Add its extern definition.
3999 * src/getargs.c (include): New const char *.
4000 (getargs): Add case '-I'.
4001 * src/options.c (option_table): Add include as command line and
4002 percent option.
4003 * src/lex.h (token_t): Add tok_include.
4004
4005 2001-11-26 Akim Demaille <akim@epita.fr>
4006
4007 * src/reader.c (readgram): Make sure rules for mid-rule actions
4008 have a lineno equal to that of their host rule.
4009 Reported by Hans Aberg.
4010 * tests/regression.at (Rule Line Numbers): New.
4011
4012 2001-11-26 Akim Demaille <akim@epita.fr>
4013
4014 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
4015 size_ts.
4016
4017 2001-11-26 Akim Demaille <akim@epita.fr>
4018
4019 * src/complain.c, src/complain.h (error): Remove, provided by
4020 lib/error.[ch].
4021
4022 2001-11-26 Akim Demaille <akim@epita.fr>
4023
4024 * src/reader.c (read_declarations): Don't abort on tok_illegal,
4025 issue an error message.
4026 * tests/regression.at (Invalid %directive): New.
4027 Reported by Hans Aberg.
4028
4029 2001-11-26 Akim Demaille <akim@epita.fr>
4030
4031 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
4032 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
4033
4034 2001-11-26 Akim Demaille <akim@epita.fr>
4035
4036 * src/conflicts.c (conflicts_print): Don't complain at all when
4037 there are no reduce/reduce conflicts, and as many shift/reduce
4038 conflicts as expected.
4039 * tests/regression.at (%expect right): Adjust.
4040
4041 2001-11-23 Akim Demaille <akim@epita.fr>
4042
4043 * lib/alloca.c: Update, from fileutils.
4044
4045 2001-11-23 Akim Demaille <akim@epita.fr>
4046
4047 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
4048
4049 2001-11-23 Akim Demaille <akim@epita.fr>
4050
4051 * src/system.h: Include alloca.h.
4052 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
4053
4054 2001-11-23 Akim Demaille <akim@epita.fr>
4055
4056 * src/print_graph.c (print_actions): Remove `rule', unused.
4057 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
4058 pacify GCC's signed < unsigned warnings.
4059 * src/closure.c (itemsetsize): Likewise.
4060 * src/reader.c (symbol_list_new): Static.
4061
4062 2001-11-23 Akim Demaille <akim@epita.fr>
4063
4064 Attaching lineno to buckets is stupid, since only one copy of each
4065 symbol is kept, only the line of the first occurrence is kept too.
4066
4067 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
4068 * src/reader.c (rline_allocated): Remove, unused.
4069 (symbol_list): Have a `line' member.
4070 (symbol_list_new): New.
4071 (readgram): Use it.
4072 * src/print.c (print_grammar): Output the rule line numbers.
4073 * tests/regression.at (Solved SR Conflicts)
4074 (Unresolved SR Conflicts): Adjust.
4075 Reported by Hans Aberg.
4076
4077 2001-11-22 Marc Autret <autret_m@epita.fr>
4078
4079 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
4080
4081 2001-11-22 Marc Autret <autret_m@epita.fr>
4082
4083 * src/muscle_tab.c (muscle_init): Remove initialization of
4084 skeleton muscle.
4085 * src/output.c (output_master_parser): Do it here.
4086
4087 2001-11-20 Akim Demaille <akim@epita.fr>
4088
4089 * po/sv.po: New.
4090 * configure.in (ALL_LINGUAS): Adjust.
4091 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
4092 longer contains strings to translate.
4093
4094 2001-11-19 Akim Demaille <akim@epita.fr>
4095
4096 * src/conflicts.c (conflicts_print): Add a missing \n.
4097
4098 2001-11-19 Akim Demaille <akim@epita.fr>
4099
4100 * src/nullable.c (nullable_print): New.
4101 (set_nullable): Call it when tracing.
4102 Better locality of variables.
4103
4104 2001-11-19 Akim Demaille <akim@epita.fr>
4105
4106 * src/print.c (print_actions): Better locality of variables.
4107
4108 2001-11-19 Akim Demaille <akim@epita.fr>
4109
4110 * src/derives.c (print_derives): Fix and enrich.
4111 * src/closure.c (print_fderives): Likewise.
4112
4113 2001-11-19 Akim Demaille <akim@epita.fr>
4114
4115 * src/closure.c (itemsetend): Remove, replaced with...
4116 (itemsetsize): new.
4117
4118 2001-11-19 Akim Demaille <akim@epita.fr>
4119
4120 * src/LR0.c (kernel_end): Remove, replaced with...
4121 (kernel_size): new.
4122
4123 2001-11-19 Akim Demaille <akim@epita.fr>
4124
4125 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
4126 to clarify.
4127
4128 2001-11-19 Akim Demaille <akim@epita.fr>
4129
4130 * src/closure.c (closure): Use arrays instead of pointers to clarify.
4131
4132 2001-11-19 Akim Demaille <akim@epita.fr>
4133
4134 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
4135 trace messages.
4136 * src/LR0.c: Likewise.
4137 (allocate_itemsets): Use arrays instead of pointers to clarify.
4138
4139 2001-11-19 Akim Demaille <akim@epita.fr>
4140
4141 * src/getargs.c (statistics_flag): Replace with...
4142 (trace_flag): New.
4143 (longopts): Accept --trace instead of --statistics.
4144 * src/getargs.h, src/options.c: Adjust.
4145 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
4146 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
4147
4148 2001-11-19 Akim Demaille <akim@epita.fr>
4149
4150 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
4151 pointers to clarify the code.
4152 (save_reductions, save_shifts): Factor common parts of alternatives.
4153
4154 2001-11-19 Akim Demaille <akim@epita.fr>
4155
4156 * src/LR0.c (new_state, get_state): Complete TRACE code.
4157 * src/closure.c: Include `reader.h' to get `tags', needed by the
4158 trace code.
4159 Rename the conditional DEBUG as TRACE.
4160 Output consistently TRACEs to stderr, not stdout.
4161 * src/derives.c: Likewise.
4162 * src/reduce.c: (inaccessable_symbols): Using if is better style
4163 than goto.
4164 Use `#if TRACE' instead of `#if 0' for tracing code.
4165
4166 2001-11-19 Akim Demaille <akim@epita.fr>
4167
4168 * src/system.h (LIST_FREE, shortcpy): New.
4169 * src/LR0.c: Use them.
4170 * src/output.c (free_itemsets, free_reductions, free_shifts):
4171 Remove, replaced by LIST_FREE.
4172
4173 2001-11-19 Akim Demaille <akim@epita.fr>
4174
4175 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
4176 (REDUCTIONS_ALLOC): New.
4177 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
4178 allocation.
4179
4180 2001-11-19 Akim Demaille <akim@epita.fr>
4181
4182 * src/LR0.c (new_state): Complete trace code.
4183 * src/nullable.c (set_nullable): Don't translate traces.
4184
4185 2001-11-19 Akim Demaille <akim@epita.fr>
4186
4187 * src/print_graph.c (print_core): Better locality of variables.
4188 * src/print.c (print_core): Likewise.
4189
4190 2001-11-19 Akim Demaille <akim@epita.fr>
4191
4192 * src/vcg.c: You do the output, so you are responsible of the
4193 handling of VCG syntax, in particular: use quotearg.
4194 * src/print_graph.c: Don't.
4195 (print_actions): Don't output the actions as part of the nodes,
4196 since that's the job of the edges.
4197 (print_state): Don't output by hand: fill the node description,
4198 and ask for its output.
4199
4200 2001-11-19 Akim Demaille <akim@epita.fr>
4201
4202 * src/bison.simple (yyparse): When verbosely reporting an error,
4203 no longer put additional quotes around token names.
4204 * tests/calc.at: Adjust.
4205
4206 2001-11-19 Akim Demaille <akim@epita.fr>
4207
4208 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
4209 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
4210 * src/output.c: Adjust.
4211
4212 2001-11-19 Akim Demaille <akim@epita.fr>
4213
4214 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
4215 (rule_t): this.
4216 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
4217
4218 2001-11-19 Akim Demaille <akim@epita.fr>
4219
4220 * src/gram.h (rule_t): New.
4221 (rule_table): New.
4222 (rrhs, rlhs): Remove, part of state_t.
4223 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
4224 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
4225 * src/reader.c, src/reduce.c: Adjust.
4226
4227 2001-11-19 Akim Demaille <akim@epita.fr>
4228
4229 * src/reader.c (symbols_output): New, extracted from...
4230 (packsymbols): Here.
4231 (reader): Call it.
4232
4233 2001-11-19 Akim Demaille <akim@epita.fr>
4234
4235 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
4236 (maxrhs): this new function.
4237
4238 2001-11-19 Akim Demaille <akim@epita.fr>
4239
4240 * src/lalr.c (F): New macro to access the variable F.
4241 Adjust.
4242
4243 2001-11-19 Akim Demaille <akim@epita.fr>
4244
4245 * src/lalr.h (LA): New macro to access the variable LA.
4246 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
4247 * src/lalr.c: Adjust.
4248
4249 2001-11-19 Akim Demaille <akim@epita.fr>
4250
4251 * src/lalr.c (initialize_LA): Only initialize LA. Let...
4252 (set_state_table): handle the `lookaheads' members.
4253
4254 2001-11-19 Akim Demaille <akim@epita.fr>
4255
4256 * src/lalr.h (lookaheads): Removed array, whose contents is now
4257 a member of...
4258 (state_t): this structure.
4259 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
4260 Adjust.
4261
4262 2001-11-19 Akim Demaille <akim@epita.fr>
4263
4264 * src/lalr.h (consistent): Removed array, whose contents is now
4265 a member of...
4266 (state_t): this structure.
4267 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
4268 Adjust.
4269
4270 2001-11-19 Akim Demaille <akim@epita.fr>
4271
4272 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
4273 contents are now members of...
4274 (state_t): this structure.
4275 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
4276 Adjust.
4277
4278 2001-11-19 Akim Demaille <akim@epita.fr>
4279
4280 * src/lalr.h (state_t): New.
4281 (state_table): Be a state_t * instead of a core **.
4282 (accessing_symbol): Remove, part of state_t.
4283 * src/lalr.c: Adjust.
4284 (set_accessing_symbol): Merge into...
4285 (set_state_table): this.
4286 * src/print_graph.c, src/conflicts.c: Adjust.
4287
4288 2001-11-14 Akim Demaille <akim@epita.fr>
4289
4290 * tests/calc.at, tests/output.at, tests/regression.at,
4291 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
4292 now the tests are run in private dirs, therefore AC_CLEANUP and
4293 family can be simplified to 0-ary.
4294 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
4295 use abs. path to find config.h.
4296 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
4297 stderr, there can be way too much random noise.
4298 Instead pass -Werror to GCC and rely on the exit status.
4299 Reported by Wolfram Wagner.
4300
4301 2001-11-14 Akim Demaille <akim@epita.fr>
4302
4303 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
4304 defined only if yyoverflow is defined, to avoid `warning: unused
4305 variable `yyvs1''.
4306 Reported by The Test Suite.
4307
4308 2001-11-14 Akim Demaille <akim@epita.fr>
4309
4310 * src/print.c: Include reduce.h.
4311 Reported by Hans Aberg.
4312
4313 2001-11-14 Akim Demaille <akim@epita.fr>
4314
4315 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
4316 Revert a previous patch: these are really const.
4317 * src/conflicts.c (conflict_report): Additional useless pair of
4318 braces to pacify GCC's warnings for `if () if () {} else {}'.
4319 * src/lex.c (parse_percent_token): Replace equal_offset with
4320 arg_offset.
4321 arg is const.
4322 Be sure to strdup `arg' when used, since there is no reason for
4323 token_buffer not to change.
4324
4325 2001-11-14 Akim Demaille <akim@epita.fr>
4326
4327 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
4328 definition.
4329 * src/main.c (main): Use them.
4330 Suggested by Hans Aberg.
4331
4332 2001-11-12 Akim Demaille <akim@epita.fr>
4333
4334 * src/system.h (ngettext): Now that we use ngettext, be sure to
4335 provide a default definition when NLS are not used.
4336
4337 2001-11-12 Akim Demaille <akim@epita.fr>
4338
4339 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
4340 Use @kbd to denote user input.
4341 (Language and Grammar): ANSIfy the example.
4342 Adjust its layout for info/notinfo.
4343 (Location Tracking Calc): Output error messages to stderr.
4344 Output locations in a more GNUtically correct way.
4345 Fix a couple of Englishos.
4346 Adjust @group/@end group pairs.
4347
4348 2001-11-12 Akim Demaille <akim@epita.fr>
4349
4350 %expext was not functioning at all.
4351
4352 * src/conflicts.c (expected_conflicts): Set to -1.
4353 (conflict_report): Use ngettext.
4354 (conflicts_print): Check %expect and make its violation an error.
4355 * doc/bison.texinfo (Expect Decl): Adjust.
4356 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
4357 * tests/regression.at (%expect not enough, %expect right)
4358 (%expect too much): New.
4359
4360 2001-11-12 Akim Demaille <akim@epita.fr>
4361
4362 * tests/regression.at (Conflicts): Rename as...
4363 (Unresolved SR Conflicts): this.
4364 (Solved SR Conflicts): New.
4365
4366 2001-11-12 Akim Demaille <akim@epita.fr>
4367
4368 * src/reduce.c (print_results): Rename as...
4369 (reduce_output): This.
4370 Output to OUT, passed as argument, instead of output_obstack.
4371 (dump_grammar): Likewise.
4372 (reduce_free): New.
4373 Also free V1.
4374 (reduce_grammar): No longer call reduce_output, since...
4375 * src/print.c (print_results): do it.
4376 * src/main.c (main): Call reduce_free;
4377
4378 2001-11-12 Akim Demaille <akim@epita.fr>
4379
4380 * src/conflicts.c (print_reductions): Accept OUT as argument.
4381 Output to it, not to output_obstack.
4382 * src/print.c (print_actions): Adjust.
4383
4384 2001-11-12 Akim Demaille <akim@epita.fr>
4385
4386 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
4387 the result instead of using...
4388 (src_total, rrc_total, src_count, rrc_count): Remove.
4389 (any_conflicts): Remove.
4390 (print_conflicts): Split into...
4391 (conflicts_print, conflicts_output): New.
4392 * src/conflicts.h: Adjust.
4393 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
4394 * src/print.c (print_grammar): Issue `\n' between two rules.
4395 * tests/regression.at (Conflicts): New.
4396 Reported by Tom Lane.
4397
4398 2001-11-12 Akim Demaille <akim@epita.fr>
4399
4400 * tests/regression.at (Invalid input): Remove, duplicate with
4401 ``Invalid input: 1''.
4402
4403 2001-11-12 Akim Demaille <akim@epita.fr>
4404
4405 * tests/torture.at (AT_DATA_STACK_TORTURE)
4406 (Exploding the Stack Size with Alloca)
4407 (Exploding the Stack Size with Malloc): New.
4408
4409 2001-11-12 Akim Demaille <akim@epita.fr>
4410
4411 * src/bison.simple (YYSTACK_REALLOC): New.
4412 (yyparse) [!yyoverflow]: Use it and free the old stack.
4413 Reported by Per Allansson.
4414
4415 2001-11-12 Pascal Bart <pascal.bart@epita.fr>
4416
4417 * src/bison.simple: Define type yystype instead of YYSTYPE, and
4418 define CPP macro, which substitute YYSTYPE by yystype.
4419 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
4420 with yyltype/YYLTYPE. This allows inclusion of the generated
4421 header within the parser if the compiler, such as GGC, accepts
4422 multiple equivalent #defines.
4423 From Akim.
4424
4425 2001-11-05 Akim Demaille <akim@epita.fr>
4426
4427 * src/reader.c (symbols_output): New, extracted from...
4428 (packsymbols): here.
4429 (reader): Adjust.
4430
4431 2001-11-05 Akim Demaille <akim@epita.fr>
4432
4433 * src/lex.c (parse_percent_token): s/quotearg/quote/.
4434
4435 2001-11-05 Akim Demaille <akim@epita.fr>
4436
4437 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
4438 pattern.
4439
4440 2001-11-05 Akim Demaille <akim@epita.fr>
4441
4442 * src/options.h (struct option_table_struct): set_flags is void*.
4443 * src/options.c (longopts): Support `--output' and `%output'.
4444 (usage): Adjust.
4445 * src/lex.h (tok_setopt): Remove, replaced with...
4446 (tok_intopt, tok_stropt): these new guys.
4447 * src/lex.c (getopt.h): Not needed.
4448 (token_buffer, unlexed_token_buffer): Not const.
4449 (percent_table): Promote `-' over `_' in directive names.
4450 Active `%name-prefix', `file-prefix', and `output'.
4451 (parse_percent_token): Accept possible arguments to directives.
4452 Promote `-' over `_' in directive names.
4453
4454 2001-11-04 Akim Demaille <akim@epita.fr>
4455
4456 * doc/bison.texinfo (Decl Summary): Split the list into
4457 `directives for grammars' and `directives for bison'.
4458 Sort'em.
4459 Add description of `%name-prefix', `file-prefix', and `output'.
4460 Promote `-' over `_' in directive names.
4461 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
4462 Simplify the description of `--name-prefix'.
4463 Promote `-' over `_' in directive names.
4464 Promote `--output' over `--output-file'.
4465 Fix the description of `--defines'.
4466 * tests/output.at: Exercise %file-prefix and %output.
4467
4468 2001-11-02 Akim Demaille <akim@epita.fr>
4469
4470 * doc/refcard.tex: Update.
4471
4472 2001-11-02 Akim Demaille <akim@epita.fr>
4473
4474 * src/symtab.h (SUNDEF): New.
4475 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
4476 stand for `uninitialized', instead of 0.
4477 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
4478 * src/lex.c (lex): Adjust.
4479
4480 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
4481 Number it 0.
4482 Let yylex return it instead of a plain 0.
4483 Reported by Dick Streefland.
4484
4485 2001-11-02 Akim Demaille <akim@epita.fr>
4486
4487 * tests/regression.at (Mixing %token styles): New test.
4488
4489 2001-11-02 Akim Demaille <akim@epita.fr>
4490
4491 * src/reader.c (parse_thong_decl): Formatting changes.
4492 (token_translations_init): New, extracted from...
4493 (packsymbols): Here.
4494 Adjust.
4495
4496 2001-11-01 Akim Demaille <akim@epita.fr>
4497
4498 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
4499 Check that `9foo.y' produces correct cpp guards.
4500 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
4501 guards.
4502 Reported by Wwp.
4503
4504 2001-11-01 Akim Demaille <akim@epita.fr>
4505
4506 * tests/regression.at (Invalid input: 2): New.
4507 * src/lex.c (unlexed_token_buffer): New.
4508 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
4509 too.
4510 Reported by Wwp.
4511
4512 2001-11-01 Akim Demaille <akim@epita.fr>
4513
4514 * tests/calc.at: Catch up with 1.30.
4515 * configure.in: Bump to 1.49a.
4516 Adjust to newer Autotest.
4517
4518 2001-10-19 Pascal Bart <pascal.bart@epita.fr>
4519
4520 * src/conflicts.c: Move global variables rrc_total and src_total ...
4521 (print_conflicts): here.
4522 * src/output.c (output): Free global variable user_toknums.
4523 * src/lex.c (token_obstack): Become static.
4524
4525 2001-10-18 Akim Demaille <akim@epita.fr>
4526
4527 * tests/atlocal.in (GCC): Add.
4528 * tests/calc.at: s/m4_match/m4_bmatch/.
4529 s/m4_patsubst/m4_bpatsubst/.
4530 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
4531 * configure.in: AC_SUBST(GCC).
4532
4533 2001-10-14 Marc Autret <autret_m@epita.fr>
4534
4535 * src/options.c (create_long_option_table): Fix.
4536
4537 2001-10-10 Akim Demaille <akim@epita.fr>
4538
4539 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
4540
4541 2001-10-04 Akim Demaille <akim@epita.fr>
4542
4543 * src/reader.c (parse_union_decl): Push the caracters in
4544 union_obstack, not attrs_obstack.
4545
4546 2001-10-04 Akim Demaille <akim@epita.fr>
4547
4548 Merge in the branch 1.29.
4549
4550 * src/reader.c (packsymbols): Use a temporary obstack for
4551 `%%tokendef', since output_stack is already used elsewhere.
4552
4553 2001-10-02 Akim Demaille <akim@epita.fr>
4554
4555 Bump 1.29d.
4556
4557 2001-10-02 Akim Demaille <akim@epita.fr>
4558
4559 Version 1.29c.
4560
4561 2001-10-02 Akim Demaille <akim@epita.fr>
4562
4563 * tests/regression.at (Invalid CPP headers): New.
4564 From Alexander Belopolsky.
4565 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
4566
4567 2001-10-02 Akim Demaille <akim@epita.fr>
4568
4569 * tests/regression.at (Invalid input): New.
4570 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
4571 Reported by Shura.
4572
4573 2001-10-02 Akim Demaille <akim@epita.fr>
4574
4575 * tests/calc.at: Now that --debug works, the tests must be adjusted.
4576
4577 2001-10-02 Akim Demaille <akim@epita.fr>
4578
4579 * src/output.c (output_parser): Assert `skeleton'.
4580 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
4581 systems.
4582 From Shura.
4583
4584 2001-10-01 Marc Autret <autret_m@epita.fr>
4585
4586 * src/lex.h: Echo modifications.
4587 * src/lex.c (unlex): Parameter is now token_t.
4588 From Hans Aberg.
4589
4590 2001-10-01 Marc Autret <autret_m@epita.fr>
4591
4592 * src/main.c: Include lex.h.
4593 From Hans Aberg.
4594
4595 2001-09-29 Akim Demaille <akim@epita.fr>
4596
4597 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
4598
4599 2001-09-28 Akim Demaille <akim@epita.fr>
4600
4601 * tests/testsuite.at: Update to newer Autotest.
4602 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
4603
4604 2001-09-27 Akim Demaille <akim@epita.fr>
4605
4606 Position independent wrapper.
4607
4608 * tests/bison: Remove.
4609 * tests/bison.in: New.
4610 * configure.in: Adjust.
4611
4612 2001-09-27 Paul Eggert <eggert@twinsun.com>
4613
4614 Port quotearg fixes from tar 1.13.24.
4615
4616 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
4617 tm to be declared.
4618 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
4619 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
4620
4621 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
4622 * m4/mbrtowc.m4: New file.
4623 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
4624 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
4625
4626 2001-09-27 Akim Demaille <akim@epita.fr>
4627
4628 Bump to 1.29c.
4629
4630 2001-09-27 Akim Demaille <akim@epita.fr>
4631
4632 Version 1.29b.
4633
4634 2001-09-25 Akim Demaille <akim@epita.fr>
4635
4636 * src/system.h: Include `xalloc.h'.
4637 Remove it from the C files.
4638 * src/files.c (output_files): Free the obstacks.
4639 * src/lex.c (init_lex): Rename as...
4640 (lex_init): this.
4641 (lex_free): New.
4642 * src/main.c (main): Use it.
4643
4644 2001-09-24 Marc Autret <autret_m@epita.fr>
4645
4646 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
4647 to output informations in fout (FILE*).
4648 (open_graph, close_graph): Likewise.
4649 (output_graph, output_edge, output_node): Likewise.
4650 * src/vcg.h: Update function prototypes.
4651 * src/print_graph.c (print_graph): Open output graph file.
4652 (print_actions): Adjust.
4653 * src/files.h: Remove extern declaration.
4654 * src/files.c: Remove graph_obstack declaration.
4655 (open_files): Remove graph_obstack initialization.
4656 (output_files): Remove graph_obstack saving.
4657
4658 2001-09-24 Marc Autret <autret_m@epita.fr>
4659
4660 * src/files.c (compute_output_file_names): Fix.
4661
4662 2001-09-24 Marc Autret <autret_m@epita.fr>,
4663 Akim Demaille <akim@epita.fr>
4664
4665 * src/reader.c (reader): Remove call to free_symtab ().
4666 * src/main.c (main): Call it here.
4667 Include symtab.h.
4668 * src/conflicts.c (initialize_conflicts): Rename as...
4669 (solve_conflicts): this.
4670 * src/print.c (print_core, print_actions, print_state)
4671 (print_grammar): Dump to a file instead a `output_obstack'.
4672 (print_results): Dump `output_obstack', and then proceed with the
4673 FILE *.
4674 * src/files.c (compute_output_file_names, close_files): New.
4675 (output_files): Adjust.
4676 * src/main.c (main): Adjust.
4677
4678 2001-09-23 Marc Autret <autret_m@epita.fr>
4679
4680 * src/files.c (compute_header_macro): Computes header macro name
4681 from spec_defines_file when given.
4682
4683 2001-09-23 Marc Autret <autret_m@epita.fr>
4684
4685 * src/files.c (output_files): Add default extensions.
4686
4687 2001-09-22 Akim Demaille <akim@epita.fr>
4688
4689 * src/conflicts.c (finalize_conflicts): Rename as...
4690 (free_conflicts): this.
4691
4692 2001-09-22 Akim Demaille <akim@epita.fr>
4693
4694 * src/gram.c (gram_free): Rename back as...
4695 (dummy): this.
4696 (output_token_translations): Free `token_translations'.
4697 * src/symtab.c (free_symtab): Free the tag field.
4698
4699 2001-09-22 Akim Demaille <akim@epita.fr>
4700
4701 Remove `translations' as it is always set to true.
4702
4703 * src/gram.h: Adjust.
4704 * src/reader.c (packsymbols, parse_token_decl): Adjust
4705 * src/print.c (print_grammar): Adjust.
4706 * src/output.c (output_token_translations): Adjust.
4707 * src/lex.c (lex): Adjust.
4708 * src/gram.c: Be sure the set pointers to NULL.
4709 (dummy): Rename as...
4710 (gram_free): this.
4711
4712 2001-09-22 Akim Demaille <akim@epita.fr>
4713
4714 * configure.in: Invoke AM_LIB_DMALLOC.
4715 * src/system.h: Use dmalloc.
4716 * src/LR0.c: Be sure to have pointers initialized to NULL.
4717 (allocate_itemsets): Allocate kernel_items only if needed.
4718
4719 2001-09-22 Akim Demaille <akim@epita.fr>
4720
4721 * configure.in: Bump to 1.29b.
4722 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
4723 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
4724 need xmalloc.c in calc.y.
4725 From Pascal Bart.
4726
4727 2001-09-21 Akim Demaille <akim@epita.fr>
4728
4729 Version 1.29a.
4730 * Makefile.maint, config/config.guess, config/config.sub,
4731 * config/missing: Update from masters.
4732 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
4733 upon package.m4.
4734 * configure.in (ALL_LINGUAS): Add `tr'.
4735
4736 2001-09-21 Akim Demaille <akim@epita.fr>
4737
4738 * tests/Makefile.am (package.m4): Move to...
4739 ($(srcdir)/$(TESTSUITE)): here.
4740
4741 2001-09-20 Akim Demaille <akim@epita.fr>
4742
4743 * src/complain.c: No longer try to be standalone: use system.h.
4744 Don't assume __STDC__ is defined to 1. Just test if it is defined.
4745 * src/complain.h: Likewise.
4746 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
4747 Remove the unused variable `n'.
4748 From Albert Chin-A-Young.
4749
4750 2001-09-18 Marc Autret <autret_m@epita.fr>
4751
4752 * doc/bison.1: Update.
4753 * doc/bison.texinfo (Bison Options): Update --defines and --graph
4754 descriptions.
4755 (Option Cross Key): Update.
4756 Add --graph.
4757
4758 2001-09-18 Marc Autret <autret_m@epita.fr>
4759
4760 * tests/regression.at: New test (comment in %union).
4761
4762 2001-09-18 Marc Autret <autret_m@epita.fr>
4763
4764 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
4765 do that.
4766 Reported by Keith Browne.
4767
4768 2001-09-18 Marc Autret <autret_m@epita.fr>
4769
4770 * tests/output.at: Add tests for --defines and --graph.
4771
4772 2001-09-18 Marc Autret <autret_m@epita.fr>
4773
4774 * tests/output.at: Removes tests of %{header,src}_extension features.
4775
4776 2001-09-18 Akim Demaille <akim@epita.fr>
4777
4778 * tests/Makefile.am (package.m4): New.
4779 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
4780 (_AT_CHECK_CALC_ERROR): Likewise.
4781 Factor the `, ' part of verbose error messages.
4782
4783 2001-09-18 Marc Autret <autret_m@epita.fr>
4784
4785 * src/getargs.c (longopts): Declare --defines and --graph as options
4786 with optional arguments.
4787 * src/files.h: Add extern declarations.
4788 * src/files.c (spec_graph_file, spec_defines_file): New.
4789 (output_files): Update.
4790 Remove CPP-outed code.
4791
4792 2001-09-18 Marc Autret <autret_m@epita.fr>
4793
4794 Turn off %{source,header}_extension feature.
4795
4796 * src/files.c (compute_exts_from_gf): Update.
4797 (compute_exts_from_src): Update.
4798 (output_files): CPP-out useless code.
4799 * src/files.h: Remove {header,source}_extension extern declarations.
4800 * src/reader.c (parse_dquoted_param): CPP-out.
4801 (parse_header_extension_decl): Remove.
4802 (parse_source_extension_decl): Remove.
4803 (read_declarations): Remove cases tok_{hdrext,srcext}.
4804 * src/lex.c (percent_table): Remove {header,source}_extension entries.
4805 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
4806
4807 2001-09-10 Akim Demaille <akim@epita.fr>
4808
4809 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
4810 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
4811 (AT_CHECK_OUTPUT): this.
4812 Merely check ls' exit status, its output is useless.
4813
4814 2001-09-10 Akim Demaille <akim@epita.fr>
4815
4816 * tests/calc.at: Use m4_match.
4817 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
4818
4819 2001-09-10 Marc Autret <autret_m@epita.fr>,
4820 Akim Demaille <akim@epita.fr>
4821
4822 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
4823 enum color_e.
4824 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
4825 to `normal'.
4826 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
4827 * src/lex.h: Adjust prototype.
4828 (token_t): Add `tok_undef'.
4829 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
4830 (parse_percent_token): Now returns token_t.
4831 Add default statement in switch.
4832 (lex): Separate `c' as an input variable, from the token_t result
4833 part.
4834 (unlexed): Is a token_t.
4835
4836 2001-09-10 Akim Demaille <akim@epita.fr>
4837
4838 * configure.in: Bump to 1.29a.
4839
4840 2001-09-07 Akim Demaille <akim@epita.fr>
4841
4842 Version 1.29.
4843
4844 2001-08-30 Akim Demaille <akim@epita.fr>
4845
4846 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
4847 * m4/atconfig.m4: Remove.
4848 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
4849 * tests/bison: New.
4850 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
4851 m4_if, m4_patsubst, and m4_regexp.
4852 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
4853 `input' file instead of echo.
4854
4855 2001-08-29 Akim Demaille <akim@epita.fr>
4856
4857 Bump to 1.28e.
4858
4859 2001-08-29 Akim Demaille <akim@epita.fr>
4860
4861 Version 1.28d.
4862
4863 2001-08-29 Paul Eggert <eggert@twinsun.com>
4864
4865 * src/bison.simple (yyparse): Don't take the address of an
4866 item before the start of an array, as that doesn't conform to
4867 the C Standard.
4868
4869 2001-08-29 Robert Anisko <anisko_r@epita.fr>
4870
4871 * doc/bison.texinfo (Location Tracking Calc): New node.
4872
4873 2001-08-29 Paul Eggert <eggert@twinsun.com>
4874
4875 * src/output.c (output): Do not define const, as this now
4876 causes more problems than it cures.
4877
4878 2001-08-29 Akim Demaille <akim@epita.fr>
4879
4880 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
4881 the nodes.
4882 Be sure to tag the `detailmenu'.
4883
4884 2001-08-29 Akim Demaille <akim@epita.fr>
4885
4886 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
4887 download in a tmp dir.
4888
4889 2001-08-28 Marc Autret <autret_m@epita.fr>
4890
4891 * config/depcomp: New file.
4892
4893 2001-08-28 Marc Autret <autret_m@epita.fr>
4894
4895 * doc/bison.1 (mandoc): Adjust.
4896 From Juan Manuel Guerrero.
4897
4898 2001-08-28 Marc Autret <autret_m@epita.fr>
4899
4900 * src/print_graph.c (print_state): Fix.
4901
4902 2001-08-27 Marc Autret <autret_m@epita.fr>
4903
4904 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
4905 char * members.
4906 Echo modifications to the functions prototypes.
4907 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
4908
4909 2001-08-27 Marc Autret <autret_m@epita.fr>
4910
4911 * src/vcg.c: Include `xalloc.h'.
4912 (add_colorentry): New.
4913 (add_classname): New.
4914 (add_infoname): New.
4915 * src/vcg.h: Add new prototypes.
4916
4917 2001-08-27 Akim Demaille <akim@epita.fr>
4918
4919 * Makefile.maint: Sync. again with CVS Autoconf.
4920
4921 2001-08-27 Akim Demaille <akim@epita.fr>
4922
4923 * Makefile.maint: Formatting changes.
4924 (po-update, cvs-update, update): New targets.
4925 (AMTAR): Remove.
4926
4927 2001-08-27 Akim Demaille <akim@epita.fr>
4928
4929 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
4930 * Makefile.maint: Sync. with CVS Autoconf.
4931
4932 2001-08-27 Marc Autret <autret_m@epita.fr>
4933
4934 * src/vcg.h (struct infoname_s): New.
4935 (struct colorentry_s): New.
4936 (graph_s): New fields {vertical,horizontal}_order in structure.
4937 Add `infoname' field.
4938 Add `colorentry' field;
4939 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
4940 (G_HORIZONTAL_ORDER): New.
4941 (G_INFONAME): New.
4942 (G_COLORENTRY): New.
4943 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
4944 Add output of `infoname'.
4945 Add output of `colorentry'.
4946
4947 2001-08-27 Marc Autret <autret_m@epita.fr>
4948
4949 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
4950 This one shadowed a global parameter.
4951
4952 2001-08-24 Marc Autret <autret_m@epita.fr>
4953
4954 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
4955 instead of `unsigned'.
4956 (print_state): Do not call obstack_object_size () in obstack_grow ()
4957 to avoid macro variables shadowing.
4958
4959 2001-08-23 Marc Autret <autret_m@epita.fr>
4960
4961 * src/lex.c (percent_table): Typo: s/naem/name/.
4962 Add graph option.
4963 Normalize new options declarations.
4964
4965 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
4966
4967 * tests/suite.at: Exercise %header_extension and %source_extension.
4968
4969 2001-08-16 Marc Autret <autret_m@epita.fr>
4970
4971 * src/reader.c (parse_dquoted_param): New.
4972 (parse_header_extension_decl): Use it.
4973 (parse_source_extension_decl): Likewise.
4974
4975 2001-08-16 Marc Autret <autret_m@epita.fr>
4976
4977 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
4978 (get_xxxx_str): Use assert () instead of complain ().
4979 Remove return invokations in default cases.
4980 (get_decision_str): Modify default behaviour. Remove second argument.
4981 Echo modifications on calls.
4982 (output_graph): Fix.
4983
4984 2001-08-16 Marc Autret <autret_m@epita.fr>
4985
4986 * src/getargs.c (usage): Update with ``-g, --graph''.
4987
4988 2001-08-16 Marc Autret <autret_m@epita.fr>
4989
4990 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
4991 (Option Cross Key): Likewise.
4992 * doc/bison.1: Update.
4993
4994 2001-09-25 Pascal Bart <pascal.bart@epita.fr>
4995
4996 * src/output.c (output_master_parser): Don't finish action_obstack.
4997 (output_parser): Don't care about the muscle action, here.
4998 (prepare): Copy the action_obstack in the action muscle.
4999 (output): Free action_obstack.
5000
5001 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
5002
5003 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
5004 will contain `%union' declaration.
5005 (parse_union_decl): Delete #line directive output.
5006 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
5007 informations about %union.
5008 (parse_union_decl): Copy the union_obstack in the muscle stype.
5009 * src/bison.simple: Add new #line directive.
5010 Add typdef %%stype YYSTYPE.
5011
5012 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
5013
5014 * src/bison.simple: Add new `#line' directive.
5015
5016 2001-09-22 Pascal Bart <pascal.bart@epita.fr>
5017
5018 * src/bison.simple: New `#line' directive.
5019 * src/output.c (output_parser): Support new dynamic muscle input_line.
5020
5021 2001-09-22 Marc Autret <autret_m@epita.fr>
5022
5023 * src/output.c (output_master_parser): New.
5024 (output_parser): Be more re-entrant.
5025
5026 2001-09-21 Marc Autret <autret_m@epita.fr>
5027
5028 * src/reader.c (copy_definition, parse_union_decl): Update and use
5029 `linef' muscle.
5030 (copy_action): Likewise.
5031 Use obstack_1grow ().
5032 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
5033
5034 2001-09-21 Marc Autret <autret_m@epita.fr>
5035
5036 * src/options.c (option_table): Adjust.
5037 * src/lex.c (parse_percent_token): Fix.
5038
5039 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
5040
5041 * src/options.c (symtab.h): Include it, need by lex.h.
5042
5043 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
5044
5045 * src/lex.c (parse_percent_token): Change type of variable `tx', which
5046 is now an option_table_struct*.
5047 (option_strcmp): New function option_strcmp.
5048 (parse_percent_token): Call option_strcmp.
5049 * src/getargs.c (xalloc.h, options.h): Include it.
5050 (getargs): Call create_long_option_table.
5051 (getargs): Free longopts at the end of the function.
5052 (shortopts): Move in options.c.
5053 * src/options.c (create_long_option_table): New function. Convert
5054 information from option_table to option structure.
5055 * src/reader.c (options.h): Include it.
5056
5057 * src/Makefile.am: Adjust.
5058 * src/options.c (option_table): Create from longopts and percent_table.
5059 * src/getargs.c (longopts): Delete.
5060 * src/lex.c (struct percent_table_struct): Delete.
5061 (percent_table): Delete.
5062 (options.h): Include it.
5063 * src/options.c: Create.
5064 * src/options.h: Create.
5065 Declare enum opt_access_e.
5066 Define struct option_table_struct.
5067
5068 2001-09-20 Marc Autret <autret_m@epita.fr>
5069
5070 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
5071 sections of Bison.
5072
5073 2001-09-19 Pascal Bart <pascal.bart@epita.fr>
5074
5075 * src/bison.simple: s/%%filename/%%skeleton.
5076 * src/muscle_tab.c (getargs.h): Include it.
5077 (muscle_init): Insert new muscle skeleton.
5078
5079 2001-09-18 Pascal Bart <pascal.bart@epita.fr>
5080
5081 * src/output.c (output_parser): Delete unused variable actions_dumped.
5082
5083 2001-09-07 Pascal Bart <pascal.bart@epita.fr>
5084
5085 * src/output.c (output): Delete call to reader_output_yylsp.
5086 * src/reader.c (reader): Likewise.
5087 * src/reader.h: Delete declaration of reader_output_yylsp.
5088
5089 2001-09-02 Marc Autret <autret_m@epita.fr>
5090
5091 * src/reader.c: Include muscle_tab.h.
5092 (parse_union_decl): Update.
5093 (parse_macro_decl): Rename parse_muscle_decl.
5094 Update to use renamed functions and variable.
5095 (read_declarations, copy_action, read_additionnal_code, : Updated
5096 with correct variables and functions names.
5097 (packsymbols, reader): Likewise.
5098
5099 * src/reader.h (muscle_obstack): Extern declaration update.
5100
5101 * src/output.c: Include muscle_tab.h
5102 In all functions using macro_insert, change by using muscle_insert ().
5103 (macro_obstack): Rename muscle_obstack.
5104 Echo modifications in the whole file.
5105 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
5106 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
5107 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
5108
5109 * src/muscle_tab.h: Update double inclusion macros.
5110 (macro_entry_s): Rename muscle_entry_s.
5111 Update prototypes.
5112
5113 * src/muscle_tab.c: Include muscle_tab.h.
5114 Rename macro_tabble to muscle_table.
5115 (mhash1, mhash2, mcmp): Use muscle_entry.
5116 (macro_init): Rename muscle_init. Update.
5117 (macro_insert): Rename muscle_insert. Update.
5118 (macro_find): Rename muscle_find. Update.
5119
5120 * src/main.c: Include muscle_tab.h.
5121 (main): Call muscle_init ().
5122 * src/Makefile.am (bison_SOURCES): Echo modifications.
5123
5124 2001-09-02 Marc Autret <autret_m@epita.fr>
5125
5126 Now the files macro_tab.[ch] are named muscle_tab.[ch].
5127
5128 * src/muscle_tab.c, src/muscle_tab.h: Add files.
5129
5130 2001-09-02 Marc Autret <autret_m@epita.fr>
5131
5132 * src/macrotab.c, src/macrotab.h: Remove.
5133
5134 2001-09-01 Pascal Bart <pascal.bart@epita.fr>
5135
5136 * src/reader.c (copy_guard): Use muscle to specify the `#line'
5137 filename.
5138
5139 2001-09-01 Marc Autret <autret_m@epita.fr>
5140
5141 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
5142 to an explicit value to activate the feature. We do it here.
5143
5144 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
5145
5146 * src/output.c (prepare): Delete the `filename' muscule insertion.
5147 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
5148 (parse_union_decl): Likewise.
5149 * src/macrotab.c (macro_init): Initialize filename by infile.
5150
5151 2001-08-31 Marc Autret <autret_m@epita.fr>
5152
5153 * src/bison.simple (YYLSP_NEEDED): New definition.
5154 * src/output.c (prepare): Add macro insertion of `locations_flag'
5155
5156 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
5157
5158 * src/output.c (prepare): Delete insertion of previous muscles,
5159 and insert the `prefix' muscles.
5160 * src/macrotab.c (macro_init): Likewise.
5161 (macro_init): Initialization prefix directive by `yy'.
5162 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
5163 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
5164 yylval, yydebug, yyerror, yynerrs and yyparse.
5165 New directive `#define' to substitute yydebug, ... with option
5166 name_prefix.
5167
5168 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
5169
5170 * src/main.c (main): Standardize.
5171 * src/output.c (output_table_data, output_parser): Likewise.
5172 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
5173
5174 2001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
5175
5176 * src/reader.c (read_additionnal_code): Rename %%user_code to
5177 %%epilogue.
5178 * src/output.c (output): Rename %%declarations to %%prologue.
5179 * src/bison.simple: Echo modifications.
5180
5181 2001-08-31 Marc Autret <autret_m@epita.fr>
5182
5183 * src/reader.c (readgram): CleanUp.
5184 (output_token_defines): Likewise.
5185 (packsymbols): Likewise.
5186 (reader): Likewise.
5187 * src/output.c (output): CPP-out useless code.
5188
5189 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
5190
5191 * src/reader.c (reader): Delete obsolete call to function
5192 output_trailers and output_headers.
5193 * src/output.h: Remove obsolete functions prototypes of output_headers
5194 and output_trailers.
5195
5196 2001-08-30 Pascal Bart <pascal.bart@epita.fr>
5197
5198 * src/main.c: Include macrotab.h.
5199 * src/macrotab.h (macro_entry_s): Constify fields.
5200 Adjust functions prototypes.
5201 * src/macrotab.c (macro_insert): Constify key and value.
5202 (macro_find): Constify key.
5203 (macro_insert): Include 'xalloc.h'
5204 (macro_insert): Use XMALLOC.
5205 (macro_find): Constify return value.
5206 * src/output.c (output_table_data): Rename table to table_data.
5207 (output_parser): Constify macro_key, macro_value.
5208
5209 2001-08-30 Marc Autret <autret_m@epita.fr>
5210
5211 * src/reader.c (parse_skel_decl): New.
5212 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
5213 * src/lex.h (token_t): New token `tok_skel'.
5214 * src/lex.c (percent_table): Add skeleton option entry.
5215 Standardize.
5216
5217 2001-08-29 Marc Autret <autret_m@epita.fr>
5218
5219 * src/bison.simple: Add %%user_code directive at the end.
5220 * src/reader.c (read_additionnal_code): New.
5221 (reader): Use it.
5222 * src/output.c (output_program): Remove.
5223 (output): Update.
5224
5225 2001-08-28 Marc Autret <autret_m@epita.fr>
5226
5227 * src/output.c (output_actions): Clean up.
5228 (output_gram): CPP-out useless code.
5229 * src/reader.c (reader): Clean up, CPP-out useless code.
5230
5231 2001-08-28 Pascal Bart <pascal.bart@epita.fr>
5232
5233 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
5234 directive.
5235 * src/bison.simple: Add `%%definitions'.
5236
5237 2001-08-28 Marc Autret <autret_m@epita.fr>
5238
5239 * config/depcomp: New file.
5240
5241 2001-08-27 Paul Eggert <eggert@twinsun.com>
5242
5243 * src/bison.simple (yyparse): Don't take the address of an
5244 item before the start of an array, as that doesn't conform to
5245 the C Standard.
5246
5247 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
5248
5249 * src/output.c (output): Remove the initialization of the macro
5250 obstack. It was done too late here.
5251
5252 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
5253 completely wrong.
5254 (reader): Initialize the macro obstack here, since we need it to grow
5255 '%define' directives.
5256
5257 * src/reader.h: Declare the macro obstack as extern.
5258
5259 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
5260
5261 * src/output.c (output_parser): Fix. Store single '%' characters in
5262 the output obstack instead of throwing them away.
5263
5264 2001-08-27 Akim Demaille <akim@epita.fr>
5265
5266 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
5267
5268 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5269
5270 * lib/Makefile.am: Adjust.
5271
5272 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5273
5274 * src/bison.simple: Update and add '%%' directives.
5275
5276 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5277
5278 * src/reader.c (reader): Remove calls to 'output_headers' and
5279 'output_trailers'. Remove some C output.
5280 (readgram): Disable a piece of code that was writing a default
5281 definition for 'YYSTYPE'.
5282 (reader_output_yylsp): Remove.
5283 (packsymbols): Output token defintions to a macro.
5284 (copy_definition): Disable C output.
5285
5286 * src/reader.c (parse_macro_decl): New function used to parse macro
5287 declarations.
5288 (copy_string2): Put the body of copy_string into this new function.
5289 Add a parameter to let the caller choose whether he wants to copy the
5290 string delimiters or not.
5291 (copy_string): Be a simple call to copy_string2 with the last argument
5292 bound to true.
5293 (read_declarations): Add case for macro definition.
5294 (copy_identifier): New.
5295 (parse_macro_decl): Read macro identifiers using copy_identifier
5296 rather than lex.
5297
5298 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5299
5300 * src/output.c (prepare): Add prefixed names.
5301 (output_parser): Output semantic actions.
5302 (output_parser): Fix bug on '%%line' directives.
5303
5304 * src/output.c (output_headers): Remove. The C code printed by this
5305 function should now be in the skeletons.
5306 (output_trailers): Remove.
5307 (output): Disable call to 'reader_output_yylsp'.
5308 (output_rule_data): Do not output tables to the table obstack.
5309
5310 * src/output.c: Remove some C dedicated output.
5311 Improve the use of macro and output obstacks.
5312 (output_defines): Remove.
5313
5314 * src/output.c (output_token_translations): Associate 'translate'
5315 table with a macro. No output to the table obstack.
5316 (output_gram): Same for 'rhs' and 'prhs'.
5317 (output_stos): Same for 'stos'.
5318 (output_rule_data): Same for 'r1' and 'r2'.
5319 (token_actions): Same for 'defact'.
5320 (goto_actions): Same for 'defgoto'.
5321 (output_base): Same for 'pact' and 'pgoto'.
5322 (output_table): Same for 'table'.
5323 (output_check): Same for 'check'.
5324
5325 * src/output.c (output_table_data): New function.
5326 (output_short_table): Remove.
5327 (output_short_or_char_table): Remove.
5328
5329 * src/output.c (output_parser): Replace most of the skeleton copy code
5330 with something new. Skeletons are now processed character by character
5331 rather than line by line, and Bison looks for '%%' macros. This is the
5332 first step in making Bison's output process (a lot) more flexible.
5333 (output_parser): Use the macro table.
5334
5335 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5336
5337 * src/main.c (main): Initialize the macro table.
5338
5339 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5340
5341 * src/lex.c (percent_table): Add tok_define.
5342 * src/lex.h: Add tok_define.
5343
5344 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5345
5346 * src/macrotab.c: New file.
5347 * src/macrotab.h: New file.
5348 * src/Makefile.am: Update.
5349
5350 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5351
5352 * lib/hash.c: New file.
5353 * lib/hash.h: New file.
5354 * lib/Makefile.am: Update.
5355
5356 2001-08-15 Akim Demaille <akim@epita.fr>
5357
5358 Version 1.28c.
5359
5360 2001-08-15 Marc Autret <autret_m@epita.fr>
5361
5362 * src/reader.c (readgram): Indent output macro YYSTYPE.
5363 (packsymbols): Likewise.
5364 (output_token_defines): Likewise.
5365 * src/files.c: Standardize.
5366 (compute_header_macro): New.
5367 (defines_obstack_save): New. Use compute_header_macro.
5368 (output_files): Update. Use defines_obstack_save.
5369
5370 2001-08-15 Akim Demaille <akim@epita.fr>
5371
5372 * doc/bison.texinfo (Table of Symbols): Document
5373 YYSTACK_USE_ALLOCA.
5374
5375 2001-08-15 Akim Demaille <akim@epita.fr>
5376
5377 * missing: Update from CVS Automake.
5378 * config/config.guess, config/config.sub, config/texinfo.tex:
5379 Update from gnu.org.
5380
5381 2001-08-15 Akim Demaille <akim@epita.fr>
5382
5383 * Makefile.maint: Sync with CVS Autoconf.
5384
5385 2001-08-14 Pascal Bart <pascal.bart@epita.fr>
5386
5387 * doc/bison.texinfo: Include GNU Free Documentation License from
5388 `fdl.texi'.
5389 * doc/fdl.texi: Add to package.
5390
5391 2001-08-14 Marc Autret <autret_m@epita.fr>
5392
5393 Turn on %{source,header}_extension features.
5394
5395 * src/lex.c (percent_table): Un-CPP out header_extension and
5396 source_extension.
5397 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
5398 (compute_exts_from_src): Remove conditions. It restores priorities
5399 between options.
5400
5401 2001-08-14 Marc Autret <autret_m@epita.fr>
5402
5403 * src/files.c (compute_base_names): Add extensions computing when
5404 `--file-prefix' used.
5405 Standardize function calls.
5406
5407 2001-08-13 Marc Autret <autret_m@epita.fr>
5408
5409 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
5410 defining it (defined but null disables alloca).
5411
5412 2001-08-13 Marc Autret <autret_m@epita.fr>
5413
5414 * src/bison.simple (_yy_memcpy): CPP reformat.
5415
5416 2001-08-13 Pascal Bart <pascal.bart@epita.fr>
5417
5418 * tests/atconfig.in (CPPFLAGS): Fix.
5419
5420 2001-08-10 Pascal Bart <pascal.bart@epita.fr>
5421
5422 * doc/bison.texinfo: Include GNU General Public License from
5423 `gpl.texi'.
5424 * doc/gpl.texi: Add to package.
5425
5426 2001-08-10 Marc Autret <autret_m@epita.fr>
5427
5428 * src/print_graph.h: Fix.
5429 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
5430
5431 2001-08-10 Akim Demaille <akim@epita.fr>
5432
5433 * src/system.h: Provide default declarations for stpcpy, strndup,
5434 and strnlen.
5435
5436 2001-08-10 Robert Anisko <anisko_r@epita.fr>
5437
5438 * doc/bison.texinfo (Locations): Update @$ stuff.
5439
5440 2001-08-09 Robert Anisko <anisko_r@epita.fr>
5441
5442 * src/bison.simple (YYLLOC_DEFAULT): Update.
5443 (yyparse): Adjust.
5444
5445 2001-08-08 Marc Autret <autret_m@epita.fr>
5446
5447 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
5448 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
5449 Reported by Fabrice Bauzac.
5450
5451 2001-08-08 Marc Autret <autret_m@epita.fr>
5452
5453 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
5454 * src/vcg.c (output_node): Fix.
5455 * src/vcg.h: Cleanup.
5456 * src/print_graph.c: Add comments.
5457 (node_output_size): New global variable. Simplify the formatting of
5458 the VCG graph output.
5459 (print_actions): Unused code is now used. It notifies the final state
5460 and no action states in the VCG graph. It also give the reduce actions.
5461 The `shift and goto' edges are red and the `go to state' edges are
5462 blue.
5463 Get the current node name and node_obstack by argument.
5464 (node_obstack): New variable.
5465 (print_state): Manage node_obstack.
5466 (print_core): Use node_obstack given by argument.
5467 A node is not only computed here but in print_actions also.
5468 (print_graph): CPP out useless code instead of commenting it.
5469
5470 2001-08-07 Pascal Bart <pascal.bart@epita.fr>
5471
5472 * tests/atconfig.in (CPPFLAGS): Fix.
5473
5474 2001-08-07 Akim Demaille <akim@epita.fr>
5475
5476 * src/print_graph.c (quote): New.
5477 (print_core): Use it.
5478
5479 2001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
5480
5481 * src/vcg.c (complain.h): Include it.
5482 Unepitaize `return' invocations.
5483 [NDEBUG] (main): Remove.
5484 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
5485 * src/files.c (open_files): Initialize graph_obstack.
5486 * src/print_graph.c (print_actions): CPP out useless code.
5487 (print_core): Don't output the last `\n' in labels.
5488 Use `quote'.
5489 * src/files.c (output_files): Output the VCG file.
5490 * src/main.c (main): Invoke print_graph ();
5491
5492 2001-08-06 Marc Autret <autret_m@epita.fr>
5493
5494 Automaton VCG graph output.
5495 Using option ``-g'' or long option ``--graph'', you can generate
5496 a gram_filename.vcg file containing a VCG description of the LALR (1)
5497 automaton of your grammar.
5498
5499 * src/main.c: Call to print_graph() function.
5500 * src/getargs.h: Update.
5501 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
5502 (graph_flag): New flag.
5503 (longopts): Update.
5504 (getargs): Add case `g'.
5505 * src/files.c (graph_obstack): New obstack struct.
5506 (open_files): Initialize new obstack.
5507 (output_files): Saves graph_obstack if required.
5508 * src/files.h (graph_obstack): New extern declaration.
5509 * src/Makefile.am: Add new source files.
5510
5511 2001-08-06 Marc Autret <autret_m@epita.fr>
5512
5513 * src/print_graph.c, src/print_graph.h (graph): New.
5514 * src/vcg.h: New file.
5515 * src/vcg.c: New file, VCG graph handling.
5516
5517 2001-08-06 Marc Autret <autret_m@epita.fr>
5518
5519 Add of %source_extension and %header_extension which specify
5520 the source or/and the header output file extension.
5521
5522 * src/files.c (compute_base_names): Remove initialisation of
5523 src_extension and header_extension.
5524 (compute_exts_from_gf): Update.
5525 (compute_exts_from_src): Update.
5526 (output_files): Update.
5527 * src/reader.c (parse_header_extension_decl): New.
5528 (parse_source_extension_decl): New.
5529 (read_declarations): New case statements for the new tokens.
5530 * src/lex.c (percent_table): Add entries for %source_extension
5531 and %header_extension.
5532 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
5533
5534 2001-08-06 Marc Autret <autret_m@epita.fr>
5535
5536 * configure.in: Bump to 1.28c.
5537 * doc/bison.texinfo: Texinfo thingies.
5538
5539 2001-08-04 Pascal Bart <pascal.bart@epita.fr>
5540
5541 * tests/atconfig.in (CPPFLAGS): Add.
5542 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
5543
5544 2001-08-03 Akim Demaille <akim@epita.fr>
5545
5546 Version 1.28b.
5547
5548 2001-08-03 Akim Demaille <akim@epita.fr>
5549
5550 * tests/Makefile.am (check-local): Ship testsuite.
5551 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
5552 Include `string.h'.
5553
5554 2001-08-03 Akim Demaille <akim@epita.fr>
5555
5556 * configure.in: Try using -Wformat when compiling.
5557
5558 2001-08-03 Akim Demaille <akim@epita.fr>
5559
5560 * configure.in: Bump to 1.28b.
5561
5562 2001-08-03 Akim Demaille <akim@epita.fr>
5563
5564 * src/complain.c: Adjust strerror_r portability issues.
5565
5566 2001-08-03 Akim Demaille <akim@epita.fr>
5567
5568 Version 1.28a.
5569
5570 2001-08-03 Akim Demaille <akim@epita.fr>
5571
5572 * src/getargs.c, src/getarg.h (skeleton)): Constify.
5573 * src/lex.c (literalchar): Avoid name clashes on `buf'.
5574 * src/getargs.c: Include complain.h.
5575 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
5576 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
5577
5578 2001-08-03 Akim Demaille <akim@epita.fr>
5579
5580 * src/reader.c (readgram): Display hidden chars in error messages.
5581
5582 2001-08-03 Akim Demaille <akim@epita.fr>
5583
5584 Update to gettext 0.10.39.
5585
5586 2001-08-03 Akim Demaille <akim@epita.fr>
5587
5588 * lib/strspn.c: New.
5589
5590 2001-08-01 Marc Autret <autret_m@epita.fr>
5591
5592 * doc/bison.texinfo: Update.
5593 * doc/bison.1 (mandoc): Update.
5594 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
5595 * src/files.c: Support output files extensions computing.
5596 (src_extension): New static variable.
5597 (header_extension): New static variable.
5598 (tr): New function.
5599 (get_extension_index): New function, gets the index of an extension
5600 filename in a string.
5601 (compute_exts_from_gf): New function, computes extensions from the
5602 grammar file extension.
5603 (compute_exts_from_src): New functions, computes extensions from the
5604 C source file extension, file given by ``-o'' option.
5605 (compute_base_names): Update.
5606 (output_files): Update.
5607
5608 2001-08-01 Robert Anisko <anisko_r@epita.fr>
5609
5610 * doc/bison.texi: Document @$.
5611 (Locations): New section.
5612
5613 2001-07-18 Akim Demaille <akim@epita.fr>
5614
5615 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
5616 * config/prev-version.txt, config/move-if-change: New.
5617 * Makefile.am: Adjust.
5618
5619 2001-07-08 Pascal Bart <pascal.bart@epita.fr>
5620
5621 * src/bison.simple (yyparse): Suppress warning `comparaison
5622 between signed and unsigned'.
5623
5624 2001-07-05 Pascal Bart <pascal.bart@epita.fr>
5625
5626 * src/getargs.h (raw_flag): Remove.
5627 * src/getargs.c: Die on `-r'/`--raw'.
5628 * src/lex.c (parse_percent_token): Die on `%raw'.
5629 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
5630 * tests/calc.at: Suppress test with option `--raw'.
5631
5632 2001-07-14 Akim Demaille <akim@epita.fr>
5633
5634 * config/: New.
5635 * configure.in: Require Autoconf 2.50.
5636 Update to gettext 0.10.38.
5637
5638 2001-03-16 Akim Demaille <akim@epita.fr>
5639
5640 * doc/bison.texinfo: ANSIfy the examples.
5641
5642 2001-03-16 Akim Demaille <akim@epita.fr>
5643
5644 * getargs.c (skeleton): New variable.
5645 (longopts): --skeleton is a new option.
5646 (shortopts, getargs): -S is a new option.
5647 * getargs.h: Declare skeleton.
5648 * output.c (output_parser): Use it.
5649
5650 2001-03-16 Akim Demaille <akim@epita.fr>
5651
5652 * m4/strerror_r.m4: New.
5653 * m4/error.m4: Run AC_FUNC_STRERROR_R.
5654 * lib/error.h, lib/error.c: Update.
5655
5656 2001-03-16 Akim Demaille <akim@epita.fr>
5657
5658 * src/getargs.c (longopts): Clean up.
5659
5660 2001-02-21 Akim Demaille <akim@epita.fr>
5661
5662 * src/reader.c (gensym): `gensym_count' is your own.
5663 Use a static buf to create the symbol name, as token_buffer is no
5664 longer a buffer.
5665
5666 2001-02-08 Akim Demaille <akim@epita.fr>
5667
5668 * src/conflicts.c (conflict_report): Be sure not to append to res
5669 between two calls, which could happen if both first sprintf were
5670 skipped, but not the first cp += strlen.
5671
5672 2001-02-08 Akim Demaille <akim@epita.fr>
5673
5674 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
5675 New, from fileutils 4.0.37.
5676 * configure.in: Require Autoconf 2.49c. I took some time before
5677 making this decision. This is the only way out for portability
5678 issues in Bison, it would mean way too much duplicate effort to
5679 import in Bison features implemented in 2.49c since 2.13.
5680 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
5681
5682 2001-02-02 Akim Demaille <akim@epita.fr>
5683
5684 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
5685 * lib/xalloc.h, lib/xmalloc.c: Update.
5686
5687 2001-01-19 Akim Demaille <akim@epita.fr>
5688
5689 Get rid of the ad hoc handling of token_buffer in the scanner: use
5690 the obstacks.
5691
5692 * src/lex.c (token_obstack): New.
5693 (init_lex): Initialize it. No longer call...
5694 (grow_token_buffer): this. Remove it.
5695 Adjust all the places which used it to use the obstack.
5696
5697 2001-01-19 Akim Demaille <akim@epita.fr>
5698
5699 * src/lex.h: Rename all the tokens:
5700 s/\bENDFILE\b/tok_eof/g;
5701 s/\bIDENTIFIER\b/tok_identifier/g;
5702 etc.
5703 Let them be enums, not #define, to ease debugging.
5704 Adjust all the code.
5705
5706 2001-01-18 Akim Demaille <akim@epita.fr>
5707
5708 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
5709 * src/lex.c (maxtoken, grow_token_buffer): Static.
5710
5711 2001-01-18 Akim Demaille <akim@epita.fr>
5712
5713 Since we now use obstacks, more % directives can be enabled.
5714
5715 * src/lex.c (percent_table): Also accept `%yacc',
5716 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
5717 `%debug'.
5718 Handle the actions for `%semantic_parser' and `%pure_parser' here,
5719 instead of returning a token.
5720 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
5721 * src/reader.c (read_declarations): Adjust.
5722 * src/files.c (open_files): Don't call `compute_base_names', don't
5723 compute `attrsfile' since they depend upon data which might be
5724 *in* the input file now.
5725 (output_files): Do it here.
5726 * src/output.c (output_headers): Document the fact that this patch
5727 introduces a guaranteed SEGV for semantic parsers.
5728 * doc/bison.texinfo: Document them.
5729 * tests/suite.at: Exercise these %options.
5730
5731 2000-12-20 Akim Demaille <akim@epita.fr>
5732
5733 Also handle the output file (--verbose) with obstacks.
5734
5735 * files.c (foutput): Remove.
5736 (output_obstack): New.
5737 Adjust all dependencies.
5738 * src/conflicts.c: Return a string.
5739 * src/system.h (obstack_grow_string): Rename as...
5740 (obstack_sgrow): this. Be ready to work with non literals.
5741 (obstack_fgrow4): New.
5742
5743 2000-12-20 Akim Demaille <akim@epita.fr>
5744
5745 * src/files.c (open_files): Fix the computation of short_base_name
5746 in the case of `-o foo.tab.c'.
5747
5748 2000-12-20 Akim Demaille <akim@epita.fr>
5749
5750 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
5751 (copy_dollar): Now that everything uses obstacks, get rid of the
5752 FILE * parameters.
5753
5754 2000-12-20 Akim Demaille <akim@epita.fr>
5755
5756 * src/files.c (open_files): Actually the `.output' file is based
5757 on the short_base_name, not base_name.
5758 * tests/suite.at (Checking output file names): Adjust.
5759
5760 2000-12-20 Akim Demaille <akim@epita.fr>
5761
5762 * src/bison.s1: Remove, we now use directly...
5763 * src/bison.simple: this.
5764 * src/Makefile.am: Use pkgdata instead of data.
5765
5766 2000-12-20 Akim Demaille <akim@epita.fr>
5767
5768 * src/files.c (guard_obstack): New.
5769 (open_files): Initialize it.
5770 (output_files): Dump it...
5771 * src/files.h: Export it.
5772 * src/reader.c (copy_guard): Use it.
5773
5774 2000-12-19 Akim Demaille <akim@epita.fr>
5775
5776 * src/files.c (outfile, defsfile, actfile): Removed as global
5777 vars.
5778 (open_files): Don't compute them.
5779 (output_files): Adjust.
5780 (base_name, short_base_name): Be global.
5781 Adjust dependencies.
5782
5783 2000-12-19 Akim Demaille <akim@epita.fr>
5784
5785 * src/files.c (strsuffix): New.
5786 (stringappend): Be just like strcat but allocate.
5787 (base_names): Eve out from open_files.
5788 Try to simplify the rather hairy computation of base_name and
5789 short_base_name.
5790 (open_files): Use it.
5791 * tests/suite.at (Checking output file names): New test.
5792
5793 2000-12-19 Akim Demaille <akim@epita.fr>
5794
5795 * src/system.h (obstack_grow_literal_string): Rename as...
5796 (obstack_grow_string): this.
5797 * src/output.c (output_parser): Recognize `%% actions' instead of
5798 `$'.
5799 * src/bison.s1: s/$/%% actions/.
5800 * src/bison.hairy: Likewise.
5801
5802 2000-12-19 Akim Demaille <akim@epita.fr>
5803
5804 * src/output.c (output_parser): Compute the `#line' lines when
5805 there are.
5806 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
5807 Suggested by Hans Aberg.
5808
5809 2000-12-19 Akim Demaille <akim@epita.fr>
5810
5811 Let the handling of the skeleton files be local to the procedures
5812 that use it.
5813
5814 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
5815 longer static.
5816 (fparser, open_extra_files): Remove.
5817 (open_files, output_files): Don't take care of fparser.
5818 * src/files.h: Adjust.
5819 * src/output.c (output_parser): Open and close the file to the
5820 skeleton.
5821 * src/reader.c (read_declarations): When %semantic_parser, open
5822 fguard.
5823
5824 2000-12-19 Akim Demaille <akim@epita.fr>
5825
5826 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
5827 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
5828
5829 2000-12-19 Akim Demaille <akim@epita.fr>
5830
5831 * src/files.c (open_files): Yipee! We no longer need all the code
5832 looking for `/tmp' since we have no tmp file.
5833
5834 2000-12-19 Akim Demaille <akim@epita.fr>
5835
5836 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
5837 New macros.
5838 * src/files.c (open_files): Less dependency on MSDOS etc.
5839
5840 2000-12-14 Akim Demaille <akim@epita.fr>
5841
5842 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
5843 Provide a default definition.
5844 Use it when executing the default @ action.
5845 * src/reader.c (reader_output_yylsp): No longer include
5846 `timestamp' and `text' in the default YYLTYPE.
5847
5848 2000-12-12 Akim Demaille <akim@epita.fr>
5849
5850 * src/reader.c (copy_definition, parse_union_decl, copy_action)
5851 (copy_guard): Quote the file names.
5852 Reported by Laurent Mascherpa.
5853
5854 2000-12-12 Akim Demaille <akim@epita.fr>
5855
5856 * src/output.c (output_headers, output_program, output): Be sure
5857 to escape special characters when outputting filenames.
5858 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
5859 (output_headers): Don't depend on them, Use ACTSTR.
5860
5861 2000-11-17 Akim Demaille <akim@epita.fr>
5862
5863 * lib/obstack.h: Formatting changes.
5864 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
5865 prevents type checking.
5866 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
5867 cast the value to (void *): assigning a `foo *' to a `void *'
5868 variable is valid.
5869 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
5870 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
5871 append characters.
5872
5873 2000-11-17 Akim Demaille <akim@epita.fr>
5874
5875 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
5876 as...
5877 (suite.m4, regression.m4, calc.m4): these.
5878 * tests/atgeneral.m4: Update from CVS Autoconf.
5879
5880 2000-11-17 Akim Demaille <akim@epita.fr>
5881
5882 * tests/regression.m4 (%union and --defines): New test,
5883 demonstrating a current bug in the obstack implementation.
5884
5885 2000-11-17 Akim Demaille <akim@epita.fr>
5886
5887 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
5888 macros.
5889 Use them to declare the variables which are global or local to
5890 `yyparse'.
5891
5892 2000-11-17 Akim Demaille <akim@epita.fr>
5893
5894 * acconfig.h: Remove, no longer used.
5895
5896 2000-11-07 Akim Demaille <akim@epita.fr>
5897
5898 * src: s/Copyright (C)/Copyright/g.
5899
5900 2000-11-07 Akim Demaille <akim@epita.fr>
5901
5902 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
5903 defining.
5904 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
5905
5906 2000-11-07 Akim Demaille <akim@epita.fr>
5907
5908 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
5909 Merge in a single CPP if/else.
5910
5911 2000-11-07 Akim Demaille <akim@epita.fr>
5912
5913 * src/output.c (output): Remove useless variables.
5914 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
5915 argument `data' for consistency with the prototypes.
5916 Qualify it `const'.
5917 (obstack_copy, obstack_copy0): Rename the second argument as
5918 `address' for consistency. Qualify it `const'.
5919 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
5920 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
5921 `const' their input argument (`data' or `address').
5922 Adjust the corresponding macros to include `const' in casts.
5923
5924 2000-11-03 Akim Demaille <akim@epita.fr>
5925
5926 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
5927 s/PFILE1/BISON_HAIRY/.
5928 Adjust dependencies.
5929
5930 2000-11-03 Akim Demaille <akim@epita.fr>
5931
5932 For some reason, this was not applied.
5933
5934 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
5935 `unlink': it's no longer used.
5936
5937 2000-11-03 Akim Demaille <akim@epita.fr>
5938
5939 * src/files.c (skeleton_find): New function, eved out of...
5940 (open_files, open_extra_files): here.
5941
5942 2000-11-03 Akim Demaille <akim@epita.fr>
5943
5944 Don't use `atexit'.
5945
5946 * src/files.c (obstack_save): New function.
5947 (done): Rename as...
5948 (output_files): this.
5949 Use `obstack_save'.
5950 * src/main.c (main): Don't use `atexit' to register `done', since
5951 it no longer has to remove tmp files, just call `output_files'
5952 when there are no errors.
5953
5954 2000-11-02 Akim Demaille <akim@epita.fr>
5955
5956 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
5957 `unlink': it's no longer used.
5958 * src/files.h: Formatting changes.
5959
5960 2000-11-02 Akim Demaille <akim@epita.fr>
5961
5962 Remove the last uses of mktemp and unlink/delete.
5963
5964 * src/files.c (fdefines, ftable): Removed.
5965 (defines_ostack, table_obstack): New.
5966 Adjust dependencies of the former into uses of the latter.
5967 * src/output.c (output_short_or_char_table, output_short_table):
5968 Convert to using obstacks.
5969 * src/reader.c (copy_comment2): Accept one FILE * and two
5970 obstacks.
5971 (output_token_defines, reader_output_yylsp): Use obstacks.
5972 * src/system.h (obstack_fgrow3): New.
5973
5974 2000-11-01 Akim Demaille <akim@epita.fr>
5975
5976 Change each use of `fattrs' into a use of `attrs_obstack'.
5977
5978 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
5979 * src/files.c (fattrs): Remove.
5980 (attrs_obstack): New.
5981 Adjust all dependencies.
5982 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
5983
5984 2000-11-01 Akim Demaille <akim@epita.fr>
5985
5986 Introduce obstacks.
5987 Change each use of `faction' into a use of `action_obstack'.
5988
5989 * lib/obstack.h, lib/obstack.c: New files.
5990 * src/files.c (faction): Remove.
5991 (action_obstack): New.
5992 Adjust all dependencies.
5993
5994 2000-10-20 Akim Demaille <akim@epita.fr>
5995
5996 * lib/quote.h (PARAMS): New macro. Use it.
5997
5998 2000-10-16 Akim Demaille <akim@epita.fr>
5999
6000 * src/output.c (output_short_or_char_table): New function.
6001 (output_short_table, output_token_translations): Use it.
6002 (goto_actions): Use output_short_table.
6003
6004 2000-10-16 Akim Demaille <akim@epita.fr>
6005
6006 * src/symtab.c (bucket_new): New function.
6007 (getsym): Use it.
6008
6009 * src/output.c (output_short_table): New argument to display the
6010 comment associated with the table.
6011 Adjust dependencies.
6012 (output_gram): Use it.
6013 (output_rule_data): Nicer output layout for YYTNAME.
6014
6015 2000-10-16 Akim Demaille <akim@epita.fr>
6016
6017 * src/lex.c (read_typename): New function.
6018 (lex): Use it.
6019 * src/reader.c (copy_dollar): Likewise.
6020
6021 2000-10-16 Akim Demaille <akim@epita.fr>
6022
6023 * src/reader.c (copy_comment2): Expect the input stream to be on
6024 the `/' which is suspected to open a comment, instead of being
6025 called after `//' or `/*' was read.
6026 (copy_comment, copy_definition, parse_union_decl, copy_action)
6027 (copy_guard): Adjust.
6028
6029 2000-10-16 Akim Demaille <akim@epita.fr>
6030
6031 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
6032 `read_signed_integer'.
6033
6034 2000-10-16 Akim Demaille <akim@epita.fr>
6035
6036 * src/reader.c (copy_dollar): New function.
6037 (copy_guard, copy_action): Use it.
6038
6039 2000-10-16 Akim Demaille <akim@epita.fr>
6040
6041 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
6042 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
6043 New files, from Fileutils 4.0.27.
6044 * src/main.c (printable_version): Remove.
6045 * src/lex.c, src/reader.c: Use `quote'.
6046
6047 2000-10-04 Akim Demaille <akim@epita.fr>
6048
6049 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
6050
6051 2000-10-04 Akim Demaille <akim@epita.fr>
6052
6053 * doc/bison.texinfo: Various typos spotted by Neil Booth.
6054
6055 2000-10-04 Akim Demaille <akim@epita.fr>
6056
6057 When a literal string is used to define two different tokens,
6058 `bison -v' segfaults.
6059 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
6060
6061 * tests/regression.m4: New file.
6062 Include the core of the sample provided by Piotr Gackiewicz.
6063 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
6064 properly.
6065
6066 2000-10-04 Akim Demaille <akim@epita.fr>
6067
6068 * src/reader.c (parse_expect_decl): Keep `count' within the size
6069 of `buffer'.
6070 From Neil Booth.
6071
6072 2000-10-02 Paul Eggert <eggert@twinsun.com>
6073
6074 * bison.s1 (yyparse): Assign the default value
6075 unconditionally, to avoid a GCC warning and make the parser a
6076 tad smaller.
6077
6078 2000-10-02 Akim Demaille <akim@epita.fr>
6079
6080 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
6081 options.
6082
6083 2000-10-02 Akim Demaille <akim@epita.fr>
6084
6085 * src/derives.c, src/print.c, src/reduce.c: To ease the
6086 translation, move some `\n' out of the translated strings.
6087
6088 2000-10-02 Akim Demaille <akim@epita.fr>
6089
6090 The location tracking mechanism is precious for parse error
6091 messages. Nevertheless, it is enabled only when `@n' is used in
6092 the grammar, which is a different issue (you can use it in error
6093 message, but not in the grammar per se). Therefore, there should
6094 be another means to enable it.
6095
6096 * src/getargs.c (getargs): Support `--locations'.
6097 (usage): Report it.
6098 * src/getargs.h (locationsflag): Export it.
6099 * src/lex.c (percent_table): Support `%locations'.
6100 * src/reader.c (yylsp_needed): Remove this variable, now replaced
6101 with `locationsflag'.
6102 * doc/bison.texinfo: Document `--locations' and `%locations'.
6103 Sort the options.
6104 * tests/calc.m4: Test it.
6105
6106 For regularity of the names, replace each
6107 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
6108 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
6109 In addition replace each `flag' with `_flag'.
6110
6111 2000-10-02 Akim Demaille <akim@epita.fr>
6112
6113 Also test parse error messages, including with YYERROR_VERBOSE.
6114
6115 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
6116 associative).
6117 Use it to check the computations.
6118 Use it to check `nonassoc' is honored.
6119 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
6120 `--yyerror-verbose'.
6121 (_AT_CHECK_CALC): Adjust to this option.
6122 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
6123
6124 2000-10-02 Akim Demaille <akim@epita.fr>
6125
6126 Test also `--verbose', `--defines' and `--name-prefix'. Testing
6127 the latter demonstrates a flaw in the handling of non debugging
6128 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
6129 was used in order to simplify:
6130
6131 #if YYDEBUG
6132 if (yydebug)
6133 {
6134 ...
6135 }
6136 #endif
6137
6138 into
6139
6140 if (yydebug)
6141 {
6142 ...
6143 }
6144
6145 unfortunately this leads to a CPP conflict when
6146 `--name-prefix=foo' is used since it produces `#define yydebug
6147 foodebug'.
6148
6149 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
6150 (YYDPRINTF): New macro.
6151 Spread its use.
6152 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
6153 the bison options.
6154 Also test `--verbose', `--defines' and `--name-prefix'.
6155
6156 2000-10-02 Akim Demaille <akim@epita.fr>
6157
6158 Improve the readability of the produced parsers.
6159
6160 * src/bison.s1: Formatting changes.
6161 Improve the comment related to the `$' mark.
6162 (yydefault): Don't fall through to `yyresume': `goto' there.
6163 * src/output.c (output_parser): When the `$' is met, skip the end
6164 of its line.
6165 New variable, `number_of_dollar_signs', to check there's exactly
6166 one `$' in the parser skeleton.
6167
6168 2000-10-02 Akim Demaille <akim@epita.fr>
6169
6170 * lib/xstrdup.c: New file, from the fileutils.
6171 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
6172 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
6173 instead of strlen + xmalloc + strcpy.
6174 * src/symtab.c (copys): Remove, use xstrdup instead.
6175
6176 2000-10-02 Akim Demaille <akim@epita.fr>
6177
6178 * src/gram.h (associativity): New enum type which replaces the
6179 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
6180 `right_assoc', `left_assoc' and `non_assoc'.
6181 Adjust all dependencies.
6182 * src/reader.c: Formatting changes.
6183 (LTYPESTR): Don't define it, use it as a literal in
6184 `reader_output_yylsp'.
6185 * src/symtab.h (symbol_class): New enum type which replaces the
6186 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
6187 `sunknown', `stoken and `snterm'.
6188
6189 2000-10-02 Akim Demaille <akim@epita.fr>
6190
6191 * src/getargs.c (fixed_outfiles): Rename as...
6192 (yaccflag): for consistency and accuracy.
6193 Adjust dependencies.
6194
6195 2000-10-02 Akim Demaille <akim@epita.fr>
6196
6197 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
6198 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
6199 difficult and introduced a lot of core dump. It turns out that
6200 Bison used an implementation of `xmalloc' based on `calloc', and
6201 at various places it does depend upon the initialization to 0. I
6202 have not tried to isolate the pertinent places, and all the former
6203 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
6204 someone should address this issue.
6205
6206 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
6207 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
6208 files.
6209 Adjust dependencies.
6210 * src/warshall.h: New file.
6211 Propagate.
6212
6213 2000-10-02 Akim Demaille <akim@epita.fr>
6214
6215 Various anti-`extern in *.c' changes.
6216
6217 * src/system.h: Include `assert.h'.
6218
6219 2000-10-02 Akim Demaille <akim@epita.fr>
6220
6221 * src/state.h (nstates, final_state, first_state, first_shift)
6222 (first_reduction): Move their exportation from here...
6223 * src/LR0.h: to here.
6224 Adjust dependencies.
6225 * src/getargs.c (statisticsflag): New variable.
6226 Add support for `--statistics'.
6227 Adjust dependencies.
6228
6229 Remove a lot of now useless `extern' statements in most files.
6230
6231 2000-10-02 Akim Demaille <akim@epita.fr>
6232
6233 * src/LR0.h: New file.
6234 Propagate its use.
6235
6236 2000-10-02 Akim Demaille <akim@epita.fr>
6237
6238 * src/print.h: New file.
6239 Propagate its use.
6240 * src/print.c: Formatting and ordering changes.
6241 (verbose, terse): Replace with...
6242 (print_results): this new function.
6243 Adjust dependencies.
6244
6245 2000-10-02 Akim Demaille <akim@epita.fr>
6246
6247 * src/conflicts.c (conflict_report): New function.
6248 (conflict_log, verbose_conflict_log): Replace with...
6249 (print_conflicts): this function.
6250 Adjust dependencies.
6251 * src/conflicts.h: New file.
6252 Propagate its inclusion.
6253
6254 2000-10-02 Akim Demaille <akim@epita.fr>
6255
6256 * src/nullable.h: New file.
6257 Propagate its inclusion.
6258 * src/nullable.c: Formatting changes.
6259
6260 2000-10-02 Akim Demaille <akim@epita.fr>
6261
6262 * src/reduce.h: New file.
6263 Propagate its inclusion.
6264 * src/reduce.c: Topological sort and other formatting changes.
6265 (bool, TRUE, FALSE): Move their definition to...
6266 * src/system.h: here.
6267
6268 2000-10-02 Akim Demaille <akim@epita.fr>
6269
6270 * src/files.c: Formatting changes.
6271 (tryopen, tryclose, openfiles): Rename as...
6272 (xfopen, xfclose, open_files): this.
6273 (stringappend): static.
6274 * src/files.h: Complete the list of exported symbols.
6275 Propagate its use.
6276
6277 2000-10-02 Akim Demaille <akim@epita.fr>
6278
6279 * src/reader.h: New file.
6280 Propagate its use instead of tedious list of `extern' and
6281 prototypes.
6282 * src/reader.c: Formatting changes, topological sort,
6283 s/register//.
6284
6285 2000-10-02 Akim Demaille <akim@epita.fr>
6286
6287 * src/lex.h: Prototype `lex.c' exported functions.
6288 * src/reader.c: Adjust.
6289 * src/lex.c: Formatting changes.
6290 (safegetc): Rename as...
6291 (xgetc): this.
6292
6293 2000-10-02 Akim Demaille <akim@epita.fr>
6294
6295 * src/lalr.h: New file.
6296 Propagate its inclusion instead of prototypes and `extern'.
6297 * src/lalr.c: Formatting changes, topological sorting etc.
6298
6299 2000-10-02 Akim Demaille <akim@epita.fr>
6300
6301 * src/output.c (token_actions): Introduce a temporary array,
6302 YYDEFACT, that makes it possible for this function to use
6303 output_short_table.
6304
6305 2000-10-02 Akim Demaille <akim@epita.fr>
6306
6307 `user_toknums' is output as a `short[]' in `output.c', while it is
6308 defined as a `int[]' in `reader.c'. For consistency with the
6309 other output tables, `user_toknums' is now defined as a table of
6310 shorts.
6311
6312 * src/reader.c (user_toknums): Be a short table instead of an int
6313 table.
6314 Adjust dependencies.
6315
6316 Factor the short table outputs.
6317
6318 * src/output.c (output_short_table): New function.
6319 * src/output.c (output_gram, output_stos, output_rule_data)
6320 (output_base, output_table, output_check): Use it.
6321
6322 2000-10-02 Akim Demaille <akim@epita.fr>
6323
6324 * src/output.c (output): Topological sort of the functions, in
6325 order to get rid of the `static' prototypes.
6326 No longer use `register'.
6327 * src/output.h: New file.
6328 Propagate its inclusion in files explicitly prototyping functions
6329 from output.c.
6330
6331 2000-09-21 Akim Demaille <akim@epita.fr>
6332
6333 * src/atgeneral.m4: Update from Autoconf.
6334
6335 2000-09-21 Akim Demaille <akim@epita.fr>
6336
6337 * src/closure.h: New file.
6338 * src/closure.c: Formatting changes, topological sort over the
6339 functions, use of closure.h.
6340 (initialize_closure, finalize_closure): Rename as...
6341 (new_closure, free_closure): these. Adjust dependencies.
6342 * src/LR0.c: Formatting changes, topological sort, use of
6343 cloture.h.
6344 (initialize_states): Rename as...
6345 (new_states): this.
6346 * src/Makefile.am (noinst_HEADERS): Adjust.
6347
6348 2000-09-20 Akim Demaille <akim@epita.fr>
6349
6350 * src/acconfig.h: Don't protect config.h against multiple
6351 inclusion.
6352 Don't define PARAMS.
6353 * src/system.h: Define PARAMS.
6354 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
6355 purpose of config.h. system.h must not try to fix wrong
6356 definitions in config.h.
6357
6358 2000-09-20 Akim Demaille <akim@epita.fr>
6359
6360 * src/derives.h: New file.
6361 * src/main.c, src/derives.h: Use it.
6362 Formatting changes.
6363 * src/Makefile.am (noinst_HEADERS): Adjust.
6364
6365 2000-09-20 Akim Demaille <akim@epita.fr>
6366
6367 * tests/atgeneral.m4: Update from Autoconf.
6368 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
6369 (AT_CHECK_CALC): New macros.
6370 Use these macros to test bison with options `', `--raw',
6371 `--debug', `--yacc', `--yacc --debug'.
6372
6373 2000-09-19 Akim Demaille <akim@epita.fr>
6374
6375 * src/output.c: Formatting changes.
6376 * src/machine.h: Remove, leaving its contents in...
6377 * src/system.h: here.
6378 Include stdio.h.
6379 Adjust all dependencies on stdio.h and machine.h.
6380 * src/getargs.h: New file.
6381 Let all `extern' declarations about getargs.c be replaced with
6382 inclusion of `getargs.h'.
6383 * src/Makefile.am (noinst_HEADERS): Adjust.
6384
6385 * tests/calc.m4 (yyin): Be initialized in main, not on the global
6386 scope.
6387 (yyerror): Returns void, not int.
6388 * doc/bison.texinfo: Formatting changes.
6389
6390 2000-09-19 Akim Demaille <akim@epita.fr>
6391
6392 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
6393 portable.
6394
6395 2000-09-18 Akim Demaille <akim@epita.fr>
6396
6397 * configure.in: Append WARNING_CFLAGS to CFLAGS.
6398 * src/Makefile.am (INCLUDES): Don't.
6399 Be ready to fetch headers in lib/.
6400
6401 2000-09-18 Akim Demaille <akim@epita.fr>
6402
6403 * doc/bison.texinfo: Update the copyright.
6404 ANSIfy and GNUify the examples.
6405 Remove the old menu.
6406
6407 2000-09-18 Akim Demaille <akim@epita.fr>
6408
6409 First set of tests: use the `calc' example from the documentation.
6410
6411 * src/bison.s1 (yyparse): Condition the code using `yytname' which
6412 is defined only when YYDEBUG is.
6413 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
6414 * src/files.c (tryopen, tryclose): Formatting changes.
6415 Move to the top and be static.
6416 * src/reader.c (read_signed_integer): Likewise.
6417 * tests/calc.m4: New file.
6418 * Makefile.am, suite.m4: Adjust.
6419 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
6420
6421 2000-09-18 Akim Demaille <akim@epita.fr>
6422
6423 Add support for an Autotest test suite for Bison.
6424
6425 * m4/m4.m4, m4/atconfig.m4: New files.
6426 * m4/Makefile.am (EXTRA_DIST): Adjust.
6427 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
6428 files.
6429 * src/getargs.c: Display a more standard --version message.
6430 * src/reader.c (reader): Formatting changes.
6431 No longer depend upon VERSION_STRING.
6432 * configure.in: No longer use `dnl'.
6433 Set up the test suite and the new directory `tests/.
6434 (VERSION_STRING): Remove.
6435
6436 2000-04-14 Akim Demaille <akim@epita.fr>
6437
6438 * src/reader.c (copy_comment2): New function, same as former
6439 `copy_comment', but outputs into two FILE *.
6440 (copy_comment): Use it.
6441 (parse_union_decl): Use it.
6442 (get_type, parse_start_decl): Use the same `invalid' message.
6443 (parse_start_decl, parse_union_decl): Use the same `multiple'
6444 message.
6445 (parse_union_decl, copy_guard, copy_action): Use the same
6446 `unmatched' message.
6447 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
6448
6449 2000-03-31 Akim Demaille <akim@epita.fr>
6450
6451 * src/files.c (tryopen, tryclose): Move to the top.
6452 Be static.
6453
6454 2000-03-31 Akim Demaille <akim@epita.fr>
6455
6456 * src/main.c (main): Don't call `done', exit does it.
6457
6458 2000-03-31 Akim Demaille <akim@epita.fr>
6459
6460 * allocate.c: s/return (foo)/return foo/.
6461 * lalr.c: Likewise.
6462 * LR0.c: Likewise.
6463 * output.c: Likewise.
6464 * reader.c: Likewise.
6465 * symtab.c: Likewise.
6466 * vmsgetargs.c: Likewise.
6467
6468 2000-03-31 Akim Demaille <akim@epita.fr>
6469
6470 Clean up the error reporting functions.
6471
6472 * src/report.c: New file.
6473 * src/report.h: Likewise.
6474 * src/Makefile.am: Adjust.
6475 * m4/error.m4: New file.
6476 * m4/Makefile.am: Adjust.
6477 * configure.in (jm_PREREQ_ERROR): Call it.
6478 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
6479 Remove.
6480 (fatal, fatals): Remove. All callers use complain.c::fatal.
6481 (warn, warni, warns, warnss, warnss): Remove. All callers use
6482 complain.c::complain.
6483 (toomany): Remove, use fatal instead.
6484 * src/files.c (done): No argument, use complain_message_count.
6485 * src/main.c (main): Register `done' to `atexit'.
6486
6487 * src/getargs.c (usage): More `fputs', less `fprintf'.
6488
6489 2000-03-28 Akim Demaille <akim@epita.fr>
6490
6491 * lib/: New directory.
6492 * Makefile.am (SUBDIRS): Adjust.
6493 * configure.in: Adjust.
6494 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
6495 useless.
6496 * src/alloca.c: Moved to lib/.
6497 * src/getopt.c: Likewise.
6498 * src/getopt1.c: Likewise.
6499 * src/getopt.h: Likewise.
6500 * src/ansi2knr.c: Likewise.
6501 * src/ansi2knr.1: Likewise.
6502 * src/Makefile.am: Adjust.
6503 * lib/Makefile.am: New file.
6504
6505 2000-03-28 Akim Demaille <akim@epita.fr>
6506
6507 * src/getargs.c (usage): Refresh the help message.
6508
6509 2000-03-17 Akim Demaille <akim@epita.fr>
6510
6511 * src/getopt1.c: Updated from textutils 2.0e
6512 * src/getopt.c: Likewise.
6513 * src/getopt.h: Likewise.
6514
6515 2000-03-17 Akim Demaille <akim@epita.fr>
6516
6517 * src/Makefile.am (bison.simple): Fix the awk program: quote only
6518 the file name, not the whole `#line LINE FILE'.
6519
6520 2000-03-17 Akim Demaille <akim@epita.fr>
6521
6522 On syntax errors, report the token on which we choked.
6523
6524 * src/bison.s1 (yyparse): In the label yyerrlab, when
6525 YYERROR_VERBOSE, add yychar in msg.
6526
6527 2000-03-17 Akim Demaille <akim@epita.fr>
6528
6529 * src/reader.c (copy_at): New function.
6530 (copy_guard): Use it.
6531 (copy_action): Use it.
6532
6533 2000-03-17 Akim Demaille <akim@epita.fr>
6534
6535 Be kind to translators, save some useless translations.
6536
6537 * src/main.c (banner): New function.
6538 (fatal_banner): Use it.
6539 (warn_banner): Use it.
6540
6541 2000-03-17 Akim Demaille <akim@epita.fr>
6542
6543 * src/reader.c (copy_definition): Use copy_string and
6544 copy_comment. Removed now unused `match', `ended',
6545 `cplus_comment'.
6546 (copy_comment, copy_string): Moved, to be visible from
6547 copy_definition.
6548
6549 2000-03-17 Akim Demaille <akim@epita.fr>
6550
6551 * src/reader.c (copy_string): Declare `static inline'. No
6552 problems with inline, since it is checked by configure.
6553 (copy_comment): Likewise.
6554
6555 2000-03-17 Akim Demaille <akim@epita.fr>
6556
6557 * src/reader.c (packsymbols): Formatting changes.
6558
6559 2000-03-17 Akim Demaille <akim@epita.fr>
6560
6561 * src/reader.c (copy_comment): New function, factored out from:
6562 (copy_action): Use it. Removed now unused `match', `ended',
6563 `cplus_comment'.
6564 (copy_guard): Likewise.
6565
6566 2000-03-17 Akim Demaille <akim@epita.fr>
6567
6568 * src/reader.c (copy_string): New function, factored out from:
6569 (copy_action): Use it.
6570 (copy_guard): Likewise.
6571
6572 2000-03-17 Akim Demaille <akim@epita.fr>
6573
6574 Change the handling of @s so that they behave exactly like $s.
6575 There is now a pseudo variable @$ (readble and writable), location
6576 of the lhs of the rule (by default ranging from the location of
6577 the first symbol of the rhs, to the location of the last symbol,
6578 or, if the rhs is empty, YYLLOC).
6579
6580 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
6581 yyval.
6582 (yyparse): When providing a default semantic action, provide a
6583 default location action.
6584 (after the $): No longer change `*YYLSP', just stack YYLOC the
6585 same way you stack YYVAL.
6586 * src/reader.c (read_declarations): Use warns.
6587 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
6588 (copy_action, case '@'): Likewise.
6589 Use a standard error message, to save useless work from
6590 translators.
6591
6592 2000-03-17 Akim Demaille <akim@epita.fr>
6593
6594 * src/bison.s1: Formatting and cosmetics changes.
6595 * src/reader.c: Likewise.
6596 Update the Copyright notice.
6597
6598 2000-03-17 Akim Demaille <akim@epita.fr>
6599
6600 * src/bison.s1 (#line): All set to `#line' only, since the
6601 Makefile now handles them.
6602
6603 2000-03-16 Akim Demaille <akim@epita.fr>
6604
6605 * src/output.c (output_rule_data): Output the documentation of
6606 some of the tables.
6607 (Copyright notice): Update.
6608 Formatting changes.
6609
6610 2000-03-16 Akim Demaille <akim@epita.fr>
6611
6612 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
6613 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
6614 One `#if YYDEBUG' remains, since it uses variables which are
6615 defined only if `YYDEBUG != 0'.
6616
6617 2000-03-16 Akim Demaille <akim@epita.fr>
6618
6619 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
6620 and related variables so that the similarities are highlighted.
6621
6622 2000-03-16 Akim Demaille <akim@epita.fr>
6623
6624 * src/bison.s1: Properly indent CPP directives.
6625
6626 2000-03-16 Akim Demaille <akim@epita.fr>
6627
6628 * src/bison.s1: Properly indent the `alloca' CPP section.
6629
6630 2000-03-16 Akim Demaille <akim@epita.fr>
6631
6632 Do not hard code values of directories in `configure.in'.
6633 Update the `configure' tool chain.
6634
6635 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
6636 src/makefile.am.
6637 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
6638 (AC_OUTPUT): Add m4/Makefile.
6639 Bump to bison 1.28a, 1.29 has never been released.
6640 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
6641 handled via src/Makefile.am.
6642 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
6643 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
6644 autoheader.
6645 * Makefile.am (SUBDIRS): Add m4.
6646 (ACLOCAL_AM_FLAGS): New variable.
6647 (AUTOMAKE_OPTIONS): Add check-news.
6648 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
6649 the proper line number and file name.
6650 (DEFS): Propagate the location of bison library files and of the
6651 locale files.
6652 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
6653 builddir.
6654 * acinclude.m4: Remove, replaced by the directory m4.
6655 * m4/Makefile.am (EXTRA_DIST): New variable.
6656 * m4/gettext.m4: New file, from the fileutils.
6657 * m4/lcmessage.m4: Likewise
6658 * m4/progtest.m4: Likewise.
6659 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
6660
6661 2000-03-10 Akim Demaille <akim@epita.fr>
6662
6663 * src/closure.c:
6664 Formatting changes of various comments.
6665 Respect the GNU coding standards at various places.
6666 Don't use `_()' when no translation is needed.
6667
6668 1999-12-13 Jesse Thilo <jthilo@gnu.org>
6669
6670 * src/files.c:
6671 OS/2 honors TMPDIR environment variable.
6672
6673 1999-12-13 Jesse Thilo <jthilo@gnu.org>
6674
6675 * doc/bison.texinfo: Tweaked spelling and grammar.
6676 Updated ISBN.
6677 Removed reference to price of printed copy.
6678 Mention BISON_SIMPLE and BISON_HAIRY.
6679
6680 1999-12-13 Jesse Thilo <jthilo@gnu.org>
6681
6682 * configure.in, NEWS:
6683 Bison 1.29 released.
6684
6685 1999-10-27 Jesse Thilo <jthilo@gnu.org>
6686
6687 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
6688 Added reference card.
6689
6690 1999-07-26 Jesse Thilo <jthilo@gnu.org>
6691
6692 * po/ru.po: Added Russian translation.
6693
6694 1999-07-26 Jesse Thilo <jthilo@gnu.org>
6695
6696 * configure.in: Added Russian translation.
6697
6698 1999-07-06 Jesse Thilo <jthilo@gnu.org>
6699
6700 * configure.in, NEWS, README:
6701 Released version 1.28.
6702
6703 1999-06-14 Jesse Thilo <jthilo@gnu.org>
6704
6705 * src/system.h:
6706 Squashed redefinition warning on some systems.
6707
6708 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
6709 Have configure build version string instead of relying on ANSI string
6710 concatentation.
6711
6712 1999-06-14 Jesse Thilo <jthilo@gnu.org>
6713
6714 * po/POTFILES.in: Got rid of version.c.
6715
6716 1999-06-14 Jesse Thilo <jthilo@gnu.org>
6717
6718 * acconfig.h, configure.in:
6719 Have configure build version string instead of relying on ANSI string
6720 concatentation.
6721
6722 1999-06-08 Jesse Thilo <jthilo@gnu.org>
6723
6724 * doc/bison.1:
6725 Dropped mention of `+' for long-named options.
6726
6727 1999-05-30 Jesse Thilo <jthilo@gnu.org>
6728
6729 * src/files.c: Added <unistd.h> for unlink().
6730
6731 * src/Makefile.am, src/system.h:
6732 I18n fixes.
6733
6734 1999-05-30 Jesse Thilo <jthilo@gnu.org>
6735
6736 * README: Added a FAQ list.
6737
6738 * configure.in, acconfig.h:
6739 I18n fixes.
6740
6741 1999-05-30 Jesse Thilo <jthilo@gnu.org>
6742
6743 * doc/FAQ, doc/Makefile.am:
6744 Added a FAQ list.
6745
6746 1999-05-19 Jesse Thilo <jthilo@gnu.org>
6747
6748 * src/alloc.h, src/symtab.h, src/version.c:
6749 Protected inclusion of "config.h" with HAVE_CONFIG_H.
6750
6751 1999-04-18 Jesse Thilo <jthilo@gnu.org>
6752
6753 * src/.cvsignore, src/Makefile.am:
6754 Reorganized: sources in `src', documentation in `doc'.
6755
6756 * src/lex.c (literalchar):
6757 fixed the code for escaping double quotes (thanks
6758 Jonathan Czisny.)
6759
6760 1999-04-18 Jesse Thilo <jthilo@gnu.org>
6761
6762 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
6763 Adjusted paths to reflect directory reorganization.
6764
6765 1999-04-18 Jesse Thilo <jthilo@gnu.org>
6766
6767 * doc/.cvsignore, doc/Makefile.am:
6768 Reorganized: sources in `src', documentation in `doc'.
6769
6770 1999-04-18 Jesse Thilo <jthilo@gnu.org>
6771
6772 * configure.in:
6773 Updated AC_INIT file to reflect directory reorganization.
6774
6775 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
6776 Reorganized: sources in `src', documentation in `doc'.
6777
6778 1999-04-13 Jesse Thilo <jthilo@gnu.org>
6779
6780 * src/allocate.c:
6781 Don't declare calloc() and realloc() if not necessary.
6782
6783 1999-04-13 Jesse Thilo <jthilo@gnu.org>
6784
6785 * configure.in, acconfig.h, acinclude.m4:
6786 Don't declare calloc() and realloc() if not necessary.
6787
6788 1999-03-23 Jesse Thilo <jthilo@gnu.org>
6789
6790 * po/.cvsignore: Added i18n support.
6791
6792 1999-03-23 Jesse Thilo <jthilo@gnu.org>
6793
6794 * acconfig.h, configure.in, Makefile.am:
6795 Added i18n support.
6796
6797 1999-03-22 Jesse Thilo <jthilo@gnu.org>
6798
6799 * src/bison.s1: Fixed #line numbers.
6800
6801 1999-03-15 Jesse Thilo <jthilo@gnu.org>
6802
6803 * po/es.po, po/fr.po, po/nl.po, po/de.po:
6804 Added PO files from Translation Project.
6805
6806 1999-03-03 Jesse Thilo <jthilo@gnu.org>
6807
6808 * Makefile.am:
6809 Added support for non-ANSI compilers (ansi2knr).
6810
6811 1999-02-16 Jesse Thilo <jthilo@gnu.org>
6812
6813 * configure.in: Bumped version number to 1.27.
6814
6815 * Makefile.am:
6816 Added `bison.simple' to list of files removed by `make distclean'.
6817
6818 1999-02-12 Jesse Thilo <jthilo@gnu.org>
6819
6820 * src/files.c, src/files.h:
6821 Defined locations of parser files in config.h instead of Makefile.
6822
6823 1999-02-12 Jesse Thilo <jthilo@gnu.org>
6824
6825 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
6826 Defined locations of parser files in config.h instead of Makefile.
6827
6828 1999-02-09 Jesse Thilo <jthilo@gnu.org>
6829
6830 * Makefile.am:
6831 Removed inappropriate use of $< macro.
6832
6833 1999-02-05 Jesse Thilo <jthilo@gnu.org>
6834
6835 * po/Makefile.in.in, po/POTFILES.in:
6836 Add `po' directory skeleton.
6837
6838 1999-01-27 Jesse Thilo <jthilo@gnu.org>
6839
6840 * README: Document help-bison list.
6841
6842 * configure.in: Add check for mkstemp().
6843
6844 1999-01-20 Jesse Thilo <jthilo@gnu.org>
6845
6846 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
6847 Hush a few compiler warnings.
6848
6849 * src/files.c:
6850 Add tryclose(), which verifies that fclose was successful.
6851 Hush a couple of compiler warnings.
6852
6853 1999-01-20 Jesse Thilo <jthilo@gnu.org>
6854
6855 * Makefile.am, OChangeLog:
6856 ChangeLog is now automatically generated. Include the old version as
6857 OChangeLog.
6858
6859 1999-01-14 Jesse Thilo <jthilo@gnu.org>
6860
6861 * 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:
6862 Update FSF address.
6863
6864 1999-01-14 Jesse Thilo <jthilo@gnu.org>
6865
6866 * doc/bison.texinfo: Fix formatting glitch.
6867
6868 * doc/bison.texinfo: Update FSF address.
6869
6870 1999-01-14 Jesse Thilo <jthilo@gnu.org>
6871
6872 * acconfig.h: Update FSF address.
6873
6874 1999-01-08 Jesse Thilo <jthilo@gnu.org>
6875
6876 * src/system.h:
6877 Don't define PACKAGE here, since config.h defines it.
6878
6879 1998-12-30 Jesse Thilo <jthilo@gnu.org>
6880
6881 * src/reader.c: Update copyright date.
6882
6883 * src/main.c:
6884 Ditch sprintf to statically-sized buffers in fatal/warn functions in
6885 favor of output directly to stderr (avoids buffer overruns).
6886
6887 * src/reader.c: Some checks for premature EOF.
6888
6889 * 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:
6890 Use prototypes if the compiler understands them.
6891
6892 * src/files.c: Honor TMPDIR on Unix hosts.
6893 Use prototypes if the compiler understands them.
6894
6895 * src/reader.c:
6896 Fix a couple of buffer overrun bugs.
6897 Use prototypes if the compiler understands them.
6898
6899 * src/system.h: Include unistd.h and ctype.h.
6900 Use #ifdef instead of #if for NLS symbols.
6901
6902 1998-12-30 Jesse Thilo <jthilo@gnu.org>
6903
6904 * doc/bison.texinfo:
6905 Delete comment "consider using @set for edition number, etc..." since
6906 we now are doing so.
6907
6908 1998-12-30 Jesse Thilo <jthilo@gnu.org>
6909
6910 * configure.in:
6911 Use prototypes if the compiler understands them.
6912
6913 * NEWS: Document 1.26 highlights.
6914
6915 * Makefile.am: Require Automake 1.3 or later.
6916
6917 * acconfig.h:
6918 Use prototypes if the compiler understands them.
6919
6920 1998-12-29 Jesse Thilo <jthilo@gnu.org>
6921
6922 * src/version.c:
6923 Use VERSION symbol from automake for version number.
6924
6925 1998-12-29 Jesse Thilo <jthilo@gnu.org>
6926
6927 * acconfig.h, configure.in, version.cin:
6928 Use VERSION symbol from automake for version number.
6929
6930 1998-11-28 Jesse Thilo <jthilo@gnu.org>
6931
6932 * Makefile.am:
6933 Distribute original version of simple parser (bison.s1), not built
6934 version (bison.simple).
6935
6936 1998-11-28 Jesse Thilo <jthilo@gnu.org>
6937
6938 * doc/bison.texinfo: Add info dir entry.
6939
6940 * doc/bison.texinfo:
6941 Let automake put version number into documentation.
6942
6943 1998-11-26 Jesse Thilo <jthilo@gnu.org>
6944
6945 * src/bison.cld, src/build.com, src/vmshlp.mar:
6946 Add non-RCS files from /gd/gnu/bison.
6947
6948 1998-11-26 Jesse Thilo <jthilo@gnu.org>
6949
6950 * doc/bison.1:
6951 Document the BISON_HAIRY and BISON_SIMPLE variables.
6952
6953 1998-11-25 Jesse Thilo <jthilo@gnu.org>
6954
6955 * src/version.c: Build version.c automatically.
6956
6957 * src/reader.c:
6958 Fix token numbering (used to start at 258, not 257).
6959
6960 * src/system.h: Include config.h.
6961
6962 * src/getargs.c: Update bug report address.
6963
6964 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
6965 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
6966
6967 1998-11-25 Jesse Thilo <jthilo@gnu.org>
6968
6969 * Makefile.am:
6970 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
6971
6972 * configure.in, version.cin:
6973 Build version.c automatically.
6974
6975 * AUTHORS: Add AUTHORS file.
6976
6977 * README: Update bug report address.
6978
6979 * bison.simple:
6980 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
6981
6982 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
6983 Add automake stuff.
6984
6985 1998-11-25 Jesse Thilo <jthilo@gnu.org>
6986
6987 * doc/bison.texinfo: Clean up some formatting.
6988
6989 1998-05-05 Richard Stallman <rms@gnu.org>
6990
6991 * doc/bison.texinfo:
6992 Explain better why to make a pure parser.
6993
6994 1998-01-05 Richard Stallman <rms@gnu.org>
6995
6996 * src/files.c (openfiles):
6997 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
6998 find a temporary directory, if possible. Do not unlink files while
6999 they are open.
7000
7001 1997-08-25 Richard Stallman <rms@gnu.org>
7002
7003 * src/reader.c (stack_offset;):
7004 Change some warni to warns.
7005
7006 * src/lex.c (literalchar): Use warns, not warni.
7007
7008 1997-06-28 Richard Stallman <rms@gnu.org>
7009
7010 * src/bison.s1: Add a Bison version comment.
7011
7012 * src/main.c (fatal, warn, berror):
7013 Use program_name.
7014
7015 1997-06-28 Richard Stallman <rms@gnu.org>
7016
7017 * Makefile.in (bison_version): New variable.
7018 (dist): Use that variable.
7019 (bison.s1): Substitute the Bison version into bison.simple.
7020
7021 * bison.simple: Add a Bison version comment.
7022
7023 1997-06-18 Richard Stallman <rms@gnu.org>
7024
7025 * src/main.c (fatal, warn, berror):
7026 Make error messages standard.
7027 (toomany): Improve error message text.
7028
7029 * 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:
7030 new.h renamed to alloc.h.
7031
7032 1997-06-18 Richard Stallman <rms@gnu.org>
7033
7034 * Makefile.in: new.h renamed to alloc.h.
7035
7036 1997-05-24 Richard Stallman <rms@gnu.org>
7037
7038 * src/lex.c (literalchar):
7039 Fix the code for escaping \, " and '.
7040
7041 (lex): Avoid trouble when there are many chars
7042 to discard in a char literal with just several chars in it.
7043
7044 1997-05-17 Richard Stallman <rms@gnu.org>
7045
7046 * src/bison.s1:
7047 Use malloc, if using alloca is troublesome.
7048 (YYSTACK_USE_ALLOCA): New flag macro.
7049 Define it for some systems and compilers.
7050 (YYSTACK_ALLOC): New macro.
7051 (yyparse): Use YYSTACK_ALLOC to allocate stack.
7052 If it was malloc'd, free it.
7053
7054 1997-05-17 Richard Stallman <rms@gnu.org>
7055
7056 * bison.simple:
7057 Use malloc, if using alloca is troublesome.
7058 (YYSTACK_USE_ALLOCA): New flag macro.
7059 Define it for some systems and compilers.
7060 (YYSTACK_ALLOC): New macro.
7061 (yyparse): Use YYSTACK_ALLOC to allocate stack.
7062 If it was malloc'd, free it.
7063
7064 1997-04-23 Richard Stallman <rms@gnu.org>
7065
7066 * src/bison.s1:
7067 (alloca) [__hpux]: Always define as __builtin_alloca.
7068
7069 1997-04-23 Richard Stallman <rms@gnu.org>
7070
7071 * bison.simple:
7072 (alloca) [__hpux]: Always define as __builtin_alloca.
7073
7074 1997-04-22 Richard Stallman <rms@gnu.org>
7075
7076 * src/bison.s1:
7077 [__hpux]: Include alloca.h (right for HPUX 10)
7078 instead of declaring alloca (right for HPUX 9).
7079
7080 * src/bison.s1 (__yy_memcpy):
7081 Declare arg `count' as unsigned int.
7082 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
7083
7084 1997-04-22 Richard Stallman <rms@gnu.org>
7085
7086 * bison.simple:
7087 [__hpux]: Include alloca.h (right for HPUX 10)
7088 instead of declaring alloca (right for HPUX 9).
7089
7090 * bison.simple (__yy_memcpy):
7091 Declare arg `count' as unsigned int.
7092 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
7093
7094 1997-01-03 Richard Stallman <rms@gnu.org>
7095
7096 * src/allocate.c: [__STDC__ or _MSC_VER]:
7097 Declare calloc and realloc to return void *.
7098
7099 1997-01-02 Richard Stallman <rms@gnu.org>
7100
7101 * src/system.h:
7102 [_MSC_VER]: Include stdlib.h and process.h.
7103 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
7104
7105 * src/main.c (main): Return FAILURE as a value.
7106 (printable_version): Declare arg as int, not char.
7107
7108 1997-01-02 Richard Stallman <rms@gnu.org>
7109
7110 * Makefile.in (dist):
7111 Explicitly check for symlinks, and copy them.
7112
7113 1996-12-19 Richard Stallman <rms@gnu.org>
7114
7115 * src/files.c:
7116 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
7117
7118 1996-12-18 Paul Eggert <eggert@gnu.org>
7119
7120 * src/bison.s1 (yyparse):
7121 If __GNUC__ and YYPARSE_PARAM are both defined,
7122 declare yyparse to have a void * argument.
7123
7124 1996-12-18 Paul Eggert <eggert@gnu.org>
7125
7126 * bison.simple (yyparse):
7127 If __GNUC__ and YYPARSE_PARAM are both defined,
7128 declare yyparse to have a void * argument.
7129
7130 1996-12-17 Richard Stallman <rms@gnu.org>
7131
7132 * src/reduce.c (nbits): Add some casts.
7133
7134 1996-08-12 Richard Stallman <rms@gnu.org>
7135
7136 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
7137
7138 1996-08-12 Richard Stallman <rms@gnu.org>
7139
7140 * bison.simple: Test _MSDOS as well as _MSDOS_.
7141
7142 1996-07-31 Richard Stallman <rms@gnu.org>
7143
7144 * src/bison.s1:
7145 [__sun && __i386]: Include alloca.h.
7146
7147 1996-07-31 Richard Stallman <rms@gnu.org>
7148
7149 * bison.simple:
7150 [__sun && __i386]: Include alloca.h.
7151
7152 1996-07-30 Richard Stallman <rms@gnu.org>
7153
7154 * src/bison.s1: Comment change.
7155
7156 * src/bison.s1: Test _MSDOS_, not MSDOS.
7157
7158 1996-07-30 Richard Stallman <rms@gnu.org>
7159
7160 * bison.simple: Comment change.
7161
7162 * bison.simple: Test _MSDOS_, not MSDOS.
7163
7164 1996-06-01 Richard Stallman <rms@gnu.org>
7165
7166 * 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:
7167 Insert `_' macro around many string constants.
7168
7169 * src/main.c:
7170 Insert `_' macro around many string constants.
7171
7172 (main): Call setlocale, bindtextdomain and textdomain.
7173
7174 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
7175 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
7176 [ENABLE_NLS]: Include libintl.h.
7177 [ENABLE_NLS] (gettext): Define.
7178 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
7179 (N_, PACKAGE, LOCALEDIR): New macros.
7180
7181 1996-06-01 Richard Stallman <rms@gnu.org>
7182
7183 * POTFILES.in: New file.
7184
7185 * Makefile.in (allocate.o):
7186 Define target explicitly.
7187
7188 * Makefile.in (CFLAGS): Set to @CFLAGS@.
7189 (LDFLAGS): Set to @LDFLAGS@.
7190 (configure): Run autoconf only if preceding `cd' succeeds.
7191 (bison.s1): Redirect output to temporary file then move the
7192 temporary to the target, rather than redirecting directly to bison.s1.
7193 (clean): Remove config.status and config.log.
7194 (distclean): Don't remove config.status here.
7195
7196 1996-05-12 Richard Stallman <rms@gnu.org>
7197
7198 * src/bison.s1:
7199 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
7200
7201 1996-05-12 Richard Stallman <rms@gnu.org>
7202
7203 * bison.simple:
7204 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
7205
7206 1996-05-11 Richard Stallman <rms@gnu.org>
7207
7208 * src/bison.s1 (__yy_memcpy):
7209 Really reorder the args, as was supposedly done on Feb 14 1995.
7210 (yyparse): Calls changed accordingly.
7211
7212 1996-05-11 Richard Stallman <rms@gnu.org>
7213
7214 * Makefile.in (dist): Don't use $(srcdir).
7215
7216 * bison.simple (__yy_memcpy):
7217 Really reorder the args, as was supposedly done on Feb 14 1995.
7218 (yyparse): Calls changed accordingly.
7219
7220 1996-01-27 Richard Stallman <rms@gnu.org>
7221
7222 * src/output.c (output_rule_data):
7223 Test YYERROR_VERBOSE in the conditional
7224 around the definition of ttyname.
7225
7226 1995-12-29 Richard Stallman <rms@gnu.org>
7227
7228 * src/bison.s1:
7229 Fix line numbers in #line commands.
7230
7231 1995-12-29 Richard Stallman <rms@gnu.org>
7232
7233 * bison.simple:
7234 Fix line numbers in #line commands.
7235
7236 1995-12-27 Richard Stallman <rms@gnu.org>
7237
7238 * src/bison.s1 (YYPARSE_PARAM_DECL):
7239 In C++, make it always null.
7240 (YYPARSE_PARAM_ARG): New macro.
7241 (yyparse): Use YYPARSE_PARAM_ARG.
7242
7243 1995-12-27 Richard Stallman <rms@gnu.org>
7244
7245 * bison.simple (YYPARSE_PARAM_DECL):
7246 In C++, make it always null.
7247 (YYPARSE_PARAM_ARG): New macro.
7248 (yyparse): Use YYPARSE_PARAM_ARG.
7249
7250 1995-11-29 Richard Stallman <rms@gnu.org>
7251
7252 * doc/bison.texinfo:
7253 Describe literal string tokens, %raw, %no_lines, %token_table.
7254
7255 1995-11-29 Daniel Hagerty <hag@gnu.org>
7256
7257 * doc/bison.texinfo: Fixed update date
7258
7259 1995-10-16 Richard Stallman <rms@gnu.org>
7260
7261 * src/version.c: Version 1.25.
7262
7263 1995-10-16 Richard Stallman <rms@gnu.org>
7264
7265 * NEWS: *** empty log message ***
7266
7267 1995-10-16 Richard Stallman <rms@gnu.org>
7268
7269 * doc/bison.1, doc/bison.rnh:
7270 Add new options.
7271
7272 1995-10-15 Richard Stallman <rms@gnu.org>
7273
7274 * src/vmsgetargs.c, src/getargs.c:
7275 Added -n, -k, and -raw switches.
7276 (noparserflag, toknumflag, rawtoknumflag): New variables.
7277
7278 * src/symtab.h (SALIAS):
7279 New #define for adding aliases to %token.
7280 (struct bucket): Added `alias' field.
7281
7282 * src/reduce.c (reduce_grammar):
7283 Revise error message.
7284 (print_notices): Remove final `.' from error message.
7285
7286 * src/reader.c (reader_output_yylsp):
7287 New function.
7288 (readgram): Use `#if 0' around code that accepted %command
7289 inside grammar rules: The documentation doesn't allow it,
7290 and it will fail since the %command processors scan for the next %.
7291 (parse_token_decl): Extended the %token
7292 declaration to allow a multi-character symbol as an alias.
7293 (parse_thong_decl): New function.
7294 (read_declarations): Added %thong declarations.
7295 (read_declarations): Handle NOOP to deal with allowing
7296 % declarations as another means to specify the flags.
7297 (readgram): Allow %prec prior to semantics embedded in a rule.
7298 (skip_to_char, read_declarations, copy_definition)
7299 (parse_token_decl, parse_start_decl, parse_type_decl)
7300 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
7301 (get_type_name, copy_guard, copy_action, readgram)
7302 (get_type, packsymbols): Revised most error messages.
7303 Changed `fatal' to `warnxxx' to avoid aborting for error.
7304 Revised and use multiple warnxxx functions to avoid using VARARGS1.
7305 (read_declarations): Improve the error message for
7306 an invalid character. Do not abort.
7307 (read_declarations, copy_guard, copy_action): Use
7308 printable_version to avoid unprintable characters in printed output.
7309 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
7310 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
7311 Allow the type of a non-terminal can be given
7312 more than once, as long as all specifications give the same type.
7313
7314 * src/output.c:
7315 (output_headers, output_trailers, output, output_gram)
7316 (output_rule_data): Implement noparserflag variable.
7317 Implement toknumflag variable.
7318 (output): Call reader_output_yylsp to output LTYPESTR.
7319
7320 * src/main.c (main):
7321 If reader sees an error, don't process the grammar.
7322 (fatals): Updated to not use VARARGS1.
7323 (printable_version, int_to_string, warn, warni, warns, warnss)
7324 (warnsss): New error reporting functions. Avoid abort for error.
7325
7326 * src/lex.h:
7327 Added THONG and NOOP for alias processing.
7328 Added SETOPT for the new code that allows setting options with %flags.
7329
7330 * src/lex.c:
7331 Include getopt.h. Add some extern decls.
7332 (safegetc): New function to deal with EOF gracefully.
7333 (literalchar); new function to deal with reading \ escapes.
7334 (lex): Use literalchar.
7335 (lex): Implemented "..." tokens.
7336 (literalchar, lex, parse_percent_token): Made tokenbuffer
7337 always contain the token. This includes growing the token
7338 buffer while reading an integer.
7339 (parse_percent_token): Replaced if-else statement with percent_table.
7340 (parse_percent_token): Added % declarations as another
7341 way to specify the flags -n, -l, and -r. Also added hooks for
7342 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
7343 major changes to files.c.
7344 (lex) Retain in the incoming stream a character following
7345 an incorrect '/'.
7346 (skip_white_space, lex): Revised most error messages
7347 and changed fatal to warn to avoid aborting.
7348 (percent_table): Added %thong declarations.
7349
7350 * src/gram.h: Comment changes.
7351
7352 * src/files.c (openfiles, open_extra_files, done):
7353 Add faction flag
7354 and actfile file. Handle noparserflag. Both for -n switch.
7355
7356 * src/conflicts.c (resolve_sr_conflict):
7357 Remove use of alloca.
7358
7359 1995-06-01 Jim Meyering <meyering@gnu.org>
7360
7361 * doc/bison.texinfo: *** empty log message ***
7362
7363 1995-05-06 Richard Stallman <rms@gnu.org>
7364
7365 * src/bison.s1: Comment change.
7366
7367 1995-05-06 Richard Stallman <rms@gnu.org>
7368
7369 * bison.simple: Comment change.
7370
7371 1995-05-03 Richard Stallman <rms@gnu.org>
7372
7373 * src/version.c: Version now 1.24.
7374
7375 * src/bison.s1: Change distribution terms.
7376
7377 * src/version.c: Version now 1.23.
7378
7379 1995-05-03 Richard Stallman <rms@gnu.org>
7380
7381 * doc/bison.texinfo:
7382 Rewrite "Conditions for Using Bison".
7383 Update version to 1.24.
7384
7385 1995-05-03 Richard Stallman <rms@gnu.org>
7386
7387 * bison.simple: Change distribution terms.
7388
7389 1995-02-23 Richard Stallman <rms@gnu.org>
7390
7391 * src/files.c: Test __VMS_POSIX as well as VMS.
7392
7393 1995-02-14 Jim Meyering <meyering@gnu.org>
7394
7395 * src/bison.s1 (__yy_memcpy):
7396 Renamed from __yy_bcopy to avoid
7397 confusion. Reverse FROM and TO arguments to be consistent with
7398 those of memcpy.
7399
7400 1995-02-14 Jim Meyering <meyering@gnu.org>
7401
7402 * bison.simple (__yy_memcpy):
7403 Renamed from __yy_bcopy to avoid
7404 confusion. Reverse FROM and TO arguments to be consistent with
7405 those of memcpy.
7406
7407 1994-11-10 David J. MacKenzie <djm@gnu.org>
7408
7409 * NEWS: reformat
7410
7411 * NEWS: New file.
7412
7413 * Makefile.in (DISTFILES): Include NEWS.
7414
7415 * Makefile.in (DISTFILES):
7416 Include install-sh, not install.sh.
7417
7418 * configure.in: Update to Autoconf v2 macro names.
7419
7420 1994-10-05 David J. MacKenzie <djm@gnu.org>
7421
7422 * Makefile.in: fix typo
7423
7424 * Makefile.in (prefix, exec_prefix):
7425 Let configure set them.
7426
7427 1994-09-28 David J. MacKenzie <djm@gnu.org>
7428
7429 * Makefile.in: Set datadir to $(prefix)/share.
7430
7431 1994-09-15 Richard Stallman <rms@gnu.org>
7432
7433 * src/bison.s1:
7434 Update copyright notice and GPL version.
7435
7436 1994-09-15 Richard Stallman <rms@gnu.org>
7437
7438 * bison.simple:
7439 Update copyright notice and GPL version.
7440
7441 1994-07-12 Richard Stallman <rms@gnu.org>
7442
7443 * src/reduce.c, src/reader.c:
7444 entered into RCS
7445
7446 1994-05-05 David J. MacKenzie <djm@gnu.org>
7447
7448 * Makefile.in: entered into RCS
7449
7450 1994-03-26 Richard Stallman <rms@gnu.org>
7451
7452 * src/bison.s1: entered into RCS
7453
7454 1994-03-26 Richard Stallman <rms@gnu.org>
7455
7456 * bison.simple: entered into RCS
7457
7458 1994-03-25 Richard Stallman <rms@gnu.org>
7459
7460 * src/main.c: entered into RCS
7461
7462 1994-03-24 Richard Stallman <rms@gnu.org>
7463
7464 * src/conflicts.c: entered into RCS
7465
7466 1994-01-02 Richard Stallman <rms@gnu.org>
7467
7468 * Makefile.in: *** empty log message ***
7469
7470 1993-11-21 Richard Stallman <rms@gnu.org>
7471
7472 * src/bison.s1: *** empty log message ***
7473
7474 1993-11-21 Richard Stallman <rms@gnu.org>
7475
7476 * doc/bison.texinfo: entered into RCS
7477
7478 * doc/bison.texinfo: *** empty log message ***
7479
7480 1993-11-21 Richard Stallman <rms@gnu.org>
7481
7482 * bison.simple: *** empty log message ***
7483
7484 1993-10-25 David J. MacKenzie <djm@gnu.org>
7485
7486 * doc/bison.texinfo: *** empty log message ***
7487
7488 1993-10-19 Richard Stallman <rms@gnu.org>
7489
7490 * src/bison.s1: *** empty log message ***
7491
7492 1993-10-19 Richard Stallman <rms@gnu.org>
7493
7494 * bison.simple: *** empty log message ***
7495
7496 1993-10-14 Richard Stallman <rms@gnu.org>
7497
7498 * src/bison.s1: *** empty log message ***
7499
7500 1993-10-14 Richard Stallman <rms@gnu.org>
7501
7502 * bison.simple: *** empty log message ***
7503
7504 1993-09-14 David J. MacKenzie <djm@gnu.org>
7505
7506 * doc/bison.texinfo: *** empty log message ***
7507
7508 1993-09-13 Noah Friedman <friedman@gnu.org>
7509
7510 * Makefile.in: *** empty log message ***
7511
7512 1993-09-10 Richard Stallman <rms@gnu.org>
7513
7514 * src/conflicts.c: *** empty log message ***
7515
7516 * src/system.h: entered into RCS
7517
7518 1993-09-10 Richard Stallman <rms@gnu.org>
7519
7520 * doc/bison.1: entered into RCS
7521
7522 1993-09-06 Noah Friedman <friedman@gnu.org>
7523
7524 * src/version.c: entered into RCS
7525
7526 1993-09-06 Noah Friedman <friedman@gnu.org>
7527
7528 * Makefile.in: *** empty log message ***
7529
7530 1993-07-30 David J. MacKenzie <djm@gnu.org>
7531
7532 * Makefile.in: *** empty log message ***
7533
7534 1993-07-24 Richard Stallman <rms@gnu.org>
7535
7536 * src/bison.s1: *** empty log message ***
7537
7538 1993-07-24 Richard Stallman <rms@gnu.org>
7539
7540 * bison.simple: *** empty log message ***
7541
7542 1993-07-08 David J. MacKenzie <djm@gnu.org>
7543
7544 * Makefile.in: *** empty log message ***
7545
7546 1993-07-04 Richard Stallman <rms@gnu.org>
7547
7548 * src/bison.s1: *** empty log message ***
7549
7550 1993-07-04 Richard Stallman <rms@gnu.org>
7551
7552 * bison.simple: *** empty log message ***
7553
7554 1993-06-26 David J. MacKenzie <djm@gnu.org>
7555
7556 * src/getargs.c: entered into RCS
7557
7558 1993-06-26 David J. MacKenzie <djm@gnu.org>
7559
7560 * doc/bison.texinfo: *** empty log message ***
7561
7562 * doc/bison.1: New file.
7563
7564 1993-06-25 Richard Stallman <rms@gnu.org>
7565
7566 * src/getargs.c: New file.
7567
7568 1993-06-16 Richard Stallman <rms@gnu.org>
7569
7570 * src/bison.s1: *** empty log message ***
7571
7572 1993-06-16 Richard Stallman <rms@gnu.org>
7573
7574 * bison.simple: *** empty log message ***
7575
7576 1993-06-03 Richard Stallman <rms@gnu.org>
7577
7578 * src/bison.s1: New file.
7579
7580 1993-06-03 Richard Stallman <rms@gnu.org>
7581
7582 * doc/bison.texinfo: *** empty log message ***
7583
7584 1993-06-03 Richard Stallman <rms@gnu.org>
7585
7586 * bison.simple: New file.
7587
7588 1993-05-19 Richard Stallman <rms@gnu.org>
7589
7590 * doc/bison.texinfo: New file.
7591
7592 1993-05-07 Noah Friedman <friedman@gnu.org>
7593
7594 * Makefile.in: *** empty log message ***
7595
7596 1993-04-28 Noah Friedman <friedman@gnu.org>
7597
7598 * src/reader.c: *** empty log message ***
7599
7600 1993-04-23 Noah Friedman <friedman@gnu.org>
7601
7602 * src/alloc.h: entered into RCS
7603
7604 1993-04-20 David J. MacKenzie <djm@gnu.org>
7605
7606 * src/version.c: *** empty log message ***
7607
7608 * src/files.c, src/allocate.c:
7609 entered into RCS
7610
7611 * src/reader.c: *** empty log message ***
7612
7613 * src/lex.c: entered into RCS
7614
7615 * src/conflicts.c: New file.
7616
7617 * src/symtab.c: entered into RCS
7618
7619 * src/alloc.h: New file.
7620
7621 * src/LR0.c: entered into RCS
7622
7623 1993-04-18 Noah Friedman <friedman@gnu.org>
7624
7625 * src/reader.c: New file.
7626
7627 * src/version.c: *** empty log message ***
7628
7629 1993-04-18 Noah Friedman <friedman@gnu.org>
7630
7631 * Makefile.in: *** empty log message ***
7632
7633 1993-04-17 Noah Friedman <friedman@gnu.org>
7634
7635 * Makefile.in: *** empty log message ***
7636
7637 1993-04-15 Richard Stallman <rms@gnu.org>
7638
7639 * src/main.c, src/files.c:
7640 New file.
7641
7642 1993-04-15 Noah Friedman <friedman@gnu.org>
7643
7644 * configure.in: entered into RCS
7645
7646 * configure.in: *** empty log message ***
7647
7648 * configure.in: New file.
7649
7650 1993-04-14 Richard Stallman <rms@gnu.org>
7651
7652 * Makefile.in: New file.
7653
7654 1993-04-13 Richard Stallman <rms@gnu.org>
7655
7656 * src/version.c: New file.
7657
7658 1993-03-25 Richard Stallman <rms@gnu.org>
7659
7660 * src/output.c: entered into RCS
7661
7662 1992-09-25 Richard Stallman <rms@gnu.org>
7663
7664 * configure.bat: entered into RCS
7665
7666 1992-06-22 Richard Stallman <rms@gnu.org>
7667
7668 * src/vmsgetargs.c: entered into RCS
7669
7670 1992-06-22 Richard Stallman <rms@gnu.org>
7671
7672 * doc/bison.rnh: entered into RCS
7673
7674 1992-04-20 David J. MacKenzie <djm@gnu.org>
7675
7676 * README: entered into RCS
7677
7678 1992-01-22 Richard Stallman <rms@gnu.org>
7679
7680 * src/machine.h: entered into RCS
7681
7682 1991-12-21 Richard Stallman <rms@gnu.org>
7683
7684 * src/lalr.c, src/closure.c:
7685 entered into RCS
7686
7687 1991-12-20 Richard Stallman <rms@gnu.org>
7688
7689 * src/state.h: entered into RCS
7690
7691 1991-12-18 Richard Stallman <rms@gnu.org>
7692
7693 * src/print.c, src/nullable.c, src/derives.c:
7694 entered into RCS
7695
7696 1991-11-03 David J. MacKenzie <djm@gnu.org>
7697
7698 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
7699 entered into RCS
7700
7701 1988-09-09 Richard Stallman <rms@gnu.org>
7702
7703 * src/bison.hairy: entered into RCS
7704
7705 1987-12-16 Richard Stallman <rms@gnu.org>
7706
7707 * REFERENCES: entered into RCS
7708 -----
7709
7710 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
7711
7712 This file is part of GNU Autoconf.
7713
7714 GNU Autoconf is free software; you can redistribute it and/or modify
7715 it under the terms of the GNU General Public License as published by
7716 the Free Software Foundation; either version 2, or (at your option)
7717 any later version.
7718
7719 GNU Autoconf is distributed in the hope that it will be useful,
7720 but WITHOUT ANY WARRANTY; without even the implied warranty of
7721 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7722 GNU General Public License for more details.
7723
7724 You should have received a copy of the GNU General Public License
7725 along with autoconf; see the file COPYING. If not, write to
7726 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
7727 Boston, MA 02111-1307, USA.