]> git.saurik.com Git - bison.git/blob - ChangeLog
207c54bc495becede50633e97e12f967a8413633
[bison.git] / ChangeLog
1 2002-01-03 Akim Demaille <akim@epita.fr>
2
3 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
4 The ISO C++ standard is extremely clear about it: stderr is
5 considered a macro, not a regular symbol (see table 94 `Header
6 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
7 Therefore std:: does not apply to it. It still does with fprintf.
8 Also, s/cstdio.h/cstdio/.
9
10 2002-01-03 Akim Demaille <akim@epita.fr>
11
12 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
13 for non system headers.
14
15 2002-01-02 Akim Demaille <akim@epita.fr>
16
17 Equip the skeleton chain with location tracking, runtime trace,
18 pure parser and scanner.
19
20 * src/parse-skel.y: Request a pure parser, locations, and prefix
21 renaming.
22 (%union): Having several members with the same type does not help
23 type mismatches, simplify.
24 (YYPRINT, yyprint): New.
25 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
26 (skel_error): this.
27 Handle locations.
28 * src/scan-skel.l: Adjust to these changes.
29 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
30 (LOCATION_PRINT, skel_control_t): New.
31
32 2001-12-30 Akim Demaille <akim@epita.fr>
33
34 * src/parse-skel.y: Get rid of the shift/reduce conflict:
35 replace `gb' with BLANKS.
36 * src/scan-skel.l: Adjust.
37
38
39 2001-12-30 Akim Demaille <akim@epita.fr>
40
41 * src/system.h: We don't need nor want bcopy.
42 Throw away MS-DOS crap: we don't need getpid.
43 * configure.in: We don't need strndup. It was even causing
44 problems: because Flex includes the headers *before* us,
45 _GNU_SOURCE is not defined by config.h, and therefore strndup was
46 not visible.
47 * lib/xstrndup.c: New.
48 * src/scan-skel.l: Use it.
49 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
50 * src/parse-skel.y: Use %directives instead of #defines.
51
52
53 2001-12-30 Akim Demaille <akim@epita.fr>
54
55 * src/skeleton.h: New.
56 * src/output.c (output_parser, output_master_parser): Remove, dead
57 code.
58 * src/output.h (get_lines_number, actions_output, guards_output)
59 (token_definitions_output): Prototype them.
60 * src/parse-skel.y: Add the license notice.
61 Include output.h and skeleton.h.
62 (process_skeleton): Returns void, and takes a single parameter.
63 * src/scan-skel.l: Add the license notice.
64 Include skeleton.h.
65 Don't use %option yylineno: it seems that then Flex imagines
66 REJECT has been used, and therefore it won't reallocate its
67 buffers (which makes no other sense to me than a bug). It results
68 in warnings for `unused: yy_flex_realloc'.
69
70 to guess if the generated parsers should have '.tab' in their
71 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
72
73 2001-12-30 Robert Anisko <robert.anisko@epita.fr>
74
75 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
76 (MUSCLE_INSERT_PREFIX): ...to there.
77 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
78 (MUSCLE_INSERT_PREFIX): Move from here...
79
80 * src/bison.hairy: Add a section directive. Put braces around muscle
81 names. This parser skeleton is still broken, but Bison should not
82 choke on a bad muscle 'syntax'.
83 * src/bison.simple: Add a section directive. Put braces around muscle
84 names.
85
86 * src/files.h (strsuffix, stringappend): Add declarations.
87 (tab_extension): Add declaration.
88 (short_base_name): Add declaration.
89
90 * src/files.c (strsuffix, stringappend): No longer static. These
91 functions are used in the skeleton parser.
92 (tab_extension): New.
93 (compute_base_names): Use the computations done in this function
94 to guess if the generated parsers should have '.tab' in their
95 names.
96 (short_base_name): No longer static.
97
98 * src/output.c (output_skeleton): New.
99 (output): Disable call to output_master_parser, and give a try to
100 a new skeleton handling system.
101 (guards_output, actions_output): No longer static.
102 (token_definitions_output, get_lines_number): No longer static.
103
104 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
105
106 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
107 parse-skel.y.
108
109 * src/parse-skel.y: New file.
110 * src/scan-skel.l: New file.
111
112 2001-12-29 Akim Demaille <akim@epita.fr>
113
114 %name-prefix is broken.
115
116 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
117 Adjust all dependencies.
118 * tests/headers.at (export YYLTYPE): Strengthen this test: use
119 %name-prefix.
120
121 Renaming yylval but not yylloc is not consistent. Now we do.
122
123 * src/bison.simple: Prefix yylloc if used.
124 * doc/bison.texinfo (Decl Summary): Document that.
125
126 2001-12-29 Akim Demaille <akim@epita.fr>
127
128 * doc/bison.texinfo: Promote `%long-directive' over
129 `%long_directive'.
130 Remove all references to fixed-output-files, yacc is enough.
131
132 2001-12-29 Akim Demaille <akim@epita.fr>
133
134 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
135 user prologue. These are defaults.
136 * tests/actions.at (Mid-rule actions): Make sure the user can
137 define YYDEBUG and YYERROR_VERBOSE.
138
139 2001-12-29 Akim Demaille <akim@epita.fr>
140
141 * src/output.c (header_output): Don't forget to export YYLTYPE and
142 yylloc.
143 * tests/headers.at (export YYLTYPE): New, make sure it does.
144 * tests/regression.at (%union and --defines, Invalid CPP headers):
145 Move to...
146 * tests/headers.at: here.
147
148 2001-12-29 Akim Demaille <akim@epita.fr>
149
150 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
151
152 2001-12-29 Akim Demaille <akim@epita.fr>
153
154 * tests/actions.at (Mid-rule actions): Output on a single line
155 instead of several.
156
157 2001-12-29 Akim Demaille <akim@epita.fr>
158
159 * doc/bison.texinfo: Formatting changes.
160
161 2001-12-29 Akim Demaille <akim@epita.fr>
162
163 Don't store the token defs in a muscle, just be ready to output it
164 on command. Now possible via `symbols'. Fixes a memory leak.
165
166 * src/output.c (token_definitions_output): New.
167 (output_parser, header_output): Use it.
168 * src/reader.c (symbols_save): Remove.
169
170 2001-12-29 Akim Demaille <akim@epita.fr>
171
172 * src/bison.simple: Do not provide a default for YYSTYPE and
173 YYLTYPE before the user's prologue. Otherwise it's hardly... a
174 default.
175
176 2001-12-29 Akim Demaille <akim@epita.fr>
177
178 Mid-rule actions are simply... ignored!
179
180 * src/reader.c (readgram): Be sure to attach mid-rule actions to
181 the empty-rule associated to the dummy symbol, not to the host
182 rule.
183 * tests/actions.at (Mid-rule actions): New.
184
185 2001-12-29 Akim Demaille <akim@epita.fr>
186
187 Memory leak.
188
189 * src/reader.c (reader): Free grammar.
190
191 2001-12-29 Akim Demaille <akim@epita.fr>
192
193 Memory leak.
194
195 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
196 since it allocates it for each state, although only one is needed.
197 (allocate_storage): Do it here.
198
199 2001-12-29 Akim Demaille <akim@epita.fr>
200
201 * src/options.h, src/options.c (create_long_option_table): Rename
202 as...
203 (long_option_table_new): this, with a clearer prototype.
204 (percent_table): Remove, unused,
205 * src/getargs.c (getargs): Adjust.
206
207 2001-12-29 Akim Demaille <akim@epita.fr>
208
209 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
210 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
211 as states.
212
213 2001-12-29 Akim Demaille <akim@epita.fr>
214
215 * src/lalr.c (build_relations): Rename `states' as `states1'.
216 Sorry, I don't understand exactly what it is, no better name...
217
218 2001-12-29 Akim Demaille <akim@epita.fr>
219
220 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
221 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
222 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
223 as rules.
224
225 2001-12-29 Akim Demaille <akim@epita.fr>
226
227 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
228 ago.
229
230 2001-12-29 Akim Demaille <akim@epita.fr>
231
232 * src/reader.c, src/reader.h (user_toknums): Remove.
233 Adjust all users to use symbols[i]->user_token_number.
234
235 2001-12-29 Akim Demaille <akim@epita.fr>
236
237 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
238 Adjust all users to use symbols[i]->prec or ->assoc.
239
240 2001-12-29 Akim Demaille <akim@epita.fr>
241
242 * src/reader.c, src/reader.h (tags): Remove.
243 Adjust all users to use symbols[i]->tag.
244
245 2001-12-29 Akim Demaille <akim@epita.fr>
246
247 * src/gram.h, src/gram.c (symbols): New, similar to state_table
248 and rule_table.
249 * src/reader.c (packsymbols): Fill this table.
250 Drop sprec.
251 * src/conflicts.c (resolve_sr_conflict): Adjust.
252 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
253 single table.
254 Use symbols[i]->tag instead of tags[i].
255
256 2001-12-29 Akim Demaille <akim@epita.fr>
257
258 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
259 In addition, put a comment in there, to replace...
260 * tests/regression.at (%union and C comments): Remove.
261
262 2001-12-29 Akim Demaille <akim@epita.fr>
263
264 * tests/regression.at (Web2c Actions): Blindly move the actual
265 output as expected output. The contents *seem* right to me, but I
266 can't pretend reading perfectly parser tables... Nonetheless, all
267 the other tests pass correctly, the table look OK, even though the
268 presence of `$axiom' is to be noted: AFAICS it is useless (but
269 harmless).
270
271 2001-12-29 Akim Demaille <akim@epita.fr>
272
273 * src/reader.c (readgram): Don't add the rule 0 if there were no
274 rules read. In other words, add it _after_ having performed
275 grammar sanity checks.
276 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
277
278 2001-12-29 Akim Demaille <akim@epita.fr>
279
280 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
281 visible, and some states have now a different number.
282
283 2001-12-29 Akim Demaille <akim@epita.fr>
284
285 * src/reader.c (readgram): Bind the initial rule's lineno to that
286 of the first rule.
287 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
288 (Solved SR Conflicts): Adjust rule 0's line number.
289
290 2001-12-29 Akim Demaille <akim@epita.fr>
291
292 Fix the `GAWK Grammar' failure.
293
294 * src/LR0.c (final_state): Initialize to -1 so that we do compute
295 the reductions of the first state which was mistakenly confused
296 with the final state because precisely final_state was initialized
297 to 0.
298 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
299 now noticed by Bison.
300 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
301 have a reduction on $default.
302
303 2001-12-29 Akim Demaille <akim@epita.fr>
304
305 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
306 rule line numbers.
307 * src/closure.c (print_closure): Likewise.
308 * src/derives.c (print_derives): Likewise.
309 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
310 now.
311
312 2001-12-29 Akim Demaille <akim@epita.fr>
313
314 * src/lalr.c (lookaheads_print): New.
315 (lalr): Call it when --trace-flag.
316 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
317 are dumped.
318
319 2001-12-29 Akim Demaille <akim@epita.fr>
320
321 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
322 when walking through ritem, even via rule->rhs.
323 * src/reduce.c (dump_grammar, useful_production, reduce_output)
324 (useful_production, useless_nonterminals): Likewise.
325 (reduce_grammar_tables): Likewise, plus update nritems.
326 * src/nullable.c (set_nullable): Likewise.
327 * src/lalr.c (build_relations): Likewise.
328 * tests/sets.at (Nullable): Adjust.
329 Fortunately, now, the $axiom is no longer nullable.
330
331 2001-12-29 Akim Demaille <akim@epita.fr>
332
333 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
334 the 0-sentinel.
335 * src/gram.c (ritem_longest_rhs): Likewise.
336 * src/reduce.c (nonterminals_reduce): Likewise.
337 * src/print_graph.c (print_graph): Likewise.
338 * src/output.c (output_rule_data): Likewise.
339 * src/nullable.c (set_nullable): Likewise.
340
341 2001-12-29 Akim Demaille <akim@epita.fr>
342
343 * src/output.c: Comment changes.
344
345 2001-12-27 Paul Eggert <eggert@twinsun.com>
346
347 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
348 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
349 Sparc, as they were causing more porting problems than the
350 (minor) performance improvement was worth.
351
352 Also, catch up with 1.31's YYSTD.
353
354 2001-12-27 Akim Demaille <akim@epita.fr>
355
356 * src/output.c (output_gram): Rely on nritems, not the
357 0-sentinel. See below.
358 Use -1 as separator, not 0.
359 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
360 Rely on -1 as separator in yyrhs, instead of 0.
361 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
362 twice `Now at end of input', therefore there are two lines less to
363 expect.
364
365 2001-12-27 Akim Demaille <akim@epita.fr>
366
367 * tests/regression.at (Unresolved SR Conflicts):
368 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
369 below.
370
371 2001-12-27 Akim Demaille <akim@epita.fr>
372
373 * src/LR0.c (new_state): Recognize the final state by the fact it
374 is reached by eoftoken.
375 (insert_start_shifting_state, insert_eof_shifting_state)
376 (insert_accepting_state, augment_automaton): Remove, since now
377 these states are automatically computed from the initial state.
378 (generate_states): Adjust.
379 * src/print.c: When reporting a rule number to the user, substract
380 1, so that the axiom rule is rule 0, and the first user rule is 1.
381 * src/reduce.c: Likewise.
382 * src/print_graph.c (print_core): For the time being, just as for
383 the report, depend upon --trace-flags to dump the full set of
384 items.
385 * src/reader.c (readgram): Once the grammar read, insert the rule
386 0: `$axiom: START-SYMBOL $'.
387 * tests/set.at: Adjust: rule 0 is now displayed, and since the
388 number of the states has changed (the final state is no longer
389 necessarily the last), catch up.
390
391 2001-12-27 Akim Demaille <akim@epita.fr>
392
393 Try to make the use of the eoftoken valid. Given that its value
394 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
395 is used instead of > 0 where appropriate, (ii), depend upon nritems
396 instead of the 0-sentinel.
397
398 * src/gram.h, src/gram.c (nritems): New.
399 Expected to be duplication of nitems, but for the time being...
400 * src/reader.c (packgram): Assert nritems and nitems are equal.
401 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
402 * src/closure.c (print_closure, print_fderives): Likewise.
403 * src/gram.c (ritem_print): Likewise.
404 * src/print.c (print_core, print_grammar): Likewise.
405 * src/print_graph.c: Likewise.
406
407 2001-12-27 Akim Demaille <akim@epita.fr>
408
409 * src/main.c (main): If there are complains after grammar
410 reductions, then output the report anyway if requested, then die.
411 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
412 * src/reader.c (eoftoken): New.
413 (parse_token_decl): If the token being defined has value `0', it
414 is the eoftoken.
415 (packsymbols): No longer hack `tags' to insert `$' by hand.
416 Be sure to preserve the value of the eoftoken.
417 (reader): Make sure eoftoken is defined.
418 Initialize nsyms to 0: now eoftoken is created just like the others.
419 * src/print.c (print_grammar): Don't special case the eof token.
420 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
421 lie anyway, albeit pleasant.
422 * tests/calc.at: Exercise error messages with eoftoken.
423 Change the grammar so that empty input is invalid.
424 Adjust expectations.
425 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
426
427 2001-12-27 Akim Demaille <akim@epita.fr>
428
429 * configure.in: Check the protos of strchr ans strspn.
430 Replace strchr if needed.
431 * src/system.h: Provide the protos of strchr, strspn and memchr if
432 missing.
433 * lib/strchr.c: New.
434 * src/reader.c (symbols_save): Use strchr.
435
436 2001-12-27 Akim Demaille <akim@epita.fr>
437
438 * src/print.c, src/print_graph.c (escape): New.
439 Use it to quote the TAGS outputs.
440 * src/print_graph.c (print_state): Now errors are in red, and
441 reductions in green.
442 Prefer high to wide: output the state number on a line of its own.
443
444 2001-12-27 Akim Demaille <akim@epita.fr>
445
446 * src/state.h, src/state.c (reductions_new): New.
447 * src/LR0.c (set_state_table): Let all the states have a
448 `reductions', even if reduced to 0.
449 (save_reductions): Adjust.
450 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
451 * src/print.c (print_reductions, print_actions): Adjust.
452 * src/output.c (action_row): Adjust.
453
454 2001-12-27 Akim Demaille <akim@epita.fr>
455
456 * src/state.h, src/state.c (errs_new, errs_dup): New.
457 * src/LR0.c (set_state_table): Let all the states have an errs,
458 even if reduced to 0.
459 * src/print.c (print_errs, print_reductions): Adjust.
460 * src/output.c (output_actions, action_row): Adjust.
461 * src/conflicts.c (resolve_sr_conflict): Adjust.
462
463 2001-12-27 Akim Demaille <akim@epita.fr>
464
465 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
466
467 2001-12-27 Akim Demaille <akim@epita.fr>
468
469 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
470 * src/print.c: here.
471 (lookaheadset, shiftset): New, used as additional storage by
472 print_reductions.
473 (print_results): Adjust.
474 (print_shifts, print_gotos, print_errs): New, extracted from...
475 (print_actions): here.
476 * src/print_graph.c (print_actions): Remove dead code.
477
478 2001-12-27 Akim Demaille <akim@epita.fr>
479
480 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
481 `$n' and `@n'.
482
483 2001-12-27 Akim Demaille <akim@epita.fr>
484
485 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
486 (build_relations): Adjust.
487
488 2001-12-27 Akim Demaille <akim@epita.fr>
489
490 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
491 duplication.
492
493 2001-12-27 Akim Demaille <akim@epita.fr>
494
495 * src/reader.c (packgram): Catch nitems overflows.
496
497 2001-12-27 Akim Demaille <akim@epita.fr>
498
499 * src/files.c, src/files.h (guard_obstack): Remove.
500 * src/output.c (output): Adjust.
501 * src/reader.c (parse_braces): New, factoring...
502 (copy_action, copy_guard): these two which are renamed as...
503 (parse_action, parse_guard): these.
504 As a voluntary consequence, using braces around guards is now
505 mandatory.
506
507 2001-12-27 Akim Demaille <akim@epita.fr>
508
509 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
510 * src/reader.c (symbol_list): `guard' and `guard_line' are new
511 members.
512 (symbol_list_new): Adjust.
513 (copy_action): action_line is the first line, not the last.
514 (copy_guard): Just as for actions, store the `action' only, not
515 the switch/case/break flesh.
516 Don't parse the user action that might follow the guard, let...
517 (readgram): do it, i.e., now, there can be an action after a
518 guard.
519 In other words the guard is just explicitly optional.
520 (packgram): Adjust.
521 * src/output.c (guards_output): New.
522 (output_parser): Call it when needed.
523 (output): Also free the guard and attrs obstacks.
524 * src/files.c, src/files.h (obstack_save): Remove.
525 (output_files): Remove.
526 As a result, if one needs the former `.act' file, using an
527 appropriate skeleton which requires actions and guards is now
528 required.
529 * src/main.c (main): Adjust.
530 * tests/semantic.at: New.
531 * tests/regression.at: Use `input.y' as input file name.
532 Avoid 8+3 problems by requiring input.c when the test needs the
533 parser.
534
535 2001-12-27 Akim Demaille <akim@epita.fr>
536
537 * src/reader.c (symbol_list_new): Be sure to initialize all the
538 fields.
539
540 2001-12-27 Akim Demaille <akim@epita.fr>
541
542 All the hacks using a final pseudo state are now useless.
543
544 * src/LR0.c (set_state_table): state_table holds exactly nstates.
545 * src/lalr.c (nLA): New.
546 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
547 instead of lookaheadsp from the pseudo state (nstate + 1).
548
549 2001-12-27 Akim Demaille <akim@epita.fr>
550
551 * src/output.c (action_row, token_actions): Use a state_t instead
552 of a integer, and nlookaheads instead of the following state's
553 lookaheadsp.
554
555 2001-12-27 Akim Demaille <akim@epita.fr>
556
557 * src/conflicts.c (log_resolution, flush_shift)
558 (resolve_sr_conflict, set_conflicts, solve_conflicts)
559 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
560 (conflicts_print, print_reductions): Use a state_t instead of an
561 integer when referring to a state.
562 As much as possible, depend upon nlookaheads, instead of the
563 `lookaheadsp' member of the following state (since lookaheads of
564 successive states are successive, the difference between state n + 1
565 and n served as the number of lookaheads for state n).
566 * src/lalr.c (add_lookback_edge): Likewise.
567 * src/print.c (print_core, print_actions, print_state)
568 (print_results): Likewise.
569 * src/print_graph.c (print_core, print_actions, print_state)
570 (print_graph): Likewise.
571 * src/conflicts.h: Adjust.
572
573 2001-12-27 Akim Demaille <akim@epita.fr>
574
575 * src/bison.hairy: Formatting/comment changes.
576 ANSIfy.
577 Remove `register' indications.
578 Add plenty of `static'.
579
580 2001-12-27 Akim Demaille <akim@epita.fr>
581
582 * src/output.c (prepare): Drop the muscle `ntbase' which
583 duplicates ntokens.
584 * src/bison.simple: Formatting/comment changes.
585 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
586 is an undocumented synonym.
587
588 2001-12-22 Akim Demaille <akim@epita.fr>
589
590 * src/output.c (output_table_data): Change the prototype to use
591 `int' for array ranges: some invocations do pass an int, not a
592 short.
593 Reported by Wayne Green.
594
595 2001-12-22 Akim Demaille <akim@epita.fr>
596
597 Some actions of web2c.y are improperly triggered.
598 Reported by Mike Castle.
599
600 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
601 * tests/regression.at (Web2c): Rename as...
602 (Web2c Report): this.
603 (Web2c Actions): New.
604
605 2001-12-22 Akim Demaille <akim@epita.fr>
606
607 Reductions in web2c.y are improperly reported.
608 Reported by Mike Castle.
609
610 * src/conflicts.c (print_reductions): Fix.
611 * tests/regression.at (Web2c): New.
612
613 2001-12-18 Akim Demaille <akim@epita.fr>
614
615 Some host fail on `assert (!"foo")', which expands to
616 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
617 Reported by Nelson Beebee.
618
619 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
620 `#define it_succeeded 0' and `assert (it_succeeded)'.
621
622 2001-12-17 Marc Autret <autret_m@epita.fr>
623
624 * src/bison.simple: Don't hard code the skeleton line and filename.
625 * src/output.c (output_parser): Rename 'line' as 'output_line'.
626 New line counter 'skeleton_line' (skeleton-line muscle).
627
628 2001-12-17 Paul Eggert <eggert@twinsun.com>
629
630 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
631 YYDEBUG must be defined to a nonzero value.
632
633 * src/bison.simple (yytname): Do not assume that the user defines
634 YYDEBUG to a properly parenthesized expression.
635
636 2001-12-17 Akim Demaille <akim@epita.fr>
637
638 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
639 nlookaheads is a new member.
640 Adjust all users.
641 * src/lalr.h (nlookaheads): Remove this orphan declaration.
642 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
643 state.
644
645 2001-12-17 Akim Demaille <akim@epita.fr>
646
647 * src/files.h, src/files.c (open_files, close_files): Remove.
648 * src/main.c (main): Don't open/close files, nor invoke lex_free,
649 let...
650 * src/reader.c (reader): Do it.
651
652 2001-12-17 Akim Demaille <akim@epita.fr>
653
654 * src/conflicts.c (print_reductions): Formatting changes.
655
656 2001-12-17 Akim Demaille <akim@epita.fr>
657
658 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
659 (flush_reduce): New.
660 (resolve_sr_conflict): Adjust.
661
662 2001-12-17 Akim Demaille <akim@epita.fr>
663
664 * src/output.c (output_obstack): Be static and rename as...
665 (format_obstack): this, to avoid any confusion with files.c's
666 output_obstack.
667 * src/reader.h (muscle_obstack): Move to...
668 * src/output.h: here, since it's defined in output.c.
669
670 2001-12-17 Akim Demaille <akim@epita.fr>
671
672 * src/output.c (action_row, save_column, default_goto)
673 (sort_actions, matching_state, pack_vector): Better variable
674 locality.
675
676 2001-12-17 Akim Demaille <akim@epita.fr>
677
678 * src/output.c: Various formatting changes.
679
680 2001-12-17 Akim Demaille <akim@epita.fr>
681
682 * src/files.c (output_files): Free the output_obstack.
683 * src/main.c (main): Call print and print_graph conditionally.
684 * src/print.c (print): Work unconditionally.
685 * src/print_graph.c (print_graph): Work unconditionally.
686 * src/conflicts.c (log_resolution): Output only if verbose_flag.
687
688 2001-12-16 Marc Autret <autret_m@epita.fr>
689
690 * src/output.c (actions_output): Fix. When we use %no-lines,
691 there is one less line per action.
692
693 2001-12-16 Marc Autret <autret_m@epita.fr>
694
695 * src/bison.simple: Remove a useless #line directive.
696 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
697 * src/output.c (get_lines_number): New.
698 (output_parser): Adjust, now takes care about the lines of a
699 output muscles.
700 Fix line numbering.
701 (actions_output): Computes the number of lines taken by actions.
702 (output_master_parser): Insert new skeleton which is the name of
703 the output parser file name.
704
705 2001-12-15 Marc Autret <autret_m@epita.fr>
706
707 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
708
709 2001-12-15 Marc Autret <autret_m@epita.fr>
710
711 * src/output.c (output_gram): Keep track of the hairy one.
712
713 2001-12-15 Akim Demaille <akim@epita.fr>
714
715 Make `make distcheck' work.
716
717 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
718 system.h which uses libgettext.h.
719
720 2001-12-15 Akim Demaille <akim@epita.fr>
721
722 * src/nullable.c (set_nullable): Useless rules must be skipped,
723 otherwise, since we range over their symbols, we might look at a
724 nonterminal which no longer ``exists'', i.e., it is not counted in
725 `nvars', hence we overflow our arrays.
726
727 2001-12-15 Akim Demaille <akim@epita.fr>
728
729 The header can also be produced directly, without any obstack!
730 Yahoo!
731
732 * src/files.c, src/files.h (defines_obstack): Remove.
733 (compute_header_macro): Global.
734 (defines_obstack_save): Remove.
735 * src/reader.c (parse_union_decl): No longer output to
736 defines_obstack: its content can be found in the `stype' muscle
737 anyway.
738 (output_token_translations): Merge into...
739 (symbols_output): this.
740 Rename as...
741 (symbols_save): this.
742 (reader): Adjust.
743 * src/output.c (header_output): New.
744 (output): Call it.
745
746 2001-12-15 Akim Demaille <akim@epita.fr>
747
748 * src/reader.c (parse_union_decl): Instead of handling two obstack
749 simultaneously, use one to define the `stype' muscle, and use the
750 value of the latter to fill defines_obstack.
751 (copy_comment): Remove.
752 (copy_comment2): Work for a single obstack.
753 Rename as...
754 (copy_comment): this.
755
756 2001-12-15 Akim Demaille <akim@epita.fr>
757
758 * src/lex.c, src/lex.h (xgetc): No longer static.
759 * src/reader.c (parse_union_decl): Revamp.
760
761 2001-12-15 Akim Demaille <akim@epita.fr>
762
763 Still making progress in separating Bison into (i) input, (ii)
764 process, (iii) output: now we can directly output the parser file
765 without using table_obstack at all.
766
767 * src/files.c, src/files.h (table_obstack): Bye bye.
768 (parser_file_name): New.
769 * src/files.c (compute_output_file_names): Compute it.
770 * src/output.c (actions_output, output_parser)
771 (output_master_parser): To a file instead of an obstack.
772
773 2001-12-15 Akim Demaille <akim@epita.fr>
774
775 Attach actions to rules, instead of pre-outputting them to
776 actions_obstack.
777
778 * src/gram.h (rule_t): action and action_line are new members.
779 * src/reader.c (symbol_list): Likewise.
780 (copy_action): Save the actions within the rule.
781 (packgram): Save them in rule_table.
782 * src/output.c (actions_output): New.
783 (output_parser): Use it on `%%actions'.
784 (output_rule_data): Don't free rule_table.
785 (output): Do it.
786 (prepare): Don't save the `action' muscle.
787 * src/bison.simple: s/%%action/%%actions/.
788
789 2001-12-15 Akim Demaille <akim@epita.fr>
790
791 * src/reader.c (copy_action): When --yacc, don't append a `;'
792 to the user action: let it fail if lacking.
793 Suggested by Arnold Robbins and Tom Tromey.
794
795 2001-12-14 Akim Demaille <akim@epita.fr>
796
797 * src/lex.c (literalchar): Simply return the char you decoded, non
798 longer mess around with obstacks and int pointers.
799 Adjust all callers.
800
801 2001-12-14 Akim Demaille <akim@epita.fr>
802
803 * src/lex.c (literalchar): Don't escape the special characters,
804 just decode them, and keep them as char (before, eol was output as
805 the 2 char string `\n' etc.).
806 * src/output.c (output_rule_data): Use quotearg to output the
807 token strings.
808
809 2001-12-13 Paul Eggert <eggert@twinsun.com>
810
811 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
812 Do not infringe on the global user namespace when using C++.
813 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
814 All uses of `fprintf' and `stderr' changed.
815
816 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
817
818 2001-12-13 Akim Demaille <akim@epita.fr>
819
820 The computation of nullable is broken: it doesn't handle empty
821 RHS's properly.
822
823 * tests/torture.at (GNU AWK Grammar): New.
824 * tests/sets.at (Nullable): New.
825 * src/nullable.c (set_nullable): Instead of blindly looping over
826 `ritems', loop over the rules, and then over their rhs's.
827
828 Work around Autotest bugs.
829
830 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
831 frame, because Autotest understand lines starting with a `+' as
832 traces from the shell. Then, they are not processed properly.
833 Admittedly an Autotest bug, but we don't have time to wait for
834 Autotest to catch up.
835 * tests/regression.at (Broken Closure): Adjust to the new table
836 frames.
837 Move to...
838 * tests/sets.at: here.
839
840 2001-12-13 Akim Demaille <akim@epita.fr>
841
842 * src/closure.c (closure): Use nrules instead of playing tricks
843 with BITS_PER_WORD.
844
845 2001-12-13 Akim Demaille <akim@epita.fr>
846
847 * src/print.c (print_actions): Output the handling of `$' as the
848 traces do: shifting the token EOF. Before EOF was treated as a
849 nonterminal.
850 * tests/regression.at: Adjust some tests.
851 * src/print_graph.c (print_core): Complete the set of items via
852 closure. The next-to-final and final states are still unsatisfying,
853 but that's to be addressed elsewhere.
854 No longer output the rule numbers, but do output the state number.
855 A single loop for the shifts + gotos is enough, but picked a
856 distinct color for each.
857 (print_graph): Initialize and finalize closure.
858
859 2001-12-13 Akim Demaille <akim@epita.fr>
860
861 * src/reader.c (readgram): Remove dead code, an strip useless
862 braces.
863 (get_type): Remove, unused.
864
865 2001-12-12 Akim Demaille <akim@epita.fr>
866
867 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
868 on that of lib/error.c.
869
870 2001-12-12 Akim Demaille <akim@epita.fr>
871
872 Some hosts don't like `/' in includes.
873
874 * src/system.h: Include libgettext.h without qualifying the path.
875 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
876 $(top_srcdir).
877
878 2001-12-11 Marc Autret <autret_m@epita.fr>
879
880 * src/output.c (output_parser): Remove useless muscle.
881
882 2001-12-11 Marc Autret <autret_m@epita.fr>
883
884 * src/bison.simple: Remove #line just before %%epilogue. It
885 is now handled in ...
886 * src/reader.c (read_additionnal_code): Add the output of a
887 #line for the epilogue.
888
889 2001-12-10 Marc Autret <autret_m@epita.fr>
890
891 * src/reader.c (copy_definition): Re-use CPP-outed code which
892 replace precedent remove.
893 * src/bison.simple: Remove #line before %%prologue because
894 %%input-line is wrong at this time.
895
896 2001-12-10 Marc Autret <autret_m@epita.fr>
897
898 * src/reader.c (symbols_output): Clean up.
899 * src/output.c (output_gram, output): Clean up.
900
901 2001-12-10 Akim Demaille <akim@epita.fr>
902
903 * src/lalr.c (initialize_lookaheads): New. Extracted from...
904 * src/LR0.c (set_state_table): here.
905 * src/lalr.c (lalr): Call it.
906
907 2001-12-10 Akim Demaille <akim@epita.fr>
908
909 * src/state.h (shifts): Remove the `number' member: shifts are
910 attached to state, hence no longer need to be labelled with a
911 state number.
912
913 2001-12-10 Akim Demaille <akim@epita.fr>
914
915 Now that states have a complete set of members, the linked list of
916 shifts is useless: just fill directly the state's shifts member.
917
918 * src/state.h (shifts): Remove the `next' member.
919 * src/LR0.c (first_state, last_state): Remove.
920 Adjust the callers.
921 (augment_automaton): Don't look for the shifts that must be added
922 a shift on EOF: it is those of the state we looked for! But now,
923 since shifts are attached, it is no longer needed to looking
924 merely by its id: its number.
925
926 2001-12-10 Akim Demaille <akim@epita.fr>
927
928 * src/LR0.c (augment_automaton): Better variable locality.
929 Remove an impossible branch: if there is a state corresponding to
930 the start symbol being shifted, then there is shift for the start
931 symbol from the initial state.
932
933 2001-12-10 Akim Demaille <akim@epita.fr>
934
935 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
936 only when appropriate: when insert_start_shifting_state' is not
937 invoked.
938 * tests/regression.at (Rule Line Numbers): Adjust.
939
940 2001-12-10 Akim Demaille <akim@epita.fr>
941
942 * src/LR0.c (augment_automaton): Now that all states have shifts,
943 merge the two cases addition shifts to the initial state.
944
945 2001-12-10 Akim Demaille <akim@epita.fr>
946
947 * src/lalr.c (set_state_table): Move to...
948 * src/LR0.c: here.
949 * src/lalr.c (lalr): Don't call it...
950 * src/LR0.c (generate_states): do it.
951 * src/LR0.h (first_state): Remove, only the table is used.
952
953 2001-12-10 Akim Demaille <akim@epita.fr>
954
955 * src/LR0.h (first_shift, first_reduction): Remove.
956 * src/lalr.c: Don't use first_shift: find shifts through the
957 states.
958
959 2001-12-10 Akim Demaille <akim@epita.fr>
960
961 * src/LR0.c: Attach shifts to states as soon as they are
962 computed.
963 * src/lalr.c (set_state_table): Instead of assigning shifts to
964 state, just assert that the mapping was properly done.
965
966 2001-12-10 Akim Demaille <akim@epita.fr>
967
968 * src/LR0.c (insert_start_shift): Rename as...
969 (insert_start_shifting_state): this.
970 (insert_eof_shifting_state, insert_accepting_state): New.
971 (augment_automaton): Adjust.
972 Better locality of the variables.
973 When looking if the start_symbol is shifted from the initial
974 state, using `while (... symbol != start_symbol ...)' sounds
975 better than `while (... symbol < start_symbol ...)': If fail
976 to see how the order between symbols could be relevant!
977
978 2001-12-10 Akim Demaille <akim@epita.fr>
979
980 * src/getargs.h: Don't declare `spec_name_prefix' and
981 `spec_file_prefix', declared by src/files.h.
982 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
983 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
984 * src/output.c (prepare): Adjust.
985 * src/reader.c (symbols_output): Likewise.
986 * src/vmsgetargs.c: Vaguely adjust, but who cares?
987
988 2001-12-10 Akim Demaille <akim@epita.fr>
989
990 * src/muscle_tab.c (muscle_init): NULL is a better default than
991 `"0"'.
992
993 2001-12-10 Akim Demaille <akim@epita.fr>
994
995 * src/reader.c (reader): Calling symbols_output once is enough.
996
997 2001-12-10 Akim Demaille <akim@epita.fr>
998
999 Now that states have a complete set of members, the linked list of
1000 reductions is useless: just fill directly the state's reductions
1001 member.
1002
1003 * src/state.h (struct reductions): Remove member `number' and
1004 `next'.
1005 * src/LR0.c (first_reduction, last_reduction): Remove.
1006 (save_reductions): Don't link the new reductions, store them in
1007 this_state.
1008 * src/lalr.c (set_state_table): No need to attach reductions to
1009 states, it's already done.
1010 * src/output.c (output_actions): No longer free the shifts, then
1011 the reductions, then the states: free all the states and their
1012 members.
1013
1014 2001-12-10 Akim Demaille <akim@epita.fr>
1015
1016 * src/options.c (OPTN, DRTV, BOTH): New.
1017 (option_table): Use them.
1018
1019 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
1020 the job of system.h.
1021 * src/options.c: Don't include stdio.h and xalloc.h for the same
1022 reasons.
1023
1024 2001-12-10 Akim Demaille <akim@epita.fr>
1025
1026 * src/output.c (output, prepare): Make sure the values of the
1027 muscles `action' and `prologue' are 0-terminated.
1028
1029 2001-12-10 Akim Demaille <akim@epita.fr>
1030
1031 Clean up GCC warnings.
1032
1033 * src/reader.c (copy_action): `buf' is not used.
1034 (parse_skel_decl): Be static.
1035 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
1036 * src/options.h (create_long_option_table): Have a real prototype.
1037 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
1038 (hash_delete_at): Return const void *.
1039 Adjust casts to preserve the const.
1040
1041 2001-12-10 Akim Demaille <akim@epita.fr>
1042
1043 * configure.in: Require 2.52g.
1044 M4 is not needed, but AUTOM4TE is.
1045 * m4/m4.m4: Remove.
1046 * tests/Makefile.am: Adjust.
1047
1048 2001-12-10 Akim Demaille <akim@epita.fr>
1049
1050 One structure for states is enough, even though theoretically
1051 there are LR(0) states and LALR(1) states.
1052
1053 * src/lalr.h (state_t): Remove.
1054 (state_table): Be state_t **, not state_t *.
1055 * src/state.h (core, CORE_ALLOC): Rename as...
1056 (state_t, STATE_ALLOC): this.
1057 Add the LALR(1) members: shifts, reductions, errs.
1058 * src/LR0.c (state_table): Rename as...
1059 (state_hash): this, to avoid name clashes with the global
1060 `state_table'.
1061 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
1062 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
1063
1064 2001-12-10 Akim Demaille <akim@epita.fr>
1065
1066 Bison dumps core on bash.y.
1067 Reported by Pascal Bart.
1068
1069 * src/warshall.c (bitmatrix_print): New.
1070 (TC): Use it.
1071 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
1072 j must be the outer loop.
1073 * tests/regression.at (Broken Closure): New.
1074
1075 2001-12-05 Akim Demaille <akim@epita.fr>
1076
1077 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
1078 its argument.
1079 Reported by Peter Hámorský.
1080
1081 2001-12-05 Akim Demaille <akim@epita.fr>
1082
1083 * src/conflicts.c (err_table): Remove.
1084 (resolve_sr_conflict): Adjust.
1085 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
1086 Rename as...
1087 (state_t.reductions, state_t.shifts): this.
1088
1089 2001-12-05 Akim Demaille <akim@epita.fr>
1090
1091 * src/reduce.c (reduce_grammar_tables): No longer disable the
1092 removal of useless rules via CPP but via `if (0)', so that the
1093 compiler still check the code is valid.
1094 For instance, it should have noticed `rline' no longer exists: use
1095 the `line' member of rule_t.
1096 * src/gram.c (dummy, rline): Remove, unused.
1097
1098 2001-12-05 Akim Demaille <akim@epita.fr>
1099
1100 * src/output.c (pack_vector): Use assert, not berror.
1101 * src/main.c (berror): Remove, unused.
1102
1103 2001-12-05 Akim Demaille <akim@epita.fr>
1104
1105 New experimental feature: if --verbose --trace output all the
1106 items of a state, not only its kernel.
1107
1108 * src/print.c (print_core): If `trace_flag', then invoke closure
1109 before outputting the items of the state (print_core is no longer
1110 a correct name them).
1111 (print_results): Invoke new_closure/free_closure if needed.
1112
1113 2001-12-05 Akim Demaille <akim@epita.fr>
1114
1115 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
1116 * src/closure.c, src/closure.h (itemsetsize): Rename as...
1117 (nitemset): for consistency with the rest of the project.
1118
1119 2001-12-05 Akim Demaille <akim@epita.fr>
1120
1121 * src/closure.c (print_closure): Improve.
1122 (closure): Use it for printing input and output.
1123
1124 2001-12-05 Akim Demaille <akim@epita.fr>
1125
1126 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
1127 indexed by nonterminals.
1128
1129 2001-12-05 Akim Demaille <akim@epita.fr>
1130
1131 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
1132 what it was!).
1133 * src/warshall.h: Remove accidental duplication of the content.
1134
1135 2001-12-05 Akim Demaille <akim@epita.fr>
1136
1137 * src/closure.c (set_fderives): De-obfuscate.
1138
1139 2001-12-05 Akim Demaille <akim@epita.fr>
1140
1141 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
1142
1143 2001-12-05 Akim Demaille <akim@epita.fr>
1144
1145 * src/closure.c (set_firsts): De-obfuscate.
1146
1147 2001-12-05 Akim Demaille <akim@epita.fr>
1148
1149 * src/output.c (action_row): De-obfuscate
1150 using the good o' techniques: arrays not pointers, variable
1151 locality, BITISSET, RESETBIT etc.
1152
1153 2001-12-05 Akim Demaille <akim@epita.fr>
1154
1155 Pessimize the code to simplify it: from now on, all the states
1156 have a valid SHIFTS, which NSHIFTS is possibly 0.
1157
1158 * src/LR0.c (shifts_new): Be global and move to..
1159 * src/state.c, src/state.h: here.
1160 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
1161 * src/print_graph: Adjust.
1162
1163 2001-12-05 Akim Demaille <akim@epita.fr>
1164
1165 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
1166 * src/conflicts.c: Use it.
1167 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
1168 incorrectly ``simplified''.
1169
1170 2001-12-05 Akim Demaille <akim@epita.fr>
1171
1172 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
1173 using the good o' techniques: arrays not pointers, variable
1174 locality, BITISSET, RESETBIT etc.
1175
1176 2001-12-05 Akim Demaille <akim@epita.fr>
1177
1178 * src/state.h (SHIFT_SYMBOL): New.
1179 * src/conflicts.c: Use it to deobfuscate.
1180
1181 2001-12-05 Akim Demaille <akim@epita.fr>
1182
1183 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
1184 (print_reductions): De-obfuscate using the good o' techniques:
1185 arrays not pointers, variable locality, BITISSET.
1186
1187 2001-12-05 Akim Demaille <akim@epita.fr>
1188
1189 * src/conflicts.c (print_reductions): Arrays, not pointers.
1190 Use BITISSET.
1191
1192 2001-12-05 Akim Demaille <akim@epita.fr>
1193
1194 * src/conflicts.c (print_reductions): Pessimize, but clarify.
1195
1196 2001-12-05 Akim Demaille <akim@epita.fr>
1197
1198 * src/conflicts.c (print_reductions): Improve variable locality.
1199
1200 2001-12-05 Akim Demaille <akim@epita.fr>
1201
1202 * src/conflicts.c (print_reductions): Pessimize, but clarify.
1203
1204 2001-12-05 Akim Demaille <akim@epita.fr>
1205
1206 * src/conflicts.c (print_reductions): Improve variable locality.
1207
1208 2001-12-05 Akim Demaille <akim@epita.fr>
1209
1210 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
1211 * src/lalr.c: Use them.
1212
1213 2001-12-05 Akim Demaille <akim@epita.fr>
1214
1215 * src/LR0.c (augment_automaton): Formatting changes.
1216 Better variable locality.
1217
1218 2001-12-05 Akim Demaille <akim@epita.fr>
1219
1220 * src/lalr.c (matrix_print): New.
1221 (transpose): Use it.
1222 Use arrays instead of pointers.
1223
1224 2001-12-05 Akim Demaille <akim@epita.fr>
1225
1226 * src/lalr.c (maxrhs): Move to...
1227 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
1228 * src/lalr.c (build_relations): Adjust.
1229
1230 2001-12-05 Akim Demaille <akim@epita.fr>
1231
1232 * src/lalr.c (transpose): Free the memory allocated to the
1233 argument, as it is replaced by the results by the unique caller.
1234 (build_relations): Merely invoke transpose: it handles the memory
1235 deallocation.
1236 Improve variable locality.
1237 Avoid variables used as mere abbreviations.
1238 (compute_lookaheads): Use arrays instead of pointers.
1239
1240 2001-12-05 Akim Demaille <akim@epita.fr>
1241
1242 * src/lalr.c (initialize_F): Improve variable locality.
1243 Avoid variables used as mere abbreviations.
1244
1245 2001-12-05 Akim Demaille <akim@epita.fr>
1246
1247 * src/derives.c (print_derives): Display the ruleno.
1248 * src/lalr.c (initialize_F, transpose): Better variable locality
1249 to improve readability.
1250 Avoid variables used as mere abbreviations.
1251
1252 2001-12-05 Akim Demaille <akim@epita.fr>
1253
1254 * src/lalr.c (traverse): Use arrays instead of pointers.
1255
1256 2001-12-05 Akim Demaille <akim@epita.fr>
1257
1258 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
1259 the handling of squeue.
1260 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
1261
1262 2001-12-05 Akim Demaille <akim@epita.fr>
1263
1264 Because useless nonterminals are now kept alive (instead of being
1265 `destroyed'), we now sometimes examine them, and store information
1266 related to them. Hence we need to know their number, and adjust
1267 memory allocations.
1268
1269 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
1270 static.
1271 * src/LR0.c (allocate_itemsets): The memory allocated to
1272 `symbol_count' was used for two different purpose: once to count
1273 the number of occurrences of each symbol, and later reassigned to
1274 `shift_symbol', containing the symbol that can be shifted from a
1275 given state.
1276 Deobfuscate, i.e., allocate, use and free `symbol_count' here
1277 only, and...
1278 (new_itemsets): Allocate `shift_symbol' here.
1279 (allocate_itemsets): symbol_count includes useless nonterminals.
1280 Make room for them.
1281 (free_storage): Use `free', not `XFREE', for pointers that cannot
1282 be null.
1283
1284 2001-12-05 Akim Demaille <akim@epita.fr>
1285
1286 * src/nullable.c (set_nullable): Deobfuscate the handling of
1287 ritem.
1288 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
1289
1290 2001-12-05 Akim Demaille <akim@epita.fr>
1291
1292 * src/gram.c, src/gram.h (ritem_print): New.
1293 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
1294 (This useless function was defined only to work around VMS linkers
1295 that can't handle compilation units with variables only).
1296 * src/reduce.c (dump_grammar): Use it to trace the construction of
1297 ritem.
1298
1299 2001-12-04 Paul Eggert <eggert@twinsun.com>
1300
1301 * src/bison.simple (union yyalloc): Change member names
1302 to be the same as the stack names.
1303 (yyparse): yyptr is now union yyalloc *, not char *.
1304 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
1305 and may generate better code on some machines.
1306 (yystpcpy): Use prototype if __STDC__ is defined, not just
1307 if __cplusplus is defined.
1308
1309 2001-11-30 Akim Demaille <akim@epita.fr>
1310
1311 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
1312 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
1313 Gettext doesn't compile cleanly, and dies with -Werror.
1314 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
1315 Include WARNING_CFLAGS here.
1316 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
1317 before being defined.
1318
1319 2001-11-27 Paul Eggert <eggert@twinsun.com>
1320
1321 * lib/quotearg.h (quotearg_n, quotearg_n_style):
1322 First arg is int, not unsigned.
1323 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
1324 (SIZE_MAX, UINT_MAX): New macros.
1325 (quotearg_n_options): Abort if N is negative.
1326 Avoid overflow check on hosts where size_t is 64 bits and int
1327 is 32 bits, as overflow is impossible there.
1328 Fix off-by-one typo that caused unnecessary reallocation.
1329
1330 2001-11-29 Paul Eggert <eggert@twinsun.com>
1331
1332 Name space cleanup in generated parser.
1333
1334 * doc/bison.texinfo (Bison Parser): Discuss system headers
1335 and their effect on the user name space.
1336
1337 * src/bison.simple:
1338 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
1339 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
1340 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
1341
1342 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
1343 on user names when possible.
1344
1345 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
1346 Simplify test for whather <alloca.h> exists.
1347
1348 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
1349
1350 (<stdio.h>): Include if YYDEBUG.
1351
1352 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
1353 ! defined (yyoverflow) && ! defined (yymemcpy).
1354
1355 (yymemcpy, yyparse): Rename local variables as needed so that
1356 they all begin with 'yy'.
1357
1358 (yystrlen, yystpcpy): New functions.
1359
1360 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
1361 All uses changed.
1362
1363 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
1364 instead of relying on string.h functions. Use YYSTACK_ALLOC
1365 and YYSTACK_FREE instead of malloc and free.
1366
1367 2001-11-30 Akim Demaille <akim@epita.fr>
1368
1369 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
1370 before their first uses.
1371 (YYBISON, YYPURE): Move to the top of the output.
1372
1373 2001-11-30 Akim Demaille <akim@epita.fr>
1374
1375 * tests/reduce.at (Useless Nonterminals): Fix.
1376
1377 2001-11-30 Akim Demaille <akim@epita.fr>
1378
1379 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
1380 if body instead of `;' to pacify GCC's warnings.
1381
1382 2001-11-30 Akim Demaille <akim@epita.fr>
1383
1384 Instead of mapping the LHS of unused rules to -1, keep the LHS
1385 valid, but flag the rules as invalid.
1386
1387 * src/gram.h (rule_t): `useful' is a new member.
1388 * src/print.c (print_grammar): Adjust.
1389 * src/derives.c (set_derives): Likewise.
1390 * src/reader.c (packgram, reduce_output): Likewise.
1391 * src/reduce.c (reduce_grammar_tables): Likewise.
1392 * tests/reduce.at (Underivable Rules, Useless Rules): New.
1393
1394 2001-11-30 Akim Demaille <akim@epita.fr>
1395
1396 * src/reduce.c (reduce_output): Formatting changes.
1397 * src/print.c (print_results, print_grammar): Likewise.
1398 * tests/regression.at (Rule Line Numbers)
1399 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
1400
1401 2001-11-30 Akim Demaille <akim@epita.fr>
1402
1403 * src/reduce.c (nonterminals_reduce): Instead of throwing away
1404 useless nonterminals, move them at the end of the symbol arrays.
1405 (reduce_output): Adjust.
1406 * tests/reduce.at (Useless Nonterminals): Adjust.
1407
1408 2001-11-30 Akim Demaille <akim@epita.fr>
1409
1410 * src/reduce.c: Various comment/formatting changes.
1411 (nonterminals_reduce): New, extracted from...
1412 (reduce_grammar_tables): here.
1413 (reduce_grammar): Call nonterminals_reduce.
1414
1415 2001-11-29 Paul Eggert <eggert@twinsun.com>
1416
1417 * src/bison.simple (YYSTACK_REALLOC): Remove.
1418 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
1419 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
1420 New macros.
1421 (union yyalloc): New type.
1422 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
1423 an arbitrary restriction on hosts where size_t is wider than int.
1424
1425 (yyparse): Don't dump core if alloca or malloc fails; instead, report
1426 a parser stack overflow. Allocate just one block of memory for all
1427 three stacks, instead of allocating three blocks; this typically is
1428 faster and reduces fragmentation.
1429
1430 Do not limit the number of items in the stack to a value that fits
1431 in 'int', as this is an arbitrary limit on hosts with 64-bit
1432 size_t and 32-bit int.
1433
1434 2001-11-29 Marc Autret <autret_m@epita.fr>
1435
1436 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
1437 of defining YYERROR_VERBOSE.
1438 [AT_DATA]: $4 is now out of C declarations in the prologue.
1439
1440 2001-11-28 Marc Autret <autret_m@epita.fr>
1441
1442 * src/reader.c (parse_dquoted_param): New.
1443 (parse_skel_decl): Use it.
1444 * src/lex.h: Add its prototype.
1445 * src/lex.c (literalchar): Become not static.
1446
1447 2001-11-28 Marc Autret <autret_m@epita.fr>
1448
1449 * src/output.h: And put its extern declaration here.
1450 * src/output.c (error_verbose): Define here.
1451 (prepare): Echo name modification.
1452 * src/getargs.h: Clean its extern declaration.
1453 * src/getargs.c (error_verbose_flag): Remove.
1454 (getargs): Remove case 'e'.
1455 * src/options.c (option_table): 'error-verbose' is now seen as simple
1456 percent option.
1457 Include output.h.
1458
1459 * src/reader.c (read_declarations): Remove case tok_include.
1460 (parse_include_decl): Remove.
1461 * src/lex.h (token_t): Remove tok_include.
1462 * src/options.c (option_table): 'include' is now a simple command line
1463 option.
1464
1465 2001-11-28 Marc Autret <autret_m@epita.fr>
1466
1467 * src/bison.simple: Adjust muscle names.
1468 * src/muscle_tab.c (muscle_init): Also rename the muscles.
1469 * src/output.c (prepare): s/_/-/ for the muscles names.
1470 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
1471
1472 2001-11-28 Marc Autret <autret_m@epita.fr>
1473
1474 * src/bison.simple: Fix debug.
1475 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
1476
1477 2001-11-28 Akim Demaille <akim@epita.fr>
1478
1479 * src/LR0.c (shifts_new): New.
1480 (save_shifts, insert_start_shift, augment_automaton): Use it.
1481
1482 2001-11-28 Akim Demaille <akim@epita.fr>
1483
1484 * src/closure.c (closure): `b' and `ruleno' denote the same value:
1485 keep ruleno only.
1486
1487 2001-11-28 Akim Demaille <akim@epita.fr>
1488
1489 * src/closure.c (closure): Instead of looping over word in array
1490 then bits in words, loop over bits in array.
1491
1492 2001-11-28 Akim Demaille <akim@epita.fr>
1493
1494 * src/closure.c (closure): No longer optimize the special case
1495 where all the bits of `ruleset[r]' are set to 0, to make the code
1496 clearer.
1497
1498 2001-11-28 Akim Demaille <akim@epita.fr>
1499
1500 * src/closure.c (closure): `r' and `c' are new variables, used to
1501 de-obfuscate accesses to RULESET and CORE.
1502
1503 2001-11-28 Akim Demaille <akim@epita.fr>
1504
1505 * src/reduce.c (reduce_print): Use ngettext.
1506 (dump_grammar): Improve the trace accuracy.
1507
1508 2001-11-28 Akim Demaille <akim@epita.fr>
1509
1510 * src/reduce.c (dump_grammar): Don't translate trace messages.
1511
1512 2001-11-28 Akim Demaille <akim@epita.fr>
1513
1514 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
1515 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
1516 as all tags are free'ed afterwards.
1517 From Enrico Scholz.
1518
1519 2001-11-27 Paul Eggert <eggert@twinsun.com>
1520
1521 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
1522 use alloca when we didn't want to, and vice versa.
1523
1524 2001-11-27 Marc Autret <autret_m@epita.fr>
1525
1526 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
1527 initialization.
1528 * src/output.c (prepare): Remove its update.
1529
1530 2001-11-27 Marc Autret <autret_m@epita.fr>
1531
1532 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
1533 Use %error-verbose.
1534
1535 2001-11-27 Marc Autret <autret_m@epita.fr>
1536
1537 * src/bison.simple: Remove YYERROR_VERBOSE using.
1538 Use %%error_verbose.
1539 (yyparse): Likewise.
1540 * src/output.c (prepare): Give its final value.
1541 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
1542 * src/getargs.h: Add its extern declaration.
1543 * src/getargs.c (error_verbose_flag): New int.
1544 (getargs): Update to catch new case.
1545 * src/options.c (option_table): 'error-verbose' is a new option.
1546 (shortopts): Update.
1547
1548 2001-11-27 Akim Demaille <akim@epita.fr>
1549
1550 * src/system.h: Use intl/libgettext.h.
1551 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
1552
1553 2001-11-27 Akim Demaille <akim@epita.fr>
1554
1555 * tests/torture.at (Exploding the Stack Size with Malloc):
1556 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
1557
1558 2001-11-27 Akim Demaille <akim@epita.fr>
1559
1560 * src/files.c: Include error.h.
1561 Reported by Hans Aberg.
1562
1563 2001-11-26 Marc Autret <autret_m@epita.fr>
1564
1565 * src/reader.c (parse_include_decl): New, not yet implemented.
1566 (read_declarations): Add case tok_include.
1567 * src/getargs.h (include): Add its extern definition.
1568 * src/getargs.c (include): New const char *.
1569 (getargs): Add case '-I'.
1570 * src/options.c (option_table): Add include as command line and
1571 percent option.
1572 * src/lex.h (token_t): Add tok_include.
1573
1574 2001-11-26 Akim Demaille <akim@epita.fr>
1575
1576 * src/reader.c (readgram): Make sure rules for mid-rule actions
1577 have a lineno equal to that of their host rule.
1578 Reported by Hans Aberg.
1579 * tests/regression.at (Rule Line Numbers): New.
1580
1581 2001-11-26 Akim Demaille <akim@epita.fr>
1582
1583 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
1584 size_ts.
1585
1586 2001-11-26 Akim Demaille <akim@epita.fr>
1587
1588 * src/complain.c, src/complain.h (error): Remove, provided by
1589 lib/error.[ch].
1590
1591 2001-11-26 Akim Demaille <akim@epita.fr>
1592
1593 * src/reader.c (read_declarations): Don't abort on tok_illegal,
1594 issue an error message.
1595 * tests/regression.at (Invalid %directive): New.
1596 Reported by Hans Aberg.
1597
1598 2001-11-26 Akim Demaille <akim@epita.fr>
1599
1600 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
1601 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
1602
1603 2001-11-26 Akim Demaille <akim@epita.fr>
1604
1605 * src/conflicts.c (conflicts_print): Don't complain at all when
1606 there are no reduce/reduce conflicts, and as many shift/reduce
1607 conflicts as expected.
1608 * tests/regression.at (%expect right): Adjust.
1609
1610 2001-11-23 Akim Demaille <akim@epita.fr>
1611
1612 * lib/alloca.c: Update, from fileutils.
1613
1614 2001-11-23 Akim Demaille <akim@epita.fr>
1615
1616 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
1617
1618 2001-11-23 Akim Demaille <akim@epita.fr>
1619
1620 * src/system.h: Include alloca.h.
1621 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
1622
1623 2001-11-23 Akim Demaille <akim@epita.fr>
1624
1625 * src/print_graph.c (print_actions): Remove `rule', unused.
1626 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
1627 pacify GCC's signed < unsigned warnings.
1628 * src/closure.c (itemsetsize): Likewise.
1629 * src/reader.c (symbol_list_new): Static.
1630
1631 2001-11-23 Akim Demaille <akim@epita.fr>
1632
1633 Attaching lineno to buckets is stupid, since only one copy of each
1634 symbol is kept, only the line of the first occurrence is kept too.
1635
1636 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
1637 * src/reader.c (rline_allocated): Remove, unused.
1638 (symbol_list): Have a `line' member.
1639 (symbol_list_new): New.
1640 (readgram): Use it.
1641 * src/print.c (print_grammar): Output the rule line numbers.
1642 * tests/regression.at (Solved SR Conflicts)
1643 (Unresolved SR Conflicts): Adjust.
1644 Reported by Hans Aberg.
1645
1646 2001-11-22 Marc Autret <autret_m@epita.fr>
1647
1648 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
1649
1650 2001-11-22 Marc Autret <autret_m@epita.fr>
1651
1652 * src/muscle_tab.c (muscle_init): Remove initialization of
1653 skeleton muscle.
1654 * src/output.c (output_master_parser): Do it here.
1655
1656 2001-11-20 Akim Demaille <akim@epita.fr>
1657
1658 * po/sv.po: New.
1659 * configure.in (ALL_LINGUAS): Adjust.
1660 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
1661 longer contains strings to translate.
1662
1663 2001-11-19 Akim Demaille <akim@epita.fr>
1664
1665 * src/conflicts.c (conflicts_print): Add a missing \n.
1666
1667 2001-11-19 Akim Demaille <akim@epita.fr>
1668
1669 * src/nullable.c (nullable_print): New.
1670 (set_nullable): Call it when tracing.
1671 Better locality of variables.
1672
1673 2001-11-19 Akim Demaille <akim@epita.fr>
1674
1675 * src/print.c (print_actions): Better locality of variables.
1676
1677 2001-11-19 Akim Demaille <akim@epita.fr>
1678
1679 * src/derives.c (print_derives): Fix and enrich.
1680 * src/closure.c (print_fderives): Likewise.
1681
1682 2001-11-19 Akim Demaille <akim@epita.fr>
1683
1684 * src/closure.c (itemsetend): Remove, replaced with...
1685 (itemsetsize): new.
1686
1687 2001-11-19 Akim Demaille <akim@epita.fr>
1688
1689 * src/LR0.c (kernel_end): Remove, replaced with...
1690 (kernel_size): new.
1691
1692 2001-11-19 Akim Demaille <akim@epita.fr>
1693
1694 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
1695 to clarify.
1696
1697 2001-11-19 Akim Demaille <akim@epita.fr>
1698
1699 * src/closure.c (closure): Use arrays instead of pointers to clarify.
1700
1701 2001-11-19 Akim Demaille <akim@epita.fr>
1702
1703 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
1704 trace messages.
1705 * src/LR0.c: Likewise.
1706 (allocate_itemsets): Use arrays instead of pointers to clarify.
1707
1708 2001-11-19 Akim Demaille <akim@epita.fr>
1709
1710 * src/getargs.c (statistics_flag): Replace with...
1711 (trace_flag): New.
1712 (longopts): Accept --trace instead of --statistics.
1713 * src/getargs.h, src/options.c: Adjust.
1714 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
1715 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
1716
1717 2001-11-19 Akim Demaille <akim@epita.fr>
1718
1719 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
1720 pointers to clarify the code.
1721 (save_reductions, save_shifts): Factor common parts of alternatives.
1722
1723 2001-11-19 Akim Demaille <akim@epita.fr>
1724
1725 * src/LR0.c (new_state, get_state): Complete TRACE code.
1726 * src/closure.c: Include `reader.h' to get `tags', needed by the
1727 trace code.
1728 Rename the conditional DEBUG as TRACE.
1729 Output consistently TRACEs to stderr, not stdout.
1730 * src/derives.c: Likewise.
1731 * src/reduce.c: (inaccessable_symbols): Using if is better style
1732 than goto.
1733 Use `#if TRACE' instead of `#if 0' for tracing code.
1734
1735 2001-11-19 Akim Demaille <akim@epita.fr>
1736
1737 * src/system.h (LIST_FREE, shortcpy): New.
1738 * src/LR0.c: Use them.
1739 * src/output.c (free_itemsets, free_reductions, free_shifts):
1740 Remove, replaced by LIST_FREE.
1741
1742 2001-11-19 Akim Demaille <akim@epita.fr>
1743
1744 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
1745 (REDUCTIONS_ALLOC): New.
1746 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
1747 allocation.
1748
1749 2001-11-19 Akim Demaille <akim@epita.fr>
1750
1751 * src/LR0.c (new_state): Complete trace code.
1752 * src/nullable.c (set_nullable): Don't translate traces.
1753
1754 2001-11-19 Akim Demaille <akim@epita.fr>
1755
1756 * src/print_graph.c (print_core): Better locality of variables.
1757 * src/print.c (print_core): Likewise.
1758
1759 2001-11-19 Akim Demaille <akim@epita.fr>
1760
1761 * src/vcg.c: You do the output, so you are responsible of the
1762 handling of VCG syntax, in particular: use quotearg.
1763 * src/print_graph.c: Don't.
1764 (print_actions): Don't output the actions as part of the nodes,
1765 since that's the job of the edges.
1766 (print_state): Don't output by hand: fill the node description,
1767 and ask for its output.
1768
1769 2001-11-19 Akim Demaille <akim@epita.fr>
1770
1771 * src/bison.simple (yyparse): When verbosely reporting an error,
1772 no longer put additional quotes around token names.
1773 * tests/calc.at: Adjust.
1774
1775 2001-11-19 Akim Demaille <akim@epita.fr>
1776
1777 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
1778 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
1779 * src/output.c: Adjust.
1780
1781 2001-11-19 Akim Demaille <akim@epita.fr>
1782
1783 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
1784 (rule_t): this.
1785 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
1786
1787 2001-11-19 Akim Demaille <akim@epita.fr>
1788
1789 * src/gram.h (rule_t): New.
1790 (rule_table): New.
1791 (rrhs, rlhs): Remove, part of state_t.
1792 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
1793 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
1794 * src/reader.c, src/reduce.c: Adjust.
1795
1796 2001-11-19 Akim Demaille <akim@epita.fr>
1797
1798 * src/reader.c (symbols_output): New, extracted from...
1799 (packsymbols): Here.
1800 (reader): Call it.
1801
1802 2001-11-19 Akim Demaille <akim@epita.fr>
1803
1804 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
1805 (maxrhs): this new function.
1806
1807 2001-11-19 Akim Demaille <akim@epita.fr>
1808
1809 * src/lalr.c (F): New macro to access the variable F.
1810 Adjust.
1811
1812 2001-11-19 Akim Demaille <akim@epita.fr>
1813
1814 * src/lalr.h (LA): New macro to access the variable LA.
1815 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
1816 * src/lalr.c: Adjust.
1817
1818 2001-11-19 Akim Demaille <akim@epita.fr>
1819
1820 * src/lalr.c (initialize_LA): Only initialize LA. Let...
1821 (set_state_table): handle the `lookaheads' members.
1822
1823 2001-11-19 Akim Demaille <akim@epita.fr>
1824
1825 * src/lalr.h (lookaheads): Removed array, whose contents is now
1826 a member of...
1827 (state_t): this structure.
1828 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
1829 Adjust.
1830
1831 2001-11-19 Akim Demaille <akim@epita.fr>
1832
1833 * src/lalr.h (consistent): Removed array, whose contents is now
1834 a member of...
1835 (state_t): this structure.
1836 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
1837 Adjust.
1838
1839 2001-11-19 Akim Demaille <akim@epita.fr>
1840
1841 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
1842 contents are now members of...
1843 (state_t): this structure.
1844 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
1845 Adjust.
1846
1847 2001-11-19 Akim Demaille <akim@epita.fr>
1848
1849 * src/lalr.h (state_t): New.
1850 (state_table): Be a state_t * instead of a core **.
1851 (accessing_symbol): Remove, part of state_t.
1852 * src/lalr.c: Adjust.
1853 (set_accessing_symbol): Merge into...
1854 (set_state_table): this.
1855 * src/print_graph.c, src/conflicts.c: Adjust.
1856
1857 2001-11-14 Akim Demaille <akim@epita.fr>
1858
1859 * tests/calc.at, tests/output.at, tests/regression.at,
1860 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
1861 now the tests are run in private dirs, therefore AC_CLEANUP and
1862 family can be simplified to 0-ary.
1863 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
1864 use abs. path to find config.h.
1865 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
1866 stderr, there can be way too much random noise.
1867 Instead pass -Werror to GCC and rely on the exit status.
1868 Reported by Wolfram Wagner.
1869
1870 2001-11-14 Akim Demaille <akim@epita.fr>
1871
1872 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
1873 defined only if yyoverflow is defined, to avoid `warning: unused
1874 variable `yyvs1''.
1875 Reported by The Test Suite.
1876
1877 2001-11-14 Akim Demaille <akim@epita.fr>
1878
1879 * src/print.c: Include reduce.h.
1880 Reported by Hans Aberg.
1881
1882 2001-11-14 Akim Demaille <akim@epita.fr>
1883
1884 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
1885 Revert a previous patch: these are really const.
1886 * src/conflicts.c (conflict_report): Additional useless pair of
1887 braces to pacify GCC's warnings for `if () if () {} else {}'.
1888 * src/lex.c (parse_percent_token): Replace equal_offset with
1889 arg_offset.
1890 arg is const.
1891 Be sure to strdup `arg' when used, since there is no reason for
1892 token_buffer not to change.
1893
1894 2001-11-14 Akim Demaille <akim@epita.fr>
1895
1896 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
1897 definition.
1898 * src/main.c (main): Use them.
1899 Suggested by Hans Aberg.
1900
1901 2001-11-12 Akim Demaille <akim@epita.fr>
1902
1903 * src/system.h (ngettext): Now that we use ngettext, be sure to
1904 provide a default definition when NLS are not used.
1905
1906 2001-11-12 Akim Demaille <akim@epita.fr>
1907
1908 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
1909 Use @kbd to denote user input.
1910 (Language and Grammar): ANSIfy the example.
1911 Adjust its layout for info/notinfo.
1912 (Location Tracking Calc): Output error messages to stderr.
1913 Output locations in a more GNUtically correct way.
1914 Fix a couple of Englishos.
1915 Adjust @group/@end group pairs.
1916
1917 2001-11-12 Akim Demaille <akim@epita.fr>
1918
1919 %expext was not functioning at all.
1920
1921 * src/conflicts.c (expected_conflicts): Set to -1.
1922 (conflict_report): Use ngettext.
1923 (conflicts_print): Check %expect and make its violation an error.
1924 * doc/bison.texinfo (Expect Decl): Adjust.
1925 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
1926 * tests/regression.at (%expect not enough, %expect right)
1927 (%expect too much): New.
1928
1929 2001-11-12 Akim Demaille <akim@epita.fr>
1930
1931 * tests/regression.at (Conflicts): Rename as...
1932 (Unresolved SR Conflicts): this.
1933 (Solved SR Conflicts): New.
1934
1935 2001-11-12 Akim Demaille <akim@epita.fr>
1936
1937 * src/reduce.c (print_results): Rename as...
1938 (reduce_output): This.
1939 Output to OUT, passed as argument, instead of output_obstack.
1940 (dump_grammar): Likewise.
1941 (reduce_free): New.
1942 Also free V1.
1943 (reduce_grammar): No longer call reduce_output, since...
1944 * src/print.c (print_results): do it.
1945 * src/main.c (main): Call reduce_free;
1946
1947 2001-11-12 Akim Demaille <akim@epita.fr>
1948
1949 * src/conflicts.c (print_reductions): Accept OUT as argument.
1950 Output to it, not to output_obstack.
1951 * src/print.c (print_actions): Adjust.
1952
1953 2001-11-12 Akim Demaille <akim@epita.fr>
1954
1955 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
1956 the result instead of using...
1957 (src_total, rrc_total, src_count, rrc_count): Remove.
1958 (any_conflicts): Remove.
1959 (print_conflicts): Split into...
1960 (conflicts_print, conflicts_output): New.
1961 * src/conflicts.h: Adjust.
1962 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
1963 * src/print.c (print_grammar): Issue `\n' between two rules.
1964 * tests/regression.at (Conflicts): New.
1965 Reported by Tom Lane.
1966
1967 2001-11-12 Akim Demaille <akim@epita.fr>
1968
1969 * tests/regression.at (Invalid input): Remove, duplicate with
1970 ``Invalid input: 1''.
1971
1972 2001-11-12 Akim Demaille <akim@epita.fr>
1973
1974 * tests/torture.at (AT_DATA_STACK_TORTURE)
1975 (Exploding the Stack Size with Alloca)
1976 (Exploding the Stack Size with Malloc): New.
1977
1978 2001-11-12 Akim Demaille <akim@epita.fr>
1979
1980 * src/bison.simple (YYSTACK_REALLOC): New.
1981 (yyparse) [!yyoverflow]: Use it and free the old stack.
1982 Reported by Per Allansson.
1983
1984 2001-11-12 Pascal Bart <pascal.bart@epita.fr>
1985
1986 * src/bison.simple: Define type yystype instead of YYSTYPE, and
1987 define CPP macro, which substitute YYSTYPE by yystype.
1988 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
1989 with yyltype/YYLTYPE. This allows inclusion of the generated
1990 header within the parser if the compiler, such as GGC, accepts
1991 multiple equivalent #defines.
1992 From Akim.
1993
1994 2001-11-05 Akim Demaille <akim@epita.fr>
1995
1996 * src/reader.c (symbols_output): New, extracted from...
1997 (packsymbols): here.
1998 (reader): Adjust.
1999
2000 2001-11-05 Akim Demaille <akim@epita.fr>
2001
2002 * src/lex.c (parse_percent_token): s/quotearg/quote/.
2003
2004 2001-11-05 Akim Demaille <akim@epita.fr>
2005
2006 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
2007 pattern.
2008
2009 2001-11-05 Akim Demaille <akim@epita.fr>
2010
2011 * src/options.h (struct option_table_struct): set_flags is void*.
2012 * src/options.c (longopts): Support `--output' and `%output'.
2013 (usage): Adjust.
2014 * src/lex.h (tok_setopt): Remove, replaced with...
2015 (tok_intopt, tok_stropt): these new guys.
2016 * src/lex.c (getopt.h): Not needed.
2017 (token_buffer, unlexed_token_buffer): Not const.
2018 (percent_table): Promote `-' over `_' in directive names.
2019 Active `%name-prefix', `file-prefix', and `output'.
2020 (parse_percent_token): Accept possible arguments to directives.
2021 Promote `-' over `_' in directive names.
2022
2023 2001-11-04 Akim Demaille <akim@epita.fr>
2024
2025 * doc/bison.texinfo (Decl Summary): Split the list into
2026 `directives for grammars' and `directives for bison'.
2027 Sort'em.
2028 Add description of `%name-prefix', `file-prefix', and `output'.
2029 Promote `-' over `_' in directive names.
2030 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
2031 Simplify the description of `--name-prefix'.
2032 Promote `-' over `_' in directive names.
2033 Promote `--output' over `--output-file'.
2034 Fix the description of `--defines'.
2035 * tests/output.at: Exercise %file-prefix and %output.
2036
2037 2001-11-02 Akim Demaille <akim@epita.fr>
2038
2039 * doc/refcard.tex: Update.
2040
2041 2001-11-02 Akim Demaille <akim@epita.fr>
2042
2043 * src/symtab.h (SUNDEF): New.
2044 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
2045 stand for `uninitialized', instead of 0.
2046 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
2047 * src/lex.c (lex): Adjust.
2048
2049 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
2050 Number it 0.
2051 Let yylex return it instead of a plain 0.
2052 Reported by Dick Streefland.
2053
2054 2001-11-02 Akim Demaille <akim@epita.fr>
2055
2056 * tests/regression.at (Mixing %token styles): New test.
2057
2058 2001-11-02 Akim Demaille <akim@epita.fr>
2059
2060 * src/reader.c (parse_thong_decl): Formatting changes.
2061 (token_translations_init): New, extracted from...
2062 (packsymbols): Here.
2063 Adjust.
2064
2065 2001-11-01 Akim Demaille <akim@epita.fr>
2066
2067 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
2068 Check that `9foo.y' produces correct cpp guards.
2069 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
2070 guards.
2071 Reported by Wwp.
2072
2073 2001-11-01 Akim Demaille <akim@epita.fr>
2074
2075 * tests/regression.at (Invalid input: 2): New.
2076 * src/lex.c (unlexed_token_buffer): New.
2077 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
2078 too.
2079 Reported by Wwp.
2080
2081 2001-11-01 Akim Demaille <akim@epita.fr>
2082
2083 * tests/calc.at: Catch up with 1.30.
2084 * configure.in: Bump to 1.49a.
2085 Adjust to newer Autotest.
2086
2087 2001-10-19 Pascal Bart <pascal.bart@epita.fr>
2088
2089 * src/conflicts.c: Move global variables rrc_total and src_total ...
2090 (print_conflicts): here.
2091 * src/output.c (output): Free global variable user_toknums.
2092 * src/lex.c (token_obstack): Become static.
2093
2094 2001-10-18 Akim Demaille <akim@epita.fr>
2095
2096 * tests/atlocal.in (GCC): Add.
2097 * tests/calc.at: s/m4_match/m4_bmatch/.
2098 s/m4_patsubst/m4_bpatsubst/.
2099 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
2100 * configure.in: AC_SUBST(GCC).
2101
2102 2001-10-14 Marc Autret <autret_m@epita.fr>
2103
2104 * src/options.c (create_long_option_table): Fix.
2105
2106 2001-10-10 Akim Demaille <akim@epita.fr>
2107
2108 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
2109
2110 2001-10-04 Akim Demaille <akim@epita.fr>
2111
2112 * src/reader.c (parse_union_decl): Push the caracters in
2113 union_obstack, not attrs_obstack.
2114
2115 2001-10-04 Akim Demaille <akim@epita.fr>
2116
2117 Merge in the branch 1.29.
2118
2119 * src/reader.c (packsymbols): Use a temporary obstack for
2120 `%%tokendef', since output_stack is already used elsewhere.
2121
2122 2001-10-02 Akim Demaille <akim@epita.fr>
2123
2124 Bump 1.29d.
2125
2126 2001-10-02 Akim Demaille <akim@epita.fr>
2127
2128 Version 1.29c.
2129
2130 2001-10-02 Akim Demaille <akim@epita.fr>
2131
2132 * tests/regression.at (Invalid CPP headers): New.
2133 From Alexander Belopolsky.
2134 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
2135
2136 2001-10-02 Akim Demaille <akim@epita.fr>
2137
2138 * tests/regression.at (Invalid input): New.
2139 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
2140 Reported by Shura.
2141
2142 2001-10-02 Akim Demaille <akim@epita.fr>
2143
2144 * tests/calc.at: Now that --debug works, the tests must be adjusted.
2145
2146 2001-10-02 Akim Demaille <akim@epita.fr>
2147
2148 * src/output.c (output_parser): Assert `skeleton'.
2149 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
2150 systems.
2151 From Shura.
2152
2153 2001-10-01 Marc Autret <autret_m@epita.fr>
2154
2155 * src/lex.h: Echo modifications.
2156 * src/lex.c (unlex): Parameter is now token_t.
2157 From Hans Aberg.
2158
2159 2001-10-01 Marc Autret <autret_m@epita.fr>
2160
2161 * src/main.c: Include lex.h.
2162 From Hans Aberg.
2163
2164 2001-09-29 Akim Demaille <akim@epita.fr>
2165
2166 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
2167
2168 2001-09-28 Akim Demaille <akim@epita.fr>
2169
2170 * tests/testsuite.at: Update to newer Autotest.
2171 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
2172
2173 2001-09-27 Akim Demaille <akim@epita.fr>
2174
2175 Position independent wrapper.
2176
2177 * tests/bison: Remove.
2178 * tests/bison.in: New.
2179 * configure.in: Adjust.
2180
2181 2001-09-27 Paul Eggert <eggert@twinsun.com>
2182
2183 Port quotearg fixes from tar 1.13.24.
2184
2185 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
2186 tm to be declared.
2187 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
2188 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
2189
2190 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
2191 * m4/mbrtowc.m4: New file.
2192 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
2193 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
2194
2195 2001-09-27 Akim Demaille <akim@epita.fr>
2196
2197 Bump to 1.29c.
2198
2199 2001-09-27 Akim Demaille <akim@epita.fr>
2200
2201 Version 1.29b.
2202
2203 2001-09-25 Akim Demaille <akim@epita.fr>
2204
2205 * src/system.h: Include `xalloc.h'.
2206 Remove it from the C files.
2207 * src/files.c (output_files): Free the obstacks.
2208 * src/lex.c (init_lex): Rename as...
2209 (lex_init): this.
2210 (lex_free): New.
2211 * src/main.c (main): Use it.
2212
2213 2001-09-24 Marc Autret <autret_m@epita.fr>
2214
2215 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
2216 to output informations in fout (FILE*).
2217 (open_graph, close_graph): Likewise.
2218 (output_graph, output_edge, output_node): Likewise.
2219 * src/vcg.h: Update function prototypes.
2220 * src/print_graph.c (print_graph): Open output graph file.
2221 (print_actions): Adjust.
2222 * src/files.h: Remove extern declaration.
2223 * src/files.c: Remove graph_obstack declaration.
2224 (open_files): Remove graph_obstack initialization.
2225 (output_files): Remove graph_obstack saving.
2226
2227 2001-09-24 Marc Autret <autret_m@epita.fr>
2228
2229 * src/files.c (compute_output_file_names): Fix.
2230
2231 2001-09-24 Marc Autret <autret_m@epita.fr>,
2232 Akim Demaille <akim@epita.fr>
2233
2234 * src/reader.c (reader): Remove call to free_symtab ().
2235 * src/main.c (main): Call it here.
2236 Include symtab.h.
2237 * src/conflicts.c (initialize_conflicts): Rename as...
2238 (solve_conflicts): this.
2239 * src/print.c (print_core, print_actions, print_state)
2240 (print_grammar): Dump to a file instead a `output_obstack'.
2241 (print_results): Dump `output_obstack', and then proceed with the
2242 FILE *.
2243 * src/files.c (compute_output_file_names, close_files): New.
2244 (output_files): Adjust.
2245 * src/main.c (main): Adjust.
2246
2247 2001-09-23 Marc Autret <autret_m@epita.fr>
2248
2249 * src/files.c (compute_header_macro): Computes header macro name
2250 from spec_defines_file when given.
2251
2252 2001-09-23 Marc Autret <autret_m@epita.fr>
2253
2254 * src/files.c (output_files): Add default extensions.
2255
2256 2001-09-22 Akim Demaille <akim@epita.fr>
2257
2258 * src/conflicts.c (finalize_conflicts): Rename as...
2259 (free_conflicts): this.
2260
2261 2001-09-22 Akim Demaille <akim@epita.fr>
2262
2263 * src/gram.c (gram_free): Rename back as...
2264 (dummy): this.
2265 (output_token_translations): Free `token_translations'.
2266 * src/symtab.c (free_symtab): Free the tag field.
2267
2268 2001-09-22 Akim Demaille <akim@epita.fr>
2269
2270 Remove `translations' as it is always set to true.
2271
2272 * src/gram.h: Adjust.
2273 * src/reader.c (packsymbols, parse_token_decl): Adjust
2274 * src/print.c (print_grammar): Adjust.
2275 * src/output.c (output_token_translations): Adjust.
2276 * src/lex.c (lex): Adjust.
2277 * src/gram.c: Be sure the set pointers to NULL.
2278 (dummy): Rename as...
2279 (gram_free): this.
2280
2281 2001-09-22 Akim Demaille <akim@epita.fr>
2282
2283 * configure.in: Invoke AM_LIB_DMALLOC.
2284 * src/system.h: Use dmalloc.
2285 * src/LR0.c: Be sure to have pointers initialized to NULL.
2286 (allocate_itemsets): Allocate kernel_items only if needed.
2287
2288 2001-09-22 Akim Demaille <akim@epita.fr>
2289
2290 * configure.in: Bump to 1.29b.
2291 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
2292 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
2293 need xmalloc.c in calc.y.
2294 From Pascal Bart.
2295
2296 2001-09-21 Akim Demaille <akim@epita.fr>
2297
2298 Version 1.29a.
2299 * Makefile.maint, config/config.guess, config/config.sub,
2300 * config/missing: Update from masters.
2301 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
2302 upon package.m4.
2303 * configure.in (ALL_LINGUAS): Add `tr'.
2304
2305 2001-09-21 Akim Demaille <akim@epita.fr>
2306
2307 * tests/Makefile.am (package.m4): Move to...
2308 ($(srcdir)/$(TESTSUITE)): here.
2309
2310 2001-09-20 Akim Demaille <akim@epita.fr>
2311
2312 * src/complain.c: No longer try to be standalone: use system.h.
2313 Don't assume __STDC__ is defined to 1. Just test if it is defined.
2314 * src/complain.h: Likewise.
2315 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
2316 Remove the unused variable `n'.
2317 From Albert Chin-A-Young.
2318
2319 2001-09-18 Marc Autret <autret_m@epita.fr>
2320
2321 * doc/bison.1: Update.
2322 * doc/bison.texinfo (Bison Options): Update --defines and --graph
2323 descriptions.
2324 (Option Cross Key): Update.
2325 Add --graph.
2326
2327 2001-09-18 Marc Autret <autret_m@epita.fr>
2328
2329 * tests/regression.at: New test (comment in %union).
2330
2331 2001-09-18 Marc Autret <autret_m@epita.fr>
2332
2333 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
2334 do that.
2335 Reported by Keith Browne.
2336
2337 2001-09-18 Marc Autret <autret_m@epita.fr>
2338
2339 * tests/output.at: Add tests for --defines and --graph.
2340
2341 2001-09-18 Marc Autret <autret_m@epita.fr>
2342
2343 * tests/output.at: Removes tests of %{header,src}_extension features.
2344
2345 2001-09-18 Akim Demaille <akim@epita.fr>
2346
2347 * tests/Makefile.am (package.m4): New.
2348 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
2349 (_AT_CHECK_CALC_ERROR): Likewise.
2350 Factor the `, ' part of verbose error messages.
2351
2352 2001-09-18 Marc Autret <autret_m@epita.fr>
2353
2354 * src/getargs.c (longopts): Declare --defines and --graph as options
2355 with optional arguments.
2356 * src/files.h: Add extern declarations.
2357 * src/files.c (spec_graph_file, spec_defines_file): New.
2358 (output_files): Update.
2359 Remove CPP-outed code.
2360
2361 2001-09-18 Marc Autret <autret_m@epita.fr>
2362
2363 Turn off %{source,header}_extension feature.
2364
2365 * src/files.c (compute_exts_from_gf): Update.
2366 (compute_exts_from_src): Update.
2367 (output_files): CPP-out useless code.
2368 * src/files.h: Remove {header,source}_extension extern declarations.
2369 * src/reader.c (parse_dquoted_param): CPP-out.
2370 (parse_header_extension_decl): Remove.
2371 (parse_source_extension_decl): Remove.
2372 (read_declarations): Remove cases tok_{hdrext,srcext}.
2373 * src/lex.c (percent_table): Remove {header,source}_extension entries.
2374 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
2375
2376 2001-09-10 Akim Demaille <akim@epita.fr>
2377
2378 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
2379 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
2380 (AT_CHECK_OUTPUT): this.
2381 Merely check ls' exit status, its output is useless.
2382
2383 2001-09-10 Akim Demaille <akim@epita.fr>
2384
2385 * tests/calc.at: Use m4_match.
2386 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
2387
2388 2001-09-10 Marc Autret <autret_m@epita.fr>,
2389 Akim Demaille <akim@epita.fr>
2390
2391 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
2392 enum color_e.
2393 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
2394 to `normal'.
2395 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
2396 * src/lex.h: Adjust prototype.
2397 (token_t): Add `tok_undef'.
2398 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
2399 (parse_percent_token): Now returns token_t.
2400 Add default statement in switch.
2401 (lex): Separate `c' as an input variable, from the token_t result
2402 part.
2403 (unlexed): Is a token_t.
2404
2405 2001-09-10 Akim Demaille <akim@epita.fr>
2406
2407 * configure.in: Bump to 1.29a.
2408
2409 2001-09-07 Akim Demaille <akim@epita.fr>
2410
2411 Version 1.29.
2412
2413 2001-08-30 Akim Demaille <akim@epita.fr>
2414
2415 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
2416 * m4/atconfig.m4: Remove.
2417 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
2418 * tests/bison: New.
2419 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
2420 m4_if, m4_patsubst, and m4_regexp.
2421 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
2422 `input' file instead of echo.
2423
2424 2001-08-29 Akim Demaille <akim@epita.fr>
2425
2426 Bump to 1.28e.
2427
2428 2001-08-29 Akim Demaille <akim@epita.fr>
2429
2430 Version 1.28d.
2431
2432 2001-08-29 Paul Eggert <eggert@twinsun.com>
2433
2434 * src/bison.simple (yyparse): Don't take the address of an
2435 item before the start of an array, as that doesn't conform to
2436 the C Standard.
2437
2438 2001-08-29 Robert Anisko <anisko_r@epita.fr>
2439
2440 * doc/bison.texinfo (Location Tracking Calc): New node.
2441
2442 2001-08-29 Paul Eggert <eggert@twinsun.com>
2443
2444 * src/output.c (output): Do not define const, as this now
2445 causes more problems than it cures.
2446
2447 2001-08-29 Akim Demaille <akim@epita.fr>
2448
2449 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
2450 the nodes.
2451 Be sure to tag the `detailmenu'.
2452
2453 2001-08-29 Akim Demaille <akim@epita.fr>
2454
2455 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
2456 download in a tmp dir.
2457
2458 2001-08-28 Marc Autret <autret_m@epita.fr>
2459
2460 * config/depcomp: New file.
2461
2462 2001-08-28 Marc Autret <autret_m@epita.fr>
2463
2464 * doc/bison.1 (mandoc): Adjust.
2465 From Juan Manuel Guerrero.
2466
2467 2001-08-28 Marc Autret <autret_m@epita.fr>
2468
2469 * src/print_graph.c (print_state): Fix.
2470
2471 2001-08-27 Marc Autret <autret_m@epita.fr>
2472
2473 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
2474 char * members.
2475 Echo modifications to the functions prototypes.
2476 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
2477
2478 2001-08-27 Marc Autret <autret_m@epita.fr>
2479
2480 * src/vcg.c: Include `xalloc.h'.
2481 (add_colorentry): New.
2482 (add_classname): New.
2483 (add_infoname): New.
2484 * src/vcg.h: Add new prototypes.
2485
2486 2001-08-27 Akim Demaille <akim@epita.fr>
2487
2488 * Makefile.maint: Sync. again with CVS Autoconf.
2489
2490 2001-08-27 Akim Demaille <akim@epita.fr>
2491
2492 * Makefile.maint: Formatting changes.
2493 (po-update, cvs-update, update): New targets.
2494 (AMTAR): Remove.
2495
2496 2001-08-27 Akim Demaille <akim@epita.fr>
2497
2498 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
2499 * Makefile.maint: Sync. with CVS Autoconf.
2500
2501 2001-08-27 Marc Autret <autret_m@epita.fr>
2502
2503 * src/vcg.h (struct infoname_s): New.
2504 (struct colorentry_s): New.
2505 (graph_s): New fields {vertical,horizontal}_order in structure.
2506 Add `infoname' field.
2507 Add `colorentry' field;
2508 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
2509 (G_HORIZONTAL_ORDER): New.
2510 (G_INFONAME): New.
2511 (G_COLORENTRY): New.
2512 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
2513 Add output of `infoname'.
2514 Add output of `colorentry'.
2515
2516 2001-08-27 Marc Autret <autret_m@epita.fr>
2517
2518 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
2519 This one shadowed a global parameter.
2520
2521 2001-08-24 Marc Autret <autret_m@epita.fr>
2522
2523 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
2524 instead of `unsigned'.
2525 (print_state): Do not call obstack_object_size () in obstack_grow ()
2526 to avoid macro variables shadowing.
2527
2528 2001-08-23 Marc Autret <autret_m@epita.fr>
2529
2530 * src/lex.c (percent_table): Typo: s/naem/name/.
2531 Add graph option.
2532 Normalize new options declarations.
2533
2534 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
2535
2536 * tests/suite.at: Exercise %header_extension and %source_extension.
2537
2538 2001-08-16 Marc Autret <autret_m@epita.fr>
2539
2540 * src/reader.c (parse_dquoted_param): New.
2541 (parse_header_extension_decl): Use it.
2542 (parse_source_extension_decl): Likewise.
2543
2544 2001-08-16 Marc Autret <autret_m@epita.fr>
2545
2546 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
2547 (get_xxxx_str): Use assert () instead of complain ().
2548 Remove return invokations in default cases.
2549 (get_decision_str): Modify default behaviour. Remove second argument.
2550 Echo modifications on calls.
2551 (output_graph): Fix.
2552
2553 2001-08-16 Marc Autret <autret_m@epita.fr>
2554
2555 * src/getargs.c (usage): Update with ``-g, --graph''.
2556
2557 2001-08-16 Marc Autret <autret_m@epita.fr>
2558
2559 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
2560 (Option Cross Key): Likewise.
2561 * doc/bison.1: Update.
2562
2563 2001-09-25 Pascal Bart <pascal.bart@epita.fr>
2564
2565 * src/output.c (output_master_parser): Don't finish action_obstack.
2566 (output_parser): Don't care about the muscle action, here.
2567 (prepare): Copy the action_obstack in the action muscle.
2568 (output): Free action_obstack.
2569
2570 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
2571
2572 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
2573 will contain `%union' declaration.
2574 (parse_union_decl): Delete #line directive output.
2575 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
2576 informations about %union.
2577 (parse_union_decl): Copy the union_obstack in the muscle stype.
2578 * src/bison.simple: Add new #line directive.
2579 Add typdef %%stype YYSTYPE.
2580
2581 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
2582
2583 * src/bison.simple: Add new `#line' directive.
2584
2585 2001-09-22 Pascal Bart <pascal.bart@epita.fr>
2586
2587 * src/bison.simple: New `#line' directive.
2588 * src/output.c (output_parser): Support new dynamic muscle input_line.
2589
2590 2001-09-22 Marc Autret <autret_m@epita.fr>
2591
2592 * src/output.c (output_master_parser): New.
2593 (output_parser): Be more re-entrant.
2594
2595 2001-09-21 Marc Autret <autret_m@epita.fr>
2596
2597 * src/reader.c (copy_definition, parse_union_decl): Update and use
2598 `linef' muscle.
2599 (copy_action): Likewise.
2600 Use obstack_1grow ().
2601 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
2602
2603 2001-09-21 Marc Autret <autret_m@epita.fr>
2604
2605 * src/options.c (option_table): Adjust.
2606 * src/lex.c (parse_percent_token): Fix.
2607
2608 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
2609
2610 * src/options.c (symtab.h): Include it, need by lex.h.
2611
2612 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
2613
2614 * src/lex.c (parse_percent_token): Change type of variable `tx', which
2615 is now an option_table_struct*.
2616 (option_strcmp): New function option_strcmp.
2617 (parse_percent_token): Call option_strcmp.
2618 * src/getargs.c (xalloc.h, options.h): Include it.
2619 (getargs): Call create_long_option_table.
2620 (getargs): Free longopts at the end of the function.
2621 (shortopts): Move in options.c.
2622 * src/options.c (create_long_option_table): New function. Convert
2623 information from option_table to option structure.
2624 * src/reader.c (options.h): Include it.
2625
2626 * src/Makefile.am: Adjust.
2627 * src/options.c (option_table): Create from longopts and percent_table.
2628 * src/getargs.c (longopts): Delete.
2629 * src/lex.c (struct percent_table_struct): Delete.
2630 (percent_table): Delete.
2631 (options.h): Include it.
2632 * src/options.c: Create.
2633 * src/options.h: Create.
2634 Declare enum opt_access_e.
2635 Define struct option_table_struct.
2636
2637 2001-09-20 Marc Autret <autret_m@epita.fr>
2638
2639 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
2640 sections of Bison.
2641
2642 2001-09-19 Pascal Bart <pascal.bart@epita.fr>
2643
2644 * src/bison.simple: s/%%filename/%%skeleton.
2645 * src/muscle_tab.c (getargs.h): Include it.
2646 (muscle_init): Insert new muscle skeleton.
2647
2648 2001-09-18 Pascal Bart <pascal.bart@epita.fr>
2649
2650 * src/output.c (output_parser): Delete unused variable actions_dumped.
2651
2652 2001-09-07 Pascal Bart <pascal.bart@epita.fr>
2653
2654 * src/output.c (output): Delete call to reader_output_yylsp.
2655 * src/reader.c (reader): Likewise.
2656 * src/reader.h: Delete declaration of reader_output_yylsp.
2657
2658 2001-09-02 Marc Autret <autret_m@epita.fr>
2659
2660 * src/reader.c: Include muscle_tab.h.
2661 (parse_union_decl): Update.
2662 (parse_macro_decl): Rename parse_muscle_decl.
2663 Update to use renamed functions and variable.
2664 (read_declarations, copy_action, read_additionnal_code, : Updated
2665 with correct variables and functions names.
2666 (packsymbols, reader): Likewise.
2667
2668 * src/reader.h (muscle_obstack): Extern declaration update.
2669
2670 * src/output.c: Include muscle_tab.h
2671 In all functions using macro_insert, change by using muscle_insert ().
2672 (macro_obstack): Rename muscle_obstack.
2673 Echo modifications in the whole file.
2674 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
2675 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
2676 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
2677
2678 * src/muscle_tab.h: Update double inclusion macros.
2679 (macro_entry_s): Rename muscle_entry_s.
2680 Update prototypes.
2681
2682 * src/muscle_tab.c: Include muscle_tab.h.
2683 Rename macro_tabble to muscle_table.
2684 (mhash1, mhash2, mcmp): Use muscle_entry.
2685 (macro_init): Rename muscle_init. Update.
2686 (macro_insert): Rename muscle_insert. Update.
2687 (macro_find): Rename muscle_find. Update.
2688
2689 * src/main.c: Include muscle_tab.h.
2690 (main): Call muscle_init ().
2691 * src/Makefile.am (bison_SOURCES): Echo modifications.
2692
2693 2001-09-02 Marc Autret <autret_m@epita.fr>
2694
2695 Now the files macro_tab.[ch] are named muscle_tab.[ch].
2696
2697 * src/muscle_tab.c, src/muscle_tab.h: Add files.
2698
2699 2001-09-02 Marc Autret <autret_m@epita.fr>
2700
2701 * src/macrotab.c, src/macrotab.h: Remove.
2702
2703 2001-09-01 Pascal Bart <pascal.bart@epita.fr>
2704
2705 * src/reader.c (copy_guard): Use muscle to specify the `#line'
2706 filename.
2707
2708 2001-09-01 Marc Autret <autret_m@epita.fr>
2709
2710 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
2711 to an explicit value to activate the feature. We do it here.
2712
2713 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
2714
2715 * src/output.c (prepare): Delete the `filename' muscule insertion.
2716 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
2717 (parse_union_decl): Likewise.
2718 * src/macrotab.c (macro_init): Initialize filename by infile.
2719
2720 2001-08-31 Marc Autret <autret_m@epita.fr>
2721
2722 * src/bison.simple (YYLSP_NEEDED): New definition.
2723 * src/output.c (prepare): Add macro insertion of `locations_flag'
2724
2725 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
2726
2727 * src/output.c (prepare): Delete insertion of previous muscles,
2728 and insert the `prefix' muscles.
2729 * src/macrotab.c (macro_init): Likewise.
2730 (macro_init): Initialization prefix directive by `yy'.
2731 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
2732 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
2733 yylval, yydebug, yyerror, yynerrs and yyparse.
2734 New directive `#define' to substitute yydebug, ... with option
2735 name_prefix.
2736
2737 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
2738
2739 * src/main.c (main): Standardize.
2740 * src/output.c (output_table_data, output_parser): Likewise.
2741 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
2742
2743 2001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
2744
2745 * src/reader.c (read_additionnal_code): Rename %%user_code to
2746 %%epilogue.
2747 * src/output.c (output): Rename %%declarations to %%prologue.
2748 * src/bison.simple: Echo modifications.
2749
2750 2001-08-31 Marc Autret <autret_m@epita.fr>
2751
2752 * src/reader.c (readgram): CleanUp.
2753 (output_token_defines): Likewise.
2754 (packsymbols): Likewise.
2755 (reader): Likewise.
2756 * src/output.c (output): CPP-out useless code.
2757
2758 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
2759
2760 * src/reader.c (reader): Delete obsolete call to function
2761 output_trailers and output_headers.
2762 * src/output.h: Remove obsolete functions prototypes of output_headers
2763 and output_trailers.
2764
2765 2001-08-30 Pascal Bart <pascal.bart@epita.fr>
2766
2767 * src/main.c: Include macrotab.h.
2768 * src/macrotab.h (macro_entry_s): Constify fields.
2769 Adjust functions prototypes.
2770 * src/macrotab.c (macro_insert): Constify key and value.
2771 (macro_find): Constify key.
2772 (macro_insert): Include 'xalloc.h'
2773 (macro_insert): Use XMALLOC.
2774 (macro_find): Constify return value.
2775 * src/output.c (output_table_data): Rename table to table_data.
2776 (output_parser): Constify macro_key, macro_value.
2777
2778 2001-08-30 Marc Autret <autret_m@epita.fr>
2779
2780 * src/reader.c (parse_skel_decl): New.
2781 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
2782 * src/lex.h (token_t): New token `tok_skel'.
2783 * src/lex.c (percent_table): Add skeleton option entry.
2784 Standardize.
2785
2786 2001-08-29 Marc Autret <autret_m@epita.fr>
2787
2788 * src/bison.simple: Add %%user_code directive at the end.
2789 * src/reader.c (read_additionnal_code): New.
2790 (reader): Use it.
2791 * src/output.c (output_program): Remove.
2792 (output): Update.
2793
2794 2001-08-28 Marc Autret <autret_m@epita.fr>
2795
2796 * src/output.c (output_actions): Clean up.
2797 (output_gram): CPP-out useless code.
2798 * src/reader.c (reader): Clean up, CPP-out useless code.
2799
2800 2001-08-28 Pascal Bart <pascal.bart@epita.fr>
2801
2802 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
2803 directive.
2804 * src/bison.simple: Add `%%definitions'.
2805
2806 2001-08-28 Marc Autret <autret_m@epita.fr>
2807
2808 * config/depcomp: New file.
2809
2810 2001-08-27 Paul Eggert <eggert@twinsun.com>
2811
2812 * src/bison.simple (yyparse): Don't take the address of an
2813 item before the start of an array, as that doesn't conform to
2814 the C Standard.
2815
2816 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
2817
2818 * src/output.c (output): Remove the initialization of the macro
2819 obstack. It was done too late here.
2820
2821 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
2822 completely wrong.
2823 (reader): Initialize the macro obstack here, since we need it to grow
2824 '%define' directives.
2825
2826 * src/reader.h: Declare the macro obstack as extern.
2827
2828 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
2829
2830 * src/output.c (output_parser): Fix. Store single '%' characters in
2831 the output obstack instead of throwing them away.
2832
2833 2001-08-27 Akim Demaille <akim@epita.fr>
2834
2835 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
2836
2837 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
2838
2839 * lib/Makefile.am: Adjust.
2840
2841 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
2842
2843 * src/bison.simple: Update and add '%%' directives.
2844
2845 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
2846
2847 * src/reader.c (reader): Remove calls to 'output_headers' and
2848 'output_trailers'. Remove some C output.
2849 (readgram): Disable a piece of code that was writing a default
2850 definition for 'YYSTYPE'.
2851 (reader_output_yylsp): Remove.
2852 (packsymbols): Output token defintions to a macro.
2853 (copy_definition): Disable C output.
2854
2855 * src/reader.c (parse_macro_decl): New function used to parse macro
2856 declarations.
2857 (copy_string2): Put the body of copy_string into this new function.
2858 Add a parameter to let the caller choose whether he wants to copy the
2859 string delimiters or not.
2860 (copy_string): Be a simple call to copy_string2 with the last argument
2861 bound to true.
2862 (read_declarations): Add case for macro definition.
2863 (copy_identifier): New.
2864 (parse_macro_decl): Read macro identifiers using copy_identifier
2865 rather than lex.
2866
2867 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
2868
2869 * src/output.c (prepare): Add prefixed names.
2870 (output_parser): Output semantic actions.
2871 (output_parser): Fix bug on '%%line' directives.
2872
2873 * src/output.c (output_headers): Remove. The C code printed by this
2874 function should now be in the skeletons.
2875 (output_trailers): Remove.
2876 (output): Disable call to 'reader_output_yylsp'.
2877 (output_rule_data): Do not output tables to the table obstack.
2878
2879 * src/output.c: Remove some C dedicated output.
2880 Improve the use of macro and output obstacks.
2881 (output_defines): Remove.
2882
2883 * src/output.c (output_token_translations): Associate 'translate'
2884 table with a macro. No output to the table obstack.
2885 (output_gram): Same for 'rhs' and 'prhs'.
2886 (output_stos): Same for 'stos'.
2887 (output_rule_data): Same for 'r1' and 'r2'.
2888 (token_actions): Same for 'defact'.
2889 (goto_actions): Same for 'defgoto'.
2890 (output_base): Same for 'pact' and 'pgoto'.
2891 (output_table): Same for 'table'.
2892 (output_check): Same for 'check'.
2893
2894 * src/output.c (output_table_data): New function.
2895 (output_short_table): Remove.
2896 (output_short_or_char_table): Remove.
2897
2898 * src/output.c (output_parser): Replace most of the skeleton copy code
2899 with something new. Skeletons are now processed character by character
2900 rather than line by line, and Bison looks for '%%' macros. This is the
2901 first step in making Bison's output process (a lot) more flexible.
2902 (output_parser): Use the macro table.
2903
2904 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
2905
2906 * src/main.c (main): Initialize the macro table.
2907
2908 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
2909
2910 * src/lex.c (percent_table): Add tok_define.
2911 * src/lex.h: Add tok_define.
2912
2913 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
2914
2915 * src/macrotab.c: New file.
2916 * src/macrotab.h: New file.
2917 * src/Makefile.am: Update.
2918
2919 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
2920
2921 * lib/hash.c: New file.
2922 * lib/hash.h: New file.
2923 * lib/Makefile.am: Update.
2924
2925 2001-08-15 Akim Demaille <akim@epita.fr>
2926
2927 Version 1.28c.
2928
2929 2001-08-15 Marc Autret <autret_m@epita.fr>
2930
2931 * src/reader.c (readgram): Indent output macro YYSTYPE.
2932 (packsymbols): Likewise.
2933 (output_token_defines): Likewise.
2934 * src/files.c: Standardize.
2935 (compute_header_macro): New.
2936 (defines_obstack_save): New. Use compute_header_macro.
2937 (output_files): Update. Use defines_obstack_save.
2938
2939 2001-08-15 Akim Demaille <akim@epita.fr>
2940
2941 * doc/bison.texinfo (Table of Symbols): Document
2942 YYSTACK_USE_ALLOCA.
2943
2944 2001-08-15 Akim Demaille <akim@epita.fr>
2945
2946 * missing: Update from CVS Automake.
2947 * config/config.guess, config/config.sub, config/texinfo.tex:
2948 Update from gnu.org.
2949
2950 2001-08-15 Akim Demaille <akim@epita.fr>
2951
2952 * Makefile.maint: Sync with CVS Autoconf.
2953
2954 2001-08-14 Pascal Bart <pascal.bart@epita.fr>
2955
2956 * doc/bison.texinfo: Include GNU Free Documentation License from
2957 `fdl.texi'.
2958 * doc/fdl.texi: Add to package.
2959
2960 2001-08-14 Marc Autret <autret_m@epita.fr>
2961
2962 Turn on %{source,header}_extension features.
2963
2964 * src/lex.c (percent_table): Un-CPP out header_extension and
2965 source_extension.
2966 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
2967 (compute_exts_from_src): Remove conditions. It restores priorities
2968 between options.
2969
2970 2001-08-14 Marc Autret <autret_m@epita.fr>
2971
2972 * src/files.c (compute_base_names): Add extensions computing when
2973 `--file-prefix' used.
2974 Standardize function calls.
2975
2976 2001-08-13 Marc Autret <autret_m@epita.fr>
2977
2978 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
2979 defining it (defined but null disables alloca).
2980
2981 2001-08-13 Marc Autret <autret_m@epita.fr>
2982
2983 * src/bison.simple (_yy_memcpy): CPP reformat.
2984
2985 2001-08-13 Pascal Bart <pascal.bart@epita.fr>
2986
2987 * tests/atconfig.in (CPPFLAGS): Fix.
2988
2989 2001-08-10 Pascal Bart <pascal.bart@epita.fr>
2990
2991 * doc/bison.texinfo: Include GNU General Public License from
2992 `gpl.texi'.
2993 * doc/gpl.texi: Add to package.
2994
2995 2001-08-10 Marc Autret <autret_m@epita.fr>
2996
2997 * src/print_graph.h: Fix.
2998 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
2999
3000 2001-08-10 Akim Demaille <akim@epita.fr>
3001
3002 * src/system.h: Provide default declarations for stpcpy, strndup,
3003 and strnlen.
3004
3005 2001-08-10 Robert Anisko <anisko_r@epita.fr>
3006
3007 * doc/bison.texinfo (Locations): Update @$ stuff.
3008
3009 2001-08-09 Robert Anisko <anisko_r@epita.fr>
3010
3011 * src/bison.simple (YYLLOC_DEFAULT): Update.
3012 (yyparse): Adjust.
3013
3014 2001-08-08 Marc Autret <autret_m@epita.fr>
3015
3016 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
3017 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
3018 Reported by Fabrice Bauzac.
3019
3020 2001-08-08 Marc Autret <autret_m@epita.fr>
3021
3022 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
3023 * src/vcg.c (output_node): Fix.
3024 * src/vcg.h: Cleanup.
3025 * src/print_graph.c: Add comments.
3026 (node_output_size): New global variable. Simplify the formatting of
3027 the VCG graph output.
3028 (print_actions): Unused code is now used. It notifies the final state
3029 and no action states in the VCG graph. It also give the reduce actions.
3030 The `shift and goto' edges are red and the `go to state' edges are
3031 blue.
3032 Get the current node name and node_obstack by argument.
3033 (node_obstack): New variable.
3034 (print_state): Manage node_obstack.
3035 (print_core): Use node_obstack given by argument.
3036 A node is not only computed here but in print_actions also.
3037 (print_graph): CPP out useless code instead of commenting it.
3038
3039 2001-08-07 Pascal Bart <pascal.bart@epita.fr>
3040
3041 * tests/atconfig.in (CPPFLAGS): Fix.
3042
3043 2001-08-07 Akim Demaille <akim@epita.fr>
3044
3045 * src/print_graph.c (quote): New.
3046 (print_core): Use it.
3047
3048 2001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
3049
3050 * src/vcg.c (complain.h): Include it.
3051 Unepitaize `return' invocations.
3052 [NDEBUG] (main): Remove.
3053 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
3054 * src/files.c (open_files): Initialize graph_obstack.
3055 * src/print_graph.c (print_actions): CPP out useless code.
3056 (print_core): Don't output the last `\n' in labels.
3057 Use `quote'.
3058 * src/files.c (output_files): Output the VCG file.
3059 * src/main.c (main): Invoke print_graph ();
3060
3061 2001-08-06 Marc Autret <autret_m@epita.fr>
3062
3063 Automaton VCG graph output.
3064 Using option ``-g'' or long option ``--graph'', you can generate
3065 a gram_filename.vcg file containing a VCG description of the LALR (1)
3066 automaton of your grammar.
3067
3068 * src/main.c: Call to print_graph() function.
3069 * src/getargs.h: Update.
3070 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
3071 (graph_flag): New flag.
3072 (longopts): Update.
3073 (getargs): Add case `g'.
3074 * src/files.c (graph_obstack): New obstack struct.
3075 (open_files): Initialize new obstack.
3076 (output_files): Saves graph_obstack if required.
3077 * src/files.h (graph_obstack): New extern declaration.
3078 * src/Makefile.am: Add new source files.
3079
3080 2001-08-06 Marc Autret <autret_m@epita.fr>
3081
3082 * src/print_graph.c, src/print_graph.h (graph): New.
3083 * src/vcg.h: New file.
3084 * src/vcg.c: New file, VCG graph handling.
3085
3086 2001-08-06 Marc Autret <autret_m@epita.fr>
3087
3088 Add of %source_extension and %header_extension which specify
3089 the source or/and the header output file extension.
3090
3091 * src/files.c (compute_base_names): Remove initialisation of
3092 src_extension and header_extension.
3093 (compute_exts_from_gf): Update.
3094 (compute_exts_from_src): Update.
3095 (output_files): Update.
3096 * src/reader.c (parse_header_extension_decl): New.
3097 (parse_source_extension_decl): New.
3098 (read_declarations): New case statements for the new tokens.
3099 * src/lex.c (percent_table): Add entries for %source_extension
3100 and %header_extension.
3101 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
3102
3103 2001-08-06 Marc Autret <autret_m@epita.fr>
3104
3105 * configure.in: Bump to 1.28c.
3106 * doc/bison.texinfo: Texinfo thingies.
3107
3108 2001-08-04 Pascal Bart <pascal.bart@epita.fr>
3109
3110 * tests/atconfig.in (CPPFLAGS): Add.
3111 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
3112
3113 2001-08-03 Akim Demaille <akim@epita.fr>
3114
3115 Version 1.28b.
3116
3117 2001-08-03 Akim Demaille <akim@epita.fr>
3118
3119 * tests/Makefile.am (check-local): Ship testsuite.
3120 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
3121 Include `string.h'.
3122
3123 2001-08-03 Akim Demaille <akim@epita.fr>
3124
3125 * configure.in: Try using -Wformat when compiling.
3126
3127 2001-08-03 Akim Demaille <akim@epita.fr>
3128
3129 * configure.in: Bump to 1.28b.
3130
3131 2001-08-03 Akim Demaille <akim@epita.fr>
3132
3133 * src/complain.c: Adjust strerror_r portability issues.
3134
3135 2001-08-03 Akim Demaille <akim@epita.fr>
3136
3137 Version 1.28a.
3138
3139 2001-08-03 Akim Demaille <akim@epita.fr>
3140
3141 * src/getargs.c, src/getarg.h (skeleton)): Constify.
3142 * src/lex.c (literalchar): Avoid name clashes on `buf'.
3143 * src/getargs.c: Include complain.h.
3144 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
3145 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
3146
3147 2001-08-03 Akim Demaille <akim@epita.fr>
3148
3149 * src/reader.c (readgram): Display hidden chars in error messages.
3150
3151 2001-08-03 Akim Demaille <akim@epita.fr>
3152
3153 Update to gettext 0.10.39.
3154
3155 2001-08-03 Akim Demaille <akim@epita.fr>
3156
3157 * lib/strspn.c: New.
3158
3159 2001-08-01 Marc Autret <autret_m@epita.fr>
3160
3161 * doc/bison.texinfo: Update.
3162 * doc/bison.1 (mandoc): Update.
3163 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
3164 * src/files.c: Support output files extensions computing.
3165 (src_extension): New static variable.
3166 (header_extension): New static variable.
3167 (tr): New function.
3168 (get_extension_index): New function, gets the index of an extension
3169 filename in a string.
3170 (compute_exts_from_gf): New function, computes extensions from the
3171 grammar file extension.
3172 (compute_exts_from_src): New functions, computes extensions from the
3173 C source file extension, file given by ``-o'' option.
3174 (compute_base_names): Update.
3175 (output_files): Update.
3176
3177 2001-08-01 Robert Anisko <anisko_r@epita.fr>
3178
3179 * doc/bison.texi: Document @$.
3180 (Locations): New section.
3181
3182 2001-07-18 Akim Demaille <akim@epita.fr>
3183
3184 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
3185 * config/prev-version.txt, config/move-if-change: New.
3186 * Makefile.am: Adjust.
3187
3188 2001-07-08 Pascal Bart <pascal.bart@epita.fr>
3189
3190 * src/bison.simple (yyparse): Suppress warning `comparaison
3191 between signed and unsigned'.
3192
3193 2001-07-05 Pascal Bart <pascal.bart@epita.fr>
3194
3195 * src/getargs.h (raw_flag): Remove.
3196 * src/getargs.c: Die on `-r'/`--raw'.
3197 * src/lex.c (parse_percent_token): Die on `%raw'.
3198 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
3199 * tests/calc.at: Suppress test with option `--raw'.
3200
3201 2001-07-14 Akim Demaille <akim@epita.fr>
3202
3203 * config/: New.
3204 * configure.in: Require Autoconf 2.50.
3205 Update to gettext 0.10.38.
3206
3207 2001-03-16 Akim Demaille <akim@epita.fr>
3208
3209 * doc/bison.texinfo: ANSIfy the examples.
3210
3211 2001-03-16 Akim Demaille <akim@epita.fr>
3212
3213 * getargs.c (skeleton): New variable.
3214 (longopts): --skeleton is a new option.
3215 (shortopts, getargs): -S is a new option.
3216 * getargs.h: Declare skeleton.
3217 * output.c (output_parser): Use it.
3218
3219 2001-03-16 Akim Demaille <akim@epita.fr>
3220
3221 * m4/strerror_r.m4: New.
3222 * m4/error.m4: Run AC_FUNC_STRERROR_R.
3223 * lib/error.h, lib/error.c: Update.
3224
3225 2001-03-16 Akim Demaille <akim@epita.fr>
3226
3227 * src/getargs.c (longopts): Clean up.
3228
3229 2001-02-21 Akim Demaille <akim@epita.fr>
3230
3231 * src/reader.c (gensym): `gensym_count' is your own.
3232 Use a static buf to create the symbol name, as token_buffer is no
3233 longer a buffer.
3234
3235 2001-02-08 Akim Demaille <akim@epita.fr>
3236
3237 * src/conflicts.c (conflict_report): Be sure not to append to res
3238 between two calls, which could happen if both first sprintf were
3239 skipped, but not the first cp += strlen.
3240
3241 2001-02-08 Akim Demaille <akim@epita.fr>
3242
3243 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
3244 New, from fileutils 4.0.37.
3245 * configure.in: Require Autoconf 2.49c. I took some time before
3246 making this decision. This is the only way out for portability
3247 issues in Bison, it would mean way too much duplicate effort to
3248 import in Bison features implemented in 2.49c since 2.13.
3249 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
3250
3251 2001-02-02 Akim Demaille <akim@epita.fr>
3252
3253 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
3254 * lib/xalloc.h, lib/xmalloc.c: Update.
3255
3256 2001-01-19 Akim Demaille <akim@epita.fr>
3257
3258 Get rid of the ad hoc handling of token_buffer in the scanner: use
3259 the obstacks.
3260
3261 * src/lex.c (token_obstack): New.
3262 (init_lex): Initialize it. No longer call...
3263 (grow_token_buffer): this. Remove it.
3264 Adjust all the places which used it to use the obstack.
3265
3266 2001-01-19 Akim Demaille <akim@epita.fr>
3267
3268 * src/lex.h: Rename all the tokens:
3269 s/\bENDFILE\b/tok_eof/g;
3270 s/\bIDENTIFIER\b/tok_identifier/g;
3271 etc.
3272 Let them be enums, not #define, to ease debugging.
3273 Adjust all the code.
3274
3275 2001-01-18 Akim Demaille <akim@epita.fr>
3276
3277 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
3278 * src/lex.c (maxtoken, grow_token_buffer): Static.
3279
3280 2001-01-18 Akim Demaille <akim@epita.fr>
3281
3282 Since we now use obstacks, more % directives can be enabled.
3283
3284 * src/lex.c (percent_table): Also accept `%yacc',
3285 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
3286 `%debug'.
3287 Handle the actions for `%semantic_parser' and `%pure_parser' here,
3288 instead of returning a token.
3289 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
3290 * src/reader.c (read_declarations): Adjust.
3291 * src/files.c (open_files): Don't call `compute_base_names', don't
3292 compute `attrsfile' since they depend upon data which might be
3293 *in* the input file now.
3294 (output_files): Do it here.
3295 * src/output.c (output_headers): Document the fact that this patch
3296 introduces a guaranteed SEGV for semantic parsers.
3297 * doc/bison.texinfo: Document them.
3298 * tests/suite.at: Exercise these %options.
3299
3300 2000-12-20 Akim Demaille <akim@epita.fr>
3301
3302 Also handle the output file (--verbose) with obstacks.
3303
3304 * files.c (foutput): Remove.
3305 (output_obstack): New.
3306 Adjust all dependencies.
3307 * src/conflicts.c: Return a string.
3308 * src/system.h (obstack_grow_string): Rename as...
3309 (obstack_sgrow): this. Be ready to work with non literals.
3310 (obstack_fgrow4): New.
3311
3312 2000-12-20 Akim Demaille <akim@epita.fr>
3313
3314 * src/files.c (open_files): Fix the computation of short_base_name
3315 in the case of `-o foo.tab.c'.
3316
3317 2000-12-20 Akim Demaille <akim@epita.fr>
3318
3319 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
3320 (copy_dollar): Now that everything uses obstacks, get rid of the
3321 FILE * parameters.
3322
3323 2000-12-20 Akim Demaille <akim@epita.fr>
3324
3325 * src/files.c (open_files): Actually the `.output' file is based
3326 on the short_base_name, not base_name.
3327 * tests/suite.at (Checking output file names): Adjust.
3328
3329 2000-12-20 Akim Demaille <akim@epita.fr>
3330
3331 * src/bison.s1: Remove, we now use directly...
3332 * src/bison.simple: this.
3333 * src/Makefile.am: Use pkgdata instead of data.
3334
3335 2000-12-20 Akim Demaille <akim@epita.fr>
3336
3337 * src/files.c (guard_obstack): New.
3338 (open_files): Initialize it.
3339 (output_files): Dump it...
3340 * src/files.h: Export it.
3341 * src/reader.c (copy_guard): Use it.
3342
3343 2000-12-19 Akim Demaille <akim@epita.fr>
3344
3345 * src/files.c (outfile, defsfile, actfile): Removed as global
3346 vars.
3347 (open_files): Don't compute them.
3348 (output_files): Adjust.
3349 (base_name, short_base_name): Be global.
3350 Adjust dependencies.
3351
3352 2000-12-19 Akim Demaille <akim@epita.fr>
3353
3354 * src/files.c (strsuffix): New.
3355 (stringappend): Be just like strcat but allocate.
3356 (base_names): Eve out from open_files.
3357 Try to simplify the rather hairy computation of base_name and
3358 short_base_name.
3359 (open_files): Use it.
3360 * tests/suite.at (Checking output file names): New test.
3361
3362 2000-12-19 Akim Demaille <akim@epita.fr>
3363
3364 * src/system.h (obstack_grow_literal_string): Rename as...
3365 (obstack_grow_string): this.
3366 * src/output.c (output_parser): Recognize `%% actions' instead of
3367 `$'.
3368 * src/bison.s1: s/$/%% actions/.
3369 * src/bison.hairy: Likewise.
3370
3371 2000-12-19 Akim Demaille <akim@epita.fr>
3372
3373 * src/output.c (output_parser): Compute the `#line' lines when
3374 there are.
3375 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
3376 Suggested by Hans Aberg.
3377
3378 2000-12-19 Akim Demaille <akim@epita.fr>
3379
3380 Let the handling of the skeleton files be local to the procedures
3381 that use it.
3382
3383 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
3384 longer static.
3385 (fparser, open_extra_files): Remove.
3386 (open_files, output_files): Don't take care of fparser.
3387 * src/files.h: Adjust.
3388 * src/output.c (output_parser): Open and close the file to the
3389 skeleton.
3390 * src/reader.c (read_declarations): When %semantic_parser, open
3391 fguard.
3392
3393 2000-12-19 Akim Demaille <akim@epita.fr>
3394
3395 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
3396 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
3397
3398 2000-12-19 Akim Demaille <akim@epita.fr>
3399
3400 * src/files.c (open_files): Yipee! We no longer need all the code
3401 looking for `/tmp' since we have no tmp file.
3402
3403 2000-12-19 Akim Demaille <akim@epita.fr>
3404
3405 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
3406 New macros.
3407 * src/files.c (open_files): Less dependency on MSDOS etc.
3408
3409 2000-12-14 Akim Demaille <akim@epita.fr>
3410
3411 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
3412 Provide a default definition.
3413 Use it when executing the default @ action.
3414 * src/reader.c (reader_output_yylsp): No longer include
3415 `timestamp' and `text' in the default YYLTYPE.
3416
3417 2000-12-12 Akim Demaille <akim@epita.fr>
3418
3419 * src/reader.c (copy_definition, parse_union_decl, copy_action)
3420 (copy_guard): Quote the file names.
3421 Reported by Laurent Mascherpa.
3422
3423 2000-12-12 Akim Demaille <akim@epita.fr>
3424
3425 * src/output.c (output_headers, output_program, output): Be sure
3426 to escape special characters when outputting filenames.
3427 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
3428 (output_headers): Don't depend on them, Use ACTSTR.
3429
3430 2000-11-17 Akim Demaille <akim@epita.fr>
3431
3432 * lib/obstack.h: Formatting changes.
3433 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
3434 prevents type checking.
3435 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
3436 cast the value to (void *): assigning a `foo *' to a `void *'
3437 variable is valid.
3438 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
3439 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
3440 append characters.
3441
3442 2000-11-17 Akim Demaille <akim@epita.fr>
3443
3444 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
3445 as...
3446 (suite.m4, regression.m4, calc.m4): these.
3447 * tests/atgeneral.m4: Update from CVS Autoconf.
3448
3449 2000-11-17 Akim Demaille <akim@epita.fr>
3450
3451 * tests/regression.m4 (%union and --defines): New test,
3452 demonstrating a current bug in the obstack implementation.
3453
3454 2000-11-17 Akim Demaille <akim@epita.fr>
3455
3456 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
3457 macros.
3458 Use them to declare the variables which are global or local to
3459 `yyparse'.
3460
3461 2000-11-17 Akim Demaille <akim@epita.fr>
3462
3463 * acconfig.h: Remove, no longer used.
3464
3465 2000-11-07 Akim Demaille <akim@epita.fr>
3466
3467 * src: s/Copyright (C)/Copyright/g.
3468
3469 2000-11-07 Akim Demaille <akim@epita.fr>
3470
3471 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
3472 defining.
3473 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
3474
3475 2000-11-07 Akim Demaille <akim@epita.fr>
3476
3477 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
3478 Merge in a single CPP if/else.
3479
3480 2000-11-07 Akim Demaille <akim@epita.fr>
3481
3482 * src/output.c (output): Remove useless variables.
3483 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
3484 argument `data' for consistency with the prototypes.
3485 Qualify it `const'.
3486 (obstack_copy, obstack_copy0): Rename the second argument as
3487 `address' for consistency. Qualify it `const'.
3488 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
3489 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
3490 `const' their input argument (`data' or `address').
3491 Adjust the corresponding macros to include `const' in casts.
3492
3493 2000-11-03 Akim Demaille <akim@epita.fr>
3494
3495 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
3496 s/PFILE1/BISON_HAIRY/.
3497 Adjust dependencies.
3498
3499 2000-11-03 Akim Demaille <akim@epita.fr>
3500
3501 For some reason, this was not applied.
3502
3503 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
3504 `unlink': it's no longer used.
3505
3506 2000-11-03 Akim Demaille <akim@epita.fr>
3507
3508 * src/files.c (skeleton_find): New function, eved out of...
3509 (open_files, open_extra_files): here.
3510
3511 2000-11-03 Akim Demaille <akim@epita.fr>
3512
3513 Don't use `atexit'.
3514
3515 * src/files.c (obstack_save): New function.
3516 (done): Rename as...
3517 (output_files): this.
3518 Use `obstack_save'.
3519 * src/main.c (main): Don't use `atexit' to register `done', since
3520 it no longer has to remove tmp files, just call `output_files'
3521 when there are no errors.
3522
3523 2000-11-02 Akim Demaille <akim@epita.fr>
3524
3525 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
3526 `unlink': it's no longer used.
3527 * src/files.h: Formatting changes.
3528
3529 2000-11-02 Akim Demaille <akim@epita.fr>
3530
3531 Remove the last uses of mktemp and unlink/delete.
3532
3533 * src/files.c (fdefines, ftable): Removed.
3534 (defines_ostack, table_obstack): New.
3535 Adjust dependencies of the former into uses of the latter.
3536 * src/output.c (output_short_or_char_table, output_short_table):
3537 Convert to using obstacks.
3538 * src/reader.c (copy_comment2): Accept one FILE * and two
3539 obstacks.
3540 (output_token_defines, reader_output_yylsp): Use obstacks.
3541 * src/system.h (obstack_fgrow3): New.
3542
3543 2000-11-01 Akim Demaille <akim@epita.fr>
3544
3545 Change each use of `fattrs' into a use of `attrs_obstack'.
3546
3547 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
3548 * src/files.c (fattrs): Remove.
3549 (attrs_obstack): New.
3550 Adjust all dependencies.
3551 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
3552
3553 2000-11-01 Akim Demaille <akim@epita.fr>
3554
3555 Introduce obstacks.
3556 Change each use of `faction' into a use of `action_obstack'.
3557
3558 * lib/obstack.h, lib/obstack.c: New files.
3559 * src/files.c (faction): Remove.
3560 (action_obstack): New.
3561 Adjust all dependencies.
3562
3563 2000-10-20 Akim Demaille <akim@epita.fr>
3564
3565 * lib/quote.h (PARAMS): New macro. Use it.
3566
3567 2000-10-16 Akim Demaille <akim@epita.fr>
3568
3569 * src/output.c (output_short_or_char_table): New function.
3570 (output_short_table, output_token_translations): Use it.
3571 (goto_actions): Use output_short_table.
3572
3573 2000-10-16 Akim Demaille <akim@epita.fr>
3574
3575 * src/symtab.c (bucket_new): New function.
3576 (getsym): Use it.
3577
3578 * src/output.c (output_short_table): New argument to display the
3579 comment associated with the table.
3580 Adjust dependencies.
3581 (output_gram): Use it.
3582 (output_rule_data): Nicer output layout for YYTNAME.
3583
3584 2000-10-16 Akim Demaille <akim@epita.fr>
3585
3586 * src/lex.c (read_typename): New function.
3587 (lex): Use it.
3588 * src/reader.c (copy_dollar): Likewise.
3589
3590 2000-10-16 Akim Demaille <akim@epita.fr>
3591
3592 * src/reader.c (copy_comment2): Expect the input stream to be on
3593 the `/' which is suspected to open a comment, instead of being
3594 called after `//' or `/*' was read.
3595 (copy_comment, copy_definition, parse_union_decl, copy_action)
3596 (copy_guard): Adjust.
3597
3598 2000-10-16 Akim Demaille <akim@epita.fr>
3599
3600 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
3601 `read_signed_integer'.
3602
3603 2000-10-16 Akim Demaille <akim@epita.fr>
3604
3605 * src/reader.c (copy_dollar): New function.
3606 (copy_guard, copy_action): Use it.
3607
3608 2000-10-16 Akim Demaille <akim@epita.fr>
3609
3610 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
3611 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
3612 New files, from Fileutils 4.0.27.
3613 * src/main.c (printable_version): Remove.
3614 * src/lex.c, src/reader.c: Use `quote'.
3615
3616 2000-10-04 Akim Demaille <akim@epita.fr>
3617
3618 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
3619
3620 2000-10-04 Akim Demaille <akim@epita.fr>
3621
3622 * doc/bison.texinfo: Various typos spotted by Neil Booth.
3623
3624 2000-10-04 Akim Demaille <akim@epita.fr>
3625
3626 When a literal string is used to define two different tokens,
3627 `bison -v' segfaults.
3628 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
3629
3630 * tests/regression.m4: New file.
3631 Include the core of the sample provided by Piotr Gackiewicz.
3632 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
3633 properly.
3634
3635 2000-10-04 Akim Demaille <akim@epita.fr>
3636
3637 * src/reader.c (parse_expect_decl): Keep `count' within the size
3638 of `buffer'.
3639 From Neil Booth.
3640
3641 2000-10-02 Paul Eggert <eggert@twinsun.com>
3642
3643 * bison.s1 (yyparse): Assign the default value
3644 unconditionally, to avoid a GCC warning and make the parser a
3645 tad smaller.
3646
3647 2000-10-02 Akim Demaille <akim@epita.fr>
3648
3649 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
3650 options.
3651
3652 2000-10-02 Akim Demaille <akim@epita.fr>
3653
3654 * src/derives.c, src/print.c, src/reduce.c: To ease the
3655 translation, move some `\n' out of the translated strings.
3656
3657 2000-10-02 Akim Demaille <akim@epita.fr>
3658
3659 The location tracking mechanism is precious for parse error
3660 messages. Nevertheless, it is enabled only when `@n' is used in
3661 the grammar, which is a different issue (you can use it in error
3662 message, but not in the grammar per se). Therefore, there should
3663 be another means to enable it.
3664
3665 * src/getargs.c (getargs): Support `--locations'.
3666 (usage): Report it.
3667 * src/getargs.h (locationsflag): Export it.
3668 * src/lex.c (percent_table): Support `%locations'.
3669 * src/reader.c (yylsp_needed): Remove this variable, now replaced
3670 with `locationsflag'.
3671 * doc/bison.texinfo: Document `--locations' and `%locations'.
3672 Sort the options.
3673 * tests/calc.m4: Test it.
3674
3675 For regularity of the names, replace each
3676 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
3677 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
3678 In addition replace each `flag' with `_flag'.
3679
3680 2000-10-02 Akim Demaille <akim@epita.fr>
3681
3682 Also test parse error messages, including with YYERROR_VERBOSE.
3683
3684 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
3685 associative).
3686 Use it to check the computations.
3687 Use it to check `nonassoc' is honored.
3688 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
3689 `--yyerror-verbose'.
3690 (_AT_CHECK_CALC): Adjust to this option.
3691 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
3692
3693 2000-10-02 Akim Demaille <akim@epita.fr>
3694
3695 Test also `--verbose', `--defines' and `--name-prefix'. Testing
3696 the latter demonstrates a flaw in the handling of non debugging
3697 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
3698 was used in order to simplify:
3699
3700 #if YYDEBUG
3701 if (yydebug)
3702 {
3703 ...
3704 }
3705 #endif
3706
3707 into
3708
3709 if (yydebug)
3710 {
3711 ...
3712 }
3713
3714 unfortunately this leads to a CPP conflict when
3715 `--name-prefix=foo' is used since it produces `#define yydebug
3716 foodebug'.
3717
3718 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
3719 (YYDPRINTF): New macro.
3720 Spread its use.
3721 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
3722 the bison options.
3723 Also test `--verbose', `--defines' and `--name-prefix'.
3724
3725 2000-10-02 Akim Demaille <akim@epita.fr>
3726
3727 Improve the readability of the produced parsers.
3728
3729 * src/bison.s1: Formatting changes.
3730 Improve the comment related to the `$' mark.
3731 (yydefault): Don't fall through to `yyresume': `goto' there.
3732 * src/output.c (output_parser): When the `$' is met, skip the end
3733 of its line.
3734 New variable, `number_of_dollar_signs', to check there's exactly
3735 one `$' in the parser skeleton.
3736
3737 2000-10-02 Akim Demaille <akim@epita.fr>
3738
3739 * lib/xstrdup.c: New file, from the fileutils.
3740 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
3741 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
3742 instead of strlen + xmalloc + strcpy.
3743 * src/symtab.c (copys): Remove, use xstrdup instead.
3744
3745 2000-10-02 Akim Demaille <akim@epita.fr>
3746
3747 * src/gram.h (associativity): New enum type which replaces the
3748 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
3749 `right_assoc', `left_assoc' and `non_assoc'.
3750 Adjust all dependencies.
3751 * src/reader.c: Formatting changes.
3752 (LTYPESTR): Don't define it, use it as a literal in
3753 `reader_output_yylsp'.
3754 * src/symtab.h (symbol_class): New enum type which replaces the
3755 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
3756 `sunknown', `stoken and `snterm'.
3757
3758 2000-10-02 Akim Demaille <akim@epita.fr>
3759
3760 * src/getargs.c (fixed_outfiles): Rename as...
3761 (yaccflag): for consistency and accuracy.
3762 Adjust dependencies.
3763
3764 2000-10-02 Akim Demaille <akim@epita.fr>
3765
3766 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
3767 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
3768 difficult and introduced a lot of core dump. It turns out that
3769 Bison used an implementation of `xmalloc' based on `calloc', and
3770 at various places it does depend upon the initialization to 0. I
3771 have not tried to isolate the pertinent places, and all the former
3772 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
3773 someone should address this issue.
3774
3775 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
3776 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
3777 files.
3778 Adjust dependencies.
3779 * src/warshall.h: New file.
3780 Propagate.
3781
3782 2000-10-02 Akim Demaille <akim@epita.fr>
3783
3784 Various anti-`extern in *.c' changes.
3785
3786 * src/system.h: Include `assert.h'.
3787
3788 2000-10-02 Akim Demaille <akim@epita.fr>
3789
3790 * src/state.h (nstates, final_state, first_state, first_shift)
3791 (first_reduction): Move their exportation from here...
3792 * src/LR0.h: to here.
3793 Adjust dependencies.
3794 * src/getargs.c (statisticsflag): New variable.
3795 Add support for `--statistics'.
3796 Adjust dependencies.
3797
3798 Remove a lot of now useless `extern' statements in most files.
3799
3800 2000-10-02 Akim Demaille <akim@epita.fr>
3801
3802 * src/LR0.h: New file.
3803 Propagate its use.
3804
3805 2000-10-02 Akim Demaille <akim@epita.fr>
3806
3807 * src/print.h: New file.
3808 Propagate its use.
3809 * src/print.c: Formatting and ordering changes.
3810 (verbose, terse): Replace with...
3811 (print_results): this new function.
3812 Adjust dependencies.
3813
3814 2000-10-02 Akim Demaille <akim@epita.fr>
3815
3816 * src/conflicts.c (conflict_report): New function.
3817 (conflict_log, verbose_conflict_log): Replace with...
3818 (print_conflicts): this function.
3819 Adjust dependencies.
3820 * src/conflicts.h: New file.
3821 Propagate its inclusion.
3822
3823 2000-10-02 Akim Demaille <akim@epita.fr>
3824
3825 * src/nullable.h: New file.
3826 Propagate its inclusion.
3827 * src/nullable.c: Formatting changes.
3828
3829 2000-10-02 Akim Demaille <akim@epita.fr>
3830
3831 * src/reduce.h: New file.
3832 Propagate its inclusion.
3833 * src/reduce.c: Topological sort and other formatting changes.
3834 (bool, TRUE, FALSE): Move their definition to...
3835 * src/system.h: here.
3836
3837 2000-10-02 Akim Demaille <akim@epita.fr>
3838
3839 * src/files.c: Formatting changes.
3840 (tryopen, tryclose, openfiles): Rename as...
3841 (xfopen, xfclose, open_files): this.
3842 (stringappend): static.
3843 * src/files.h: Complete the list of exported symbols.
3844 Propagate its use.
3845
3846 2000-10-02 Akim Demaille <akim@epita.fr>
3847
3848 * src/reader.h: New file.
3849 Propagate its use instead of tedious list of `extern' and
3850 prototypes.
3851 * src/reader.c: Formatting changes, topological sort,
3852 s/register//.
3853
3854 2000-10-02 Akim Demaille <akim@epita.fr>
3855
3856 * src/lex.h: Prototype `lex.c' exported functions.
3857 * src/reader.c: Adjust.
3858 * src/lex.c: Formatting changes.
3859 (safegetc): Rename as...
3860 (xgetc): this.
3861
3862 2000-10-02 Akim Demaille <akim@epita.fr>
3863
3864 * src/lalr.h: New file.
3865 Propagate its inclusion instead of prototypes and `extern'.
3866 * src/lalr.c: Formatting changes, topological sorting etc.
3867
3868 2000-10-02 Akim Demaille <akim@epita.fr>
3869
3870 * src/output.c (token_actions): Introduce a temporary array,
3871 YYDEFACT, that makes it possible for this function to use
3872 output_short_table.
3873
3874 2000-10-02 Akim Demaille <akim@epita.fr>
3875
3876 `user_toknums' is output as a `short[]' in `output.c', while it is
3877 defined as a `int[]' in `reader.c'. For consistency with the
3878 other output tables, `user_toknums' is now defined as a table of
3879 shorts.
3880
3881 * src/reader.c (user_toknums): Be a short table instead of an int
3882 table.
3883 Adjust dependencies.
3884
3885 Factor the short table outputs.
3886
3887 * src/output.c (output_short_table): New function.
3888 * src/output.c (output_gram, output_stos, output_rule_data)
3889 (output_base, output_table, output_check): Use it.
3890
3891 2000-10-02 Akim Demaille <akim@epita.fr>
3892
3893 * src/output.c (output): Topological sort of the functions, in
3894 order to get rid of the `static' prototypes.
3895 No longer use `register'.
3896 * src/output.h: New file.
3897 Propagate its inclusion in files explicitly prototyping functions
3898 from output.c.
3899
3900 2000-09-21 Akim Demaille <akim@epita.fr>
3901
3902 * src/atgeneral.m4: Update from Autoconf.
3903
3904 2000-09-21 Akim Demaille <akim@epita.fr>
3905
3906 * src/closure.h: New file.
3907 * src/closure.c: Formatting changes, topological sort over the
3908 functions, use of closure.h.
3909 (initialize_closure, finalize_closure): Rename as...
3910 (new_closure, free_closure): these. Adjust dependencies.
3911 * src/LR0.c: Formatting changes, topological sort, use of
3912 cloture.h.
3913 (initialize_states): Rename as...
3914 (new_states): this.
3915 * src/Makefile.am (noinst_HEADERS): Adjust.
3916
3917 2000-09-20 Akim Demaille <akim@epita.fr>
3918
3919 * src/acconfig.h: Don't protect config.h against multiple
3920 inclusion.
3921 Don't define PARAMS.
3922 * src/system.h: Define PARAMS.
3923 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
3924 purpose of config.h. system.h must not try to fix wrong
3925 definitions in config.h.
3926
3927 2000-09-20 Akim Demaille <akim@epita.fr>
3928
3929 * src/derives.h: New file.
3930 * src/main.c, src/derives.h: Use it.
3931 Formatting changes.
3932 * src/Makefile.am (noinst_HEADERS): Adjust.
3933
3934 2000-09-20 Akim Demaille <akim@epita.fr>
3935
3936 * tests/atgeneral.m4: Update from Autoconf.
3937 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
3938 (AT_CHECK_CALC): New macros.
3939 Use these macros to test bison with options `', `--raw',
3940 `--debug', `--yacc', `--yacc --debug'.
3941
3942 2000-09-19 Akim Demaille <akim@epita.fr>
3943
3944 * src/output.c: Formatting changes.
3945 * src/machine.h: Remove, leaving its contents in...
3946 * src/system.h: here.
3947 Include stdio.h.
3948 Adjust all dependencies on stdio.h and machine.h.
3949 * src/getargs.h: New file.
3950 Let all `extern' declarations about getargs.c be replaced with
3951 inclusion of `getargs.h'.
3952 * src/Makefile.am (noinst_HEADERS): Adjust.
3953
3954 * tests/calc.m4 (yyin): Be initialized in main, not on the global
3955 scope.
3956 (yyerror): Returns void, not int.
3957 * doc/bison.texinfo: Formatting changes.
3958
3959 2000-09-19 Akim Demaille <akim@epita.fr>
3960
3961 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
3962 portable.
3963
3964 2000-09-18 Akim Demaille <akim@epita.fr>
3965
3966 * configure.in: Append WARNING_CFLAGS to CFLAGS.
3967 * src/Makefile.am (INCLUDES): Don't.
3968 Be ready to fetch headers in lib/.
3969
3970 2000-09-18 Akim Demaille <akim@epita.fr>
3971
3972 * doc/bison.texinfo: Update the copyright.
3973 ANSIfy and GNUify the examples.
3974 Remove the old menu.
3975
3976 2000-09-18 Akim Demaille <akim@epita.fr>
3977
3978 First set of tests: use the `calc' example from the documentation.
3979
3980 * src/bison.s1 (yyparse): Condition the code using `yytname' which
3981 is defined only when YYDEBUG is.
3982 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
3983 * src/files.c (tryopen, tryclose): Formatting changes.
3984 Move to the top and be static.
3985 * src/reader.c (read_signed_integer): Likewise.
3986 * tests/calc.m4: New file.
3987 * Makefile.am, suite.m4: Adjust.
3988 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
3989
3990 2000-09-18 Akim Demaille <akim@epita.fr>
3991
3992 Add support for an Autotest test suite for Bison.
3993
3994 * m4/m4.m4, m4/atconfig.m4: New files.
3995 * m4/Makefile.am (EXTRA_DIST): Adjust.
3996 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
3997 files.
3998 * src/getargs.c: Display a more standard --version message.
3999 * src/reader.c (reader): Formatting changes.
4000 No longer depend upon VERSION_STRING.
4001 * configure.in: No longer use `dnl'.
4002 Set up the test suite and the new directory `tests/.
4003 (VERSION_STRING): Remove.
4004
4005 2000-04-14 Akim Demaille <akim@epita.fr>
4006
4007 * src/reader.c (copy_comment2): New function, same as former
4008 `copy_comment', but outputs into two FILE *.
4009 (copy_comment): Use it.
4010 (parse_union_decl): Use it.
4011 (get_type, parse_start_decl): Use the same `invalid' message.
4012 (parse_start_decl, parse_union_decl): Use the same `multiple'
4013 message.
4014 (parse_union_decl, copy_guard, copy_action): Use the same
4015 `unmatched' message.
4016 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
4017
4018 2000-03-31 Akim Demaille <akim@epita.fr>
4019
4020 * src/files.c (tryopen, tryclose): Move to the top.
4021 Be static.
4022
4023 2000-03-31 Akim Demaille <akim@epita.fr>
4024
4025 * src/main.c (main): Don't call `done', exit does it.
4026
4027 2000-03-31 Akim Demaille <akim@epita.fr>
4028
4029 * allocate.c: s/return (foo)/return foo/.
4030 * lalr.c: Likewise.
4031 * LR0.c: Likewise.
4032 * output.c: Likewise.
4033 * reader.c: Likewise.
4034 * symtab.c: Likewise.
4035 * vmsgetargs.c: Likewise.
4036
4037 2000-03-31 Akim Demaille <akim@epita.fr>
4038
4039 Clean up the error reporting functions.
4040
4041 * src/report.c: New file.
4042 * src/report.h: Likewise.
4043 * src/Makefile.am: Adjust.
4044 * m4/error.m4: New file.
4045 * m4/Makefile.am: Adjust.
4046 * configure.in (jm_PREREQ_ERROR): Call it.
4047 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
4048 Remove.
4049 (fatal, fatals): Remove. All callers use complain.c::fatal.
4050 (warn, warni, warns, warnss, warnss): Remove. All callers use
4051 complain.c::complain.
4052 (toomany): Remove, use fatal instead.
4053 * src/files.c (done): No argument, use complain_message_count.
4054 * src/main.c (main): Register `done' to `atexit'.
4055
4056 * src/getargs.c (usage): More `fputs', less `fprintf'.
4057
4058 2000-03-28 Akim Demaille <akim@epita.fr>
4059
4060 * lib/: New directory.
4061 * Makefile.am (SUBDIRS): Adjust.
4062 * configure.in: Adjust.
4063 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
4064 useless.
4065 * src/alloca.c: Moved to lib/.
4066 * src/getopt.c: Likewise.
4067 * src/getopt1.c: Likewise.
4068 * src/getopt.h: Likewise.
4069 * src/ansi2knr.c: Likewise.
4070 * src/ansi2knr.1: Likewise.
4071 * src/Makefile.am: Adjust.
4072 * lib/Makefile.am: New file.
4073
4074 2000-03-28 Akim Demaille <akim@epita.fr>
4075
4076 * src/getargs.c (usage): Refresh the help message.
4077
4078 2000-03-17 Akim Demaille <akim@epita.fr>
4079
4080 * src/getopt1.c: Updated from textutils 2.0e
4081 * src/getopt.c: Likewise.
4082 * src/getopt.h: Likewise.
4083
4084 2000-03-17 Akim Demaille <akim@epita.fr>
4085
4086 * src/Makefile.am (bison.simple): Fix the awk program: quote only
4087 the file name, not the whole `#line LINE FILE'.
4088
4089 2000-03-17 Akim Demaille <akim@epita.fr>
4090
4091 On syntax errors, report the token on which we choked.
4092
4093 * src/bison.s1 (yyparse): In the label yyerrlab, when
4094 YYERROR_VERBOSE, add yychar in msg.
4095
4096 2000-03-17 Akim Demaille <akim@epita.fr>
4097
4098 * src/reader.c (copy_at): New function.
4099 (copy_guard): Use it.
4100 (copy_action): Use it.
4101
4102 2000-03-17 Akim Demaille <akim@epita.fr>
4103
4104 Be kind to translators, save some useless translations.
4105
4106 * src/main.c (banner): New function.
4107 (fatal_banner): Use it.
4108 (warn_banner): Use it.
4109
4110 2000-03-17 Akim Demaille <akim@epita.fr>
4111
4112 * src/reader.c (copy_definition): Use copy_string and
4113 copy_comment. Removed now unused `match', `ended',
4114 `cplus_comment'.
4115 (copy_comment, copy_string): Moved, to be visible from
4116 copy_definition.
4117
4118 2000-03-17 Akim Demaille <akim@epita.fr>
4119
4120 * src/reader.c (copy_string): Declare `static inline'. No
4121 problems with inline, since it is checked by configure.
4122 (copy_comment): Likewise.
4123
4124 2000-03-17 Akim Demaille <akim@epita.fr>
4125
4126 * src/reader.c (packsymbols): Formatting changes.
4127
4128 2000-03-17 Akim Demaille <akim@epita.fr>
4129
4130 * src/reader.c (copy_comment): New function, factored out from:
4131 (copy_action): Use it. Removed now unused `match', `ended',
4132 `cplus_comment'.
4133 (copy_guard): Likewise.
4134
4135 2000-03-17 Akim Demaille <akim@epita.fr>
4136
4137 * src/reader.c (copy_string): New function, factored out from:
4138 (copy_action): Use it.
4139 (copy_guard): Likewise.
4140
4141 2000-03-17 Akim Demaille <akim@epita.fr>
4142
4143 Change the handling of @s so that they behave exactly like $s.
4144 There is now a pseudo variable @$ (readble and writable), location
4145 of the lhs of the rule (by default ranging from the location of
4146 the first symbol of the rhs, to the location of the last symbol,
4147 or, if the rhs is empty, YYLLOC).
4148
4149 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
4150 yyval.
4151 (yyparse): When providing a default semantic action, provide a
4152 default location action.
4153 (after the $): No longer change `*YYLSP', just stack YYLOC the
4154 same way you stack YYVAL.
4155 * src/reader.c (read_declarations): Use warns.
4156 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
4157 (copy_action, case '@'): Likewise.
4158 Use a standard error message, to save useless work from
4159 translators.
4160
4161 2000-03-17 Akim Demaille <akim@epita.fr>
4162
4163 * src/bison.s1: Formatting and cosmetics changes.
4164 * src/reader.c: Likewise.
4165 Update the Copyright notice.
4166
4167 2000-03-17 Akim Demaille <akim@epita.fr>
4168
4169 * src/bison.s1 (#line): All set to `#line' only, since the
4170 Makefile now handles them.
4171
4172 2000-03-16 Akim Demaille <akim@epita.fr>
4173
4174 * src/output.c (output_rule_data): Output the documentation of
4175 some of the tables.
4176 (Copyright notice): Update.
4177 Formatting changes.
4178
4179 2000-03-16 Akim Demaille <akim@epita.fr>
4180
4181 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
4182 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
4183 One `#if YYDEBUG' remains, since it uses variables which are
4184 defined only if `YYDEBUG != 0'.
4185
4186 2000-03-16 Akim Demaille <akim@epita.fr>
4187
4188 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
4189 and related variables so that the similarities are highlighted.
4190
4191 2000-03-16 Akim Demaille <akim@epita.fr>
4192
4193 * src/bison.s1: Properly indent CPP directives.
4194
4195 2000-03-16 Akim Demaille <akim@epita.fr>
4196
4197 * src/bison.s1: Properly indent the `alloca' CPP section.
4198
4199 2000-03-16 Akim Demaille <akim@epita.fr>
4200
4201 Do not hard code values of directories in `configure.in'.
4202 Update the `configure' tool chain.
4203
4204 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
4205 src/makefile.am.
4206 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
4207 (AC_OUTPUT): Add m4/Makefile.
4208 Bump to bison 1.28a, 1.29 has never been released.
4209 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
4210 handled via src/Makefile.am.
4211 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
4212 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
4213 autoheader.
4214 * Makefile.am (SUBDIRS): Add m4.
4215 (ACLOCAL_AM_FLAGS): New variable.
4216 (AUTOMAKE_OPTIONS): Add check-news.
4217 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
4218 the proper line number and file name.
4219 (DEFS): Propagate the location of bison library files and of the
4220 locale files.
4221 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
4222 builddir.
4223 * acinclude.m4: Remove, replaced by the directory m4.
4224 * m4/Makefile.am (EXTRA_DIST): New variable.
4225 * m4/gettext.m4: New file, from the fileutils.
4226 * m4/lcmessage.m4: Likewise
4227 * m4/progtest.m4: Likewise.
4228 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
4229
4230 2000-03-10 Akim Demaille <akim@epita.fr>
4231
4232 * src/closure.c:
4233 Formatting changes of various comments.
4234 Respect the GNU coding standards at various places.
4235 Don't use `_()' when no translation is needed.
4236
4237 1999-12-13 Jesse Thilo <jthilo@gnu.org>
4238
4239 * src/files.c:
4240 OS/2 honors TMPDIR environment variable.
4241
4242 1999-12-13 Jesse Thilo <jthilo@gnu.org>
4243
4244 * doc/bison.texinfo: Tweaked spelling and grammar.
4245 Updated ISBN.
4246 Removed reference to price of printed copy.
4247 Mention BISON_SIMPLE and BISON_HAIRY.
4248
4249 1999-12-13 Jesse Thilo <jthilo@gnu.org>
4250
4251 * configure.in, NEWS:
4252 Bison 1.29 released.
4253
4254 1999-10-27 Jesse Thilo <jthilo@gnu.org>
4255
4256 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
4257 Added reference card.
4258
4259 1999-07-26 Jesse Thilo <jthilo@gnu.org>
4260
4261 * po/ru.po: Added Russian translation.
4262
4263 1999-07-26 Jesse Thilo <jthilo@gnu.org>
4264
4265 * configure.in: Added Russian translation.
4266
4267 1999-07-06 Jesse Thilo <jthilo@gnu.org>
4268
4269 * configure.in, NEWS, README:
4270 Released version 1.28.
4271
4272 1999-06-14 Jesse Thilo <jthilo@gnu.org>
4273
4274 * src/system.h:
4275 Squashed redefinition warning on some systems.
4276
4277 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
4278 Have configure build version string instead of relying on ANSI string
4279 concatentation.
4280
4281 1999-06-14 Jesse Thilo <jthilo@gnu.org>
4282
4283 * po/POTFILES.in: Got rid of version.c.
4284
4285 1999-06-14 Jesse Thilo <jthilo@gnu.org>
4286
4287 * acconfig.h, configure.in:
4288 Have configure build version string instead of relying on ANSI string
4289 concatentation.
4290
4291 1999-06-08 Jesse Thilo <jthilo@gnu.org>
4292
4293 * doc/bison.1:
4294 Dropped mention of `+' for long-named options.
4295
4296 1999-05-30 Jesse Thilo <jthilo@gnu.org>
4297
4298 * src/files.c: Added <unistd.h> for unlink().
4299
4300 * src/Makefile.am, src/system.h:
4301 I18n fixes.
4302
4303 1999-05-30 Jesse Thilo <jthilo@gnu.org>
4304
4305 * README: Added a FAQ list.
4306
4307 * configure.in, acconfig.h:
4308 I18n fixes.
4309
4310 1999-05-30 Jesse Thilo <jthilo@gnu.org>
4311
4312 * doc/FAQ, doc/Makefile.am:
4313 Added a FAQ list.
4314
4315 1999-05-19 Jesse Thilo <jthilo@gnu.org>
4316
4317 * src/alloc.h, src/symtab.h, src/version.c:
4318 Protected inclusion of "config.h" with HAVE_CONFIG_H.
4319
4320 1999-04-18 Jesse Thilo <jthilo@gnu.org>
4321
4322 * src/.cvsignore, src/Makefile.am:
4323 Reorganized: sources in `src', documentation in `doc'.
4324
4325 * src/lex.c (literalchar):
4326 fixed the code for escaping double quotes (thanks
4327 Jonathan Czisny.)
4328
4329 1999-04-18 Jesse Thilo <jthilo@gnu.org>
4330
4331 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
4332 Adjusted paths to reflect directory reorganization.
4333
4334 1999-04-18 Jesse Thilo <jthilo@gnu.org>
4335
4336 * doc/.cvsignore, doc/Makefile.am:
4337 Reorganized: sources in `src', documentation in `doc'.
4338
4339 1999-04-18 Jesse Thilo <jthilo@gnu.org>
4340
4341 * configure.in:
4342 Updated AC_INIT file to reflect directory reorganization.
4343
4344 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
4345 Reorganized: sources in `src', documentation in `doc'.
4346
4347 1999-04-13 Jesse Thilo <jthilo@gnu.org>
4348
4349 * src/allocate.c:
4350 Don't declare calloc() and realloc() if not necessary.
4351
4352 1999-04-13 Jesse Thilo <jthilo@gnu.org>
4353
4354 * configure.in, acconfig.h, acinclude.m4:
4355 Don't declare calloc() and realloc() if not necessary.
4356
4357 1999-03-23 Jesse Thilo <jthilo@gnu.org>
4358
4359 * po/.cvsignore: Added i18n support.
4360
4361 1999-03-23 Jesse Thilo <jthilo@gnu.org>
4362
4363 * acconfig.h, configure.in, Makefile.am:
4364 Added i18n support.
4365
4366 1999-03-22 Jesse Thilo <jthilo@gnu.org>
4367
4368 * src/bison.s1: Fixed #line numbers.
4369
4370 1999-03-15 Jesse Thilo <jthilo@gnu.org>
4371
4372 * po/es.po, po/fr.po, po/nl.po, po/de.po:
4373 Added PO files from Translation Project.
4374
4375 1999-03-03 Jesse Thilo <jthilo@gnu.org>
4376
4377 * Makefile.am:
4378 Added support for non-ANSI compilers (ansi2knr).
4379
4380 1999-02-16 Jesse Thilo <jthilo@gnu.org>
4381
4382 * configure.in: Bumped version number to 1.27.
4383
4384 * Makefile.am:
4385 Added `bison.simple' to list of files removed by `make distclean'.
4386
4387 1999-02-12 Jesse Thilo <jthilo@gnu.org>
4388
4389 * src/files.c, src/files.h:
4390 Defined locations of parser files in config.h instead of Makefile.
4391
4392 1999-02-12 Jesse Thilo <jthilo@gnu.org>
4393
4394 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
4395 Defined locations of parser files in config.h instead of Makefile.
4396
4397 1999-02-09 Jesse Thilo <jthilo@gnu.org>
4398
4399 * Makefile.am:
4400 Removed inappropriate use of $< macro.
4401
4402 1999-02-05 Jesse Thilo <jthilo@gnu.org>
4403
4404 * po/Makefile.in.in, po/POTFILES.in:
4405 Add `po' directory skeleton.
4406
4407 1999-01-27 Jesse Thilo <jthilo@gnu.org>
4408
4409 * README: Document help-bison list.
4410
4411 * configure.in: Add check for mkstemp().
4412
4413 1999-01-20 Jesse Thilo <jthilo@gnu.org>
4414
4415 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
4416 Hush a few compiler warnings.
4417
4418 * src/files.c:
4419 Add tryclose(), which verifies that fclose was successful.
4420 Hush a couple of compiler warnings.
4421
4422 1999-01-20 Jesse Thilo <jthilo@gnu.org>
4423
4424 * Makefile.am, OChangeLog:
4425 ChangeLog is now automatically generated. Include the old version as
4426 OChangeLog.
4427
4428 1999-01-14 Jesse Thilo <jthilo@gnu.org>
4429
4430 * 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:
4431 Update FSF address.
4432
4433 1999-01-14 Jesse Thilo <jthilo@gnu.org>
4434
4435 * doc/bison.texinfo: Fix formatting glitch.
4436
4437 * doc/bison.texinfo: Update FSF address.
4438
4439 1999-01-14 Jesse Thilo <jthilo@gnu.org>
4440
4441 * acconfig.h: Update FSF address.
4442
4443 1999-01-08 Jesse Thilo <jthilo@gnu.org>
4444
4445 * src/system.h:
4446 Don't define PACKAGE here, since config.h defines it.
4447
4448 1998-12-30 Jesse Thilo <jthilo@gnu.org>
4449
4450 * src/reader.c: Update copyright date.
4451
4452 * src/main.c:
4453 Ditch sprintf to statically-sized buffers in fatal/warn functions in
4454 favor of output directly to stderr (avoids buffer overruns).
4455
4456 * src/reader.c: Some checks for premature EOF.
4457
4458 * 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:
4459 Use prototypes if the compiler understands them.
4460
4461 * src/files.c: Honor TMPDIR on Unix hosts.
4462 Use prototypes if the compiler understands them.
4463
4464 * src/reader.c:
4465 Fix a couple of buffer overrun bugs.
4466 Use prototypes if the compiler understands them.
4467
4468 * src/system.h: Include unistd.h and ctype.h.
4469 Use #ifdef instead of #if for NLS symbols.
4470
4471 1998-12-30 Jesse Thilo <jthilo@gnu.org>
4472
4473 * doc/bison.texinfo:
4474 Delete comment "consider using @set for edition number, etc..." since
4475 we now are doing so.
4476
4477 1998-12-30 Jesse Thilo <jthilo@gnu.org>
4478
4479 * configure.in:
4480 Use prototypes if the compiler understands them.
4481
4482 * NEWS: Document 1.26 highlights.
4483
4484 * Makefile.am: Require Automake 1.3 or later.
4485
4486 * acconfig.h:
4487 Use prototypes if the compiler understands them.
4488
4489 1998-12-29 Jesse Thilo <jthilo@gnu.org>
4490
4491 * src/version.c:
4492 Use VERSION symbol from automake for version number.
4493
4494 1998-12-29 Jesse Thilo <jthilo@gnu.org>
4495
4496 * acconfig.h, configure.in, version.cin:
4497 Use VERSION symbol from automake for version number.
4498
4499 1998-11-28 Jesse Thilo <jthilo@gnu.org>
4500
4501 * Makefile.am:
4502 Distribute original version of simple parser (bison.s1), not built
4503 version (bison.simple).
4504
4505 1998-11-28 Jesse Thilo <jthilo@gnu.org>
4506
4507 * doc/bison.texinfo: Add info dir entry.
4508
4509 * doc/bison.texinfo:
4510 Let automake put version number into documentation.
4511
4512 1998-11-26 Jesse Thilo <jthilo@gnu.org>
4513
4514 * src/bison.cld, src/build.com, src/vmshlp.mar:
4515 Add non-RCS files from /gd/gnu/bison.
4516
4517 1998-11-26 Jesse Thilo <jthilo@gnu.org>
4518
4519 * doc/bison.1:
4520 Document the BISON_HAIRY and BISON_SIMPLE variables.
4521
4522 1998-11-25 Jesse Thilo <jthilo@gnu.org>
4523
4524 * src/version.c: Build version.c automatically.
4525
4526 * src/reader.c:
4527 Fix token numbering (used to start at 258, not 257).
4528
4529 * src/system.h: Include config.h.
4530
4531 * src/getargs.c: Update bug report address.
4532
4533 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
4534 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
4535
4536 1998-11-25 Jesse Thilo <jthilo@gnu.org>
4537
4538 * Makefile.am:
4539 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
4540
4541 * configure.in, version.cin:
4542 Build version.c automatically.
4543
4544 * AUTHORS: Add AUTHORS file.
4545
4546 * README: Update bug report address.
4547
4548 * bison.simple:
4549 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
4550
4551 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
4552 Add automake stuff.
4553
4554 1998-11-25 Jesse Thilo <jthilo@gnu.org>
4555
4556 * doc/bison.texinfo: Clean up some formatting.
4557
4558 1998-05-05 Richard Stallman <rms@gnu.org>
4559
4560 * doc/bison.texinfo:
4561 Explain better why to make a pure parser.
4562
4563 1998-01-05 Richard Stallman <rms@gnu.org>
4564
4565 * src/files.c (openfiles):
4566 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
4567 find a temporary directory, if possible. Do not unlink files while
4568 they are open.
4569
4570 1997-08-25 Richard Stallman <rms@gnu.org>
4571
4572 * src/reader.c (stack_offset;):
4573 Change some warni to warns.
4574
4575 * src/lex.c (literalchar): Use warns, not warni.
4576
4577 1997-06-28 Richard Stallman <rms@gnu.org>
4578
4579 * src/bison.s1: Add a Bison version comment.
4580
4581 * src/main.c (fatal, warn, berror):
4582 Use program_name.
4583
4584 1997-06-28 Richard Stallman <rms@gnu.org>
4585
4586 * Makefile.in (bison_version): New variable.
4587 (dist): Use that variable.
4588 (bison.s1): Substitute the Bison version into bison.simple.
4589
4590 * bison.simple: Add a Bison version comment.
4591
4592 1997-06-18 Richard Stallman <rms@gnu.org>
4593
4594 * src/main.c (fatal, warn, berror):
4595 Make error messages standard.
4596 (toomany): Improve error message text.
4597
4598 * 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:
4599 new.h renamed to alloc.h.
4600
4601 1997-06-18 Richard Stallman <rms@gnu.org>
4602
4603 * Makefile.in: new.h renamed to alloc.h.
4604
4605 1997-05-24 Richard Stallman <rms@gnu.org>
4606
4607 * src/lex.c (literalchar):
4608 Fix the code for escaping \, " and '.
4609
4610 (lex): Avoid trouble when there are many chars
4611 to discard in a char literal with just several chars in it.
4612
4613 1997-05-17 Richard Stallman <rms@gnu.org>
4614
4615 * src/bison.s1:
4616 Use malloc, if using alloca is troublesome.
4617 (YYSTACK_USE_ALLOCA): New flag macro.
4618 Define it for some systems and compilers.
4619 (YYSTACK_ALLOC): New macro.
4620 (yyparse): Use YYSTACK_ALLOC to allocate stack.
4621 If it was malloc'd, free it.
4622
4623 1997-05-17 Richard Stallman <rms@gnu.org>
4624
4625 * bison.simple:
4626 Use malloc, if using alloca is troublesome.
4627 (YYSTACK_USE_ALLOCA): New flag macro.
4628 Define it for some systems and compilers.
4629 (YYSTACK_ALLOC): New macro.
4630 (yyparse): Use YYSTACK_ALLOC to allocate stack.
4631 If it was malloc'd, free it.
4632
4633 1997-04-23 Richard Stallman <rms@gnu.org>
4634
4635 * src/bison.s1:
4636 (alloca) [__hpux]: Always define as __builtin_alloca.
4637
4638 1997-04-23 Richard Stallman <rms@gnu.org>
4639
4640 * bison.simple:
4641 (alloca) [__hpux]: Always define as __builtin_alloca.
4642
4643 1997-04-22 Richard Stallman <rms@gnu.org>
4644
4645 * src/bison.s1:
4646 [__hpux]: Include alloca.h (right for HPUX 10)
4647 instead of declaring alloca (right for HPUX 9).
4648
4649 * src/bison.s1 (__yy_memcpy):
4650 Declare arg `count' as unsigned int.
4651 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
4652
4653 1997-04-22 Richard Stallman <rms@gnu.org>
4654
4655 * bison.simple:
4656 [__hpux]: Include alloca.h (right for HPUX 10)
4657 instead of declaring alloca (right for HPUX 9).
4658
4659 * bison.simple (__yy_memcpy):
4660 Declare arg `count' as unsigned int.
4661 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
4662
4663 1997-01-03 Richard Stallman <rms@gnu.org>
4664
4665 * src/allocate.c: [__STDC__ or _MSC_VER]:
4666 Declare calloc and realloc to return void *.
4667
4668 1997-01-02 Richard Stallman <rms@gnu.org>
4669
4670 * src/system.h:
4671 [_MSC_VER]: Include stdlib.h and process.h.
4672 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
4673
4674 * src/main.c (main): Return FAILURE as a value.
4675 (printable_version): Declare arg as int, not char.
4676
4677 1997-01-02 Richard Stallman <rms@gnu.org>
4678
4679 * Makefile.in (dist):
4680 Explicitly check for symlinks, and copy them.
4681
4682 1996-12-19 Richard Stallman <rms@gnu.org>
4683
4684 * src/files.c:
4685 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
4686
4687 1996-12-18 Paul Eggert <eggert@gnu.org>
4688
4689 * src/bison.s1 (yyparse):
4690 If __GNUC__ and YYPARSE_PARAM are both defined,
4691 declare yyparse to have a void * argument.
4692
4693 1996-12-18 Paul Eggert <eggert@gnu.org>
4694
4695 * bison.simple (yyparse):
4696 If __GNUC__ and YYPARSE_PARAM are both defined,
4697 declare yyparse to have a void * argument.
4698
4699 1996-12-17 Richard Stallman <rms@gnu.org>
4700
4701 * src/reduce.c (nbits): Add some casts.
4702
4703 1996-08-12 Richard Stallman <rms@gnu.org>
4704
4705 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
4706
4707 1996-08-12 Richard Stallman <rms@gnu.org>
4708
4709 * bison.simple: Test _MSDOS as well as _MSDOS_.
4710
4711 1996-07-31 Richard Stallman <rms@gnu.org>
4712
4713 * src/bison.s1:
4714 [__sun && __i386]: Include alloca.h.
4715
4716 1996-07-31 Richard Stallman <rms@gnu.org>
4717
4718 * bison.simple:
4719 [__sun && __i386]: Include alloca.h.
4720
4721 1996-07-30 Richard Stallman <rms@gnu.org>
4722
4723 * src/bison.s1: Comment change.
4724
4725 * src/bison.s1: Test _MSDOS_, not MSDOS.
4726
4727 1996-07-30 Richard Stallman <rms@gnu.org>
4728
4729 * bison.simple: Comment change.
4730
4731 * bison.simple: Test _MSDOS_, not MSDOS.
4732
4733 1996-06-01 Richard Stallman <rms@gnu.org>
4734
4735 * 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:
4736 Insert `_' macro around many string constants.
4737
4738 * src/main.c:
4739 Insert `_' macro around many string constants.
4740
4741 (main): Call setlocale, bindtextdomain and textdomain.
4742
4743 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
4744 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
4745 [ENABLE_NLS]: Include libintl.h.
4746 [ENABLE_NLS] (gettext): Define.
4747 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
4748 (N_, PACKAGE, LOCALEDIR): New macros.
4749
4750 1996-06-01 Richard Stallman <rms@gnu.org>
4751
4752 * POTFILES.in: New file.
4753
4754 * Makefile.in (allocate.o):
4755 Define target explicitly.
4756
4757 * Makefile.in (CFLAGS): Set to @CFLAGS@.
4758 (LDFLAGS): Set to @LDFLAGS@.
4759 (configure): Run autoconf only if preceding `cd' succeeds.
4760 (bison.s1): Redirect output to temporary file then move the
4761 temporary to the target, rather than redirecting directly to bison.s1.
4762 (clean): Remove config.status and config.log.
4763 (distclean): Don't remove config.status here.
4764
4765 1996-05-12 Richard Stallman <rms@gnu.org>
4766
4767 * src/bison.s1:
4768 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
4769
4770 1996-05-12 Richard Stallman <rms@gnu.org>
4771
4772 * bison.simple:
4773 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
4774
4775 1996-05-11 Richard Stallman <rms@gnu.org>
4776
4777 * src/bison.s1 (__yy_memcpy):
4778 Really reorder the args, as was supposedly done on Feb 14 1995.
4779 (yyparse): Calls changed accordingly.
4780
4781 1996-05-11 Richard Stallman <rms@gnu.org>
4782
4783 * Makefile.in (dist): Don't use $(srcdir).
4784
4785 * bison.simple (__yy_memcpy):
4786 Really reorder the args, as was supposedly done on Feb 14 1995.
4787 (yyparse): Calls changed accordingly.
4788
4789 1996-01-27 Richard Stallman <rms@gnu.org>
4790
4791 * src/output.c (output_rule_data):
4792 Test YYERROR_VERBOSE in the conditional
4793 around the definition of ttyname.
4794
4795 1995-12-29 Richard Stallman <rms@gnu.org>
4796
4797 * src/bison.s1:
4798 Fix line numbers in #line commands.
4799
4800 1995-12-29 Richard Stallman <rms@gnu.org>
4801
4802 * bison.simple:
4803 Fix line numbers in #line commands.
4804
4805 1995-12-27 Richard Stallman <rms@gnu.org>
4806
4807 * src/bison.s1 (YYPARSE_PARAM_DECL):
4808 In C++, make it always null.
4809 (YYPARSE_PARAM_ARG): New macro.
4810 (yyparse): Use YYPARSE_PARAM_ARG.
4811
4812 1995-12-27 Richard Stallman <rms@gnu.org>
4813
4814 * bison.simple (YYPARSE_PARAM_DECL):
4815 In C++, make it always null.
4816 (YYPARSE_PARAM_ARG): New macro.
4817 (yyparse): Use YYPARSE_PARAM_ARG.
4818
4819 1995-11-29 Richard Stallman <rms@gnu.org>
4820
4821 * doc/bison.texinfo:
4822 Describe literal string tokens, %raw, %no_lines, %token_table.
4823
4824 1995-11-29 Daniel Hagerty <hag@gnu.org>
4825
4826 * doc/bison.texinfo: Fixed update date
4827
4828 1995-10-16 Richard Stallman <rms@gnu.org>
4829
4830 * src/version.c: Version 1.25.
4831
4832 1995-10-16 Richard Stallman <rms@gnu.org>
4833
4834 * NEWS: *** empty log message ***
4835
4836 1995-10-16 Richard Stallman <rms@gnu.org>
4837
4838 * doc/bison.1, doc/bison.rnh:
4839 Add new options.
4840
4841 1995-10-15 Richard Stallman <rms@gnu.org>
4842
4843 * src/vmsgetargs.c, src/getargs.c:
4844 Added -n, -k, and -raw switches.
4845 (noparserflag, toknumflag, rawtoknumflag): New variables.
4846
4847 * src/symtab.h (SALIAS):
4848 New #define for adding aliases to %token.
4849 (struct bucket): Added `alias' field.
4850
4851 * src/reduce.c (reduce_grammar):
4852 Revise error message.
4853 (print_notices): Remove final `.' from error message.
4854
4855 * src/reader.c (reader_output_yylsp):
4856 New function.
4857 (readgram): Use `#if 0' around code that accepted %command
4858 inside grammar rules: The documentation doesn't allow it,
4859 and it will fail since the %command processors scan for the next %.
4860 (parse_token_decl): Extended the %token
4861 declaration to allow a multi-character symbol as an alias.
4862 (parse_thong_decl): New function.
4863 (read_declarations): Added %thong declarations.
4864 (read_declarations): Handle NOOP to deal with allowing
4865 % declarations as another means to specify the flags.
4866 (readgram): Allow %prec prior to semantics embedded in a rule.
4867 (skip_to_char, read_declarations, copy_definition)
4868 (parse_token_decl, parse_start_decl, parse_type_decl)
4869 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
4870 (get_type_name, copy_guard, copy_action, readgram)
4871 (get_type, packsymbols): Revised most error messages.
4872 Changed `fatal' to `warnxxx' to avoid aborting for error.
4873 Revised and use multiple warnxxx functions to avoid using VARARGS1.
4874 (read_declarations): Improve the error message for
4875 an invalid character. Do not abort.
4876 (read_declarations, copy_guard, copy_action): Use
4877 printable_version to avoid unprintable characters in printed output.
4878 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
4879 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
4880 Allow the type of a non-terminal can be given
4881 more than once, as long as all specifications give the same type.
4882
4883 * src/output.c:
4884 (output_headers, output_trailers, output, output_gram)
4885 (output_rule_data): Implement noparserflag variable.
4886 Implement toknumflag variable.
4887 (output): Call reader_output_yylsp to output LTYPESTR.
4888
4889 * src/main.c (main):
4890 If reader sees an error, don't process the grammar.
4891 (fatals): Updated to not use VARARGS1.
4892 (printable_version, int_to_string, warn, warni, warns, warnss)
4893 (warnsss): New error reporting functions. Avoid abort for error.
4894
4895 * src/lex.h:
4896 Added THONG and NOOP for alias processing.
4897 Added SETOPT for the new code that allows setting options with %flags.
4898
4899 * src/lex.c:
4900 Include getopt.h. Add some extern decls.
4901 (safegetc): New function to deal with EOF gracefully.
4902 (literalchar); new function to deal with reading \ escapes.
4903 (lex): Use literalchar.
4904 (lex): Implemented "..." tokens.
4905 (literalchar, lex, parse_percent_token): Made tokenbuffer
4906 always contain the token. This includes growing the token
4907 buffer while reading an integer.
4908 (parse_percent_token): Replaced if-else statement with percent_table.
4909 (parse_percent_token): Added % declarations as another
4910 way to specify the flags -n, -l, and -r. Also added hooks for
4911 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
4912 major changes to files.c.
4913 (lex) Retain in the incoming stream a character following
4914 an incorrect '/'.
4915 (skip_white_space, lex): Revised most error messages
4916 and changed fatal to warn to avoid aborting.
4917 (percent_table): Added %thong declarations.
4918
4919 * src/gram.h: Comment changes.
4920
4921 * src/files.c (openfiles, open_extra_files, done):
4922 Add faction flag
4923 and actfile file. Handle noparserflag. Both for -n switch.
4924
4925 * src/conflicts.c (resolve_sr_conflict):
4926 Remove use of alloca.
4927
4928 1995-06-01 Jim Meyering <meyering@gnu.org>
4929
4930 * doc/bison.texinfo: *** empty log message ***
4931
4932 1995-05-06 Richard Stallman <rms@gnu.org>
4933
4934 * src/bison.s1: Comment change.
4935
4936 1995-05-06 Richard Stallman <rms@gnu.org>
4937
4938 * bison.simple: Comment change.
4939
4940 1995-05-03 Richard Stallman <rms@gnu.org>
4941
4942 * src/version.c: Version now 1.24.
4943
4944 * src/bison.s1: Change distribution terms.
4945
4946 * src/version.c: Version now 1.23.
4947
4948 1995-05-03 Richard Stallman <rms@gnu.org>
4949
4950 * doc/bison.texinfo:
4951 Rewrite "Conditions for Using Bison".
4952 Update version to 1.24.
4953
4954 1995-05-03 Richard Stallman <rms@gnu.org>
4955
4956 * bison.simple: Change distribution terms.
4957
4958 1995-02-23 Richard Stallman <rms@gnu.org>
4959
4960 * src/files.c: Test __VMS_POSIX as well as VMS.
4961
4962 1995-02-14 Jim Meyering <meyering@gnu.org>
4963
4964 * src/bison.s1 (__yy_memcpy):
4965 Renamed from __yy_bcopy to avoid
4966 confusion. Reverse FROM and TO arguments to be consistent with
4967 those of memcpy.
4968
4969 1995-02-14 Jim Meyering <meyering@gnu.org>
4970
4971 * bison.simple (__yy_memcpy):
4972 Renamed from __yy_bcopy to avoid
4973 confusion. Reverse FROM and TO arguments to be consistent with
4974 those of memcpy.
4975
4976 1994-11-10 David J. MacKenzie <djm@gnu.org>
4977
4978 * NEWS: reformat
4979
4980 * NEWS: New file.
4981
4982 * Makefile.in (DISTFILES): Include NEWS.
4983
4984 * Makefile.in (DISTFILES):
4985 Include install-sh, not install.sh.
4986
4987 * configure.in: Update to Autoconf v2 macro names.
4988
4989 1994-10-05 David J. MacKenzie <djm@gnu.org>
4990
4991 * Makefile.in: fix typo
4992
4993 * Makefile.in (prefix, exec_prefix):
4994 Let configure set them.
4995
4996 1994-09-28 David J. MacKenzie <djm@gnu.org>
4997
4998 * Makefile.in: Set datadir to $(prefix)/share.
4999
5000 1994-09-15 Richard Stallman <rms@gnu.org>
5001
5002 * src/bison.s1:
5003 Update copyright notice and GPL version.
5004
5005 1994-09-15 Richard Stallman <rms@gnu.org>
5006
5007 * bison.simple:
5008 Update copyright notice and GPL version.
5009
5010 1994-07-12 Richard Stallman <rms@gnu.org>
5011
5012 * src/reduce.c, src/reader.c:
5013 entered into RCS
5014
5015 1994-05-05 David J. MacKenzie <djm@gnu.org>
5016
5017 * Makefile.in: entered into RCS
5018
5019 1994-03-26 Richard Stallman <rms@gnu.org>
5020
5021 * src/bison.s1: entered into RCS
5022
5023 1994-03-26 Richard Stallman <rms@gnu.org>
5024
5025 * bison.simple: entered into RCS
5026
5027 1994-03-25 Richard Stallman <rms@gnu.org>
5028
5029 * src/main.c: entered into RCS
5030
5031 1994-03-24 Richard Stallman <rms@gnu.org>
5032
5033 * src/conflicts.c: entered into RCS
5034
5035 1994-01-02 Richard Stallman <rms@gnu.org>
5036
5037 * Makefile.in: *** empty log message ***
5038
5039 1993-11-21 Richard Stallman <rms@gnu.org>
5040
5041 * src/bison.s1: *** empty log message ***
5042
5043 1993-11-21 Richard Stallman <rms@gnu.org>
5044
5045 * doc/bison.texinfo: entered into RCS
5046
5047 * doc/bison.texinfo: *** empty log message ***
5048
5049 1993-11-21 Richard Stallman <rms@gnu.org>
5050
5051 * bison.simple: *** empty log message ***
5052
5053 1993-10-25 David J. MacKenzie <djm@gnu.org>
5054
5055 * doc/bison.texinfo: *** empty log message ***
5056
5057 1993-10-19 Richard Stallman <rms@gnu.org>
5058
5059 * src/bison.s1: *** empty log message ***
5060
5061 1993-10-19 Richard Stallman <rms@gnu.org>
5062
5063 * bison.simple: *** empty log message ***
5064
5065 1993-10-14 Richard Stallman <rms@gnu.org>
5066
5067 * src/bison.s1: *** empty log message ***
5068
5069 1993-10-14 Richard Stallman <rms@gnu.org>
5070
5071 * bison.simple: *** empty log message ***
5072
5073 1993-09-14 David J. MacKenzie <djm@gnu.org>
5074
5075 * doc/bison.texinfo: *** empty log message ***
5076
5077 1993-09-13 Noah Friedman <friedman@gnu.org>
5078
5079 * Makefile.in: *** empty log message ***
5080
5081 1993-09-10 Richard Stallman <rms@gnu.org>
5082
5083 * src/conflicts.c: *** empty log message ***
5084
5085 * src/system.h: entered into RCS
5086
5087 1993-09-10 Richard Stallman <rms@gnu.org>
5088
5089 * doc/bison.1: entered into RCS
5090
5091 1993-09-06 Noah Friedman <friedman@gnu.org>
5092
5093 * src/version.c: entered into RCS
5094
5095 1993-09-06 Noah Friedman <friedman@gnu.org>
5096
5097 * Makefile.in: *** empty log message ***
5098
5099 1993-07-30 David J. MacKenzie <djm@gnu.org>
5100
5101 * Makefile.in: *** empty log message ***
5102
5103 1993-07-24 Richard Stallman <rms@gnu.org>
5104
5105 * src/bison.s1: *** empty log message ***
5106
5107 1993-07-24 Richard Stallman <rms@gnu.org>
5108
5109 * bison.simple: *** empty log message ***
5110
5111 1993-07-08 David J. MacKenzie <djm@gnu.org>
5112
5113 * Makefile.in: *** empty log message ***
5114
5115 1993-07-04 Richard Stallman <rms@gnu.org>
5116
5117 * src/bison.s1: *** empty log message ***
5118
5119 1993-07-04 Richard Stallman <rms@gnu.org>
5120
5121 * bison.simple: *** empty log message ***
5122
5123 1993-06-26 David J. MacKenzie <djm@gnu.org>
5124
5125 * src/getargs.c: entered into RCS
5126
5127 1993-06-26 David J. MacKenzie <djm@gnu.org>
5128
5129 * doc/bison.texinfo: *** empty log message ***
5130
5131 * doc/bison.1: New file.
5132
5133 1993-06-25 Richard Stallman <rms@gnu.org>
5134
5135 * src/getargs.c: New file.
5136
5137 1993-06-16 Richard Stallman <rms@gnu.org>
5138
5139 * src/bison.s1: *** empty log message ***
5140
5141 1993-06-16 Richard Stallman <rms@gnu.org>
5142
5143 * bison.simple: *** empty log message ***
5144
5145 1993-06-03 Richard Stallman <rms@gnu.org>
5146
5147 * src/bison.s1: New file.
5148
5149 1993-06-03 Richard Stallman <rms@gnu.org>
5150
5151 * doc/bison.texinfo: *** empty log message ***
5152
5153 1993-06-03 Richard Stallman <rms@gnu.org>
5154
5155 * bison.simple: New file.
5156
5157 1993-05-19 Richard Stallman <rms@gnu.org>
5158
5159 * doc/bison.texinfo: New file.
5160
5161 1993-05-07 Noah Friedman <friedman@gnu.org>
5162
5163 * Makefile.in: *** empty log message ***
5164
5165 1993-04-28 Noah Friedman <friedman@gnu.org>
5166
5167 * src/reader.c: *** empty log message ***
5168
5169 1993-04-23 Noah Friedman <friedman@gnu.org>
5170
5171 * src/alloc.h: entered into RCS
5172
5173 1993-04-20 David J. MacKenzie <djm@gnu.org>
5174
5175 * src/version.c: *** empty log message ***
5176
5177 * src/files.c, src/allocate.c:
5178 entered into RCS
5179
5180 * src/reader.c: *** empty log message ***
5181
5182 * src/lex.c: entered into RCS
5183
5184 * src/conflicts.c: New file.
5185
5186 * src/symtab.c: entered into RCS
5187
5188 * src/alloc.h: New file.
5189
5190 * src/LR0.c: entered into RCS
5191
5192 1993-04-18 Noah Friedman <friedman@gnu.org>
5193
5194 * src/reader.c: New file.
5195
5196 * src/version.c: *** empty log message ***
5197
5198 1993-04-18 Noah Friedman <friedman@gnu.org>
5199
5200 * Makefile.in: *** empty log message ***
5201
5202 1993-04-17 Noah Friedman <friedman@gnu.org>
5203
5204 * Makefile.in: *** empty log message ***
5205
5206 1993-04-15 Richard Stallman <rms@gnu.org>
5207
5208 * src/main.c, src/files.c:
5209 New file.
5210
5211 1993-04-15 Noah Friedman <friedman@gnu.org>
5212
5213 * configure.in: entered into RCS
5214
5215 * configure.in: *** empty log message ***
5216
5217 * configure.in: New file.
5218
5219 1993-04-14 Richard Stallman <rms@gnu.org>
5220
5221 * Makefile.in: New file.
5222
5223 1993-04-13 Richard Stallman <rms@gnu.org>
5224
5225 * src/version.c: New file.
5226
5227 1993-03-25 Richard Stallman <rms@gnu.org>
5228
5229 * src/output.c: entered into RCS
5230
5231 1992-09-25 Richard Stallman <rms@gnu.org>
5232
5233 * configure.bat: entered into RCS
5234
5235 1992-06-22 Richard Stallman <rms@gnu.org>
5236
5237 * src/vmsgetargs.c: entered into RCS
5238
5239 1992-06-22 Richard Stallman <rms@gnu.org>
5240
5241 * doc/bison.rnh: entered into RCS
5242
5243 1992-04-20 David J. MacKenzie <djm@gnu.org>
5244
5245 * README: entered into RCS
5246
5247 1992-01-22 Richard Stallman <rms@gnu.org>
5248
5249 * src/machine.h: entered into RCS
5250
5251 1991-12-21 Richard Stallman <rms@gnu.org>
5252
5253 * src/lalr.c, src/closure.c:
5254 entered into RCS
5255
5256 1991-12-20 Richard Stallman <rms@gnu.org>
5257
5258 * src/state.h: entered into RCS
5259
5260 1991-12-18 Richard Stallman <rms@gnu.org>
5261
5262 * src/print.c, src/nullable.c, src/derives.c:
5263 entered into RCS
5264
5265 1991-11-03 David J. MacKenzie <djm@gnu.org>
5266
5267 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
5268 entered into RCS
5269
5270 1988-09-09 Richard Stallman <rms@gnu.org>
5271
5272 * src/bison.hairy: entered into RCS
5273
5274 1987-12-16 Richard Stallman <rms@gnu.org>
5275
5276 * REFERENCES: entered into RCS