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