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