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