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