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