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