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