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