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