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