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