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