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