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