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