1 2002-07-30 Akim Demaille <akim@epita.fr>
3 Normalize conflict related messages.
5 * src/complain.h, src/complain.c (warn, complain): New.
6 * src/conflicts.c (conflicts_print): Use them.
7 (conflict_report_yacc): New, extracted from...
8 (conflicts_print): here.
9 * tests/conflicts.at, tests/existing.at: Adjust.
11 2002-07-30 Akim Demaille <akim@epita.fr>
13 Report rules which are never reduced by the parser: those hidden
16 * src/LR0.c (save_reductions): Don't make the final state too
17 different: save its reduction (accept) instead of having a state
18 without any action (no shift or goto, no reduce).
19 Note: the final state is now a ``regular'' state, i.e., the
20 parsers now contain `reduce 0' as default reduction.
21 Nevertheless, since they decide to `accept' when yystate =
22 final_state, they still will not reduce rule 0.
23 * src/print.c (print_actions, print_reduction): Adjust.
24 * src/output.c (action_row): Track reduced rules.
25 (token_actions): Report rules never reduced.
26 * tests/conflicts.at, tests/regression.at: Adjust.
28 2002-07-30 Akim Demaille <akim@epita.fr>
30 `stage' was accidently included in a previous patch.
31 Initiate its autoconfiscation.
33 * configure.in: Look for malloc.h and sys/times.h.
34 * src/main.c (stage): Adjust.
35 Report only when trace_flag.
37 2002-07-29 Akim Demaille <akim@epita.fr>
39 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
41 (errs_t): symbol_t*, not symbol_number_t.
42 (reductions_t): rule_t*, not rule_number_t.
43 (FOR_EACH_SHIFT): New.
44 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
45 * src/print.c, src/print_graph.c: Adjust.
47 2002-07-29 Akim Demaille <akim@epita.fr>
49 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
51 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
52 (endtoken, accept): these.
53 * src/reader.c (reader): Set endtoken's default tag to "$end".
54 Set undeftoken's tag to "$undefined" instead of "$undefined.".
55 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
58 2002-07-29 Akim Demaille <akim@epita.fr>
60 * src/reduce.c (reduce_grammar): When the language is empty,
61 complain about the start symbol, not the axiom.
63 * tests/reduce.at (Empty Language): New.
65 2002-07-26 Akim Demaille <akim@epita.fr>
67 * src/reader.h, src/reader.c (gram_error): ... can't get
68 yycontrol without making too strong assumptions on the parser
70 * src/output.c (prepare_tokens): Use the real 0th value of
71 token_translations instead of `0'.
72 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
74 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
75 for the time being: %locations ought to provide it to yyerror.
77 2002-07-25 Akim Demaille <akim@epita.fr>
79 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
80 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
81 * tests/regression.at (Web2c Actions): Adjust.
83 2002-07-25 Akim Demaille <akim@epita.fr>
85 Stop storing rules from 1 to nrules + 1.
87 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
88 * src/nullable.c, src/output.c, src/print.c, src/reader.c
89 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
90 Iterate from 0 to nrules.
91 Use rule_number_as_item_number and item_number_as_rule_number.
92 Adjust to `derive' now containing possibly 0.
93 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
94 Handle the `- 1' part in rule numbers from/to item numbers.
95 * src/conflicts.c (log_resolution): Fix the message which reversed
97 * src/output.c (action_row): Initialize default_rule to -1.
98 (token_actions): Adjust.
99 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
101 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
103 2002-07-25 Akim Demaille <akim@epita.fr>
105 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
106 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
107 (b4_c_knr_arg_decl): New.
108 * data/yacc.c: Use it to define yysymprint, yydestruct, and
109 yyreport_parse_error.
111 2002-07-25 Akim Demaille <akim@epita.fr>
113 * data/yacc.c (yyreport_parse_error): New, extracted from...
115 (yydestruct, yysymprint): Move above yyparse.
118 2002-07-25 Akim Demaille <akim@epita.fr>
120 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
122 (b4_sint_type, b4_uint_type): these.
123 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
124 * tests/regression.at (Web2c Actions): Adjust.
126 2002-07-25 Akim Demaille <akim@epita.fr>
128 * src/gram.h (TIEM_NUMBER_MAX): New.
129 (item_number_of_rule_number, rule_number_of_item_number): Rename
131 (rule_number_as_item_number, item_number_as_rule_number): these.
133 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
134 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
135 (symbol_number_to_vector_number): New.
136 (order): Of vector_number_t* type.
137 (base_t, BASE_MAX, BASE_MIN): New.
138 (froms, tos, width, pos, check): Of base_t type.
139 (action_number_t, ACTION_MIN, ACTION_MAX): New.
140 (actrow): Of action_number_t type.
141 (conflrow): Of unsigned int type.
142 (table_ninf, base_ninf): New.
143 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
144 (muscle_insert_int_table, muscle_insert_base_table)
145 (muscle_insert_rule_number_table): New.
146 (prepare_tokens): Output `toknum' as int_table.
147 (action_row): Returns a rule_number_t.
148 Use ACTION_MIN, not SHRT_MIN.
149 (token_actions): yydefact is rule_number_t*.
150 (table_ninf_remap): New.
151 (pack_table): Use it for `base' and `table'.
152 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
154 (YYPACT_NINF, YYTABLE_NINF): these.
155 (yypact, yytable): Compute their types instead of hard-coded
157 * tests/regression.at (Web2c Actions): Adjust.
159 2002-07-19 Akim Demaille <akim@epita.fr>
161 * src/scan-gram.l (id): Can start with an underscore.
163 2002-07-16 Akim Demaille <akim@epita.fr>
165 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
166 Adjust all former `associativity' dependencies.
167 * src/symtab.c (symbol_new): Default associativity is `undef', not
169 (symbol_check_alias_consistence): Adjust.
171 2002-07-09 Akim Demaille <akim@epita.fr>
173 * doc/bison.texinfo: Properly set the ``header'' part.
174 Use @dircategory ``GNU programming tools'' as per Texinfo's
178 2002-07-09 Akim Demaille <akim@epita.fr>
180 * lib/quotearg.h: Protect against multiple inclusions.
181 * src/location.h (location_t): Add a `file' member.
182 (LOCATION_RESET, LOCATION_PRINT): Adjust.
183 * src/complain.c (warn_at, complain_at, fatal_at): Drop
184 `error_one_per_line' support.
186 2002-07-09 Akim Demaille <akim@epita.fr>
188 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
189 * src/reader.c (lineno): Remove.
190 Adjust all dependencies.
191 (get_merge_function): Take a location and use complain_at.
192 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
193 * tests/regression.at (Invalid inputs, Mixing %token styles):
196 2002-07-09 Akim Demaille <akim@epita.fr>
198 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
199 recovery rule, and forbid extensions when --yacc.
200 (gram_error): Use complain_at.
201 * src/reader.c (reader): Exit if there were parse errors.
203 2002-07-09 Akim Demaille <akim@epita.fr>
205 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
206 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
207 Reported by R Blake <blakers@mac.com>.
209 2002-07-09 Akim Demaille <akim@epita.fr>
211 * data/yacc.c: Output the copyright notive in the header.
213 2002-07-03 Akim Demaille <akim@epita.fr>
215 * src/output.c (froms, tos): Are state_number_t.
216 (save_column): sp, sp1, and sp2 are state_number_t.
217 (prepare): Rename `final' as `final_state_number', `nnts' as
218 `nterms_number', `nrules' as `rules_number', `nstates' as
219 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
221 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
222 * data/lalr1.cc (nsym_): Remove, unused.
224 2002-07-03 Akim Demaille <akim@epita.fr>
226 * src/lalr.h, src/lalr.c (goto_number_t): New.
227 * src/lalr.c (goto_list_t): New.
229 * src/nullable.c (rule_list_t): New.
231 * src/types.h: Remove.
233 2002-07-03 Akim Demaille <akim@epita.fr>
235 * src/closure.c (print_fderives): Use rule_rhs_print.
236 * src/derives.c (print_derives): Use rule_rhs_print.
237 (rule_list_t): New, replaces `shorts'.
238 (set_derives): Add comments.
239 * tests/sets.at (Nullable, Firsts): Adjust.
241 2002-07-03 Akim Demaille <akim@epita.fr>
243 * src/output.c (prepare_actions): Free `tally' and `width'.
244 (prepare_actions): Allocate and free `order'.
245 * src/symtab.c (symbols_free): Free `symbols'.
246 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
247 * src/output.c (m4_invoke): Move to...
248 * src/scan-skel.l: here.
249 (<<EOF>>): Close yyout, and free its name.
251 2002-07-03 Akim Demaille <akim@epita.fr>
253 Fix some memory leaks, and fix a bug: state 0 was examined twice.
255 * src/LR0.c (new_state): Merge into...
256 (state_list_append): this.
257 (new_states): Merge into...
258 (generate_states): here.
259 (set_states): Don't ensure a proper `errs' state member here, do it...
260 * src/conflicts.c (conflicts_solve): here.
261 * src/state.h, src/state.c: Comment changes.
262 (state_t): Rename member `shifts' as `transitions'.
263 Adjust all dependencies.
264 (errs_new): For consistency, also take the values as argument.
266 (state_errs_set): New.
267 (state_reductions_set, state_transitions_set): Assert that no
268 previous value was assigned.
270 (states_free): Use it.
271 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
272 temporary storage: use `errs' and `nerrs' as elsewhere.
273 (set_conflicts): Allocate and free this `errs'.
275 2002-07-02 Akim Demaille <akim@epita.fr>
277 * lib/libiberty.h: New.
278 * lib: Update the bitset implementation from upstream.
279 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
280 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
281 * src/main.c: Adjust bitset stats calls.
283 2002-07-01 Paul Eggert <eggert@twinsun.com>
285 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
286 char, so that negative chars don't collide with $.
288 2002-06-30 Akim Demaille <akim@epita.fr>
290 Have the GLR tests be `warning' checked, and fix the warnings.
292 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
293 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
294 (yyremoveDeletes): `yyi' and `yyj' are size_t.
295 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
296 (yyaddDeferredAction): static.
297 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
298 (yyreportParseError): yyprefix is const.
299 yytokenp is used only when verbose.
300 (yy__GNUC__): Replace with __GNUC__.
301 (yypdumpstack): yyi is size_t.
302 (yypreference): Un-yy local variables and arguments, to avoid
303 clashes with `yyr1'. Anyway, we are not in the user name space.
304 (yytname_size): be an int, as is compared with ints.
305 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
307 * tests/cxx-gram.at: Use quotation to protect $1.
308 Use AT_COMPILE to enable warnings hunts.
309 Prototype yylex and yyerror.
311 Include `string.h', not `strings.h'.
312 Produce and prototype stmtMerge only when used.
313 yylex takes a location.
315 2002-06-30 Akim Demaille <akim@epita.fr>
317 We spend a lot of time in quotearg, in particular when --verbose.
319 * src/symtab.c (symbol_get): Store a quoted version of the key.
320 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
323 2002-06-30 Akim Demaille <akim@epita.fr>
325 * src/state.h (reductions_t): Rename member `nreds' as num.
326 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
327 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
329 2002-06-30 Akim Demaille <akim@epita.fr>
331 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
332 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
333 (shifts_to): Rename as...
334 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
335 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
336 (TRANSITION_IS_DISABLED, transitions_to): these.
338 2002-06-30 Akim Demaille <akim@epita.fr>
340 * src/print.c (print_shifts, print_gotos): Merge into...
341 (print_transitions): this.
342 (print_transitions, print_errs, print_reductions): Align the
344 (print_core, print_transitions, print_errs, print_state,
345 print_grammar): Output empty lines separator before, not after.
346 (state_default_rule_compute): Rename as...
347 (state_default_rule): this.
348 * tests/conflicts.at (Defaulted Conflicted Reduction),
349 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
350 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
352 2002-06-30 Akim Demaille <akim@epita.fr>
354 Display items as we display rules.
356 * src/gram.h, src/gram.c (rule_lhs_print): New.
357 * src/gram.c (grammar_rules_partial_print): Use it.
358 * src/print.c (print_core): Likewise.
359 * tests/conflicts.at (Defaulted Conflicted Reduction),
360 (Unresolved SR Conflicts): Adjust.
361 (Unresolved SR Conflicts): Adjust and rename as...
362 (Resolved SR Conflicts): this, as was meant.
363 * tests/regression.at (Web2c Report): Adjust.
365 2002-06-30 Akim Demaille <akim@epita.fr>
367 * src/print.c (state_default_rule_compute): New, extracted from...
368 (print_reductions): here.
369 Pessimize, but clarify the code.
370 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
372 2002-06-30 Akim Demaille <akim@epita.fr>
374 * src/output.c (action_row): Let default_rule be always a rule
377 2002-06-30 Akim Demaille <akim@epita.fr>
379 * src/closure.c (print_firsts, print_fderives, closure):
381 * src/lalr.c (lookaheads_print): Likewise.
382 * src/state.c (state_rule_lookaheads_print): Likewise.
383 * src/print_graph.c (print_core): Likewise.
384 * src/print.c (print_reductions): Likewise.
385 * src/output.c (action_row): Likewise.
386 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
388 2002-06-30 Akim Demaille <akim@epita.fr>
390 * src/print_graph.c: Use report_flag.
392 2002-06-30 Akim Demaille <akim@epita.fr>
394 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
396 * src/relation.h, src/relation.c (traverse, relation_digraph)
397 (relation_print, relation_transpose): New.
399 2002-06-30 Akim Demaille <akim@epita.fr>
401 * src/state.h, src/state.c (shifts_to): New.
402 * src/lalr.c (build_relations): Use it.
404 2002-06-30 Akim Demaille <akim@epita.fr>
406 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
407 (item_number_of_rule_number, rule_number_of_item_number): New.
408 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
409 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
410 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
412 Much remains to be done, in particular wrt `shorts' from types.h.
414 2002-06-30 Akim Demaille <akim@epita.fr>
416 * src/symtab.c (symbol_new): Initialize the `printer' member.
418 2002-06-30 Akim Demaille <akim@epita.fr>
420 * src/LR0.c (save_reductions): Remove, replaced by...
421 * src/state.h, src/state.c (state_reductions_set): New.
422 (reductions, errs): Rename as...
423 (reductions_t, errs_t): these.
424 Adjust all dependencies.
426 2002-06-30 Akim Demaille <akim@epita.fr>
428 * src/LR0.c (state_list_t, state_list_append): New.
429 (first_state, last_state): Now symbol_list_t.
430 (this_state): Remove.
431 (new_itemsets, append_states, save_reductions): Take a state_t as
433 (set_states, generate_states): Adjust.
434 (save_shifts): Remove, replaced by...
435 * src/state.h, src/state.c (state_shifts_set): New.
436 (shifts): Rename as...
438 Adjust all dependencies.
439 * src/state.h (state_t): Remove the `next' member.
441 2002-06-30 Akim Demaille <akim@epita.fr>
443 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
446 2002-06-30 Akim Demaille <akim@epita.fr>
448 Use hash.h for the state hash table.
450 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
451 (allocate_storage): Use state_hash_new.
452 (free_storage): Use state_hash_free.
453 (new_state, get_state): Adjust.
454 * src/lalr.h, src/lalr.c (states): Move to...
455 * src/states.h (state_t): Remove the `link' member, no longer
457 * src/states.h, src/states.c: here.
458 (state_hash_new, state_hash_free, state_hash_lookup)
459 (state_hash_insert, states_free): New.
460 * src/states.c (state_table, state_compare, state_hash): New.
461 * src/output.c (output_actions): Do not free states now, since we
462 still need to know the final_state number in `prepare', called
464 * src/main.c (main): here: call states_free after `output'.
466 2002-06-30 Akim Demaille <akim@epita.fr>
468 * src/state.h, src/state.c (state_new): New, extracted from...
469 * src/LR0.c (new_state): here.
470 * src/state.h (STATE_ALLOC): Move to...
472 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
473 * src/state.h, src/state.c: here.
475 2002-06-30 Akim Demaille <akim@epita.fr>
477 * src/reader.c (gensym): Rename as...
478 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
479 (getsym): Rename as...
482 2002-06-30 Akim Demaille <akim@epita.fr>
484 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
485 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
486 * src/output.c, src/print.c, src/print_graph.c: Propagate.
487 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
489 2002-06-30 Akim Demaille <akim@epita.fr>
491 Make the test suite pass with warnings checked.
493 * tests/actions.at (Printers and Destructors): Improve.
494 Avoid unsigned vs. signed issues.
495 * tests/calc.at: Don't exercise the scanner here, do it...
496 * tests/input.at (Torturing the Scanner): here.
498 2002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
500 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
501 reorganize first lines parallel to yacc.c.
503 2002-06-28 Akim Demaille <akim@epita.fr>
505 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
506 (b4_token_enum, b4_token_defines): New, factored from...
507 * data/lalr1.cc, data/yacc.c, glr.c: here.
509 2002-06-28 Akim Demaille <akim@epita.fr>
511 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
513 * src/output.c (merger_output): static.
515 2002-06-28 Akim Demaille <akim@epita.fr>
517 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
518 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
520 * src/output.c (save_row): Initialize all the variables to pacify GCC.
522 2002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
524 Accumulated changelog for new GLR parsing features.
526 * src/conflicts.c (count_total_conflicts): Change name to
527 conflicts_total_count.
528 * src/conflicts.h: Ditto.
529 * src/output.c (token_actions): Use the new name.
530 (output_conflicts): Change conflp => conflict_list_heads, and
531 confl => conflict_list for better readability.
532 * data/glr.c: Use the new names.
533 * NEWS: Add self to GLR announcement.
535 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
537 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
540 * data/bison.glr: Change name to glr.c
541 * data/glr.c: Renamed from bison.glr.
542 * data/Makefile.am: Add glr.c
546 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
547 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
549 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
551 * data/bison.glr: Be sure to restore the
552 current #line when returning to the skeleton contents after having
553 exposed the input file's #line.
555 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
557 * data/bison.glr: Bring up to date with changes to bison.simple.
559 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
561 * data/bison.glr: Correct definitions that use b4_prefix.
562 Various reformatting.
563 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
564 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
565 yytokenp argument; now part of stack.
566 (yychar): Define to behave as documented.
569 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
571 * src/reader.h: Add declaration for free_merger_functions.
573 * src/reader.c (merge_functions): New variable.
574 (get_merge_function): New function.
575 (free_merger_functions): New function.
576 (readgram): Check for %prec that is not followed by a symbol.
577 Handle %dprec and %merge declarations.
578 (packgram): Initialize dprec and merger fields in rules array.
580 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
581 conflict_list_cnt, conflict_list_free): New variables.
582 (table_grow): Also grow conflict_table.
583 (prepare_rules): Output dprec and merger tables.
584 (conflict_row): New function.
585 (action_row): Output conflict lists for GLR parser. Don't use
586 default reduction in conflicted states for GLR parser so that there
587 are spaces for the conflict lists.
588 (save_row): Also save conflict information.
589 (token_actions): Allocate conflict list.
590 (merger_output): New function.
591 (pack_vector): Pack conflict table, too.
592 (output_conflicts): New function to output yyconflp and yyconfl.
593 (output_check): Allocate conflict_tos.
594 (output_actions): Output conflict tables, also.
595 (output_skeleton): Output b4_mergers definition.
596 (prepare): Output b4_max_rhs_length definition.
597 Use 'bison.glr' as default skeleton for GLR parsers.
599 * src/gram.c (glr_parser): New flag.
600 (grammar_free): Call free_merger_functions.
602 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
603 all pairs of conflicting reductions, rather than just all tokens
604 causing conflicts. Needed to size conflict tables.
605 (conflicts_output): Modify call to count_rr_conflicts for new
607 (conflicts_print): Ditto.
608 (count_total_conflicts): New function.
610 * src/reader.h (merger_list): New type.
611 (merge_functions): New variable.
613 * src/lex.h (tok_dprec, tok_merge): New token types.
615 * src/gram.h (rule_s): Add dprec and merger fields.
616 (glr_parser): New flag.
618 * src/conflicts.h (count_total_conflicts): New function.
620 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
622 * doc/bison.texinfo (Generalized LR Parsing): New section.
623 (GLR Parsers): New section.
624 (Language and Grammar): Mention GLR parsing.
625 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
626 Correct typo ("tge" -> "the").
628 * data/bison.glr: New skeleton for GLR parsing.
630 * tests/cxx-gram.at: New tests for GLR parsing.
632 * tests/testsuite.at: Include cxx-gram.at.
634 * tests/Makefile.am: Add cxx-gram.at.
638 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
640 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
642 2002-06-27 Akim Demaille <akim@epita.fr>
644 * src/options.h, src/options.c: Remove.
645 * src/getargs.c (short_options, long_options): New.
647 2002-06-27 Akim Demaille <akim@epita.fr>
649 * data/bison.simple, data/bison.c++: Rename as...
650 * data/yacc.c, data/lalr1.cc: these.
651 * doc/bison.texinfo (Environment Variables): Remove.
653 2002-06-25 Raja R Harinath <harinath@cs.umn.edu>
655 * src/getargs.c (report_argmatch): Initialize strtok().
657 2002-06-20 Akim Demaille <akim@epita.fr>
659 * data/bison.simple (b4_symbol_actions): New, replaces...
660 (b4_symbol_destructor, b4_symbol_printer): these.
661 (yysymprint): Be sure to call YYPRINT only for tokens, and using
664 2002-06-20 Akim Demaille <akim@epita.fr>
666 * data/bison.simple (yydestructor): Rename as...
669 2002-06-20 Akim Demaille <akim@epita.fr>
671 * src/symtab.h, src/symtab.c (symbol_type_set)
672 (symbol_destructor_set, symbol_precedence_set): The location is
676 2002-06-20 Akim Demaille <akim@epita.fr>
678 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
680 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
682 * src/symtab.h, src/symtab.c (symbol_class_set)
683 (symbol_user_token_number_set): Likewise.
686 * tests/input.at (Type Clashes): Adjust.
688 2002-06-20 Akim Demaille <akim@epita.fr>
690 * data/bison.simple (YYLEX): Fix the declaration when
693 2002-06-20 Akim Demaille <akim@epita.fr>
695 * data/bison.simple (yysymprint): Don't print the token number,
697 * tests/actions.at (Destructors): Rename as...
698 (Printers and Destructors): this.
699 Also exercise %printer.
701 2002-06-20 Akim Demaille <akim@epita.fr>
703 * data/bison.simple (YYDSYMPRINT): New.
704 Use it to remove many of the #if YYDEBUG/if (yydebug).
706 2002-06-20 Akim Demaille <akim@epita.fr>
708 * src/symtab.h, src/symtab.c (symbol_t): printer and
709 printer_location are new members.
710 (symbol_printer_set): New.
711 * src/parse-gram.y (PERCENT_PRINTER): New token.
712 Handle its associated rule.
713 * src/scan-gram.l: Adjust.
714 (handle_destructor_at, handle_destructor_dollar): Rename as...
715 (handle_symbol_code_at, handle_symbol_code_dollar): these.
716 * src/output.c (symbol_printers_output): New.
717 (output_skeleton): Call it.
718 * data/bison.simple (yysymprint): New. Cannot be named yyprint
719 since there are already many grammar files with a user `yyprint'.
720 Replace the calls to YYPRINT to calls to yysymprint.
721 * tests/calc.at: Adjust.
722 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
723 taking advantage of parser very internal details (stack size!).
725 2002-06-20 Akim Demaille <akim@epita.fr>
727 * src/scan-gram.l: Complete the scanner with the missing patterns
729 Use `quote' and `symbol_tag_get' where appropriate.
731 2002-06-19 Akim Demaille <akim@epita.fr>
733 * tests/actions.at (Destructors): Augment to test locations.
734 * data/bison.simple (yydestructor): Pass it the current location
735 if locations are enabled.
736 Prototype only when __STDC__ or C++.
737 Change the argument names to move into the yy name space: there is
740 2002-06-19 Akim Demaille <akim@epita.fr>
742 * data/bison.simple (b4_pure_if): New.
743 Use it instead of #ifdef YYPURE.
745 2002-06-19 Akim Demaille <akim@epita.fr>
747 * data/bison.simple (b4_location_if): New.
748 Use it instead of #ifdef YYLSP_NEEDED.
750 2002-06-19 Akim Demaille <akim@epita.fr>
752 Prepare @$ in %destructor, but currently don't bind it in the
753 skeleton, as %location use is not cleaned up yet.
755 * src/scan-gram.l (handle_dollar, handle_destructor_at)
756 (handle_action_at): New.
757 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
758 a braced_code_t and a location as additional arguments.
759 (handle_destructor_dollar): Instead of requiring `b4_eval', just
760 unquote one when outputting `b4_dollar_dollar'.
762 * data/bison.simple (b4_eval): Remove.
763 (b4_symbol_destructor): Adjust.
764 * tests/input.at (Invalid @n): Adjust.
766 2002-06-19 Zack Weinberg <zack@codesourcery.com>
768 * doc/bison.texinfo: Document ability to have multiple
771 2002-06-18 Akim Demaille <akim@epita.fr>
773 * src/files.c (compute_base_names): When computing the output file
774 names from the input file name, strip the directory part.
776 2002-06-18 Akim Demaille <akim@epita.fr>
778 * data/bison.simple.new: Comment changes.
779 Reported by Andreas Schwab.
781 2002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
783 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
784 there are no `label `yyoverflowlab' defined but not used' warnings
785 when yyoverflow is defined.
787 2002-06-18 Akim Demaille <akim@epita.fr>
789 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
791 (symbol_destructor_set): Adjust.
792 * src/output.c (symbol_destructors_output): Output the destructor
794 Output the symbol name.
795 * data/bison.simple (b4_symbol_destructor): Adjust.
797 2002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
798 and Akim Demaille <akim@epita.fr>
800 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
801 what's left on the stack when the error recovery hits EOF.
802 * tests/actions.at (Destructors): Complete to exercise this case.
804 2002-06-17 Akim Demaille <akim@epita.fr>
806 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
807 arguments is really empty, not only equal to `[]'.
808 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
810 (symbol_destructor_set): New.
811 * src/output.c (symbol_destructors_output): New.
812 * src/reader.h (brace_code_t, current_braced_code): New.
813 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
814 (handle_dollar): Rename as...
815 (handle_action_dollar): this.
816 (handle_destructor_dollar): New.
817 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
818 (grammar_declaration): Use it.
819 * data/bison.simple (yystos): Is always defined.
821 * tests/actions.at (Destructors): New.
822 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
824 2002-06-17 Akim Demaille <akim@epita.fr>
826 * src/symlist.h, src/symlist.c (symbol_list_length): New.
827 * src/scan-gram.l (handle_dollar, handle_at): Compute the
828 rule_length only when needed.
829 * src/output.c (actions_output, token_definitions_output): Output
831 * src/symtab.c: Don't access directly to the symbol tag, use
833 * src/parse-gram.y: Use symbol_list_free.
835 2002-06-17 Akim Demaille <akim@epita.fr>
837 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
838 (symbol_list_prepend, get_type_name): Move to...
839 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
840 (symbol_list_prepend, symbol_list_n_type_name_get): here.
842 (symbol_list_free): New.
843 * src/scan-gram.l (handle_dollar): Takes a location.
844 * tests/input.at (Invalid $n): Adjust.
846 2002-06-17 Akim Demaille <akim@epita.fr>
848 * src/reader.h, src/reader.c (symbol_list_new): Export it.
849 (symbol_list_prepend): New.
850 * src/parse-gram.y (%union): `list' is a new member.
851 (symbols.1): New, replaces...
852 (terms_to_prec.1, nterms_to_type.1): these.
853 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
854 Take a location as additional argument.
857 2002-06-15 Akim Demaille <akim@epita.fr>
859 * src/parse-gram.y: Move %token in the declaration section so that
860 we don't depend upon CVS Bison.
862 2002-06-15 Akim Demaille <akim@epita.fr>
864 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
865 * src/print.c (print_core): Use it.
867 2002-06-15 Akim Demaille <akim@epita.fr>
869 * src/conflicts.c (log_resolution): Accept the rule involved in
870 the sr conflicts instead of the lookahead number that points to
872 (flush_reduce): Accept the current lookahead vector as argument,
873 instead of the index in LA.
874 (resolve_sr_conflict): Accept the current number of lookahead
875 bitset to consider for the STATE, instead of the index in LA.
876 (set_conflicts): Adjust.
877 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
879 2002-06-15 Akim Demaille <akim@epita.fr>
881 * src/state.h (state_t): Replace the `lookaheadsp' member, a
882 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
883 Adjust all dependencies.
884 * src/lalr.c (initialize_lookaheads): Split into...
885 (states_lookaheads_count, states_lookaheads_initialize): these.
888 2002-06-15 Akim Demaille <akim@epita.fr>
890 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
892 (grammar_rules_print): here.
893 * src/reduce.c (reduce_output): Use it.
894 * tests/reduce.at (Useless Rules, Reduced Automaton)
895 (Underivable Rules): Adjust.
897 2002-06-15 Akim Demaille <akim@epita.fr>
899 Copy BYacc's nice way to report the grammar.
901 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
903 Don't print the rules' location, it is confusing and useless.
904 (rule_print): Use grammar_rhs_print.
905 * src/print.c (print_grammar): Use grammar_rules_print.
907 2002-06-15 Akim Demaille <akim@epita.fr>
909 Complete and rationalize `useless thing' warnings.
911 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
912 (symbol_tag_print): New.
913 Use them everywhere in place of accessing directly the tag member.
914 * src/gram.h, src/gram.c (rule_print): New.
915 Use it where a rule used to be printed `by hand'.
916 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
917 (reduce_grammar_tables): Report the useless rules.
918 (reduce_print): Useless things are a warning, not an error.
920 * tests/reduce.at (Useless Nonterminals, Useless Rules):
921 (Reduced Automaton, Underivable Rules): Adjust.
922 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
923 * tests/conflicts.at (Unresolved SR Conflicts)
924 (Solved SR Conflicts): Adjust.
926 2002-06-15 Akim Demaille <akim@epita.fr>
928 Let symbols have a location.
930 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
933 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
934 Use location_t, not int.
935 * src/symtab.c (symbol_check_defined): Take advantage of the
937 * tests/regression.at (Invalid inputs): Adjust.
939 2002-06-15 Akim Demaille <akim@epita.fr>
941 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
942 (input): Don't try to initialize yylloc here, do it in the
944 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
945 * src/gram.h (rule_t): Change line and action_line into location
946 and action_location, of location_t type.
947 Adjust all dependencies.
948 * src/location.h, src/location.c (empty_location): New.
949 * src/reader.h, src/reader.c (grammar_start_symbol_set)
950 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
951 (grammar_current_rule_symbol_append)
952 (grammar_current_rule_action_append): Expect a location as argument.
953 * src/reader.c (grammar_midrule_action): Adjust to attach an
954 action's location as dummy symbol location.
955 * src/symtab.h, src/symtab.c (startsymbol_location): New.
956 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
959 2002-06-14 Akim Demaille <akim@epita.fr>
961 Grammar declarations may be found in the grammar section.
963 * src/parse-gram.y (rules_or_grammar_declaration): New.
964 (declarations): Each declaration may end with a semicolon, not
966 (grammar_declaration): `"%union"'.
967 (grammar): Branch to rules_or_grammar_declaration.
969 2002-06-14 Akim Demaille <akim@epita.fr>
971 * src/main.c (main): Invoke scanner_free.
973 2002-06-14 Akim Demaille <akim@epita.fr>
975 * src/output.c (m4_invoke): Extracted from...
976 (output_skeleton): here.
979 2002-06-14 Akim Demaille <akim@epita.fr>
981 * src/parse-gram.y (directives, directive, gram)
982 (grammar_directives, precedence_directives, precedence_directive):
984 (declarations, declaration, grammar, grammar_declaration)
985 (precedence_declaration, precedence_declarator): these.
986 (symbol_declaration): New.
988 2002-06-14 Akim Demaille <akim@epita.fr>
990 * src/files.c (action_obstack): Remove, unused.
991 (output_obstack): Remove it, and all its dependencies, as it is no
993 * src/reader.c (epilogue_set): Build the epilogue in the
995 * src/output.h, src/output.c (muscle_obstack): Move to...
996 * src/muscle_tab.h, src/muscle_tab.h: here.
997 (muscle_init): Initialize muscle_obstack.
999 * src/main.c (main): Call it.
1001 2002-06-14 Akim Demaille <akim@epita.fr>
1003 * src/location.h: New, extracted from...
1004 * src/reader.h: here.
1005 * src/Makefile.am (noinst_HEADERS): Merge into
1006 (bison_SOURCES): this.
1008 * src/parse-gram.y: Use location_t instead of Bison's.
1009 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
1010 Use location_t instead of ints.
1012 2002-06-14 Akim Demaille <akim@epita.fr>
1014 * data/bison.simple, data/bison.c++: Be sure to restore the
1015 current #line when returning to the skeleton contents after having
1016 exposed the input file's #line.
1018 2002-06-12 Akim Demaille <akim@epita.fr>
1020 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
1022 * tests/actions.at (Exotic Dollars): New.
1024 2002-06-12 Akim Demaille <akim@epita.fr>
1026 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
1028 * tests/input.at (Torturing the Scanner): New.
1030 2002-06-11 Akim Demaille <akim@epita.fr>
1032 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
1033 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
1034 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
1035 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
1036 * src/reader.c (reader): Use it.
1038 2002-06-11 Akim Demaille <akim@epita.fr>
1040 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
1042 (scanner_last_string_free): New.
1044 2002-06-11 Akim Demaille <akim@epita.fr>
1046 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
1047 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
1048 (last_string, YY_OBS_FREE): New.
1049 Use them when returning an ID.
1051 2002-06-11 Akim Demaille <akim@epita.fr>
1053 Have Bison grammars parsed by a Bison grammar.
1055 * src/reader.c, src/reader.h (prologue_augment): New.
1056 * src/reader.c (copy_definition): Remove.
1058 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
1059 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
1060 (grammar_current_rule_prec_set, grammar_current_rule_check)
1061 (grammar_current_rule_symbol_append)
1062 (grammar_current_rule_action_append): Export.
1063 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
1064 (symbol_list_action_append): Remove.
1065 Hook the routines from reader.
1066 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
1067 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
1069 * src/reader.c (read_declarations): Remove, unused.
1071 * src/parse-gram.y: Handle the epilogue.
1072 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
1073 (grammar_start_symbol_set): this.
1074 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
1075 * src/reader.c (readgram): Remove, unused.
1076 (reader): Adjust to insert eoftoken and axiom where appropriate.
1078 * src/reader.c (copy_dollar): Replace with...
1079 * src/scan-gram.h (handle_dollar): this.
1080 * src/parse-gram.y: Remove `%thong'.
1082 * src/reader.c (copy_at): Replace with...
1083 * src/scan-gram.h (handle_at): this.
1085 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
1088 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
1091 * src/reader.h, src/reader.c (grammar_rule_end): New.
1093 * src/parse.y (current_type, current_class): New.
1094 Implement `%nterm', `%token' support.
1095 Merge `%term' into `%token'.
1096 (string_as_id): New.
1097 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
1100 * src/parse-gram.y: Be sure to handle properly the beginning of
1103 * src/parse-gram.y: Handle %type.
1104 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
1106 * src/parse-gram.y: More directives support.
1107 * src/options.c: No longer handle source directives.
1109 * src/parse-gram.y: Fix %output.
1111 * src/parse-gram.y: Handle %union.
1112 Use the prologue locations.
1113 * src/reader.c (parse_union_decl): Remove.
1115 * src/reader.h, src/reader.c (epilogue_set): New.
1116 * src/parse-gram.y: Use it.
1118 * data/bison.simple, data/bison.c++: b4_stype is now either not
1119 defined, then default to int, or to the contents of %union,
1120 without `union' itself.
1122 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
1124 * src/output.c (actions_output): Don't output braces, as they are
1125 already handled by the scanner.
1127 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
1128 characters to themselves.
1130 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
1131 that the epilogue has a proper #line.
1133 * src/parse-gram.y: Handle precedence/associativity.
1135 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
1137 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
1138 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
1139 at all to define terminals that cannot be emitted.
1141 * src/scan-gram.l: Escape M4 characters.
1143 * src/scan-gram.l: Working properly with escapes in user
1146 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
1147 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
1149 Use more modest sizes, as for the time being the parser does not
1150 release memory, and therefore the process swallows a huge amount
1153 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
1154 stricter %token grammar.
1156 * src/symtab.h (associativity): Add `undef_assoc'.
1157 (symbol_precedence_set): Do nothing when passed an undef_assoc.
1158 * src/symtab.c (symbol_check_alias_consistence): Adjust.
1160 * tests/regression.at (Invalid %directive): Remove, as it is now
1162 (Invalid inputs): Adjust to the new error messages.
1163 (Token definitions): The new grammar doesn't allow too many
1166 * src/lex.h, src/lex.c: Remove.
1167 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
1168 (copy_character, copy_string2, copy_string, copy_identifier)
1169 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
1170 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
1171 (parse_action): Remove.
1172 * po/POTFILES.in: Adjust.
1174 2002-06-11 Akim Demaille <akim@epita.fr>
1176 * src/reader.c (parse_action): Don't store directly into the
1177 rule's action member: return the action as a string.
1178 Don't require `rule_length' as an argument: compute it.
1179 (grammar_current_rule_symbol_append)
1180 (grammar_current_rule_action_append): New, eved out from
1182 Remove `action_flag', `rulelength', unused now.
1184 2002-06-11 Akim Demaille <akim@epita.fr>
1186 * src/reader.c (grammar_current_rule_prec_set).
1187 (grammar_current_rule_check): New, eved out from...
1189 Remove `xaction', `first_rhs': useless.
1190 * tests/input.at (Type clashes): New.
1191 * tests/existing.at (GNU Cim Grammar): Adjust.
1193 2002-06-11 Akim Demaille <akim@epita.fr>
1195 * src/reader.c (grammar_midrule_action): New, Eved out from
1198 2002-06-11 Akim Demaille <akim@epita.fr>
1200 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
1202 (readgram): Use them as replacement of inlined code, crule and
1205 2002-06-11 Akim Demaille <akim@epita.fr>
1207 * src/reader.c (grammar_end, grammar_symbol_append): New.
1208 (readgram): Use them.
1209 Make the use of `p' as local as possible.
1211 2002-06-10 Akim Demaille <akim@epita.fr>
1213 GCJ's parser requires the tokens to be defined before the prologue.
1215 * data/bison.simple: Output the token definition before the user's
1217 * tests/regression.at (Braces parsing, Duplicate string)
1218 (Mixing %token styles): Check the output from bison.
1219 (Early token definitions): New.
1221 2002-06-10 Akim Demaille <akim@epita.fr>
1223 * src/symtab.c (symbol_user_token_number_set): Don't complain when
1224 assigning twice the same user number to a token, so that we can
1226 * src/lex.c (lex): here.
1227 Also use `symbol_class_set' instead of hand written code.
1228 * src/reader.c (parse_assoc_decl): Likewise.
1230 2002-06-10 Akim Demaille <akim@epita.fr>
1232 * src/symtab.c, src/symtab.c (symbol_class_set)
1233 (symbol_user_token_number_set): New.
1234 * src/reader.c (parse_token_decl): Use them.
1235 Use a switch instead of ifs.
1236 Use a single argument.
1238 2002-06-10 Akim Demaille <akim@epita.fr>
1240 Remove `%thong' support as it is undocumented, unused, duplicates
1241 `%token's job, and creates useless e-mail traffic with people who
1242 want to know what it is, why it is undocumented, unused, and
1243 duplicates `%token's job.
1245 * src/reader.c (parse_thong_decl): Remove.
1246 * src/options.c (option_table): Remove "thong".
1247 * src/lex.h (tok_thong): Remove.
1249 2002-06-10 Akim Demaille <akim@epita.fr>
1251 * src/symtab.c, src/symtab.c (symbol_type_set)
1252 (symbol_precedence_set): New.
1253 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
1254 (value_components_used): Remove, unused.
1256 2002-06-09 Akim Demaille <akim@epita.fr>
1258 Move symbols handling code out of the reader.
1260 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
1262 * src/symtab.h, src/symtab.c: here.
1264 * src/gram.c (start_symbol): Remove: use startsymbol->number.
1265 * src/reader.c (startval): Rename as...
1266 * src/symtab.h, src/symtab.c (startsymbol): this.
1267 * src/reader.c: Adjust.
1269 * src/reader.c (symbol_check_defined, symbol_make_alias)
1270 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
1271 (token_translations_init)
1273 * src/symtab.c: here.
1274 * src/reader.c (packsymbols): Move to...
1275 * src/symtab.h, src/symtab.c (symbols_pack): here.
1276 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
1279 2002-06-03 Akim Demaille <akim@epita.fr>
1281 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
1284 2002-06-03 Akim Demaille <akim@epita.fr>
1286 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
1287 structs with non literals.
1288 * src/scan-skel.l: never-interactive.
1289 * src/conflicts.c (enum conflict_resolution_e): No trailing
1291 * src/getargs.c (usage): Split long literal strings.
1292 Reported by Hans Aberg.
1294 2002-05-28 Akim Demaille <akim@epita.fr>
1296 * data/bison.c++: Use C++ ostreams.
1297 (cdebug_): New member.
1299 2002-05-28 Akim Demaille <akim@epita.fr>
1301 * src/output.c (output_skeleton): Be sure to allocate enough room
1302 for `/' _and_ for `\0' in full_skeleton.
1304 2002-05-28 Akim Demaille <akim@epita.fr>
1306 * data/bison.c++: Catch up with bison.simple:
1307 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1308 and Paul Eggert <eggert@twinsun.com>: `error' handing.
1309 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
1312 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1314 * src/output.c (output_skeleton): Put an explicit path in front of
1315 the skeleton file name, rather than relying on the -I directory,
1316 to partially alleviate effects of having a skeleton file lying around
1317 in the current directory.
1319 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1321 * src/conflicts.c (log_resolution): Correct typo:
1322 obstack_printf should be obstack_fgrow1.
1324 2002-05-26 Akim Demaille <akim@epita.fr>
1326 * src/state.h (state_t): `solved_conflicts' is a new member.
1327 * src/LR0.c (new_state): Set it to 0.
1328 * src/conflicts.h, src/conflicts.c (print_conflicts)
1329 (free_conflicts, solve_conflicts): Rename as...
1330 (conflicts_print, conflicts_free, conflicts_solve): these.
1332 * src/conflicts.c (enum conflict_resolution_e)
1333 (solved_conflicts_obstack): New, used by...
1334 (log_resolution): this.
1335 Adjust to attach the conflict resolution to each state.
1336 Complete the description with the precedence/associativity
1338 (resolve_sr_conflict): Adjust.
1339 * src/print.c (print_state): Output its solved_conflicts.
1340 * tests/conflicts.at (Unresolved SR Conflicts)
1341 (Solved SR Conflicts): Exercise --report=all.
1343 2002-05-26 Akim Demaille <akim@epita.fr>
1345 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
1346 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
1347 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
1348 (token_number_t, item_number_as_token_number)
1349 (token_number_as_item_number, muscle_insert_token_number_table):
1351 (symbol_number_t, item_number_as_symbol_number)
1352 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
1353 these, since it is more appropriate.
1355 2002-05-26 Akim Demaille <akim@epita.fr>
1357 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
1359 * data/bison.simple (yystos) [YYDEBUG]: New.
1360 (yyparse) [YYDEBUG]: Display the symbols which are popped during
1362 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
1364 2002-05-25 Akim Demaille <akim@epita.fr>
1366 * doc/bison.texinfo (Debugging): Split into...
1367 (Tracing): this new section, its former contents, and...
1368 (Understanding): this new section.
1369 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
1371 (report_flag): this.
1372 Adjust all dependencies.
1373 (report_args, report_types, report_argmatch): New.
1374 (usage, getargs): Report/support -r, --report.
1376 (struct option_table_struct): Rename as..,
1377 (struct option_table_s): this.
1378 Rename the `set_flag' member to `flag' to match with getopt_long's
1380 * src/options.c (option_table): Split verbose into an entry for
1381 %verbose, and another for --verbose.
1382 Support --report/-r, so remove -r from the obsolete --raw.
1383 * src/print.c: Attach full item sets and lookaheads reports to
1384 report_flag instead of trace_flag.
1385 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
1387 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1388 and Paul Eggert <eggert@twinsun.com>
1390 * data/bison.simple (yyparse): Correct error handling to conform to
1391 POSIX and yacc. Specifically, after syntax error is discovered,
1392 do not reduce further before shifting the error token.
1393 Clean up the code a bit by removing the labels yyerrdefault,
1394 yyerrhandle, yyerrpop.
1395 * NEWS: Document the above.
1397 2002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1399 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
1400 type; it isn't always big enough, since it doesn't necessarily
1401 include non-terminals.
1402 (yytranslate): Expand definition of yy_token_number_type, so that
1403 the latter can be removed.
1404 (yy_token_number_type): Remove, only one use.
1405 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
1406 don't use TokenNumberType as element type.
1408 * tests/regression.at: Modify expected output to agree with change
1409 to yyr1 and yytranslate.
1411 2002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
1413 * src/reader.c (parse_action): Use copy_character instead of
1416 2002-05-13 Akim Demaille <akim@epita.fr>
1418 * tests/regression.at (Token definitions): Prototype yylex and
1421 2002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1423 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
1424 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
1426 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
1428 2002-05-07 Akim Demaille <akim@epita.fr>
1430 * tests/synclines.at: Be sure to prototype yylex and yyerror to
1433 2002-05-07 Akim Demaille <akim@epita.fr>
1437 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
1438 over the RHS of each rule.
1439 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
1440 * src/state.h (state_t): Member `nitems' is unsigned short.
1441 * src/LR0.c (get_state): Adjust.
1442 * src/reader.c (packgram): Likewise.
1443 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
1445 (muscle_insert_int_table): Remove, unused.
1446 (prepare_rules): Remove `max'.
1448 2002-05-06 Akim Demaille <akim@epita.fr>
1450 * src/closure.c (print_firsts): Display of the symbol tags.
1451 (bitmatrix_print): Move to...
1452 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
1454 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
1456 2002-05-06 Akim Demaille <akim@epita.fr>
1458 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
1461 2002-05-06 Akim Demaille <akim@epita.fr>
1463 * src/LR0.c (new_state, get_state): Instead of using the global
1464 `kernel_size' and `kernel_base', have two new arguments:
1465 `core_size' and `core'.
1468 2002-05-06 Akim Demaille <akim@epita.fr>
1470 * src/reader.c (packgram): No longer end `ritem' with a 0
1471 sentinel: it is not used.
1473 2002-05-05 Akim Demaille <akim@epita.fr>
1475 New experimental feature: display the lookaheads in the report and
1478 * src/print (print_core): When --trace-flag, display the rules
1480 * src/print_graph.c (print_core): Likewise.
1484 2002-05-05 Akim Demaille <akim@epita.fr>
1486 * tests/torture.at (Many lookaheads): New test.
1488 2002-05-05 Akim Demaille <akim@epita.fr>
1490 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
1491 (GENERATE_MUSCLE_INSERT_TABLE): this.
1492 (output_int_table, output_unsigned_int_table, output_short_table)
1493 (output_token_number_table, output_item_number_table): Replace with...
1494 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
1495 (muscle_insert_short_table, muscle_insert_token_number_table)
1496 (muscle_insert_item_number_table): these.
1498 (prepare_tokens): Don't free `translations', since...
1499 * src/reader.h, src/reader.c (grammar_free): do it.
1501 * src/gram.h, src/gram.c (grammar_free): here.
1502 * data/bison.simple, data/bison.c++: b4_token_number_max is now
1505 2002-05-05 Akim Demaille <akim@epita.fr>
1507 * src/output.c (output_unsigned_int_table): New.
1508 (prepare_rules): `i' is unsigned.
1509 `prhs', `rline', `r2' are unsigned int.
1510 Rename muscle `rhs_number_max' as `rhs_max'.
1511 Output muscles `prhs_max', `rline_max', and `r2_max'.
1513 * data/bison.simple, data/bison.c++: Adjust to use these muscles
1514 to compute types instead of constant types.
1515 * tests/regression.at (Web2c Actions): Adjust.
1517 2002-05-04 Akim Demaille <akim@epita.fr>
1519 * src/symtab.h (SALIAS, SUNDEF): Rename as...
1520 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
1521 Adjust dependencies.
1522 * src/output.c (token_definitions_output): Be sure not to output a
1523 `#define 'a'' when fed with `%token 'a' "a"'.
1524 * tests/regression.at (Token definitions): New.
1526 2002-05-03 Paul Eggert <eggert@twinsun.com>
1528 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
1531 2002-05-03 gettextize <bug-gnu-gettext@gnu.org>
1533 * Makefile.am (SUBDIRS): Remove intl.
1534 (EXTRA_DIST): Add config/config.rpath.
1536 2002-05-03 Akim Demaille <akim@epita.fr>
1538 * data/bison.simple (m4_if): Don't output empty enums.
1539 And actually, output valid enum definitions :(.
1541 2002-05-03 Akim Demaille <akim@epita.fr>
1543 * configure.bat: Remove, completely obsolete.
1544 * Makefile.am (EXTRA_DIST): Adjust.
1545 Don't distribute config.rpath...
1546 * config/Makefile.am (EXTRA_DIST): Do it.
1548 2002-05-03 Akim Demaille <akim@epita.fr>
1550 * configure.in (GETTEXT_VERSION): New.
1551 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
1553 2002-05-03 Akim Demaille <akim@epita.fr>
1555 * data/bison.simple (b4_token_enum): New.
1556 (b4_token_defines): Use it to output tokens both as #define and
1558 Suggested by Paul Eggert.
1559 * src/output.c (token_definitions_output): Don't output spurious
1562 2002-05-03 Akim Demaille <akim@epita.fr>
1564 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
1566 2002-05-02 Robert Anisko <robert@lrde.epita.fr>
1568 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
1569 Update the stack class, give a try to deque as the default container.
1571 2002-05-02 Akim Demaille <akim@epita.fr>
1573 * data/bison.simple (yyparse): Do not implement @$ = @1.
1574 (YYLLOC_DEFAULT): Adjust to do it.
1575 * doc/bison.texinfo (Location Default Action): Fix.
1577 2002-05-02 Akim Demaille <akim@epita.fr>
1579 * src/reader.c (parse_braces): Merge into...
1580 (parse_action): this.
1582 2002-05-02 Akim Demaille <akim@epita.fr>
1584 * configure.in (ALL_LINGUAS): Remove.
1585 * po/LINGUAS, hr.po: New.
1587 2002-05-02 Akim Demaille <akim@epita.fr>
1589 Remove the so called hairy (semantic) parsers.
1591 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
1592 * src/gram.h, src/gram.c (semantic_parser): Remove.
1593 (rule_t): Remove the guard and guard_line members.
1594 * src/lex.h (token_t): remove tok_guard.
1595 * src/options.c (option_table): Remove %guard and %semantic_parser
1597 * src/output.c, src/output.h (guards_output): Remove.
1599 (token_definitions_output): Don't output the `T'
1601 (output_skeleton): Don't output the guards.
1602 * src/files.c, src/files.c (attrsfile): Remove.
1603 * src/reader.c (symbol_list): Remove the guard and guard_line
1605 Adjust dependencies.
1606 (parse_guard): Remove.
1607 * data/bison.hairy: Remove.
1608 * doc/bison.texinfo (Environment Variables): Remove occurrences of
1611 2002-05-02 Akim Demaille <akim@epita.fr>
1613 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
1614 (parse_guard): Rename the formal argument `stack_offset' as
1615 `rule_length', which is more readable.
1617 (copy_at, copy_dollar): Instead of outputting the hard coded
1618 values of $$, $n and so forth, output invocation to b4_lhs_value,
1619 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
1620 Note: this patch partially drops `semantic-parser' support: it
1621 always does `rule_length - n', where semantic parsers ought to
1623 * data/bison.simple, data/bison.c++ (b4_lhs_value)
1624 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
1626 2002-05-02 Akim Demaille <akim@epita.fr>
1628 * configure.in (AC_INIT): Bump to 1.49b.
1629 (AM_INIT_AUTOMAKE): Short invocation.
1631 2002-05-02 Akim Demaille <akim@epita.fr>
1635 2002-05-01 Akim Demaille <akim@epita.fr>
1637 * src/skeleton.h: Remove.
1639 2002-05-01 Akim Demaille <akim@epita.fr>
1641 * src/skeleton.h: Fix the #endif.
1642 Reported by Magnus Fromreide.
1644 2002-04-26 Paul Eggert <eggert@twinsun.com>
1646 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
1647 Define if we define YYSTYPE and YYLTYPE, respectively.
1648 (YYCOPY): Fix [] quoting problem in the non-GCC case.
1650 2002-04-25 Robert Anisko <robert@lrde.epita.fr>
1652 * src/scan-skel.l: Postprocess quadrigraphs.
1654 * src/reader.c (copy_character): New function, used to output
1655 single characters while replacing `[' and `]' with quadrigraphs, to
1656 avoid troubles with M4 quotes.
1657 (copy_comment): Output characters with copy_character.
1658 (read_additionnal_code): Likewise.
1659 (copy_string2): Likewise.
1660 (copy_definition): Likewise.
1662 * tests/calc.at: Exercise M4 quoting.
1664 2002-04-25 Akim Demaille <akim@epita.fr>
1666 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
1667 between `!' and the command.
1668 Reported by Paul Eggert.
1670 2002-04-24 Robert Anisko <robert@lrde.epita.fr>
1672 * tests/calc.at: Exercise prologue splitting.
1674 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
1675 `b4_post_prologue' instead of `b4_prologue'.
1677 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
1679 (output): Free pre_prologue_obstack and post_prologue_obstack.
1680 * src/files.h, src/files.c (attrs_obstack): Remove.
1681 (pre_prologue_obstack, post_prologue_obstack): New.
1682 * src/reader.c (copy_definition): Add a parameter to specify the
1683 obstack to fill, instead of using attrs_obstack unconditionally.
1684 (read_declarations): Pass pre_prologue_obstack to copy_definition if
1685 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
1687 2002-04-23 Paul Eggert <eggert@twinsun.com>
1689 * data/bison.simple: Remove unnecessary commentary and white
1690 space differences from 1_29-branch.
1691 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
1693 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
1694 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
1695 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
1696 constructors or destructors.
1698 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
1700 2002-04-23 Akim Demaille <akim@epita.fr>
1702 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
1703 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
1704 location with columns.
1705 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
1706 All reported by Paul Eggert.
1708 2002-04-22 Akim Demaille <akim@epita.fr>
1710 * src/reduce.c (dump_grammar): Move to...
1711 * src/gram.h, src/gram.c (grammar_dump): here.
1712 Be sure to separate long item numbers.
1713 Don't read the members of a rule's prec if its nil.
1715 2002-04-22 Akim Demaille <akim@epita.fr>
1717 * src/output.c (table_size, table_grow): New.
1718 (MAXTABLE): Remove, replace uses with table_size.
1719 (pack_vector): Instead of dying when the table is too big, grow it.
1721 2002-04-22 Akim Demaille <akim@epita.fr>
1723 * data/bison.simple (yyr1): Its type is that of a token number.
1724 * data/bison.c++ (r1_): Likewise.
1725 * tests/regression.at (Web2c Actions): Adjust.
1727 2002-04-22 Akim Demaille <akim@epita.fr>
1729 * src/reader.c (token_translations_init): 256 is now the default
1730 value for the error token, i.e., it will be assigned another
1731 number if the user assigned 256 to one of her tokens.
1732 (reader): Don't force 256 to error.
1733 * doc/bison.texinfo (Symbols): Adjust.
1734 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
1735 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
1736 etc. instead of 10, 20, 30 (which was used to `jump' over error
1737 (256) and undefined (2)).
1739 2002-04-22 Akim Demaille <akim@epita.fr>
1741 Propagate more token_number_t.
1743 * src/gram.h (token_number_as_item_number)
1744 (item_number_as_token_number): New.
1745 * src/output.c (GENERATE_OUTPUT_TABLE): New.
1746 Use it to create output_item_number_table and
1747 output_token_number_table.
1748 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
1749 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
1750 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
1751 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
1753 2002-04-22 Akim Demaille <akim@epita.fr>
1755 * src/output.h, src/output.c (get_lines_number): Remove.
1757 2002-04-19 Akim Demaille <akim@epita.fr>
1759 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
1761 (Debugging): More details about enabling the debugging features.
1762 (Table of Symbols): Describe $$, $n, @$, and @n.
1763 Suggested by Tim Josling.
1765 2002-04-19 Akim Demaille <akim@epita.fr>
1767 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
1769 2002-04-10 Akim Demaille <akim@epita.fr>
1771 * src/system.h: Rely on HAVE_LIMITS_H.
1772 Suggested by Paul Eggert.
1774 2002-04-09 Akim Demaille <akim@epita.fr>
1776 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
1777 full stderr, and strip it according to the bison options, instead
1778 of composing the error message from different bits.
1779 This makes it easier to check for several error messages.
1780 Adjust all the invocations.
1781 Add an invocation exercising the error token.
1782 Add an invocation demonstrating a stupid error message.
1783 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
1785 Error message are for stderr, not stdout.
1787 2002-04-09 Akim Demaille <akim@epita.fr>
1789 * src/gram.h, src/gram.c (error_token_number): Remove, use
1791 * src/reader.c (reader): Don't specify the user token number (2)
1792 for $undefined, as it uselessly prevents using it.
1793 * src/gram.h (token_number_t): Move to...
1794 * src/symtab.h: here.
1795 (state_t.number): Is a token_number_t.
1796 * src/print.c, src/reader.c: Use undeftoken->number instead of
1798 (Even though this 2 is not the same as above: the number of the
1799 undeftoken remains being 2, it is its user token number which
1801 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
1802 `user_token_number_max'.
1803 Output `undef_token_number'.
1804 * data/bison.simple, data/bison.c++: Use them.
1805 Be sure to map invalid yylex return values to
1806 `undef_token_number'. This saves us from gratuitous SEGV.
1808 * tests/conflicts.at (Solved SR Conflicts)
1809 (Unresolved SR Conflicts): Adjust.
1810 * tests/regression.at (Web2c Actions): Adjust.
1812 2002-04-08 Akim Demaille <akim@epita.fr>
1814 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
1816 Remove the duplicate `typedefs'.
1817 (RhsNumberType): Fix the declaration and various other typos.
1819 * data/bison.simple: Use __ofile__.
1820 * src/scan-skel.l: Handle __ofile__.
1822 2002-04-08 Akim Demaille <akim@epita.fr>
1824 * src/gram.h (item_number_t): New, the type of item numbers in
1825 RITEM. Note that it must be able to code symbol numbers as
1826 positive number, and the negation of rule numbers as negative
1828 Adjust all dependencies (pretty many).
1829 * src/reduce.c (rule): Remove this `short *' pointer: use
1831 * src/system.h (MINSHORT, MAXSHORT): Remove.
1833 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
1835 (MAXTABLE): Move to...
1836 * src/output.c (MAXTABLE): here.
1837 (prepare_rules): Use output_int_table to output rhs.
1838 * data/bison.simple, data/bison.c++: Adjust.
1839 * tests/torture.at (Big triangle): Move the limit from 254 to
1841 * tests/regression.at (Web2c Actions): Ajust.
1843 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
1844 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
1845 passes, but produces negative #line number, once fixed, GCC is
1846 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
1848 * src/state.h (state_h): Code input lines on ints, not shorts.
1850 2002-04-08 Akim Demaille <akim@epita.fr>
1852 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
1853 and then the grammar.
1855 2002-04-08 Akim Demaille <akim@epita.fr>
1857 * src/system.h: No longer using strndup.
1859 2002-04-07 Akim Demaille <akim@epita.fr>
1861 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
1862 * src/output.c (output_table_data): Return the longest number.
1863 (prepare_tokens): Output `token_number_max').
1864 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
1866 Use them to define yy_token_number_type/TokenNumberType.
1867 Use this type for yytranslate.
1868 * tests/torture.at (Big triangle): Push the limit from 124 to
1870 * tests/regression.at (Web2c Actions): Adjust.
1872 2002-04-07 Akim Demaille <akim@epita.fr>
1874 * tests/torture.at (Big triangle): New.
1875 (GNU AWK Grammar, GNU Cim Grammar): Move to...
1876 * tests/existing.at: here.
1878 2002-04-07 Akim Demaille <akim@epita.fr>
1880 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
1882 Adjust dependencies.
1884 2002-04-07 Akim Demaille <akim@epita.fr>
1886 * src/reader.c: Normalize increments to prefix form.
1888 2002-04-07 Akim Demaille <akim@epita.fr>
1890 * src/reader.c, symtab.c: Remove debugging code.
1892 2002-04-07 Akim Demaille <akim@epita.fr>
1894 Rename all the `bucket's as `symbol_t'.
1896 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
1897 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
1898 * src/symtab.c, src/symtab.h (bucket): Rename as...
1900 (symbol_list_new, bucket_check_defined, bucket_make_alias)
1901 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
1902 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
1903 (buckets_new, buckets_free, buckets_do): Rename as...
1904 (symbol_list_new, symbol_check_defined, symbol_make_alias)
1905 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
1906 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
1907 (symbols_new, symbols_free, symbols_do): these.
1909 2002-04-07 Akim Demaille <akim@epita.fr>
1911 Use lib/hash for the symbol table.
1913 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
1915 * src/lex.c (lex): Set the `number' member of new terminals.
1916 * src/reader.c (bucket_check_defined, bucket_make_alias)
1917 (bucket_check_alias_consistence, bucket_translation): New.
1918 (reader, grammar_free, readgram, token_translations_init)
1919 (packsymbols): Adjust.
1920 (reader): Number the predefined tokens.
1921 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
1922 for predefined tokens.
1923 * src/symtab.h (bucket): Remove all the hash table related
1925 * src/symtab.c (symtab): Replace by...
1926 (bucket_table): this.
1927 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
1928 (buckets_new, buckets_do): New.
1930 2002-04-07 Akim Demaille <akim@epita.fr>
1932 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
1933 (start_symbol, max_user_token_number, semantic_parser)
1934 (error_token_number): Initialize.
1935 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
1938 (errtoken, eoftoken, undeftoken, axiom): Extern.
1940 2002-04-07 Akim Demaille <akim@epita.fr>
1942 * src/gram.h (rule_s): prec and precsym are now pointers
1943 to the bucket giving the priority/associativity.
1944 Member `associativity' removed: useless.
1945 * src/reduce.c, src/conflicts.c: Adjust.
1947 2002-04-07 Akim Demaille <akim@epita.fr>
1949 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
1950 Properly escape the symbols' TAG when outputting them.
1952 2002-04-07 Akim Demaille <akim@epita.fr>
1954 * src/lalr.h (LA): Is a bitsetv, not bitset*.
1956 2002-04-07 Akim Demaille <akim@epita.fr>
1958 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
1959 (LArule): this, which is an array to rule_t*.
1960 * src/print.c, src/conflicts.c: Adjust.
1962 2002-04-07 Akim Demaille <akim@epita.fr>
1964 * src/gram.h (rule_t): Rename `number' as `user_number'.
1965 `number' is a new member.
1966 Adjust dependencies.
1967 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
1969 2002-04-07 Akim Demaille <akim@epita.fr>
1971 As a result of the previous patch, it is no longer needed
1972 to reorder ritem itself.
1974 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
1976 2002-04-07 Akim Demaille <akim@epita.fr>
1978 Be sure never to walk through RITEMS, but use only data related to
1979 the rules themselves. RITEMS should be banished.
1981 * src/output.c (output_token_translations): Rename as...
1982 (prepare_tokens): this.
1983 In addition to `translate', prepare the muscles `tname' and
1984 `toknum', which were handled by...
1985 (output_rule_data): this.
1986 Remove, and move the remainder of its outputs into...
1987 (prepare_rules): this new routines, which also merges content from
1988 (output_gram): this.
1989 (prepare_rules): Be sure never to walk through RITEMS.
1990 (output_stos): Rename as...
1991 (prepare_stos): this.
1992 (output): Always invoke prepare_states, after all, just don't use it
1993 in the output if you don't need it.
1995 2002-04-07 Akim Demaille <akim@epita.fr>
1997 * src/LR0.c (new_state): Display `nstates' as the name of the
1998 newly created state.
1999 Adjust to initialize first_state and last_state if needed.
2000 Be sure to distinguish the initial from the final state.
2001 (new_states): Create the itemset of the initial state, and use
2003 * src/closure.c (closure): Now that the initial state has its
2004 items properly set, there is no need for a special case when
2007 As a result, now the rule 0, reducing to $axiom, is visible in the
2008 outputs. Adjust the test suite.
2010 * tests/conflicts.at (Solved SR Conflicts)
2011 (Unresolved SR Conflicts): Adjust.
2012 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
2013 * tests/conflicts.at (S/R in initial): New.
2015 2002-04-07 Akim Demaille <akim@epita.fr>
2017 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
2018 the RHS of the rules.
2019 * src/output.c (output_gram): Likewise.
2021 2002-04-07 Akim Demaille <akim@epita.fr>
2023 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
2025 Adjust all dependencies.
2026 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
2027 `number' of the buckets too.
2028 * src/gram.h: Include `symtab.h'.
2029 (associativity): Move to...
2030 * src/symtab.h: here.
2031 No longer include `gram.h'.
2033 2002-04-07 Akim Demaille <akim@epita.fr>
2035 * src/gram.h, src/gram.c (rules_rhs_length): New.
2036 (ritem_longest_rhs): Use it.
2037 * src/gram.h (rule_t): `number' is a new member.
2038 * src/reader.c (packgram): Set it.
2039 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
2040 the end of `rules', and count them out of `nrules'.
2041 (reduce_output, dump_grammar): Adjust.
2042 * src/print.c (print_grammar): It is no longer needed to check for
2043 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
2044 * tests/reduce.at (Reduced Automaton): New test.
2046 2002-04-07 Akim Demaille <akim@epita.fr>
2048 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
2049 lacking `+ 1' to nrules, Bison reported as useless a token if it
2050 was used solely to set the precedence of the last rule...
2052 2002-04-07 Akim Demaille <akim@epita.fr>
2054 * data/bison.c++, data/bison.simple: Don't output the current file
2055 name in #line, to avoid useless diffs between two identical
2056 outputs under different names.
2058 2002-04-07 Akim Demaille <akim@epita.fr>
2060 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
2061 Normalize loops to using `< nrules + 1', not `<= nrules'.
2063 2002-04-07 Akim Demaille <akim@epita.fr>
2067 2002-04-07 Akim Demaille <akim@epita.fr>
2069 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
2070 bucket.value as bucket.number.
2072 2002-04-07 Akim Demaille <akim@epita.fr>
2074 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
2075 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
2076 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
2077 RHS, instead of being an index in RITEMS.
2079 2002-04-04 Paul Eggert <eggert@twinsun.com>
2081 * doc/bison.texinfo: Update copyright date.
2082 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
2083 (Symbols): Warn about running Bison in one character set,
2084 but compiling and/or running in an incompatible one.
2085 Warn about character code 256, too.
2087 2002-04-03 Paul Eggert <eggert@twinsun.com>
2089 * src/bison.data (YYSTACK_ALLOC): Depend on whether
2090 YYERROR_VERBOSE is nonzero, not whether it is defined.
2092 Merge changes from bison-1_29-branch.
2094 2002-03-20 Paul Eggert <eggert@twinsun.com>
2096 Merge fixes from Debian bison_1.34-1.diff.
2098 * configure.in (AC_PREREQ): 2.53.
2100 2002-03-20 Akim Demaille <akim@epita.fr>
2102 * src/conflicts.c (log_resolution): Argument `resolution' is const.
2104 2002-03-19 Paul Eggert <eggert@twinsun.com>
2106 * src/bison.simple (YYCOPY): New macro.
2107 (YYSTACK_RELOCATE): Use it.
2108 Remove Type arg; no longer needed. All callers changed.
2109 (yymemcpy): Remove; no longer needed.
2111 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
2112 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
2114 2002-03-19 Akim Demaille <akim@epita.fr>
2116 Test and fix the #line outputs.
2118 * tests/atlocal.at (GCC): New.
2119 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
2120 (Prologue synch line, ,%union synch line, Postprologue synch line)
2121 (Action synch line, Epilogue synch line): New tests.
2122 * src/reader.c (parse_union_decl): Define the muscle stype_line.
2123 * data/bison.simple, data/bison.c++: Use it.
2125 2002-03-19 Akim Demaille <akim@epita.fr>
2127 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
2128 (Solved SR Conflicts, %expect not enough, %expect right)
2129 (%expect too much): Move to...
2130 * tests/conflicts.at: this new file.
2132 2002-03-19 Akim Demaille <akim@epita.fr>
2134 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
2135 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
2136 that we can move to enums for instance.
2137 * src/output.c (token_definitions_output): Output a list of
2138 `token-name, token-number' instead of the #define.
2139 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
2141 2002-03-14 Akim Demaille <akim@epita.fr>
2145 2002-03-09 Robert Anisko <robert@lrde.epita.fr>
2147 * data/bison.c++: Make the user able to add members to the generated
2148 parser by subclassing.
2150 2002-03-05 Robert Anisko <robert@lrde.epita.fr>
2152 * src/reader.c (read_additionnal_code): `c' should be an integer, not
2154 Reported by Nicolas Tisserand and Nicolas Burrus.
2156 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
2158 * src/reader.c: Warn about lacking semi-colons, do not complain.
2160 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
2162 * data/bison.c++: Remove a debug line.
2164 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
2166 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
2167 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
2168 provide a default implementation.
2170 2002-03-04 Akim Demaille <akim@epita.fr>
2172 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
2173 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
2174 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
2175 * tests/semantic.at (Parsing Guards): Similarly.
2176 * src/reader.at (readgram): Complain if the last rule is not ended
2179 2002-03-04 Akim Demaille <akim@epita.fr>
2181 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
2182 * src/closure.c: here.
2183 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
2185 * src/warshall.h, src/warshall.c: Remove.
2186 * tests/sets.at (Broken Closure): Adjust.
2188 2002-03-04 Akim Demaille <akim@epita.fr>
2190 * src/output.c (output_skeleton): tempdir is const.
2191 bytes_read is unused.
2193 2002-03-04 Akim Demaille <akim@epita.fr>
2195 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
2196 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
2200 2002-03-04 Akim Demaille <akim@epita.fr>
2202 * src/closure.c (closure): `r' is unused.
2204 2002-03-04 Akim Demaille <akim@epita.fr>
2206 * tests/sets.at (Broken Closure): Add the ending `;'.
2207 * src/reader.at (readgram): Complain if a rule is not ended with a
2210 2002-03-04 Akim Demaille <akim@epita.fr>
2212 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
2213 (count_sr_conflicts): Use bitset_count.
2214 * src/reduce.c (inaccessable_symbols): Ditto.
2215 (bits_size): Remove.
2216 * src/warshall.h, src/warshall.c: Convert to bitsetv.
2218 2002-03-04 Akim Demaille <akim@epita.fr>
2220 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
2221 * src/reduce.c: Remove the `bitset_zero's following the
2222 `bitset_create's, as now it is performed by the latter.
2224 2002-03-04 Akim Demaille <akim@epita.fr>
2226 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
2227 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
2228 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
2229 latest sources from Michael.
2231 2002-03-04 Akim Demaille <akim@epita.fr>
2233 * src/output.c (output): Don't free the grammar.
2234 * src/reader.c (grammar_free): New.
2235 * src/main.c (main): Call it and don't free symtab here.
2237 2002-03-04 Akim Demaille <akim@epita.fr>
2239 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
2241 Reported by Benoit Perrot.
2243 2002-03-04 Akim Demaille <akim@epita.fr>
2245 Use bitset operations when possible, not loops over bits.
2247 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
2249 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
2250 * src/reduce.c (useless_nonterminals): Formatting changes.
2251 * src/warshall.c (TC): Use bitset_or.
2253 2002-03-04 Akim Demaille <akim@epita.fr>
2255 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
2256 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
2259 2002-03-04 Akim Demaille <akim@epita.fr>
2261 * src/lalr.c (F): Now a bitset*.
2262 Adjust all dependencies.
2264 2002-03-04 Akim Demaille <akim@epita.fr>
2266 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
2267 Adjust all dependencies.
2269 2002-03-04 Akim Demaille <akim@epita.fr>
2271 * src/L0.c, src/LR0.h (nstates): Be size_t.
2272 Adjust comparisons (signed vs unsigned).
2273 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
2275 Adjust all dependencies.
2277 2002-03-04 Akim Demaille <akim@epita.fr>
2279 * src/closure.c (firsts): Now, also a bitset.
2280 Adjust all dependencies.
2281 (varsetsize): Remove, now unused.
2282 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
2284 2002-03-04 Akim Demaille <akim@epita.fr>
2286 * src/print.c: Convert to use bitset.h, not hand coded iterations
2289 2002-03-04 Akim Demaille <akim@epita.fr>
2291 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
2293 2002-03-04 Akim Demaille <akim@epita.fr>
2295 * src/closure.c (ruleset): Be a bitset.
2296 (rulesetsize): Remove.
2298 2002-03-04 Akim Demaille <akim@epita.fr>
2300 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
2301 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
2302 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
2303 * src/closure.c (fderives): Be an array of bitsets.
2305 2002-02-28 Robert Anisko <robert@lrde.epita.fr>
2307 * data/bison.c++: Merge the two generated headers. Insert a copyright
2308 notice in each output file.
2310 2002-02-28 Akim Demaille <akim@epita.fr>
2312 * data/bison.c++: Copy the prologue of bison.simple to fetch
2313 useful M4 definitions, such as b4_header_guard.
2315 2002-02-25 Akim Demaille <akim@epita.fr>
2317 * src/getargs.c (version): Give the name of the authors, and use a
2318 translator friendly scheme for the bgr
2321 2002-02-25 Akim Demaille <akim@epita.fr>
2323 * src/output.c (header_output): Remove, now handled completely via
2326 2002-02-25 Akim Demaille <akim@epita.fr>
2328 * m4/m4.m4: New, from CVS Autoconf.
2329 * configure.in: Invoke it.
2330 * src/output.c (output_skeleton): Use its result instead of the
2333 2002-02-25 Akim Demaille <akim@epita.fr>
2335 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
2337 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
2338 * src/output.c (output_skeleton): Use mkstemp to create a real
2340 Move the filling of `skeleton' and its muscle to...
2342 (output): Move the definition of the prologue muscle to...
2344 * src/system.h (DEFAULT_TMPDIR): New.
2346 2002-02-14 Paul Eggert <eggert@twinsun.com>
2348 Remove the support for C++ namespace cleanliness; it was
2349 causing more problems than it was curing, since it didn't work
2350 properly on some nonstandard C++ compilers. This can wait
2351 for a proper C++ parser.
2353 * NEWS: Document this.
2354 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
2355 of C++, as it's treated like C now.
2356 * src/bison.simple (YYSTD): Remove.
2357 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
2358 Treat C++ just like Standard C instead of trying to support
2359 namespace cleanliness.
2361 2002-02-14 Akim Demaille <akim@epita.fr>
2363 * tests/regression.at (else): Adjust to Andreas' change.
2365 2002-02-14 Akim Demaille <akim@epita.fr>
2367 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
2369 2002-02-13 Andreas Schwab <schwab@suse.de>
2371 * src/output.c (output_rule_data): Don't output NULL, it might
2374 2002-02-11 Robert Anisko <robert@lrde.epita.fr>
2376 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
2377 (Copyright notice): Update.
2379 2002-02-11 Akim Demaille <akim@epita.fr>
2381 * tests/regression.at (%nonassoc and eof): Don't include
2382 nonportable headers.
2384 2002-02-08 Robert Anisko <robert@lrde.epita.fr>
2386 * data/bison.c++: Correct error recovery. Make the user able to
2387 initialize the starting location.
2389 2002-02-07 Akim Demaille <akim@epita.fr>
2391 * tests/input.at: New.
2393 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
2395 * data/bison.c++: Replace some direct m4 expansions by constants. Be
2396 more consistent when naming methods and variables. Put preprocessor
2397 directives around tables only needed for debugging.
2399 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
2401 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
2403 (yy::b4_name::parse): Use print_.
2405 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
2407 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
2409 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
2411 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
2413 (yy::b4_name::parse): Build verbose error messages, and use error_.
2415 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
2417 * data/bison.c++: Fix m4 quoting in comments.
2419 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
2421 * data/bison.c++: Adjust the parser code. Fix some muscles that were
2424 2002-02-05 Akim Demaille <akim@epita.fr>
2426 * data/bison.c++: Adjust to the M4 back end.
2427 More is certainly needed.
2429 2002-02-05 Akim Demaille <akim@epita.fr>
2431 Give a try to M4 as a back end.
2433 * lib/readpipe.c: New, from wdiff.
2434 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
2436 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
2437 specific values. Now it is m4 that performs the lookup.
2438 * src/parse-skel.y: Remove.
2439 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
2440 * src/output.c (actions_output, guards_output)
2441 (token_definitions_output): No longer keeps track of the output
2442 line number, hence remove the second argument.
2443 (guards_output): Check against the guard member of a rule, not the
2446 (output_skeleton): Don't look for the skeleton location, let m4 do
2448 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
2450 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
2451 (prepare): Given that for the time being changesyntax is not
2452 usable in M4, rename the muscles using `-' to `_'.
2453 Define `defines_flag', `output_parser_name' and `output_header_name'.
2454 * src/output.h (actions_output, guards_output)
2455 (token_definitions_output): Adjust prototypes.
2456 * src/scan-skel.l: Instead of scanning the skeletons, it now
2457 processes the output of m4: `__oline__' and `#output'.
2458 * data/bison.simple: Adjust to be used by M4(sugar).
2459 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
2461 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
2462 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
2463 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
2464 shamelessly stolen from CVS Autoconf.
2466 2002-02-05 Akim Demaille <akim@epita.fr>
2468 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
2469 * configure.in: Check for the declarations of free and malloc.
2470 * src/muscle_tab.c: Adjust.
2472 2002-02-05 Akim Demaille <akim@epita.fr>
2474 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
2475 which have no values.
2477 2002-02-05 Akim Demaille <akim@epita.fr>
2479 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
2482 2002-01-29 Paul Eggert <eggert@twinsun.com>
2484 * src/bison.simple (YYSIZE_T): Do not define merely because
2485 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
2486 On some platforms, <alloca.h> does not declare YYSTD (size_t).
2488 2002-01-27 Akim Demaille <akim@epita.fr>
2490 Fix `%nonassoc and eof'.
2492 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
2493 which were not properly copied! Replace
2494 memcpy (res->errs, src->errs, src->nerrs);
2496 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
2498 * tests/regression.at (%nonassoc and eof): Adjust to newest
2499 Autotest: `.' is not in the PATH.
2501 2002-01-27 Akim Demaille <akim@epita.fr>
2503 * tests/sets.at (AT_EXTRACT_SETS): New.
2507 2002-01-26 Akim Demaille <akim@epita.fr>
2509 * tests/actions.at, tests/calc.at, tests/headers.at,
2510 * tests/torture.at: Adjust to the newest Autotest which no longer
2511 forces `.' in the PATH.
2513 2002-01-25 Akim Demaille <akim@epita.fr>
2515 * tests/regression.at (%nonassoc and eof): New.
2516 Suggested by Robert Anisko.
2518 2002-01-24 Akim Demaille <akim@epita.fr>
2520 Bison dumps core when trying to complain about broken input files.
2521 Reported by Cris van Pelt.
2523 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
2524 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
2526 (Invalid inputs): Strengthen: exercise parse_percent_token.
2528 2002-01-24 Robert Anisko <robert.anisko@epita.fr>
2530 * src/Makefile.am: Add bison.c++.
2531 * src/bison.c++: New skeleton.
2533 2002-01-21 Paolo Bonzini <bonzini@gnu.org>
2537 2002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
2539 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
2541 2002-01-20 Marc Autret <marc@gnu.org>
2543 * src/files.c (compute_output_file_names): Fix
2545 2002-01-20 Marc Autret <marc@gnu.org>
2547 * tests/output.at: New test.
2548 * src/files.c (compute_base_names): Don't map extensions when
2549 the YACC flag is set, use defaults.
2550 Reported by Evgeny Stambulchik.
2552 2002-01-20 Marc Autret <marc@gnu.org>
2554 * src/system.h: Need to define __attribute__ away for non-GCC
2555 compilers as well (i.e. the vendor C compiler).
2556 Suggested by Albert Chin-A-Young.
2558 2002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
2560 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
2561 canonical definition.
2562 * src/system.h: Use the canonical definition for PARAMS (avoids
2563 a conflict with the macro from lib/hash.h).
2565 2002-01-11 Akim Demaille <akim@epita.fr>
2567 * configure.in: Use AC_FUNC_STRNLEN.
2568 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
2570 2002-01-09 Akim Demaille <akim@epita.fr>
2572 * src/files.c, src/files.h (output_infix): New.
2573 (tab_extension): Remove.
2574 (compute_base_names): Compute the former, drop the latter.
2575 * src/output.c (prepare): Insert the muscles `output-infix', and
2577 * src/parse-skel.y (string, string.1): New.
2578 (section.header): Use it.
2579 (section.yacc): Remove.
2580 (prefix): Remove too.
2581 * src/scan-skel.l: Adjust.
2582 * src/bison.simple, src/bison.hairy: Adjust.
2584 2002-01-09 Akim Demaille <akim@epita.fr>
2586 * configure.in (WERROR_CFLAGS): Compute it.
2587 * src/Makefile.am (CFLAGS): Pass it.
2588 * tests/atlocal.in (CFLAGS): Idem.
2589 * src/files.c: Fix a few warnings.
2590 (get_extension_index): Remove, unused.
2592 2002-01-08 Akim Demaille <akim@epita.fr>
2594 * src/getargs.c (AS_FILE_NAME): New.
2595 (getargs): Use it to convert DOSish file names.
2596 * src/files.c (base_name): Rename as full_base_name to avoid
2597 clashes with `base_name ()'.
2598 (filename_split): New.
2599 (compute_base_names): N-th rewrite, using filename_split.
2601 2002-01-08 Akim Demaille <akim@epita.fr>
2603 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
2604 New, stolen from the Fileutils 4.1.
2605 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
2606 * configure.in: Check for the presence of memrchr, and of its
2609 2002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
2611 * lib/hash.h (__P): Added definition for this macro.
2612 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
2613 BUILT_SOURCES, to ensure they are generated first.
2614 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
2615 %error-verbose to allow bootstrapping with bison 1.30x.
2617 2002-01-06 Akim Demaille <akim@epita.fr>
2619 * src/reader.c (parse_braces): Don't fetch the next char, the
2620 convention is to fetch on entry.
2621 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
2622 'switch' without a following semicolon.
2623 * tests/regression.at (braces parsing): New.
2625 2002-01-06 Akim Demaille <akim@epita.fr>
2627 Bison is dead wrong in its RR conflict reports.
2629 * tests/torture.at (GNU Cim Grammar): New.
2630 * src/conflicts.c (count_rr_conflicts): Fix.
2632 2002-01-06 Akim Demaille <akim@epita.fr>
2634 Creating package.m4 from configure.ac causes too many problems.
2636 * tests/Makefile.am (package.m4): Create it by hand,
2637 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
2639 2002-01-06 Akim Demaille <akim@epita.fr>
2641 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
2644 2002-01-04 Paul Eggert <eggert@twinsun.com>
2646 * doc/bison.texinfo (Debugging):
2647 Remove YYSTDERR; it's no longer defined or used.
2648 Also, s/cstdio.h/cstdio/.
2650 2002-01-03 Akim Demaille <akim@epita.fr>
2652 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
2654 2002-01-03 Akim Demaille <akim@epita.fr>
2656 * src/parse-skel.y (process_skeleton): Don't bind the parser's
2657 tracing code to --trace, wait for a better --trace option, with
2660 2002-01-03 Akim Demaille <akim@epita.fr>
2662 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
2663 The ISO C++ standard is extremely clear about it: stderr is
2664 considered a macro, not a regular symbol (see table 94 `Header
2665 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
2666 Therefore std:: does not apply to it. It still does with fprintf.
2667 Also, s/cstdio.h/cstdio/.
2669 2002-01-03 Akim Demaille <akim@epita.fr>
2671 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
2672 for non system headers.
2674 2002-01-02 Akim Demaille <akim@epita.fr>
2676 Equip the skeleton chain with location tracking, runtime trace,
2677 pure parser and scanner.
2679 * src/parse-skel.y: Request a pure parser, locations, and prefix
2681 (%union): Having several members with the same type does not help
2682 type mismatches, simplify.
2683 (YYPRINT, yyprint): New.
2684 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
2687 * src/scan-skel.l: Adjust to these changes.
2688 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
2689 (LOCATION_PRINT, skel_control_t): New.
2691 2001-12-30 Akim Demaille <akim@epita.fr>
2693 * src/parse-skel.y: Get rid of the shift/reduce conflict:
2694 replace `gb' with BLANKS.
2695 * src/scan-skel.l: Adjust.
2697 2001-12-30 Akim Demaille <akim@epita.fr>
2699 * src/system.h: We don't need nor want bcopy.
2700 Throw away MS-DOS crap: we don't need getpid.
2701 * configure.in: We don't need strndup. It was even causing
2702 problems: because Flex includes the headers *before* us,
2703 _GNU_SOURCE is not defined by config.h, and therefore strndup was
2705 * lib/xstrndup.c: New.
2706 * src/scan-skel.l: Use it.
2707 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
2708 * src/parse-skel.y: Use %directives instead of #defines.
2710 2001-12-30 Akim Demaille <akim@epita.fr>
2712 * src/skeleton.h: New.
2713 * src/output.c (output_parser, output_master_parser): Remove, dead
2715 * src/output.h (get_lines_number, actions_output, guards_output)
2716 (token_definitions_output): Prototype them.
2717 * src/parse-skel.y: Add the license notice.
2718 Include output.h and skeleton.h.
2719 (process_skeleton): Returns void, and takes a single parameter.
2720 * src/scan-skel.l: Add the license notice.
2722 Don't use %option yylineno: it seems that then Flex imagines
2723 REJECT has been used, and therefore it won't reallocate its
2724 buffers (which makes no other sense to me than a bug). It results
2725 in warnings for `unused: yy_flex_realloc'.
2727 2001-12-30 Robert Anisko <robert.anisko@epita.fr>
2729 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
2730 (MUSCLE_INSERT_PREFIX): ...to there.
2731 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
2732 (MUSCLE_INSERT_PREFIX): Move from here...
2734 * src/bison.hairy: Add a section directive. Put braces around muscle
2735 names. This parser skeleton is still broken, but Bison should not
2736 choke on a bad muscle 'syntax'.
2737 * src/bison.simple: Add a section directive. Put braces around muscle
2740 * src/files.h (strsuffix, stringappend): Add declarations.
2741 (tab_extension): Add declaration.
2742 (short_base_name): Add declaration.
2744 * src/files.c (strsuffix, stringappend): No longer static. These
2745 functions are used in the skeleton parser.
2746 (tab_extension): New.
2747 (compute_base_names): Use the computations done in this function
2748 to guess if the generated parsers should have '.tab' in their
2750 (short_base_name): No longer static.
2752 * src/output.c (output_skeleton): New.
2753 (output): Disable call to output_master_parser, and give a try to
2754 a new skeleton handling system.
2755 (guards_output, actions_output): No longer static.
2756 (token_definitions_output, get_lines_number): No longer static.
2758 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
2760 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
2763 * src/parse-skel.y: New file.
2764 * src/scan-skel.l: New file.
2766 2001-12-29 Akim Demaille <akim@epita.fr>
2768 %name-prefix is broken.
2770 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
2771 Adjust all dependencies.
2772 * tests/headers.at (export YYLTYPE): Strengthen this test: use
2775 Renaming yylval but not yylloc is not consistent. Now we do.
2777 * src/bison.simple: Prefix yylloc if used.
2778 * doc/bison.texinfo (Decl Summary): Document that.
2780 2001-12-29 Akim Demaille <akim@epita.fr>
2782 * doc/bison.texinfo: Promote `%long-directive' over
2784 Remove all references to fixed-output-files, yacc is enough.
2786 2001-12-29 Akim Demaille <akim@epita.fr>
2788 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
2789 user prologue. These are defaults.
2790 * tests/actions.at (Mid-rule actions): Make sure the user can
2791 define YYDEBUG and YYERROR_VERBOSE.
2793 2001-12-29 Akim Demaille <akim@epita.fr>
2795 * src/output.c (header_output): Don't forget to export YYLTYPE and
2797 * tests/headers.at (export YYLTYPE): New, make sure it does.
2798 * tests/regression.at (%union and --defines, Invalid CPP headers):
2800 * tests/headers.at: here.
2802 2001-12-29 Akim Demaille <akim@epita.fr>
2804 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
2806 2001-12-29 Akim Demaille <akim@epita.fr>
2808 * tests/actions.at (Mid-rule actions): Output on a single line
2811 2001-12-29 Akim Demaille <akim@epita.fr>
2813 * doc/bison.texinfo: Formatting changes.
2815 2001-12-29 Akim Demaille <akim@epita.fr>
2817 Don't store the token defs in a muscle, just be ready to output it
2818 on command. Now possible via `symbols'. Fixes a memory leak.
2820 * src/output.c (token_definitions_output): New.
2821 (output_parser, header_output): Use it.
2822 * src/reader.c (symbols_save): Remove.
2824 2001-12-29 Akim Demaille <akim@epita.fr>
2826 * src/bison.simple: Do not provide a default for YYSTYPE and
2827 YYLTYPE before the user's prologue. Otherwise it's hardly... a
2830 2001-12-29 Akim Demaille <akim@epita.fr>
2832 Mid-rule actions are simply... ignored!
2834 * src/reader.c (readgram): Be sure to attach mid-rule actions to
2835 the empty-rule associated to the dummy symbol, not to the host
2837 * tests/actions.at (Mid-rule actions): New.
2839 2001-12-29 Akim Demaille <akim@epita.fr>
2843 * src/reader.c (reader): Free grammar.
2845 2001-12-29 Akim Demaille <akim@epita.fr>
2849 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
2850 since it allocates it for each state, although only one is needed.
2851 (allocate_storage): Do it here.
2853 2001-12-29 Akim Demaille <akim@epita.fr>
2855 * src/options.h, src/options.c (create_long_option_table): Rename
2857 (long_option_table_new): this, with a clearer prototype.
2858 (percent_table): Remove, unused,
2859 * src/getargs.c (getargs): Adjust.
2861 2001-12-29 Akim Demaille <akim@epita.fr>
2863 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
2864 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
2867 2001-12-29 Akim Demaille <akim@epita.fr>
2869 * src/lalr.c (build_relations): Rename `states' as `states1'.
2870 Sorry, I don't understand exactly what it is, no better name...
2872 2001-12-29 Akim Demaille <akim@epita.fr>
2874 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
2875 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
2876 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
2879 2001-12-29 Akim Demaille <akim@epita.fr>
2881 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
2884 2001-12-29 Akim Demaille <akim@epita.fr>
2886 * src/reader.c, src/reader.h (user_toknums): Remove.
2887 Adjust all users to use symbols[i]->user_token_number.
2889 2001-12-29 Akim Demaille <akim@epita.fr>
2891 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
2892 Adjust all users to use symbols[i]->prec or ->assoc.
2894 2001-12-29 Akim Demaille <akim@epita.fr>
2896 * src/reader.c, src/reader.h (tags): Remove.
2897 Adjust all users to use symbols[i]->tag.
2899 2001-12-29 Akim Demaille <akim@epita.fr>
2901 * src/gram.h, src/gram.c (symbols): New, similar to state_table
2903 * src/reader.c (packsymbols): Fill this table.
2905 * src/conflicts.c (resolve_sr_conflict): Adjust.
2906 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
2908 Use symbols[i]->tag instead of tags[i].
2910 2001-12-29 Akim Demaille <akim@epita.fr>
2912 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
2913 In addition, put a comment in there, to replace...
2914 * tests/regression.at (%union and C comments): Remove.
2916 2001-12-29 Akim Demaille <akim@epita.fr>
2918 * tests/regression.at (Web2c Actions): Blindly move the actual
2919 output as expected output. The contents *seem* right to me, but I
2920 can't pretend reading perfectly parser tables... Nonetheless, all
2921 the other tests pass correctly, the table look OK, even though the
2922 presence of `$axiom' is to be noted: AFAICS it is useless (but
2925 2001-12-29 Akim Demaille <akim@epita.fr>
2927 * src/reader.c (readgram): Don't add the rule 0 if there were no
2928 rules read. In other words, add it _after_ having performed
2929 grammar sanity checks.
2930 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
2932 2001-12-29 Akim Demaille <akim@epita.fr>
2934 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
2935 visible, and some states have now a different number.
2937 2001-12-29 Akim Demaille <akim@epita.fr>
2939 * src/reader.c (readgram): Bind the initial rule's lineno to that
2941 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
2942 (Solved SR Conflicts): Adjust rule 0's line number.
2944 2001-12-29 Akim Demaille <akim@epita.fr>
2946 Fix the `GAWK Grammar' failure.
2948 * src/LR0.c (final_state): Initialize to -1 so that we do compute
2949 the reductions of the first state which was mistakenly confused
2950 with the final state because precisely final_state was initialized
2952 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
2953 now noticed by Bison.
2954 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
2955 have a reduction on $default.
2957 2001-12-29 Akim Demaille <akim@epita.fr>
2959 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
2961 * src/closure.c (print_closure): Likewise.
2962 * src/derives.c (print_derives): Likewise.
2963 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
2966 2001-12-29 Akim Demaille <akim@epita.fr>
2968 * src/lalr.c (lookaheads_print): New.
2969 (lalr): Call it when --trace-flag.
2970 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
2973 2001-12-29 Akim Demaille <akim@epita.fr>
2975 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
2976 when walking through ritem, even via rule->rhs.
2977 * src/reduce.c (dump_grammar, useful_production, reduce_output)
2978 (useful_production, useless_nonterminals): Likewise.
2979 (reduce_grammar_tables): Likewise, plus update nritems.
2980 * src/nullable.c (set_nullable): Likewise.
2981 * src/lalr.c (build_relations): Likewise.
2982 * tests/sets.at (Nullable): Adjust.
2983 Fortunately, now, the $axiom is no longer nullable.
2985 2001-12-29 Akim Demaille <akim@epita.fr>
2987 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
2989 * src/gram.c (ritem_longest_rhs): Likewise.
2990 * src/reduce.c (nonterminals_reduce): Likewise.
2991 * src/print_graph.c (print_graph): Likewise.
2992 * src/output.c (output_rule_data): Likewise.
2993 * src/nullable.c (set_nullable): Likewise.
2995 2001-12-29 Akim Demaille <akim@epita.fr>
2997 * src/output.c: Comment changes.
2999 2001-12-27 Paul Eggert <eggert@twinsun.com>
3001 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
3002 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
3003 Sparc, as they were causing more porting problems than the
3004 (minor) performance improvement was worth.
3006 Also, catch up with 1.31's YYSTD.
3008 2001-12-27 Akim Demaille <akim@epita.fr>
3010 * src/output.c (output_gram): Rely on nritems, not the
3011 0-sentinel. See below.
3012 Use -1 as separator, not 0.
3013 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
3014 Rely on -1 as separator in yyrhs, instead of 0.
3015 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
3016 twice `Now at end of input', therefore there are two lines less to
3019 2001-12-27 Akim Demaille <akim@epita.fr>
3021 * tests/regression.at (Unresolved SR Conflicts):
3022 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
3025 2001-12-27 Akim Demaille <akim@epita.fr>
3027 * src/LR0.c (new_state): Recognize the final state by the fact it
3028 is reached by eoftoken.
3029 (insert_start_shifting_state, insert_eof_shifting_state)
3030 (insert_accepting_state, augment_automaton): Remove, since now
3031 these states are automatically computed from the initial state.
3032 (generate_states): Adjust.
3033 * src/print.c: When reporting a rule number to the user, substract
3034 1, so that the axiom rule is rule 0, and the first user rule is 1.
3035 * src/reduce.c: Likewise.
3036 * src/print_graph.c (print_core): For the time being, just as for
3037 the report, depend upon --trace-flags to dump the full set of
3039 * src/reader.c (readgram): Once the grammar read, insert the rule
3040 0: `$axiom: START-SYMBOL $'.
3041 * tests/set.at: Adjust: rule 0 is now displayed, and since the
3042 number of the states has changed (the final state is no longer
3043 necessarily the last), catch up.
3045 2001-12-27 Akim Demaille <akim@epita.fr>
3047 Try to make the use of the eoftoken valid. Given that its value
3048 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
3049 is used instead of > 0 where appropriate, (ii), depend upon nritems
3050 instead of the 0-sentinel.
3052 * src/gram.h, src/gram.c (nritems): New.
3053 Expected to be duplication of nitems, but for the time being...
3054 * src/reader.c (packgram): Assert nritems and nitems are equal.
3055 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
3056 * src/closure.c (print_closure, print_fderives): Likewise.
3057 * src/gram.c (ritem_print): Likewise.
3058 * src/print.c (print_core, print_grammar): Likewise.
3059 * src/print_graph.c: Likewise.
3061 2001-12-27 Akim Demaille <akim@epita.fr>
3063 * src/main.c (main): If there are complains after grammar
3064 reductions, then output the report anyway if requested, then die.
3065 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
3066 * src/reader.c (eoftoken): New.
3067 (parse_token_decl): If the token being defined has value `0', it
3069 (packsymbols): No longer hack `tags' to insert `$' by hand.
3070 Be sure to preserve the value of the eoftoken.
3071 (reader): Make sure eoftoken is defined.
3072 Initialize nsyms to 0: now eoftoken is created just like the others.
3073 * src/print.c (print_grammar): Don't special case the eof token.
3074 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
3075 lie anyway, albeit pleasant.
3076 * tests/calc.at: Exercise error messages with eoftoken.
3077 Change the grammar so that empty input is invalid.
3078 Adjust expectations.
3079 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
3081 2001-12-27 Akim Demaille <akim@epita.fr>
3083 * configure.in: Check the protos of strchr ans strspn.
3084 Replace strchr if needed.
3085 * src/system.h: Provide the protos of strchr, strspn and memchr if
3087 * lib/strchr.c: New.
3088 * src/reader.c (symbols_save): Use strchr.
3090 2001-12-27 Akim Demaille <akim@epita.fr>
3092 * src/print.c, src/print_graph.c (escape): New.
3093 Use it to quote the TAGS outputs.
3094 * src/print_graph.c (print_state): Now errors are in red, and
3095 reductions in green.
3096 Prefer high to wide: output the state number on a line of its own.
3098 2001-12-27 Akim Demaille <akim@epita.fr>
3100 * src/state.h, src/state.c (reductions_new): New.
3101 * src/LR0.c (set_state_table): Let all the states have a
3102 `reductions', even if reduced to 0.
3103 (save_reductions): Adjust.
3104 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
3105 * src/print.c (print_reductions, print_actions): Adjust.
3106 * src/output.c (action_row): Adjust.
3108 2001-12-27 Akim Demaille <akim@epita.fr>
3110 * src/state.h, src/state.c (errs_new, errs_dup): New.
3111 * src/LR0.c (set_state_table): Let all the states have an errs,
3112 even if reduced to 0.
3113 * src/print.c (print_errs, print_reductions): Adjust.
3114 * src/output.c (output_actions, action_row): Adjust.
3115 * src/conflicts.c (resolve_sr_conflict): Adjust.
3117 2001-12-27 Akim Demaille <akim@epita.fr>
3119 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
3121 2001-12-27 Akim Demaille <akim@epita.fr>
3123 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
3124 * src/print.c: here.
3125 (lookaheadset, shiftset): New, used as additional storage by
3127 (print_results): Adjust.
3128 (print_shifts, print_gotos, print_errs): New, extracted from...
3129 (print_actions): here.
3130 * src/print_graph.c (print_actions): Remove dead code.
3132 2001-12-27 Akim Demaille <akim@epita.fr>
3134 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
3137 2001-12-27 Akim Demaille <akim@epita.fr>
3139 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
3140 (build_relations): Adjust.
3142 2001-12-27 Akim Demaille <akim@epita.fr>
3144 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
3147 2001-12-27 Akim Demaille <akim@epita.fr>
3149 * src/reader.c (packgram): Catch nitems overflows.
3151 2001-12-27 Akim Demaille <akim@epita.fr>
3153 * src/files.c, src/files.h (guard_obstack): Remove.
3154 * src/output.c (output): Adjust.
3155 * src/reader.c (parse_braces): New, factoring...
3156 (copy_action, copy_guard): these two which are renamed as...
3157 (parse_action, parse_guard): these.
3158 As a voluntary consequence, using braces around guards is now
3161 2001-12-27 Akim Demaille <akim@epita.fr>
3163 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
3164 * src/reader.c (symbol_list): `guard' and `guard_line' are new
3166 (symbol_list_new): Adjust.
3167 (copy_action): action_line is the first line, not the last.
3168 (copy_guard): Just as for actions, store the `action' only, not
3169 the switch/case/break flesh.
3170 Don't parse the user action that might follow the guard, let...
3171 (readgram): do it, i.e., now, there can be an action after a
3173 In other words the guard is just explicitly optional.
3175 * src/output.c (guards_output): New.
3176 (output_parser): Call it when needed.
3177 (output): Also free the guard and attrs obstacks.
3178 * src/files.c, src/files.h (obstack_save): Remove.
3179 (output_files): Remove.
3180 As a result, if one needs the former `.act' file, using an
3181 appropriate skeleton which requires actions and guards is now
3183 * src/main.c (main): Adjust.
3184 * tests/semantic.at: New.
3185 * tests/regression.at: Use `input.y' as input file name.
3186 Avoid 8+3 problems by requiring input.c when the test needs the
3189 2001-12-27 Akim Demaille <akim@epita.fr>
3191 * src/reader.c (symbol_list_new): Be sure to initialize all the
3194 2001-12-27 Akim Demaille <akim@epita.fr>
3196 All the hacks using a final pseudo state are now useless.
3198 * src/LR0.c (set_state_table): state_table holds exactly nstates.
3199 * src/lalr.c (nLA): New.
3200 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
3201 instead of lookaheadsp from the pseudo state (nstate + 1).
3203 2001-12-27 Akim Demaille <akim@epita.fr>
3205 * src/output.c (action_row, token_actions): Use a state_t instead
3206 of a integer, and nlookaheads instead of the following state's
3209 2001-12-27 Akim Demaille <akim@epita.fr>
3211 * src/conflicts.c (log_resolution, flush_shift)
3212 (resolve_sr_conflict, set_conflicts, solve_conflicts)
3213 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
3214 (conflicts_print, print_reductions): Use a state_t instead of an
3215 integer when referring to a state.
3216 As much as possible, depend upon nlookaheads, instead of the
3217 `lookaheadsp' member of the following state (since lookaheads of
3218 successive states are successive, the difference between state n + 1
3219 and n served as the number of lookaheads for state n).
3220 * src/lalr.c (add_lookback_edge): Likewise.
3221 * src/print.c (print_core, print_actions, print_state)
3222 (print_results): Likewise.
3223 * src/print_graph.c (print_core, print_actions, print_state)
3224 (print_graph): Likewise.
3225 * src/conflicts.h: Adjust.
3227 2001-12-27 Akim Demaille <akim@epita.fr>
3229 * src/bison.hairy: Formatting/comment changes.
3231 Remove `register' indications.
3232 Add plenty of `static'.
3234 2001-12-27 Akim Demaille <akim@epita.fr>
3236 * src/output.c (prepare): Drop the muscle `ntbase' which
3238 * src/bison.simple: Formatting/comment changes.
3239 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
3240 is an undocumented synonym.
3242 2001-12-22 Akim Demaille <akim@epita.fr>
3244 * src/output.c (output_table_data): Change the prototype to use
3245 `int' for array ranges: some invocations do pass an int, not a
3247 Reported by Wayne Green.
3249 2001-12-22 Akim Demaille <akim@epita.fr>
3251 Some actions of web2c.y are improperly triggered.
3252 Reported by Mike Castle.
3254 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
3255 * tests/regression.at (Web2c): Rename as...
3256 (Web2c Report): this.
3257 (Web2c Actions): New.
3259 2001-12-22 Akim Demaille <akim@epita.fr>
3261 Reductions in web2c.y are improperly reported.
3262 Reported by Mike Castle.
3264 * src/conflicts.c (print_reductions): Fix.
3265 * tests/regression.at (Web2c): New.
3267 2001-12-18 Akim Demaille <akim@epita.fr>
3269 Some host fail on `assert (!"foo")', which expands to
3270 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
3271 Reported by Nelson Beebee.
3273 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
3274 `#define it_succeeded 0' and `assert (it_succeeded)'.
3276 2001-12-17 Marc Autret <autret_m@epita.fr>
3278 * src/bison.simple: Don't hard code the skeleton line and filename.
3279 * src/output.c (output_parser): Rename 'line' as 'output_line'.
3280 New line counter 'skeleton_line' (skeleton-line muscle).
3282 2001-12-17 Paul Eggert <eggert@twinsun.com>
3284 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
3285 YYDEBUG must be defined to a nonzero value.
3287 * src/bison.simple (yytname): Do not assume that the user defines
3288 YYDEBUG to a properly parenthesized expression.
3290 2001-12-17 Akim Demaille <akim@epita.fr>
3292 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
3293 nlookaheads is a new member.
3295 * src/lalr.h (nlookaheads): Remove this orphan declaration.
3296 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
3299 2001-12-17 Akim Demaille <akim@epita.fr>
3301 * src/files.h, src/files.c (open_files, close_files): Remove.
3302 * src/main.c (main): Don't open/close files, nor invoke lex_free,
3304 * src/reader.c (reader): Do it.
3306 2001-12-17 Akim Demaille <akim@epita.fr>
3308 * src/conflicts.c (print_reductions): Formatting changes.
3310 2001-12-17 Akim Demaille <akim@epita.fr>
3312 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
3313 (flush_reduce): New.
3314 (resolve_sr_conflict): Adjust.
3316 2001-12-17 Akim Demaille <akim@epita.fr>
3318 * src/output.c (output_obstack): Be static and rename as...
3319 (format_obstack): this, to avoid any confusion with files.c's
3321 * src/reader.h (muscle_obstack): Move to...
3322 * src/output.h: here, since it's defined in output.c.
3324 2001-12-17 Akim Demaille <akim@epita.fr>
3326 * src/output.c (action_row, save_column, default_goto)
3327 (sort_actions, matching_state, pack_vector): Better variable
3330 2001-12-17 Akim Demaille <akim@epita.fr>
3332 * src/output.c: Various formatting changes.
3334 2001-12-17 Akim Demaille <akim@epita.fr>
3336 * src/files.c (output_files): Free the output_obstack.
3337 * src/main.c (main): Call print and print_graph conditionally.
3338 * src/print.c (print): Work unconditionally.
3339 * src/print_graph.c (print_graph): Work unconditionally.
3340 * src/conflicts.c (log_resolution): Output only if verbose_flag.
3342 2001-12-16 Marc Autret <autret_m@epita.fr>
3344 * src/output.c (actions_output): Fix. When we use %no-lines,
3345 there is one less line per action.
3347 2001-12-16 Marc Autret <autret_m@epita.fr>
3349 * src/bison.simple: Remove a useless #line directive.
3350 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
3351 * src/output.c (get_lines_number): New.
3352 (output_parser): Adjust, now takes care about the lines of a
3355 (actions_output): Computes the number of lines taken by actions.
3356 (output_master_parser): Insert new skeleton which is the name of
3357 the output parser file name.
3359 2001-12-15 Marc Autret <autret_m@epita.fr>
3361 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
3363 2001-12-15 Marc Autret <autret_m@epita.fr>
3365 * src/output.c (output_gram): Keep track of the hairy one.
3367 2001-12-15 Akim Demaille <akim@epita.fr>
3369 Make `make distcheck' work.
3371 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
3372 system.h which uses libgettext.h.
3374 2001-12-15 Akim Demaille <akim@epita.fr>
3376 * src/nullable.c (set_nullable): Useless rules must be skipped,
3377 otherwise, since we range over their symbols, we might look at a
3378 nonterminal which no longer ``exists'', i.e., it is not counted in
3379 `nvars', hence we overflow our arrays.
3381 2001-12-15 Akim Demaille <akim@epita.fr>
3383 The header can also be produced directly, without any obstack!
3386 * src/files.c, src/files.h (defines_obstack): Remove.
3387 (compute_header_macro): Global.
3388 (defines_obstack_save): Remove.
3389 * src/reader.c (parse_union_decl): No longer output to
3390 defines_obstack: its content can be found in the `stype' muscle
3392 (output_token_translations): Merge into...
3393 (symbols_output): this.
3395 (symbols_save): this.
3397 * src/output.c (header_output): New.
3400 2001-12-15 Akim Demaille <akim@epita.fr>
3402 * src/reader.c (parse_union_decl): Instead of handling two obstack
3403 simultaneously, use one to define the `stype' muscle, and use the
3404 value of the latter to fill defines_obstack.
3405 (copy_comment): Remove.
3406 (copy_comment2): Work for a single obstack.
3408 (copy_comment): this.
3410 2001-12-15 Akim Demaille <akim@epita.fr>
3412 * src/lex.c, src/lex.h (xgetc): No longer static.
3413 * src/reader.c (parse_union_decl): Revamp.
3415 2001-12-15 Akim Demaille <akim@epita.fr>
3417 Still making progress in separating Bison into (i) input, (ii)
3418 process, (iii) output: now we can directly output the parser file
3419 without using table_obstack at all.
3421 * src/files.c, src/files.h (table_obstack): Bye bye.
3422 (parser_file_name): New.
3423 * src/files.c (compute_output_file_names): Compute it.
3424 * src/output.c (actions_output, output_parser)
3425 (output_master_parser): To a file instead of an obstack.
3427 2001-12-15 Akim Demaille <akim@epita.fr>
3429 Attach actions to rules, instead of pre-outputting them to
3432 * src/gram.h (rule_t): action and action_line are new members.
3433 * src/reader.c (symbol_list): Likewise.
3434 (copy_action): Save the actions within the rule.
3435 (packgram): Save them in rule_table.
3436 * src/output.c (actions_output): New.
3437 (output_parser): Use it on `%%actions'.
3438 (output_rule_data): Don't free rule_table.
3440 (prepare): Don't save the `action' muscle.
3441 * src/bison.simple: s/%%action/%%actions/.
3443 2001-12-15 Akim Demaille <akim@epita.fr>
3445 * src/reader.c (copy_action): When --yacc, don't append a `;'
3446 to the user action: let it fail if lacking.
3447 Suggested by Arnold Robbins and Tom Tromey.
3449 2001-12-14 Akim Demaille <akim@epita.fr>
3451 * src/lex.c (literalchar): Simply return the char you decoded, non
3452 longer mess around with obstacks and int pointers.
3455 2001-12-14 Akim Demaille <akim@epita.fr>
3457 * src/lex.c (literalchar): Don't escape the special characters,
3458 just decode them, and keep them as char (before, eol was output as
3459 the 2 char string `\n' etc.).
3460 * src/output.c (output_rule_data): Use quotearg to output the
3463 2001-12-13 Paul Eggert <eggert@twinsun.com>
3465 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
3466 Do not infringe on the global user namespace when using C++.
3467 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
3468 All uses of `fprintf' and `stderr' changed.
3470 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
3472 2001-12-13 Akim Demaille <akim@epita.fr>
3474 The computation of nullable is broken: it doesn't handle empty
3477 * tests/torture.at (GNU AWK Grammar): New.
3478 * tests/sets.at (Nullable): New.
3479 * src/nullable.c (set_nullable): Instead of blindly looping over
3480 `ritems', loop over the rules, and then over their rhs's.
3482 Work around Autotest bugs.
3484 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
3485 frame, because Autotest understand lines starting with a `+' as
3486 traces from the shell. Then, they are not processed properly.
3487 Admittedly an Autotest bug, but we don't have time to wait for
3488 Autotest to catch up.
3489 * tests/regression.at (Broken Closure): Adjust to the new table
3492 * tests/sets.at: here.
3494 2001-12-13 Akim Demaille <akim@epita.fr>
3496 * src/closure.c (closure): Use nrules instead of playing tricks
3499 2001-12-13 Akim Demaille <akim@epita.fr>
3501 * src/print.c (print_actions): Output the handling of `$' as the
3502 traces do: shifting the token EOF. Before EOF was treated as a
3504 * tests/regression.at: Adjust some tests.
3505 * src/print_graph.c (print_core): Complete the set of items via
3506 closure. The next-to-final and final states are still unsatisfying,
3507 but that's to be addressed elsewhere.
3508 No longer output the rule numbers, but do output the state number.
3509 A single loop for the shifts + gotos is enough, but picked a
3510 distinct color for each.
3511 (print_graph): Initialize and finalize closure.
3513 2001-12-13 Akim Demaille <akim@epita.fr>
3515 * src/reader.c (readgram): Remove dead code, an strip useless
3517 (get_type): Remove, unused.
3519 2001-12-12 Akim Demaille <akim@epita.fr>
3521 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
3522 on that of lib/error.c.
3524 2001-12-12 Akim Demaille <akim@epita.fr>
3526 Some hosts don't like `/' in includes.
3528 * src/system.h: Include libgettext.h without qualifying the path.
3529 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
3532 2001-12-11 Marc Autret <autret_m@epita.fr>
3534 * src/output.c (output_parser): Remove useless muscle.
3536 2001-12-11 Marc Autret <autret_m@epita.fr>
3538 * src/bison.simple: Remove #line just before %%epilogue. It
3539 is now handled in ...
3540 * src/reader.c (read_additionnal_code): Add the output of a
3541 #line for the epilogue.
3543 2001-12-10 Marc Autret <autret_m@epita.fr>
3545 * src/reader.c (copy_definition): Re-use CPP-outed code which
3546 replace precedent remove.
3547 * src/bison.simple: Remove #line before %%prologue because
3548 %%input-line is wrong at this time.
3550 2001-12-10 Marc Autret <autret_m@epita.fr>
3552 * src/reader.c (symbols_output): Clean up.
3553 * src/output.c (output_gram, output): Clean up.
3555 2001-12-10 Akim Demaille <akim@epita.fr>
3557 * src/lalr.c (initialize_lookaheads): New. Extracted from...
3558 * src/LR0.c (set_state_table): here.
3559 * src/lalr.c (lalr): Call it.
3561 2001-12-10 Akim Demaille <akim@epita.fr>
3563 * src/state.h (shifts): Remove the `number' member: shifts are
3564 attached to state, hence no longer need to be labelled with a
3567 2001-12-10 Akim Demaille <akim@epita.fr>
3569 Now that states have a complete set of members, the linked list of
3570 shifts is useless: just fill directly the state's shifts member.
3572 * src/state.h (shifts): Remove the `next' member.
3573 * src/LR0.c (first_state, last_state): Remove.
3575 (augment_automaton): Don't look for the shifts that must be added
3576 a shift on EOF: it is those of the state we looked for! But now,
3577 since shifts are attached, it is no longer needed to looking
3578 merely by its id: its number.
3580 2001-12-10 Akim Demaille <akim@epita.fr>
3582 * src/LR0.c (augment_automaton): Better variable locality.
3583 Remove an impossible branch: if there is a state corresponding to
3584 the start symbol being shifted, then there is shift for the start
3585 symbol from the initial state.
3587 2001-12-10 Akim Demaille <akim@epita.fr>
3589 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
3590 only when appropriate: when insert_start_shifting_state' is not
3592 * tests/regression.at (Rule Line Numbers): Adjust.
3594 2001-12-10 Akim Demaille <akim@epita.fr>
3596 * src/LR0.c (augment_automaton): Now that all states have shifts,
3597 merge the two cases addition shifts to the initial state.
3599 2001-12-10 Akim Demaille <akim@epita.fr>
3601 * src/lalr.c (set_state_table): Move to...
3603 * src/lalr.c (lalr): Don't call it...
3604 * src/LR0.c (generate_states): do it.
3605 * src/LR0.h (first_state): Remove, only the table is used.
3607 2001-12-10 Akim Demaille <akim@epita.fr>
3609 * src/LR0.h (first_shift, first_reduction): Remove.
3610 * src/lalr.c: Don't use first_shift: find shifts through the
3613 2001-12-10 Akim Demaille <akim@epita.fr>
3615 * src/LR0.c: Attach shifts to states as soon as they are
3617 * src/lalr.c (set_state_table): Instead of assigning shifts to
3618 state, just assert that the mapping was properly done.
3620 2001-12-10 Akim Demaille <akim@epita.fr>
3622 * src/LR0.c (insert_start_shift): Rename as...
3623 (insert_start_shifting_state): this.
3624 (insert_eof_shifting_state, insert_accepting_state): New.
3625 (augment_automaton): Adjust.
3626 Better locality of the variables.
3627 When looking if the start_symbol is shifted from the initial
3628 state, using `while (... symbol != start_symbol ...)' sounds
3629 better than `while (... symbol < start_symbol ...)': If fail
3630 to see how the order between symbols could be relevant!
3632 2001-12-10 Akim Demaille <akim@epita.fr>
3634 * src/getargs.h: Don't declare `spec_name_prefix' and
3635 `spec_file_prefix', declared by src/files.h.
3636 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
3637 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
3638 * src/output.c (prepare): Adjust.
3639 * src/reader.c (symbols_output): Likewise.
3640 * src/vmsgetargs.c: Vaguely adjust, but who cares?
3642 2001-12-10 Akim Demaille <akim@epita.fr>
3644 * src/muscle_tab.c (muscle_init): NULL is a better default than
3647 2001-12-10 Akim Demaille <akim@epita.fr>
3649 * src/reader.c (reader): Calling symbols_output once is enough.
3651 2001-12-10 Akim Demaille <akim@epita.fr>
3653 Now that states have a complete set of members, the linked list of
3654 reductions is useless: just fill directly the state's reductions
3657 * src/state.h (struct reductions): Remove member `number' and
3659 * src/LR0.c (first_reduction, last_reduction): Remove.
3660 (save_reductions): Don't link the new reductions, store them in
3662 * src/lalr.c (set_state_table): No need to attach reductions to
3663 states, it's already done.
3664 * src/output.c (output_actions): No longer free the shifts, then
3665 the reductions, then the states: free all the states and their
3668 2001-12-10 Akim Demaille <akim@epita.fr>
3670 * src/options.c (OPTN, DRTV, BOTH): New.
3671 (option_table): Use them.
3673 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
3674 the job of system.h.
3675 * src/options.c: Don't include stdio.h and xalloc.h for the same
3678 2001-12-10 Akim Demaille <akim@epita.fr>
3680 * src/output.c (output, prepare): Make sure the values of the
3681 muscles `action' and `prologue' are 0-terminated.
3683 2001-12-10 Akim Demaille <akim@epita.fr>
3685 Clean up GCC warnings.
3687 * src/reader.c (copy_action): `buf' is not used.
3688 (parse_skel_decl): Be static.
3689 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
3690 * src/options.h (create_long_option_table): Have a real prototype.
3691 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
3692 (hash_delete_at): Return const void *.
3693 Adjust casts to preserve the const.
3695 2001-12-10 Akim Demaille <akim@epita.fr>
3697 * configure.in: Require 2.52g.
3698 M4 is not needed, but AUTOM4TE is.
3700 * tests/Makefile.am: Adjust.
3702 2001-12-10 Akim Demaille <akim@epita.fr>
3704 One structure for states is enough, even though theoretically
3705 there are LR(0) states and LALR(1) states.
3707 * src/lalr.h (state_t): Remove.
3708 (state_table): Be state_t **, not state_t *.
3709 * src/state.h (core, CORE_ALLOC): Rename as...
3710 (state_t, STATE_ALLOC): this.
3711 Add the LALR(1) members: shifts, reductions, errs.
3712 * src/LR0.c (state_table): Rename as...
3713 (state_hash): this, to avoid name clashes with the global
3715 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
3716 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
3718 2001-12-10 Akim Demaille <akim@epita.fr>
3720 Bison dumps core on bash.y.
3721 Reported by Pascal Bart.
3723 * src/warshall.c (bitmatrix_print): New.
3725 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
3726 j must be the outer loop.
3727 * tests/regression.at (Broken Closure): New.
3729 2001-12-05 Akim Demaille <akim@epita.fr>
3731 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
3733 Reported by Peter Hámorský.
3735 2001-12-05 Akim Demaille <akim@epita.fr>
3737 * src/conflicts.c (err_table): Remove.
3738 (resolve_sr_conflict): Adjust.
3739 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
3741 (state_t.reductions, state_t.shifts): this.
3743 2001-12-05 Akim Demaille <akim@epita.fr>
3745 * src/reduce.c (reduce_grammar_tables): No longer disable the
3746 removal of useless rules via CPP but via `if (0)', so that the
3747 compiler still check the code is valid.
3748 For instance, it should have noticed `rline' no longer exists: use
3749 the `line' member of rule_t.
3750 * src/gram.c (dummy, rline): Remove, unused.
3752 2001-12-05 Akim Demaille <akim@epita.fr>
3754 * src/output.c (pack_vector): Use assert, not berror.
3755 * src/main.c (berror): Remove, unused.
3757 2001-12-05 Akim Demaille <akim@epita.fr>
3759 New experimental feature: if --verbose --trace output all the
3760 items of a state, not only its kernel.
3762 * src/print.c (print_core): If `trace_flag', then invoke closure
3763 before outputting the items of the state (print_core is no longer
3764 a correct name them).
3765 (print_results): Invoke new_closure/free_closure if needed.
3767 2001-12-05 Akim Demaille <akim@epita.fr>
3769 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
3770 * src/closure.c, src/closure.h (itemsetsize): Rename as...
3771 (nitemset): for consistency with the rest of the project.
3773 2001-12-05 Akim Demaille <akim@epita.fr>
3775 * src/closure.c (print_closure): Improve.
3776 (closure): Use it for printing input and output.
3778 2001-12-05 Akim Demaille <akim@epita.fr>
3780 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
3781 indexed by nonterminals.
3783 2001-12-05 Akim Demaille <akim@epita.fr>
3785 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
3787 * src/warshall.h: Remove accidental duplication of the content.
3789 2001-12-05 Akim Demaille <akim@epita.fr>
3791 * src/closure.c (set_fderives): De-obfuscate.
3793 2001-12-05 Akim Demaille <akim@epita.fr>
3795 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
3797 2001-12-05 Akim Demaille <akim@epita.fr>
3799 * src/closure.c (set_firsts): De-obfuscate.
3801 2001-12-05 Akim Demaille <akim@epita.fr>
3803 * src/output.c (action_row): De-obfuscate
3804 using the good o' techniques: arrays not pointers, variable
3805 locality, BITISSET, RESETBIT etc.
3807 2001-12-05 Akim Demaille <akim@epita.fr>
3809 Pessimize the code to simplify it: from now on, all the states
3810 have a valid SHIFTS, which NSHIFTS is possibly 0.
3812 * src/LR0.c (shifts_new): Be global and move to..
3813 * src/state.c, src/state.h: here.
3814 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
3815 * src/print_graph: Adjust.
3817 2001-12-05 Akim Demaille <akim@epita.fr>
3819 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
3820 * src/conflicts.c: Use it.
3821 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
3822 incorrectly ``simplified''.
3824 2001-12-05 Akim Demaille <akim@epita.fr>
3826 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
3827 using the good o' techniques: arrays not pointers, variable
3828 locality, BITISSET, RESETBIT etc.
3830 2001-12-05 Akim Demaille <akim@epita.fr>
3832 * src/state.h (SHIFT_SYMBOL): New.
3833 * src/conflicts.c: Use it to deobfuscate.
3835 2001-12-05 Akim Demaille <akim@epita.fr>
3837 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
3838 (print_reductions): De-obfuscate using the good o' techniques:
3839 arrays not pointers, variable locality, BITISSET.
3841 2001-12-05 Akim Demaille <akim@epita.fr>
3843 * src/conflicts.c (print_reductions): Arrays, not pointers.
3846 2001-12-05 Akim Demaille <akim@epita.fr>
3848 * src/conflicts.c (print_reductions): Pessimize, but clarify.
3850 2001-12-05 Akim Demaille <akim@epita.fr>
3852 * src/conflicts.c (print_reductions): Improve variable locality.
3854 2001-12-05 Akim Demaille <akim@epita.fr>
3856 * src/conflicts.c (print_reductions): Pessimize, but clarify.
3858 2001-12-05 Akim Demaille <akim@epita.fr>
3860 * src/conflicts.c (print_reductions): Improve variable locality.
3862 2001-12-05 Akim Demaille <akim@epita.fr>
3864 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
3865 * src/lalr.c: Use them.
3867 2001-12-05 Akim Demaille <akim@epita.fr>
3869 * src/LR0.c (augment_automaton): Formatting changes.
3870 Better variable locality.
3872 2001-12-05 Akim Demaille <akim@epita.fr>
3874 * src/lalr.c (matrix_print): New.
3875 (transpose): Use it.
3876 Use arrays instead of pointers.
3878 2001-12-05 Akim Demaille <akim@epita.fr>
3880 * src/lalr.c (maxrhs): Move to...
3881 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
3882 * src/lalr.c (build_relations): Adjust.
3884 2001-12-05 Akim Demaille <akim@epita.fr>
3886 * src/lalr.c (transpose): Free the memory allocated to the
3887 argument, as it is replaced by the results by the unique caller.
3888 (build_relations): Merely invoke transpose: it handles the memory
3890 Improve variable locality.
3891 Avoid variables used as mere abbreviations.
3892 (compute_lookaheads): Use arrays instead of pointers.
3894 2001-12-05 Akim Demaille <akim@epita.fr>
3896 * src/lalr.c (initialize_F): Improve variable locality.
3897 Avoid variables used as mere abbreviations.
3899 2001-12-05 Akim Demaille <akim@epita.fr>
3901 * src/derives.c (print_derives): Display the ruleno.
3902 * src/lalr.c (initialize_F, transpose): Better variable locality
3903 to improve readability.
3904 Avoid variables used as mere abbreviations.
3906 2001-12-05 Akim Demaille <akim@epita.fr>
3908 * src/lalr.c (traverse): Use arrays instead of pointers.
3910 2001-12-05 Akim Demaille <akim@epita.fr>
3912 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
3913 the handling of squeue.
3914 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
3916 2001-12-05 Akim Demaille <akim@epita.fr>
3918 Because useless nonterminals are now kept alive (instead of being
3919 `destroyed'), we now sometimes examine them, and store information
3920 related to them. Hence we need to know their number, and adjust
3923 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
3925 * src/LR0.c (allocate_itemsets): The memory allocated to
3926 `symbol_count' was used for two different purpose: once to count
3927 the number of occurrences of each symbol, and later reassigned to
3928 `shift_symbol', containing the symbol that can be shifted from a
3930 Deobfuscate, i.e., allocate, use and free `symbol_count' here
3932 (new_itemsets): Allocate `shift_symbol' here.
3933 (allocate_itemsets): symbol_count includes useless nonterminals.
3935 (free_storage): Use `free', not `XFREE', for pointers that cannot
3938 2001-12-05 Akim Demaille <akim@epita.fr>
3940 * src/nullable.c (set_nullable): Deobfuscate the handling of
3942 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
3944 2001-12-05 Akim Demaille <akim@epita.fr>
3946 * src/gram.c, src/gram.h (ritem_print): New.
3947 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
3948 (This useless function was defined only to work around VMS linkers
3949 that can't handle compilation units with variables only).
3950 * src/reduce.c (dump_grammar): Use it to trace the construction of
3953 2001-12-04 Paul Eggert <eggert@twinsun.com>
3955 * src/bison.simple (union yyalloc): Change member names
3956 to be the same as the stack names.
3957 (yyparse): yyptr is now union yyalloc *, not char *.
3958 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
3959 and may generate better code on some machines.
3960 (yystpcpy): Use prototype if __STDC__ is defined, not just
3961 if __cplusplus is defined.
3963 2001-11-30 Akim Demaille <akim@epita.fr>
3965 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
3966 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
3967 Gettext doesn't compile cleanly, and dies with -Werror.
3968 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
3969 Include WARNING_CFLAGS here.
3970 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
3971 before being defined.
3973 2001-11-27 Paul Eggert <eggert@twinsun.com>
3975 * lib/quotearg.h (quotearg_n, quotearg_n_style):
3976 First arg is int, not unsigned.
3977 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
3978 (SIZE_MAX, UINT_MAX): New macros.
3979 (quotearg_n_options): Abort if N is negative.
3980 Avoid overflow check on hosts where size_t is 64 bits and int
3981 is 32 bits, as overflow is impossible there.
3982 Fix off-by-one typo that caused unnecessary reallocation.
3984 2001-11-29 Paul Eggert <eggert@twinsun.com>
3986 Name space cleanup in generated parser.
3988 * doc/bison.texinfo (Bison Parser): Discuss system headers
3989 and their effect on the user name space.
3992 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
3993 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
3994 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
3996 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
3997 on user names when possible.
3999 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
4000 Simplify test for whather <alloca.h> exists.
4002 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
4004 (<stdio.h>): Include if YYDEBUG.
4006 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
4007 ! defined (yyoverflow) && ! defined (yymemcpy).
4009 (yymemcpy, yyparse): Rename local variables as needed so that
4010 they all begin with 'yy'.
4012 (yystrlen, yystpcpy): New functions.
4014 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
4017 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
4018 instead of relying on string.h functions. Use YYSTACK_ALLOC
4019 and YYSTACK_FREE instead of malloc and free.
4021 2001-11-30 Akim Demaille <akim@epita.fr>
4023 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
4024 before their first uses.
4025 (YYBISON, YYPURE): Move to the top of the output.
4027 2001-11-30 Akim Demaille <akim@epita.fr>
4029 * tests/reduce.at (Useless Nonterminals): Fix.
4031 2001-11-30 Akim Demaille <akim@epita.fr>
4033 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
4034 if body instead of `;' to pacify GCC's warnings.
4036 2001-11-30 Akim Demaille <akim@epita.fr>
4038 Instead of mapping the LHS of unused rules to -1, keep the LHS
4039 valid, but flag the rules as invalid.
4041 * src/gram.h (rule_t): `useful' is a new member.
4042 * src/print.c (print_grammar): Adjust.
4043 * src/derives.c (set_derives): Likewise.
4044 * src/reader.c (packgram, reduce_output): Likewise.
4045 * src/reduce.c (reduce_grammar_tables): Likewise.
4046 * tests/reduce.at (Underivable Rules, Useless Rules): New.
4048 2001-11-30 Akim Demaille <akim@epita.fr>
4050 * src/reduce.c (reduce_output): Formatting changes.
4051 * src/print.c (print_results, print_grammar): Likewise.
4052 * tests/regression.at (Rule Line Numbers)
4053 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
4055 2001-11-30 Akim Demaille <akim@epita.fr>
4057 * src/reduce.c (nonterminals_reduce): Instead of throwing away
4058 useless nonterminals, move them at the end of the symbol arrays.
4059 (reduce_output): Adjust.
4060 * tests/reduce.at (Useless Nonterminals): Adjust.
4062 2001-11-30 Akim Demaille <akim@epita.fr>
4064 * src/reduce.c: Various comment/formatting changes.
4065 (nonterminals_reduce): New, extracted from...
4066 (reduce_grammar_tables): here.
4067 (reduce_grammar): Call nonterminals_reduce.
4069 2001-11-29 Paul Eggert <eggert@twinsun.com>
4071 * src/bison.simple (YYSTACK_REALLOC): Remove.
4072 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
4073 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
4075 (union yyalloc): New type.
4076 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
4077 an arbitrary restriction on hosts where size_t is wider than int.
4079 (yyparse): Don't dump core if alloca or malloc fails; instead, report
4080 a parser stack overflow. Allocate just one block of memory for all
4081 three stacks, instead of allocating three blocks; this typically is
4082 faster and reduces fragmentation.
4084 Do not limit the number of items in the stack to a value that fits
4085 in 'int', as this is an arbitrary limit on hosts with 64-bit
4086 size_t and 32-bit int.
4088 2001-11-29 Marc Autret <autret_m@epita.fr>
4090 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
4091 of defining YYERROR_VERBOSE.
4092 [AT_DATA]: $4 is now out of C declarations in the prologue.
4094 2001-11-28 Marc Autret <autret_m@epita.fr>
4096 * src/reader.c (parse_dquoted_param): New.
4097 (parse_skel_decl): Use it.
4098 * src/lex.h: Add its prototype.
4099 * src/lex.c (literalchar): Become not static.
4101 2001-11-28 Marc Autret <autret_m@epita.fr>
4103 * src/output.h: And put its extern declaration here.
4104 * src/output.c (error_verbose): Define here.
4105 (prepare): Echo name modification.
4106 * src/getargs.h: Clean its extern declaration.
4107 * src/getargs.c (error_verbose_flag): Remove.
4108 (getargs): Remove case 'e'.
4109 * src/options.c (option_table): 'error-verbose' is now seen as simple
4113 * src/reader.c (read_declarations): Remove case tok_include.
4114 (parse_include_decl): Remove.
4115 * src/lex.h (token_t): Remove tok_include.
4116 * src/options.c (option_table): 'include' is now a simple command line
4119 2001-11-28 Marc Autret <autret_m@epita.fr>
4121 * src/bison.simple: Adjust muscle names.
4122 * src/muscle_tab.c (muscle_init): Also rename the muscles.
4123 * src/output.c (prepare): s/_/-/ for the muscles names.
4124 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
4126 2001-11-28 Marc Autret <autret_m@epita.fr>
4128 * src/bison.simple: Fix debug.
4129 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
4131 2001-11-28 Akim Demaille <akim@epita.fr>
4133 * src/LR0.c (shifts_new): New.
4134 (save_shifts, insert_start_shift, augment_automaton): Use it.
4136 2001-11-28 Akim Demaille <akim@epita.fr>
4138 * src/closure.c (closure): `b' and `ruleno' denote the same value:
4141 2001-11-28 Akim Demaille <akim@epita.fr>
4143 * src/closure.c (closure): Instead of looping over word in array
4144 then bits in words, loop over bits in array.
4146 2001-11-28 Akim Demaille <akim@epita.fr>
4148 * src/closure.c (closure): No longer optimize the special case
4149 where all the bits of `ruleset[r]' are set to 0, to make the code
4152 2001-11-28 Akim Demaille <akim@epita.fr>
4154 * src/closure.c (closure): `r' and `c' are new variables, used to
4155 de-obfuscate accesses to RULESET and CORE.
4157 2001-11-28 Akim Demaille <akim@epita.fr>
4159 * src/reduce.c (reduce_print): Use ngettext.
4160 (dump_grammar): Improve the trace accuracy.
4162 2001-11-28 Akim Demaille <akim@epita.fr>
4164 * src/reduce.c (dump_grammar): Don't translate trace messages.
4166 2001-11-28 Akim Demaille <akim@epita.fr>
4168 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
4169 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
4170 as all tags are free'ed afterwards.
4173 2001-11-27 Paul Eggert <eggert@twinsun.com>
4175 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
4176 use alloca when we didn't want to, and vice versa.
4178 2001-11-27 Marc Autret <autret_m@epita.fr>
4180 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
4182 * src/output.c (prepare): Remove its update.
4184 2001-11-27 Marc Autret <autret_m@epita.fr>
4186 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
4189 2001-11-27 Marc Autret <autret_m@epita.fr>
4191 * src/bison.simple: Remove YYERROR_VERBOSE using.
4192 Use %%error_verbose.
4193 (yyparse): Likewise.
4194 * src/output.c (prepare): Give its final value.
4195 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
4196 * src/getargs.h: Add its extern declaration.
4197 * src/getargs.c (error_verbose_flag): New int.
4198 (getargs): Update to catch new case.
4199 * src/options.c (option_table): 'error-verbose' is a new option.
4200 (shortopts): Update.
4202 2001-11-27 Akim Demaille <akim@epita.fr>
4204 * src/system.h: Use intl/libgettext.h.
4205 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
4207 2001-11-27 Akim Demaille <akim@epita.fr>
4209 * tests/torture.at (Exploding the Stack Size with Malloc):
4210 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
4212 2001-11-27 Akim Demaille <akim@epita.fr>
4214 * src/files.c: Include error.h.
4215 Reported by Hans Aberg.
4217 2001-11-26 Marc Autret <autret_m@epita.fr>
4219 * src/reader.c (parse_include_decl): New, not yet implemented.
4220 (read_declarations): Add case tok_include.
4221 * src/getargs.h (include): Add its extern definition.
4222 * src/getargs.c (include): New const char *.
4223 (getargs): Add case '-I'.
4224 * src/options.c (option_table): Add include as command line and
4226 * src/lex.h (token_t): Add tok_include.
4228 2001-11-26 Akim Demaille <akim@epita.fr>
4230 * src/reader.c (readgram): Make sure rules for mid-rule actions
4231 have a lineno equal to that of their host rule.
4232 Reported by Hans Aberg.
4233 * tests/regression.at (Rule Line Numbers): New.
4235 2001-11-26 Akim Demaille <akim@epita.fr>
4237 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
4240 2001-11-26 Akim Demaille <akim@epita.fr>
4242 * src/complain.c, src/complain.h (error): Remove, provided by
4245 2001-11-26 Akim Demaille <akim@epita.fr>
4247 * src/reader.c (read_declarations): Don't abort on tok_illegal,
4248 issue an error message.
4249 * tests/regression.at (Invalid %directive): New.
4250 Reported by Hans Aberg.
4252 2001-11-26 Akim Demaille <akim@epita.fr>
4254 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
4255 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
4257 2001-11-26 Akim Demaille <akim@epita.fr>
4259 * src/conflicts.c (conflicts_print): Don't complain at all when
4260 there are no reduce/reduce conflicts, and as many shift/reduce
4261 conflicts as expected.
4262 * tests/regression.at (%expect right): Adjust.
4264 2001-11-23 Akim Demaille <akim@epita.fr>
4266 * lib/alloca.c: Update, from fileutils.
4268 2001-11-23 Akim Demaille <akim@epita.fr>
4270 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
4272 2001-11-23 Akim Demaille <akim@epita.fr>
4274 * src/system.h: Include alloca.h.
4275 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
4277 2001-11-23 Akim Demaille <akim@epita.fr>
4279 * src/print_graph.c (print_actions): Remove `rule', unused.
4280 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
4281 pacify GCC's signed < unsigned warnings.
4282 * src/closure.c (itemsetsize): Likewise.
4283 * src/reader.c (symbol_list_new): Static.
4285 2001-11-23 Akim Demaille <akim@epita.fr>
4287 Attaching lineno to buckets is stupid, since only one copy of each
4288 symbol is kept, only the line of the first occurrence is kept too.
4290 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
4291 * src/reader.c (rline_allocated): Remove, unused.
4292 (symbol_list): Have a `line' member.
4293 (symbol_list_new): New.
4295 * src/print.c (print_grammar): Output the rule line numbers.
4296 * tests/regression.at (Solved SR Conflicts)
4297 (Unresolved SR Conflicts): Adjust.
4298 Reported by Hans Aberg.
4300 2001-11-22 Marc Autret <autret_m@epita.fr>
4302 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
4304 2001-11-22 Marc Autret <autret_m@epita.fr>
4306 * src/muscle_tab.c (muscle_init): Remove initialization of
4308 * src/output.c (output_master_parser): Do it here.
4310 2001-11-20 Akim Demaille <akim@epita.fr>
4313 * configure.in (ALL_LINGUAS): Adjust.
4314 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
4315 longer contains strings to translate.
4317 2001-11-19 Akim Demaille <akim@epita.fr>
4319 * src/conflicts.c (conflicts_print): Add a missing \n.
4321 2001-11-19 Akim Demaille <akim@epita.fr>
4323 * src/nullable.c (nullable_print): New.
4324 (set_nullable): Call it when tracing.
4325 Better locality of variables.
4327 2001-11-19 Akim Demaille <akim@epita.fr>
4329 * src/print.c (print_actions): Better locality of variables.
4331 2001-11-19 Akim Demaille <akim@epita.fr>
4333 * src/derives.c (print_derives): Fix and enrich.
4334 * src/closure.c (print_fderives): Likewise.
4336 2001-11-19 Akim Demaille <akim@epita.fr>
4338 * src/closure.c (itemsetend): Remove, replaced with...
4341 2001-11-19 Akim Demaille <akim@epita.fr>
4343 * src/LR0.c (kernel_end): Remove, replaced with...
4346 2001-11-19 Akim Demaille <akim@epita.fr>
4348 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
4351 2001-11-19 Akim Demaille <akim@epita.fr>
4353 * src/closure.c (closure): Use arrays instead of pointers to clarify.
4355 2001-11-19 Akim Demaille <akim@epita.fr>
4357 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
4359 * src/LR0.c: Likewise.
4360 (allocate_itemsets): Use arrays instead of pointers to clarify.
4362 2001-11-19 Akim Demaille <akim@epita.fr>
4364 * src/getargs.c (statistics_flag): Replace with...
4366 (longopts): Accept --trace instead of --statistics.
4367 * src/getargs.h, src/options.c: Adjust.
4368 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
4369 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
4371 2001-11-19 Akim Demaille <akim@epita.fr>
4373 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
4374 pointers to clarify the code.
4375 (save_reductions, save_shifts): Factor common parts of alternatives.
4377 2001-11-19 Akim Demaille <akim@epita.fr>
4379 * src/LR0.c (new_state, get_state): Complete TRACE code.
4380 * src/closure.c: Include `reader.h' to get `tags', needed by the
4382 Rename the conditional DEBUG as TRACE.
4383 Output consistently TRACEs to stderr, not stdout.
4384 * src/derives.c: Likewise.
4385 * src/reduce.c: (inaccessable_symbols): Using if is better style
4387 Use `#if TRACE' instead of `#if 0' for tracing code.
4389 2001-11-19 Akim Demaille <akim@epita.fr>
4391 * src/system.h (LIST_FREE, shortcpy): New.
4392 * src/LR0.c: Use them.
4393 * src/output.c (free_itemsets, free_reductions, free_shifts):
4394 Remove, replaced by LIST_FREE.
4396 2001-11-19 Akim Demaille <akim@epita.fr>
4398 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
4399 (REDUCTIONS_ALLOC): New.
4400 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
4403 2001-11-19 Akim Demaille <akim@epita.fr>
4405 * src/LR0.c (new_state): Complete trace code.
4406 * src/nullable.c (set_nullable): Don't translate traces.
4408 2001-11-19 Akim Demaille <akim@epita.fr>
4410 * src/print_graph.c (print_core): Better locality of variables.
4411 * src/print.c (print_core): Likewise.
4413 2001-11-19 Akim Demaille <akim@epita.fr>
4415 * src/vcg.c: You do the output, so you are responsible of the
4416 handling of VCG syntax, in particular: use quotearg.
4417 * src/print_graph.c: Don't.
4418 (print_actions): Don't output the actions as part of the nodes,
4419 since that's the job of the edges.
4420 (print_state): Don't output by hand: fill the node description,
4421 and ask for its output.
4423 2001-11-19 Akim Demaille <akim@epita.fr>
4425 * src/bison.simple (yyparse): When verbosely reporting an error,
4426 no longer put additional quotes around token names.
4427 * tests/calc.at: Adjust.
4429 2001-11-19 Akim Demaille <akim@epita.fr>
4431 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
4432 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
4433 * src/output.c: Adjust.
4435 2001-11-19 Akim Demaille <akim@epita.fr>
4437 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
4439 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
4441 2001-11-19 Akim Demaille <akim@epita.fr>
4443 * src/gram.h (rule_t): New.
4445 (rrhs, rlhs): Remove, part of state_t.
4446 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
4447 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
4448 * src/reader.c, src/reduce.c: Adjust.
4450 2001-11-19 Akim Demaille <akim@epita.fr>
4452 * src/reader.c (symbols_output): New, extracted from...
4453 (packsymbols): Here.
4456 2001-11-19 Akim Demaille <akim@epita.fr>
4458 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
4459 (maxrhs): this new function.
4461 2001-11-19 Akim Demaille <akim@epita.fr>
4463 * src/lalr.c (F): New macro to access the variable F.
4466 2001-11-19 Akim Demaille <akim@epita.fr>
4468 * src/lalr.h (LA): New macro to access the variable LA.
4469 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
4470 * src/lalr.c: Adjust.
4472 2001-11-19 Akim Demaille <akim@epita.fr>
4474 * src/lalr.c (initialize_LA): Only initialize LA. Let...
4475 (set_state_table): handle the `lookaheads' members.
4477 2001-11-19 Akim Demaille <akim@epita.fr>
4479 * src/lalr.h (lookaheads): Removed array, whose contents is now
4481 (state_t): this structure.
4482 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
4485 2001-11-19 Akim Demaille <akim@epita.fr>
4487 * src/lalr.h (consistent): Removed array, whose contents is now
4489 (state_t): this structure.
4490 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
4493 2001-11-19 Akim Demaille <akim@epita.fr>
4495 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
4496 contents are now members of...
4497 (state_t): this structure.
4498 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
4501 2001-11-19 Akim Demaille <akim@epita.fr>
4503 * src/lalr.h (state_t): New.
4504 (state_table): Be a state_t * instead of a core **.
4505 (accessing_symbol): Remove, part of state_t.
4506 * src/lalr.c: Adjust.
4507 (set_accessing_symbol): Merge into...
4508 (set_state_table): this.
4509 * src/print_graph.c, src/conflicts.c: Adjust.
4511 2001-11-14 Akim Demaille <akim@epita.fr>
4513 * tests/calc.at, tests/output.at, tests/regression.at,
4514 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
4515 now the tests are run in private dirs, therefore AC_CLEANUP and
4516 family can be simplified to 0-ary.
4517 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
4518 use abs. path to find config.h.
4519 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
4520 stderr, there can be way too much random noise.
4521 Instead pass -Werror to GCC and rely on the exit status.
4522 Reported by Wolfram Wagner.
4524 2001-11-14 Akim Demaille <akim@epita.fr>
4526 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
4527 defined only if yyoverflow is defined, to avoid `warning: unused
4529 Reported by The Test Suite.
4531 2001-11-14 Akim Demaille <akim@epita.fr>
4533 * src/print.c: Include reduce.h.
4534 Reported by Hans Aberg.
4536 2001-11-14 Akim Demaille <akim@epita.fr>
4538 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
4539 Revert a previous patch: these are really const.
4540 * src/conflicts.c (conflict_report): Additional useless pair of
4541 braces to pacify GCC's warnings for `if () if () {} else {}'.
4542 * src/lex.c (parse_percent_token): Replace equal_offset with
4545 Be sure to strdup `arg' when used, since there is no reason for
4546 token_buffer not to change.
4548 2001-11-14 Akim Demaille <akim@epita.fr>
4550 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
4552 * src/main.c (main): Use them.
4553 Suggested by Hans Aberg.
4555 2001-11-12 Akim Demaille <akim@epita.fr>
4557 * src/system.h (ngettext): Now that we use ngettext, be sure to
4558 provide a default definition when NLS are not used.
4560 2001-11-12 Akim Demaille <akim@epita.fr>
4562 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
4563 Use @kbd to denote user input.
4564 (Language and Grammar): ANSIfy the example.
4565 Adjust its layout for info/notinfo.
4566 (Location Tracking Calc): Output error messages to stderr.
4567 Output locations in a more GNUtically correct way.
4568 Fix a couple of Englishos.
4569 Adjust @group/@end group pairs.
4571 2001-11-12 Akim Demaille <akim@epita.fr>
4573 %expext was not functioning at all.
4575 * src/conflicts.c (expected_conflicts): Set to -1.
4576 (conflict_report): Use ngettext.
4577 (conflicts_print): Check %expect and make its violation an error.
4578 * doc/bison.texinfo (Expect Decl): Adjust.
4579 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
4580 * tests/regression.at (%expect not enough, %expect right)
4581 (%expect too much): New.
4583 2001-11-12 Akim Demaille <akim@epita.fr>
4585 * tests/regression.at (Conflicts): Rename as...
4586 (Unresolved SR Conflicts): this.
4587 (Solved SR Conflicts): New.
4589 2001-11-12 Akim Demaille <akim@epita.fr>
4591 * src/reduce.c (print_results): Rename as...
4592 (reduce_output): This.
4593 Output to OUT, passed as argument, instead of output_obstack.
4594 (dump_grammar): Likewise.
4597 (reduce_grammar): No longer call reduce_output, since...
4598 * src/print.c (print_results): do it.
4599 * src/main.c (main): Call reduce_free;
4601 2001-11-12 Akim Demaille <akim@epita.fr>
4603 * src/conflicts.c (print_reductions): Accept OUT as argument.
4604 Output to it, not to output_obstack.
4605 * src/print.c (print_actions): Adjust.
4607 2001-11-12 Akim Demaille <akim@epita.fr>
4609 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
4610 the result instead of using...
4611 (src_total, rrc_total, src_count, rrc_count): Remove.
4612 (any_conflicts): Remove.
4613 (print_conflicts): Split into...
4614 (conflicts_print, conflicts_output): New.
4615 * src/conflicts.h: Adjust.
4616 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
4617 * src/print.c (print_grammar): Issue `\n' between two rules.
4618 * tests/regression.at (Conflicts): New.
4619 Reported by Tom Lane.
4621 2001-11-12 Akim Demaille <akim@epita.fr>
4623 * tests/regression.at (Invalid input): Remove, duplicate with
4624 ``Invalid input: 1''.
4626 2001-11-12 Akim Demaille <akim@epita.fr>
4628 * tests/torture.at (AT_DATA_STACK_TORTURE)
4629 (Exploding the Stack Size with Alloca)
4630 (Exploding the Stack Size with Malloc): New.
4632 2001-11-12 Akim Demaille <akim@epita.fr>
4634 * src/bison.simple (YYSTACK_REALLOC): New.
4635 (yyparse) [!yyoverflow]: Use it and free the old stack.
4636 Reported by Per Allansson.
4638 2001-11-12 Pascal Bart <pascal.bart@epita.fr>
4640 * src/bison.simple: Define type yystype instead of YYSTYPE, and
4641 define CPP macro, which substitute YYSTYPE by yystype.
4642 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
4643 with yyltype/YYLTYPE. This allows inclusion of the generated
4644 header within the parser if the compiler, such as GGC, accepts
4645 multiple equivalent #defines.
4648 2001-11-05 Akim Demaille <akim@epita.fr>
4650 * src/reader.c (symbols_output): New, extracted from...
4651 (packsymbols): here.
4654 2001-11-05 Akim Demaille <akim@epita.fr>
4656 * src/lex.c (parse_percent_token): s/quotearg/quote/.
4658 2001-11-05 Akim Demaille <akim@epita.fr>
4660 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
4663 2001-11-05 Akim Demaille <akim@epita.fr>
4665 * src/options.h (struct option_table_struct): set_flags is void*.
4666 * src/options.c (longopts): Support `--output' and `%output'.
4668 * src/lex.h (tok_setopt): Remove, replaced with...
4669 (tok_intopt, tok_stropt): these new guys.
4670 * src/lex.c (getopt.h): Not needed.
4671 (token_buffer, unlexed_token_buffer): Not const.
4672 (percent_table): Promote `-' over `_' in directive names.
4673 Active `%name-prefix', `file-prefix', and `output'.
4674 (parse_percent_token): Accept possible arguments to directives.
4675 Promote `-' over `_' in directive names.
4677 2001-11-04 Akim Demaille <akim@epita.fr>
4679 * doc/bison.texinfo (Decl Summary): Split the list into
4680 `directives for grammars' and `directives for bison'.
4682 Add description of `%name-prefix', `file-prefix', and `output'.
4683 Promote `-' over `_' in directive names.
4684 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
4685 Simplify the description of `--name-prefix'.
4686 Promote `-' over `_' in directive names.
4687 Promote `--output' over `--output-file'.
4688 Fix the description of `--defines'.
4689 * tests/output.at: Exercise %file-prefix and %output.
4691 2001-11-02 Akim Demaille <akim@epita.fr>
4693 * doc/refcard.tex: Update.
4695 2001-11-02 Akim Demaille <akim@epita.fr>
4697 * src/symtab.h (SUNDEF): New.
4698 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
4699 stand for `uninitialized', instead of 0.
4700 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
4701 * src/lex.c (lex): Adjust.
4703 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
4705 Let yylex return it instead of a plain 0.
4706 Reported by Dick Streefland.
4708 2001-11-02 Akim Demaille <akim@epita.fr>
4710 * tests/regression.at (Mixing %token styles): New test.
4712 2001-11-02 Akim Demaille <akim@epita.fr>
4714 * src/reader.c (parse_thong_decl): Formatting changes.
4715 (token_translations_init): New, extracted from...
4716 (packsymbols): Here.
4719 2001-11-01 Akim Demaille <akim@epita.fr>
4721 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
4722 Check that `9foo.y' produces correct cpp guards.
4723 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
4727 2001-11-01 Akim Demaille <akim@epita.fr>
4729 * tests/regression.at (Invalid input: 2): New.
4730 * src/lex.c (unlexed_token_buffer): New.
4731 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
4735 2001-11-01 Akim Demaille <akim@epita.fr>
4737 * tests/calc.at: Catch up with 1.30.
4738 * configure.in: Bump to 1.49a.
4739 Adjust to newer Autotest.
4741 2001-10-19 Pascal Bart <pascal.bart@epita.fr>
4743 * src/conflicts.c: Move global variables rrc_total and src_total ...
4744 (print_conflicts): here.
4745 * src/output.c (output): Free global variable user_toknums.
4746 * src/lex.c (token_obstack): Become static.
4748 2001-10-18 Akim Demaille <akim@epita.fr>
4750 * tests/atlocal.in (GCC): Add.
4751 * tests/calc.at: s/m4_match/m4_bmatch/.
4752 s/m4_patsubst/m4_bpatsubst/.
4753 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
4754 * configure.in: AC_SUBST(GCC).
4756 2001-10-14 Marc Autret <autret_m@epita.fr>
4758 * src/options.c (create_long_option_table): Fix.
4760 2001-10-10 Akim Demaille <akim@epita.fr>
4762 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
4764 2001-10-04 Akim Demaille <akim@epita.fr>
4766 * src/reader.c (parse_union_decl): Push the caracters in
4767 union_obstack, not attrs_obstack.
4769 2001-10-04 Akim Demaille <akim@epita.fr>
4771 Merge in the branch 1.29.
4773 * src/reader.c (packsymbols): Use a temporary obstack for
4774 `%%tokendef', since output_stack is already used elsewhere.
4776 2001-10-02 Akim Demaille <akim@epita.fr>
4780 2001-10-02 Akim Demaille <akim@epita.fr>
4784 2001-10-02 Akim Demaille <akim@epita.fr>
4786 * tests/regression.at (Invalid CPP headers): New.
4787 From Alexander Belopolsky.
4788 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
4790 2001-10-02 Akim Demaille <akim@epita.fr>
4792 * tests/regression.at (Invalid input): New.
4793 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
4796 2001-10-02 Akim Demaille <akim@epita.fr>
4798 * tests/calc.at: Now that --debug works, the tests must be adjusted.
4800 2001-10-02 Akim Demaille <akim@epita.fr>
4802 * src/output.c (output_parser): Assert `skeleton'.
4803 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
4807 2001-10-01 Marc Autret <autret_m@epita.fr>
4809 * src/lex.h: Echo modifications.
4810 * src/lex.c (unlex): Parameter is now token_t.
4813 2001-10-01 Marc Autret <autret_m@epita.fr>
4815 * src/main.c: Include lex.h.
4818 2001-09-29 Akim Demaille <akim@epita.fr>
4820 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
4822 2001-09-28 Akim Demaille <akim@epita.fr>
4824 * tests/testsuite.at: Update to newer Autotest.
4825 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
4827 2001-09-27 Akim Demaille <akim@epita.fr>
4829 Position independent wrapper.
4831 * tests/bison: Remove.
4832 * tests/bison.in: New.
4833 * configure.in: Adjust.
4835 2001-09-27 Paul Eggert <eggert@twinsun.com>
4837 Port quotearg fixes from tar 1.13.24.
4839 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
4841 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
4842 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
4844 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
4845 * m4/mbrtowc.m4: New file.
4846 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
4847 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
4849 2001-09-27 Akim Demaille <akim@epita.fr>
4853 2001-09-27 Akim Demaille <akim@epita.fr>
4857 2001-09-25 Akim Demaille <akim@epita.fr>
4859 * src/system.h: Include `xalloc.h'.
4860 Remove it from the C files.
4861 * src/files.c (output_files): Free the obstacks.
4862 * src/lex.c (init_lex): Rename as...
4865 * src/main.c (main): Use it.
4867 2001-09-24 Marc Autret <autret_m@epita.fr>
4869 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
4870 to output informations in fout (FILE*).
4871 (open_graph, close_graph): Likewise.
4872 (output_graph, output_edge, output_node): Likewise.
4873 * src/vcg.h: Update function prototypes.
4874 * src/print_graph.c (print_graph): Open output graph file.
4875 (print_actions): Adjust.
4876 * src/files.h: Remove extern declaration.
4877 * src/files.c: Remove graph_obstack declaration.
4878 (open_files): Remove graph_obstack initialization.
4879 (output_files): Remove graph_obstack saving.
4881 2001-09-24 Marc Autret <autret_m@epita.fr>
4883 * src/files.c (compute_output_file_names): Fix.
4885 2001-09-24 Marc Autret <autret_m@epita.fr>,
4886 Akim Demaille <akim@epita.fr>
4888 * src/reader.c (reader): Remove call to free_symtab ().
4889 * src/main.c (main): Call it here.
4891 * src/conflicts.c (initialize_conflicts): Rename as...
4892 (solve_conflicts): this.
4893 * src/print.c (print_core, print_actions, print_state)
4894 (print_grammar): Dump to a file instead a `output_obstack'.
4895 (print_results): Dump `output_obstack', and then proceed with the
4897 * src/files.c (compute_output_file_names, close_files): New.
4898 (output_files): Adjust.
4899 * src/main.c (main): Adjust.
4901 2001-09-23 Marc Autret <autret_m@epita.fr>
4903 * src/files.c (compute_header_macro): Computes header macro name
4904 from spec_defines_file when given.
4906 2001-09-23 Marc Autret <autret_m@epita.fr>
4908 * src/files.c (output_files): Add default extensions.
4910 2001-09-22 Akim Demaille <akim@epita.fr>
4912 * src/conflicts.c (finalize_conflicts): Rename as...
4913 (free_conflicts): this.
4915 2001-09-22 Akim Demaille <akim@epita.fr>
4917 * src/gram.c (gram_free): Rename back as...
4919 (output_token_translations): Free `token_translations'.
4920 * src/symtab.c (free_symtab): Free the tag field.
4922 2001-09-22 Akim Demaille <akim@epita.fr>
4924 Remove `translations' as it is always set to true.
4926 * src/gram.h: Adjust.
4927 * src/reader.c (packsymbols, parse_token_decl): Adjust
4928 * src/print.c (print_grammar): Adjust.
4929 * src/output.c (output_token_translations): Adjust.
4930 * src/lex.c (lex): Adjust.
4931 * src/gram.c: Be sure the set pointers to NULL.
4932 (dummy): Rename as...
4935 2001-09-22 Akim Demaille <akim@epita.fr>
4937 * configure.in: Invoke AM_LIB_DMALLOC.
4938 * src/system.h: Use dmalloc.
4939 * src/LR0.c: Be sure to have pointers initialized to NULL.
4940 (allocate_itemsets): Allocate kernel_items only if needed.
4942 2001-09-22 Akim Demaille <akim@epita.fr>
4944 * configure.in: Bump to 1.29b.
4945 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
4946 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
4947 need xmalloc.c in calc.y.
4950 2001-09-21 Akim Demaille <akim@epita.fr>
4953 * Makefile.maint, config/config.guess, config/config.sub,
4954 * config/missing: Update from masters.
4955 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
4957 * configure.in (ALL_LINGUAS): Add `tr'.
4959 2001-09-21 Akim Demaille <akim@epita.fr>
4961 * tests/Makefile.am (package.m4): Move to...
4962 ($(srcdir)/$(TESTSUITE)): here.
4964 2001-09-20 Akim Demaille <akim@epita.fr>
4966 * src/complain.c: No longer try to be standalone: use system.h.
4967 Don't assume __STDC__ is defined to 1. Just test if it is defined.
4968 * src/complain.h: Likewise.
4969 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
4970 Remove the unused variable `n'.
4971 From Albert Chin-A-Young.
4973 2001-09-18 Marc Autret <autret_m@epita.fr>
4975 * doc/bison.1: Update.
4976 * doc/bison.texinfo (Bison Options): Update --defines and --graph
4978 (Option Cross Key): Update.
4981 2001-09-18 Marc Autret <autret_m@epita.fr>
4983 * tests/regression.at: New test (comment in %union).
4985 2001-09-18 Marc Autret <autret_m@epita.fr>
4987 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
4989 Reported by Keith Browne.
4991 2001-09-18 Marc Autret <autret_m@epita.fr>
4993 * tests/output.at: Add tests for --defines and --graph.
4995 2001-09-18 Marc Autret <autret_m@epita.fr>
4997 * tests/output.at: Removes tests of %{header,src}_extension features.
4999 2001-09-18 Akim Demaille <akim@epita.fr>
5001 * tests/Makefile.am (package.m4): New.
5002 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
5003 (_AT_CHECK_CALC_ERROR): Likewise.
5004 Factor the `, ' part of verbose error messages.
5006 2001-09-18 Marc Autret <autret_m@epita.fr>
5008 * src/getargs.c (longopts): Declare --defines and --graph as options
5009 with optional arguments.
5010 * src/files.h: Add extern declarations.
5011 * src/files.c (spec_graph_file, spec_defines_file): New.
5012 (output_files): Update.
5013 Remove CPP-outed code.
5015 2001-09-18 Marc Autret <autret_m@epita.fr>
5017 Turn off %{source,header}_extension feature.
5019 * src/files.c (compute_exts_from_gf): Update.
5020 (compute_exts_from_src): Update.
5021 (output_files): CPP-out useless code.
5022 * src/files.h: Remove {header,source}_extension extern declarations.
5023 * src/reader.c (parse_dquoted_param): CPP-out.
5024 (parse_header_extension_decl): Remove.
5025 (parse_source_extension_decl): Remove.
5026 (read_declarations): Remove cases tok_{hdrext,srcext}.
5027 * src/lex.c (percent_table): Remove {header,source}_extension entries.
5028 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
5030 2001-09-10 Akim Demaille <akim@epita.fr>
5032 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
5033 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
5034 (AT_CHECK_OUTPUT): this.
5035 Merely check ls' exit status, its output is useless.
5037 2001-09-10 Akim Demaille <akim@epita.fr>
5039 * tests/calc.at: Use m4_match.
5040 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
5042 2001-09-10 Marc Autret <autret_m@epita.fr>,
5043 Akim Demaille <akim@epita.fr>
5045 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
5047 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
5049 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
5050 * src/lex.h: Adjust prototype.
5051 (token_t): Add `tok_undef'.
5052 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
5053 (parse_percent_token): Now returns token_t.
5054 Add default statement in switch.
5055 (lex): Separate `c' as an input variable, from the token_t result
5057 (unlexed): Is a token_t.
5059 2001-09-10 Akim Demaille <akim@epita.fr>
5061 * configure.in: Bump to 1.29a.
5063 2001-09-07 Akim Demaille <akim@epita.fr>
5067 2001-08-30 Akim Demaille <akim@epita.fr>
5069 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
5070 * m4/atconfig.m4: Remove.
5071 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
5073 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
5074 m4_if, m4_patsubst, and m4_regexp.
5075 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
5076 `input' file instead of echo.
5078 2001-08-29 Akim Demaille <akim@epita.fr>
5082 2001-08-29 Akim Demaille <akim@epita.fr>
5086 2001-08-29 Paul Eggert <eggert@twinsun.com>
5088 * src/bison.simple (yyparse): Don't take the address of an
5089 item before the start of an array, as that doesn't conform to
5092 2001-08-29 Robert Anisko <anisko_r@epita.fr>
5094 * doc/bison.texinfo (Location Tracking Calc): New node.
5096 2001-08-29 Paul Eggert <eggert@twinsun.com>
5098 * src/output.c (output): Do not define const, as this now
5099 causes more problems than it cures.
5101 2001-08-29 Akim Demaille <akim@epita.fr>
5103 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
5105 Be sure to tag the `detailmenu'.
5107 2001-08-29 Akim Demaille <akim@epita.fr>
5109 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
5110 download in a tmp dir.
5112 2001-08-28 Marc Autret <autret_m@epita.fr>
5114 * config/depcomp: New file.
5116 2001-08-28 Marc Autret <autret_m@epita.fr>
5118 * doc/bison.1 (mandoc): Adjust.
5119 From Juan Manuel Guerrero.
5121 2001-08-28 Marc Autret <autret_m@epita.fr>
5123 * src/print_graph.c (print_state): Fix.
5125 2001-08-27 Marc Autret <autret_m@epita.fr>
5127 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
5129 Echo modifications to the functions prototypes.
5130 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
5132 2001-08-27 Marc Autret <autret_m@epita.fr>
5134 * src/vcg.c: Include `xalloc.h'.
5135 (add_colorentry): New.
5136 (add_classname): New.
5137 (add_infoname): New.
5138 * src/vcg.h: Add new prototypes.
5140 2001-08-27 Akim Demaille <akim@epita.fr>
5142 * Makefile.maint: Sync. again with CVS Autoconf.
5144 2001-08-27 Akim Demaille <akim@epita.fr>
5146 * Makefile.maint: Formatting changes.
5147 (po-update, cvs-update, update): New targets.
5150 2001-08-27 Akim Demaille <akim@epita.fr>
5152 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
5153 * Makefile.maint: Sync. with CVS Autoconf.
5155 2001-08-27 Marc Autret <autret_m@epita.fr>
5157 * src/vcg.h (struct infoname_s): New.
5158 (struct colorentry_s): New.
5159 (graph_s): New fields {vertical,horizontal}_order in structure.
5160 Add `infoname' field.
5161 Add `colorentry' field;
5162 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
5163 (G_HORIZONTAL_ORDER): New.
5165 (G_COLORENTRY): New.
5166 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
5167 Add output of `infoname'.
5168 Add output of `colorentry'.
5170 2001-08-27 Marc Autret <autret_m@epita.fr>
5172 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
5173 This one shadowed a global parameter.
5175 2001-08-24 Marc Autret <autret_m@epita.fr>
5177 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
5178 instead of `unsigned'.
5179 (print_state): Do not call obstack_object_size () in obstack_grow ()
5180 to avoid macro variables shadowing.
5182 2001-08-23 Marc Autret <autret_m@epita.fr>
5184 * src/lex.c (percent_table): Typo: s/naem/name/.
5186 Normalize new options declarations.
5188 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
5190 * tests/suite.at: Exercise %header_extension and %source_extension.
5192 2001-08-16 Marc Autret <autret_m@epita.fr>
5194 * src/reader.c (parse_dquoted_param): New.
5195 (parse_header_extension_decl): Use it.
5196 (parse_source_extension_decl): Likewise.
5198 2001-08-16 Marc Autret <autret_m@epita.fr>
5200 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
5201 (get_xxxx_str): Use assert () instead of complain ().
5202 Remove return invokations in default cases.
5203 (get_decision_str): Modify default behaviour. Remove second argument.
5204 Echo modifications on calls.
5205 (output_graph): Fix.
5207 2001-08-16 Marc Autret <autret_m@epita.fr>
5209 * src/getargs.c (usage): Update with ``-g, --graph''.
5211 2001-08-16 Marc Autret <autret_m@epita.fr>
5213 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
5214 (Option Cross Key): Likewise.
5215 * doc/bison.1: Update.
5217 2001-09-25 Pascal Bart <pascal.bart@epita.fr>
5219 * src/output.c (output_master_parser): Don't finish action_obstack.
5220 (output_parser): Don't care about the muscle action, here.
5221 (prepare): Copy the action_obstack in the action muscle.
5222 (output): Free action_obstack.
5224 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
5226 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
5227 will contain `%union' declaration.
5228 (parse_union_decl): Delete #line directive output.
5229 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
5230 informations about %union.
5231 (parse_union_decl): Copy the union_obstack in the muscle stype.
5232 * src/bison.simple: Add new #line directive.
5233 Add typdef %%stype YYSTYPE.
5235 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
5237 * src/bison.simple: Add new `#line' directive.
5239 2001-09-22 Pascal Bart <pascal.bart@epita.fr>
5241 * src/bison.simple: New `#line' directive.
5242 * src/output.c (output_parser): Support new dynamic muscle input_line.
5244 2001-09-22 Marc Autret <autret_m@epita.fr>
5246 * src/output.c (output_master_parser): New.
5247 (output_parser): Be more re-entrant.
5249 2001-09-21 Marc Autret <autret_m@epita.fr>
5251 * src/reader.c (copy_definition, parse_union_decl): Update and use
5253 (copy_action): Likewise.
5254 Use obstack_1grow ().
5255 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
5257 2001-09-21 Marc Autret <autret_m@epita.fr>
5259 * src/options.c (option_table): Adjust.
5260 * src/lex.c (parse_percent_token): Fix.
5262 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
5264 * src/options.c (symtab.h): Include it, need by lex.h.
5266 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
5268 * src/lex.c (parse_percent_token): Change type of variable `tx', which
5269 is now an option_table_struct*.
5270 (option_strcmp): New function option_strcmp.
5271 (parse_percent_token): Call option_strcmp.
5272 * src/getargs.c (xalloc.h, options.h): Include it.
5273 (getargs): Call create_long_option_table.
5274 (getargs): Free longopts at the end of the function.
5275 (shortopts): Move in options.c.
5276 * src/options.c (create_long_option_table): New function. Convert
5277 information from option_table to option structure.
5278 * src/reader.c (options.h): Include it.
5280 * src/Makefile.am: Adjust.
5281 * src/options.c (option_table): Create from longopts and percent_table.
5282 * src/getargs.c (longopts): Delete.
5283 * src/lex.c (struct percent_table_struct): Delete.
5284 (percent_table): Delete.
5285 (options.h): Include it.
5286 * src/options.c: Create.
5287 * src/options.h: Create.
5288 Declare enum opt_access_e.
5289 Define struct option_table_struct.
5291 2001-09-20 Marc Autret <autret_m@epita.fr>
5293 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
5296 2001-09-19 Pascal Bart <pascal.bart@epita.fr>
5298 * src/bison.simple: s/%%filename/%%skeleton.
5299 * src/muscle_tab.c (getargs.h): Include it.
5300 (muscle_init): Insert new muscle skeleton.
5302 2001-09-18 Pascal Bart <pascal.bart@epita.fr>
5304 * src/output.c (output_parser): Delete unused variable actions_dumped.
5306 2001-09-07 Pascal Bart <pascal.bart@epita.fr>
5308 * src/output.c (output): Delete call to reader_output_yylsp.
5309 * src/reader.c (reader): Likewise.
5310 * src/reader.h: Delete declaration of reader_output_yylsp.
5312 2001-09-02 Marc Autret <autret_m@epita.fr>
5314 * src/reader.c: Include muscle_tab.h.
5315 (parse_union_decl): Update.
5316 (parse_macro_decl): Rename parse_muscle_decl.
5317 Update to use renamed functions and variable.
5318 (read_declarations, copy_action, read_additionnal_code, : Updated
5319 with correct variables and functions names.
5320 (packsymbols, reader): Likewise.
5322 * src/reader.h (muscle_obstack): Extern declaration update.
5324 * src/output.c: Include muscle_tab.h
5325 In all functions using macro_insert, change by using muscle_insert ().
5326 (macro_obstack): Rename muscle_obstack.
5327 Echo modifications in the whole file.
5328 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
5329 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
5330 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
5332 * src/muscle_tab.h: Update double inclusion macros.
5333 (macro_entry_s): Rename muscle_entry_s.
5336 * src/muscle_tab.c: Include muscle_tab.h.
5337 Rename macro_tabble to muscle_table.
5338 (mhash1, mhash2, mcmp): Use muscle_entry.
5339 (macro_init): Rename muscle_init. Update.
5340 (macro_insert): Rename muscle_insert. Update.
5341 (macro_find): Rename muscle_find. Update.
5343 * src/main.c: Include muscle_tab.h.
5344 (main): Call muscle_init ().
5345 * src/Makefile.am (bison_SOURCES): Echo modifications.
5347 2001-09-02 Marc Autret <autret_m@epita.fr>
5349 Now the files macro_tab.[ch] are named muscle_tab.[ch].
5351 * src/muscle_tab.c, src/muscle_tab.h: Add files.
5353 2001-09-02 Marc Autret <autret_m@epita.fr>
5355 * src/macrotab.c, src/macrotab.h: Remove.
5357 2001-09-01 Pascal Bart <pascal.bart@epita.fr>
5359 * src/reader.c (copy_guard): Use muscle to specify the `#line'
5362 2001-09-01 Marc Autret <autret_m@epita.fr>
5364 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
5365 to an explicit value to activate the feature. We do it here.
5367 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
5369 * src/output.c (prepare): Delete the `filename' muscule insertion.
5370 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
5371 (parse_union_decl): Likewise.
5372 * src/macrotab.c (macro_init): Initialize filename by infile.
5374 2001-08-31 Marc Autret <autret_m@epita.fr>
5376 * src/bison.simple (YYLSP_NEEDED): New definition.
5377 * src/output.c (prepare): Add macro insertion of `locations_flag'
5379 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
5381 * src/output.c (prepare): Delete insertion of previous muscles,
5382 and insert the `prefix' muscles.
5383 * src/macrotab.c (macro_init): Likewise.
5384 (macro_init): Initialization prefix directive by `yy'.
5385 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
5386 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
5387 yylval, yydebug, yyerror, yynerrs and yyparse.
5388 New directive `#define' to substitute yydebug, ... with option
5391 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
5393 * src/main.c (main): Standardize.
5394 * src/output.c (output_table_data, output_parser): Likewise.
5395 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
5397 2001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
5399 * src/reader.c (read_additionnal_code): Rename %%user_code to
5401 * src/output.c (output): Rename %%declarations to %%prologue.
5402 * src/bison.simple: Echo modifications.
5404 2001-08-31 Marc Autret <autret_m@epita.fr>
5406 * src/reader.c (readgram): CleanUp.
5407 (output_token_defines): Likewise.
5408 (packsymbols): Likewise.
5410 * src/output.c (output): CPP-out useless code.
5412 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
5414 * src/reader.c (reader): Delete obsolete call to function
5415 output_trailers and output_headers.
5416 * src/output.h: Remove obsolete functions prototypes of output_headers
5417 and output_trailers.
5419 2001-08-30 Pascal Bart <pascal.bart@epita.fr>
5421 * src/main.c: Include macrotab.h.
5422 * src/macrotab.h (macro_entry_s): Constify fields.
5423 Adjust functions prototypes.
5424 * src/macrotab.c (macro_insert): Constify key and value.
5425 (macro_find): Constify key.
5426 (macro_insert): Include 'xalloc.h'
5427 (macro_insert): Use XMALLOC.
5428 (macro_find): Constify return value.
5429 * src/output.c (output_table_data): Rename table to table_data.
5430 (output_parser): Constify macro_key, macro_value.
5432 2001-08-30 Marc Autret <autret_m@epita.fr>
5434 * src/reader.c (parse_skel_decl): New.
5435 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
5436 * src/lex.h (token_t): New token `tok_skel'.
5437 * src/lex.c (percent_table): Add skeleton option entry.
5440 2001-08-29 Marc Autret <autret_m@epita.fr>
5442 * src/bison.simple: Add %%user_code directive at the end.
5443 * src/reader.c (read_additionnal_code): New.
5445 * src/output.c (output_program): Remove.
5448 2001-08-28 Marc Autret <autret_m@epita.fr>
5450 * src/output.c (output_actions): Clean up.
5451 (output_gram): CPP-out useless code.
5452 * src/reader.c (reader): Clean up, CPP-out useless code.
5454 2001-08-28 Pascal Bart <pascal.bart@epita.fr>
5456 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
5458 * src/bison.simple: Add `%%definitions'.
5460 2001-08-28 Marc Autret <autret_m@epita.fr>
5462 * config/depcomp: New file.
5464 2001-08-27 Paul Eggert <eggert@twinsun.com>
5466 * src/bison.simple (yyparse): Don't take the address of an
5467 item before the start of an array, as that doesn't conform to
5470 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
5472 * src/output.c (output): Remove the initialization of the macro
5473 obstack. It was done too late here.
5475 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
5477 (reader): Initialize the macro obstack here, since we need it to grow
5478 '%define' directives.
5480 * src/reader.h: Declare the macro obstack as extern.
5482 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
5484 * src/output.c (output_parser): Fix. Store single '%' characters in
5485 the output obstack instead of throwing them away.
5487 2001-08-27 Akim Demaille <akim@epita.fr>
5489 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
5491 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5493 * lib/Makefile.am: Adjust.
5495 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5497 * src/bison.simple: Update and add '%%' directives.
5499 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5501 * src/reader.c (reader): Remove calls to 'output_headers' and
5502 'output_trailers'. Remove some C output.
5503 (readgram): Disable a piece of code that was writing a default
5504 definition for 'YYSTYPE'.
5505 (reader_output_yylsp): Remove.
5506 (packsymbols): Output token defintions to a macro.
5507 (copy_definition): Disable C output.
5509 * src/reader.c (parse_macro_decl): New function used to parse macro
5511 (copy_string2): Put the body of copy_string into this new function.
5512 Add a parameter to let the caller choose whether he wants to copy the
5513 string delimiters or not.
5514 (copy_string): Be a simple call to copy_string2 with the last argument
5516 (read_declarations): Add case for macro definition.
5517 (copy_identifier): New.
5518 (parse_macro_decl): Read macro identifiers using copy_identifier
5521 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5523 * src/output.c (prepare): Add prefixed names.
5524 (output_parser): Output semantic actions.
5525 (output_parser): Fix bug on '%%line' directives.
5527 * src/output.c (output_headers): Remove. The C code printed by this
5528 function should now be in the skeletons.
5529 (output_trailers): Remove.
5530 (output): Disable call to 'reader_output_yylsp'.
5531 (output_rule_data): Do not output tables to the table obstack.
5533 * src/output.c: Remove some C dedicated output.
5534 Improve the use of macro and output obstacks.
5535 (output_defines): Remove.
5537 * src/output.c (output_token_translations): Associate 'translate'
5538 table with a macro. No output to the table obstack.
5539 (output_gram): Same for 'rhs' and 'prhs'.
5540 (output_stos): Same for 'stos'.
5541 (output_rule_data): Same for 'r1' and 'r2'.
5542 (token_actions): Same for 'defact'.
5543 (goto_actions): Same for 'defgoto'.
5544 (output_base): Same for 'pact' and 'pgoto'.
5545 (output_table): Same for 'table'.
5546 (output_check): Same for 'check'.
5548 * src/output.c (output_table_data): New function.
5549 (output_short_table): Remove.
5550 (output_short_or_char_table): Remove.
5552 * src/output.c (output_parser): Replace most of the skeleton copy code
5553 with something new. Skeletons are now processed character by character
5554 rather than line by line, and Bison looks for '%%' macros. This is the
5555 first step in making Bison's output process (a lot) more flexible.
5556 (output_parser): Use the macro table.
5558 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5560 * src/main.c (main): Initialize the macro table.
5562 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5564 * src/lex.c (percent_table): Add tok_define.
5565 * src/lex.h: Add tok_define.
5567 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5569 * src/macrotab.c: New file.
5570 * src/macrotab.h: New file.
5571 * src/Makefile.am: Update.
5573 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5575 * lib/hash.c: New file.
5576 * lib/hash.h: New file.
5577 * lib/Makefile.am: Update.
5579 2001-08-15 Akim Demaille <akim@epita.fr>
5583 2001-08-15 Marc Autret <autret_m@epita.fr>
5585 * src/reader.c (readgram): Indent output macro YYSTYPE.
5586 (packsymbols): Likewise.
5587 (output_token_defines): Likewise.
5588 * src/files.c: Standardize.
5589 (compute_header_macro): New.
5590 (defines_obstack_save): New. Use compute_header_macro.
5591 (output_files): Update. Use defines_obstack_save.
5593 2001-08-15 Akim Demaille <akim@epita.fr>
5595 * doc/bison.texinfo (Table of Symbols): Document
5598 2001-08-15 Akim Demaille <akim@epita.fr>
5600 * missing: Update from CVS Automake.
5601 * config/config.guess, config/config.sub, config/texinfo.tex:
5602 Update from gnu.org.
5604 2001-08-15 Akim Demaille <akim@epita.fr>
5606 * Makefile.maint: Sync with CVS Autoconf.
5608 2001-08-14 Pascal Bart <pascal.bart@epita.fr>
5610 * doc/bison.texinfo: Include GNU Free Documentation License from
5612 * doc/fdl.texi: Add to package.
5614 2001-08-14 Marc Autret <autret_m@epita.fr>
5616 Turn on %{source,header}_extension features.
5618 * src/lex.c (percent_table): Un-CPP out header_extension and
5620 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
5621 (compute_exts_from_src): Remove conditions. It restores priorities
5624 2001-08-14 Marc Autret <autret_m@epita.fr>
5626 * src/files.c (compute_base_names): Add extensions computing when
5627 `--file-prefix' used.
5628 Standardize function calls.
5630 2001-08-13 Marc Autret <autret_m@epita.fr>
5632 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
5633 defining it (defined but null disables alloca).
5635 2001-08-13 Marc Autret <autret_m@epita.fr>
5637 * src/bison.simple (_yy_memcpy): CPP reformat.
5639 2001-08-13 Pascal Bart <pascal.bart@epita.fr>
5641 * tests/atconfig.in (CPPFLAGS): Fix.
5643 2001-08-10 Pascal Bart <pascal.bart@epita.fr>
5645 * doc/bison.texinfo: Include GNU General Public License from
5647 * doc/gpl.texi: Add to package.
5649 2001-08-10 Marc Autret <autret_m@epita.fr>
5651 * src/print_graph.h: Fix.
5652 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
5654 2001-08-10 Akim Demaille <akim@epita.fr>
5656 * src/system.h: Provide default declarations for stpcpy, strndup,
5659 2001-08-10 Robert Anisko <anisko_r@epita.fr>
5661 * doc/bison.texinfo (Locations): Update @$ stuff.
5663 2001-08-09 Robert Anisko <anisko_r@epita.fr>
5665 * src/bison.simple (YYLLOC_DEFAULT): Update.
5668 2001-08-08 Marc Autret <autret_m@epita.fr>
5670 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
5671 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
5672 Reported by Fabrice Bauzac.
5674 2001-08-08 Marc Autret <autret_m@epita.fr>
5676 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
5677 * src/vcg.c (output_node): Fix.
5678 * src/vcg.h: Cleanup.
5679 * src/print_graph.c: Add comments.
5680 (node_output_size): New global variable. Simplify the formatting of
5681 the VCG graph output.
5682 (print_actions): Unused code is now used. It notifies the final state
5683 and no action states in the VCG graph. It also give the reduce actions.
5684 The `shift and goto' edges are red and the `go to state' edges are
5686 Get the current node name and node_obstack by argument.
5687 (node_obstack): New variable.
5688 (print_state): Manage node_obstack.
5689 (print_core): Use node_obstack given by argument.
5690 A node is not only computed here but in print_actions also.
5691 (print_graph): CPP out useless code instead of commenting it.
5693 2001-08-07 Pascal Bart <pascal.bart@epita.fr>
5695 * tests/atconfig.in (CPPFLAGS): Fix.
5697 2001-08-07 Akim Demaille <akim@epita.fr>
5699 * src/print_graph.c (quote): New.
5700 (print_core): Use it.
5702 2001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
5704 * src/vcg.c (complain.h): Include it.
5705 Unepitaize `return' invocations.
5706 [NDEBUG] (main): Remove.
5707 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
5708 * src/files.c (open_files): Initialize graph_obstack.
5709 * src/print_graph.c (print_actions): CPP out useless code.
5710 (print_core): Don't output the last `\n' in labels.
5712 * src/files.c (output_files): Output the VCG file.
5713 * src/main.c (main): Invoke print_graph ();
5715 2001-08-06 Marc Autret <autret_m@epita.fr>
5717 Automaton VCG graph output.
5718 Using option ``-g'' or long option ``--graph'', you can generate
5719 a gram_filename.vcg file containing a VCG description of the LALR (1)
5720 automaton of your grammar.
5722 * src/main.c: Call to print_graph() function.
5723 * src/getargs.h: Update.
5724 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
5725 (graph_flag): New flag.
5727 (getargs): Add case `g'.
5728 * src/files.c (graph_obstack): New obstack struct.
5729 (open_files): Initialize new obstack.
5730 (output_files): Saves graph_obstack if required.
5731 * src/files.h (graph_obstack): New extern declaration.
5732 * src/Makefile.am: Add new source files.
5734 2001-08-06 Marc Autret <autret_m@epita.fr>
5736 * src/print_graph.c, src/print_graph.h (graph): New.
5737 * src/vcg.h: New file.
5738 * src/vcg.c: New file, VCG graph handling.
5740 2001-08-06 Marc Autret <autret_m@epita.fr>
5742 Add of %source_extension and %header_extension which specify
5743 the source or/and the header output file extension.
5745 * src/files.c (compute_base_names): Remove initialisation of
5746 src_extension and header_extension.
5747 (compute_exts_from_gf): Update.
5748 (compute_exts_from_src): Update.
5749 (output_files): Update.
5750 * src/reader.c (parse_header_extension_decl): New.
5751 (parse_source_extension_decl): New.
5752 (read_declarations): New case statements for the new tokens.
5753 * src/lex.c (percent_table): Add entries for %source_extension
5754 and %header_extension.
5755 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
5757 2001-08-06 Marc Autret <autret_m@epita.fr>
5759 * configure.in: Bump to 1.28c.
5760 * doc/bison.texinfo: Texinfo thingies.
5762 2001-08-04 Pascal Bart <pascal.bart@epita.fr>
5764 * tests/atconfig.in (CPPFLAGS): Add.
5765 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
5767 2001-08-03 Akim Demaille <akim@epita.fr>
5771 2001-08-03 Akim Demaille <akim@epita.fr>
5773 * tests/Makefile.am (check-local): Ship testsuite.
5774 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
5777 2001-08-03 Akim Demaille <akim@epita.fr>
5779 * configure.in: Try using -Wformat when compiling.
5781 2001-08-03 Akim Demaille <akim@epita.fr>
5783 * configure.in: Bump to 1.28b.
5785 2001-08-03 Akim Demaille <akim@epita.fr>
5787 * src/complain.c: Adjust strerror_r portability issues.
5789 2001-08-03 Akim Demaille <akim@epita.fr>
5793 2001-08-03 Akim Demaille <akim@epita.fr>
5795 * src/getargs.c, src/getarg.h (skeleton)): Constify.
5796 * src/lex.c (literalchar): Avoid name clashes on `buf'.
5797 * src/getargs.c: Include complain.h.
5798 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
5799 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
5801 2001-08-03 Akim Demaille <akim@epita.fr>
5803 * src/reader.c (readgram): Display hidden chars in error messages.
5805 2001-08-03 Akim Demaille <akim@epita.fr>
5807 Update to gettext 0.10.39.
5809 2001-08-03 Akim Demaille <akim@epita.fr>
5811 * lib/strspn.c: New.
5813 2001-08-01 Marc Autret <autret_m@epita.fr>
5815 * doc/bison.texinfo: Update.
5816 * doc/bison.1 (mandoc): Update.
5817 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
5818 * src/files.c: Support output files extensions computing.
5819 (src_extension): New static variable.
5820 (header_extension): New static variable.
5822 (get_extension_index): New function, gets the index of an extension
5823 filename in a string.
5824 (compute_exts_from_gf): New function, computes extensions from the
5825 grammar file extension.
5826 (compute_exts_from_src): New functions, computes extensions from the
5827 C source file extension, file given by ``-o'' option.
5828 (compute_base_names): Update.
5829 (output_files): Update.
5831 2001-08-01 Robert Anisko <anisko_r@epita.fr>
5833 * doc/bison.texi: Document @$.
5834 (Locations): New section.
5836 2001-07-18 Akim Demaille <akim@epita.fr>
5838 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
5839 * config/prev-version.txt, config/move-if-change: New.
5840 * Makefile.am: Adjust.
5842 2001-07-08 Pascal Bart <pascal.bart@epita.fr>
5844 * src/bison.simple (yyparse): Suppress warning `comparaison
5845 between signed and unsigned'.
5847 2001-07-05 Pascal Bart <pascal.bart@epita.fr>
5849 * src/getargs.h (raw_flag): Remove.
5850 * src/getargs.c: Die on `-r'/`--raw'.
5851 * src/lex.c (parse_percent_token): Die on `%raw'.
5852 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
5853 * tests/calc.at: Suppress test with option `--raw'.
5855 2001-07-14 Akim Demaille <akim@epita.fr>
5858 * configure.in: Require Autoconf 2.50.
5859 Update to gettext 0.10.38.
5861 2001-03-16 Akim Demaille <akim@epita.fr>
5863 * doc/bison.texinfo: ANSIfy the examples.
5865 2001-03-16 Akim Demaille <akim@epita.fr>
5867 * getargs.c (skeleton): New variable.
5868 (longopts): --skeleton is a new option.
5869 (shortopts, getargs): -S is a new option.
5870 * getargs.h: Declare skeleton.
5871 * output.c (output_parser): Use it.
5873 2001-03-16 Akim Demaille <akim@epita.fr>
5875 * m4/strerror_r.m4: New.
5876 * m4/error.m4: Run AC_FUNC_STRERROR_R.
5877 * lib/error.h, lib/error.c: Update.
5879 2001-03-16 Akim Demaille <akim@epita.fr>
5881 * src/getargs.c (longopts): Clean up.
5883 2001-02-21 Akim Demaille <akim@epita.fr>
5885 * src/reader.c (gensym): `gensym_count' is your own.
5886 Use a static buf to create the symbol name, as token_buffer is no
5889 2001-02-08 Akim Demaille <akim@epita.fr>
5891 * src/conflicts.c (conflict_report): Be sure not to append to res
5892 between two calls, which could happen if both first sprintf were
5893 skipped, but not the first cp += strlen.
5895 2001-02-08 Akim Demaille <akim@epita.fr>
5897 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
5898 New, from fileutils 4.0.37.
5899 * configure.in: Require Autoconf 2.49c. I took some time before
5900 making this decision. This is the only way out for portability
5901 issues in Bison, it would mean way too much duplicate effort to
5902 import in Bison features implemented in 2.49c since 2.13.
5903 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
5905 2001-02-02 Akim Demaille <akim@epita.fr>
5907 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
5908 * lib/xalloc.h, lib/xmalloc.c: Update.
5910 2001-01-19 Akim Demaille <akim@epita.fr>
5912 Get rid of the ad hoc handling of token_buffer in the scanner: use
5915 * src/lex.c (token_obstack): New.
5916 (init_lex): Initialize it. No longer call...
5917 (grow_token_buffer): this. Remove it.
5918 Adjust all the places which used it to use the obstack.
5920 2001-01-19 Akim Demaille <akim@epita.fr>
5922 * src/lex.h: Rename all the tokens:
5923 s/\bENDFILE\b/tok_eof/g;
5924 s/\bIDENTIFIER\b/tok_identifier/g;
5926 Let them be enums, not #define, to ease debugging.
5927 Adjust all the code.
5929 2001-01-18 Akim Demaille <akim@epita.fr>
5931 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
5932 * src/lex.c (maxtoken, grow_token_buffer): Static.
5934 2001-01-18 Akim Demaille <akim@epita.fr>
5936 Since we now use obstacks, more % directives can be enabled.
5938 * src/lex.c (percent_table): Also accept `%yacc',
5939 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
5941 Handle the actions for `%semantic_parser' and `%pure_parser' here,
5942 instead of returning a token.
5943 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
5944 * src/reader.c (read_declarations): Adjust.
5945 * src/files.c (open_files): Don't call `compute_base_names', don't
5946 compute `attrsfile' since they depend upon data which might be
5947 *in* the input file now.
5948 (output_files): Do it here.
5949 * src/output.c (output_headers): Document the fact that this patch
5950 introduces a guaranteed SEGV for semantic parsers.
5951 * doc/bison.texinfo: Document them.
5952 * tests/suite.at: Exercise these %options.
5954 2000-12-20 Akim Demaille <akim@epita.fr>
5956 Also handle the output file (--verbose) with obstacks.
5958 * files.c (foutput): Remove.
5959 (output_obstack): New.
5960 Adjust all dependencies.
5961 * src/conflicts.c: Return a string.
5962 * src/system.h (obstack_grow_string): Rename as...
5963 (obstack_sgrow): this. Be ready to work with non literals.
5964 (obstack_fgrow4): New.
5966 2000-12-20 Akim Demaille <akim@epita.fr>
5968 * src/files.c (open_files): Fix the computation of short_base_name
5969 in the case of `-o foo.tab.c'.
5971 2000-12-20 Akim Demaille <akim@epita.fr>
5973 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
5974 (copy_dollar): Now that everything uses obstacks, get rid of the
5977 2000-12-20 Akim Demaille <akim@epita.fr>
5979 * src/files.c (open_files): Actually the `.output' file is based
5980 on the short_base_name, not base_name.
5981 * tests/suite.at (Checking output file names): Adjust.
5983 2000-12-20 Akim Demaille <akim@epita.fr>
5985 * src/bison.s1: Remove, we now use directly...
5986 * src/bison.simple: this.
5987 * src/Makefile.am: Use pkgdata instead of data.
5989 2000-12-20 Akim Demaille <akim@epita.fr>
5991 * src/files.c (guard_obstack): New.
5992 (open_files): Initialize it.
5993 (output_files): Dump it...
5994 * src/files.h: Export it.
5995 * src/reader.c (copy_guard): Use it.
5997 2000-12-19 Akim Demaille <akim@epita.fr>
5999 * src/files.c (outfile, defsfile, actfile): Removed as global
6001 (open_files): Don't compute them.
6002 (output_files): Adjust.
6003 (base_name, short_base_name): Be global.
6004 Adjust dependencies.
6006 2000-12-19 Akim Demaille <akim@epita.fr>
6008 * src/files.c (strsuffix): New.
6009 (stringappend): Be just like strcat but allocate.
6010 (base_names): Eve out from open_files.
6011 Try to simplify the rather hairy computation of base_name and
6013 (open_files): Use it.
6014 * tests/suite.at (Checking output file names): New test.
6016 2000-12-19 Akim Demaille <akim@epita.fr>
6018 * src/system.h (obstack_grow_literal_string): Rename as...
6019 (obstack_grow_string): this.
6020 * src/output.c (output_parser): Recognize `%% actions' instead of
6022 * src/bison.s1: s/$/%% actions/.
6023 * src/bison.hairy: Likewise.
6025 2000-12-19 Akim Demaille <akim@epita.fr>
6027 * src/output.c (output_parser): Compute the `#line' lines when
6029 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
6030 Suggested by Hans Aberg.
6032 2000-12-19 Akim Demaille <akim@epita.fr>
6034 Let the handling of the skeleton files be local to the procedures
6037 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
6039 (fparser, open_extra_files): Remove.
6040 (open_files, output_files): Don't take care of fparser.
6041 * src/files.h: Adjust.
6042 * src/output.c (output_parser): Open and close the file to the
6044 * src/reader.c (read_declarations): When %semantic_parser, open
6047 2000-12-19 Akim Demaille <akim@epita.fr>
6049 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
6050 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
6052 2000-12-19 Akim Demaille <akim@epita.fr>
6054 * src/files.c (open_files): Yipee! We no longer need all the code
6055 looking for `/tmp' since we have no tmp file.
6057 2000-12-19 Akim Demaille <akim@epita.fr>
6059 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
6061 * src/files.c (open_files): Less dependency on MSDOS etc.
6063 2000-12-14 Akim Demaille <akim@epita.fr>
6065 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
6066 Provide a default definition.
6067 Use it when executing the default @ action.
6068 * src/reader.c (reader_output_yylsp): No longer include
6069 `timestamp' and `text' in the default YYLTYPE.
6071 2000-12-12 Akim Demaille <akim@epita.fr>
6073 * src/reader.c (copy_definition, parse_union_decl, copy_action)
6074 (copy_guard): Quote the file names.
6075 Reported by Laurent Mascherpa.
6077 2000-12-12 Akim Demaille <akim@epita.fr>
6079 * src/output.c (output_headers, output_program, output): Be sure
6080 to escape special characters when outputting filenames.
6081 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
6082 (output_headers): Don't depend on them, Use ACTSTR.
6084 2000-11-17 Akim Demaille <akim@epita.fr>
6086 * lib/obstack.h: Formatting changes.
6087 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
6088 prevents type checking.
6089 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
6090 cast the value to (void *): assigning a `foo *' to a `void *'
6092 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
6093 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
6096 2000-11-17 Akim Demaille <akim@epita.fr>
6098 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
6100 (suite.m4, regression.m4, calc.m4): these.
6101 * tests/atgeneral.m4: Update from CVS Autoconf.
6103 2000-11-17 Akim Demaille <akim@epita.fr>
6105 * tests/regression.m4 (%union and --defines): New test,
6106 demonstrating a current bug in the obstack implementation.
6108 2000-11-17 Akim Demaille <akim@epita.fr>
6110 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
6112 Use them to declare the variables which are global or local to
6115 2000-11-17 Akim Demaille <akim@epita.fr>
6117 * acconfig.h: Remove, no longer used.
6119 2000-11-07 Akim Demaille <akim@epita.fr>
6121 * src: s/Copyright (C)/Copyright/g.
6123 2000-11-07 Akim Demaille <akim@epita.fr>
6125 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
6127 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
6129 2000-11-07 Akim Demaille <akim@epita.fr>
6131 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
6132 Merge in a single CPP if/else.
6134 2000-11-07 Akim Demaille <akim@epita.fr>
6136 * src/output.c (output): Remove useless variables.
6137 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
6138 argument `data' for consistency with the prototypes.
6140 (obstack_copy, obstack_copy0): Rename the second argument as
6141 `address' for consistency. Qualify it `const'.
6142 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
6143 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
6144 `const' their input argument (`data' or `address').
6145 Adjust the corresponding macros to include `const' in casts.
6147 2000-11-03 Akim Demaille <akim@epita.fr>
6149 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
6150 s/PFILE1/BISON_HAIRY/.
6151 Adjust dependencies.
6153 2000-11-03 Akim Demaille <akim@epita.fr>
6155 For some reason, this was not applied.
6157 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
6158 `unlink': it's no longer used.
6160 2000-11-03 Akim Demaille <akim@epita.fr>
6162 * src/files.c (skeleton_find): New function, eved out of...
6163 (open_files, open_extra_files): here.
6165 2000-11-03 Akim Demaille <akim@epita.fr>
6169 * src/files.c (obstack_save): New function.
6170 (done): Rename as...
6171 (output_files): this.
6173 * src/main.c (main): Don't use `atexit' to register `done', since
6174 it no longer has to remove tmp files, just call `output_files'
6175 when there are no errors.
6177 2000-11-02 Akim Demaille <akim@epita.fr>
6179 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
6180 `unlink': it's no longer used.
6181 * src/files.h: Formatting changes.
6183 2000-11-02 Akim Demaille <akim@epita.fr>
6185 Remove the last uses of mktemp and unlink/delete.
6187 * src/files.c (fdefines, ftable): Removed.
6188 (defines_ostack, table_obstack): New.
6189 Adjust dependencies of the former into uses of the latter.
6190 * src/output.c (output_short_or_char_table, output_short_table):
6191 Convert to using obstacks.
6192 * src/reader.c (copy_comment2): Accept one FILE * and two
6194 (output_token_defines, reader_output_yylsp): Use obstacks.
6195 * src/system.h (obstack_fgrow3): New.
6197 2000-11-01 Akim Demaille <akim@epita.fr>
6199 Change each use of `fattrs' into a use of `attrs_obstack'.
6201 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
6202 * src/files.c (fattrs): Remove.
6203 (attrs_obstack): New.
6204 Adjust all dependencies.
6205 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
6207 2000-11-01 Akim Demaille <akim@epita.fr>
6210 Change each use of `faction' into a use of `action_obstack'.
6212 * lib/obstack.h, lib/obstack.c: New files.
6213 * src/files.c (faction): Remove.
6214 (action_obstack): New.
6215 Adjust all dependencies.
6217 2000-10-20 Akim Demaille <akim@epita.fr>
6219 * lib/quote.h (PARAMS): New macro. Use it.
6221 2000-10-16 Akim Demaille <akim@epita.fr>
6223 * src/output.c (output_short_or_char_table): New function.
6224 (output_short_table, output_token_translations): Use it.
6225 (goto_actions): Use output_short_table.
6227 2000-10-16 Akim Demaille <akim@epita.fr>
6229 * src/symtab.c (bucket_new): New function.
6232 * src/output.c (output_short_table): New argument to display the
6233 comment associated with the table.
6234 Adjust dependencies.
6235 (output_gram): Use it.
6236 (output_rule_data): Nicer output layout for YYTNAME.
6238 2000-10-16 Akim Demaille <akim@epita.fr>
6240 * src/lex.c (read_typename): New function.
6242 * src/reader.c (copy_dollar): Likewise.
6244 2000-10-16 Akim Demaille <akim@epita.fr>
6246 * src/reader.c (copy_comment2): Expect the input stream to be on
6247 the `/' which is suspected to open a comment, instead of being
6248 called after `//' or `/*' was read.
6249 (copy_comment, copy_definition, parse_union_decl, copy_action)
6250 (copy_guard): Adjust.
6252 2000-10-16 Akim Demaille <akim@epita.fr>
6254 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
6255 `read_signed_integer'.
6257 2000-10-16 Akim Demaille <akim@epita.fr>
6259 * src/reader.c (copy_dollar): New function.
6260 (copy_guard, copy_action): Use it.
6262 2000-10-16 Akim Demaille <akim@epita.fr>
6264 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
6265 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
6266 New files, from Fileutils 4.0.27.
6267 * src/main.c (printable_version): Remove.
6268 * src/lex.c, src/reader.c: Use `quote'.
6270 2000-10-04 Akim Demaille <akim@epita.fr>
6272 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
6274 2000-10-04 Akim Demaille <akim@epita.fr>
6276 * doc/bison.texinfo: Various typos spotted by Neil Booth.
6278 2000-10-04 Akim Demaille <akim@epita.fr>
6280 When a literal string is used to define two different tokens,
6281 `bison -v' segfaults.
6282 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
6284 * tests/regression.m4: New file.
6285 Include the core of the sample provided by Piotr Gackiewicz.
6286 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
6289 2000-10-04 Akim Demaille <akim@epita.fr>
6291 * src/reader.c (parse_expect_decl): Keep `count' within the size
6295 2000-10-02 Paul Eggert <eggert@twinsun.com>
6297 * bison.s1 (yyparse): Assign the default value
6298 unconditionally, to avoid a GCC warning and make the parser a
6301 2000-10-02 Akim Demaille <akim@epita.fr>
6303 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
6306 2000-10-02 Akim Demaille <akim@epita.fr>
6308 * src/derives.c, src/print.c, src/reduce.c: To ease the
6309 translation, move some `\n' out of the translated strings.
6311 2000-10-02 Akim Demaille <akim@epita.fr>
6313 The location tracking mechanism is precious for parse error
6314 messages. Nevertheless, it is enabled only when `@n' is used in
6315 the grammar, which is a different issue (you can use it in error
6316 message, but not in the grammar per se). Therefore, there should
6317 be another means to enable it.
6319 * src/getargs.c (getargs): Support `--locations'.
6321 * src/getargs.h (locationsflag): Export it.
6322 * src/lex.c (percent_table): Support `%locations'.
6323 * src/reader.c (yylsp_needed): Remove this variable, now replaced
6324 with `locationsflag'.
6325 * doc/bison.texinfo: Document `--locations' and `%locations'.
6327 * tests/calc.m4: Test it.
6329 For regularity of the names, replace each
6330 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
6331 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
6332 In addition replace each `flag' with `_flag'.
6334 2000-10-02 Akim Demaille <akim@epita.fr>
6336 Also test parse error messages, including with YYERROR_VERBOSE.
6338 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
6340 Use it to check the computations.
6341 Use it to check `nonassoc' is honored.
6342 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
6343 `--yyerror-verbose'.
6344 (_AT_CHECK_CALC): Adjust to this option.
6345 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
6347 2000-10-02 Akim Demaille <akim@epita.fr>
6349 Test also `--verbose', `--defines' and `--name-prefix'. Testing
6350 the latter demonstrates a flaw in the handling of non debugging
6351 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
6352 was used in order to simplify:
6368 unfortunately this leads to a CPP conflict when
6369 `--name-prefix=foo' is used since it produces `#define yydebug
6372 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
6373 (YYDPRINTF): New macro.
6375 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
6377 Also test `--verbose', `--defines' and `--name-prefix'.
6379 2000-10-02 Akim Demaille <akim@epita.fr>
6381 Improve the readability of the produced parsers.
6383 * src/bison.s1: Formatting changes.
6384 Improve the comment related to the `$' mark.
6385 (yydefault): Don't fall through to `yyresume': `goto' there.
6386 * src/output.c (output_parser): When the `$' is met, skip the end
6388 New variable, `number_of_dollar_signs', to check there's exactly
6389 one `$' in the parser skeleton.
6391 2000-10-02 Akim Demaille <akim@epita.fr>
6393 * lib/xstrdup.c: New file, from the fileutils.
6394 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
6395 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
6396 instead of strlen + xmalloc + strcpy.
6397 * src/symtab.c (copys): Remove, use xstrdup instead.
6399 2000-10-02 Akim Demaille <akim@epita.fr>
6401 * src/gram.h (associativity): New enum type which replaces the
6402 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
6403 `right_assoc', `left_assoc' and `non_assoc'.
6404 Adjust all dependencies.
6405 * src/reader.c: Formatting changes.
6406 (LTYPESTR): Don't define it, use it as a literal in
6407 `reader_output_yylsp'.
6408 * src/symtab.h (symbol_class): New enum type which replaces the
6409 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
6410 `sunknown', `stoken and `snterm'.
6412 2000-10-02 Akim Demaille <akim@epita.fr>
6414 * src/getargs.c (fixed_outfiles): Rename as...
6415 (yaccflag): for consistency and accuracy.
6416 Adjust dependencies.
6418 2000-10-02 Akim Demaille <akim@epita.fr>
6420 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
6421 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
6422 difficult and introduced a lot of core dump. It turns out that
6423 Bison used an implementation of `xmalloc' based on `calloc', and
6424 at various places it does depend upon the initialization to 0. I
6425 have not tried to isolate the pertinent places, and all the former
6426 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
6427 someone should address this issue.
6429 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
6430 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
6432 Adjust dependencies.
6433 * src/warshall.h: New file.
6436 2000-10-02 Akim Demaille <akim@epita.fr>
6438 Various anti-`extern in *.c' changes.
6440 * src/system.h: Include `assert.h'.
6442 2000-10-02 Akim Demaille <akim@epita.fr>
6444 * src/state.h (nstates, final_state, first_state, first_shift)
6445 (first_reduction): Move their exportation from here...
6446 * src/LR0.h: to here.
6447 Adjust dependencies.
6448 * src/getargs.c (statisticsflag): New variable.
6449 Add support for `--statistics'.
6450 Adjust dependencies.
6452 Remove a lot of now useless `extern' statements in most files.
6454 2000-10-02 Akim Demaille <akim@epita.fr>
6456 * src/LR0.h: New file.
6459 2000-10-02 Akim Demaille <akim@epita.fr>
6461 * src/print.h: New file.
6463 * src/print.c: Formatting and ordering changes.
6464 (verbose, terse): Replace with...
6465 (print_results): this new function.
6466 Adjust dependencies.
6468 2000-10-02 Akim Demaille <akim@epita.fr>
6470 * src/conflicts.c (conflict_report): New function.
6471 (conflict_log, verbose_conflict_log): Replace with...
6472 (print_conflicts): this function.
6473 Adjust dependencies.
6474 * src/conflicts.h: New file.
6475 Propagate its inclusion.
6477 2000-10-02 Akim Demaille <akim@epita.fr>
6479 * src/nullable.h: New file.
6480 Propagate its inclusion.
6481 * src/nullable.c: Formatting changes.
6483 2000-10-02 Akim Demaille <akim@epita.fr>
6485 * src/reduce.h: New file.
6486 Propagate its inclusion.
6487 * src/reduce.c: Topological sort and other formatting changes.
6488 (bool, TRUE, FALSE): Move their definition to...
6489 * src/system.h: here.
6491 2000-10-02 Akim Demaille <akim@epita.fr>
6493 * src/files.c: Formatting changes.
6494 (tryopen, tryclose, openfiles): Rename as...
6495 (xfopen, xfclose, open_files): this.
6496 (stringappend): static.
6497 * src/files.h: Complete the list of exported symbols.
6500 2000-10-02 Akim Demaille <akim@epita.fr>
6502 * src/reader.h: New file.
6503 Propagate its use instead of tedious list of `extern' and
6505 * src/reader.c: Formatting changes, topological sort,
6508 2000-10-02 Akim Demaille <akim@epita.fr>
6510 * src/lex.h: Prototype `lex.c' exported functions.
6511 * src/reader.c: Adjust.
6512 * src/lex.c: Formatting changes.
6513 (safegetc): Rename as...
6516 2000-10-02 Akim Demaille <akim@epita.fr>
6518 * src/lalr.h: New file.
6519 Propagate its inclusion instead of prototypes and `extern'.
6520 * src/lalr.c: Formatting changes, topological sorting etc.
6522 2000-10-02 Akim Demaille <akim@epita.fr>
6524 * src/output.c (token_actions): Introduce a temporary array,
6525 YYDEFACT, that makes it possible for this function to use
6528 2000-10-02 Akim Demaille <akim@epita.fr>
6530 `user_toknums' is output as a `short[]' in `output.c', while it is
6531 defined as a `int[]' in `reader.c'. For consistency with the
6532 other output tables, `user_toknums' is now defined as a table of
6535 * src/reader.c (user_toknums): Be a short table instead of an int
6537 Adjust dependencies.
6539 Factor the short table outputs.
6541 * src/output.c (output_short_table): New function.
6542 * src/output.c (output_gram, output_stos, output_rule_data)
6543 (output_base, output_table, output_check): Use it.
6545 2000-10-02 Akim Demaille <akim@epita.fr>
6547 * src/output.c (output): Topological sort of the functions, in
6548 order to get rid of the `static' prototypes.
6549 No longer use `register'.
6550 * src/output.h: New file.
6551 Propagate its inclusion in files explicitly prototyping functions
6554 2000-09-21 Akim Demaille <akim@epita.fr>
6556 * src/atgeneral.m4: Update from Autoconf.
6558 2000-09-21 Akim Demaille <akim@epita.fr>
6560 * src/closure.h: New file.
6561 * src/closure.c: Formatting changes, topological sort over the
6562 functions, use of closure.h.
6563 (initialize_closure, finalize_closure): Rename as...
6564 (new_closure, free_closure): these. Adjust dependencies.
6565 * src/LR0.c: Formatting changes, topological sort, use of
6567 (initialize_states): Rename as...
6569 * src/Makefile.am (noinst_HEADERS): Adjust.
6571 2000-09-20 Akim Demaille <akim@epita.fr>
6573 * src/acconfig.h: Don't protect config.h against multiple
6575 Don't define PARAMS.
6576 * src/system.h: Define PARAMS.
6577 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
6578 purpose of config.h. system.h must not try to fix wrong
6579 definitions in config.h.
6581 2000-09-20 Akim Demaille <akim@epita.fr>
6583 * src/derives.h: New file.
6584 * src/main.c, src/derives.h: Use it.
6586 * src/Makefile.am (noinst_HEADERS): Adjust.
6588 2000-09-20 Akim Demaille <akim@epita.fr>
6590 * tests/atgeneral.m4: Update from Autoconf.
6591 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
6592 (AT_CHECK_CALC): New macros.
6593 Use these macros to test bison with options `', `--raw',
6594 `--debug', `--yacc', `--yacc --debug'.
6596 2000-09-19 Akim Demaille <akim@epita.fr>
6598 * src/output.c: Formatting changes.
6599 * src/machine.h: Remove, leaving its contents in...
6600 * src/system.h: here.
6602 Adjust all dependencies on stdio.h and machine.h.
6603 * src/getargs.h: New file.
6604 Let all `extern' declarations about getargs.c be replaced with
6605 inclusion of `getargs.h'.
6606 * src/Makefile.am (noinst_HEADERS): Adjust.
6608 * tests/calc.m4 (yyin): Be initialized in main, not on the global
6610 (yyerror): Returns void, not int.
6611 * doc/bison.texinfo: Formatting changes.
6613 2000-09-19 Akim Demaille <akim@epita.fr>
6615 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
6618 2000-09-18 Akim Demaille <akim@epita.fr>
6620 * configure.in: Append WARNING_CFLAGS to CFLAGS.
6621 * src/Makefile.am (INCLUDES): Don't.
6622 Be ready to fetch headers in lib/.
6624 2000-09-18 Akim Demaille <akim@epita.fr>
6626 * doc/bison.texinfo: Update the copyright.
6627 ANSIfy and GNUify the examples.
6628 Remove the old menu.
6630 2000-09-18 Akim Demaille <akim@epita.fr>
6632 First set of tests: use the `calc' example from the documentation.
6634 * src/bison.s1 (yyparse): Condition the code using `yytname' which
6635 is defined only when YYDEBUG is.
6636 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
6637 * src/files.c (tryopen, tryclose): Formatting changes.
6638 Move to the top and be static.
6639 * src/reader.c (read_signed_integer): Likewise.
6640 * tests/calc.m4: New file.
6641 * Makefile.am, suite.m4: Adjust.
6642 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
6644 2000-09-18 Akim Demaille <akim@epita.fr>
6646 Add support for an Autotest test suite for Bison.
6648 * m4/m4.m4, m4/atconfig.m4: New files.
6649 * m4/Makefile.am (EXTRA_DIST): Adjust.
6650 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
6652 * src/getargs.c: Display a more standard --version message.
6653 * src/reader.c (reader): Formatting changes.
6654 No longer depend upon VERSION_STRING.
6655 * configure.in: No longer use `dnl'.
6656 Set up the test suite and the new directory `tests/.
6657 (VERSION_STRING): Remove.
6659 2000-04-14 Akim Demaille <akim@epita.fr>
6661 * src/reader.c (copy_comment2): New function, same as former
6662 `copy_comment', but outputs into two FILE *.
6663 (copy_comment): Use it.
6664 (parse_union_decl): Use it.
6665 (get_type, parse_start_decl): Use the same `invalid' message.
6666 (parse_start_decl, parse_union_decl): Use the same `multiple'
6668 (parse_union_decl, copy_guard, copy_action): Use the same
6669 `unmatched' message.
6670 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
6672 2000-03-31 Akim Demaille <akim@epita.fr>
6674 * src/files.c (tryopen, tryclose): Move to the top.
6677 2000-03-31 Akim Demaille <akim@epita.fr>
6679 * src/main.c (main): Don't call `done', exit does it.
6681 2000-03-31 Akim Demaille <akim@epita.fr>
6683 * allocate.c: s/return (foo)/return foo/.
6686 * output.c: Likewise.
6687 * reader.c: Likewise.
6688 * symtab.c: Likewise.
6689 * vmsgetargs.c: Likewise.
6691 2000-03-31 Akim Demaille <akim@epita.fr>
6693 Clean up the error reporting functions.
6695 * src/report.c: New file.
6696 * src/report.h: Likewise.
6697 * src/Makefile.am: Adjust.
6698 * m4/error.m4: New file.
6699 * m4/Makefile.am: Adjust.
6700 * configure.in (jm_PREREQ_ERROR): Call it.
6701 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
6703 (fatal, fatals): Remove. All callers use complain.c::fatal.
6704 (warn, warni, warns, warnss, warnss): Remove. All callers use
6705 complain.c::complain.
6706 (toomany): Remove, use fatal instead.
6707 * src/files.c (done): No argument, use complain_message_count.
6708 * src/main.c (main): Register `done' to `atexit'.
6710 * src/getargs.c (usage): More `fputs', less `fprintf'.
6712 2000-03-28 Akim Demaille <akim@epita.fr>
6714 * lib/: New directory.
6715 * Makefile.am (SUBDIRS): Adjust.
6716 * configure.in: Adjust.
6717 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
6719 * src/alloca.c: Moved to lib/.
6720 * src/getopt.c: Likewise.
6721 * src/getopt1.c: Likewise.
6722 * src/getopt.h: Likewise.
6723 * src/ansi2knr.c: Likewise.
6724 * src/ansi2knr.1: Likewise.
6725 * src/Makefile.am: Adjust.
6726 * lib/Makefile.am: New file.
6728 2000-03-28 Akim Demaille <akim@epita.fr>
6730 * src/getargs.c (usage): Refresh the help message.
6732 2000-03-17 Akim Demaille <akim@epita.fr>
6734 * src/getopt1.c: Updated from textutils 2.0e
6735 * src/getopt.c: Likewise.
6736 * src/getopt.h: Likewise.
6738 2000-03-17 Akim Demaille <akim@epita.fr>
6740 * src/Makefile.am (bison.simple): Fix the awk program: quote only
6741 the file name, not the whole `#line LINE FILE'.
6743 2000-03-17 Akim Demaille <akim@epita.fr>
6745 On syntax errors, report the token on which we choked.
6747 * src/bison.s1 (yyparse): In the label yyerrlab, when
6748 YYERROR_VERBOSE, add yychar in msg.
6750 2000-03-17 Akim Demaille <akim@epita.fr>
6752 * src/reader.c (copy_at): New function.
6753 (copy_guard): Use it.
6754 (copy_action): Use it.
6756 2000-03-17 Akim Demaille <akim@epita.fr>
6758 Be kind to translators, save some useless translations.
6760 * src/main.c (banner): New function.
6761 (fatal_banner): Use it.
6762 (warn_banner): Use it.
6764 2000-03-17 Akim Demaille <akim@epita.fr>
6766 * src/reader.c (copy_definition): Use copy_string and
6767 copy_comment. Removed now unused `match', `ended',
6769 (copy_comment, copy_string): Moved, to be visible from
6772 2000-03-17 Akim Demaille <akim@epita.fr>
6774 * src/reader.c (copy_string): Declare `static inline'. No
6775 problems with inline, since it is checked by configure.
6776 (copy_comment): Likewise.
6778 2000-03-17 Akim Demaille <akim@epita.fr>
6780 * src/reader.c (packsymbols): Formatting changes.
6782 2000-03-17 Akim Demaille <akim@epita.fr>
6784 * src/reader.c (copy_comment): New function, factored out from:
6785 (copy_action): Use it. Removed now unused `match', `ended',
6787 (copy_guard): Likewise.
6789 2000-03-17 Akim Demaille <akim@epita.fr>
6791 * src/reader.c (copy_string): New function, factored out from:
6792 (copy_action): Use it.
6793 (copy_guard): Likewise.
6795 2000-03-17 Akim Demaille <akim@epita.fr>
6797 Change the handling of @s so that they behave exactly like $s.
6798 There is now a pseudo variable @$ (readble and writable), location
6799 of the lhs of the rule (by default ranging from the location of
6800 the first symbol of the rhs, to the location of the last symbol,
6801 or, if the rhs is empty, YYLLOC).
6803 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
6805 (yyparse): When providing a default semantic action, provide a
6806 default location action.
6807 (after the $): No longer change `*YYLSP', just stack YYLOC the
6808 same way you stack YYVAL.
6809 * src/reader.c (read_declarations): Use warns.
6810 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
6811 (copy_action, case '@'): Likewise.
6812 Use a standard error message, to save useless work from
6815 2000-03-17 Akim Demaille <akim@epita.fr>
6817 * src/bison.s1: Formatting and cosmetics changes.
6818 * src/reader.c: Likewise.
6819 Update the Copyright notice.
6821 2000-03-17 Akim Demaille <akim@epita.fr>
6823 * src/bison.s1 (#line): All set to `#line' only, since the
6824 Makefile now handles them.
6826 2000-03-16 Akim Demaille <akim@epita.fr>
6828 * src/output.c (output_rule_data): Output the documentation of
6830 (Copyright notice): Update.
6833 2000-03-16 Akim Demaille <akim@epita.fr>
6835 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
6836 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
6837 One `#if YYDEBUG' remains, since it uses variables which are
6838 defined only if `YYDEBUG != 0'.
6840 2000-03-16 Akim Demaille <akim@epita.fr>
6842 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
6843 and related variables so that the similarities are highlighted.
6845 2000-03-16 Akim Demaille <akim@epita.fr>
6847 * src/bison.s1: Properly indent CPP directives.
6849 2000-03-16 Akim Demaille <akim@epita.fr>
6851 * src/bison.s1: Properly indent the `alloca' CPP section.
6853 2000-03-16 Akim Demaille <akim@epita.fr>
6855 Do not hard code values of directories in `configure.in'.
6856 Update the `configure' tool chain.
6858 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
6860 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
6861 (AC_OUTPUT): Add m4/Makefile.
6862 Bump to bison 1.28a, 1.29 has never been released.
6863 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
6864 handled via src/Makefile.am.
6865 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
6866 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
6868 * Makefile.am (SUBDIRS): Add m4.
6869 (ACLOCAL_AM_FLAGS): New variable.
6870 (AUTOMAKE_OPTIONS): Add check-news.
6871 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
6872 the proper line number and file name.
6873 (DEFS): Propagate the location of bison library files and of the
6875 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
6877 * acinclude.m4: Remove, replaced by the directory m4.
6878 * m4/Makefile.am (EXTRA_DIST): New variable.
6879 * m4/gettext.m4: New file, from the fileutils.
6880 * m4/lcmessage.m4: Likewise
6881 * m4/progtest.m4: Likewise.
6882 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
6884 2000-03-10 Akim Demaille <akim@epita.fr>
6887 Formatting changes of various comments.
6888 Respect the GNU coding standards at various places.
6889 Don't use `_()' when no translation is needed.
6891 1999-12-13 Jesse Thilo <jthilo@gnu.org>
6894 OS/2 honors TMPDIR environment variable.
6896 1999-12-13 Jesse Thilo <jthilo@gnu.org>
6898 * doc/bison.texinfo: Tweaked spelling and grammar.
6900 Removed reference to price of printed copy.
6901 Mention BISON_SIMPLE and BISON_HAIRY.
6903 1999-12-13 Jesse Thilo <jthilo@gnu.org>
6905 * configure.in, NEWS:
6906 Bison 1.29 released.
6908 1999-10-27 Jesse Thilo <jthilo@gnu.org>
6910 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
6911 Added reference card.
6913 1999-07-26 Jesse Thilo <jthilo@gnu.org>
6915 * po/ru.po: Added Russian translation.
6917 1999-07-26 Jesse Thilo <jthilo@gnu.org>
6919 * configure.in: Added Russian translation.
6921 1999-07-06 Jesse Thilo <jthilo@gnu.org>
6923 * configure.in, NEWS, README:
6924 Released version 1.28.
6926 1999-06-14 Jesse Thilo <jthilo@gnu.org>
6929 Squashed redefinition warning on some systems.
6931 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
6932 Have configure build version string instead of relying on ANSI string
6935 1999-06-14 Jesse Thilo <jthilo@gnu.org>
6937 * po/POTFILES.in: Got rid of version.c.
6939 1999-06-14 Jesse Thilo <jthilo@gnu.org>
6941 * acconfig.h, configure.in:
6942 Have configure build version string instead of relying on ANSI string
6945 1999-06-08 Jesse Thilo <jthilo@gnu.org>
6948 Dropped mention of `+' for long-named options.
6950 1999-05-30 Jesse Thilo <jthilo@gnu.org>
6952 * src/files.c: Added <unistd.h> for unlink().
6954 * src/Makefile.am, src/system.h:
6957 1999-05-30 Jesse Thilo <jthilo@gnu.org>
6959 * README: Added a FAQ list.
6961 * configure.in, acconfig.h:
6964 1999-05-30 Jesse Thilo <jthilo@gnu.org>
6966 * doc/FAQ, doc/Makefile.am:
6969 1999-05-19 Jesse Thilo <jthilo@gnu.org>
6971 * src/alloc.h, src/symtab.h, src/version.c:
6972 Protected inclusion of "config.h" with HAVE_CONFIG_H.
6974 1999-04-18 Jesse Thilo <jthilo@gnu.org>
6976 * src/.cvsignore, src/Makefile.am:
6977 Reorganized: sources in `src', documentation in `doc'.
6979 * src/lex.c (literalchar):
6980 fixed the code for escaping double quotes (thanks
6983 1999-04-18 Jesse Thilo <jthilo@gnu.org>
6985 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
6986 Adjusted paths to reflect directory reorganization.
6988 1999-04-18 Jesse Thilo <jthilo@gnu.org>
6990 * doc/.cvsignore, doc/Makefile.am:
6991 Reorganized: sources in `src', documentation in `doc'.
6993 1999-04-18 Jesse Thilo <jthilo@gnu.org>
6996 Updated AC_INIT file to reflect directory reorganization.
6998 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
6999 Reorganized: sources in `src', documentation in `doc'.
7001 1999-04-13 Jesse Thilo <jthilo@gnu.org>
7004 Don't declare calloc() and realloc() if not necessary.
7006 1999-04-13 Jesse Thilo <jthilo@gnu.org>
7008 * configure.in, acconfig.h, acinclude.m4:
7009 Don't declare calloc() and realloc() if not necessary.
7011 1999-03-23 Jesse Thilo <jthilo@gnu.org>
7013 * po/.cvsignore: Added i18n support.
7015 1999-03-23 Jesse Thilo <jthilo@gnu.org>
7017 * acconfig.h, configure.in, Makefile.am:
7020 1999-03-22 Jesse Thilo <jthilo@gnu.org>
7022 * src/bison.s1: Fixed #line numbers.
7024 1999-03-15 Jesse Thilo <jthilo@gnu.org>
7026 * po/es.po, po/fr.po, po/nl.po, po/de.po:
7027 Added PO files from Translation Project.
7029 1999-03-03 Jesse Thilo <jthilo@gnu.org>
7032 Added support for non-ANSI compilers (ansi2knr).
7034 1999-02-16 Jesse Thilo <jthilo@gnu.org>
7036 * configure.in: Bumped version number to 1.27.
7039 Added `bison.simple' to list of files removed by `make distclean'.
7041 1999-02-12 Jesse Thilo <jthilo@gnu.org>
7043 * src/files.c, src/files.h:
7044 Defined locations of parser files in config.h instead of Makefile.
7046 1999-02-12 Jesse Thilo <jthilo@gnu.org>
7048 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
7049 Defined locations of parser files in config.h instead of Makefile.
7051 1999-02-09 Jesse Thilo <jthilo@gnu.org>
7054 Removed inappropriate use of $< macro.
7056 1999-02-05 Jesse Thilo <jthilo@gnu.org>
7058 * po/Makefile.in.in, po/POTFILES.in:
7059 Add `po' directory skeleton.
7061 1999-01-27 Jesse Thilo <jthilo@gnu.org>
7063 * README: Document help-bison list.
7065 * configure.in: Add check for mkstemp().
7067 1999-01-20 Jesse Thilo <jthilo@gnu.org>
7069 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
7070 Hush a few compiler warnings.
7073 Add tryclose(), which verifies that fclose was successful.
7074 Hush a couple of compiler warnings.
7076 1999-01-20 Jesse Thilo <jthilo@gnu.org>
7078 * Makefile.am, OChangeLog:
7079 ChangeLog is now automatically generated. Include the old version as
7082 1999-01-14 Jesse Thilo <jthilo@gnu.org>
7084 * src/gram.h, src/lalr.c, src/lex.c, src/lex.h, src/machine.h, src/main.c, src/nullable.c, src/output.c, src/print.c, src/reader.c, src/reduce.c, src/state.h, src/symtab.c, src/symtab.h, src/types.h, src/vmsgetargs.c, src/warshall.c, src/allocate.c, src/alloc.h, src/bison.s1, src/closure.c, src/conflicts.c, src/derives.c, src/files.c, src/files.h, src/getargs.c, src/gram.c, src/LR0.c:
7087 1999-01-14 Jesse Thilo <jthilo@gnu.org>
7089 * doc/bison.texinfo: Fix formatting glitch.
7091 * doc/bison.texinfo: Update FSF address.
7093 1999-01-14 Jesse Thilo <jthilo@gnu.org>
7095 * acconfig.h: Update FSF address.
7097 1999-01-08 Jesse Thilo <jthilo@gnu.org>
7100 Don't define PACKAGE here, since config.h defines it.
7102 1998-12-30 Jesse Thilo <jthilo@gnu.org>
7104 * src/reader.c: Update copyright date.
7107 Ditch sprintf to statically-sized buffers in fatal/warn functions in
7108 favor of output directly to stderr (avoids buffer overruns).
7110 * src/reader.c: Some checks for premature EOF.
7112 * src/allocate.c, src/alloc.h, src/closure.c, src/conflicts.c, src/derives.c, src/getargs.c, src/gram.c, src/lalr.c, src/lex.c, src/LR0.c, src/main.c, src/nullable.c, src/output.c, src/print.c, src/reduce.c, src/symtab.c, src/symtab.h, src/warshall.c:
7113 Use prototypes if the compiler understands them.
7115 * src/files.c: Honor TMPDIR on Unix hosts.
7116 Use prototypes if the compiler understands them.
7119 Fix a couple of buffer overrun bugs.
7120 Use prototypes if the compiler understands them.
7122 * src/system.h: Include unistd.h and ctype.h.
7123 Use #ifdef instead of #if for NLS symbols.
7125 1998-12-30 Jesse Thilo <jthilo@gnu.org>
7127 * doc/bison.texinfo:
7128 Delete comment "consider using @set for edition number, etc..." since
7129 we now are doing so.
7131 1998-12-30 Jesse Thilo <jthilo@gnu.org>
7134 Use prototypes if the compiler understands them.
7136 * NEWS: Document 1.26 highlights.
7138 * Makefile.am: Require Automake 1.3 or later.
7141 Use prototypes if the compiler understands them.
7143 1998-12-29 Jesse Thilo <jthilo@gnu.org>
7146 Use VERSION symbol from automake for version number.
7148 1998-12-29 Jesse Thilo <jthilo@gnu.org>
7150 * acconfig.h, configure.in, version.cin:
7151 Use VERSION symbol from automake for version number.
7153 1998-11-28 Jesse Thilo <jthilo@gnu.org>
7156 Distribute original version of simple parser (bison.s1), not built
7157 version (bison.simple).
7159 1998-11-28 Jesse Thilo <jthilo@gnu.org>
7161 * doc/bison.texinfo: Add info dir entry.
7163 * doc/bison.texinfo:
7164 Let automake put version number into documentation.
7166 1998-11-26 Jesse Thilo <jthilo@gnu.org>
7168 * src/bison.cld, src/build.com, src/vmshlp.mar:
7169 Add non-RCS files from /gd/gnu/bison.
7171 1998-11-26 Jesse Thilo <jthilo@gnu.org>
7174 Document the BISON_HAIRY and BISON_SIMPLE variables.
7176 1998-11-25 Jesse Thilo <jthilo@gnu.org>
7178 * src/version.c: Build version.c automatically.
7181 Fix token numbering (used to start at 258, not 257).
7183 * src/system.h: Include config.h.
7185 * src/getargs.c: Update bug report address.
7187 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
7188 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
7190 1998-11-25 Jesse Thilo <jthilo@gnu.org>
7193 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
7195 * configure.in, version.cin:
7196 Build version.c automatically.
7198 * AUTHORS: Add AUTHORS file.
7200 * README: Update bug report address.
7203 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
7205 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
7208 1998-11-25 Jesse Thilo <jthilo@gnu.org>
7210 * doc/bison.texinfo: Clean up some formatting.
7212 1998-05-05 Richard Stallman <rms@gnu.org>
7214 * doc/bison.texinfo:
7215 Explain better why to make a pure parser.
7217 1998-01-05 Richard Stallman <rms@gnu.org>
7219 * src/files.c (openfiles):
7220 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
7221 find a temporary directory, if possible. Do not unlink files while
7224 1997-08-25 Richard Stallman <rms@gnu.org>
7226 * src/reader.c (stack_offset;):
7227 Change some warni to warns.
7229 * src/lex.c (literalchar): Use warns, not warni.
7231 1997-06-28 Richard Stallman <rms@gnu.org>
7233 * src/bison.s1: Add a Bison version comment.
7235 * src/main.c (fatal, warn, berror):
7238 1997-06-28 Richard Stallman <rms@gnu.org>
7240 * Makefile.in (bison_version): New variable.
7241 (dist): Use that variable.
7242 (bison.s1): Substitute the Bison version into bison.simple.
7244 * bison.simple: Add a Bison version comment.
7246 1997-06-18 Richard Stallman <rms@gnu.org>
7248 * src/main.c (fatal, warn, berror):
7249 Make error messages standard.
7250 (toomany): Improve error message text.
7252 * src/LR0.c, src/closure.c, src/conflicts.c, src/derives.c, src/files.c, src/lalr.c, src/lex.c, src/nullable.c, src/output.c, src/print.c, src/reader.c, src/reduce.c, src/symtab.c:
7253 new.h renamed to alloc.h.
7255 1997-06-18 Richard Stallman <rms@gnu.org>
7257 * Makefile.in: new.h renamed to alloc.h.
7259 1997-05-24 Richard Stallman <rms@gnu.org>
7261 * src/lex.c (literalchar):
7262 Fix the code for escaping \, " and '.
7264 (lex): Avoid trouble when there are many chars
7265 to discard in a char literal with just several chars in it.
7267 1997-05-17 Richard Stallman <rms@gnu.org>
7270 Use malloc, if using alloca is troublesome.
7271 (YYSTACK_USE_ALLOCA): New flag macro.
7272 Define it for some systems and compilers.
7273 (YYSTACK_ALLOC): New macro.
7274 (yyparse): Use YYSTACK_ALLOC to allocate stack.
7275 If it was malloc'd, free it.
7277 1997-05-17 Richard Stallman <rms@gnu.org>
7280 Use malloc, if using alloca is troublesome.
7281 (YYSTACK_USE_ALLOCA): New flag macro.
7282 Define it for some systems and compilers.
7283 (YYSTACK_ALLOC): New macro.
7284 (yyparse): Use YYSTACK_ALLOC to allocate stack.
7285 If it was malloc'd, free it.
7287 1997-04-23 Richard Stallman <rms@gnu.org>
7290 (alloca) [__hpux]: Always define as __builtin_alloca.
7292 1997-04-23 Richard Stallman <rms@gnu.org>
7295 (alloca) [__hpux]: Always define as __builtin_alloca.
7297 1997-04-22 Richard Stallman <rms@gnu.org>
7300 [__hpux]: Include alloca.h (right for HPUX 10)
7301 instead of declaring alloca (right for HPUX 9).
7303 * src/bison.s1 (__yy_memcpy):
7304 Declare arg `count' as unsigned int.
7305 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
7307 1997-04-22 Richard Stallman <rms@gnu.org>
7310 [__hpux]: Include alloca.h (right for HPUX 10)
7311 instead of declaring alloca (right for HPUX 9).
7313 * bison.simple (__yy_memcpy):
7314 Declare arg `count' as unsigned int.
7315 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
7317 1997-01-03 Richard Stallman <rms@gnu.org>
7319 * src/allocate.c: [__STDC__ or _MSC_VER]:
7320 Declare calloc and realloc to return void *.
7322 1997-01-02 Richard Stallman <rms@gnu.org>
7325 [_MSC_VER]: Include stdlib.h and process.h.
7326 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
7328 * src/main.c (main): Return FAILURE as a value.
7329 (printable_version): Declare arg as int, not char.
7331 1997-01-02 Richard Stallman <rms@gnu.org>
7333 * Makefile.in (dist):
7334 Explicitly check for symlinks, and copy them.
7336 1996-12-19 Richard Stallman <rms@gnu.org>
7339 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
7341 1996-12-18 Paul Eggert <eggert@gnu.org>
7343 * src/bison.s1 (yyparse):
7344 If __GNUC__ and YYPARSE_PARAM are both defined,
7345 declare yyparse to have a void * argument.
7347 1996-12-18 Paul Eggert <eggert@gnu.org>
7349 * bison.simple (yyparse):
7350 If __GNUC__ and YYPARSE_PARAM are both defined,
7351 declare yyparse to have a void * argument.
7353 1996-12-17 Richard Stallman <rms@gnu.org>
7355 * src/reduce.c (nbits): Add some casts.
7357 1996-08-12 Richard Stallman <rms@gnu.org>
7359 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
7361 1996-08-12 Richard Stallman <rms@gnu.org>
7363 * bison.simple: Test _MSDOS as well as _MSDOS_.
7365 1996-07-31 Richard Stallman <rms@gnu.org>
7368 [__sun && __i386]: Include alloca.h.
7370 1996-07-31 Richard Stallman <rms@gnu.org>
7373 [__sun && __i386]: Include alloca.h.
7375 1996-07-30 Richard Stallman <rms@gnu.org>
7377 * src/bison.s1: Comment change.
7379 * src/bison.s1: Test _MSDOS_, not MSDOS.
7381 1996-07-30 Richard Stallman <rms@gnu.org>
7383 * bison.simple: Comment change.
7385 * bison.simple: Test _MSDOS_, not MSDOS.
7387 1996-06-01 Richard Stallman <rms@gnu.org>
7389 * src/reduce.c, src/reader.c, src/print.c, src/output.c, src/nullable.c, src/lex.c, src/lalr.c, src/getargs.c, src/derives.c, src/conflicts.c, src/closure.c, src/allocate.c:
7390 Insert `_' macro around many string constants.
7393 Insert `_' macro around many string constants.
7395 (main): Call setlocale, bindtextdomain and textdomain.
7397 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
7398 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
7399 [ENABLE_NLS]: Include libintl.h.
7400 [ENABLE_NLS] (gettext): Define.
7401 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
7402 (N_, PACKAGE, LOCALEDIR): New macros.
7404 1996-06-01 Richard Stallman <rms@gnu.org>
7406 * POTFILES.in: New file.
7408 * Makefile.in (allocate.o):
7409 Define target explicitly.
7411 * Makefile.in (CFLAGS): Set to @CFLAGS@.
7412 (LDFLAGS): Set to @LDFLAGS@.
7413 (configure): Run autoconf only if preceding `cd' succeeds.
7414 (bison.s1): Redirect output to temporary file then move the
7415 temporary to the target, rather than redirecting directly to bison.s1.
7416 (clean): Remove config.status and config.log.
7417 (distclean): Don't remove config.status here.
7419 1996-05-12 Richard Stallman <rms@gnu.org>
7422 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
7424 1996-05-12 Richard Stallman <rms@gnu.org>
7427 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
7429 1996-05-11 Richard Stallman <rms@gnu.org>
7431 * src/bison.s1 (__yy_memcpy):
7432 Really reorder the args, as was supposedly done on Feb 14 1995.
7433 (yyparse): Calls changed accordingly.
7435 1996-05-11 Richard Stallman <rms@gnu.org>
7437 * Makefile.in (dist): Don't use $(srcdir).
7439 * bison.simple (__yy_memcpy):
7440 Really reorder the args, as was supposedly done on Feb 14 1995.
7441 (yyparse): Calls changed accordingly.
7443 1996-01-27 Richard Stallman <rms@gnu.org>
7445 * src/output.c (output_rule_data):
7446 Test YYERROR_VERBOSE in the conditional
7447 around the definition of ttyname.
7449 1995-12-29 Richard Stallman <rms@gnu.org>
7452 Fix line numbers in #line commands.
7454 1995-12-29 Richard Stallman <rms@gnu.org>
7457 Fix line numbers in #line commands.
7459 1995-12-27 Richard Stallman <rms@gnu.org>
7461 * src/bison.s1 (YYPARSE_PARAM_DECL):
7462 In C++, make it always null.
7463 (YYPARSE_PARAM_ARG): New macro.
7464 (yyparse): Use YYPARSE_PARAM_ARG.
7466 1995-12-27 Richard Stallman <rms@gnu.org>
7468 * bison.simple (YYPARSE_PARAM_DECL):
7469 In C++, make it always null.
7470 (YYPARSE_PARAM_ARG): New macro.
7471 (yyparse): Use YYPARSE_PARAM_ARG.
7473 1995-11-29 Richard Stallman <rms@gnu.org>
7475 * doc/bison.texinfo:
7476 Describe literal string tokens, %raw, %no_lines, %token_table.
7478 1995-11-29 Daniel Hagerty <hag@gnu.org>
7480 * doc/bison.texinfo: Fixed update date
7482 1995-10-16 Richard Stallman <rms@gnu.org>
7484 * src/version.c: Version 1.25.
7486 1995-10-16 Richard Stallman <rms@gnu.org>
7488 * NEWS: *** empty log message ***
7490 1995-10-16 Richard Stallman <rms@gnu.org>
7492 * doc/bison.1, doc/bison.rnh:
7495 1995-10-15 Richard Stallman <rms@gnu.org>
7497 * src/vmsgetargs.c, src/getargs.c:
7498 Added -n, -k, and -raw switches.
7499 (noparserflag, toknumflag, rawtoknumflag): New variables.
7501 * src/symtab.h (SALIAS):
7502 New #define for adding aliases to %token.
7503 (struct bucket): Added `alias' field.
7505 * src/reduce.c (reduce_grammar):
7506 Revise error message.
7507 (print_notices): Remove final `.' from error message.
7509 * src/reader.c (reader_output_yylsp):
7511 (readgram): Use `#if 0' around code that accepted %command
7512 inside grammar rules: The documentation doesn't allow it,
7513 and it will fail since the %command processors scan for the next %.
7514 (parse_token_decl): Extended the %token
7515 declaration to allow a multi-character symbol as an alias.
7516 (parse_thong_decl): New function.
7517 (read_declarations): Added %thong declarations.
7518 (read_declarations): Handle NOOP to deal with allowing
7519 % declarations as another means to specify the flags.
7520 (readgram): Allow %prec prior to semantics embedded in a rule.
7521 (skip_to_char, read_declarations, copy_definition)
7522 (parse_token_decl, parse_start_decl, parse_type_decl)
7523 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
7524 (get_type_name, copy_guard, copy_action, readgram)
7525 (get_type, packsymbols): Revised most error messages.
7526 Changed `fatal' to `warnxxx' to avoid aborting for error.
7527 Revised and use multiple warnxxx functions to avoid using VARARGS1.
7528 (read_declarations): Improve the error message for
7529 an invalid character. Do not abort.
7530 (read_declarations, copy_guard, copy_action): Use
7531 printable_version to avoid unprintable characters in printed output.
7532 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
7533 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
7534 Allow the type of a non-terminal can be given
7535 more than once, as long as all specifications give the same type.
7538 (output_headers, output_trailers, output, output_gram)
7539 (output_rule_data): Implement noparserflag variable.
7540 Implement toknumflag variable.
7541 (output): Call reader_output_yylsp to output LTYPESTR.
7543 * src/main.c (main):
7544 If reader sees an error, don't process the grammar.
7545 (fatals): Updated to not use VARARGS1.
7546 (printable_version, int_to_string, warn, warni, warns, warnss)
7547 (warnsss): New error reporting functions. Avoid abort for error.
7550 Added THONG and NOOP for alias processing.
7551 Added SETOPT for the new code that allows setting options with %flags.
7554 Include getopt.h. Add some extern decls.
7555 (safegetc): New function to deal with EOF gracefully.
7556 (literalchar); new function to deal with reading \ escapes.
7557 (lex): Use literalchar.
7558 (lex): Implemented "..." tokens.
7559 (literalchar, lex, parse_percent_token): Made tokenbuffer
7560 always contain the token. This includes growing the token
7561 buffer while reading an integer.
7562 (parse_percent_token): Replaced if-else statement with percent_table.
7563 (parse_percent_token): Added % declarations as another
7564 way to specify the flags -n, -l, and -r. Also added hooks for
7565 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
7566 major changes to files.c.
7567 (lex) Retain in the incoming stream a character following
7569 (skip_white_space, lex): Revised most error messages
7570 and changed fatal to warn to avoid aborting.
7571 (percent_table): Added %thong declarations.
7573 * src/gram.h: Comment changes.
7575 * src/files.c (openfiles, open_extra_files, done):
7577 and actfile file. Handle noparserflag. Both for -n switch.
7579 * src/conflicts.c (resolve_sr_conflict):
7580 Remove use of alloca.
7582 1995-06-01 Jim Meyering <meyering@gnu.org>
7584 * doc/bison.texinfo: *** empty log message ***
7586 1995-05-06 Richard Stallman <rms@gnu.org>
7588 * src/bison.s1: Comment change.
7590 1995-05-06 Richard Stallman <rms@gnu.org>
7592 * bison.simple: Comment change.
7594 1995-05-03 Richard Stallman <rms@gnu.org>
7596 * src/version.c: Version now 1.24.
7598 * src/bison.s1: Change distribution terms.
7600 * src/version.c: Version now 1.23.
7602 1995-05-03 Richard Stallman <rms@gnu.org>
7604 * doc/bison.texinfo:
7605 Rewrite "Conditions for Using Bison".
7606 Update version to 1.24.
7608 1995-05-03 Richard Stallman <rms@gnu.org>
7610 * bison.simple: Change distribution terms.
7612 1995-02-23 Richard Stallman <rms@gnu.org>
7614 * src/files.c: Test __VMS_POSIX as well as VMS.
7616 1995-02-14 Jim Meyering <meyering@gnu.org>
7618 * src/bison.s1 (__yy_memcpy):
7619 Renamed from __yy_bcopy to avoid
7620 confusion. Reverse FROM and TO arguments to be consistent with
7623 1995-02-14 Jim Meyering <meyering@gnu.org>
7625 * bison.simple (__yy_memcpy):
7626 Renamed from __yy_bcopy to avoid
7627 confusion. Reverse FROM and TO arguments to be consistent with
7630 1994-11-10 David J. MacKenzie <djm@gnu.org>
7636 * Makefile.in (DISTFILES): Include NEWS.
7638 * Makefile.in (DISTFILES):
7639 Include install-sh, not install.sh.
7641 * configure.in: Update to Autoconf v2 macro names.
7643 1994-10-05 David J. MacKenzie <djm@gnu.org>
7645 * Makefile.in: fix typo
7647 * Makefile.in (prefix, exec_prefix):
7648 Let configure set them.
7650 1994-09-28 David J. MacKenzie <djm@gnu.org>
7652 * Makefile.in: Set datadir to $(prefix)/share.
7654 1994-09-15 Richard Stallman <rms@gnu.org>
7657 Update copyright notice and GPL version.
7659 1994-09-15 Richard Stallman <rms@gnu.org>
7662 Update copyright notice and GPL version.
7664 1994-07-12 Richard Stallman <rms@gnu.org>
7666 * src/reduce.c, src/reader.c:
7669 1994-05-05 David J. MacKenzie <djm@gnu.org>
7671 * Makefile.in: entered into RCS
7673 1994-03-26 Richard Stallman <rms@gnu.org>
7675 * src/bison.s1: entered into RCS
7677 1994-03-26 Richard Stallman <rms@gnu.org>
7679 * bison.simple: entered into RCS
7681 1994-03-25 Richard Stallman <rms@gnu.org>
7683 * src/main.c: entered into RCS
7685 1994-03-24 Richard Stallman <rms@gnu.org>
7687 * src/conflicts.c: entered into RCS
7689 1994-01-02 Richard Stallman <rms@gnu.org>
7691 * Makefile.in: *** empty log message ***
7693 1993-11-21 Richard Stallman <rms@gnu.org>
7695 * src/bison.s1: *** empty log message ***
7697 1993-11-21 Richard Stallman <rms@gnu.org>
7699 * doc/bison.texinfo: entered into RCS
7701 * doc/bison.texinfo: *** empty log message ***
7703 1993-11-21 Richard Stallman <rms@gnu.org>
7705 * bison.simple: *** empty log message ***
7707 1993-10-25 David J. MacKenzie <djm@gnu.org>
7709 * doc/bison.texinfo: *** empty log message ***
7711 1993-10-19 Richard Stallman <rms@gnu.org>
7713 * src/bison.s1: *** empty log message ***
7715 1993-10-19 Richard Stallman <rms@gnu.org>
7717 * bison.simple: *** empty log message ***
7719 1993-10-14 Richard Stallman <rms@gnu.org>
7721 * src/bison.s1: *** empty log message ***
7723 1993-10-14 Richard Stallman <rms@gnu.org>
7725 * bison.simple: *** empty log message ***
7727 1993-09-14 David J. MacKenzie <djm@gnu.org>
7729 * doc/bison.texinfo: *** empty log message ***
7731 1993-09-13 Noah Friedman <friedman@gnu.org>
7733 * Makefile.in: *** empty log message ***
7735 1993-09-10 Richard Stallman <rms@gnu.org>
7737 * src/conflicts.c: *** empty log message ***
7739 * src/system.h: entered into RCS
7741 1993-09-10 Richard Stallman <rms@gnu.org>
7743 * doc/bison.1: entered into RCS
7745 1993-09-06 Noah Friedman <friedman@gnu.org>
7747 * src/version.c: entered into RCS
7749 1993-09-06 Noah Friedman <friedman@gnu.org>
7751 * Makefile.in: *** empty log message ***
7753 1993-07-30 David J. MacKenzie <djm@gnu.org>
7755 * Makefile.in: *** empty log message ***
7757 1993-07-24 Richard Stallman <rms@gnu.org>
7759 * src/bison.s1: *** empty log message ***
7761 1993-07-24 Richard Stallman <rms@gnu.org>
7763 * bison.simple: *** empty log message ***
7765 1993-07-08 David J. MacKenzie <djm@gnu.org>
7767 * Makefile.in: *** empty log message ***
7769 1993-07-04 Richard Stallman <rms@gnu.org>
7771 * src/bison.s1: *** empty log message ***
7773 1993-07-04 Richard Stallman <rms@gnu.org>
7775 * bison.simple: *** empty log message ***
7777 1993-06-26 David J. MacKenzie <djm@gnu.org>
7779 * src/getargs.c: entered into RCS
7781 1993-06-26 David J. MacKenzie <djm@gnu.org>
7783 * doc/bison.texinfo: *** empty log message ***
7785 * doc/bison.1: New file.
7787 1993-06-25 Richard Stallman <rms@gnu.org>
7789 * src/getargs.c: New file.
7791 1993-06-16 Richard Stallman <rms@gnu.org>
7793 * src/bison.s1: *** empty log message ***
7795 1993-06-16 Richard Stallman <rms@gnu.org>
7797 * bison.simple: *** empty log message ***
7799 1993-06-03 Richard Stallman <rms@gnu.org>
7801 * src/bison.s1: New file.
7803 1993-06-03 Richard Stallman <rms@gnu.org>
7805 * doc/bison.texinfo: *** empty log message ***
7807 1993-06-03 Richard Stallman <rms@gnu.org>
7809 * bison.simple: New file.
7811 1993-05-19 Richard Stallman <rms@gnu.org>
7813 * doc/bison.texinfo: New file.
7815 1993-05-07 Noah Friedman <friedman@gnu.org>
7817 * Makefile.in: *** empty log message ***
7819 1993-04-28 Noah Friedman <friedman@gnu.org>
7821 * src/reader.c: *** empty log message ***
7823 1993-04-23 Noah Friedman <friedman@gnu.org>
7825 * src/alloc.h: entered into RCS
7827 1993-04-20 David J. MacKenzie <djm@gnu.org>
7829 * src/version.c: *** empty log message ***
7831 * src/files.c, src/allocate.c:
7834 * src/reader.c: *** empty log message ***
7836 * src/lex.c: entered into RCS
7838 * src/conflicts.c: New file.
7840 * src/symtab.c: entered into RCS
7842 * src/alloc.h: New file.
7844 * src/LR0.c: entered into RCS
7846 1993-04-18 Noah Friedman <friedman@gnu.org>
7848 * src/reader.c: New file.
7850 * src/version.c: *** empty log message ***
7852 1993-04-18 Noah Friedman <friedman@gnu.org>
7854 * Makefile.in: *** empty log message ***
7856 1993-04-17 Noah Friedman <friedman@gnu.org>
7858 * Makefile.in: *** empty log message ***
7860 1993-04-15 Richard Stallman <rms@gnu.org>
7862 * src/main.c, src/files.c:
7865 1993-04-15 Noah Friedman <friedman@gnu.org>
7867 * configure.in: entered into RCS
7869 * configure.in: *** empty log message ***
7871 * configure.in: New file.
7873 1993-04-14 Richard Stallman <rms@gnu.org>
7875 * Makefile.in: New file.
7877 1993-04-13 Richard Stallman <rms@gnu.org>
7879 * src/version.c: New file.
7881 1993-03-25 Richard Stallman <rms@gnu.org>
7883 * src/output.c: entered into RCS
7885 1992-09-25 Richard Stallman <rms@gnu.org>
7887 * configure.bat: entered into RCS
7889 1992-06-22 Richard Stallman <rms@gnu.org>
7891 * src/vmsgetargs.c: entered into RCS
7893 1992-06-22 Richard Stallman <rms@gnu.org>
7895 * doc/bison.rnh: entered into RCS
7897 1992-04-20 David J. MacKenzie <djm@gnu.org>
7899 * README: entered into RCS
7901 1992-01-22 Richard Stallman <rms@gnu.org>
7903 * src/machine.h: entered into RCS
7905 1991-12-21 Richard Stallman <rms@gnu.org>
7907 * src/lalr.c, src/closure.c:
7910 1991-12-20 Richard Stallman <rms@gnu.org>
7912 * src/state.h: entered into RCS
7914 1991-12-18 Richard Stallman <rms@gnu.org>
7916 * src/print.c, src/nullable.c, src/derives.c:
7919 1991-11-03 David J. MacKenzie <djm@gnu.org>
7921 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
7924 1988-09-09 Richard Stallman <rms@gnu.org>
7926 * src/bison.hairy: entered into RCS
7928 1987-12-16 Richard Stallman <rms@gnu.org>
7930 * REFERENCES: entered into RCS
7933 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
7935 This file is part of GNU Bison.
7937 GNU Bison is free software; you can redistribute it and/or modify
7938 it under the terms of the GNU General Public License as published by
7939 the Free Software Foundation; either version 2, or (at your option)
7942 GNU Bison is distributed in the hope that it will be useful,
7943 but WITHOUT ANY WARRANTY; without even the implied warranty of
7944 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7945 GNU General Public License for more details.
7947 You should have received a copy of the GNU General Public License
7948 along with GNU Bison; see the file COPYING. If not, write to
7949 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
7950 Boston, MA 02111-1307, USA.