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