]> git.saurik.com Git - bison.git/blame_incremental - ChangeLog
* data/yacc.c (yyparse): In the initial action, set
[bison.git] / ChangeLog
... / ...
CommitLineData
12005-07-09 Paul Eggert <eggert@cs.ucla.edu>
2
3 * data/yacc.c (yyparse): In the initial action, set
4 yylsp[0] and yyvsp[0] rather than yylloc and yylval.
5 This avoids the use of undefined variables if the initial
6 action does not set yylloc and/or yylval.
7
82005-07-07 Paul Eggert <eggert@cs.ucla.edu>
9
10 * examples/calc++/calc++-driver.cc, examples/calc++/calc++-driver.hh:
11 * examples/calc++/calc++-scanner.ll, examples/calc++/calc++.cc:
12 Remove from CVS. These files are automatically generated.
13 * examples/extexi: Clarify that this file is now part of Bison,
14 not GNU M4, and that it works with any POSIX-compatible Awk.
15 * examples/calc++/Makefile.am (run_extexi): Remove; not used.
16 ($(calc_extracted)): Renamed from $(calc_sources_extracted),
17 so that we also get calc++-parser.yy. Geneate it.
18 Use $(AWK), not gawk, since any conforming Awk will do.
19 Put comment before action, since older 'make' can't handle comment
20 in action.
21 $(BUILT_SOURCES): List all built sources, not just some of them.
22 $(MAINTAINERCLEANFILES): Remove *.stamp, and all built sources.
23 $($(srcdir)/calc++-parser.stamp): Work even if POSIXLY_CORRECT.
24 $($(calc_sources_generated)): Remove unnecessary test for existence
25 of target. (This had a shell syntax error anyway; a stray "x".)
26 (calc_extracted): List $(srcdir)/calc++-parser.yy, not
27 calc++-parser.yy.
28 * examples/.cvsignore, examples/calc++/.cvsignore: New files.
29
30 * bootstrap (gnulib_modules): Add gettext, now that it's no longer
31 implied by the other modules.
32
332005-07-06 Akim Demaille <akim@epita.fr>
34
35 Bind examples/calc++ to the package.
36 * examples/calc++/Makefile: Remove, replaced by...
37 * examples/calc++/Makefile.am: ... this new file.
38 * examples/calc++/test: Remove input.
39 * examples/calc++/compile: Remove.
40 * examples/Makefile.am: New.
41 * configure.ac, Makefile.am: Adjust.
42 * doc/Makefile.am (clean-local): New, for more recent texi2dvis.
43
442005-07-05 Paul Eggert <eggert@cs.ucla.edu>
45
46 * data/glr.c (yyFail): Drastically simplify; since the format argument
47 never had any % directives, we can simply pass it to yyerror.
48 (yyparse): Use "t a; a=b;" rather than "t a = b;" when a will
49 be modified later, as that is the usual style in glr.c.
50 Problems reported by Paul Hilfinger.
51
52 Rewrite GLR parser to catch more buffer overrun, storage exhaustion,
53 and size overflow errors.
54 * data/glr.c: Include <stdio.h> etc. after user prolog, not before,
55 in case the user prolog sets feature-test macros like _GNU_SOURCE.
56 (YYSIZEMAX): New macro.
57 (yystpcpy): New function, taken from yacc.c.
58 (struct yyGLRStack.yyspaceLeft): Now size_t, not int.
59 (yyinitGLRStack, yyfreeGLRstack): Remove unnecessary forward decls,
60 so that we don't have to maintain their signatures.
61 (yyFail): Check for buffer overflow, by using vsnprintf rather
62 than vsprintf. Allocate a bigger buffer if possible.
63 Report an error if buffer allocation fails.
64 (yyStackOverflow): New function.
65 (yyinitStateSet, yyinitGLRStack): Return a boolean indicating whether
66 the initialization was successful. It might fail if storage was
67 exhausted.
68 (yyexpandGLRStack): Add more checks for storage allocation failure.
69 Use yyStackOverflow to report failures.
70 (yymarkStackDeleted, yyglrShift, yyglrShiftDefer, yydoAction):
71 (yysplitStack, yyprocessOneStack, yyparse, yypstack):
72 Don't assume stack number fits in int.
73 (yysplitStack): Check for storage allocation failure.
74 (yysplitStack, yyprocessOneStack): Add pure_formals, so that we
75 can print diagnostics on storage allocation failure. All callers
76 changed.
77 (yyresolveValue): Use yybool for boolean.
78 (yyreportSyntaxError): Check for size-calculation overflow.
79 This code is taken from yacc.c.
80 (yyparse): Check for storage allocation errors when allocating
81 the initial stack.
82
832005-07-05 Akim Demaille <akim@epita.fr>
84
85 Extract calc++ from the documentation.
86 * doc/bison.texinfo (Calc++): Add the extraction marks.
87 * examples/extexi: New, from the aborted GNU Programming 2E.
88 Separate the different paragraph of a file with empty lines.
89 * examples/Makefile: Use it to extract the whole calc++ example.
90
912005-06-24 Akim Demaille <akim@epita.fr>
92
93 * doc/bison.texinfo (C++ Parser Interface): Use defcv to define
94 class typedefs.
95
962005-06-22 Akim Demaille <akim@epita.fr>
97
98 * doc/bison.texinfo (C++ Language Interface): First stab.
99 (C++ Parsers): Remove.
100
1012005-06-22 Akim Demaille <akim@epita.fr>
102
103 * data/lalr1.cc (yylex_): Honor %lex-param.
104
1052005-06-22 Akim Demaille <akim@epita.fr>
106
107 Start a set of simple examples.
108 * examples/calc++/Makefile, examples/calc++/calc++-driver.cc,
109 * examples/calc++/calc++-driver.hh,
110 * examples/calc++/calc++-parser.yy,
111 * examples/calc++/calc++-scanner.ll, examples/calc++/calc++.cc,
112 * examples/calc++/compile, examples/calc++/test: New.
113
1142005-06-09 Paul Eggert <eggert@cs.ucla.edu>
115
116 * data/yacc.c (malloc, free) [defined __cplusplus]: Wrap inside
117 extern "C" {}. This fixes a problem reported by Paul Hilfinger,
118 which stems from the 2005-05-27 patch.
119
1202005-06-06 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
121
122 * data/glr.c: Modify treatment of unused parameters to permit use
123 of g++ (which doesn't allow __attribute__ ((unused)) for parameters).
124
1252005-05-30 Paul Eggert <eggert@cs.ucla.edu>
126
127 Fix infringement on user name space reported by Janos Zoltan Szabo.
128 * data/yacc.c (yyparse): strlen -> yystrlen.
129
1302005-05-30 Akim Demaille <akim@epita.fr>
131
132 * data/lalr1.cc (_): New.
133 Translate the various messages.
134
1352005-05-27 Paul Eggert <eggert@cs.ucla.edu>
136
137 Fix infringement on user name space reported by Bruno Haible.
138 * data/yacc.c (YYSIZE_T): Define first, so that later decls can use it.
139 Prefer GCC's __SIZE_TYPE__ if available, so that we don't infringe on
140 the user's name space.
141 (alloca): Include <stdlib.h> to get it, if it's not built in.
142 (YYMALLOC, YYFREE): Define only if needed.
143 (malloc, free): Declare, but only if needed, as this infringes on
144 the user name space.
145
1462005-05-25 Paul Eggert <eggert@cs.ucla.edu>
147
148 Fix BeOS, FreeBSD, MacOS porting problems reported by Bruno Haible.
149 * lib/bitset.c (bitset_print): Don't assume size_t can be printed
150 with %d format.
151 * lib/ebitset.c (min, max): Undef before defining.
152 * lib/vbitset.c (min, max): Likewise.
153 * lib/subpipe.c (create_subpipe): Save local variables in case
154 vfork clobbers them.
155
1562005-05-24 Bruno Haible <bruno@clisp.org>
157
158 * tests/synclines.at (AT_SYNCLINES_COMPILE): Add support for the
159 error message syntax used by gcc-4.0.
160
1612005-05-23 Paul Eggert <eggert@cs.ucla.edu>
162
163 * README: Mention m4 1.4.3. Remove obsolete advice about
164 Sun Forte Developer 6 update 2, VMS, and MS-DOS.
165
166 * bootstrap: Remove workaround for problem I encountered with
167 gettext 0.14.1; it seems to be fixed now.
168
1692005-05-22 Paul Eggert <eggert@cs.ucla.edu>
170
171 * NEWS: Version 2.0a.
172
173 * src/files.c: Include "stdio-safer.h"; this fixes a typo in
174 the previous change.
175
176 Various maintainer cleanups.
177 * .cvsignore: Add a.exe, a.out, b.out,, conf[0-9]*, confdefs*,
178 conftest*, for benefit of CVS commands run at the same time as
179 "configure". Add build-aux, since "bootstrap" now creates it and
180 its subfiles.
181 * Makefile.cfg (move_if_change): Remove.
182 * Makefile.maint: Remove the update stuff; we now use "bootstrap".
183 (ftp-gnu, www-gnu, move_if_change, local_updates, update):
184 (po_repo, do-po-update, po-update, wget_files, get-targets):
185 (config.guess-url_prefix, config.sub-url_prefix):
186 (ansi2knr.c-url_prefix, texinfo.tex-url_prefix):
187 (standards.texi-url_prefix, make-stds.texi-url_prefix, taget, url):
188 ($(get-targets), cvs-files, automake_repo, wget-update, cvs-update):
189 Remove.
190 * configure.ac (AC_CONFIG_AUX_DIR): Change from config to build-aux;
191 this is now the recommended name.
192 * config/.cvsignore: Remove config.guess, config.rpath, config.sub,
193 depcomp, install-sh, mdate-sh, missing, mkinstalldirs, texinfo.tex,
194 ylwrap. These files now go into build-aux.
195 * config/move-if-change: Remove.
196 * config/prev-version.txt: Bump from 1.75 to 2.0.
197
198 * bootstrap: Add stdio-safer, unistd-safer modules.
199 Remove m4/glibc2.m4 (introduced by latest gnulib, but
200 we don't need it).
201 * lib/.cvsignore: Add dup-safer.c, fd-safer.c,
202 fopen-safer.c, stdio-safer.h, unistd-safer.h.
203 * lib/subpipe.c: Include "unistd-safer.h".
204 (create_subpipe): Make sure all the newly-created
205 file descriptors are > 2, so that diagnostics don't
206 get sent down them (which might cause Bison to hang, in theory).
207 * m4/.cvsignore: Add stdio-safer.m4, unistd-safer.m4.
208 * src/files.c (xfopen): Use fopen_safer, not fopen.
209
210 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Port
211 yesterday's yacc.c fix.
212
2132005-05-21 Paul Eggert <eggert@cs.ucla.edu>
214
215 * data/glr.c, data/lalr1.cc: Update copyright date.
216
217 Fix a destructor bug reported by Wolfgang Spraul in
218 <http://lists.gnu.org/archive/html/bug-bison/2005-05/msg00042.html>.
219 * data/yacc.c (yyabortlab): Don't call destructor, and
220 don't set yychar to EMPTY.
221 (yyoverflowlab): Don't call destructor.
222 (yyreturn): Call destructor, if yychar is neither YYEOF nor YYEMPTY.
223 * tests/calc.at (AT_CHECK_CALC): Expect one fewer output lines,
224 since we no longer output the message "discarding lookahead token
225 end of input ()".
226
2272005-05-20 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
228
229 * data/glr.c (YY_SYMBOL_PRINT): Don't print newline at end to
230 fix a small glitch in debugging output.
231 (yyprocessOneStack, yyrecoverSyntaxError, yyparse): Print newline
232 after YY_SYMBOL_PRINT where needed.
233
234 (struct yyGLRState): Add some comments.
235 (struct yySemanticOption): Add some comments.
236 (union yyGLRStackItem): Add comment.
237
238 (yymergeOptionSets): Correct this to properly perform the union,
239 avoiding infinite reported by Michael Rosien.
240 Update comment.
241
242 * tests/glr-regression.at: Add test for GLR merging error reported
243 by M. Rosien.
244
2452005-05-13 Paul Eggert <eggert@cs.ucla.edu>
246
247 * COPYING, ChangeLog, GNUmakefile, HACKING, Makefile.am,
248 Makefile.cfg, Makefile.maint, NEWS, README, README-alpha,
249 README-cvs, TODO, bootstrap, configure.ac, data/Makefile.am,
250 data/README, data/c.m4, data/glr.c, data/lalr1.cc, data/yacc.c,
251 data/m4sugar/m4sugar.m4, doc/Makefile.am, doc/bison.texinfo,
252 doc/fdl.texi, doc/gpl.texi, doc/refcard.tex, lib/Makefile.am,
253 lib/abitset.c, lib/abitset.h, lib/bbitset.h, lib/bitset.c,
254 lib/bitset.h, lib/bitset_stats.c, lib/bitset_stats.h,
255 lib/bitsetv-print.c, lib/bitsetv-print.h, lib/bitsetv.c,
256 lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/get-errno.c,
257 lib/get-errno.h, lib/lbitset.c, lib/lbitset.h, lib/libiberty.h,
258 lib/main.c, lib/subpipe.c, lib/subpipe.h, lib/timevar.c,
259 lib/timevar.def, lib/timevar.h, lib/vbitset.c, lib/vbitset.h,
260 lib/yyerror.c, m4/cxx.m4, m4/m4.m4, m4/subpipe.m4, m4/timevar.m4,
261 m4/warning.m4, src/LR0.c, src/LR0.h, src/Makefile.am, src/assoc.c,
262 src/assoc.h, src/closure.c, src/closure.h, src/complain.c,
263 src/complain.h, src/conflicts.c, src/conflicts.h, src/derives.c,
264 src/derives.h, src/files.c, src/files.h, src/getargs.c,
265 src/getargs.h, src/gram.c, src/gram.h, src/lalr.c, src/lalr.h,
266 src/location.c, src/location.h, src/main.c, src/muscle_tab.c,
267 src/muscle_tab.h, src/nullable.c, src/nullable.h, src/output.c,
268 src/output.h, src/parse-gram.c, src/parse-gram.h,
269 src/parse-gram.y, src/print.c, src/print.h, src/print_graph.c,
270 src/print_graph.h, src/reader.c, src/reader.h, src/reduce.c,
271 src/reduce.h, src/relation.c, src/relation.h, src/scan-gram.l,
272 src/scan-skel.l, src/state.c, src/state.h, src/symlist.c,
273 src/symlist.h, src/symtab.c, src/symtab.h, src/system.h,
274 src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h,
275 src/vcg.c, src/vcg.h, src/vcg_defaults.h, tests/Makefile.am,
276 tests/actions.at, tests/c++.at, tests/calc.at, tests/conflicts.at,
277 tests/cxx-type.at, tests/existing.at, tests/glr-regression.at,
278 tests/headers.at, tests/input.at, tests/local.at, tests/output.at,
279 tests/reduce.at, tests/regression.at, tests/sets.at,
280 tests/synclines.at, tests/testsuite.at, tests/torture.at:
281 Update FSF postal mail address.
282
2832005-05-11 Paul Eggert <eggert@cs.ucla.edu>
284
285 * tests/local.at (AT_COMPILE_CXX): Treat LDFLAGS like AT_COMPILE does.
286 Problem reported by Ralf Menzel.
287
2882005-05-01 Paul Eggert <eggert@cs.ucla.edu>
289
290 * tests/actions.at: Test that stack overflow invokes destructors.
291 From Marcus Holland-Moritz.
292 * data/yacc.c (yyerrlab): Move the code that destroys the stack
293 from here....
294 (yyreturn): to here. That way, destructors are called properly
295 even if the stack overflows, or the user calls YYACCEPT or
296 YYABORT. Stack-overflow problem reported by Marcus Holland-Moritz.
297 (yyoverflowlab): Destroy the lookahead.
298
2992005-04-24 Paul Eggert <eggert@cs.ucla.edu>
300
301 * data/yacc.c (YYSTACK_ALLOC_MAXIMUM): Add more-descriptive comment.
302
3032005-04-17 Paul Eggert <eggert@cs.ucla.edu>
304
305 * NEWS: Bison-generated C parsers no longer quote literal strings
306 associated with tokens.
307 * src/output.c (prepare_symbols): Don't escape strings,
308 since users don't want to see C escapes.
309 * tests/calc.at (AT_CHECK_CALC): Adjust to lack of quotes
310 in diagnostics.
311 * tests/input.at (Torturing the Scanner): Likewise.
312 * tests/regression.at (Token definitions, Web2c Actions): Likewise.
313
3142005-04-16 Paul Eggert <eggert@cs.ucla.edu>
315
316 * tests/torture.at (AT_INCREASE_DATA_SIZE): Skip the test if
317 the data size is known to be too small and we can't increase it.
318 This works around an HP-UX 11.00 glitch reported by Andrew Benham.
319
3202005-04-15 Paul Eggert <eggert@cs.ucla.edu>
321
322 * src/parse-gram.y: Include quotearg.h.
323 (string_as_id): Quote $1 before using it as a key, since the
324 lexer no longer quotes it for us.
325 (string_content): Don't strip quotes, since lexer no longer
326 quotes it for us.
327 * src/scan-gram.l: Include quotearg.h.
328 ("\""): Omit quote.
329 ("'"<SC_ESCAPED_CHARACTER>): Quote symbol before using it as
330 a key, since the rest of the lexer doesn't quote it.
331 * src/symtab.c (symbol_get): Don't quote symbol; caller does it now.
332 * tests/regression.at (Token definitions): Check for backslashes
333 in token strings.
334
335 * data/yacc.c (YYSTACK_ALLOC_MAXIMUM): New macro.
336 (YYSIZE_T): Define to unsigned long int when using an older compiler.
337 (yyparse): Revamp code to generate long syntax error message, to
338 make it easier to translate, and to avoid problems with arithmetic
339 overflow. Change "virtual memory" to "memory" in diagnostic, since
340 we don't know whether the memory is virtual.
341
3422005-04-13 Paul Eggert <eggert@cs.ucla.edu>
343
344 * NEWS: Bison-generated C parsers now use the _ macro to
345 translate strings.
346 * data/yacc.c (_) [!defined _]: New macro.
347 All English strings wrapped inside this macro.
348 * doc/bison.texinfo (Bison Parser): Document _.
349 * po/POTFILES.in: Include src/parse-gram.c, since it now
350 includes translateable strings that parse-gram.y doesn't.
351
3522005-04-12 Paul Eggert <eggert@cs.ucla.edu>
353
354 * src/symtab.c (symbol_make_alias): Call symbol_type_set,
355 reverting the 2004-10-11 change to this function.
356 (symbol_check_alias_consistency): Don't call symbol_type_set
357 if the type name is already correct.
358 * tests/input.at (Typed symbol aliases): New test, from Tim Van Holder.
359
3602005-03-25 Paul Eggert <eggert@cs.ucla.edu>
361
362 * tests/regression.at (Token definitions): Don't use a token named
363 c, as that generates a "#define c ..." that runs afoul of buggy
364 stdlib.h that uses the identifier c as a member of struct
365 drand48_data. Problem reported by Horst Wente.
366
3672005-03-21 Paul Eggert <eggert@cs.ucla.edu>
368
369 * bootstrap: Change translation URL from
370 http://www2.iro.umontreal.ca/~gnutra/po/maint/bison/ to
371 http://www.iro.umontreal.ca/translation/maint/bison/ to avoid
372 redirection glitches. Problem reported by twlevo@xs4all.nl.
373
3742005-03-20 Paul Eggert <eggert@cs.ucla.edu>
375
376 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Don't put options
377 after operands; POSIX says this isn't portable for the c99 command.
378
3792005-03-18 Paul Eggert <eggert@cs.ucla.edu>
380
381 * tests/glr-regression.at (glr-regr2a.y): Try to dump core
382 immediately if a data overrun has occurred; this may help us track
383 down what may be a spurious failure on MacOS.
384
3852005-03-17 Paul Eggert <eggert@cs.ucla.edu>
386
387 Respond to problems reported by twlevo@xs4all.nl.
388
389 * bootstrap: Use "trap - 0" rather than the unportable "trap 0".
390
391 * src/vcg.h: Comment fix.
392 * src/vcg_defaults.h: Parenthesize macro bodies to make them safe.
393 (G_CMAX): Change to -1 instead of INT_MAX.
394
395 * data/yacc.c (yyparse): Omit spaces before #line.
396
3972005-03-15 Paul Eggert <eggert@cs.ucla.edu>
398
399 * src/tables.c (state_number_to_vector_number): Put it inside an
400 "#if 0", since it's not currently used. Problem reported by
401 Roland McGrath.
402
4032005-03-06 Paul Eggert <eggert@cs.ucla.edu>
404
405 * src/output.c (escaped_output): Renamed from
406 escaped_file_name_output, since we now use it for symbol tags as
407 well. All uses changed.
408 (symbol_destructors_output, symbol_printers_output):
409 Escape symbol tags too.
410 Problem reported by Matyas Forstner in
411 <http://lists.gnu.org/archive/html/bug-bison/2005-03/msg00009.html>.
412
413 * src/muscle_tab.c (muscle_code_grow): Don't quote numbers; it's
414 not needed.
415 * src/output.c (user_actions_output, token_definitions_output,
416 symbol_destructors_output, symbol_printers_output): Likewise.
417 * src/reader.c (prologue_augment): Likewise.
418 * src/scan-gram.l (handle_action_dollar, handle_action_at): Likewise.
419
420 * src/vcg.c (output_edge): Don't quote linestyle arg.
421 Problem reported by twlevo@xs4all.nl.
422
4232005-02-28 Paul Eggert <eggert@cs.ucla.edu>
424
425 * doc/bison.texinfo (Semantic Tokens): Fix scoping problem in
426 example, reported by Derek M Jones. Also, make the example even
427 more outrageous, to better illustrate how bad the problem is.
428
4292005-02-24 Paul Eggert <eggert@cs.ucla.edu>
430
431 * doc/bison.texinfo (Mfcalc Symtab): Correct the prototype for
432 putsym. Typo reported by Sebastian Piping.
433
4342005-02-23 Paul Eggert <eggert@cs.ucla.edu>
435
436 * doc/bison.texinfo (Language and Grammar): some -> same
437 (Epilogue): int he -> in the
438 Typos reported by Sebastian Piping via Justin Pence.
439
4402005-02-07 Paul Eggert <eggert@cs.ucla.edu>
441
442 * tests/glr-regression.at (Improper handling of embedded actions
443 and dollar(-N) in GLR parsers): Renamed from "Improper handling of
444 embedded actions and $-N in GLR parsers", work around an Autoconf bug
445 with dollar signs in test names.
446 * tests/input.at (Invalid dollar-n): Renamed from "Invalid \$n",
447 for a similar reason.
448
4492005-01-28 Paul Eggert <eggert@cs.ucla.edu>
450
451 * src/vcg.c (output_graph): G_VIEW -> normal_view in case someone
452 wants to redefine G_VIEW.
453
4542005-01-27 Paul Eggert <eggert@cs.ucla.edu>
455
456 * src/vcg.c (get_view_str): Remove case for normal_view.
457 Problem reported by twlevo@xs4all.nl.
458
4592005-01-24 Paul Eggert <eggert@cs.ucla.edu>
460
461 * configure.ac (O0CFLAGS, O0CXXFLAGS): Fix quoting bug.
462 Problem reported by twlevo@xs4all.nl.
463
464 * doc/bison.texinfo: Change @dircategory from "GNU programming
465 tools" to "Software development". Requested by Richard Stallman
466 via Karl Berry.
467
4682005-01-23 Paul Eggert <eggert@cs.ucla.edu>
469
470 * tests/c++.at (AT_CHECK_DOXYGEN): Don't use options after operands.
471 Problem reported by twlevo@xs4all.nl.
472
4732005-01-21 Paul Eggert <eggert@cs.ucla.edu>
474
475 * data/yacc.c (YYCOPY, yystpcpy, yyparse): Remove "register"
476 keyword; it's not needed with modern compilers, and it doesn't
477 affect correctness with older compilers. Suggested by
478 twlevo@xs4all.nl.
479
4802005-01-17 Paul Eggert <eggert@cs.ucla.edu>
481
482 * data/glr.c (yyuserAction): Add "default: break;" case to pacify
483 gcc -Wswitch-default.
484 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
485 * data/yacc.c (yyparse): Likewise.
486
4872005-01-12 Paul Eggert <eggert@cs.ucla.edu>
488
489 * src/system.h (OUTPUT_EXT, TAB_EXT): Define only if not defined
490 already. Let config.h define any nonstandard values.
491
4922005-01-10 Paul Eggert <eggert@cs.ucla.edu>
493
494 * tests/calc.at (_AT_DATA_CALC_Y): Use alarm (100), not alarm (10),
495 for the benefit of slower hosts. Problem reported by
496 Nelson H. F. Beebe.
497
4982005-01-07 Paul Eggert <eggert@cs.ucla.edu>
499
500 * data/yacc.c (yyparse): Pacify non-GCC compilers about yyerrorlab
501 being defined and not used.
502 * data/lalr1.cc (yyparse): Likewise.
503 Use "if (false)" rather than "if (0)".
504
5052005-01-05 Paul Eggert <eggert@cs.ucla.edu>
506
507 * TODO: Mention that we should allow NUL bytes in tokens.
508
5092005-01-02 Paul Eggert <eggert@cs.ucla.edu>
510
511 * src/scan-skel.l (<<EOF>>): Don't close standard output.
512 Problem reported by Hans Aberg.
513
5142005-01-01 Paul Eggert <eggert@cs.ucla.edu>
515
516 * src/getargs.c (version): Happy new year; update overall
517 program copyright date from 2004 to 2005.
518
519 * src/scan-skel.l ("@output ".*\n): Don't close standard output.
520 Problem reported by Hans Aberg.
521 * tests/output.at (AT_CHECK_OUTPUT): New arg SHELLIO.
522 (Output file names.): Add a test for the case when standard output
523 is closed.
524
5252004-12-26 Paul Eggert <eggert@cs.ucla.edu>
526
527 * doc/bison.texinfo (@copying): Update FDL version number to 1.2,
528 to fix an oversight in the Bison 2.0 manual.
529
5302004-12-25 Paul Eggert <eggert@cs.ucla.edu>
531
532 * NEWS: Version 2.0. Reformat the existing news items since
533 1.875, so that related items are grouped together.
534 * configure.ac (AC_INIT): Bump version to 2.0.
535 * src/parse-gram.c, src/parse-gram.h: Regenerate with 2.0.
536
537 * tests/torture.at (Exploding the Stack Size with Alloca): Set
538 YYSTACK_USE_ALLOCA to 1 if __GNUC__ or alloca are defined;
539 otherwise, we're not testing alloca. Unfortunately there's no
540 simple way to consult HAVE_ALLOCA here.
541
542 * data/lalr1.cc (yydestruct_): Pacify unused variable warning
543 for yymsg, too.
544
545 * src/LR0.c (new_itemsets): Use memset rather than zeroing by
546 hand. This avoids a warning about comparing int to size_t when
547 GCC warnings are enabled.
548
5492004-12-22 Paul Eggert <eggert@cs.ucla.edu>
550
551 * NEWS: Bison-generated parsers no longer default to using the
552 alloca function (when available) to extend the parser stack, due
553 to widespread problems in unchecked stack-overflow detection.
554 * data/glr.c (YYMAXDEPTH): Remove undef when zero. It's the user's
555 responsibility to set it to a positive value. This lets the user
556 specify a value that is not a preprocessor constant.
557 * data/yacc.c (YYMAXDEPTH): Likewise.
558 (YYSTACK_ALLOC): Define only if YYSTACK_USE_ALLOCA is nonzero.
559 * doc/bison.texinfo (Stack Overflow): YYMAXDEPTH no longer needs
560 to be a compile-time constant. However, explain the constraints on it.
561 Also, explain the constraints on YYINITDEPTH.
562 (Table of Symbols): Explain that alloca is no longer the default.
563 Explain the user's responsibility if they define YYSTACK_USE_ALLOCA
564 to 1.
565
566 * doc/bison.texinfo (Location Default Action): Mention that n must
567 be zero when k is zero. Suggested by Frank Heckenbach.
568
5692004-12-22 Akim Demaille <akim@epita.fr>
570
571 * data/lalr1.cc (parser::token_number_type, parser::rhs_number_type)
572 (parser::state_type, parser::semantic_type, parser::location_type):
573 Private, not public.
574 (parser::parse): Return ints, not bool.
575 Returning a bool introduces a problem: 0 corresponds to false, and
576 it seems weird to return false on success. Returning true changes
577 the conventions for yyparse.
578 Alternatively we could return void and send an exception.
579 There is no clear consensus (yet?).
580 (state_stack, semantic_stack, location_stack): Rename as...
581 (state_stack_type, semantic_stack_type, location_stack_type): these.
582 Private, not public.
583 * tests/c++.at: New.
584 * tests/testsuite.at, tests/Makefile.am: Adjust.
585
5862004-12-21 Akim Demaille <akim@epita.fr>
587
588 * data/lalr1.cc (parser::parse): Return a bool instead of an int.
589
5902004-12-21 Akim Demaille <akim@epita.fr>
591
592 Don't impose std::string for filenames.
593
594 * data/lalr1.cc (b4_filename_type): New.
595 (position::filename): Use it.
596 (parser.hh): Move the inclusion of stack.hh and location.hh below
597 the user code, so that needed headers for the filename type can be
598 included first.
599 Forward declare them before the user code.
600 * tests/Makefile.am (check-local, installcheck-local): Pass
601 TESTSUITEFLAGS to the TESTSUITE.
602
6032004-12-20 Akim Demaille <akim@epita.fr>
604
605 Use more STL like names: my_class instead of MyClass.
606
607 * data/lalr1.cc (LocationStack, LocationType, RhsNumberType)
608 (SemanticStack, SemanticType, StateStack, StateType)
609 (TokenNumberType, Stack, Slice, Traits, Parser::location)
610 (Parser::value): Rename as...
611 (location_stack, location_type, rhs_number_type, semantic_stack)
612 (semantic_type, state_stack, state_type, token_number_type, stack)
613 (slice, traits, parser::yylloc, parser::yylval): these.
614
615 * tests/calc.at, tests/regression.at, tests/actions.at: Adjust.
616
6172004-12-19 Paul Eggert <eggert@cs.ucla.edu>
618
619 * data/glr.c (YYLLOC_DEFAULT): Use GNU spacing conventions.
620 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
621
6222004-12-17 Paul Eggert <eggert@cs.ucla.edu>
623
624 Remove uses of 'short int' and 'unsigned short int'. This raises
625 some arbitrary limits. It uses more memory but nowadays that's
626 not much of an issue.
627
628 This change does not affect the generated parsers; that's a different
629 task, as some users will want to conserve memory there.
630
631 Ideally we should use size_t to represent all object counts, and
632 something like ptrdiff_t to represent signed differences of object
633 counts; but that will require more code-cleanup than I have the
634 time to do right now.
635
636 * src/LR0.c (allocate_itemsets, new_itemsets, save_reductions):
637 Use size_t, not int or short int, to count objects.
638 * src/closure.c (nritemset, closure): Likewise.
639 * src/closure.h (nritemset, closure): Likewise.
640 * src/nullable.c (nullable_compute): Likewise.
641 * src/print.c (print_core): Likewise.
642 * src/print_graph.c (print_core): Likewise.
643 * src/state.c (state_compare, state_hash): Likewise.
644 * src/state.h (struct state): Likewise.
645 * src/tables.c (default_goto, goto_actions): Likewise.
646
647 * src/gram.h (rule_number, rule): Use int, not short int.
648 * src/output.c (prepare_rules): Likewise.
649 * src/state.h (state_number, STATE_NUMBER_MAXIMUM, transitions,
650 errs, reductions): Likewise.
651 * src/symtab.h (symbol_number, SYMBOL_NUMBER_MAXIMUM, struct symbol):
652 Likewise.
653 * src/tables.c (vector_number, tally, action_number,
654 ACTION_NUMBER_MINIMUM): Likewise.
655 * src/output.c (muscle_insert_short_int_table): Remove.
656
6572004-12-17 Akim Demaille <akim@epita.fr>
658
659 * data/lalr1.cc: Extensive Doxygenation.
660 (error_): Rename as...
661 (error): this, since it is visible to the user.
662 Adjust callers.
663 (Parser::message): Now an automatic variable from...
664 (Parser::yyreport_syntax_error_): here.
665 * tests/actions.at, tests/calc.at, tests/regression.at: Adjust to
666 Parser::error.
667 * tests/input.at: Escape $.
668
6692004-12-16 Paul Eggert <eggert@cs.ucla.edu>
670
671 * data/glr.c (b4_lhs_value, b4_rhs_value, b4_rhs-location):
672 Parenthesize rhs to avoid obscure problems with mistakes like
673 "foo$$bar = foo$1bar;". Problem reported by twlevo at xs4all.
674 * data/lalr1.cc (b4_lhs_value, b4_rhs_value, b4_lhs_location,
675 b4_rhs_location): Likewise.
676 * data/yacc.c (b4_lhs_value, b4_rhs_value, b4_lhs_location,
677 b4_rhs_location): Likewise.
678
6792004-12-16 Akim Demaille <akim@epita.fr>
680
681 * data/lalr1.cc (yyreport_syntax_error_): Catch up with glr.c and
682 yacc.c: be sure to stay within yycheck_.
683 * tests/actions.at: Re-enable C++ tests.
684
6852004-12-16 Akim Demaille <akim@epita.fr>
686
687 * src/print_graph.c (print_graph): Remove layoutalgorithm uses for
688 real.
689
6902004-12-16 Akim Demaille <akim@epita.fr>
691
692 Use #define to handle the %name-prefix.
693
694 * data/glr.c, data/yacc.c: Comment changes.
695 * data/lalr1.cc (yylex): Use #define to select the name of yylex,
696 so that one can refer to yylex in the parser file, and have it
697 renamed, as is the case with other skeletons.
698
6992004-12-16 Akim Demaille <akim@epita.fr>
700
701 Move lalr1.cc internals into yy*.
702
703 * data/lalr1.cc (semantic_stack_, location_stack_, state_stack_)
704 (semantic_stack_, location_stack_, pact_, pact_ninf_, defact_)
705 (pgoto_, defgoto_, table_, table_ninf_, check_, stos_, r1_, r2_)
706 (name_, rhs_, prhs_, rline_, token_number_, eof_, last_, nnts_)
707 (empty_, final_, terror_, errcode_, ntokens_)
708 (user_token_number_max_, undef_token_, n_, len_, state_, nerrs_)
709 (looka_, ilooka_, error_range_, nerrs_):
710 Rename as...
711 (yysemantic_stack_, yylocation_stack_, yystate_stack_)
712 (yysemantic_stack_, yylocation_stack_, yypact_, yypact_ninf_)
713 (yydefact_, yypgoto_, yydefgoto_, yytable_, yytable_ninf_)
714 (yycheck_, yystos_, yyr1_, yyr2_, yyname_, yyrhs_, yyprhs_)
715 (yyrline_, yytoken_number_, yyeof_, yylast_, yynnts_, yyempty_)
716 (yyfinal_, yyterror_, yyerrcode_, yyntokens_)
717 (yyuser_token_number_max_, yyundef_token_, yyn_, yylen_, yystate_)
718 (yynerrs_, yylooka_, yyilooka_, yyerror_range_, yynerrs_):
719 these.
720
7212004-12-15 Paul Eggert <eggert@cs.ucla.edu>
722
723 Fix some problems reported by twlevo at xs4all.
724 * src/symtab.c (symbol_new): Report an error if the input grammar
725 contains too many symbols. This is better than calling abort() later.
726 * src/vcg.h (enum layoutalgorithm): Remove. All uses removed.
727 (struct node, struct graph):
728 Rename member expand to stretch. All uses changed.
729 (struct graph): Remove member layoutalgorithm. All uses removed.
730 * src/vcg.c (get_layoutalgorithm_str): Remove. All uses removed.
731 * src/vcg_defaults.h (G_STRETCH): Renamed from G_EXPAND.
732 All uses changed.
733 (N_STRETCH): Rename from N_EXPAND. All uses changed.
734
7352004-12-15 Akim Demaille <akim@epita.fr>
736
737 * data/lalr1.cc: Normalize /** \brief ... */ to ///.
738 Add more Doxygen comments.
739 (symprint_, stack_print_, reduce_print_, destruct_, pop)
740 (report_syntax_error_, translate_): Rename as...
741 (yysymprint_, yystack_print_, yyreduce_print_, yydestruct_)
742 (yypop_, yyreport_syntax_error_, yytranslate_): this.
743
7442004-12-15 Akim Demaille <akim@epita.fr>
745
746 * data/lalr1.cc (lex_): Rename as...
747 (yylex_): this.
748 Move the trace here.
749 Take the %name-prefix into account.
750 Reported by Alexandre Duret-Lutz.
751
7522004-12-15 Akim Demaille <akim@epita.fr>
753
754 Simplify the C++ parser constructor.
755
756 * data/lalr1.cc (debug_): Rename as...
757 (yydebug_): so that the parser's internals are always in the yy*
758 pseudo namespace.
759 Adjust uses.
760 (b4_parse_param_decl): Remove the leading comma as it is now only
761 called as unique argument list.
762 (Parser::Parser): Remove the constructor accepting a location and
763 an initial debugging level.
764 Remove from the other ctor the argument for the debugging level.
765 (debug_level_type, debug_level, set_debug_level): New.
766
767 * tests/actions.at, tests/calc.at, tests/regression.at: Adjust
768 constructor calls.
769
7702004-12-15 Akim Demaille <akim@epita.fr>
771
772 Remove b4_root related material: failure experiment
773 (which goal was to allow to derive from a class).
774
775 * data/lalr1.cc (b4_root, b4_param, b4_constructor): Remove
776 definitions and uses.
777
7782004-12-14 Paul Eggert <eggert@cs.ucla.edu>
779
780 * data/glr.c (struct yyGLRStack): yyerror_range now has 3 items,
781 not 2, since it's not portable to subtract 1 from the start of an
782 array. The new item 0 is never set or used. All uses changed.
783
784 (yyrecoverSyntaxError): Use YYLLOC_DEFAULT instead of assuming
785 the default definition of YYLLOC_DEFAULT. Problem reported
786 by Frank Heckenbach.
787
7882004-12-12 Paul Eggert <eggert@cs.ucla.edu>
789
790 * data/glr.c (YYRHSLOC): Don't have two definitions, one for
791 the normal case and one for the error case. Just use the
792 first one uniformly. Problem reported by Frank Heckenbach.
793 (YYLLOC_DEFAULT): Use the conventions of yacc.c, so we can
794 use exactly the same macro in both places.
795 (yyerror_range): Now of type yyGLRStackItem, not YYLTYPE,
796 so that the normal-case YYRHSLOC works for the error case too.
797 All uses changed.
798 * data/yacc.c (YYRHSLOC): New macro, taken from glr.c.
799 (YYLLOC_DEFAULT): Use the same macro as glr.c.
800 * doc/bison.texinfo (Location Default Action): Don't claim that
801 we have an array of locations. Use the same macro for both glr
802 and lalr parsers. Mention YYRHSLOC. Mention what happens when
803 the index is 0.
804
8052004-12-10 Paul Eggert <eggert@cs.ucla.edu>
806
807 * HACKING: Update email addresses to send announcements to.
808
809 * configure.ac (AC_INIT): Bump version to 1.875f.
810
8112004-12-10 Paul Eggert <eggert@cs.ucla.edu>
812
813 * NEWS: Version 1.875e.
814 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875e.
815
816 * src/scan-skel.l: Include "complain.h", for "fatal".
817
818 * src/relation.h (relation_print, relation_digraph):
819 Relation sizes are of type relation_node, not size_t (this is
820 merely a doc fix, since the two types are equivalent).
821 (relation_transpose): Relation sizes are of type relation_node,
822 not int.
823 * src/relation.c: Likewise.
824 (top, infinity): Now of type relation_node, not int.
825 (traverse, relation_transpose): Use relation_node, not int.
826
827 * data/glr.c (yyuserAction, yyrecoverSyntaxError): Mark args
828 with ATTRIBUTE_UNUSED if they're not used, to avoid GCC warning.
829 (yyparse): Remove unused local introduced in 2004-10-25 patch.
830
831 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): New arg
832 specifying whether the test should be skipped. Use it tp
833 specify that the [%defines %skeleton "lalr1.cc"] tests currently
834 fail on some hosts, and should be skipped.
835
8362004-12-08 Paul Eggert <eggert@cs.ucla.edu>
837
838 * src/system.h (CALLOC, MALLOC, REALLOC): Remove. All callers
839 changed to use xcalloc, xnmalloc, xnrealloc, respectively,
840 unless otherwise specified below.
841
842 * src/LR0.c (allocate_itemsets): Use xnmalloc, not xcalloc,
843 to allocate kernel_base, kernel_items, kernel_size, since
844 they needn't be initialized to 0.
845 (allocate_storgae): Likewise, for shiftset, redset, shift_symbol.
846 * src/closure.c (new_closure): Likewise, for itemset.
847 * src/derives.c (derives_compute): Likewise, for delts, derives, q.
848 * src/lalr.c (set_goto_map): Likewise, for temp_map.
849 (initialize_F): Likewise, for reads, edge, reads[i], includes[i].
850 (build_relations): Likewise for edge, states1, includes.
851 * src/nullable.c (nullable_compute): Likewise, for squeue, relts.
852 * src/reader.c (packgram): Likewise, for ritem, rules.
853 * src/reduce.c (nonterminals_reduce): Likewise for nontermmap.
854 * src/relation.c (relation_digraph): Likewise for VERTICES.
855 (relation_transpose): Likewise for new_R, end_R.
856 * src/symtab.c (symbols_token_translations_init): Likewise for
857 token_translations.
858 * src/tables.c (save_row): Likewise for froms, tos, conflict_tos.
859 (token_actions): Likewise for yydefact, actrow, conflrow,
860 conflict_list.
861 (save_column): Likewise for froms[symno], tos[symno].
862 (goto_actions): Likewise for state_count.
863 (pack_table): Likewise for base, pos, check.
864 (tables_generate): Likewise for width.
865
866 * src/LR0.c (set_states): Don't reuse kernel_size and kernel_base
867 for initial core. Just have a separate core, so we needn't worry
868 about whether kernel_size and kernel_base are initialized.
869
870 * src/LR0.c (shift_symbol, redset, shiftset, kernel_base,
871 kernel_size, kernel_items): Remove unnecessary initialization.
872 * src/conflicts.c (conflicts): Likewise.
873 * src/derives.c (derives): Likewise.
874 * src/muscle_tablc (muscle_insert): Likewise.
875 * src/relation.c (relation_digraph): Likewise.
876 * src/tables.c (froms, tos, conflict_tos, tally, width, actrow, order,
877 conflrow, conflict_table, conflict_list, table, check):
878 Likewise.
879
880 * src/closure.c (new_closure): Arg is of type unsigned int, not int.
881 This is because all callers pass unsigned int.
882 * src/closure.h (new_closure): Likewise.
883
884 * src/lalr.c (initialize_F): Initialize reads[i] in all cases.
885 (build_relations): Initialize includes[i] in all cases.
886 * src/reader.c (packgram): Always initialize rules[ruleno].prec
887 and rules[ruleno].precsym. Initialize members in order.
888 * src/relation.c (relation_transpose): Always initialize new_R[i]
889 and end_R[i].
890 * src/table.c (conflict_row): Initialize 0 at end of conflict_list.
891
892 * src/output.c (prepare_actions): Pass 0 instead of conflict_list[0];
893 conflict_list[0] was always 0, but now it isn't initialized.
894
895 * src/table.c (table_grow): When conflict_table grew, the grown
896 area wasn't cleared. Fix this.
897
898 * lib/.cvsignore: Add strdup.c, strdup.h.
899 * m4/.cvsignore: Add strdup.m4.
900
9012004-12-07 Paul Eggert <eggert@cs.ucla.edu>
902
903 * src/lalr.h (GOTO_NUMBER_MAXIMUM): New macro.
904 * src/lalr.c (set_goto_map): Don't allow ngotos to equal
905 GOTO_NUMBER_MAXIMUM, since we occasionally compute
906 ngotos + 1 without checking for overflow.
907 (build_relations): Use END_NODE, not -1, to denote end of edges.
908 * src/lalr.c (set_goto_map, map_goto, initialize_F, add_loopback_edge,
909 build_relations): Use goto_number, not int, for goto numbers.
910 * src/tables.c (save_column, default_goto): Likewise.
911
9122004-11-23 Akim Demaille <akim@epita.fr>
913
914 * data/lalr1.cc (YYSTYPE): Define it as is done for C, instead
915 of #defining from yystype.
916 Don't typedef yystype, C++ does not need it.
917 This lets it possible to forward declare it as union.
918
9192004-11-23 Paul Eggert <eggert@cs.ucla.edu>
920
921 * bootstrap (gnulib_modules): Add extensions.
922 Problem reported by Jim Meyering.
923
9242004-11-22 Paul Eggert <eggert@cs.ucla.edu>
925
926 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c,
927 src/lalr.c, src/nullable.c, src/relation.c, src/scan-skel.l,
928 src/system.h, src/tables.c: XFREE -> free, to accommodate
929 recent change to gnulib xalloc.h.
930 Problem reported by Jim Meyering.
931
9322004-11-17 Akim Demaille <akim@epita.fr>
933
934 * data/lalr1.cc (symprint_): Use cdebug_ to avoid warnings.
935
9362004-10-28 Akim Demaille <akim@epita.fr>,
937 Alexandre Duret-Lutz <adl@gnu.org>
938
939 * data/lalr1.cc (Parser::yycdebug_): New, a pointer, to allow
940 changes.
941 (YYCDEBUG): Adjust.
942 Use it instead of cdebug_.
943 (Parser::debug_stream, Parser::set_debug_stream): New.
944 (Parser::symprint_): Define cdebug_ for temporary backward
945 compatibility.
946 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use
947 debug_stream ().
948
9492004-11-17 Akim Demaille <akim@epita.fr>
950
951 * data/lalr1.cc (Parser:print_): Remove, use %printer instead.
952 * tests/regression.at (_AT_DATA_DANCER_Y): Adjust.
953 * tests/calc.at (_AT_DATA_CALC_Y): Ditto.
954 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
955
9562004-10-27 Paul Eggert <eggert@cs.ucla.edu>
957
958 * data/glr.c (yyloc_default): Remove; not used.
959 Problem reported by Frank Heckenbach.
960
9612004-10-25 Akim Demaille <akim@epita.fr>
962
963 * data/glr.c (YYRHSLOC): Move its definition next to its uses.
964 Introduce another definition to address simple location arrays.
965 (yyGLRStack): New member: yyerror_range.
966 (yyrecoverSyntaxError, yyparse): Update it.
967 (yyrecoverSyntaxError): Use it when shifting the error token to
968 have an accurate range, equivalent to the one computed by both
969 yacc.c and lalr1.cc.
970 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Change its yylex so
971 that column numbers start at column 0, as per GNU Coding
972 Standards, the others tests, and the doc.
973 (_AT_RESOLVED_GLR_OUTPUT_WITH_LOC, _AT_AMBIG_GLR_OUTPUT_WITH_LOC):
974 Adjust to the above change (first column is 0).
975 And adjust the location of the "<error>", now covering the whole
976 line.
977
9782004-10-22 Akim Demaille <akim@epita.fr>
979 and Paul Eggert <eggert@cs.ucla.edu>
980
981 Remove some arbitrary limits on goto numbers and relations.
982 * src/lalr.c (goto_map, ngotos, from_state, to_state): Omit
983 initial values, since they're never used.
984 (set_goto_map): ngotos is now unsigned, so test for overflow
985 by seeing whether it wraps around to zero.
986 * src/lalr.h (goto_number): Now size_t, not short int.
987 (GOTO_NUMBER_MAXIMUM): Remove.
988 * src/relation.c (relation_print, traverse, relation_transpose):
989 Check for END_NODE rather than looking at sign.
990 * src/relation.h (END_NODE): New macro.
991 (relation_node): Now size_t, not short int.
992
9932004-10-22 Paul Eggert <eggert@cs.ucla.edu>
994
995 * doc/bison.texinfo (Language and Grammar): In example, "int" is a
996 keyword, not an identifier. Problem reported by Baron Schwartz in
997 <http://lists.gnu.org/archive/html/bug-bison/2004-10/msg00017.html>.
998
9992004-10-11 Akim Demaille <akim@epita.fr>
1000
1001 * src/symtab.c (symbol_check_alias_consistency): Also check
1002 type names, destructors, and printers.
1003 Reported by Alexandre Duret-Lutz.
1004 Recode the handling of associativity and precedence in terms
1005 of symbol_precedence_set.
1006 Accept no redeclaration at all, not even equal to the previous
1007 value.
1008 (redeclaration): New.
1009 Use it to factor redeclaration complaints.
1010 (symbol_make_alias): Don't set the type of the alias, let
1011 symbol_check_alias_consistency do it as for other features.
1012 * src/symtab.h (symbol): Add new member prec_location, and
1013 type_location.
1014 * src/symtab.c (symbol_precedence_set, symbol_type_set): Set them.
1015 * tests/input.at (Incompatible Aliases): New.
1016
10172004-10-09 Paul Eggert <eggert@cs.ucla.edu>
1018
1019 .cvsignore fixes to accommodate gnulib changes,
1020 and the practice of naming build directories "_build".
1021 * .cvsignore: Add "_*". Sort.
1022 * lib/.cvsignore: Add getopt_.h, xalloc-die.c.
1023 * m4/.cvsignore: Add "*_gl.m4".
1024
10252004-10-06 Akim Demaille <akim@epita.fr>
1026
1027 * src/parse-gram.y (add_param): Fix the truncation of trailing
1028 spaces.
1029
10302004-10-05 Akim Demaille <akim@epita.fr>
1031
1032 In Bison 1.875's yacc.c, YYLLOC_DEFAULT was called regardless
1033 whether the reducion was empty or not. This leaves room to
1034 improve the use of YYLLOC_DEFAULT in such a case.
1035 lalr1.cc is still experimental, so changing this is acceptable.
1036 And finally, there are probably not many users who changed the
1037 handling of locations in GLR, so changing is admissible too.
1038
1039 * data/glr.c, data/lalr1.cc, data/yacc.c (YYLLOC_DEFAULT): On an
1040 empty reduction, set @$ to an empty location ending the previously
1041 stacked symbol.
1042 Adjust uses to make sure the code is triggered on empty
1043 reductions.
1044 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust the
1045 expected output: empty reductions have empty locations.
1046
10472004-09-29 Akim Demaille <akim@epita.fr>
1048
1049 * data/lalr1.cc: Move towards a more standard C++ coding style
1050 for templates: Class < T > -> Class<T>.
1051
10522004-09-29 Akim Demaille <akim@epita.fr>
1053
1054 * data/lalr1.cc: Reinstall the former ctor, for sake of
1055 compatibility, but warn it will be removed.
1056 Move towards a more standard C++ coding style (i.e., type *var ->
1057 type* var).
1058
10592004-09-27 Paul Eggert <eggert@cs.ucla.edu>
1060
1061 * src/parse-gram.y (add_param): Rewrite to avoid strchr,
1062 since it's less likely to work if NULs are involved in the future.
1063
10642004-09-27 Akim Demaille <akim@epita.fr>
1065
1066 * data/yacc.c (YY_LOCATION_PRINT): Fix its default declaration.
1067
10682004-09-27 Akim Demaille <akim@epita.fr>
1069
1070 * data/lalr1.cc (b4_parse_param_decl_1): New.
1071 (b4_parse_param_decl): Use it to have different names between attribute
1072 and argument names.
1073 (b4_cc_constructor_call): Likewise.
1074
10752004-09-24 Akim Demaille <akim@epita.fr>
1076
1077 * src/parse-gram.y (add_param): Strip the leading and trailing
1078 blanks from a formal argument declaration.
1079 (YY_LOCATION_PRINT): New.
1080
10812004-09-24 Akim Demaille <akim@epita.fr>
1082
1083 * data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation
1084 after the location.
1085
10862004-09-24 Akim Demaille <akim@epita.fr>
1087
1088 * doc/bison.texinfo (Table of Symbols): Sort.
1089
10902004-09-21 Akim Demaille <akim@epita.fr>
1091
1092 * data/yacc.c, data/glr.c (b4_at_dollar, b4_dollar_dollar): Remove
1093 the useless parentheses.
1094 Suggested by Paul Eggert.
1095
10962004-09-20 Akim Demaille <akim@epita.fr>
1097
1098 Let the initial-action act on the look-ahead, and use it for the
1099 "initial push" (corresponding to an hypothetical beginning-of-file).
1100 And let lalr1.cc honor %initial-action.
1101
1102 * doc/bison.texinfo (Initial Action Decl): Clarify, and add an
1103 example.
1104 * data/lalr1.cc (Parser::initlocation_): Remove, bad experiment.
1105 (Parser::Parser): Remove the ctor that used to initialize it.
1106 (Parser::parse): Like in the other skeletons, issue the "starting
1107 parse" message before any action.
1108 Honor %initial-action.
1109 Initialize the stacks with the lookahead.
1110 * data/yacc.c: Let $$ and @$ in %initial-action designate the
1111 look-ahead.
1112 Push them in the stacks.
1113 * tests/actions.at, tests/calc.at: Adjust the C++ ctor invocations.
1114
11152004-09-20 Akim Demaille <akim@epita.fr>
1116
1117 * doc/bison.texinfo (Initial Action Decl): New.
1118
11192004-09-20 Akim Demaille <akim@epita.fr>
1120
1121 * data/yacc.c (YY_LOCATION_PRINT): Use YYLTYPE_IS_TRIVIAL as a
1122 clearer criterion to define it.
1123 (parse): Initialize the initial location when YYLTYPE_IS_TRIVIAL.
1124 When reducing on an empty RHS, use the latest stacked location as
1125 location.
1126 yylloc is not always available.
1127 * data/glr.c: Likewise.
1128 Also, honor initial-actions.
1129
11302004-09-20 Akim Demaille <akim@epita.fr>
1131
1132 * data/yacc.c (YY_LOCATION_PRINT): New.
1133 Define when we know YYLTYPE's structure, i.e., when the default
1134 YYLLOC_DEFAULT is used.
1135 * data/c.m4 (b4_yysymprint_generate): Use it.
1136 * data/lalr1.cc (YYLLOC_DEFAULT): Stop relying on the initial
1137 value of the result.
1138 (error_start_): Replace with...
1139 (error_range_): this location array.
1140 This allows to replace code relying on the implementation of
1141 locations by portable code.
1142 * data/yacc.c (yylerrsp): Replace with...
1143 (yyerror_range): this.
1144 Every time a token is popped, update yyerror_range[0], to have an
1145 accurate location for the error token.
1146 * data/glr.c (YY_LOCATION_PRINT): New.
1147 (yyprocessOneStack): Fix an invocation of YY_SYMBOL_PRINT:
1148 deference a pointer.
1149 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): No longer
1150 report the location in %printers.
1151
1152 * src/scan-skel.l: Instead of abort, report error messages to ease
1153 understanding skeleton scanning failures.
1154
11552004-09-16 Akim Demaille <akim@epita.fr>
1156
1157 * data/lalr1.cc (Stack::Iterator, Stack::ConstIterator): Rename as...
1158 (iterator, const_iterator): these, to be more in the C++ spirit.
1159 Also, return reverse iterators so that when displaying the stack
1160 we display its bottom first.
1161 (Parser::stack_print_, Parser::reduce_print_): Match the messages
1162 from yacc.c.
1163 We should probably use vector here though.
1164
11652004-09-16 Akim Demaille <akim@epita.fr>
1166
1167 Have more complete shift traces.
1168
1169 * data/yacc.c, data/lalr1.c, data/glr.c: Use YY_SYMBOL_PRINT
1170 to report Shifts instead of ad hoc YYDPRINTF invocations,
1171 including for the error token.
1172 * data/lalr1.cc (symprint_): Output the location.
1173 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): In C++, don't
1174 output the location within the %printer.
1175 Activate GLR tests, at least to make sure they compile properly.
1176 They still don't pass though.
1177 * tests/calc.at: Adjust expect verbose output, since now "Entering
1178 state..." is on a different line than the "Shifting" message.
1179
11802004-09-08 Akim Demaille <akim@epita.fr>
1181
1182 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Move the
1183 Bison directive from the Bison file to the invocation of this
1184 macro, so that these directives are passed to
1185 AT_BISON_OPTION_PUSHDEFS to get correct help macros.
1186 Use these helping macros (e.g., AT_LOC, AT_VAL and so forth).
1187 Move the AT_SETUP/AT_CLEANUP outside, to report as test title
1188 the extra Bison directives instead of the whole series.
1189 Change the grammar so that there are recoverable errors, and
1190 unrecoverable errors. Now we can have the parser give up before
1191 consuming the whole input. As a result we now can observe that
1192 the lookahead is freed when needed.
1193 Change the parser source to parse argv[1] instead of a hard coded
1194 string.
1195 Simplify yylex, and give a value and location to EOF.
1196 Simplify some invocations of AT_CHECK_PRINTER_AND_DESTRUCTOR that
1197 passed directives already coded in the file.
1198 Add some tests to check the location of "error".
1199 For some tests, the C++ parser is correct, and not yacc.c.
1200 For other tests, they provide different, but unsatisfying, values,
1201 so keep the C++ value so that at least one parser is "correct"
1202 according to the test suite.
1203 (Actions after errors): Remove, this is subsumed by the
1204 AT_CHECK_PRINTER_AND_DESTRUCTOR series.
1205
12062004-09-06 Akim Demaille <akim@epita.fr>
1207
1208 * data/lalr1.cc: Adjust the indentation of the labels.
1209 (Parser::pop): New.
1210 Use it.
1211
12122004-09-06 Akim Demaille <akim@epita.fr>
1213
1214 * data/yacc.cc, data/glr.cc (yydestruct): Accept an additional
1215 argument, an informative message.
1216 Call YY_SYMBOL_PRINT.
1217 Adjust all callers: integrate the associated YY_SYMBOL_PRINT.
1218 * data/lalr1.cc (destruct_): Likewise.
1219 In addition, no longer depend on b4_yysymprint_generate and
1220 b4_yydestruct_generate to generate these functions, do it "by
1221 hand".
1222
12232004-09-03 Akim Demaille <akim@epita.fr>
1224
1225 * data/glr.c, data/lalr1.cc, data/yacc.c: When YYABORT was
1226 invoked, yydestruct the lookahead.
1227 * tests/calc.at (Calculator $1): Update the expected lengths of
1228 traces: there is an added line for the discarded lookahead.
1229 * doc/bison.texinfo (Destructor Decl): Some rewording.
1230 Define "discarded" symbols.
1231
12322004-09-02 Akim Demaille <akim@epita.fr>
1233
1234 * data/lalr1.cc (translate_, destruct_): No reason to be static.
1235
12362004-09-02 Akim Demaille <akim@epita.fr>
1237
1238 * data/glr.c, yacc.c (YYDSYMPRINT): Remove, not used.
1239 (YYDSYMPRINTF): Rename as...
1240 (YY_SYMBOL_PRINT): this.
1241 * data/lalr1.cc (YY_SYMBOL_PRINT): New, modeled after the previous
1242 two.
1243 Use it instead of direct symprint_ calls.
1244 (yybackup): Tweak the "Now at end of input" case to match yacc.c's
1245 one.
1246
12472004-09-02 Akim Demaille <akim@epita.fr>
1248
1249 * data/lalr1.cc (b4_yysymprint_generate): New.
1250 (symprint_): New member function, defined when YYDEBUG.
1251 Use it consistently instead of token/nterm debugging output by
1252 hand.
1253 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust
1254 %printer calls to use cdebug_ when using lalr1.cc.
1255
12562004-08-30 Florian Krohm <florian@edamail.fishkill.ibm.com>
1257
1258 * data/glr.c: Guard the declarations of yypstack and yypdumpstack
1259 with #ifdef YYDEBUG.
1260
12612004-08-26 Akim Demaille <akim@epita.fr>
1262
1263 * doc/bison.texinfo (Implementing Loops): Rename as...
1264 (Implementing Gotos/Loops): this.
1265
12662004-08-13 Paul Eggert <eggert@cs.ucla.edu>
1267
1268 Adjust to latest gnulib.
1269 * bootstrap (gnulib_modules): Add xalloc-die.
1270 Set LC_ALL=C so that file names sort consistently.
1271 Prefer the gnulib copies of gettext.m4, glibc21.m4,
1272 inttypes_h.m4, lib-ld.m4, lib-prefix.m4, po.m4, stdint_h.m4,
1273 uintmax_t.m4, ulonglong.m4.
1274 (intl_files_to_remove): Add gettext.m4, lib-ld.m4, lib-prefix.m4,
1275 po.m4 since we are now using _gl.m4 instead.
1276
12772004-08-10 Florian Krohm <florian@edamail.fishkill.ibm.com>
1278
1279 * src/scan-action.l: Remove. Scanning of semantic actions is
1280 handled in scan-gram.l.
1281
12822004-08-07 Florian Krohm <florian@edamail.fishkill.ibm.com>
1283
1284 * src/scan-gram.l (handle_syncline): Use uniqstr_new not xstrdup.
1285
1286 * src/location.h (struct): The file member is a uniqstr.
1287 (equal_boundaries): Use UNIQSTR_EQ for comparison.
1288
12892004-07-22 Paul Eggert <eggert@cs.ucla.edu>
1290
1291 Fix bug with non-%union parsers that have printers or destructors,
1292 which led to a Bison core dump. Reported by Peter Fales in
1293 <http://lists.gnu.org/archive/html/bug-bison/2004-07/msg00014.html>.
1294
1295 * data/c.m4 (b4_symbol_actions): Don't assume %union was used.
1296 * data/lalr1.cc (yystype) [defined YYSTYPE]: Define to YYSTYPE,
1297 not to our own type.
1298 * src/output.c (symbol_destructors_output, symbol_printers_output):
1299 Don't assume %union.
1300 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR,
1301 AT_CHECK_PRINTER_AND_DESTRUCTOR): New argument
1302 UNION-FLAG. All callers changed.
1303 (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't assume %union.
1304 Use type char, not unsigned int, when declaring an array of char;
1305 this lets us remove a cast.
1306 (Printers and Destructors): Add non-%union test cases.
1307
13082004-06-21 Paul Eggert <eggert@cs.ucla.edu>
1309
1310 * doc/bison.texinfo: Minor editorial changes, mostly to the new
1311 GLR writeups. E.g., avoid frenchspacing and the future tense,
1312 change "lookahead" to "look-ahead", and change "wrt" to "with
1313 respect to".
1314
13152004-06-21 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
1316
1317 * doc/bison.texinfo (Merging GLR Parses, Compiler Requirements):
1318 New sections, split off from the GLR Parsers section. Put the new
1319 Simple GLR Parser near the start of the GLR section, for clarity.
1320 Rewrite connective text.
1321
13222004-06-21 Frank Heckenbach <frank@g-n-u.de>
1323
1324 * doc/bison.texinfo (Simple GLR Parsers): New section.
1325
13262004-06-21 Paul Eggert <eggert@cs.ucla.edu>
1327
1328 * NEWS, TODO, doc/bison.texinfo:
1329 Use "look-ahead" instead of "lookahead", to be consistent.
1330 * REFERENCES: Fix incorrect reference to DeRemer and Pennello,
1331 while we're fixing "look-ahead".
1332 * src/conflicts.c (shift_set): Renamed from shiftset.
1333 (look_ahead_set): Renamed from lookaheadset.
1334 * src/print.c: Likewise.
1335 * src/getargs.c (report_args): Add "look-ahead" as the new canonical
1336 name for "lookahead".
1337 (report_types, usage): Likewise.
1338 * src/getargs.h (report_look_ahead_tokens): Renamed from
1339 report_lookaheads.
1340 * src/lalr.c (compute_look_ahead_tokens): Renamed from
1341 compute_lookaheads.
1342 (state_look_ahead_tokens_count): Renamed from state_lookaheads_count.
1343 (look_ahead_tokens_print): Renamed from lookaheads_print.
1344 * src/state.c (state_rule_look_ahead_tokens_print): Renamed from
1345 state_rule_lookaheads_print.
1346 * src/state.h: Likewise.
1347 (reductions.look_ahead_tokens): Renamed from lookaheads.
1348 * tests/torture.at (AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR): Renamed from
1349 AT_DATA_LOOKAHEADS_GRAMMAR.
1350
13512004-06-03 Paul Eggert <eggert@cs.ucla.edu>
1352
1353 * README: Update location of patched M4 distribution.
1354
13552004-05-30 Albert Chin-A-Young <china@thewrittenword.com>
1356
1357 Don't assume the C++ compiler takes the same arguments as the C compiler
1358 (trivial change).
1359 * configure.ac (O0CXXFLAGS): New var.
1360 * tests/atlocal.in (CXXFLAGS): Use it.
1361
13622004-05-29 Paul Eggert <eggert@cs.ucla.edu>
1363
1364 Fix some "make check" problems with C++ reported by
1365 Albert Chin-A-Young for Tru64 C++ in this thread:
1366 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00049.html
1367
1368 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check for std::cerr.
1369 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
1370 Output to a .cc file for C++, not to a .c file.
1371 * tests/calc.at (AT_CHECK_CALC): Likewise.
1372 * tests/regression.at (AT_CHECK_DANCER): Likewise.
1373 * tests/local.at (AT_COMPILE_CXX): Default to OUTPUT.cc, not OUTPUT.c.
1374
13752004-05-28 Albert Chin-A-Young <china@thewrittenword.com>
1376
1377 * tests/calc.at, tests/actions.at: Workaround for SGI
1378 C++ compiler. (trivial change)
1379
13802004-05-27 Paul Eggert <eggert@cs.ucla.edu>
1381
1382 Spent a few hours checking out which prerequisite versions the
1383 current sources actually require. I went all the way back to
1384 Gettext 0.10.40, Automake 1.4, and Autoconf 2.57 and investigated
1385 a seemingly endless set of combinations of versions more recent
1386 than that. The bottom line is that the current sources require
1387 fairly recent versions of the build tools, and it'll be some work
1388 to change this.
1389 * configure.ac (AC_PREREQ): Increase from 2.58 to 2.59.
1390 (AM_INIT_AUTOMAKE): Increase from 1.7 to 1.8.
1391 (AM_GNU_GETTEXT_VERSION): Increase from 0.11.5 to 0.12.
1392 Add comments explaining why those particular versions are
1393 currently needed.
1394
1395 * src/parse-gram.y (lloc_default): Rewrite to avoid compiler bug
1396 in SGI MIPSpro 7.4.1m. Problem reported by Albert Chin-A-Young in
1397 <http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00037.html>.
1398
1399 * configure.ac (AC_PREREQ): Bump to 2.58, since 2.57 doesn't work
1400 (it fails with a Autoconf-without-aclocal-m4 diagnostic).
1401
14022004-05-26 Paul Eggert <eggert@cs.ucla.edu>
1403
1404 * configure.ac (AM_GNU_GETTEXT_VERSION): Lower it from 0.14.1 to
1405 0.11.5. Suggested by Bruno Haible.
1406 * bootstrap: Remove gettext version checking.
1407
1408 * doc/bison.texinfo (Decl Summary): Also mention that %union
1409 can depend on prerequisite types. Problem reported by Tim
1410 Van Holder.
1411
14122004-05-25 Paul Eggert <eggert@cs.ucla.edu>
1413
1414 * README: Mention GNU m4 1.4 bugs and Akim's patched version.
1415 * README-alpha: Don't tell people not to package this.
1416
1417 * bootstrap: Don't assume $(...) works; use `...` instead.
1418 Problem reported by Paul Hilfinger. Also, diagnose non-GNU
1419 gettext better.
1420
1421 * doc/bison.texinfo (Decl Summary, Bison Options): Clarify what's
1422 put into the -d output file, and mention what to do if YYSTYPE is
1423 defined as a macro.
1424
14252004-05-24 Paul Eggert <eggert@cs.ucla.edu>
1426
1427 Undo change made earlier today: it caused autopoint to not bring
1428 in ABOUT-NLS. Ouch. Instead, substitute our own diagnostic for
1429 autopoint's.
1430
1431 * bootstrap: Check that gettext version matches what's in
1432 configure.ac. Warn users to ignore robots.txt ERROR 404.
1433 * bootstrap: Undo today's earlier change (logged below).
1434 * configure.ac (AM_GNU_GETTEXT_VERSION): Likewise.
1435
1436 The gettext version checking is causing more trouble than it's
1437 curing; remove it. Problem reported by Paul Hilfinger.
1438
1439 * bootstrap: Issue a warning that one can expect a message
1440 'AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION'.
1441 * configure.ac (AM_GNU_GETTEXT_VERSION): Remove.
1442
14432004-05-23 Paul Eggert <eggert@cs.ucla.edu>
1444
1445 Ensure that the C++ compiler used for testing actually works on a
1446 simple test program; if not, skip the C++-related tests. Problem
1447 reported by Vin Shelton in:
1448 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00026.html
1449
1450 * m4/cxx.m4: New file.
1451 * configure.ac (BISON_TEST_FOR_WORKING_CXX_COMPILER): Add.
1452 * tests/atlocal.in (BISON_CXX_WORKS): Add.
1453 * tests/local.at (AT_COMPILE_CXX): Use it.
1454
14552004-05-21 Paul Eggert <eggert@cs.ucla.edu>
1456
1457 * data/glr.c (yylloc): Output this macro even if locations are not
1458 being generated, as the GLR parser needs it even in that case.
1459 Problem reported by Troy A. Johnson
1460 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=195946>.
1461
1462 * configure.ac (AC_INIT): Update to 1.875e.
1463
14642004-05-21 Paul Eggert <eggert@cs.ucla.edu>
1465
1466 * NEWS: Version 1.875d.
1467 * configure.ac (AC_INIT): Likewise.
1468 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875d.
1469
1470 * configure.ac (--enable-gcc-warnings): Do not enable -Wshadow,
1471 -Wmissing-prototypes, or -Wstrict-prototypes for C++. The current
1472 lalr1.cc runs afoul of the first, and the last two are no longer
1473 supported by GCC 3.4.0.
1474 * README: Mention GNU m4 1.4 or later; mention m4 patches.
1475 * HACKING: Use ./bootstrap, not "make update" to import foreign files.
1476
14772004-05-06 Paul Eggert <eggert@cs.ucla.edu>
1478
1479 * src/muscle_tab.c (hash_muscle): Accept and return size_t, not
1480 unsigned int, for compatibility with latest gnulib hash module.
1481 * src/state.c (state_hash, state_hasher): Likewise.
1482 * src/symtab.c (hash_symbol, hash_symbol_hasher): Likewise.
1483 * src/uniqstr.c (hash_uniqstr): Likewise.
1484
14852004-05-03 Paul Eggert <eggert@cs.ucla.edu>
1486
1487 * NEWS: Unescaped newlines are no longer allowed in char & strings.
1488
1489 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER,
1490 SC_CHARACTER,SC_STRING>): Reject unescaped newlines in
1491 character and string literals.
1492 (unexpected_end): New function.
1493 (unexpected_eof): Use it.
1494 (unexpected_newline): New function.
1495 (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>): Coalesce duplicate
1496 actions.
1497
1498 * NEWS: Document %expect-rr.
1499
1500 * bootstrap (--gnulib-srcdir=*, --cvs-user=*):
1501 Fix typo by replacing $1 with $option.
1502 Remove more 'intl'-related files.
1503 Don't DEFUN AM_INTL_SUBDIR twice.
1504
1505 * lib/.cvsignore: Add strndup.h. Remove memchr.c, memcmp.c,
1506 memrchr.c, strcasecmp.c, strchr.c, strrchr.c, strspn.c, strtol.c,
1507 strtoul.c.
1508 * m4/.cvsignore: Add exitfail.m4, extensions.m4, gnulib.m4,
1509 hard-locale.m4, mbstate_t.m4, strerror_r.m4, strndup.m4,
1510 xstrndup.m4. Remove glibc21.m4, intdiv0.m4, inttypes-pri.m4,
1511 inttypes.m4, inttypes_h.m4, isc-posix.m4, lcmessage.m4,
1512 stdint_h.m4, uintmax_t.m4, ulonglong.m4.
1513 * src/.cvsignore: Add *.output.
1514
1515 * src/parse-gram.y: Put copyright notice inside %{ %} so it
1516 gets copied to the output file.
1517
15182004-04-28 Paul Eggert <eggert@twinsun.com>
1519
1520 Get files from the gnulib and po repositories, instead of relying
1521 on them being in our CVS. Upgrade to latest versions of gnulib
1522 and Automake.
1523
1524 * Makefile.am (SUBDIRS): Remove m4; Automake now does m4.
1525 * bootstrap: Bootstrap from gnulib and po repositories.
1526 Much of this code was stolen from GNU diff and GNU tar's bootstrap.
1527 * README-cvs: Document these changes. Remove version numbers from
1528 mentions of build tools, since they change so often. Mention Flex.
1529
1530 * configure.ac (AC_CONFIG_MACRO_DIR): Add, with m4 as arg.
1531 (gl_USE_SYSTEM_EXTENSIONS): Add.
1532 (AC_GNU_SOURCE, AC_AIX, AC_MINIX):
1533 Remove; no longer needed, as gl_USE_SYSTEM_EXTENSIONS
1534 does this for us.
1535 (AC_ISC_POSIX): Remove; we no longer support this
1536 ancient OS, as it gets in the way of latest Autoconf & gnulib.
1537 (AC_HEADER_STDC): Remove: we now assume C89 or better.
1538 (AC_CHECK_HEADERS_ONCE): Use instead of AC_CHECK_HEADERS.
1539 Do not check for C89 headers, except for locale.h which is used
1540 by the Yacc library and must port to K&R hosts.
1541 (AC_CHECK_FUNCS_ONCE): Use instead of AC_CHECK_FUNCS.
1542 Do not check for C89 functions, except for setlocale which is
1543 used by the Yacc library.
1544 (AC_CHECK_DECLS, AC_REPLACE_FUNCS): Remove; no longer needed.
1545 (gl_DIRNAME, gl_ERROR, gl_FUNC_ALLOCA, gl_FUNC_MEMCHR,
1546 gl_FUNC_MEMRCHR, gl_FUNC_STPCPY, gl_FUNC_STRNLEN, gl_FUNC_STRTOL,
1547 gl_GETOPT, gl_HASH, gl_MBSWIDTH, gl_OBSTACK, gl_QUOTE,
1548 gl_QUOTEARG, gl_XALLOC, jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_MALLOC,
1549 AM_GNU_GETTEXT): Remove; now done by:
1550 (GNULIB_AUTOCONF_SNIPPET): Add. "bootstrap" builds this for us.
1551 (AC_CONFIG_FILES): Remove m4/Makefile, as Automake now does this
1552 for us.
1553
1554 * lib/Makefile.am: Include gnulib.mk, built for us by "bootstrap".
1555 (BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES):
1556 Define to empty, as gnulib.mk will do the rest for us.
1557 ($(libbison_a_OBJECTS), stdbool.h): Remove, as gnulib.mk does this
1558 for us.
1559 (libbison_a_SOURCES): Define to $(lib_SOURCES) now.
1560 (lib_SOURCES): New symbol, containing only the non-gnulib libs.
1561
1562 * src/files.c: Include gnulib's xstrndup.h.
1563
1564 * src/system.h (MALLOC): Use xnmalloc, for better overflow checking.
1565 (REALLOC): Use xnrealloc, for likewise.
1566 (xstrndup, stpcpy): Remove decls, as gnulib does this for us now.
1567 (strnlen, memrchr): Remove decls; functions no longer used.
1568 Include <stpcpy.h>.
1569
1570 * config/depcomp, config/install-sh, lib/alloca.c, lib/argmatch.c,
1571 lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
1572 lib/error.c, lib/error.h, lib/getopt.c, lib/getopt.h,
1573 lib/getopt1.c, lib/gettext.h, lib/hash.c, lib/hash.h,
1574 lib/malloc.c, lib/mbswidth.c, lib/mbswidth.h, lib/memchr.c,
1575 lib/memcmp.c, lib/memrchr.c, lib/obstack.c, lib/obstack.h,
1576 lib/quote.c, lib/quote.h, lib/quotearg.c, lib/quotearg.h,
1577 lib/realloc.c, lib/stdbool_.h, lib/stpcpy.c, lib/strcasecmp.c,
1578 lib/strchr.c, lib/strncasecmp.c, lib/strnlen.c, lib/strrchr.c,
1579 lib/strspn.c, lib/strtol.c, lib/strtoul.c, lib/unlocked-io.h,
1580 lib/xalloc.h, lib/xmalloc.c, lib/xstrdup.c, lib/xstrndup.c,
1581 m4/Makefile.am, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
1582 m4/error.m4, m4/getopt.m4, m4/hash.m4, m4/malloc.m4,
1583 m4/mbrtowc.m4, m4/mbswidth.m4, m4/memchr.m4, m4/memcmp.m4,
1584 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/prereq.m4,
1585 m4/quote.m4, m4/quotearg.m4, m4/realloc.m4, m4/stdbool.m4,
1586 m4/stpcpy.m4, m4/strnlen.m4, m4/strtol.m4, m4/strtoul.m4,
1587 m4/unlocked-io.m4, m4/xalloc.m4, po/LINGUAS, po/Makefile.in.in,
1588 po/Makevars, po/da.po, po/de.po, po/es.po, po/et.po, po/fr.po,
1589 po/hr.po, po/id.po, po/it.po, po/ja.po, po/ms.po, po/nl.po,
1590 po/pt_BR.po, po/ro.po, po/ru.po, po/sv.po, po/tr.po:
1591 Remove, as these files are now generated automatically
1592 by bootstrap or automake.
1593
1594 * po/ChangeLog: Remove: all but one entry was a duplicate
1595 of this file, and I moved that 2000-11-02 entry here.
1596
1597 * config/.cvsignore: Add Makefile, depcomp, install-sh.
1598 * lib/.cvsignore: Add alloca.c, alloca.h, alloca_.h, argmatch.c,
1599 argmatch.h, basename.c, dirname.c, dirname.h, error.c, error.h,
1600 exit.h, exitfail.c, exitfail.h, getopt.c, getopt.h, getopt1.c,
1601 getopt_int.h, gettext.h, gnulib.mk, hard-locale.c, hard-locale.h,
1602 hash.c, hash.h, malloc.c, mbswidth.c, mbswidth.h, memchr.c,
1603 memcmp.c, memrchr.c, obstack.c, obstack.h, quote.c, quote.h,
1604 quotearg.c, quotearg.h, realloc.c, stdbool_.h, stpcpy.c, stpcpy.h,
1605 strcasecmp.c, strchr.c, stripslash.c, strncasecmp.c, strndup.c,
1606 strnlen.c, strrchr.c, strspn.c, strtol.c, strtoul.c,
1607 unlocked-io.h, xalloc.h, xmalloc.c, xstrdup.c, xstrndup.c,
1608 xstrndup.h.
1609 * m4/.cvsignore: Remove Makefile, Makefile.in. Add alloca.m4,
1610 dirname.m4, dos.m4, error.m4, getopt.m4, hash.m4, mbrtowc.m4,
1611 mbswidth.m4, obstack.m4, onceonly.m4, quote.m4, quotearg.m4,
1612 stdbool.m4, stpcpy.m4, strnlen.m4, unlocked-io.m4, xalloc.m4.
1613 * po/.cvsignore: Add *.po, LINGUAS, Makefile.in.in, Makevars.
1614 * src/.cvsignore: Remove *_.c.
1615
1616
1617 * Makefile.maint (GZIP_ENV): Don't use --rsyncable if gzip doesn't
1618 support it. (The latest stable gzip doesn't.)
1619
16202004-04-27 Paul Eggert <eggert@twinsun.com>
1621
1622 * data/lalr1.cc (Parser::stos_) [! YYDEBUG]: Define even in this
1623 case, as stos_ is now used by destructors due to the 2004-02-09
1624 change.
1625
1626 Remove more K&R C support.
1627 * lib/libiberty.y (PARAMS): Remove. All uses removed.
1628 * lib/subpipe.c (errno): Remove decl.
1629 Include <stdlib.h> unconditionally.
1630 (EXIT_FAILURE): Remove macro.
1631 * src/complain.c (vfprintf, strerror): Remove.
1632 * src/system.h: Include limits.h, stdlib.h, string.h, locale.h
1633 unconditionally.
1634 (EXIT_FAILURE, EXIT_SUCCESS, setlocale): Remove defns.
1635 Use latest Autoconf recommendations for including inttypes.h, stdint.h.
1636 (strchr, strspn, memchr): Remove decls.
1637 * tests/calc.at (_AT_DATA_CALC_Y): Include stdlib.h, string.h
1638 unconditionally. Do not declare perror.
1639 * tests/conflicts.at (%nonassoc and eof): Include stdlib.h
1640 unconditionally.
1641
1642 * src/complain.c (_): Remove useless defn, as system.h defines this.
1643
1644 * lib/bitset.h (__INT_TO_PTR): Remove; workaround no longer needed
1645 with latest obstack.h.
1646 * lib/ebitset.c (ebitset_elt_alloc): Don't bother to cast args
1647 to procedure types, as obstack.h now does that for us.
1648 * lib/lbitset.c (lbitset_elt_alloc): Likewise.
1649
1650 * lib/subpipe.h [HAVE_SYS_TYPES_H]: Include <sys/types.h>,
1651 so that this include file can stand alone.
1652 * lib/subpipe.c: Do not include <sys/types.h>, as subpipe.h
1653 does this now. Include subpipe.h first after config.h, to
1654 test whether it can stand alone.
1655
1656 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't
1657 declare yyerror when using lalr.cc, as GCC 3.4.0 warns about the
1658 unused declaration.
1659
1660 * tests/synclines.at (%union synch line): Put a dummy member in
1661 the union, because empty unions aren't allowed in C. Caught
1662 by GCC 3.4.0.
1663
16642004-04-13 Jim Meyering <jim@meyering.net>
1665
1666 * src/conflicts.c (conflicts_print): Correct format string typo:
1667 use `%%' to produce literal `%'. (trivial change)
1668
16692004-03-30 Paul Eggert <eggert@twinsun.com>
1670
1671 * src/getargs.c (version): Update copyright year to 2004.
1672
1673 * data/c.m4 (b4_int_type): Use 'short int' rather than
1674 'short', and similarly for 'long', 'unsigned', etc.
1675 * data/glr.c (YYTRANSLATE, yyconfl, yySymbol, yyItemNum,
1676 yygetLRActions, yyprocessOneStack, yyrecoverSyntaxError,
1677 yy_yypstack, yydumpstack): Likewise.
1678 * data/lalr1.cc (user_token_number_max_, user_token_number_max_,
1679 translate_, seq_, [], pop, Slice, range_, operator+, operator+=):
1680 Likewise.
1681 * data/yacc.c (b4_int_type, yyss, YYSTACK_BYTES, yysigned_char,
1682 yy_stack_print, yyparse): Likewise.
1683 * doc/bison.texinfo (Prologue, Multiple Types): Likewise.
1684 * lib/bbitset.h (bitset_word, BITSET_WORD_BITS): Likewise.
1685 * lib/bitset.c (bitset_print): Likewise.
1686 * lib/bitset_stats.c (bitste_log_histogram_print): Likewise.
1687 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
1688 * lib/bitsetv.c (bitsetv_dump): Likewise.
1689 * lib/ebitset.c (EBITSET_ELT_BITS, ebitset_elt_alloc): Likewise.
1690 * lib/lbitset.c (LBITSET_ELT_BITS, lbitset_elt_alloc, debug_lbitset):
1691 Likewise.
1692 * src/LR0.c (allocate_itemsets): Likewise.
1693 * src/gram.h (rule_number, rule): Likewise.
1694 * src/lalr.h (goto_number): Likewise.
1695 * src/nullable.c (nullable_compute): Likewise.
1696 * src/output.c (prepare_rules): Likewise.
1697 * src/relation.c (relation_print, relation_digraph): Likewise.
1698 * src/relation.h (relation_node): Likewise.
1699 * src/state.h (state_number, transitions, errs, reductions,
1700 struct state): Likewise.
1701 * src/symtab.h (symbol_number, struct symbol): Likewise.
1702 * src/tables.c (vector_number, tally, action_number,
1703 default_goto, goto_actions): Likewise.
1704 * tests/existing.at (GNU Cim Grammar): Likewise.
1705 * tests/regression.at (Web2c Actions): Likewise.
1706
1707 * src/output.c (muscle_insert_short_int_table): Renamed from
1708 muscle_insert_short_table. All uses changed.
1709
17102004-03-25 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
1711
1712 * src/parse-gram.y: Define PERCENT_EXPECT_RR.
1713 (declaration): Replace expected_conflicts with expected_sr_conflicts.
1714 Add %expect-rr rule.
1715
1716 * src/scan-gram.l: Recognize %expect-rr.
1717
1718 * src/conflicts.h (expected_sr_conflicts): Rename from
1719 expected_conflicts.
1720 (expected_rr_conflicts): Declare.
1721
1722 * src/conflicts.c (expected_sr_conflicts): Rename from
1723 expected_conflicts.
1724 (expected_rr_conflicts): Define.
1725 (conflicts_print): Check r/r conflicts against expected_rr_conflicts
1726 for GLR parsers.
1727 Use expected_sr_conflicts in place of expected_conflicts.
1728 Warn if expected_rr_conflicts used in non-GLR parser.
1729
1730 * doc/bison.texinfo: Add documentation for %expect-rr.
1731
17322004-03-08 Paul Eggert <eggert@gnu.org>
1733
1734 Add support for hex token numbers. Suggested by Odd Arild Olsen in
1735 <http://lists.gnu.org/archive/html/bison-patches/2004-03/msg00000.html>.
1736
1737 * NEWS: Document hexadecimal tokens, no NUL bytes, %destructor
1738 in lalr1.cc.
1739 * doc/bison.texinfo (Token Decl): Add hexadecimal token numbers.
1740 * src/scan-gram.l (scan_integer): New function.
1741 ({int}): Use it.
1742 (0[xX][0-9abcdefABCDEF]+): New pattern, to support hex numbers.
1743 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>, \\x[0-9abcdefABCDEF]+,
1744 handle_action_dollar, handle_action_at, convert_ucn_to_byte):
1745 Say "long int", not "long", for uniformity with GNU style.
1746
17472004-02-25 Paul Eggert <eggert@twinsun.com>
1748
1749 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Ignore stdout from
1750 compilers. This fixes a problem with Intel's C++ compiler being
1751 chatty, reported by Guido Trentalancia in
1752 <http://lists.gnu.org/archive/html/bug-bison/2004-02/msg00030.html>.
1753
17542004-02-09 Alexandre Duret-Lutz <adl@gnu.org>
1755
1756 Support %destructor and merge error locations in lalr1.cc.
1757
1758 * data/lalr1.cc (b4_cxx_destruct_def): New macro.
1759 (Parser::stos_): Define unconditionally.
1760 (Parser::destruct_): New method. Generate its body with
1761 b4_yydestruct_generate.
1762 (Parser::error_start_): New attribute.
1763 (Parser::parse) <yyerrlab, yyerrlab1>: Call destruct_ on erroneous
1764 token which are discarded.
1765 (Parser::parse) <yyerrlab, yyerrorlab, yyerrlab1>: Update
1766 error_start_ when erroneous token are discarded.
1767 (Parser::parse) <yyerrlab1>: Compute the location of the error
1768 token so that it covers all the discarded tokens.
1769 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust so
1770 it can be called with `%skeleton "lalr1.cc"', and do that.
1771
17722004-02-02 Paul Eggert <eggert@twinsun.com>
1773
1774 * src/Makefile.am (AM_CPPFLAGS): New macro. It mentions
1775 $(top_srcdir)/lib and ../lib. This fixes a bug reported
1776 by Paul Hilfinger; the old INCLUDES value didn't mention ../lib.
1777 There's no need to mention top_builddir since Automake does that
1778 for us.
1779 (INCLUDES): Remove, as Automake says it's obsolescent.
1780 Contents migrated into AM_CPPFLAGS as described above.
1781 * lib/Makefile.am (INCLUDES): Remove; obsolescent.
1782
17832004-01-14 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
1784
1785 * data/glr.c (yytokenName): Bullet-proof against YYEMPTY token.
1786 (yyreportSyntaxError): Handle case where lookahead token is
1787 YYEMPTY.
1788
17892004-01-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1790
1791 * data/glr.c: Put casts on uses of YYREALLOC and YYMALLOC so that
1792 resulting parsers are compilable with C++.
1793
17942003-12-23 Paul Eggert <eggert@twinsun.com>
1795
1796 * config/depcomp, config/install-sh: Sync with Automake 1.8.
1797 * src/output.c (output_skeleton): Rename local var.
1798 * tests/input.at (Torturing the Scanner): Don't use \x0 or \0 in
1799 Bison tokens, as this runs afoul of the 2003-10-07 change that
1800 disallowed NUL bytes in character constants or string literals.
1801
1802 * tests/local.at: Require Autoconf 2.59's Autotest.
1803 * tests/testsuite.at: Don't include local.at, since we now assume
1804 Autoconf 2.59 or later. Autoconf 2.59 had some problems with
1805 including it.
1806 * tests/Makefile.am ($(TESTSUITE)): Remove warning about ignoring
1807 multiple inclusion warnings.
1808
18092003-12-02 Akim Demaille <akim@epita.fr>
1810
1811 * doc/bison.texinfo (How Can I Reset the Parser): More about start
1812 conditions.
1813 From Bruno Haible.
1814
18152003-11-18 Alexandre Duret-Lutz <adl@gnu.org>
1816
1817 * doc/bison.texinfo (Bison Options): Escape `@' in `$@'.
1818
18192003-10-07 Paul Eggert <eggert@twinsun.com>
1820
1821 * tests/Makefile.am (clean-local): Don't run 'testsuite --clean'
1822 if testsuite doesn't exist.
1823
1824 * doc/bison.texinfo (Symbols): NUL bytes are not allowed in string
1825 literals, unfortunately.
1826 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>):
1827 Complain about NUL bytes in character constants or string literals.
1828
18292003-10-05 Paul Eggert <eggert@twinsun.com>
1830
1831 * NEWS: Don't document %no-default-prec, as it's still
1832 too experimental.
1833 * doc/bison.texinfo: Document %no-default-prec only if
1834 the defaultprec flag is set. Normally it's not.
1835
18362003-10-04 Paul Eggert <eggert@twinsun.com>
1837
1838 * data/glr.c (b4_rhs_value, b4_rhs_location): Yield a
1839 non-modifiable lvalue, instead of a modifiable one.
1840 * doc/bison.texinfo (Actions): Document that $$ can
1841 be assigned to. Do not claim that $$ and $N are
1842 array element references: user code should not rely on this.
1843
18442003-10-01 Paul Eggert <eggert@twinsun.com>
1845
1846 * src/parse-gram.h (PERCENT_NO_DEFAULT_PREC): New token.
1847 (grammar_declaration): Use it.
1848 * src/scan-gram.l: New token %no-default-prec.
1849 * tests/conflicts.at: Revamp tests to use %no-default-prec.
1850 * NEWS, doc/bison.texinfo: Document the above.
1851
18522003-10-01 Akim Demaille <akim@epita.fr>
1853
1854 VCG no longer supports long_straight_phase.
1855
1856 * src/vcg.c, src/vcg.h: Remove the handling of long_straight_phase.
1857 * src/print_graph.c (print_graph): Adjust.
1858
18592003-09-30 Frank Heckenbach <frank@g-n-u.de>
1860 and Paul Eggert <eggert@twinsun.com>
1861
1862 * doc/bison.texinfo (Decl Summary, Contextual Precedence,
1863 Table of Symbols): Document %default-prec.
1864 * src/parse-gram.y (PERCENT_DEFAULT_PREC): New token.
1865 (grammar_declaration): Set default_prec on %default-prec.
1866 * src/scan-gram.l (%default-prec): New token.
1867 * src/reader.h (default_prec): New flag.
1868 * src/reader.c: Likewise.
1869 (packgram): Handle it.
1870 * tests/conflicts.at (%default-prec without %prec,
1871 %default-prec with %prec, %default-prec 1): New tests.
1872
18732003-09-30 Paul Eggert <eggert@twinsun.com>
1874
1875 * tests/testsuite.at: Include local.at, not input.at, fixing
1876 a typo in the 2003-08-25 patch.
1877
18782003-08-27 Akim Demaille <akim@epita.fr>
1879
1880 * data/lalr1.cc (yyparse) [__GNUC__]: "Use" yyerrorlab to pacify
1881 GCC warnings.
1882
18832003-08-26 Akim Demaille <akim@epita.fr>
1884
1885 * config/announce-gen (print_changelog_deltas): Neutralize "<#" as
1886 "<\#" to avoid magic from Gnus when posting parts of this script.
1887
18882003-08-26 Akim Demaille <akim@epita.fr>
1889
1890 * data/lalr1.cc (Parser::report_syntax_error_): New, extracted from
1891 (Parser::parse): here.
1892 Adjust: nerrs and errstatus is now replaced by...
1893 (Parser::nerrs_, Parser::errstatus_): New.
1894
18952003-08-25 Akim Demaille <akim@epita.fr>
1896
1897 * config/announce-gen, Makefile.cfg: New.
1898 * Makefile.am: Adjust.
1899 * GNUmakefile, Makefile.maint: Update from CVS Autoconf, but
1900 keeping local WGET and WGETFLAGS modifications from Paul Eggert.
1901
19022003-08-25 Akim Demaille <akim@epita.fr>
1903
1904 When reducing initial empty rules, Bison parser read an initial
1905 location that is not defined. This results in garbage, and that
1906 affects Bison's own parser. Therefore we need (i) to extend Bison
1907 to support a means to initialize this location, and (ii) to use
1908 this CVS Bison to fix CVS Bison's parser.
1909
1910 * src/reader.h, reader.c (epilogue_augment): Remove, replace
1911 with...
1912 * src/muscle_tab.h, src/muscle_tab.c (muscle_code_grow): this.
1913 * src/parse-gram.y: Adjust.
1914 (%initial-action): New.
1915 (%error-verbose): Since we require CVS Bison, there is no reason
1916 not to use it.
1917 * src/scan-gram.l: Adjust.
1918 * src/Makefile.am (YACC): New, to make sure we use our own parser.
1919 * data/yacc.c (yyparse): Use b4_initial_action.
1920
19212003-08-25 Akim Demaille <akim@epita.fr>
1922
1923 * doc/bison.texinfo: Don't promote stdout for error messages.
1924
19252003-08-25 Akim Demaille <akim@epita.fr>
1926
1927 * data/lalr1.cc (Parser::reduce_print_): Remove unused yyi.
1928 From Alexandre Duret-Lutz.
1929
19302003-08-25 Akim Demaille <akim@epita.fr>
1931
1932 Version 1.875c.
1933
19342003-08-25 Akim Demaille <akim@epita.fr>
1935
1936 * data/lalr1.cc (Parser::stack_print_, YY_STACK_PRINT): New.
1937 Use them.
1938
19392003-08-25 Akim Demaille <akim@epita.fr>
1940
1941 * data/lalr1.cc (Parser::reduce_print_): New.
1942 Use it.
1943
19442003-08-25 Akim Demaille <akim@epita.fr>
1945
1946 Have lalr1.cc catch with Paul Eggert's patch to fix the infinite
1947 error recovery loops. This patch is based on
1948 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00000.html>.
1949 Also, augment the similarity between lalr1.cc and yacc.c.
1950 Note: the locations of error recovery rules are not correct yet.
1951
1952 * data/lalr1.cc: Comment changes to augment the similarity between
1953 lalr1.cc and yacc.c.
1954 (YYERROR): Goto to yyerrorlab, not yyerrlab1.
1955 (yyerrlab1): Remove, but where it used to be (now the bottom part of
1956 yyerrlab), when hitting EOF, pop the whole stack here instead of
1957 merely falling thru the default error handling mechanism.
1958 (yyerrorlab): New label, with the old contents of YYERROR,
1959 plus the following change: pop the stack of rhs corresponding
1960 to the production that invoked YYERROR. That is how Yacc
1961 behaves (required by POSIX).
1962 * tests/calc.at (AT_CHECK_CALC_LALR1_CC): No longer expected to
1963 fail.
1964
19652003-08-25 Akim Demaille <akim@epita.fr>
1966
1967 Tune local.at so that people can "autom4te -l autotest calc.at -o
1968 calc" for instance, to extract a sub test suite.
1969
1970 * tests/testsuite.at: Move the initialization, Autotest version
1971 requirement, and AT_TESTED invocation into...
1972 * tests/local.at: here.
1973 * tests/testsuite.at: Include it for compatibility with Autoconf
1974 2.57.
1975 * tests/Makefile.am ($(TESTSUITE)): Report that the warning should
1976 be ignore.
1977
19782003-08-04 Paul Eggert <eggert@twinsun.com>
1979
1980 Rework code slightly to avoid gcc -Wtraditional warnings.
1981 * data/glr.c (yyuserMerge): Return void, not YYSTYPE.
1982 The returned value is now stored in *YY0. All callers changed.
1983 * src/output.c (merge_output): Adjust to the above change.
1984
19852003-07-26 Paul Eggert <eggert@twinsun.com>
1986
1987 * data/glr.c (YYASSERT): New macro.
1988 (yyfillin, yydoAction, yyglrReduce, yysplitStack,
1989 yyresolveStates, yyprocessOneStack):
1990 Use `YYASSERT (FOO);' rather than `if (! (FOO)) abort ();'.
1991 Derived from a suggestion by Frank Heckenbach.
1992
19932003-07-25 Paul Eggert <eggert@twinsun.com>
1994
1995 * data/glr.c (yyglrReduce): Don't use C89 string concatenation,
1996 for portability to K&R C (after ansi2knr, presumably). See
1997 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>
1998 by Frank Heckenbach, though I have omitted the structure-initialization
1999 part of his glr-knr.diff patch since I recall that the Portable
2000 C Compiler didn't require that change.
2001
2002 Let the user specify how to allocate and free memory.
2003 Derived from a suggestion by Frank Heckenbach in
2004 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>.
2005 * data/glr.c (YYFREE, YYMALLOC, YYREALLOC): New macros.
2006 All uses of free, malloc, realloc changed to use these macros,
2007 and unnecessary casts removed.
2008 * data/yacc.c (YYFREE, YYMALLOC): Likewise.
2009
20102003-07-06 Matthias Mann <MatthiasMann@gmx.de>
2011
2012 * data/lalr1.cc (operator<<(std::ostream&, const Position&)):
2013 use s.empty() rather than s == "" to test for empty string; see
2014 <http://lists.gnu.org/archive/html/bison-patches/2003-07/msg00003.html>
2015 (trivial change)
2016
20172003-06-25 Akim Demaille <akim@epita.fr>
2018
2019 * config/depcomp, config/install-sh: Update from masters.
2020
20212003-06-20 Paul Eggert <eggert@twinsun.com>
2022
2023 * data/glr.c (YYLLOC_DEFAULT): Parenthesize arguments as needed,
2024 and return properly parenthesized result.
2025 * data/lalar1.cc (YYLLOC_DEFAULT): Likewise.
2026 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
2027 Remove unnecessary parentheses from uses.
2028 * doc/bison.texinfo (Location Default Action): Describe the
2029 conventions for parentheses.
2030
20312003-06-19 Paul Eggert <eggert@twinsun.com>
2032
2033 * data/glr.c (yyremoveDeletes, yy_reduce_print, yyglrReduce,
2034 yyreportTree): Do not assume that size_t is the same width as int,
2035 when printing sizes. Print sizes using an unsigned format.
2036 Problem reported by Frank Heckenbach in
2037 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00035.html>.
2038
2039 Port to Forte Developer 7 C compiler.
2040 * data/glr.c (struct YYLTYPE): If locations are not being used,
2041 declare a single dummy member, as empty structs do not conform
2042 to the C standard.
2043 (YYERROR, YYBACKUP): Do not use "do { ...; return foo; } while (0)";
2044 the Forte Developer 7 C compiler complains that end-of-loop
2045 code is not reached.
2046
20472003-06-17 Paul Eggert <eggert@twinsun.com>
2048
2049 * lib/libiberty.h (PARAMS): Spell argument as Args, not as X, to
2050 avoid warnings from picky compilers about redefinition of PARAMS.
2051
20522003-06-17 Paul Eggert <eggert@twinsun.com>
2053
2054 Version 1.875b.
2055
2056 * NEWS: Document 1.875b.
2057
2058 * lib/bbitset.h: Do not include config.h; that's the includer's job.
2059 Do not include <sys/types.h>; shouldn't be needed on a C89 host.
2060 * lib/bitset.h (bitset_compatible_p): Indent as per GNU standard.
2061 Don't use 'index' in comments, as it's a builtin fn on some hosts.
2062 * lib/bitset_stats.c: Include gettext.h unconditionally, as
2063 per recent gettext manual's suggestion.
2064 * lib/ebitset.c (ebitset_resize, ebitset_unused_clear):
2065 Use prototypes, not old-style definitions.
2066 * lib/lbitset.c (lbitset_unused_clear): Likewise.
2067 * lib/vbitset.c (vbitset_resize, vbitset_ones, vbitset_zero,
2068 vbitset_empty_p, vbitset_copy1, vbitset_not, vbitset_equal_p,
2069 vbitset_subset_p, vbitset_disjoint_p, vbitset_and, vbitset_and_cmp,
2070 vbitset_andn, vbitset_andn_cmp, vbitset_or, vbitset_or_cmp,
2071 vbitset_xor, vbitset_xor_cmp, vbitset_and_or, vbitset_and_or_cmp,
2072 vbitset_andn_or, vbitset_andn_or_cmp, vbitset_or_and,
2073 vbitset_or_and_cmp, vbitset_copy): Likewise.
2074
2075 * lib/libiberty.h: Do not include config.h; that's the includer's job.
2076 Do not include <stdlib.h>.
2077 (PARAMS): Define unconditionally for C89.
2078 (ATTRIBUTE_NORETURN): Remove.
2079 (ATTRIBUTE_UNUSED): Define unconditionally.
2080
2081 Upgrade to 2003-06-08 libbitset, submitted by Michael Hayes in:
2082 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00005.html>
2083 * lib/Makefile.am (bitsets_sources): Add vbitset.c, vbitset.h.
2084 * lib/vbitset.c, lib/vbitset.h: New files.
2085 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
2086 lib/bitset_stats.c, lib/ebitset.c, lib/lbitset.c: Import
2087 from libbitset.
2088
2089 * doc/bison.texinfo (How Can I Reset the Parser): Renamed from
2090 `How Can I Reset @code{yyparse}', since texinfo does not allow
2091 arbitrary @ in node names.
2092
2093 * m4/Makefile.am (EXTRA_DIST): Add the following files, which
2094 shouldn't be needed according to the gettext 0.12.1 documentation
2095 but which seem to be needed anyway: codeset.m4 glibc21.m4
2096 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4
2097 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
2098 * po/Makefile.in.in: Upgrade to gettext 0.12.1 version.
2099
2100 * lib/.cvsignore: Add stdbool.h.
2101 * m4/.cvsignore: Add nls.m4, po.m4.
2102
2103 Upgrade to CVS gnulib.
2104 * stdbool_.h: File renamed from stdbool.h.in.
2105 * configure.ac (AM_STDBOOL_H): Invoke this instead of
2106 AC_HEADER_STDBOOL.
2107 (AM_GNU_GETTEXT): Put brackets around args, as latest manual suggests.
2108 (AM_GNU_GETTEXT_VERSION): Update to 0.12.1.
2109 * lib/Makefile.am (EXTRA_DIST): Add stdbool_.h.
2110 (MOSTLYCLEANFILES): New var.
2111 ($(libbison_a_OBJECTS)): Depend on $(STDBOOL_H).
2112 (stdbool.h): New rule.
2113 * lib/dirname.c, lib/dirname.h, lib/hash.c, lib/hash.h,
2114 lib/malloc.c, lib/obstack.h, lib/quote.c, lib/realloc.c,
2115 lib/strcasecmp.c, lib/xalloc.h, m4/alloca.m4, m4/onceonly.m4,
2116 m4/quote.m4: Upgrade to today's gnulib.
2117
2118 * tests/calc.at (AT_CHECK_CALC): New option EXPECTED-TO-FAIL.
2119 (AT_CHECK_CALC_LALR1_CC): Use it, since the C++ LALR parser fails
2120 the tests right now.
2121 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Ensure yylex and
2122 yyerror are declared before use; C99 requires this.
2123
21242003-06-09 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2125
2126 * data/glr.c (YYERROR): Update definition to reset yyerrState to 0
2127 first.
2128 (yyrecoverSyntaxError): Correct the logic for setting and testing
2129 yyerrState.
2130 Correct comment on handling EOF.
2131 Allow states with only a default reduction, rather than failing
2132 (I can't quite reconstruct why these were not allowed before).
2133
2134 Fixes to avoid problem that $-N rules in GLR parsers can cause
2135 buffer overruns, corrupting state.
2136
2137 * src/output.c (prepare_rules): Output max_left_semantic_context
2138 definition.
2139 * src/reader.h (max_left_semantic_context): New variable declaration.
2140 * src/scan-gram.l (max_left_semantic_context): Define.
2141 (handle_action_dollar): Update max_left_semantic_context.
2142 * data/glr.c (YYMAXLEFT): New definition.
2143 (yydoAction): Increase size of yyrhsVals by YYMAXLEFT.
2144 (yyresolveAction): Ditto.
2145
2146 Fixes to problems with location handling in GLR parsers reported by
2147 Frank Heckenbach (2003/06/05).
2148
2149 * data/glr.c (YYLTYPE): Make trivial if locations not used.
2150 (YYRHSLOC): Add parentheses, and define only if locations used.
2151 (YYLLOC_DEFAULT): Add parentheses, and give trivial definition if
2152 locations not used.
2153 (yyuserAction): Use YYLLOC_DEFAULT to set *yylocp.
2154 (yydoAction): Remove redundant initialization of *yyvalp and *yylocp.
2155
2156 * tests/cxx-type.at: Exercise location information; update tests
2157 to differentiate output with and without locations.
2158 Remove forward declarations of yylex and yyerror---caused errors
2159 because default YYLTYPE not yet defined.
2160 Change semantic actions to compute strings, rather than printing
2161 them directly (to test proper passing of semantics values). Change
2162 output to prefix notation and update test data and expected results.
2163 (yylex): Track locations.
2164 (stmtMerge): Return value rather than printing, and include arguments
2165 in value.
2166
21672003-06-03 Paul Eggert <eggert@twinsun.com>
2168
2169 Avoid warnings generated by GCC 2.95.4 when Bison is
2170 configured with --enable-gcc-warnings.
2171 * data/lalr1.cc (yy::]b4_parser_class_name[::parse,
2172 yy::]b4_parser_class_name[::translate_,
2173 yy::Stack::operator[] (unsigned),
2174 yy::Stack::operator[] (unsigned) const,
2175 yy::Slice::operator[] (unsigned),
2176 yy::Slice::operator[] (unsigned) const):
2177 Rename local vars to avoid warnings.
2178 * tests/glr-regression.at (Improper handling of embedded actions
2179 and $-N in GLR parsers): Remove unused local variable from yylex.
2180 * tests/regression.at (_AT_DATA_DANCER_Y): Declare yylex to take
2181 (void) as arg when not pure, since we now assume C89 when building
2182 Bison. Pacify GCC by using parameter.
2183
21842003-06-02 Paul Eggert <eggert@twinsun.com>
2185
2186 * data/lalr1.cc (yy::Position::lines, yy::Position::columns,
2187 yy::Location::lines, yy::Location::columns): Rename arguments
2188 to avoid shadowing; this removes a warning generated by GCC 3.3.
2189
21902003-06-01 Paul Eggert <eggert@twinsun.com>
2191
2192 Don't pass C-only warning optins (e.g., -Wmissing-declarations)
2193 to g++, as GCC 3.3 complains if you do it.
2194 * configure.ac (WARNING_CXXFLAGS): New subst. Set it to
2195 everything that WARNING_CFLAGS has, except omit warnings
2196 not suitable for C++.
2197 (AC_PROG_CXX): Use this instead of AC_CHECK_PROGS([CXX], [g++]).
2198 * tests/atlocal.in (CXXFLAGS): New var.
2199 * tests/local.at (AT_COMPILE_CXX): Use it instead of CFLAGS.
2200
2201 Fix a GLR parser bug I reported in February; see
2202 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00008.html>.
2203 The problem was that GLR parsers did not conform to the C standard,
2204 because actions like { $1 = $2 + $3; } expanded to expressions
2205 that invoked YYFILL in separate subexpressions, and YYFILL assigned
2206 to a local variable. The C standard says that expressions
2207 like (var = f ()) + (var = f ()) have undefined behavior.
2208 Another problem was that GCC sometimes issues warnings that
2209 yyfill and its parameters are unused.
2210
2211 * data/glr.c (yyfillin): Renamed from the old yyfill. Mark
2212 as possibly unused.
2213 (yyfill): New function.
2214 (YYFILL): Use it.
2215 (yyuserAction): Change type of yynormal to bool, so that it matches
2216 the new yyfill signature. Mark it as possibly unused.
2217
2218
2219 Follow up on a bug I reported in February, where a Bison-generated
2220 parser can loop. Provide a test case and a fix for yacc.c. I
2221 don't have a fix for lalr1.cc or for glr.c, unfortunately.
2222 The original bug report is in:
2223 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00044.html>
2224
2225 * data/yacc.c (YYERROR): Now just 'goto yyerrorlab', since the
2226 macro's size was becoming unwieldy.
2227 (yyerrlab): Do not discard an empty lookahead symbol, as this
2228 might destroy garbage.
2229 (yyerrorlab): New label, with the old contents of YYERROR,
2230 plus the following change: pop the stack of rhs corresponding
2231 to the production that invoked YYERROR. That is how Yacc
2232 behaves, and POSIX requires this behavior.
2233 (yyerrlab1): Use YYPOPSTACK instead of its definiens.
2234 * tests/calc.at (_AT_DATA_CALC_Y): Include unistd.h if available.
2235 Define 'alarm' to do nothing if unistd.h is not available.
2236 Add a new rule "exp: '-' error;" to test the above change to
2237 data/yacc.c. Use 'alarm' to abort any test taking longer than
2238 10 seconds, as it's probably looping.
2239 (AT_CHECK_CALC): Test recovery from error in new grammar rule.
2240 Also, the new yacc.c generates two fewer diagnostics for an
2241 existing test.
2242
22432003-05-24 Paul Eggert <eggert@twinsun.com>
2244
2245 * data/glr.c (YYSTACKEXPANDABLE): Do not evaluate
2246 YYSTYPE_IS_TRIVIAL or YYSTYPE_IS_TRIVIAL unless they are defined.
2247 This fixes a problem reported by John Bowman when the Compaq/HP
2248 Alpha cxx compiler happy (e.g. using cxx -D__USE_STD_IOSTREAM
2249 -ansi -Wall -gall).
2250 * data/yacc.c (union yyalloc): Likewise.
2251 (YYCOPY): Do not evaluate __GNUC__ unless it is defined.
2252
2253 Switch from 'int' to 'bool' where that makes sense.
2254
2255 * lib/abitset.c (abitset_test, abitset_empty_p, abitset_equal_p,
2256 abitset_subset_p, abitset_disjoint_p, abitset_and_cmp,
2257 abitset_andn_cmp, abitset_or_cmp, abitset_xor_cmp, abitset_and_or,
2258 abitset_and_or_cmp, abitset_andn_or_cmp, abitset_or_and_cmp):
2259 Return or accept bool, not int. All callers changed.
2260 * lib/bbitset.h: (bitset_toggle_, bitset_copy_, bitset_and_or_cmp_,
2261 bitset_andn_or_cmp_, bitset_or_and_cmp_): Likewise.
2262 * lib/bitset.c (bitset_only_set_p, bitset_print, bitset_toggle_,
2263 bitset_copy_, bitset_op4_cmp, bitset_and_or_cmp_, bitset_andn_or_cmp_,
2264 bitset_or_and_cmp_): Likewise.
2265 * lib/bitset.h (bitset_test, bitset_only_set_p): Likewise.
2266 * lib/bitset_stats.c (bitset_stats_print, bitset_stats_toggle,
2267 bitset_stats_test, bitset_stats_empty_p, bitset_stats_disjoint_p,
2268 bitset_stats_equal_p, bitset_stats_subset_p, bitset_stats_and_cmp,
2269 bitset_stats_andn_cmp, bitset_stats_or_cmp, bitset_stats_xor_cmp,
2270 bitset_stats_and_or_cmp, bitset_stats_andn_or_cmp,
2271 bitset_stats_or_and_cmp): Likewise.
2272 * lib/ebitset.c (ebitset_elt_zero_p, ebitset_equal_p, ebitset_copy_cmp,
2273 ebitset_test, ebitset_empty_p, ebitset_subset_p, ebitset_disjoint_p,
2274 ebitset_op3_cmp, ebitset_and_cmp, ebitset_andn_cmp, ebitset_or_cmp,
2275 ebitset_xor_cmp): Likewise.
2276 * lib/lbitset.c (lbitset_elt_zero_p, lbitset_equal_p, lbitset_copy_cmp,
2277 lbitset_test, lbitset_empty_p, lbitset_subset_p, lbitset_disjoint_p,
2278 lbitset_op3_cmp, lbitset_and_cmp, lbitset_andn_cmp, lbitset_or_cmp,
2279 lbitset_xor_cmp): Likewise.
2280 * lib/bbitset.h: Include <stdbool.h>.
2281 (struct bitset_vtable): The following members now return bool, not
2282 int: toggle, test, empty_p, disjoint_p, equal_p, subset_p,
2283 and_cmp, andn_cmp, or_cmp, xor_cmp, and_or_cmp, andn_or_cmp,
2284 or_and_cmp).
2285 * src/conflicts.c (count_rr_conflicts): Likewise.
2286 * lib/bitset_stats.h (bitset_stats_enabled): Now bool, not int.
2287 All uses changed.
2288 * lib/ebitset.c (ebitset_obstack_init): Likewise.
2289 * lib/lbitset.c (lbitset_obstack_init): Likewise.
2290 * src/getargs.c (debug_flag, defines_flag, locations_flag,
2291 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
2292 graph_flag): Likewise.
2293 * src/getargs.h (debug_flag, defines_flag, locations_flag,
2294 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
2295 graph_flag): Likewise.
2296 * src/output.c (error_verbose): Likewise.
2297 * src/output.h (error_verbose): Likewise.
2298 * src/reader.c (start_flag, typed): Likewise.
2299 * src/reader.h (typed): Likewise.
2300 * src/getargs.c (LOCATIONS_OPTION): New constant.
2301 (long_options, getargs): Use it.
2302 * src/lalr.c (build_relations): Use bool, not int.
2303 * src/nullable.c (nullable_compute): Likewise.
2304 * src/print.c (print_reductions): Likewise.
2305 * src/tables.c (action_row, pack_vector): Likewise.
2306 * src/muscle_tab.h (MUSCLE_INSERT_BOOL): New macro.
2307 * src/output.c (prepare): Use it.
2308 * src/output.c (token_definitions_output,
2309 symbol_destructors_output, symbol_destructors_output): Use string,
2310 not boolean integer, to keep track of whether to output separator.
2311 * src/print_graph.c (print_core): Likewise.
2312 * src/state.c (state_rule_lookaheads_print): Likewise.
2313
2314 * config/install-sh: Sync from automake 1.7.5.
2315
23162003-05-14 Paul Eggert <eggert@twinsun.com>
2317
2318 * src/parse-gram.y (rules_or_grammar_declaration): Require a
2319 semicolon after a grammar declaration, in the interest of possible
2320 future changes to the Bison input language.
2321 Do not allow a stray semicolon at the start of the grammar.
2322 (rhses.1): Allow one or more semicolons after any rule, including
2323 just before "|" as required by POSIX.
2324 * tests/input.at (Torturing the Scanner): Add tests for ";|" in a
2325 grammar.
2326
23272003-05-14 Alexandre Duret-Lutz <adl@gnu.org>
2328
2329 %parse-param support for lalr1.cc.
2330
2331 * data/lalr1.cc (b4_parse_param_decl, b4_parse_param_cons,
2332 b4_cc_constructor_calls, b4_cc_constructor_call,
2333 b4_parse_param_vars, b4_cc_var_decls, b4_cc_var_decl): New m4
2334 definitions.
2335 (yy::b4_parser_class_name::b4_parser_class_name): Take extra
2336 parse-param arguments.
2337 (yy::b4_parser_class_name): Declare instance variables to
2338 hold parse-param arguments.
2339 * tests/calc.at: s/value/semantic_value/ because value clashes
2340 with a member of yy::b4_parser_class_name. Adjust C++ code
2341 to handle %parse-param. Enable %parse-param test in C++.
2342
23432003-05-12 Paul Eggert <eggert@twinsun.com>
2344
2345 * doc/bison.texinfo (How Can I Reset @code{yyparse}): Reword the
2346 English a bit. Fix fclose typo. Change "const char" to "char
2347 const", and use ANSI C rather than K&R for "main". Suggest
2348 YY_FLUSH_BUFFER over yyrestart (as that is what Flex recommends)
2349 and suggest yy_switch_to_buffer.
2350
23512003-05-05 Paul Eggert <eggert@twinsun.com>
2352
2353 * lib/bitset.h (__INT_TO_PTR): Define to a value that presumes
2354 C89. This avoids a diagnostic on compilers that define __STDC__
2355 to 0, fixing a problem with Tru64 cc reported by Martin Mokrejs in
2356 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
2357
23582003-05-03 Paul Eggert <eggert@twinsun.com>
2359
2360 * lib/bitset.h (BITSET_FOR_EACH, BITSET_FOR_EACH_REVERSE):
2361 Do not overrun array bounds.
2362 This should fix a bug reported today by Olatunji Oluwabukunmi in
2363 <http://lists.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
2364
23652003-04-29 Akim Demaille <akim@epita.fr>
2366
2367 * src/gram.h, src/gram.c (pure_parser, glr_parser): Move to...
2368 * src/getargs.c, src/getargs.h: here, as bool, not int.
2369 (nondeterministic_parser): New.
2370 * src/parse-gram.y, src/scan-gram.l: Support
2371 %nondeterministic-parser.
2372 * src/output.c (prepare): Use nondeterministic_parser instead
2373 of glr_parser where appropriate.
2374 * src/tables.c (conflict_row, action_row, save_row)
2375 (token_actions, token_actions, pack_vector): Ditto.
2376
23772003-04-29 Akim Demaille <akim@epita.fr>
2378
2379 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
2380
23812003-04-29 Akim Demaille <akim@epita.fr>
2382
2383 * tests/calc.at: Also test yacc.c and glr.c (but not lalr1.cc yet)
2384 with %pure-parser and %locations to exercise the patch from Yakov
2385 Markovitch below.
2386
23872003-04-28 Tim Van Holder <tim.van.holder@pandora.be>
2388
2389 * data/yacc.c: (b4_lex_param): Corrected for the case where
2390 %lex-param is provided and %pure-parser isn't.
2391
23922003-04-27 Paul Eggert <eggert@twinsun.com>
2393
2394 Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
2395 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
2396 * data/yacc.c (YYSTACK_ALLOC): Don't evaluate YYSTACK_USE_ALLOCA
2397 if it is not defined.
2398 (YYMAXDEPTH): Don't evaluate YYMAXDEPTH if it is not defined.
2399
24002003-04-26 Paul Eggert <eggert@twinsun.com>
2401
2402 * data/lalr1.cc (yy::Parser::pact_ninf_, yy::Parser::table_ninf_):
2403 Declare to be of type suitable for the ninf value itself, not of
2404 type suitable for the corresponding table, since the latter might
2405 be unsigned but the ninf value might be negative. This fixes a
2406 bug reported by Alexandre Duret-Lutz in
2407 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
2408
2409 * configure.ac (AC_FUNC_ERROR_AT_LINE): Remove, since gl_ERROR
2410 invokes it. We shouldn't invoke it twice because it will attempt
2411 to put error.o in the archive twice. This fixes a glitch reported
2412 by Martin Mokrejs in
2413 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
2414
24152003-04-21 Paul Eggert <eggert@twinsun.com>
2416
2417 * m4/error.m4: Update from Bruno Haible's 2003-04-14 patch
2418 to gnulib.
2419
24202003-04-21 Yakov Markovitch <Markovitch@iso.ru>
2421
2422 * data/glr.c (yyexpandGLRStack) [!YYSTACKEXPANDABLE]:
2423 Fix obvious typo that results in uncompilable GLR parsers
2424 when both %pure-parser and %locations are used. (trivial change)
2425
24262003-04-17 Paul Eggert <eggert@twinsun.com>
2427
2428 * src/scan-gram.l: Add %option nounput, since we no longer use unput.
2429 (unexpected_eof): Renamed from unexpected_end_of_file, for brevity.
2430 Do not insert the expected token via unput, as this runs afoul
2431 of a POSIX-compatibility bug in flex 2.5.31.
2432 All uses changed to BEGIN the parent state,
2433 since we no longer insert the expected token via unput.
2434 * tests/regression.at (Invalid inputs): Remove cascaded diagnostic
2435 that is no longer emitted after the above change.
2436
2437 * src/conflicts.c (set_conflicts): Resolve all conflicts, not just
2438 the first one. This change is from Paul Hilfinger, and it fixes
2439 regression reported by Werner Lemberg in
2440 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
2441
2442 (resolve_sr_conflict): Don't invoke state_errs_set
2443 unless one or more tokens have been explicitly made errors.
2444 Otherwise, the above change causes Bison to abort.
2445
2446 * tests/existing.at (GNU pic Grammar): New test case, taken from
2447 Lemberg's email.
2448
24492003-03-31 Akim Demaille <akim@epita.fr>
2450
2451 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
2452
24532003-03-31 Akim Demaille <akim@epita.fr>
2454
2455 * src/output.c (prepare_symbols): Avoid trailing spaces in the
2456 output.
2457
24582003-03-31 Akim Demaille <akim@epita.fr>
2459
2460 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
2461 From Paul Hilfinger.
2462
24632003-03-29 Akim Demaille <akim@epita.fr>
2464
2465 * m4/error.m4: Do not put under dynamic conditions some code which
2466 expansion is under static control.
2467
24682003-03-29 Akim Demaille <akim@epita.fr>
2469
2470 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
2471
24722003-03-29 Akim Demaille <akim@epita.fr>
2473
2474 * doc/bison.texinfo (Strings are Destroyed): New.
2475
24762003-03-13 Paul Eggert <eggert@twinsun.com>
2477
2478 * .cvsignore: Add configure.lineno.
2479 * src/.cvsignore: Add yacc.
2480 * tests/.cvsignore: Add testsuite.log.
2481 * doc/fdl.texi: Sync with latest FSF version.
2482
24832003-03-12 Paul Eggert <eggert@twinsun.com>
2484
2485 * scan-gram.l (YY_USER_INIT): Initialize code_start, too.
2486 (<INITIAL><<EOF>>, <SC_PRE_CODE><<EOF>>): Set *loc to the scanner
2487 cursor, instead of leaving it undefined. This fixes a bug
2488 reported by Tim Van Holder in
2489 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
2490 * tests/input.at (Torturing the Scanner): Test the scanner on
2491 an empty input file, which was Tim Van Holder's test case.
2492
2493 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): When checking whether
2494 <sys/resource.h> can be included, include sys/time.h and
2495 sys/times.h first, if available. This works around the SunOS
2496 4.1.4 porting bug reported by Bruce Becker in
2497 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
2498
2499 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't
2500 AC_CHECK_HEADERS([sys/wait.h]), as this interferes with
2501 AC_HEADER_SYS_WAIT.
2502
2503 Merge changes from gnulib. This was prompted because the CVS
2504 snapshot didn't build on Solaris 7 due to strnlen problems.
2505
2506 These changes need to be merged back into gnulib:
2507 * lib/hash.c: Include <stdbool.h> unconditionally.
2508 * m4/onceonly.m4 (m4_quote): New macro.
2509 (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE):
2510 Quote AC_FOREACH variable-expansions properly.
2511 The 2003-01-03 obstack.h change also needs merging.
2512 {end of changes requiring merging}
2513
2514 * lib/stdbool.h.in, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
2515 m4/getopt.m4, m4/hash.m4, m4/malloc.m4, m4/memchr.m4,
2516 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/quote.m4,
2517 m4/quotearg.m4, m4/realloc.m4, m4/stpcpy.m4, m4/strnlen.m4,
2518 m4/strtol.m4, m4/strtoul.m4, m4/unlocked-io.m4, m4/xalloc.m4:
2519 New files, imported from gnulib.
2520 * m4/Makefile.am (EXTRA_DIST): Add the new m4/*.m4 files mentioned
2521 above.
2522
2523 * lib/mbswidth.c, m4/error.m4, m4/mbrtowc.m4, m4/mbswidth.m4,
2524 m4/memcmp.m4, m4/prereq.m4, m4/stdbool.m4: Update to current
2525 gnulib sources.
2526
2527 * configure.ac (gl_DIRNAME, gl_GETOPT, gl_HASH, gl_QUOTE, gl_XALLOC):
2528 Add.
2529 (gl_ERROR): New, replacing jm_PREREQ_ERROR.
2530 (gl_FUNC_ALLOCA): New, replacing AC_FUNC_ALLOCA.
2531 (gl_FUNC_STPCPY): New, replacing AC_REPLACE_FUNCS(stpcpy).
2532 (gl_FUNC_STRNLEN): New, replacing AC_FUNC_STRNLEN.
2533 (gl_MBSWIDTH): New, replacing jm_PREREQ_MBSWIDTH.
2534 (gl_OBSTACK): New, replacing AC_FUNC_OBSTACK.
2535 (gl_QUOTEARG): New, replacing jm_PREREQ_QUOTEARG.
2536 (jm_FUNC_GLIBC_UNLOCKED_IO, gl_FUNC_STPCPY, gl_FUNC_STRTOL): New.
2537 (jm_FUNC_MALLOC): New, replacing AC_FUNC_MALLOC.
2538 (jm_FUNC_REALLOC): New, replacing AC_FUNC_REALLOC.
2539 (jm_PREREQ_ARGMATCH): Remove.
2540 (AC_REPLACE_FUNCS): Remove memchr, memrchr, stpcpy, strtol, strtoul.
2541 * lib/Makefile.am (libbison_a_SOURCES): Add argmatch.c, argmatch.h.
2542
2543 * src/system.h: Include <stdbool.h> unconditionally.
2544
2545 * lib/bbitset.h: Include <limits.h> unconditionally. We have been
2546 assuming at least C89 in the bitset code for some time now.
2547
25482003-03-03 Akim Demaille <akim@epita.fr>
2549
2550 * ro.po: New.
2551
25522003-03-02 Akim Demaille <akim@epita.fr>
2553
2554 * doc/bison.texinfo (Table of Symbols): Reactivate the
2555 documentation for %lex-param, and %parse-param.
2556
25572003-03-02 Akim Demaille <akim@epita.fr>
2558
2559 * data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to
2560 generate verbose error messages.
2561 Use the number of tokens as an upper bound in yytname, as it
2562 cannot be a non terminal.
2563
25642003-03-02 Akim Demaille <akim@epita.fr>
2565
2566 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
2567 message.
2568
25692003-03-02 Akim Demaille <akim@epita.fr>
2570
2571 * tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New.
2572 Use them to exercise yycheck overrun.
2573 Based on Andrew Suffield's grammar.
2574
25752003-03-02 Akim Demaille <akim@epita.fr>
2576
2577 Create tests/local.at for Bison generic testing macros.
2578
2579 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to...
2580 * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
2581 This new file.
2582 * tests/calc.at (AT_CHECK_CALC): Adjust.
2583 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR)
2584 (AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to...
2585 * tests/local.at: here.
2586 (AT_COMPILE_CXX): Tags the tests using it as c++.
2587 Ignore the test if CXX is not functional.
2588
25892003-03-01 Paul Eggert <eggert@twinsun.com>
2590
2591 * src/scan-gram.l (code_start): Initialize it to scanner_cursor,
2592 not loc->end, since loc->end might contain garbage and this leads
2593 to undefined behavior on some platforms.
2594 (id_loc, token_start): Use (IF_LINTed) initial values that do not
2595 depend on *loc, so that the reader doesn't give the the false
2596 impression that *loc is initialized.
2597 (<INITIAL>"%%"): Do not bother setting code_start, since its value
2598 does not survive the return.
2599
26002003-03-01 Akim Demaille <akim@epita.fr>
2601
2602 * src/scan-gram.l (code_start): Always initialize it when entering
2603 into yylex, as SC_EPILOGUE is activated *before* the corresponding
2604 yylex invocation. An alternative would be making it static, but
2605 then it starts with the second %%'s beginning, instead of its end.
2606
26072003-02-28 Paul Eggert <eggert@twinsun.com>
2608
2609 * lib/mbswidth.c: Include <wchar.h> before "mbswidth.h", to work
2610 around a UnixWare 7.1.1 porting bug reported by John Hughes in
2611 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
2612
26132003-02-26 Paul Eggert <eggert@twinsun.com>
2614
2615 * README: Mention compiler bug in Sun Forte Developer 6 update 2.
2616 Remove Sequent/Pyramid discussion (nobody uses them any more).
2617 Merge VMS and MS-DOS discussion; these ports may well be dead
2618 but let's keep mentioning them for now. Put <> around email
2619 addresses. Add copyright notice.
2620
26212003-02-24 Paul Eggert <eggert@twinsun.com>
2622
2623 * data/glr.c (yy_reduce_print): yylineno -> yylno,
2624 to avoid collision with flex use of yylineno.
2625 Problem reported by Bruce Lilly in
2626 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
2627 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
2628 * data/yacc.c (yy_reduce_print): Likewise.
2629
2630 * config/depcomp: Sync with Automake 1.7.3.
2631
26322003-02-21 Akim Demaille <akim@epita.fr>
2633
2634 * data/lalr1.cc: Use temporary variables instead of casts to
2635 change integer types.
2636 Suggested by Paul Eggert.
2637
26382003-02-21 Akim Demaille <akim@epita.fr>
2639
2640 * doc/bison.texinfo: Use "location" consistently to refer to @n,
2641 to avoid confusions with lalr1.cc's notion of Position.
2642 Suggested by Paul Eggert.
2643
26442003-02-20 Akim Demaille <akim@epita.fr>
2645
2646 * data/lalr1.cc (position.hh): Make sure "columns" never pushes
2647 before initial_columns.
2648 (location.hh): Use consistent variable names when defining the
2649 operator<<.
2650 Use "last" so that we subtract from Positions, not from unsigned.
2651
26522003-02-20 Akim Demaille <akim@epita.fr>
2653
2654 * data/lalr1.cc (position.hh): New subfile, including the extended
2655 and Doxygen'ed documentation of class Position.
2656 (location.hh): Use it.
2657 Document a` la Doxygen.
2658 With the help of Benoit Perrot.
2659
26602003-02-20 Akim Demaille <akim@epita.fr>
2661
2662 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
2663 AT_YACC_IF.
2664 Redefine AT_YYERROR_SEES_LOC_IF using it.
2665 (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
2666 not defined.
2667 Don't use the location in yy::Parser::error_ and
2668 yy::Parser::print_ when not %locations.
2669 Activate more lalr1.cc tests.
2670
26712003-02-19 Akim Demaille <akim@epita.fr>
2672
2673 * data/lalr1.cc: When displaying a line number, be sure to make it
2674 an int.
2675
26762003-02-19 Akim Demaille <akim@epita.fr>
2677
2678 * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
2679 Remove, useless.
2680 (YYABORT, YYACCEPT, YYERROR): New.
2681 * tests/calc.at: Renable the lalr1.cc test.
2682
26832003-02-19 Akim Demaille <akim@epita.fr>
2684
2685 * tests/calc.at (AT_CHECK_CALC): Check different scenarios of
2686 error recovery, mixing with/without pops and discarding of the
2687 lookahead.
2688 Exercise YYERROR.
2689 Disable the lalr1.cc tests as currently it doesn't support YYERROR.
2690
26912003-02-17 Paul Eggert <eggert@twinsun.com>
2692
2693 * tests/atlocal.in (LDFLAGS, LIBS): New vars.
2694 * tests/testsuite.at (AT_COMPILE): Use them.
2695 This fixes the testsuite problem reported by Robert Lentz in
2696 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
2697
26982003-02-12 Paul Eggert <eggert@twinsun.com>
2699
2700 * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
2701 Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
2702 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
2703 * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
2704 Check for malloc failure, for consistency with yacc.c.
2705 (yytname_size): Remove, for consistency with yacc.c.
2706
2707 The bug still remains in data/lalr1.cc, as I didn't have time
2708 to fix it there.
2709
27102003-02-06 Akim Demaille <akim@epita.fr>
2711
2712 * configure.ac (GXX): Rename as...
2713 (CXX): this, to keep the original Autoconf semantics.
2714 Require 2.57.
2715 * data/lalr1.cc: Fix b4_copyright invocations.
2716 If YYDEBUG is not defined, don't depend upon name_ being defined.
2717 (location.hh): Include string and iostream.
2718 (Position::filename): New member.
2719 (Position::Position ()): New.
2720 (operator<< (Position)): New.
2721 (operator- (Position, int)): New.
2722 (Location::first, Location::last): Rename as...
2723 (Location::begin, Location::end): these, to mock the conventional
2724 iterator names.
2725 (operator<< (Location)): New.
2726 * tests/atlocal.in (CXX): New.
2727 * tests/testsuite.at (AT_COMPILE_CXX): New.
2728 * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
2729 locations in a more synthetic way.
2730 (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
2731 lalr1.cc is used.
2732 Adjust the C locations to match those from Emacs: first column is
2733 column 0.
2734 Change all the expected results.
2735 Conform to the GCS: simplify the locations when applicable.
2736 (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
2737 (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
2738 these CPP macros with the m4 macros new defined by...
2739 (AT_CHECK_PUSHDEFS): this, i.e.:
2740 (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
2741 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
2742 New macros.
2743 (AT_CHECK_POPDEFS): Undefine them.
2744 (AT_CHECK_CALC_LALR1_CC): New.
2745 Use it for the first lalr1.cc test.
2746
27472003-02-04 Akim Demaille <akim@epita.fr>
2748
2749 * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
2750 Location as is defined.
2751
27522003-02-04 Akim Demaille <akim@epita.fr>
2753
2754 * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
2755 name_ being defined.
2756
27572003-02-03 Paul Eggert <eggert@twinsun.com>
2758
2759 * src/gram.h (start_symbol): Remove unused decl.
2760
2761 Use more-consistent naming conventions for local vars.
2762
2763 * src/derives.c (derives_compute): Change type of local var from
2764 int to rule_number.
2765 * src/gram.c (grammar_rules_partial_print): Likewise.
2766 * src/print.c (print_core): Likewise.
2767 * src/reduce.c (reduce_grammar_tables): Likewise.
2768
2769 * src/gram.c (grammar_dump): Change name of item_number *
2770 local var from r to rp.
2771 * src/nullable.c (nullable_compute): Likewise.
2772
2773 * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
2774
2775 * src/gram.h (symbol_number_as_item_number): Use sym, not s,
2776 for symbol or symbol_number var.
2777 * src/reader.c (grammar_start_symbol_set): Likewise.
2778 * src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
2779 Likewise.
2780 * src/state.c (transitions_to): Likewise.
2781 * src/state.h: Likewise.
2782 * src/tables.c (symbol_number_to_vector_number): Likewise.
2783
2784 * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
2785 char * var.
2786
2787 * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
2788 var.
2789
2790 * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
2791 var.
2792
2793 * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
2794 Use str, not s, for char * var. Use ch, not c, for character var.
2795 Use size for size var.
2796
2797 * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
2798 char * var.
2799 (uniqstr_print, uniqst_print_processor): Use ustr, not s, for
2800 uniqstr var.
2801 * src/uniqstr.h: Likewise.
2802
2803 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
2804 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
2805 get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
2806 get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
2807 param to have same name as that of enum, so that we don't use
2808 "s" to stand for a non-state.
2809
28102003-02-02 Akim Demaille <akim@epita.fr>
2811
2812 * src/scan-skel.l: Scan more than one inert character per yylex
2813 invocation.
2814
28152003-02-01 Paul Eggert <eggert@twinsun.com>
2816
2817 Version 1.875a.
2818
2819 * po/LINGUAS: Add ms.
2820
28212003-01-30 Akim Demaille <akim@epita.fr>
2822
2823 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
2824
28252003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2826
2827 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
2828 of $1.
2829
2830 Changes in response to error report by S. Eken: GLR mode does not
2831 handle negative $ indices or $ indices in embedded rules correctly.
2832 See <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
2833
2834 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
2835 (b4_rhs_location): Ditto.
2836 (yyfill): New function to copy from stack tree into array
2837 incrementally.
2838 (yyuserAction): Modify to allow incremental move of semantic values
2839 to rhs array when in GLR mode.
2840 Define YYFILL to use in user-defined actions to fill semantic array
2841 as needed.
2842 Remove dummy use of yystack, as there is now a guaranteed use.
2843 (yydoAction): Modify to allow incremental move of semantic values
2844 to rhs array when in GLR mode.
2845 (yyresolveAction): Ditto.
2846 (yyglrShiftDefer): Update comment.
2847 (yyresolveStates): Use X == NULL for pointers, not !X.
2848 (yyglrReduce): Ditto.
2849 (yydoAction): Ditto
2850
2851 * tests/glr-regr1.at: Rename to ...
2852 * tests/glr-regression.at: Add new regression test for the problems
2853 described above (adapted from S. Eken).
2854 Update copyright notice.
2855 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
2856 * tests/Makefile.am: Ditto.
2857
28582003-01-28 Paul Eggert <eggert@twinsun.com>
2859
2860 * data/lalr1.cc: Do not use @output_header_name@ unless
2861 b4_defines_flag is set. This fixes two bugs reported by
2862 Tim Van Holder in
2863 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
2864 and <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
2865
28662003-01-21 Paul Eggert <eggert@twinsun.com>
2867
2868 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
2869 we don't need to worry about yyerrlab1 being reported as an
2870 "unused label" by non-GCC C compilers. The downside is that if
2871 locations are used then a couple of statements are duplicated each
2872 time YYERROR is invoked, but the upside is that the warnings
2873 should vanish.
2874 (yyerrlab1): Move code to YERROR.
2875 (yyerrlab2): Remove. Change uses back to yyerrlab1.
2876 This reverts some of the 2002-12-27 change.
2877
28782003-01-17 Paul Eggert <eggert@twinsun.com>
2879
2880 * src/output.c (symbol_printers_output): Fix typo that led
2881 to core dump. Problem reported by Antonio Rus in
2882 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
2883
28842003-01-13 Akim Demaille <akim@epita.fr>,
2885 Quoc Peyrot <chojin@lrde.epita.fr>,
2886 Robert Anisko <anisko_r@lrde.epita.fr>
2887
2888 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
2889 when the stacks contain one element, as the loop would otherwise
2890 free the last state, and then use the top state (the one we just
2891 popped). This means that the initial elements will not be freed
2892 explicitly, as is the case in yacc.c; it is not a problem, as
2893 these elements have fake values.
2894
28952003-01-11 Paul Eggert <eggert@twinsun.com>
2896
2897 * NEWS: %expect-violations are now just warnings, reverting
2898 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
2899 bootstrapping problem reported by Matthias Klose; see
2900 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
2901 * src/conflicts.c (conflicts_print): Likewise.
2902 * tests/conflicts.at (%expect not enough, %expect too much,
2903 %expect with reduce conflicts): Likewise.
2904 * doc/bison.texinfo (Expect Decl): Document this. Also mention
2905 that the warning is enabled if the number of conflicts changes
2906 (not necessarily increases).
2907
2908 * src/getargs.c (version): Update copyright year.
2909
29102003-01-09 Akim Demaille <akim@epita.fr>
2911
2912 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
2913
29142003-01-08 Paul Eggert <eggert@twinsun.com>
2915
2916 * Makefile.maint (WGETFLAGS):
2917 New macro, containing "-C off" to disable proxy caches.
2918 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
2919 (rel-check): Use $(WGET) instead of wget.
2920
29212003-01-06 Paul Eggert <eggert@twinsun.com>
2922
2923 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
2924 the GLR paper of Scott, Johnstone and Hussain.
2925
29262003-01-04 Paul Eggert <eggert@twinsun.com>
2927
2928 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
2929 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
2930 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
2931 (EXTRA_LIBRARIES): New var, for liby.a.
2932 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
2933 (EXTRA_SCRIPTS): New var, for yacc.
2934
2935 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
2936 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
2937 Problem reported by Nelson H. F. Beebe.
2938
29392003-01-03 Paul Eggert <eggert@twinsun.com>
2940
2941 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
2942 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
2943 when compiling Bison 1.875's `bitset bset = obstack_alloc
2944 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
2945
2946 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
2947 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
2948 grow to a huge size with typical invocation.
2949
2950 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
2951 Use the pattern recommended by Autoconf 2.57, except also protect
2952 against double-definition.
2953 * src/system.h: Likewise.
2954 Portability issues reported by Nelson H. F. Beebe.
2955
2956 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
2957 All uses changed. Provide a definition in both C and C++.
2958 (yytrue, yyfalse): Define even if defined (__cplusplus).
2959
2960 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
2961 Reported by Nelson H. F. Beebe.
2962
2963 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
2964
29652003-01-02 Paul Eggert <eggert@twinsun.com>
2966
2967 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
2968 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
2969 Bug reported by Nelson H. F. Beebe.
2970
29712003-01-01 Paul Eggert <eggert@twinsun.com>
2972
2973 * Version 1.875.
2974
29752002-12-30 Paul Eggert <eggert@twinsun.com>
2976
2977 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
2978 Moved here from...
2979 (<INITIAL>","): Here. This causes stray "," to be treated
2980 more uniformly.
2981
2982 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
2983 last brace in braced code when not in Yacc mode, for compatibility
2984 with Bison 1.35. This resurrects the 2001-12-15 patch to
2985 src/reader.c.
2986
2987 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
2988 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
2989
29902002-12-28 Paul Eggert <eggert@twinsun.com>
2991
2992 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
2993 that of SYM's type. This fixes Debian bug 168069, reported by
2994 Thomas Olsson.
2995
29962002-12-28 Paul Eggert <eggert@twinsun.com>
2997
2998 Version 1.75f.
2999
3000 Switch back to the Yacc style of conflict reports, undoing some
3001 of the 2002-07-30 change.
3002 * doc/bison.texinfo (Understanding): Use Yacc style for
3003 conflict reports. Also, use new way of locating rules.
3004 * src/conflicts.c (conflict_report):
3005 Renamed from conflict_report_yacc, removing the old
3006 'conflict_report'. Translate the entire conflict report at once,
3007 so that we don't assume that "," has the same interpretation in
3008 all languages.
3009 (conflicts_output): Use Yacc-style conflict report for each state,
3010 instead of our more-complicated style.
3011 (conflicts_print): Use Yacc-style conflict report, except print
3012 the input file name when not emulating Yacc.
3013 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
3014 Conflicted Reduction, %expect not enough, %expect too much,
3015 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
3016 * tests/existing.at (GNU Cim Grammar): Likewise.
3017 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
3018
3019 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
3020 fatal): Don't invoke fflush; it's not needed and it might even be
3021 harmful for stdout, as stdout might not be open.
3022 * src/reduce.c (reduce_print): Likewise.
3023
30242002-12-27 Paul Eggert <eggert@twinsun.com>
3025
3026 Fix a bug where error locations were not being recorded correctly.
3027 This problem was originally reported by Paul Hilfinger in
3028 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
3029
3030 * data/yacc.c (yyparse): New local var yylerrsp, to record the
3031 top of the location stack's error locations.
3032 (yyerrlab): Set it. When discarding a token, push its location
3033 onto yylerrsp so that we don't lose track of the error's end.
3034 (yyerrlab1): Now is only the target of YYERROR, so that we can
3035 properly record the location of the action that failed. For GCC
3036 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
3037 GCC warning about yyerrlab1 being unused if YYERROR is unused.
3038 (yyerrlab2): New label, which yyerrlab now falls through to.
3039 Compute the error's location by applying YYLLOC_DEFAULT to
3040 the locations of all the symbols that went into the error.
3041 * doc/bison.texinfo (Location Default Action): Mention that
3042 YYLLOC_DEFAULT is also invoked for syntax errors.
3043 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
3044 Error locations include the locations of all the tokens that were
3045 discarded, not just the last token.
3046
30472002-12-26 Paul Eggert <eggert@twinsun.com>
3048
3049 * src/files.c: Include quote.h.
3050 (compute_output_file_names): Warn if we detect conflicting
3051 outputs to the same file. This should catch the misunderstanding
3052 exemplified by Debian Bug 165349, reported by Bruce Stephens..
3053
3054 * src/conflicts.c (conflicts_print): If the user specifies
3055 "%expect N", report an error if there are any reduce/reduce
3056 conflicts. This is what the manual says should happen.
3057 This fixes Debian bug 130890, reported by Anthony DeRobertis.
3058 * tests/conflicts.at (%expect with reduce conflicts): New test.
3059
3060 Don't use m4_include on relative file names, as it doesn't work as
3061 desired if there happens to be a file with that name under ".".
3062
3063 * m4sugar/version.m4: Remove; it was included but it wasn't used.
3064 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
3065 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
3066 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
3067 * src/output.c (output_skeleton): Use full path names when
3068 specifying a file to include; don't rely on include path, as
3069 it's unreliable when the working file contains a file with
3070 that name.
3071
30722002-12-25 Paul Eggert <eggert@twinsun.com>
3073
3074 Remove obsolete references to bison.simple and bison.hairy.
3075 Problem mentioned by Aubin Mahe in
3076 <http://lists.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
3077 * data/glr.c: Comment fix.
3078 * doc/bison.1: Remove references. Also, mention "yacc".
3079
3080 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
3081 with -g option.
3082
3083 * src/parse-gram.y (declaration): Use enum "report_states" rather
3084 than its numeric value 1.
3085
3086 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
3087 opening a new one. This fixes Debian bug 165349, reported by
3088 Bruce Stephens.
3089
30902002-12-24 Paul Eggert <eggert@twinsun.com>
3091
3092 Version 1.75e.
3093
3094 * Makefile.maint (cvs-update): Don't assume that the shell
3095 supports $(...), as Solaris sh doesn't.
3096
3097 * src/parse-gram.y (lloc_default): Remove test for empty
3098 nonterminals at the end, since it didn't change the result.
3099
31002002-12-24 Paul Eggert <eggert@twinsun.com>
3101
3102 If the user does not define YYSTYPE as a macro, Bison now declares it
3103 using typedef instead of defining it as a macro. POSIX requires this.
3104 For consistency, YYLTYPE is also declared instead of defined.
3105
3106 %union directives can now have a tag before the `{', e.g., the
3107 directive `%union foo {...}' now generates the C code
3108 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
3109 The default union tag is `YYSTYPE', for compatibility with Solaris 9
3110 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
3111 instead of `yyltype'.
3112
3113 `yystype' and `yyltype' are now obsolescent macros instead of being
3114 typedefs or tags; they are no longer documented and will be
3115 withdrawn in a future release.
3116
3117 * data/glr.c (b4_location_type): Remove.
3118 (YYSTYPE): Renamed from yystype.
3119 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
3120 (struct YYLTYPE): Renamed from struct yyltype.
3121 (YYLTYPE): Renamed from yyltype.
3122 (yyltype, yystype): New (and obsolescent) macros,
3123 for backward compatibility.
3124 * data/yacc.c: Likewise.
3125
3126 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
3127 does not specify a union tag. This is for compatibility with
3128 Solaris 9 yacc.
3129
3130 * src/parse-gram.y (add_param): 2nd arg is now char * not char
3131 const *, since it is now modified by stripping surrounding { }.
3132 (current_braced_code): Remove.
3133 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
3134 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
3135 trailing " {...}". Now of type <chars>.
3136 (grammar_declaration): Adjust to bundled tokens.
3137 (code_content): Remove; stripping is now done by add_param.
3138 (print_token_value): Print contents of bundled tokens.
3139 (token_name): New function.
3140
3141 * src/reader.h (braced_code, current_braced_code): Remove.
3142 (token_name): New decl.
3143
3144 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
3145 token_type, not braced_code code_kind. All uses changed.
3146 (SC_PRE_CODE): New state, for scanning after a keyword that
3147 has (or usually has) an immediately-following braced code.
3148 (token_type): New local var, to keep track of which token type
3149 to return when scanning braced code.
3150 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
3151 <INITIAL>"%parse-param", <INITIAL>"%printer",
3152 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
3153 instead of returning a token type immediately.
3154 (<INITIAL>"{"): Set token type.
3155 (<SC_BRACED_CODE>"}"): Use it.
3156 (handle_action_dollar, handle_action_at): Now returns bool
3157 indicating success. Fail if ! current_rule; this prevents a core dump.
3158 (handle_symbol_code_dollar, handle_symbol_code_at):
3159 Remove; merge body into caller.
3160 (handle_dollar, handle_at): Complain in invalid contexts.
3161
3162 * NEWS, doc/bison.texinfo: Document the above.
3163 * NEWS: Fix years and program names in copyright notice.
3164
31652002-12-17 Paul Eggert <eggert@twinsun.com>
3166
3167 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
3168 Reporting, Table of Symbols): Omit mentions of %lex-param and
3169 %parse-param from the documentation for now.
3170
31712002-12-15 Paul Eggert <eggert@twinsun.com>
3172
3173 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
3174 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
3175 lookahead symbol, and which sets yychar in parser actions) and it
3176 disagreed with the Bison documentation. Bug
3177 reported by Andrew Walrond.
3178
3179 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
3180 as the caller now does that.
3181 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
3182 (YYEMPTY): Parenthesize right hand side, since others use it.
3183 (yyparse): Don't assume that our generated code is the only code
3184 that sets yychar.
3185
31862002-12-13 Paul Eggert <eggert@twinsun.com>
3187
3188 Version 1.75d.
3189
3190 POSIX requires a "yacc" command.
3191 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
3192 (MOSTLYCLEANFILES): Add yacc.
3193 (yacc): New rule.
3194 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
3195 as an alias for bison y.
3196
3197 * po/LINGUAS: Add da.
3198
3199 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
3200 problem with latest <getopt.h>.
3201 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
3202
3203 * doc/fdl.texi: Upgrade to 1.2.
3204 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
3205 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
3206 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
3207 gnulib.
3208 * config/install-sh: Sync with autotools.
3209
3210 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
3211 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
3212 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
3213 locations are requested.
3214 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
3215 locations are requested.
3216
32172002-12-12 Paul Eggert <eggert@twinsun.com>
3218
3219 Remove unportable casts and storage allocation tricks.
3220 While we're at it, remove almost all casts, since they
3221 usually aren't needed and are a sign of trouble.
3222
3223 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
3224
3225 * src/derives.c (derives_compute): Do not subtract NTOKENS from
3226 the pointer DSET returned by malloc; this isn't portable.
3227 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
3228 Similarly for DERIVES.
3229 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
3230 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
3231 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
3232
3233 * src/derives.c (derives_compute): Do not bother invoking
3234 int_of_rule_number, since rule numbers are integers.
3235
3236 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
3237 rather than XMALLOC (char, N).
3238
3239 * src/files.c (filename_split): Rewrite to avoid cast.
3240
3241 * src/gram.h (symbol_number_as_item_number,
3242 item_number_as_symbol_number, rule_number_as_item_number,
3243 item_number_as_rule_number):
3244 Now inline functions rather than macros, to avoid casts.
3245 * src/state.h (state_number_as_int): Likewise.
3246 * src/tables.c (state_number_to_vector_number,
3247 symbol_number_to_vector_number): Likewise.
3248
3249 * src/gram.h (int_of_rule_number): Remove; no longer used.
3250
3251 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
3252 since the resulting storage is always stored into.
3253
3254 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
3255 where it's needed.
3256
3257 * src/muscle_tab.c (muscle_m4_output):
3258 Now inline. Return bool, not int.
3259 * src/state.c (state_compare): Likewise.
3260 * src/symtab.c (symbol_check_defined,
3261 symbol_check_alias_consistency, symbol_pack, symbol_translation,
3262 hash_compare_symbol, hash_symbol):
3263 Likewise.
3264 * src/uniqstr.c (uniqstr_print): Likewise.
3265 * src/muscle_tab.c (muscle_m4_output_processor):
3266 New function, to avoid casts.
3267 * src/state.c (state_comparator, stage_hasher): Likewise.
3268 * src/symtab.c (symbol_check_defined_processor,
3269 symbol_check_alias_consistency_processor, symbol_pack_processor,
3270 symbol_translation_processor, hash_symbol_comparator,
3271 hash_symbol_hasher): Likewise.
3272 * src/uniqstr.c (uniqstr_print_processor): Likewise.
3273 * src/muscle_tab.c (muscles_m4_output):
3274 Use new functions instead of casting old functions unportably.
3275 * src/state.c (state_hash_new): Likewise.
3276 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
3277 symbols_token_translations_init):
3278 Likewise.
3279 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
3280
3281 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
3282 var instead of casting to long, to avoid casts.
3283 (prepare_states): Use MALLOC rather than alloca, so that we don't
3284 have to worry about alloca.
3285 * src/state.c (state_hash_lookup): Likewise.
3286
3287 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
3288 local var instead of casting to unsigned char, to avoid casts.
3289
3290 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
3291 STATE_ALLOC): Remove.
3292 (transitions_new, errs_new, reductions_new, state_new): Use malloc
3293 rather than calloc, and use offsetof to avoid allocating slightly
3294 too much storage.
3295 (state_new): Initialize all members.
3296
3297 * src/state.c (state_hash): Use unsigned accumulator, not signed.
3298
3299 * src/symtab.c (symbol_free): Remove; unused.
3300 (symbol_get): Remove cast in lhs of assignment.
3301 (symbols_do): Now static. Accept generic arguments, not
3302 hashing-related ones.
3303
3304 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
3305 (symbol_processor): Remove.
3306 (symbols_do): Remove decl; now static.
3307
3308 * src/system.h (alloca): Remove; decl no longer needed.
3309 (<stddef.h>): Include, for offsetof.
3310 (<inttypes.>, <stdint.h>): Include if available.
3311 (uintptr_t): New type, if system lacks it.
3312 (CALLOC, MALLOC, REALLOC): New macros.
3313 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
3314 new macros.
3315
3316 * src/tables.c (table_size): Now int, to pacify GCC.
3317 (table_grow, table_ninf_remap): Use signed table size.
3318 (save_row): Don't bother initializing locals when not needed.
3319 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
3320 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
3321
3322 * src/vcg.h: Correct misspellings.
3323
3324 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
3325
3326
3327 * src/getargs.c (getargs): Don't assume EOF == -1.
3328
33292002-12-09 Paul Eggert <eggert@twinsun.com>
3330
3331 Change identifier spellings to avoid collisions with names
3332 that are reserved by POSIX.
3333
3334 Don't use names ending in _t, since POSIX reserves them.
3335 For consistency, remove _e and _s endings -- they're weren't
3336 needed to remove ambiguity. All uses changed.
3337 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
3338 turn was just renamed from struniq_t.
3339 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
3340 which in turn was just renamed from struniq_processor_t.
3341 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
3342 in turn was renamed from hash_compare_struniq_t.
3343 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
3344 (state_list): Renamed from state_list_t.
3345 * src/assoc.h (assoc): Renamed from assoc_t.
3346 * src/conflicts.c (enum conflict_resolution): Renamed from
3347 enum conflict_resolution_e.
3348 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
3349 (rule_list): Renamed from rule_list_t.
3350 * src/getargs.h (enum trace): Renamed from enum trace_e.
3351 (enum report): Renamed from enum report_e.
3352 * src/gram.h (item_number): Renamed from item_number_t.
3353 (rule_number): Renamed from rule_number_t.
3354 (struct rule_s): Remove the "rule_s" part; not used.
3355 (rule): Renamed from rule_t.
3356 (rule_filter): Renamed from rule_filter_t.
3357 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
3358 (goto_list): Renamed from goto_list_t.
3359 * src/lalr.h (goto_number): Renamed from goto_number_t.
3360 * src/location.h (location): Renamed from location_t.
3361 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
3362 and moved here from:
3363 * src/muscle_tab.h (muscle_entry_t): here.
3364 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
3365 (rule_list): Renamed from rule_list_t.
3366 * src/print_graph.c (static_graph): Renamed from graph.
3367 * src/reader.h (braced_code): Renamed from braced_code_t.
3368 Remove brace_code_e tag.
3369 * src/relation.h (relation_node): Renamed from relation_node_t.
3370 (relation_nodes): Renamed from relation_nodes_t.
3371 (relation): Renamed from relation_t.
3372 * src/state.h (state_number): Renamed from state_number_t.
3373 (struct state): Renamed from struct state_s.
3374 (state): Renamed from state_t.
3375 (transitions): Renamed from transitions_t. Unused (and
3376 misspelled) transtion_s tag removed.
3377 (errs): Renamed from errs_t. Unused errs_s tag removed.
3378 (reductions): Renamed from reductions_t. Unused tag
3379 reductions_s removed.
3380 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
3381 (struct symbol_list): Renamed from struct symbol_list_s.
3382 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
3383 (struct symbol): Renamed from struct symbol_s.
3384 (symbol): Renamed from symbol_t.
3385 * src/tables.c (vector_number): Renamed from vector_number_t.
3386 (action_number): Renamed from action_t.
3387 * src/tables.h (base_number): Renamed from base_t.
3388 * src/vcg.h (enum color): Renamed from enum color_e.
3389 (enum textmode): Renamed from enum textmode_e.
3390 (enum shape): Renamed from enum shape_e.
3391 (struct colorentry): Renamed from struct colorentry_s.
3392 (struct classname): Renamed from struct classname_s.
3393 (struct infoname): Renamed from struct infoname_s.
3394 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
3395 (enum decision): Renamed from enum decision_e.
3396 (enum orientation): Renamed from enum orientation_e.
3397 (enum alignment): Renamed from enum alignment_e.
3398 (enum arrow_mode): Renamed from enum arrow_mode_e.
3399 (enum crossing_type): Renamed from enum crossing_type_e.
3400 (enum view): Renamed from enum view_e.
3401 (struct node): Renamed from struct node_s.
3402 (node): Renamed from node_t.
3403 (enum linestyle): Renamed from enum linestyle_e.
3404 (enum arrowstyle): Renamed from enum arrowstyle_e.
3405 (struct edge): Renamed from struct edge.
3406 (edge): Renamed from edge_t.
3407 (struct graph): Renamed from struct graph_s.
3408 (graph): Renamed from graph_t.
3409 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
3410 Rename value_t -> value.
3411 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
3412 value_t_as_yystype -> value_as_yystype.
3413
3414 Don't include <errno.h> in the mainstream code, since it
3415 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
3416 * lib/get-errno.c, lib/get-errno.h: New files.
3417 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
3418 get-errno.c.
3419 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
3420 * src/output.c (output_skeleton): Likewise.
3421 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
3422 instead of errno.
3423 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
3424 Likewise.
3425 (handle_action_dollar, handle_action_at): Likewise.
3426 * src/system.h: Do not include <errno.h>.
3427 (TAB_EXT): Renamed from EXT_TAB.
3428 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
3429
3430 Avoid str[a-z]*, since <string.h> reserves that name space.
3431 Change all instances of "struniq" in names to "uniqstr", and
3432 likewise for "STRUNIQ" and "UNIQSTR".
3433 * src/uniqstr.c: Renamed from src/struniq.c.
3434 * src/uniqstr.h: Renamed from src/struniq.h.
3435 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
3436 * src/files.c (strsuffix): Remove; unused.
3437 (concat2): Renamed from stringappend. Now static.
3438 * src/files.h (strsuffix, stringappend): Remove; unused.
3439 * src/parse-gram.y (<chars>): Renamed from <string>.
3440 (<uniqstr>): Renamed from <struniq>.
3441 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
3442 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
3443 (struct graph_s.expand): Renamed from struct graph_s.stretch.
3444 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
3445 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
3446 (N_EXPAND): Renamed from N_STRETCH.
3447
3448 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
3449 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
3450 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
3451 Remove; unused.
3452 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
3453 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
3454 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
3455 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
3456 (BASE_MAXIMUM): Renamed from BASE_MAX.
3457 (BASE_MINIMUM): Renamed from BASE_MIN.
3458 (ACTION_MAX): Remove; unused.
3459 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
3460 Unnecessary casts removed from above defines.
3461
3462
3463 Fix misspelling in names.
3464 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
3465 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
3466 G_NODE_ALIGNEMENT.
3467
3468
3469 * lib/timevar.c (timevar_report): Renamed from time_report,
3470 for consistency with other names.
3471 * lib/timevar.h (timevar_report): New decl.
3472 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
3473
3474
3475 Sort include-file uses.
3476
3477 Reorder all include files under src to be in the order "system.h".
3478 then the ../lib include files in angle brackets (alphabetized),
3479 then the . include files in double-quotes (alphabetized). Fix
3480 dependency breakages encountered in this process, as follows:
3481 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
3482 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
3483 * src/state.h: Include "symtab.h".
3484
34852002-12-08 Paul Eggert <eggert@twinsun.com>
3486
3487 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
3488 since this causes problems when __file__ contains character
3489 sequences like "@" that are treated specially by src/scan-skel.l.
3490 Instead, just use the file's basename. This fixes the bug
3491 reported by Martin Mokrejs in
3492 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
3493
34942002-12-06 Paul Eggert <eggert@twinsun.com>
3495
3496 Add support for rules that do not have trailing semicolons, as
3497 POSIX requires. Improve the quality of locations in Bison
3498 diagnostics.
3499
3500 * src/location.c: Include <quotearg.h>.
3501 (empty_location): Now const.
3502 (location_print): New function. Follow the recommendation of the
3503 GNU Coding Standards for locations that span file boundaries.
3504 * src/location.h: Do not include <quotearg.h>; no longer needed.
3505 (boundary): New type.
3506 (location_t): Use it. This allows locations to span file boundaries.
3507 All member uses changed: file -> start.file or end.file (as needed),
3508 first_line -> start.line, first_column -> start.column,
3509 last_line -> end.line, last_column -> end.column.
3510 (equal_boundaries): New function.
3511 (LOCATION_RESET, LOCATION_STEP): Remove.
3512 (LOCATION_PRINT): Remove. All callers changed to use location_print.
3513 (empty_location): Now const.
3514 (location_print): New decl.
3515 * src/parse-gram.y (lloc_default): New function, which handles
3516 empty locations more accurately.
3517 (YYLLOC_DEFAULT): Use it.
3518 (%token COLON): Remove.
3519 (%token ID_COLON): New token.
3520 (rules): Use it.
3521 (declarations, rules): Remove trailing semicolon.
3522 (declaration, rules_or_grammar_declaration):
3523 Allow empty (";") declaration.
3524 (symbol_def): Remove empty actions; no longer needed.
3525 (rules_or_grammar_declaration): Remove trailing semicolon.
3526 (semi_colon.opt): Remove.
3527 * src/reader.h: Include location.h.
3528 (scanner_cursor): New decl.
3529 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
3530 rolling our own.
3531 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
3532 of *loc.
3533 (STEP): Remove. No longer needed, now that adjust_location does
3534 the work. All uses removed.
3535 (scanner_cursor): New var.
3536 (adjust_location): Renamed from extend_location. It now sets
3537 *loc and adjusts the scanner cursor. All uses changed.
3538 Don't bother testing for CR.
3539 (handle_syncline): Remove location arg; now updates scanner cursor.
3540 All callers changed.
3541 (unexpected_end_of_file): Now accepts start boundary of token or
3542 comment, not location. All callers changed. Update scanner cursor,
3543 not the location.
3544 (SC_AFTER_IDENTIFIER): New state.
3545 (context_state): Renamed from c_context. All uses changed.
3546 (id_loc, code_start, token_start): New local vars.
3547 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
3548 processing of Yacc white space and equivalents here.
3549 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
3550 instead of returning ID immediately, since we need to search for
3551 a subsequent colon.
3552 (<INITIAL>"'", "\""): Save token_start.
3553 (<INITIAL>"%{", "{", "%%"): Save code_start.
3554 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
3555 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
3556 BEGIN context_state at end, not INITIAL.
3557 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
3558 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
3559 Return correct token start.
3560 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
3561 the start of a character, string or multiline comment is found.
3562 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
3563 Reduction): Adjust reported locations to match the more-precise
3564 results now expected.
3565 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
3566 * tests/reduce.at (Useless Rules, Reduced Automaton,
3567 Underivable Rules): Likewise.
3568 * tests/regression.at (Invalid inputs): No longer `expecting ";"
3569 or "|"' now that so many other tokens are allowed by the new grammar.
3570
3571 * src/complain.h (current_file): Remove duplicate decl;
3572 current_file is now owned by files.h.
3573 * src/complain.c, src/scan-gram.l: Include files.h.
3574
35752002-12-06 Paul Eggert <eggert@twinsun.com>
3576
3577 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
3578 promotes to int; it might be unsigned int.
3579 * data/yacc.c (yy_reduce_print): Likewise.
3580
3581 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
3582 be #defined in the prologue, not in the Bison declarations.
3583 This fixes Debian Bug 102878, reported by Shaul Karl.
3584
35852002-12-02 Paul Eggert <eggert@twinsun.com>
3586
3587 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
3588 * lib/strtoul.c: New file, from gnulib.
3589 This fixes a porting bug reported by Peter Klein in
3590 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
3591
35922002-11-30 Paul Eggert <eggert@twinsun.com>
3593
3594 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
3595 and put only a forward declaration in the prologue. This is for
3596 consistency with the other scanner helper functions.
3597
3598 Type clashes now generate warnings, not errors, since it
3599 appears that POSIX may allow some grammars with type clashes.
3600 * src/reader.c (grammar_current_rule_check): Warn about
3601 type clashes instead of complaining.
3602 * tests/input.at (Type Clashes): Expect warnings, not complaints.
3603
3604 Add Yacc library, since POSIX requires it.
3605 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
3606 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
3607 * lib/main.c, lib/yyerror.c: New files.
3608
3609 gram_error can be static; it need not be extern.
3610 * src/reader.h (gram_error): Remove decl.
3611 * src/parse-gram.y (gram_error): Now static. Add static decl.
3612 (print_token_value): Omit parameter names from forward decl,
3613 for consistency.
3614
36152002-11-29 Paul Eggert <eggert@twinsun.com>
3616
3617 * doc/bison.texinfo: Emphasize that yylex and yyerror must
3618 be declared before being used. E.g., one should typically
3619 declare them in the prologue. Use GNU coding style in examples.
3620 Put "const" consistently after the type it modifies. Mention
3621 that C99 supports "inline". Mention that yyerror traditionally
3622 returns "int".
3623
3624 %parse-param and %lex-param now take just one argument, the
3625 declaration; the argument name is deduced from the declaration.
3626
3627 * doc/bison.texinfo (Parser Function, Pure Calling, Error
3628 Reporting, Table of Symbols): Document this.
3629 * src/parse-gram.y (add_param): New function.
3630 (COMMA): Remove.
3631 (declaration): Implement new rule for %parse-param and %lex-param.
3632 * src/scan-gram.l: "," now elicits a warning, rather than being
3633 a token; this is more compatible with byacc.
3634 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
3635
36362002-11-27 Paul Eggert <eggert@twinsun.com>
3637
3638 Rename identifiers to avoid real and potential collisions.
3639
3640 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
3641 to avoid collision with lex macro described by Bruce Lilly in
3642 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
3643 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
3644 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
3645 * src/parse-gram.y (print_token_value): Renamed from yyprint.
3646 All uses changed.
3647 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
3648 The name "yycontrol" violates the name space rules, and this stuff
3649 wasn't being used anyway.
3650 (input): Remove action; this stuff wasn't being used.
3651 (gram_error): Rename local variable yylloc -> loc.
3652 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
3653 (YY_DECL): Don't use "yy" at start of local variables.
3654 All uses changed, e.g., yylloc -> loc.
3655 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
3656 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
3657 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
3658 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
3659
3660 * src/parse-gram.y (gram_error): loc is now const *.
3661 * src/reader.h (gram_error): Likewise.
3662
36632002-11-24 Paul Eggert <eggert@twinsun.com>
3664
3665 Version 1.75c.
3666
3667 * tests/actions.at (Actions after errors): Use an output format
3668 more similar to that of the Printers and Destructors test.
3669 Test the position of the ';' token too.
3670 (Printers and Destructors): Likewise.
3671 (Printers and Destructors: %glr-parser): Remove for now, to avoid
3672 unnecessarily alarming people when the test fails.
3673
3674 * data/yacc.c (yyerrlab1): Move this label down, so that the
3675 parser does not discard the lookahead token if the user code
3676 invokes YYERROR. This change is required for POSIX conformance.
3677
3678 * lib/error.c: Sync with gnulib.
3679
36802002-11-22 Paul Eggert <eggert@twinsun.com>
3681
3682 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
3683 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
3684 * lib/xmalloc.c: Likewise.
3685
36862002-11-20 Paul Eggert <eggert@twinsun.com>
3687
3688 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
3689
36902002-11-20 Paul Eggert <eggert@twinsun.com>
3691
3692 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
3693 should use `if (! x) abort ();' rather than `assert (x);', and
3694 anyway it's one less thing to worry about configuring.
3695
3696 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
3697 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
3698 and replace all instances of assert with abort.
3699 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
3700 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
3701
3702 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
3703 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
3704 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
3705 hash_find_entry, hash_rehash, hash_insert): Likewise.
3706 * src/conflicts.c (resolve_sr_conflict): Likewise.
3707 * src/lalr.c (set_goto_map, map_goto): Likewise.
3708 * src/nullable.c (nullable_compute): Likewise.
3709 * src/output.c (prepare_rules, token_definitions_output): Likewise.
3710 * src/reader.c (packgram, reader): Likewise.
3711 * src/state.c (state_new, state_free, state_transitions_set,
3712 state_reduction_find): Likewise.
3713 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
3714 symbol_pack): Likewise.
3715 * src/tables.c (conflict_row, pack_vector): Likewise.
3716 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
3717 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
3718 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
3719 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
3720
3721 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
3722 (ARGMATCH_CONSTRAINT): New macro.
3723 (ARGMATCH_ASSERT): Use it.
3724
3725 * src/system.h (verify): New macro.
3726 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
3727 rather than assert.
3728 * src/tables.c (tables_generate): Likewise.
3729
3730 * src/struniq.c (struniq_assert): Now returns void, and aborts
3731 if the assertion is false.
3732 (struniq_assert_p): Remove.
3733 * src/struniq.h: Likewise.
3734
37352002-11-18 Paul Eggert <eggert@twinsun.com>
3736
3737 * data/glr.c (yygetLRActions): Replace `yyindex' with
3738 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
3739 This fixes the regression with Sun ONE Studio 7 cc that I reported in
3740 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
3741
37422002-11-18 Akim Demaille <akim@epita.fr>
3743
3744 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
3745 space.
3746 From Tim Van Holder.
3747
37482002-11-17 Paul Eggert <eggert@twinsun.com>
3749
3750 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
3751 to "SyntaxError" for consistency with my 2002-11-15 change.
3752
3753 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
3754 not define to {}, since this breaks the common use of `YYDPRINTF
3755 ((...));' if a single statement is desired (e.g. before `else').
3756 Work around GCC warnings by surrounding corresponding calls with
3757 {} if needed.
3758 (yyhasResolvedValue): Remove unused function.
3759 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
3760 loop body.
3761 (yyreportSyntaxError): Renamed from yyreportParseError.
3762 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
3763 All uses changed.
3764 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
3765 extern when possible. Remove unused initializations.
3766
37672002-11-16 Akim Demaille <akim@epita.fr>
3768
3769 Augment the similarity between GLR and LALR traces.
3770
3771 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
3772 (YY_REDUCE_PRINT): New.
3773 (yyparse): Use them.
3774 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
3775 YYDPRINT here.
3776 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
3777 state reached after the reduction/recovery, since...
3778 (yyparse, yyprocessOneStack): Report the state we are entering in.
3779
37802002-11-16 Akim Demaille <akim@epita.fr>
3781
3782 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
3783 Add support for --trace=skeleton.
3784 * src/scan-skel.l: %option debug.
3785 Scan strings of non-@ or \n instead of character by character.
3786 (scan_skel): Handle trace_skeleton.
3787 (QPUTS): New.
3788 (@output_parser_name@, @output_header_name@): ``Restore'' their
3789 support (used to be M4 macros).
3790 * data/yacc.c: Quote larger chunks, a la glr.c.
3791 * data/lalr1.cc: Likewise.
3792 The header guards are no longer available, so use some other
3793 string than `YYLSP_NEEDED'.
3794
37952002-11-16 Akim Demaille <akim@epita.fr>
3796
3797 Make the ``Printers and Destructors'' test more verbose, taking
3798 `yacc.c''s behavior as (possibly wrong) reference.
3799
3800 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
3801 instead of fprint on stdout.
3802 Set and report the last_line of the symbols.
3803 Consistently display values and locations.
3804
38052002-11-16 Paul Eggert <eggert@twinsun.com>
3806
3807 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
3808
38092002-11-15 Paul Eggert <eggert@twinsun.com>
3810
3811 * tests/actions.at (Actions after errors): New test case.
3812
3813 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
3814 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
3815 tests/action.at, tests/calc.at, tests/conflicts.at,
3816 tests/cxx-type.at, tests/regression.at:
3817 "parse error" -> "syntax error" for POSIX compatibility.
3818 "parsing stack overflow..." -> "parser stack overflow" so
3819 that code matches Bison documentation.
3820
38212002-11-15 Akim Demaille <akim@epita.fr>
3822
3823 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
3824 take two BRACED_CODE, not two string_content.
3825 Free the scanner's obstack when we are done.
3826 (code_content): New.
3827 * tests/calc.at: Adjust.
3828 * doc/bison.texinfo: Adjust.
3829 Also, make sure to include the `,' for these declarations.
3830
38312002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
3832
3833 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
3834 definition; avoids potential autoreconf problems.
3835
38362002-11-15 Akim Demaille <akim@epita.fr>
3837
3838 Always check the value returned by yyparse.
3839
3840 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
3841 returned by yyparse.
3842 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
3843 Adjust calls.
3844 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
3845 returned by yyparse.
3846
38472002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3848
3849 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
3850 on input.at test.
3851
38522002-11-14 Paul Eggert <eggert@twinsun.com>
3853
3854 * src/output.c (output_skeleton): Call xfopen instead of
3855 duplicating xfopen's body.
3856
3857 Fix bugs reported by Nelson H. F. Beebe in
3858 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
3859
3860 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
3861 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
3862 Group compiler. Instead, use "$CC -E bar.c". Include the .h
3863 file twice in the grammar, as an extra check.
3864
3865 * tests/input.at (Torturing the Scanner): Surround the
3866 backslash-newline tests with "#if 0", to make it less likely that
3867 we'll run into compiler bugs. Bring back solitary \ inside
3868 comment, but add a closing comment to work around HP C bug. Don't
3869 test backslash-newline in C character constant.
3870
38712002-11-14 Akim Demaille <akim@epita.fr>
3872
3873 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
3874 status of the compiler.
3875 Calling `exit 1' is no longer needed.
3876 Reported by Nelson H. F. Beebe.
3877
38782002-11-14 Akim Demaille <akim@epita.fr>
3879
3880 * tests/atlocal.in (CPPFLAGS): We have config.h.
3881 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
3882 New.
3883 * tests/actions.at, tests/calc.at, tests/conflicts.at,
3884 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
3885 * tests/regression.at, tests/torture.at: Use them for all the
3886 grammars that are to be compiled.
3887 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
3888 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
3889 * doc/bison.texinfo (GLR Parsers): Document `inline'.
3890
38912002-11-14 Akim Demaille <akim@epita.fr>
3892
3893 * doc/bison.texinfo: Various formatting changes (alignments in
3894 samples, additional @group/@end group, GCS in samples.
3895 Use @deffn instead of simple @table to define the directives,
3896 macros, variables etc.
3897
38982002-11-13 Paul Eggert <eggert@twinsun.com>
3899
3900 Fix some bugs reported by Albert Chin-A-Young in
3901 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
3902
3903 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
3904 -o c"; the HP C compiler chatters during compilation.
3905 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
3906 * tests/headers.at (export YYLTYPE): Likewise.
3907
3908 * tests/input.at (Torturing the Scanner): Remove lines containing
3909 solitary backslashes, as they tickle a bug in the HP C compiler.
3910
3911 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
3912 comments, since they're not portable. Use GNU coding style.
3913
39142002-11-13 Akim Demaille <akim@epita.fr>
3915
3916 * data/yacc.c: Leave bigger chunks of quoted text.
3917 (YYDSYMPRINTF): New.
3918 Use it to report symbol activities.
3919 * data/glr.c (YYDSYMPRINTF): New.
3920 Use it.
3921
39222002-11-12 Paul Eggert <eggert@twinsun.com>
3923
3924 Version 1.75b.
3925
3926 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
3927 (yyglrReduce): Return yyok, not 0.
3928 This should avoid the enumerated-type warnings reported
3929 by Nelson H. F. Beebe in
3930 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
3931
3932 * lib/bbitset.h (BITSET_INLINE): Remove.
3933 * lib/bitset.h [! BITSET_INLINE]: Remove.
3934 (bitset_set, bitset_reset, bitset_test): Rename local vars
3935 to avoid shadowing warnings by GCC.
3936
3937 * data/glr.c (inline): Remove #define. It's the user's
3938 responsibility to #define it away, just like 'const'.
3939 This fixes one of the bugs reported by Nelson H. F. Beebe in
3940 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
3941
3942 * Makefile.maint (po-check): Scan .l and .y files instead of the
3943 .c and the .h files that they generate. This fixes the bug
3944 reported by Tim Van Holder in:
3945 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
3946 Look for N_ as well as for _. Try to avoid matching #define for
3947 N_ and _.
3948 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
3949 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
3950 * src/scan-gram.l: Revamp regular expressions so that " and '
3951 do not confuse xgettext.
3952
3953 * src/struniq.h (struniq_new): Do not declare the return type
3954 to be 'const'; this violates the C standard.
3955 * src/struniq.c (struniq_new): Likewise.
3956
39572002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
3958
3959 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
3960 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
3961 linker.
3962
39632002-11-12 Akim Demaille <akim@epita.fr>
3964
3965 * Makefile.maint: Sync with Autoconf:
3966 (local_updates): New.
3967
39682002-11-12 Akim Demaille <akim@epita.fr>
3969
3970 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
3971
39722002-11-12 Akim Demaille <akim@epita.fr>
3973
3974 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
3975 locations.
3976
39772002-11-12 Akim Demaille <akim@epita.fr>
3978
3979 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
3980 not yyvalue.
3981
39822002-11-12 Akim Demaille <akim@epita.fr>
3983
3984 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
3985 Use it to test the GLR parser.
3986
39872002-11-12 Akim Demaille <akim@epita.fr>
3988
3989 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
3990 defines it.
3991 * data/glr.c (yystos): New.
3992 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
3993 (YYDSYMPRINT): New.
3994 (yyval): Don't define it, it is handled via M4.
3995 (yyrecoverParseError): Free verbosely the discarded symbols.
3996 * data/yacc.c (yysymprint): Remove, rather...
3997 (b4_yysymprint_generate): invoke.
3998 * data/c.m4 (b4_yysymprint_generate): New.
3999 Accept pointers as arguments, as opposed to the version from
4000 yacc.c.
4001 (b4_yydestruct_generate): Likewise.
4002 * tests/cations.at (Printers and Destructors): Use Bison directives
4003 instead of CPP macros.
4004 Don't rely on internal details.
4005
40062002-11-12 Akim Demaille <akim@epita.fr>
4007
4008 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
4009 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
4010 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
4011 it against YYEMPTY and so forth), work on yytoken (i.e., set
4012 it to YYEMPTY etc.).
4013 (yydestruct): Replace with a b4_yydestruct_generate invocation.
4014 (b4_symbol_actions): Remove.
4015 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
4016 for 0, end-of-input.
4017
40182002-11-12 Akim Demaille <akim@epita.fr>
4019
4020 * doc/bison.texinfo (Destructor Decl): New.
4021
40222002-11-12 Akim Demaille <akim@epita.fr>
4023
4024 * src/tables.c (tables_generate): Use free for pointers that
4025 cannot be NULL, not XFREE.
4026 (pack_vector): Use assert, not fatal, for bound violations.
4027 * src/state.c (state_new): Likewise.
4028 * src/reader.c (reader): Likewise.
4029 * src/lalr.c (set_goto_map): Likewise.
4030 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
4031 the file name.
4032
40332002-11-12 Akim Demaille <akim@epita.fr>
4034
4035 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
4036 Restore.
4037 * src/scan-gram.l (last_string): Is global to the file, not to
4038 yylex.
4039 * src/parse-gram.y (input): Don't append the epilogue here,
4040 (epilogue.opt): do it here, and free the scanner's obstack.
4041 * src/reader.c (epilogue_set): Rename as...
4042 (epilogue_augment): this.
4043 * data/c.m4 (b4_epilogue): Defaults to empty.
4044
40452002-11-12 Akim Demaille <akim@epita.fr>
4046
4047 * src/getargs.c (long_options): Remove duplicates.
4048 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
4049 Remove.
4050 * doc/bison.rnh: Remove.
4051 * doc/bison.texinfo (VMS Invocation): Remove.
4052
40532002-11-12 Akim Demaille <akim@epita.fr>
4054
4055 * src/struniq.h, src/struniq.c (struniq_t): Is const.
4056 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
4057
4058 Use struniq for symbols.
4059
4060 * src/symtab.h (symbol_t): The tag member is a struniq.
4061 (symbol_type_set): Adjust.
4062 * src/symtab.c (symbol_new): Takes a struniq.
4063 (symbol_free): Don't free the tag member.
4064 (hash_compare_symbol_t, hash_symbol_t): Rename as...
4065 (hash_compare_symbol, hash_symbol): these.
4066 Use the fact that tags as struniqs.
4067 (symbol_get): Use struniq_new.
4068 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
4069 Returns a strniq.
4070 * src/reader.h (merger_list, grammar_currentmerge_set): The name
4071 and type members are struniqs.
4072 * src/reader.c (get_merge_function)
4073 (grammar_current_rule_merge_set): Adjust.
4074 (TYPE, current_type): Are struniq.
4075
4076 Use struniq for file names.
4077
4078 * src/files.h, src/files.c (infile): Split into...
4079 (grammar_file, current_file): these.
4080 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
4081 * src/reduce.c (reduce_print): Likewise.
4082 * src/getargs.c (getargs): Likewise.
4083 * src/complain.h, src/complain.c: Likewise.
4084 * src/main.c (main): Call struniqs_new early enough to use it for
4085 file names.
4086 Don't free the input file name.
4087
40882002-11-12 Akim Demaille <akim@epita.fr>
4089
4090 * src/symtab.c (symbol_free): Remove dead deactivated code:
4091 type_name are properly removed.
4092 Don't use XFREE to free items that cannot be NULL.
4093 * src/struniq.h, src/struniq.c: New.
4094 * src/main.c (main): Initialize/free struniqs.
4095 * src/parse-gram.y (%union): Add astruniq member.
4096 (yyprint): Adjust.
4097 * src/scan-gram.l (<{tag}>): Return a struniq.
4098 Free the obstack bit that used to store it.
4099 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
4100
41012002-11-11 Paul Eggert <eggert@twinsun.com>
4102
4103 Revamp to fix many (but not all) of the C- and M4-related quoting
4104 problems. Among other things, this fixes the Bison bug reported
4105 by Jan Hubicka when processing the Bash grammar; see:
4106 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
4107
4108 Use new @ escapes consistently. Represent brackets with @{ and @}
4109 rather than @<:@ and @:>@, since this works a bit better with dumb
4110 editors like vi. Represent @ with @@, since @ is now consistently
4111 an escape. Use @oline@ and @ofile@ rather than __oline__ and
4112 __ofile__, to avoid unexpected expansions. Similarly, use @output
4113 rather than #output.
4114
4115 * data/c.m4 (b4_copyright): Omit file name from comment, since
4116 the file name could contain "*/".
4117 (b4_synclines_flag): Don't quote the 2nd argument; it should already
4118 be quoted. All uses changed.
4119
4120 * data/glr.c: Use new @ escapes consistently.
4121 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
4122 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
4123 Remove, since they couldn't handle arbitrary characters in file
4124 names.
4125 * data/lalr1.cc: Likewise.
4126 * data/yacc.c: Likewise.
4127
4128 * src/files.c (output_infix): Remove; all uses removed.
4129 * src/files.h: Likewise.
4130
4131 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
4132 mishandled funny characters in file names, and anyway it isn't
4133 needed any more.
4134 * data/yacc.c: Likewise.
4135 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
4136
4137 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
4138 * data/yacc.c: Likewise.
4139
4140 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
4141 strings now.
4142 (muscle_init): Quote filename as a C string.
4143 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
4144 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
4145 * src/output.c (escaped_file_name_output): New function.
4146 (prepare_symbols): Quote tokens for M4.
4147 (prepare): Don't insert output_infix, output_prefix,
4148 output_parser_name, output_header_name; this is now down by scan-skel.
4149 Insert skeleton as a C string.
4150
4151 * src/output.c (user_actions_output, symbol_destructors_output,
4152 symbol_printers_output): Quote filenames for C and M4.
4153 * src/reader.c (prologue_augment, epilogue_set): Likewise.
4154
4155 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
4156 escapes other than \\ and \'; this simplifies the code.
4157 (<SC_STRING>): Likewise, for \\ and \".
4158 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
4159 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
4160 Use new escapes @{ and @} for [ and ].
4161
4162 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
4163 them with auto vars.
4164 Switch to new escape scheme, where @ is the escape character uniformly.
4165 Abort if a stray escape character is found. Avoid unbounded input
4166 buffer when parsing non-escaped text.
4167
4168 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
4169 __oline__, #output, $@, and @{ do not have unintended meanings.
4170
41712002-11-09 Paul Eggert <eggert@twinsun.com>
4172
4173 Fix the test failure due to GCC warnings described in
4174 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
4175 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
4176 evaluate to 0 if it's impossible for NINF to be in the respective
4177 table.
4178 (yygetLRActions, yyrecoverParseError): Use them.
4179
4180 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
4181 counted in the token inserted at end of file. Now takes
4182 location_t *, not location_t, so that the location can be
4183 adjusted. All uses changed.
4184
4185 * tests/regression.at (Invalid inputs): Adjust wording in
4186 diagnostic to match the new behavior.
4187
4188 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
4189 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
4190 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
4191 abort ();'. This reduces the runtime of the "Many lookaheads"
4192 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
4193 GCC 3.2.
4194
41952002-11-07 Paul Eggert <eggert@twinsun.com>
4196
4197 * src/parse-gram.y (CHARACTER): Remove unused token.
4198 All uses removed.
4199
4200 * src/scan-gram.l: Remove stack option. We no longer use the
4201 stack, since the stack was never deeper than 1; instead, use the
4202 new auto var c_context to record the stacked value.
4203
4204 Remove nounput option. At an unexpected end of file, we now unput
4205 the minimal input necessary to end cleanly; this simplifies the
4206 code.
4207
4208 Avoid unbounded token sizes where this is easy.
4209
4210 (unexpected_end_of_file): New function.
4211 Use it to systematize the error message on unexpected EOF.
4212 (last-string): Now auto, not static.
4213 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
4214 (scanner_last_string_free): Remove; not used.
4215 (percent_percent_count): Move decl to just before use.
4216 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
4217 not the (never otherwised-used) CHARACTER.
4218
42192002-11-07 Akim Demaille <akim@epita.fr>
4220
4221 Let yyerror always receive the msg as last argument, so that
4222 yyerror can be variadic.
4223
4224 * data/yacc.c (b4_yyerror_args): New.
4225 Use it when calling yyerror.
4226 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
4227 Use it when calling yyerror.
4228 * doc/bison.texinfo (Error Reporting): Adjust.
4229 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
4230 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
4231
42322002-11-06 Akim Demaille <akim@epita.fr>
4233
4234 #line should have quoted strings.
4235 Ideally, this should be done by m4_quotearg.
4236
4237 * src/scan-skel.l: Include quotearg.h.
4238 Quote __ofile__.
4239 * src/output.c (symbol_printers_output)
4240 (symbol_destructors_output): Quote the file name.
4241
42422002-11-06 Akim Demaille <akim@epita.fr>
4243
4244 * tests/regression.at (Invalid inputs): Adjust to the recent
4245 messages.
4246
42472002-11-06 Akim Demaille <akim@epita.fr>
4248
4249 Restore --no-lines.
4250 Reported by Jim Kent.
4251
4252 * data/c.m4 (b4_syncline): New.
4253 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
4254 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
4255 * src/output.c (user_actions_output): Likewise.
4256 (prepare): Define 'b4_synclines_flag'.
4257 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
4258
42592002-11-06 Akim Demaille <akim@epita.fr>
4260
4261 * src/main.c (main): Free `infile'.
4262 * src/scan-gram.l (handle_syncline): New.
4263 Recognize `#line'.
4264 * src/output.c (user_actions_output, symbol_destructors_output)
4265 (symbol_printers_output): Use the location's file name, not
4266 infile.
4267 * src/reader.c (prologue_augment, epilogue_set): Likewise.
4268
42692002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4270
4271 * src/tables.c (matching_state): Don't allow states to match if
4272 either has GLR conflict entries.
4273
42742002-11-05 Paul Eggert <eggert@twinsun.com>
4275
4276 * src/scan-gram.l: Use more accurate diagnostics, e.g.
4277 "integer out of range" rather than "invalid value".
4278 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
4279 accordingly.
4280
4281 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
4282 Also, remove one static variable in the scanner.
4283
4284 * src/scan-gram.l (braces_level): Now auto, not static.
4285 Initialize to zero if the compiler is being picky.
4286 (INITIAL): Clear braces_level instead of incrementing it.
4287 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
4288 as POSIX 1003.1-2001 requires.
4289 * src/system.h (IF_LINT): New macro, taken from coreutils.
4290 * configure.ac: Define "lint" if --enable-gcc-warnings.
4291
42922002-11-05 Akim Demaille <akim@epita.fr>
4293
4294 * src/scan-gram.l: When it starts with `%', complain about the
4295 whole directive, not just that `invalid character: %'.
4296
42972002-11-04 Akim Demaille <akim@epita.fr>
4298
4299 * Makefile.maint: Update from Autoconf.
4300 (update, cvs-update, po-update, do-po-update): New.
4301
43022002-11-04 Akim Demaille <akim@epita.fr>
4303
4304 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
4305 and yyerror.
4306 Have yyerror `use' its arguments.
4307 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
4308 returns true when location & yacc & pure & parse-param.
4309 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
4310
43112002-11-04 Akim Demaille <akim@epita.fr>
4312
4313 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
4314 clashes.
4315 * src/scan-gram.l: Use [\'] instead of ['] to pacify
4316 font-lock-mode.
4317 Use complain_at.
4318 Use quote, not quote_n since LOCATION_PRINT no longer uses the
4319 slot 0.
4320
43212002-11-03 Paul Eggert <eggert@twinsun.com>
4322
4323 * src/reader.c (get_merge_function, grammar_current_rule_check):
4324 Use consistent diagnostics for reporting type name clashes.
4325 Quote the types with <>, for consistency with Yacc.
4326 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
4327
43282002-11-03 Akim Demaille <akim@epita.fr>
4329
4330 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
4331 New.
4332 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
4333 (b4_parse_param): Remove.
4334 Use b4_identification.
4335 Propagate b4_pure_args where needed to pass them to yyerror.
4336 * data/glr.m4 (b4_parse_param): Remove.
4337 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
4338 (b4_lpure_formals): New.
4339 Use b4_identification.
4340 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
4341 b4_user_formals and b4_user_args.
4342 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
4343 (yyreportAmbiguity): When using a pure parser, also need
4344 the location, and the parse-params.
4345 Adjust callers.
4346 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
4347 When using a pure parser, also need the parse-params.
4348 Adjust callers.
4349 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
4350 (%pure-parser + %parse-param) LALR and GLR parsers.
4351 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
4352 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
4353 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
4354 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
4355 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
4356 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
4357 * doc/bison.texinfo: Untabify the whole file.
4358 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
4359 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
4360 (Error Reporting): Adjust to these new directives.
4361 Document %error-verbose, deprecate YYERROR_VERBOSE.
4362
43632002-11-03 Akim Demaille <akim@epita.fr>
4364
4365 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
4366 AT_CHECK_CALC_GLR invocations to use % directives, instead of
4367 command line options.
4368 * tests/cxx-type.at: Formatting changes.
4369
43702002-11-03 Paul Eggert <eggert@twinsun.com>
4371
4372 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
4373 to count columns correctly, and to check for invalid inputs.
4374
4375 Use mbsnwidth to count columns correctly. Account for tabs, too.
4376 Include mbswidth.h.
4377 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
4378 (extend_location): New function.
4379 (YY_LINES): Remove.
4380
4381 Handle CRLF in C code rather than in Lex code.
4382 (YY_INPUT): New macro.
4383 (no_cr_read): New function.
4384
4385 Scan UCNs, even though we don't fully handle them yet.
4386 (convert_ucn_to_byte): New function.
4387
4388 Handle backslash-newline correctly in C code.
4389 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
4390 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
4391 all uses changed.
4392 (tag, splice): New EREs. Do not allow NUL or newline in tags.
4393 Use {splice} wherever C allows backslash-newline.
4394 YY_STEP after space, newline, vertical-tab.
4395 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
4396
4397 (letter, id): Don't assume ASCII; e.g., spell out a-z.
4398
4399 ({int}, handle_action_dollar, handle_action_at): Check for integer
4400 overflow.
4401
4402 (YY_STEP): Omit trailing semicolon, so that it's more like C.
4403
4404 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
4405 as well as \000. Check for UCHAR_MAX, not 255.
4406 Allow \x with an arbitrary positive number of digits, as in C.
4407 Check for overflow here.
4408 Allow \? and UCNs, for compatibility with C.
4409
4410 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
4411 with quote slot used by complain_at.
4412
4413 * tests/input.at: Add tests for backslash-newline, m4 quotes
4414 in symbols, long literals, and funny escapes in strings.
4415
4416 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
4417 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
4418 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
4419 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
4420 * m4/mbswidth.m4: New file, from GNU coreutils.
4421
4422 * doc/bison.texinfo (Grammar Outline): Document // comments.
4423 (Symbols): Document that trigraphs have no special meaning in Bison,
4424 nor is backslash-newline allowed.
4425 (Actions): Document that trigraphs have no special meaning.
4426
4427 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
4428 no longer used.
4429
44302002-11-02 Paul Eggert <eggert@twinsun.com>
4431
4432 * src/reader.c: Don't include quote.h; not needed.
4433 (get_merge_function): Reword warning to be consistent with
4434 type clash diagnostic in grammar_current_rule_check.
4435
4436 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
4437 bug in trigraph handling.
4438
4439 * src/output.c (prepare_symbols): When printing token names,
4440 escape "[" as "@<:@" and likewise for "]".
4441
4442 * src/system.h (errno): Remove declaration, as we are now
4443 assuming C89 or better, and C89 guarantees errno.
4444
44452002-10-30 Paul Eggert <eggert@twinsun.com>
4446
4447 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
4448 Check for close failures.
4449 * src/files.h (xfclose): Return void, not int, since it always
4450 returned zero.
4451 * src/files.c (xfclose): Likewise. Report I/O error if ferror
4452 indicates one.
4453 * src/output.c (output_skeleton): Use xfclose rather than fclose
4454 and ferror. xfclose now checks ferror.
4455
4456 * data/glr.c (YYLEFTMOST_STATE): Remove.
4457 (yyreportTree): Use a stack-based leftmost state. This avoids
4458 our continuing battles with bogus warnings about initializers.
4459
44602002-10-30 Akim Demaille <akim@epita.fr>
4461
4462 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
4463 #if.
4464
44652002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4466
4467 * tests/glr-regr1.at: New test for reported regressions.
4468 * tests/testsuite.at: Add glr-regr1.at test.
4469 * tests/Makefile.am: Add glr-regr1.at test.
4470
44712002-10-24 Paul Eggert <eggert@twinsun.com>
4472
4473 Version 1.75a.
4474
4475 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
4476 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
4477 we use malloc. Don't assume 'A' through 'Z' are contiguous.
4478 Don't assume strdup exists; POSIX says its an XSI extension.
4479 Check for buffer overflow on input.
4480
44812002-10-24 Akim Demaille <akim@epita.fr>
4482
4483 * src/output.c (output_skeleton): Don't disable M4sugar comments
4484 too soon: it results in comments being expanded.
4485 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
4486 first output.
4487
44882002-10-24 Akim Demaille <akim@epita.fr>
4489
4490 * data/yacc.c (m4_int_type): New.
4491 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
4492 char' as only yacc.c wants K&R portability.
4493 * data/glr.c (yysigned_char): Remove.
4494 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
4495 Reported by Quoc Peyrot.
4496
44972002-10-23 Paul Eggert <eggert@twinsun.com>
4498
4499 * src/main.c (main): With --trace=time, report times even if a
4500 non-fatal error occurs. Formerly, the times were reported in some
4501 such cases but not in others.
4502 * src/reader.c (reader): Just return if a complaint has been issued,
4503 instead of exiting, so that 'main' can report times.
4504
45052002-10-22 Akim Demaille <akim@epita.fr>
4506
4507 * src/system.h: Include sys/types.
4508 Reported by Bert Deknuydt.
4509
45102002-10-23 Paul Eggert <eggert@twinsun.com>
4511
4512 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
4513 Suggested by Art Haas.
4514
45152002-10-22 Paul Eggert <eggert@twinsun.com>
4516
4517 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
4518 decl; not needed any more.
4519 * src/main.c (main): Use return to exit, undoing yesterday's change.
4520 The last OS that we could find where this wouldn't work is
4521 SunOS 3.5, and that's too old to worry about now.
4522
4523 * data/glr.c (struct yyltype): Define members even when not
4524 doing locations. This is more consistent with yacc.c, and it
4525 works around the following bug reports:
4526 http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
4527 http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
4528
4529 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
4530 @acronym consistently. Standardize on "Yacc" instead of "YACC",
4531 "Algol" instead of "ALGOL". Give a bit more history about BNF.
4532
45332002-10-22 Akim Demaille <akim@epita.fr>
4534
4535 * data/README: New.
4536
45372002-10-21 Paul Eggert <eggert@twinsun.com>
4538
4539 Be consistent about 'bool'; the old code used an enum in one
4540 module and an int in another, and this violates the C standard.
4541 * m4/stdbool.m4: New file, from coreutils 4.5.3.
4542 * configure.ac (AC_HEADER_STDBOOL): Add.
4543 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
4544 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
4545 * src/symtab.c (hash_compare_symbol_t): Likewise.
4546 * src/system.h (bool, false, true): Use a definition consistent
4547 with ../lib/hash.c. All uses changed.
4548
4549 * src/complain.c (warning_issued): Renamed from warn_message_count,
4550 so that we needn't worry about integer overflow (!).
4551 Now of type bool. All uses changed.
4552 (complaint_issued): Renamed from complain_message_count; likewise.
4553
4554 * src/main.c (main): Use exit to exit with failure.
4555
4556 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
4557 rather than 1 and 0.
4558 * src/main.c (main): Likewise.
4559 * src/getargs.c (getargs): Likewise.
4560 * src/reader.c (reader): Likewise.
4561
4562 * src/getarg.c (getargs): Remove duplicate code for
4563 "Try `bison --help'".
4564
4565 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
4566 What was that "2" for?
4567
4568 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
4569 * src/getargs.c (usage): Likewise.
4570
4571 * src/getargs.c (getargs): When there are too few operands, report
4572 the last one. When there are too many, report the first extra
4573 one. This is how diffutils does it.
4574
45752002-10-20 Paul Eggert <eggert@twinsun.com>
4576
4577 Remove K&R vestiges.
4578 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
4579 * src/complain.c (VA_START): Remove. Assume prototypes.
4580 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
4581 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
4582 fatal): Assume prototypes.
4583 * src/complain.h: Assume prototypes.
4584 * src/system.h (PARAMS): Remove.
4585 Include <limits.h> unconditionally, since it's guaranteeed even
4586 for a freestanding C89 compiler.
4587 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
4588 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
4589
45902002-10-20 Akim Demaille <akim@epita.fr>
4591
4592 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
4593 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
4594 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
4595 (yyresolveStates, yyresolveAction, yyresolveStack)
4596 (yyprocessOneStack): Use them.
4597 (yy_reduce_print): New.
4598 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
4599
46002002-10-20 Akim Demaille <akim@epita.fr>
4601
4602 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
4603 arguments and output `void'.
4604 (b4_c_function): Rename as...
4605 (b4_c_function_def): this.
4606 (b4_c_function_decl, b4_c_ansi_function_def)
4607 (b4_c_ansi_function_decl): New.
4608 Change the interpretation of the arguments: before `int, foo', now
4609 `int foo, foo'.
4610 * data/yacc.c (yyparse): Prototype and define thanks to these.
4611 Adjust b4_c_function_def uses.
4612 * data/glr.c (yyparse): Likewise, but ANSI only.
4613
46142002-10-20 Akim Demaille <akim@epita.fr>
4615
4616 * src/output.c (prepare): Move the definition of `tokens_number',
4617 `nterms_number', `undef_token_number', `user_token_number_max'
4618 to...
4619 (prepare_tokens): Here.
4620 (prepare_tokens): Rename as...
4621 (prepare_symbols): this.
4622 (prepare): Move the definition of `rules_number' to...
4623 (prepare_rules): here.
4624 (prepare): Move the definition of `last', `final_state_number',
4625 `states_number' to...
4626 (prepare_states): here.
4627 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
4628
46292002-10-20 Akim Demaille <akim@epita.fr>
4630
4631 * src/tables.h, src/tables.c, src/output.c: Comment changes.
4632
46332002-10-20 Akim Demaille <akim@epita.fr>
4634
4635 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
4636 * data/c.m4: here.
4637
46382002-10-20 Akim Demaille <akim@epita.fr>
4639
4640 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
4641 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
4642 `pair'.
4643 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
4644 `name' to...
4645 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
4646 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
4647 These.
4648
46492002-10-19 Paul Eggert <eggert@twinsun.com>
4650
4651 Do not create a temporary file, as that involves security and
4652 cleanup headaches. Instead, use a pair of pipes.
4653 Derived from a suggestion by Florian Krohm.
4654 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
4655 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
4656 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
4657 (BISON_PREREQ_SUBPIPE): Add.
4658 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
4659 Add subpipe.h, subpipe.c.
4660 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
4661 * po/POTFILES.in: Add lib/subpipe.c.
4662 * src/output.c: Include "subpipe.h".
4663 (m4_invoke): Remove decl.
4664 (scan_skel): New decl.
4665 (output_skeleton): Use pipe rather than temporary file for m4 input.
4666 Check that m4sugar.m4 is readable, to avoid deadlock.
4667 Check for pipe I/O error.
4668 * src/scan-skel.l (readpipe): Remove decl.
4669 (scan_skel): New function, to be used in place of m4_invoke.
4670 Read from stream rather than file.
4671
4672 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
4673 float, as this generates a warning on Solaris 8 + GCC 3.2 with
4674 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
4675 this generates a more-accurate value anyway.
4676
4677 * lib/timevar.c (timervar_accumulate): Rename locals to
4678 avoid confusion with similarly-named more-global.
4679 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
4680
4681 * src/output.c (prepare): Use xstrdup to convert char const *
4682 to char *, to avoid GCC warning.
4683
46842002-10-19 Akim Demaille <akim@epita.fr>
4685
4686 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
4687 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
4688 Use them to have `calc.y' ready for %pure-parser.
4689 * data/yacc.c (YYLEX): Pass a yylex return type to
4690 b4_c_function_call.
4691
46922002-10-19 Akim Demaille <akim@epita.fr>
4693
4694 Prototype support of %lex-param and %parse-param.
4695
4696 * src/parse-gram.y: Add the definition of the %lex-param and
4697 %parse-param tokens, plus their rules.
4698 Drop the `_' version of %glr-parser.
4699 Add the "," token.
4700 * src/scan-gram.l (INITIAL): Scan them.
4701 * src/muscle_tab.c: Comment changes.
4702 (muscle_insert, muscle_find): Rename `pair' as `probe'.
4703 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
4704 (muscle_entry_s): The `value' member is no longer const.
4705 Adjust all dependencies.
4706 * src/muscle_tab.c (muscle_init): Adjust: use
4707 MUSCLE_INSERT_STRING.
4708 Initialize the obstack earlier.
4709 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
4710 (muscle_pair_list_grow): New.
4711 * data/c.m4 (b4_c_function_call, b4_c_args): New.
4712 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
4713 * tests/calc.at: Use %locations, not --locations.
4714 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
4715
47162002-10-19 Akim Demaille <akim@epita.fr>
4717
4718 * src/getargs.c (usage): Take status as argument and exit
4719 accordingly.
4720 Report the traditional `Try ... --help' message when status != 0.
4721 (usage, version): Don't take a FILE * as arg, it is pointless.
4722 (getargs): When there is an incorrect number of arguments, make it
4723 an error, and report it GNUlically thanks to `usage ()'.
4724
47252002-10-18 Paul Eggert <eggert@twinsun.com>
4726
4727 * data/glr.c (yyreportParseError): Don't assume that sprintf
4728 yields the length of the printed string, as this is not true
4729 on SunOS 4.1.4. Reported by Peter Klein.
4730
4731 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
4732 * tests/conflicts.at (%nonassoc and eof): Likewise.
4733 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
4734
47352002-10-17 Akim Demaille <akim@epita.fr>
4736
4737 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
4738 * src/getargs.c (trace_types, trace_args): Adjust.
4739 * src/reader.c (grammar_current_rule_prec_set)
4740 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
4741 Standardize error messages.
4742 And s/@prec/%prec/!
4743 (reader): Use trace_flag to enable scanner/parser debugging,
4744 instead of an adhoc scheme.
4745 * src/scan-gram.l: Remove trailing debugging code.
4746
47472002-10-16 Paul Eggert <eggert@twinsun.com>
4748
4749 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
4750 MUSCLE_TAB_H.
4751
4752 * NEWS: Officially drop support for building Bison with K&R C,
4753 since it didn't work anyway and it's not worth worrying about.
4754 * Makefile.maint (wget_files): Remove ansi2knr.c.
4755 (ansi2knr.c-url_prefix): Remove.
4756 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
4757 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
4758 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
4759
47602002-10-15 Paul Eggert <eggert@twinsun.com>
4761
4762 Stop using the "enum_" trick for K&R-style function definitions;
4763 it confused me, and I was the author! Instead, assume that people
4764 who want to use K&R C compilers (when using these modules in GCC,
4765 perhaps?) will run ansi2knr.
4766
4767 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
4768 All uses of "enum_" changed to "enum ".
4769 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
4770 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
4771
4772 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
4773 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
4774 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
4775 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
4776 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
4777 abitset_not, abitset_ones, abitset_or, abitset_or_and,
4778 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
4779 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
4780 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
4781 Use function prototypes; this removes the need for declaring
4782 static functions simply to provide their prototypes.
4783 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
4784 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
4785 bitset_count_, bitset_create, bitset_dump, bitset_first,
4786 bitset_free, bitset_init, bitset_last, bitset_next,
4787 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
4788 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
4789 bitset_print, bitset_release_memory, bitset_toggle_,
4790 bitset_type_choose, bitset_type_get, bitset_type_name_get,
4791 debug_bitset): Likewise.
4792 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
4793 * lib/bitset_stats.c (bitset_log_histogram_print,
4794 bitset_percent_histogram_print, bitset_stats_and,
4795 bitset_stats_and_cmp, bitset_stats_and_or,
4796 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
4797 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
4798 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
4799 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
4800 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
4801 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
4802 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
4803 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
4804 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
4805 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
4806 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
4807 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
4808 bitset_stats_zero): Likewise.
4809 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
4810 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
4811 bitsetv_dump, debug_bitsetv): Likewise.
4812 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
4813 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
4814 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
4815 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
4816 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
4817 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
4818 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
4819 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
4820 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
4821 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
4822 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
4823 Likewise.
4824 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
4825 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
4826 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
4827 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
4828 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
4829 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
4830 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
4831 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
4832 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
4833 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
4834 lbitset_xor_cmp, lbitset_zero): Likewise.
4835
48362002-10-14 Akim Demaille <akim@epita.fr>
4837
4838 Version 1.75.
4839
48402002-10-14 Akim Demaille <akim@epita.fr>
4841
4842 * tests/Makefile.am (maintainer-check-posix): New.
4843
48442002-10-14 Akim Demaille <akim@epita.fr>
4845
4846 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
4847 member.
4848
48492002-10-14 Akim Demaille <akim@epita.fr>
4850
4851 * src/tables.c (table_ninf_remap): base -> tab.
4852 Reported by Matt Rosing.
4853
48542002-10-14 Paul Eggert <eggert@twinsun.com>
4855
4856 * tests/action.at, tests/calc.at, tests/conflicts.at,
4857 tests/cxx-type.at, tests/headers.at, tests/input.at,
4858 tests/regression.at, tests/synclines.at, tests/torture.at:
4859 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
4860 so that the tests still work even if POSIXLY_CORRECT is set.
4861 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
4862
4863 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
4864 for portability to K&R hosts. Fix typo: signed char is guaranteed
4865 only to 127, not to 128.
4866 * data/glr.c (yysigned_char): New type.
4867 * data/yacc.c (yysigned_char): Likewise.
4868 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
4869
48702002-10-13 Paul Eggert <eggert@twinsun.com>
4871
4872 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
4873 true due to limited range of data type" warning from GCC.
4874
4875 * data/c.m4 (b4_token_defines): Protect against double-inclusion
4876 by wrapping enum yytokentype's definition inside #ifndef
4877 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
4878
48792002-10-13 Akim Demaille <akim@epita.fr>
4880
4881 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
4882 Un yy- yyrhs to avoid the name clash with the global YYRHS.
4883
48842002-10-13 Akim Demaille <akim@epita.fr>
4885
4886 * Makefile.maint: Update from Autoconf 2.54.
4887 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
4888
48892002-10-13 Akim Demaille <akim@epita.fr>
4890
4891 * src/print.c (print_state): Separate the list of solved conflicts
4892 from the other items.
4893 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
4894
48952002-10-13 Akim Demaille <akim@epita.fr>
4896
4897 Let nondeterministic skeletons be usable with deterministic
4898 tables.
4899
4900 With the patch, GAWK compiled by GCC without -O2 passes its test
4901 suite using a GLR parser driven by LALR tables. It fails with -O2
4902 because `struct stat' gives two different answers on my machine:
4903 88 (definition of an auto var) and later 96 (memset on this var).
4904 Hence the stack is badly corrumpted. The headers inclusion is to
4905 blame: if I move the awk.h inclusion before GLR's system header
4906 inclusion, the two struct stat have the same size.
4907
4908 * src/tables.c (pack_table): Always create conflict_table.
4909 (token_actions): Always create conflict_list.
4910 * data/glr.c (YYFLAG): Remove, unused.
4911
49122002-10-13 Akim Demaille <akim@epita.fr>
4913
4914 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
4915 (O0FLAGS): New.
4916 (VALGRIND, GXX): New.
4917 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
4918 * tests/bison.in: Run $PREBISON a pre-command.
4919 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
4920 (maintainer-check-g++): New.
4921 * Makefile.am (maintainer-check): New.
4922
49232002-10-13 Akim Demaille <akim@epita.fr>
4924
4925 * data/glr.c: Formatting changes.
4926 Tweak some trace messages to match yacc.c's.
4927
49282002-10-13 Akim Demaille <akim@epita.fr>
4929
4930 GLR parsers sometimes raise parse errors instead of performing the
4931 default reduction.
4932 Reported by Charles-Henry de Boysson.
4933
4934 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
4935 check the length of the traces when %glr.
4936 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
4937 GLR's traces.
4938 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
4939 Test GLR parsers.
4940 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
4941 (yyltype): Remove the yy prefix from the member names.
4942 (yytable): Complete its comment.
4943 (yygetLRActions): Map error action number from YYTABLE from
4944 YYTABLE_NINF to 0.
4945 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
4946 (which was a bug: it should have been YYTABEL_NINF, and yet it was
4947 not satisfying as we could compare an YYACTION computed from
4948 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
4949 only value for error actions.
4950 (yyreportParseError): In verbose parse error messages, don't issue
4951 `error' in the list of expected tokens.
4952 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
4953 next action to perform to match glr.c's decoding.
4954 (yytable): Complete its comment.
4955
49562002-10-13 Paul Eggert <eggert@twinsun.com>
4957
4958 Fix problem reported by Henrik Grubbstroem in
4959 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
4960 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
4961 because the Bison parser reads the second action before reducing
4962 the first one.
4963 * src/scan-gram.l (rule_length): New static var.
4964 Use it to keep track of the rule length in the scanner, since
4965 we can't expect the parser to be in lock-step sync with the scanner.
4966 (handle_action_dollar, handle_action_at): Use this var.
4967 * tests/actions.at (Exotic Dollars): Test for the problem.
4968
49692002-10-12 Paul Eggert <eggert@twinsun.com>
4970
4971 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
4972 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
4973 Include <sys/time.h> when checking for clock_t and struct tms.
4974 Use same include order as source.
4975 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
4976 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
4977
4978 * lib/timevar.c: Update copyright date and clarify comments.
4979 (get_time) [IN_GCC]: Keep the GCC version for reference.
4980
4981 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
4982 GCC version as of today, then merge Bison's changes.
4983 Change "GCC" to "Bison" in copyright notice. timevar.def's
4984 author is Akim, so change that too.
4985
4986 * src/reader.c (grammar_current_rule_check):
4987 Don't worry about the default action if $$ is untyped.
4988 Prevents bogus warnings reported by Jim Gifford in
4989 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
4990
4991 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
4992 * data/glr.c, data/lalr1.cc, data/yacc.c:
4993 Output token definitions before the first part of user declarations.
4994 Fixes compatibility problem reported by Jim Gifford for kbd in
4995 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
4996
49972002-10-11 Paul Eggert <eggert@twinsun.com>
4998
4999 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
5000 (yyparse): here. This undoes some of the 2002-07-25 change.
5001 Compatibility problem reported by Ralf S. Engelschall with
5002 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
5003
50042002-10-11 Akim Demaille <akim@epita.fr>
5005
5006 * tests/regression.at Characters Escapes): New.
5007 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
5008 characters.
5009 Reported by Jan Nieuwenhuizen.
5010
50112002-10-11 Akim Demaille <akim@epita.fr>
5012
5013 * po/id.po: New.
5014
50152002-10-10 Paul Eggert <eggert@twinsun.com>
5016
5017 Portability fixes for bitsets; this also avoids several GCC
5018 warnings.
5019
5020 * lib/abitset.c: Include <stddef.h>, for offsetof.
5021 * lib/lbitset.c: Likewise.
5022
5023 * lib/abitset.c (abitset_bytes): Return a size that is aligned
5024 properly for vectors of objects. Do not assume that adding a
5025 header size to a multiple of a word size yields a value that is
5026 properly aligned for the whole union.
5027 * lib/bitsetv.c (bitsetv_alloc): Likewise.
5028
5029 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
5030 unique names for structures.
5031 * lib/ebitset.c (ebitset_bytes): Likewise.
5032 * lib/lbitset.c (lbitset_bytes): Likewise.
5033
5034 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
5035 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
5036 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
5037 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
5038 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
5039 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
5040 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
5041 to improve the type-checking that GCC can do.
5042 * lib/bitset.c (bitset_op4_cmp): Likewise.
5043 * lib/bitset_stats.c (bitset_stats_count,
5044 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
5045 bitset_stats_copy, bitset_stats_disjoint_p,
5046 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
5047 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
5048 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
5049 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
5050 bitset_stats_and_or_cmp, bitset_stats_andn_or,
5051 bitset_stats_andn_or_cmp, bitset_stats_or_and,
5052 bitset_stats_or_and_cmp): Likewise.
5053 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
5054 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
5055 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
5056 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
5057
5058 * lib/abitset.h: Include bitset.h, not bbitset.h.
5059 * lib/ebitset.h: Likewise.
5060 * lib/lbitset.h: Likewise.
5061
5062 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
5063 All instances of parameters of type enum bitset_opts are now of
5064 type enum_bitset_opts, to conform to the C Standard, and similarly
5065 for enum_bitset_type.
5066 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
5067 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
5068
5069 Do not use "struct bitset_struct" to mean different things in
5070 different modules. Not only is this confusing, it violates
5071 the C Standard, which requires that structure types in different
5072 modules must be compatible if one is to be passed to the other.
5073 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
5074 All instances of "struct bitset_struct *" replaced with "bitset".
5075 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
5076 (union bitset_union, struct abitset_struct, struct ebitset_struct,
5077 struct lbitset_struct, struct bitset_stats_struct): New types.
5078 All uses of struct bitset_struct changed to union bitset_union,
5079 etc.
5080 * lib/abitset.c (struct abitset_struct, abitset,
5081 struct bitset_struct): Remove.
5082 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
5083 struct bitset_struct): Remove.
5084 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
5085 bitset_struct): Remove.
5086 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
5087 Likewise.
5088
5089 Do not call a function of type T using a call that assumes the
5090 function is of a different type U. Standard C requires that a
5091 function must be called with a type that is compatible with its
5092 definition.
5093 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
5094 New decls.
5095 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
5096 New functions.
5097 * lib/ebitset.c (PFV): Remove.
5098 * lib/lbitset.c (PFV): Likewise.
5099 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
5100 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
5101 decls.
5102 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
5103 (ebitset_vtable): Use them.
5104 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
5105 lbitset_xor): New functions.
5106 (lbitset_vtable): Use them.
5107
5108 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
5109 Declare.
5110
5111 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
5112 GCC warning.
5113 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
5114 Use offsetof, for simplicity.
5115
51162002-10-06 Paul Eggert <eggert@twinsun.com>
5117
5118 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
5119 the same width as int. This reapplies a hunk of the 2002-08-12 patch
5120 <http://lists.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
5121 which was inadvertently undone by the 2002-09-30 patch.
5122 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
5123 the same width as int.
5124
51252002-10-04 Paul Eggert <eggert@twinsun.com>
5126
5127 Version 1.50.
5128
5129 * configure.ac (AC_INIT), NEWS: Increment version number.
5130
5131 * doc/bison.texinfo: Minor spelling, grammar, and white space
5132 fixes.
5133 (Symbols): Mention that any negative value returned from yylex
5134 signifies end-of-input. Warn about negative chars. Mention
5135 the portable Standard C character set.
5136
5137 The GNU coding standard says CFLAGS and YFLAGS are reserved
5138 for the installer to set.
5139 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
5140 * src/Makefile.am (AM_CFLAGS): Likewise.
5141 (AM_YFLAGS): Renamed from YFLAGS.
5142
5143 Fix some MAX and MIN problems.
5144 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
5145 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
5146 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
5147 * src/reader.c (reader): Use it.
5148
5149 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
5150 POSIX 1003.1-2001 has removed fgrep.
5151
51522002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5153
5154 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
5155 interpreted as signed.
5156 * lib/ebitset.c (ebitset_list): Fix bug.
5157
51582002-10-01 Paul Eggert <eggert@twinsun.com>
5159
5160 More fixes for 64-bit hosts and large bitsets.
5161
5162 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
5163 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
5164 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
5165 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
5166 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
5167 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
5168 bitset_count_): Likewise.
5169 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
5170 bitset_first, bitset_last): Likewise.
5171 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
5172 bitset_stats_list_reverse, bitset_stats_size,
5173 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
5174 Likewise.
5175 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
5176 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
5177 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
5178 bitsetv_reflexive_transitive_closure): Likewise.
5179 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
5180 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
5181 Likewise.
5182 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
5183 Likewise.
5184
5185 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
5186 Use size_t, not unsigned int, to count bytes.
5187 * lib/abitset.h (abitset_bytes): Likewise.
5188 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
5189 Likewise.
5190 * lib/bitset.h (bitset_bytes): Likewise.
5191 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
5192 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
5193 * lib/bitsetv.c (bitsetv_alloc): Likewise.
5194 * lib/ebitset.c (ebitset_bytes): Likewise.
5195 * lib/ebitset.h (ebitset_bytes): Likewise.
5196 * lib/lbitset.c (lbitset_bytes): Likewise.
5197 * lib/lbitset.h (lbitset_bytes): Likewise.
5198
5199 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
5200 abitset_subset_p, abitset_disjoint_p, abitset_and,
5201 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
5202 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
5203 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
5204 abitset_or_and, abitset_or_and_cmp):
5205 Use bitset_windex instead of unsigned int.
5206 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
5207 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
5208 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
5209 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
5210 Likewise.
5211 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
5212
5213 * lib/bitset.c (bitset_print):
5214 Use proper printf formats for widths of integer types.
5215 * lib/bitset_stats.c (bitset_percent_histogram_print,
5216 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
5217 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
5218 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
5219 * lib/lbitset.c (lbitset_bytes): Likewise.
5220
5221 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
5222 BITSET_SIZE_MAX): New macros.
5223 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
5224 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
5225 to BITSET_WINDEX_MAX.
5226
5227 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
5228 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
5229 since we now return the bitset_bindex type (not int).
5230
5231 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
5232 when computing sizes.
5233 * lib/ebitset.c (ebitset_elts_grow): Likewise.
5234
5235 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
5236 and avoid cast to unsigned.
5237
52382002-09-30 Akim Demaille <akim@epita.fr>
5239
5240 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
5241 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
5242 Updates from Michael Hayes.
5243
52442002-09-30 Art Haas <ahaas@neosoft.com>
5245
5246 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
5247 invocations.
5248 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
5249 defined.
5250
52512002-09-27 Akim Demaille <akim@epita.fr>
5252
5253 Version 1.49c.
5254
52552002-09-27 Akim Demaille <akim@epita.fr>
5256
5257 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
5258 (Because of AC_LIBSOURCE).
5259
52602002-09-27 Akim Demaille <akim@epita.fr>
5261
5262 Playing with Autoscan.
5263
5264 * configure.ac: Remove the old LIBOBJ tweaks.
5265 (AC_REPLACE_FUNCS): Add strrchr and strtol.
5266 * lib/strrchr.c: New.
5267 * lib/strtol.c: New, from the Coreutils 4.5.1.
5268
52692002-09-27 Akim Demaille <akim@epita.fr>
5270
5271 Playing with Autoscan.
5272
5273 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
5274 * lib/Makefile.am (libbison_a_SOURCES): No longer include
5275 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
5276 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
5277 Coreutils 4.5.1.
5278
52792002-09-24 Akim Demaille <akim@epita.fr>
5280
5281 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
5282 (Frequently Asked Questions, Parser Stack Overflow): New.
5283
52842002-09-13 Akim Demaille <akim@epita.fr>
5285
5286 Playing with autoscan.
5287
5288 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
5289 * src/files.c (skeleton_find): Remove, unused.
5290 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
5291 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
5292
52932002-09-13 Akim Demaille <akim@epita.fr>
5294
5295 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
5296 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
5297
52982002-09-13 Akim Demaille <akim@epita.fr>
5299
5300 * configure.ac: Require 2.54.
5301 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
5302 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
5303 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
5304 Remove, provided by Autoconf macros.
5305
53062002-09-12 Akim Demaille <akim@epita.fr>
5307
5308 * m4/prereq.m4: Update, from Coreutils 4.5.1.
5309
53102002-09-12 Akim Demaille <akim@epita.fr>
5311
5312 * m4/prereq.m4: Update, from Fileutils 4.1.5.
5313 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
5314 Reported by Martin Mokrejs.
5315
53162002-09-10 Akim Demaille <akim@epita.fr>
5317
5318 * src/parse-gram.y: Associate a human readable string to each
5319 token type.
5320 * tests/regression.at (Invalid inputs): Adjust.
5321
53222002-09-10 Gary V. Vaughan <gary@gnu.org>
5323
5324 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
5325 with an Autoconf-2.5x style configure.ac.
5326
53272002-09-06 Paul Eggert <eggert@twinsun.com>
5328
5329 * doc/bison.texinfo (Conditions): Make explicit that the GPL
5330 exception applies only to yacc.c. This is a modification of a
5331 patch originally suggested by Akim Demaille.
5332
53332002-09-06 Akim Demaille <akim@epita.fr>
5334
5335 * data/c.m4 (b4_copyright): Move the GPL exception comment from
5336 here to...
5337 * data/yacc.c: here.
5338
5339 * data/lalr1.cc (struct yyltype): Don't define it, since we use
5340 LocationType.
5341 (b4_ltype): Default to yy::Location from location.hh.
5342
53432002-09-04 Jim Meyering <jim@meyering.net>
5344
5345 * data/yacc.c: Guard the declaration of yytoknum also with
5346 `#ifdef YYPRINT', so it is declared only when used.
5347
53482002-09-04 Akim Demaille <akim@epita.fr>
5349
5350 * configure.in: Rename as...
5351 * configure.ac: this.
5352 Bump to 1.49c.
5353
53542002-09-04 Akim Demaille <akim@epita.fr>
5355
5356 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
5357 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
5358 translate maintainer only messages.
5359
53602002-08-12 Paul Eggert <eggert@twinsun.com>
5361
5362 Version 1.49b.
5363
5364 * Makefile.am (SUBDIRS): Remove intl.
5365 (DISTCLEANFILES): Remove.
5366 * NEWS: Mention that GNU M4 is now required. Clarify what is
5367 meant by "larger grammars". Mention the pt_BR translation.
5368 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
5369 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
5370 Bump version from 0.11.2 to 0.11.5.
5371 (BISON_PREREQ_STAGE): Remove.
5372 (AM_GNU_GETTEXT): Use external gettext.
5373 (AC_OUTPUT): Remove intl/Makefile.
5374
5375 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
5376
5377 * data/glr.c: Include string.h, for strlen.
5378 (yyreportParseError): Use size_t for yysize.
5379 (yy_yypstack): No longer nested inside yypstates, as nested
5380 functions are not portable. Do not assume size_t is the
5381 same width as int.
5382 (yypstates): Do not assume that ptrdiff_t is the same width
5383 as int, and similarly for yyposn and YYINDEX.
5384
5385 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
5386
5387 * lib/Makefile.am (INCLUDES): Do not include from the intl
5388 directory, which has been removed.
5389 * src/Makefile.am (INCLUDES): Likewise.
5390
5391 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
5392 (bitsets_sources, additional_bitsets_sources, timevars_sources):
5393 New vars.
5394
5395 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
5396 * tests/Makefile.am (EXTRA_DIST): Likewise.
5397
5398 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
5399 Do not assume that bitset_windex is the same width as unsigned.
5400
5401 * lib/abitset.c (abitset_unused_clear): Do not assume that
5402 bitset_word is the same width as int.
5403 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
5404 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
5405 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
5406 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
5407 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
5408
5409 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
5410 portability to one's complement hosts!).
5411 * lib/ebitset.c (ebitset_op1): Likewise.
5412 * lib/lbitset.c (lbitset_op1): Likewise.
5413
5414 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
5415 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
5416 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
5417 Sync with fileutils.
5418 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
5419 lib/gettext.h: Sync with diffutils.
5420
5421 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
5422 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
5423
5424 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
5425 PROTOTYPES to check for prototypes, and "defined __STDC__" to
5426 check for void *.
5427
5428 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
5429 size_t; the old version tried to do this but casted improperly.
5430 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
5431 (bitset_test): Now returns int, not unsigned long.
5432
5433 * lib/bitset_stats.c: Include "gettext.h".
5434 (_): New macro.
5435 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
5436 name locals "index", as it generates unnecessary warnings on some
5437 hosts that have an "index" function.
5438
5439 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
5440 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
5441 they need translation.
5442 * src/LR0.c (state_list_append, new_itemsets, get_state,
5443 append_states, generate_states): Likewise.
5444 * src/assoc.c (assoc_to_string): Likewise.
5445 * src/closure.c (print_closure, set_firsts, closure): Likewise.
5446 * src/gram.c (grammar_dump): Likewise.
5447 * src/injections.c (injections_compute): Likewise.
5448 * src/lalr.c (lookaheads_print): Likewise.
5449 * src/relation.c (relation_transpose): Likewise.
5450 * src/scan-gram.l: Likewise.
5451 * src/tables.c (table_grow, pack_vector): Likewise.
5452
5453 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
5454 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
5455 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
5456 * m4/mbstate_t.m4: Sync with fileutils.
5457 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
5458
5459 * po/LINGUAS: Add pt_BR.
5460 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
5461 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
5462 lib/timevar.c.
5463 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
5464 manual recommends.
5465 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
5466
5467 * src/complain.c (strerror_r): Remove decl; not needed.
5468 (strerror): Use same pattern as ../lib/error.c.
5469
5470 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
5471
5472 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
5473
5474 * src/main.c (main): Cast result of bindtextdomain and textdomain
5475 to void, to avoid a GCC warning when --disable-nls is in effect.
5476
5477 * src/scan-gram.l: Use strings rather than escapes when possible,
5478 to minimize the number of warnings from xgettext.
5479 (handle_action_dollar, handle_action_at): Don't use isdigit,
5480 as it mishandles negative chars and it may not work as expected
5481 outside the C locale.
5482
5483 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
5484 this is a GCC extension and is not portable to other compilers.
5485
5486 * src/system.h (alloca): Use same pattern as ../lib/error.c.
5487 Do not include <ctype.h>; no longer needed.
5488 Do not include <malloc.h>; no longer needed (and generates
5489 warnings on OpenBSD 3.0).
5490
5491 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
5492 it's not portable.
5493
5494 * tests/regression.at: Do not use 'cc -c input.c -o input';
5495 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
5496
5497 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
5498 exit status as failure, not just exit status 1. Sun C exits
5499 with status 2 sometimes.
5500
5501 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
5502 Use it for the two large tests.
5503
55042002-08-02 Akim Demaille <akim@epita.fr>
5505
5506 * src/conflicts.c (conflicts_output): Don't output rules never
5507 reduced here, since anyway that computation doesn't work.
5508 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
5509 (rule_useless_p, rule_never_reduced_p): New.
5510 (grammar_rules_partial_print): Use a filter instead of a range.
5511 Display the title only if needed.
5512 (grammar_rules_print): Adjust.
5513 (grammar_rules_never_reduced_report): New.
5514 * src/tables.c (action_row): Move the computation of rules never
5515 reduced to...
5516 (token_actions): here.
5517 * src/main.c (main): Make the parser before making the report, so
5518 that rules never reduced are computed.
5519 Call grammar_rules_never_reduced_report.
5520 * src/print.c (print_results): Report rules never reduced.
5521 * tests/conflicts.at, tests/reduce.at: Adjust.
5522
55232002-08-01 Akim Demaille <akim@epita.fr>
5524
5525 Instead of attaching lookaheads and duplicating the rules being
5526 reduced by a state, attach the lookaheads to the reductions.
5527
5528 * src/state.h (state_t): Remove the `lookaheads',
5529 `lookaheads_rule' member.
5530 (reductions_t): Add a `lookaheads' member.
5531 Use a regular array for the `rules'.
5532 * src/state.c (reductions_new): Initialize the lookaheads member
5533 to 0.
5534 (state_rule_lookaheads_print): Adjust.
5535 * src/state.h, src/state.c (state_reductions_find): New.
5536 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
5537 (count_rr_conflicts): Adjust.
5538 * src/lalr.c (LArule): Remove.
5539 (add_lookback_edge): Adjust.
5540 (state_lookaheads_count): New.
5541 (states_lookaheads_initialize): Merge into...
5542 (initialize_LA): this.
5543 (lalr_free): Adjust.
5544 * src/main.c (main): Don't free nullable and derives too early: it
5545 is used by --verbose.
5546 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
5547
55482002-08-01 Akim Demaille <akim@epita.fr>
5549
5550 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
5551 `rule_number_t**'.
5552 (set_derives, free_derives): Rename as...
5553 (derives_compute, derives_free): this.
5554 Adjust all dependencies.
5555 * src/nullable.c (set_nullable, free_nullable): Rename as...
5556 (nullable_compute, nullable_free): these.
5557 (rule_list_t): Store rule_t *, not rule_number_t.
5558 * src/state.c (state_rule_lookaheads_print): Directly compare rule
5559 pointers, instead of their numbers.
5560 * src/main.c (main): Call nullable_free, and derives_free earlier,
5561 as they were lo longer used.
5562
55632002-08-01 Akim Demaille <akim@epita.fr>
5564
5565 * lib/timevar.c (get_time): Include children time.
5566 * src/lalr.h (LA, LArule): Don't export them: used with the
5567 state_t.
5568 * src/lalr.c (LA, LArule): Static.
5569 * src/lalr.h, src/lalr.c (lalr_free): New.
5570 * src/main.c (main): Call it.
5571 * src/tables.c (pack_vector): Check whether loc is >= to the
5572 table_size, not >.
5573 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
5574 (tables_generate): do it, since that's also it which allocates
5575 them.
5576 Don't free LA and LArule, main does.
5577
55782002-07-31 Akim Demaille <akim@epita.fr>
5579
5580 Separate parser tables computation and output.
5581
5582 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
5583 (conflict_list, conflict_list_cnt, table, check, table_ninf)
5584 (yydefgoto, yydefact, high): Move to...
5585 * src/tables.h, src/tables.c: here.
5586 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
5587 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
5588 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
5589 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
5590 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
5591 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
5592 (action_row, save_row, token_actions, save_column, default_goto)
5593 (goto_actions, sort_actions, matching_state, pack_vector)
5594 (table_ninf_remap, pack_table, prepare_actions): Move to...
5595 * src/tables.c: here.
5596 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
5597 * src/output.c (token_actions, output_base, output_conflicts)
5598 (output_check): Merge into...
5599 (prepare_actions): this.
5600 (actions_output): Rename as...
5601 (user_actions_output): this.
5602 * src/main.c (main): Call tables_generate and tables_free.
5603
56042002-07-31 Akim Demaille <akim@epita.fr>
5605
5606 Steal GCC's --time-report support.
5607
5608 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
5609 stolen/adjusted from GCC.
5610 * m4/stage.m4: Remove time related checks.
5611 * m4/timevar.m4: New.
5612 * configure.in: Adjust.
5613 * src/system.h: Adjust to using timevar.h.
5614 * src/getargs.h, src/getargs.c: Support trace_time for
5615 --trace=time.
5616 * src/main.c (stage): Remove.
5617 (main): Replace `stage' invocations with timevar calls.
5618 * src/output.c: Insert pertinent timevar calls.
5619
56202002-07-31 Akim Demaille <akim@epita.fr>
5621
5622 Let --trace have arguments.
5623
5624 * src/getargs.h (enum trace_e): New.
5625 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
5626 (long_options, short_options): --trace/-T takes an optional
5627 argument.
5628 Change all the uses of trace_flag to reflect the new flags.
5629 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
5630
5631 Strengthen `stage' portability.
5632
5633 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
5634 * configure.in: Use it.
5635 Don't check for malloc.h and sys/times.h.
5636 * src/system.h: Include them when appropriate.
5637 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
5638 times and struct tms are available.
5639
56402002-07-30 Akim Demaille <akim@epita.fr>
5641
5642 In verbose parse error message, don't report `error' as an
5643 expected token.
5644 * tests/actions.at (Printers and Destructors): Adjust.
5645 * tests/calc.at (Calculator $1): Adjust.
5646 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
5647 error message, do not report the parser accepts the error token in
5648 that state.
5649
56502002-07-30 Akim Demaille <akim@epita.fr>
5651
5652 Normalize conflict related messages.
5653
5654 * src/complain.h, src/complain.c (warn, complain): New.
5655 * src/conflicts.c (conflicts_print): Use them.
5656 (conflict_report_yacc): New, extracted from...
5657 (conflicts_print): here.
5658 * tests/conflicts.at, tests/existing.at: Adjust.
5659
56602002-07-30 Akim Demaille <akim@epita.fr>
5661
5662 Report rules which are never reduced by the parser: those hidden
5663 by conflicts.
5664
5665 * src/LR0.c (save_reductions): Don't make the final state too
5666 different: save its reduction (accept) instead of having a state
5667 without any action (no shift or goto, no reduce).
5668 Note: the final state is now a ``regular'' state, i.e., the
5669 parsers now contain `reduce 0' as default reduction.
5670 Nevertheless, since they decide to `accept' when yystate =
5671 final_state, they still will not reduce rule 0.
5672 * src/print.c (print_actions, print_reduction): Adjust.
5673 * src/output.c (action_row): Track reduced rules.
5674 (token_actions): Report rules never reduced.
5675 * tests/conflicts.at, tests/regression.at: Adjust.
5676
56772002-07-30 Akim Demaille <akim@epita.fr>
5678
5679 `stage' was accidently included in a previous patch.
5680 Initiate its autoconfiscation.
5681
5682 * configure.in: Look for malloc.h and sys/times.h.
5683 * src/main.c (stage): Adjust.
5684 Report only when trace_flag.
5685
56862002-07-29 Akim Demaille <akim@epita.fr>
5687
5688 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
5689 state_number_t.
5690 (errs_t): symbol_t*, not symbol_number_t.
5691 (reductions_t): rule_t*, not rule_number_t.
5692 (FOR_EACH_SHIFT): New.
5693 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
5694 * src/print.c, src/print_graph.c: Adjust.
5695
56962002-07-29 Akim Demaille <akim@epita.fr>
5697
5698 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
5699
5700 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
5701 (endtoken, accept): these.
5702 * src/reader.c (reader): Set endtoken's default tag to "$end".
5703 Set undeftoken's tag to "$undefined" instead of "$undefined.".
5704 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
5705 Adjust.
5706
57072002-07-29 Akim Demaille <akim@epita.fr>
5708
5709 * src/reduce.c (reduce_grammar): When the language is empty,
5710 complain about the start symbol, not the axiom.
5711 Use its location.
5712 * tests/reduce.at (Empty Language): New.
5713
57142002-07-26 Akim Demaille <akim@epita.fr>
5715
5716 * src/reader.h, src/reader.c (gram_error): ... can't get
5717 yycontrol without making too strong assumptions on the parser
5718 itself.
5719 * src/output.c (prepare_tokens): Use the real 0th value of
5720 token_translations instead of `0'.
5721 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
5722 visible here.
5723 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
5724 for the time being: %locations ought to provide it to yyerror.
5725
57262002-07-25 Akim Demaille <akim@epita.fr>
5727
5728 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
5729 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
5730 * tests/regression.at (Web2c Actions): Adjust.
5731
57322002-07-25 Akim Demaille <akim@epita.fr>
5733
5734 Stop storing rules from 1 to nrules + 1.
5735
5736 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
5737 * src/nullable.c, src/output.c, src/print.c, src/reader.c
5738 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
5739 Iterate from 0 to nrules.
5740 Use rule_number_as_item_number and item_number_as_rule_number.
5741 Adjust to `derive' now containing possibly 0.
5742 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
5743 Handle the `- 1' part in rule numbers from/to item numbers.
5744 * src/conflicts.c (log_resolution): Fix the message which reversed
5745 shift and reduce.
5746 * src/output.c (action_row): Initialize default_rule to -1.
5747 (token_actions): Adjust.
5748 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
5749 expected output.
5750 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
5751
57522002-07-25 Akim Demaille <akim@epita.fr>
5753
5754 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
5755 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
5756 (b4_c_knr_arg_decl): New.
5757 * data/yacc.c: Use it to define yysymprint, yydestruct, and
5758 yyreport_parse_error.
5759
57602002-07-25 Akim Demaille <akim@epita.fr>
5761
5762 * data/yacc.c (yyreport_parse_error): New, extracted from...
5763 (yyparse): here.
5764 (yydestruct, yysymprint): Move above yyparse.
5765 Be K&R compliant.
5766
57672002-07-25 Akim Demaille <akim@epita.fr>
5768
5769 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
5770 replace...
5771 (b4_sint_type, b4_uint_type): these.
5772 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
5773 * tests/regression.at (Web2c Actions): Adjust.
5774
57752002-07-25 Akim Demaille <akim@epita.fr>
5776
5777 * src/gram.h (TIEM_NUMBER_MAX): New.
5778 (item_number_of_rule_number, rule_number_of_item_number): Rename
5779 as...
5780 (rule_number_as_item_number, item_number_as_rule_number): these.
5781 Adjust dependencies.
5782 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
5783 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
5784 (symbol_number_to_vector_number): New.
5785 (order): Of vector_number_t* type.
5786 (base_t, BASE_MAX, BASE_MIN): New.
5787 (froms, tos, width, pos, check): Of base_t type.
5788 (action_number_t, ACTION_MIN, ACTION_MAX): New.
5789 (actrow): Of action_number_t type.
5790 (conflrow): Of unsigned int type.
5791 (table_ninf, base_ninf): New.
5792 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
5793 (muscle_insert_int_table, muscle_insert_base_table)
5794 (muscle_insert_rule_number_table): New.
5795 (prepare_tokens): Output `toknum' as int_table.
5796 (action_row): Returns a rule_number_t.
5797 Use ACTION_MIN, not SHRT_MIN.
5798 (token_actions): yydefact is rule_number_t*.
5799 (table_ninf_remap): New.
5800 (pack_table): Use it for `base' and `table'.
5801 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
5802 replaced with...
5803 (YYPACT_NINF, YYTABLE_NINF): these.
5804 (yypact, yytable): Compute their types instead of hard-coded
5805 `short'.
5806 * tests/regression.at (Web2c Actions): Adjust.
5807
58082002-07-19 Akim Demaille <akim@epita.fr>
5809
5810 * src/scan-gram.l (id): Can start with an underscore.
5811
58122002-07-16 Akim Demaille <akim@epita.fr>
5813
5814 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
5815 Adjust all former `associativity' dependencies.
5816 * src/symtab.c (symbol_new): Default associativity is `undef', not
5817 `right'.
5818 (symbol_check_alias_consistence): Adjust.
5819
58202002-07-09 Akim Demaille <akim@epita.fr>
5821
5822 * doc/bison.texinfo: Properly set the ``header'' part.
5823 Use @dircategory ``GNU programming tools'' as per Texinfo's
5824 documentation.
5825 Use @copying.
5826
58272002-07-09 Akim Demaille <akim@epita.fr>
5828
5829 * lib/quotearg.h: Protect against multiple inclusions.
5830 * src/location.h (location_t): Add a `file' member.
5831 (LOCATION_RESET, LOCATION_PRINT): Adjust.
5832 * src/complain.c (warn_at, complain_at, fatal_at): Drop
5833 `error_one_per_line' support.
5834
58352002-07-09 Akim Demaille <akim@epita.fr>
5836
5837 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
5838 * src/reader.c (lineno): Remove.
5839 Adjust all dependencies.
5840 (get_merge_function): Take a location and use complain_at.
5841 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
5842 * tests/regression.at (Invalid inputs, Mixing %token styles):
5843 Adjust.
5844
58452002-07-09 Akim Demaille <akim@epita.fr>
5846
5847 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
5848 recovery rule, and forbid extensions when --yacc.
5849 (gram_error): Use complain_at.
5850 * src/reader.c (reader): Exit if there were parse errors.
5851
58522002-07-09 Akim Demaille <akim@epita.fr>
5853
5854 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
5855 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
5856 Reported by R Blake <blakers@mac.com>.
5857
58582002-07-09 Akim Demaille <akim@epita.fr>
5859
5860 * data/yacc.c: Output the copyright notive in the header.
5861
58622002-07-03 Akim Demaille <akim@epita.fr>
5863
5864 * src/output.c (froms, tos): Are state_number_t.
5865 (save_column): sp, sp1, and sp2 are state_number_t.
5866 (prepare): Rename `final' as `final_state_number', `nnts' as
5867 `nterms_number', `nrules' as `rules_number', `nstates' as
5868 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
5869 unused.
5870 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
5871 * data/lalr1.cc (nsym_): Remove, unused.
5872
58732002-07-03 Akim Demaille <akim@epita.fr>
5874
5875 * src/lalr.h, src/lalr.c (goto_number_t): New.
5876 * src/lalr.c (goto_list_t): New.
5877 Propagate them.
5878 * src/nullable.c (rule_list_t): New.
5879 Propagate.
5880 * src/types.h: Remove.
5881
58822002-07-03 Akim Demaille <akim@epita.fr>
5883
5884 * src/closure.c (print_fderives): Use rule_rhs_print.
5885 * src/derives.c (print_derives): Use rule_rhs_print.
5886 (rule_list_t): New, replaces `shorts'.
5887 (set_derives): Add comments.
5888 * tests/sets.at (Nullable, Firsts): Adjust.
5889
58902002-07-03 Akim Demaille <akim@epita.fr>
5891
5892 * src/output.c (prepare_actions): Free `tally' and `width'.
5893 (prepare_actions): Allocate and free `order'.
5894 * src/symtab.c (symbols_free): Free `symbols'.
5895 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
5896 * src/output.c (m4_invoke): Move to...
5897 * src/scan-skel.l: here.
5898 (<<EOF>>): Close yyout, and free its name.
5899
59002002-07-03 Akim Demaille <akim@epita.fr>
5901
5902 Fix some memory leaks, and fix a bug: state 0 was examined twice.
5903
5904 * src/LR0.c (new_state): Merge into...
5905 (state_list_append): this.
5906 (new_states): Merge into...
5907 (generate_states): here.
5908 (set_states): Don't ensure a proper `errs' state member here, do it...
5909 * src/conflicts.c (conflicts_solve): here.
5910 * src/state.h, src/state.c: Comment changes.
5911 (state_t): Rename member `shifts' as `transitions'.
5912 Adjust all dependencies.
5913 (errs_new): For consistency, also take the values as argument.
5914 (errs_dup): Remove.
5915 (state_errs_set): New.
5916 (state_reductions_set, state_transitions_set): Assert that no
5917 previous value was assigned.
5918 (state_free): New.
5919 (states_free): Use it.
5920 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
5921 temporary storage: use `errs' and `nerrs' as elsewhere.
5922 (set_conflicts): Allocate and free this `errs'.
5923
59242002-07-02 Akim Demaille <akim@epita.fr>
5925
5926 * lib/libiberty.h: New.
5927 * lib: Update the bitset implementation from upstream.
5928 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
5929 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
5930 * src/main.c: Adjust bitset stats calls.
5931
59322002-07-01 Paul Eggert <eggert@twinsun.com>
5933
5934 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
5935 char, so that negative chars don't collide with $.
5936
59372002-06-30 Akim Demaille <akim@epita.fr>
5938
5939 Have the GLR tests be `warning' checked, and fix the warnings.
5940
5941 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
5942 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
5943 (yyremoveDeletes): `yyi' and `yyj' are size_t.
5944 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
5945 (yyaddDeferredAction): static.
5946 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
5947 (yyreportParseError): yyprefix is const.
5948 yytokenp is used only when verbose.
5949 (yy__GNUC__): Replace with __GNUC__.
5950 (yypdumpstack): yyi is size_t.
5951 (yypreference): Un-yy local variables and arguments, to avoid
5952 clashes with `yyr1'. Anyway, we are not in the user name space.
5953 (yytname_size): be an int, as is compared with ints.
5954 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
5955 Use them.
5956 * tests/cxx-gram.at: Use quotation to protect $1.
5957 Use AT_COMPILE to enable warnings hunts.
5958 Prototype yylex and yyerror.
5959 `Use' argc.
5960 Include `string.h', not `strings.h'.
5961 Produce and prototype stmtMerge only when used.
5962 yylex takes a location.
5963
59642002-06-30 Akim Demaille <akim@epita.fr>
5965
5966 We spend a lot of time in quotearg, in particular when --verbose.
5967
5968 * src/symtab.c (symbol_get): Store a quoted version of the key.
5969 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
5970 Adjust all callers.
5971
59722002-06-30 Akim Demaille <akim@epita.fr>
5973
5974 * src/state.h (reductions_t): Rename member `nreds' as num.
5975 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
5976 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
5977
59782002-06-30 Akim Demaille <akim@epita.fr>
5979
5980 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
5981 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
5982 (shifts_to): Rename as...
5983 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
5984 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
5985 (TRANSITION_IS_DISABLED, transitions_to): these.
5986
59872002-06-30 Akim Demaille <akim@epita.fr>
5988
5989 * src/print.c (print_shifts, print_gotos): Merge into...
5990 (print_transitions): this.
5991 (print_transitions, print_errs, print_reductions): Align the
5992 lookaheads columns.
5993 (print_core, print_transitions, print_errs, print_state,
5994 print_grammar): Output empty lines separator before, not after.
5995 (state_default_rule_compute): Rename as...
5996 (state_default_rule): this.
5997 * tests/conflicts.at (Defaulted Conflicted Reduction),
5998 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
5999 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
6000
60012002-06-30 Akim Demaille <akim@epita.fr>
6002
6003 Display items as we display rules.
6004
6005 * src/gram.h, src/gram.c (rule_lhs_print): New.
6006 * src/gram.c (grammar_rules_partial_print): Use it.
6007 * src/print.c (print_core): Likewise.
6008 * tests/conflicts.at (Defaulted Conflicted Reduction),
6009 (Unresolved SR Conflicts): Adjust.
6010 (Unresolved SR Conflicts): Adjust and rename as...
6011 (Resolved SR Conflicts): this, as was meant.
6012 * tests/regression.at (Web2c Report): Adjust.
6013
60142002-06-30 Akim Demaille <akim@epita.fr>
6015
6016 * src/print.c (state_default_rule_compute): New, extracted from...
6017 (print_reductions): here.
6018 Pessimize, but clarify the code.
6019 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
6020
60212002-06-30 Akim Demaille <akim@epita.fr>
6022
6023 * src/output.c (action_row): Let default_rule be always a rule
6024 number.
6025
60262002-06-30 Akim Demaille <akim@epita.fr>
6027
6028 * src/closure.c (print_firsts, print_fderives, closure):
6029 Use BITSET_EXECUTE.
6030 * src/lalr.c (lookaheads_print): Likewise.
6031 * src/state.c (state_rule_lookaheads_print): Likewise.
6032 * src/print_graph.c (print_core): Likewise.
6033 * src/print.c (print_reductions): Likewise.
6034 * src/output.c (action_row): Likewise.
6035 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
6036
60372002-06-30 Akim Demaille <akim@epita.fr>
6038
6039 * src/print_graph.c: Use report_flag.
6040
60412002-06-30 Akim Demaille <akim@epita.fr>
6042
6043 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
6044 to...
6045 * src/relation.h, src/relation.c (traverse, relation_digraph)
6046 (relation_print, relation_transpose): New.
6047
60482002-06-30 Akim Demaille <akim@epita.fr>
6049
6050 * src/state.h, src/state.c (shifts_to): New.
6051 * src/lalr.c (build_relations): Use it.
6052
60532002-06-30 Akim Demaille <akim@epita.fr>
6054
6055 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
6056 (item_number_of_rule_number, rule_number_of_item_number): New.
6057 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
6058 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
6059 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
6060 Propagate their use.
6061 Much remains to be done, in particular wrt `shorts' from types.h.
6062
60632002-06-30 Akim Demaille <akim@epita.fr>
6064
6065 * src/symtab.c (symbol_new): Initialize the `printer' member.
6066
60672002-06-30 Akim Demaille <akim@epita.fr>
6068
6069 * src/LR0.c (save_reductions): Remove, replaced by...
6070 * src/state.h, src/state.c (state_reductions_set): New.
6071 (reductions, errs): Rename as...
6072 (reductions_t, errs_t): these.
6073 Adjust all dependencies.
6074
60752002-06-30 Akim Demaille <akim@epita.fr>
6076
6077 * src/LR0.c (state_list_t, state_list_append): New.
6078 (first_state, last_state): Now symbol_list_t.
6079 (this_state): Remove.
6080 (new_itemsets, append_states, save_reductions): Take a state_t as
6081 argument.
6082 (set_states, generate_states): Adjust.
6083 (save_shifts): Remove, replaced by...
6084 * src/state.h, src/state.c (state_shifts_set): New.
6085 (shifts): Rename as...
6086 (shifts_t): this.
6087 Adjust all dependencies.
6088 * src/state.h (state_t): Remove the `next' member.
6089
60902002-06-30 Akim Demaille <akim@epita.fr>
6091
6092 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
6093 escaped in slot 0.
6094
60952002-06-30 Akim Demaille <akim@epita.fr>
6096
6097 Use hash.h for the state hash table.
6098
6099 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
6100 (allocate_storage): Use state_hash_new.
6101 (free_storage): Use state_hash_free.
6102 (new_state, get_state): Adjust.
6103 * src/lalr.h, src/lalr.c (states): Move to...
6104 * src/states.h (state_t): Remove the `link' member, no longer
6105 used.
6106 * src/states.h, src/states.c: here.
6107 (state_hash_new, state_hash_free, state_hash_lookup)
6108 (state_hash_insert, states_free): New.
6109 * src/states.c (state_table, state_compare, state_hash): New.
6110 * src/output.c (output_actions): Do not free states now, since we
6111 still need to know the final_state number in `prepare', called
6112 afterwards. Do it...
6113 * src/main.c (main): here: call states_free after `output'.
6114
61152002-06-30 Akim Demaille <akim@epita.fr>
6116
6117 * src/state.h, src/state.c (state_new): New, extracted from...
6118 * src/LR0.c (new_state): here.
6119 * src/state.h (STATE_ALLOC): Move to...
6120 * src/state.c: here.
6121 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
6122 * src/state.h, src/state.c: here.
6123
61242002-06-30 Akim Demaille <akim@epita.fr>
6125
6126 * src/reader.c (gensym): Rename as...
6127 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
6128 (getsym): Rename as...
6129 (symbol_get): this.
6130
61312002-06-30 Akim Demaille <akim@epita.fr>
6132
6133 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
6134 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
6135 * src/output.c, src/print.c, src/print_graph.c: Propagate.
6136 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
6137
61382002-06-30 Akim Demaille <akim@epita.fr>
6139
6140 Make the test suite pass with warnings checked.
6141
6142 * tests/actions.at (Printers and Destructors): Improve.
6143 Avoid unsigned vs. signed issues.
6144 * tests/calc.at: Don't exercise the scanner here, do it...
6145 * tests/input.at (Torturing the Scanner): here.
6146
61472002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6148
6149 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
6150 reorganize first lines parallel to yacc.c.
6151
61522002-06-28 Akim Demaille <akim@epita.fr>
6153
6154 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
6155 (b4_token_enum, b4_token_defines): New, factored from...
6156 * data/lalr1.cc, data/yacc.c, glr.c: here.
6157
61582002-06-28 Akim Demaille <akim@epita.fr>
6159
6160 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
6161 unused variables.
6162 * src/output.c (merger_output): static.
6163
61642002-06-28 Akim Demaille <akim@epita.fr>
6165
6166 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
6167 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
6168 pacify GCC.
6169 * src/output.c (save_row): Initialize all the variables to pacify GCC.
6170
61712002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6172
6173 Accumulated changelog for new GLR parsing features.
6174
6175 * src/conflicts.c (count_total_conflicts): Change name to
6176 conflicts_total_count.
6177 * src/conflicts.h: Ditto.
6178 * src/output.c (token_actions): Use the new name.
6179 (output_conflicts): Change conflp => conflict_list_heads, and
6180 confl => conflict_list for better readability.
6181 * data/glr.c: Use the new names.
6182 * NEWS: Add self to GLR announcement.
6183
6184 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
6185
6186 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
6187 Akim Demaille.
6188
6189 * data/bison.glr: Change name to glr.c
6190 * data/glr.c: Renamed from bison.glr.
6191 * data/Makefile.am: Add glr.c
6192
6193 * src/getargs.c:
6194
6195 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
6196 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
6197
6198 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6199
6200 * data/bison.glr: Be sure to restore the
6201 current #line when returning to the skeleton contents after having
6202 exposed the input file's #line.
6203
6204 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6205
6206 * data/bison.glr: Bring up to date with changes to bison.simple.
6207
6208 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6209
6210 * data/bison.glr: Correct definitions that use b4_prefix.
6211 Various reformatting.
6212 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
6213 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
6214 yytokenp argument; now part of stack.
6215 (yychar): Define to behave as documented.
6216 (yyclearin): Ditto.
6217
6218 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6219
6220 * src/reader.h: Add declaration for free_merger_functions.
6221
6222 * src/reader.c (merge_functions): New variable.
6223 (get_merge_function): New function.
6224 (free_merger_functions): New function.
6225 (readgram): Check for %prec that is not followed by a symbol.
6226 Handle %dprec and %merge declarations.
6227 (packgram): Initialize dprec and merger fields in rules array.
6228
6229 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
6230 conflict_list_cnt, conflict_list_free): New variables.
6231 (table_grow): Also grow conflict_table.
6232 (prepare_rules): Output dprec and merger tables.
6233 (conflict_row): New function.
6234 (action_row): Output conflict lists for GLR parser. Don't use
6235 default reduction in conflicted states for GLR parser so that there
6236 are spaces for the conflict lists.
6237 (save_row): Also save conflict information.
6238 (token_actions): Allocate conflict list.
6239 (merger_output): New function.
6240 (pack_vector): Pack conflict table, too.
6241 (output_conflicts): New function to output yyconflp and yyconfl.
6242 (output_check): Allocate conflict_tos.
6243 (output_actions): Output conflict tables, also.
6244 (output_skeleton): Output b4_mergers definition.
6245 (prepare): Output b4_max_rhs_length definition.
6246 Use 'bison.glr' as default skeleton for GLR parsers.
6247
6248 * src/gram.c (glr_parser): New flag.
6249 (grammar_free): Call free_merger_functions.
6250
6251 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
6252 all pairs of conflicting reductions, rather than just all tokens
6253 causing conflicts. Needed to size conflict tables.
6254 (conflicts_output): Modify call to count_rr_conflicts for new
6255 interface.
6256 (conflicts_print): Ditto.
6257 (count_total_conflicts): New function.
6258
6259 * src/reader.h (merger_list): New type.
6260 (merge_functions): New variable.
6261
6262 * src/lex.h (tok_dprec, tok_merge): New token types.
6263
6264 * src/gram.h (rule_s): Add dprec and merger fields.
6265 (glr_parser): New flag.
6266
6267 * src/conflicts.h (count_total_conflicts): New function.
6268
6269 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
6270
6271 * doc/bison.texinfo (Generalized LR Parsing): New section.
6272 (GLR Parsers): New section.
6273 (Language and Grammar): Mention GLR parsing.
6274 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
6275 Correct typo ("tge" -> "the").
6276
6277 * data/bison.glr: New skeleton for GLR parsing.
6278
6279 * tests/cxx-gram.at: New tests for GLR parsing.
6280
6281 * tests/testsuite.at: Include cxx-gram.at.
6282
6283 * tests/Makefile.am: Add cxx-gram.at.
6284
6285 * src/parse-gram.y:
6286
6287 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
6288
6289 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
6290
62912002-06-27 Akim Demaille <akim@epita.fr>
6292
6293 * src/options.h, src/options.c: Remove.
6294 * src/getargs.c (short_options, long_options): New.
6295
62962002-06-27 Akim Demaille <akim@epita.fr>
6297
6298 * data/bison.simple, data/bison.c++: Rename as...
6299 * data/yacc.c, data/lalr1.cc: these.
6300 * doc/bison.texinfo (Environment Variables): Remove.
6301
63022002-06-25 Raja R Harinath <harinath@cs.umn.edu>
6303
6304 * src/getargs.c (report_argmatch): Initialize strtok().
6305
63062002-06-20 Akim Demaille <akim@epita.fr>
6307
6308 * data/bison.simple (b4_symbol_actions): New, replaces...
6309 (b4_symbol_destructor, b4_symbol_printer): these.
6310 (yysymprint): Be sure to call YYPRINT only for tokens, and using
6311 user token numbers.
6312
63132002-06-20 Akim Demaille <akim@epita.fr>
6314
6315 * data/bison.simple (yydestructor): Rename as...
6316 (yydestruct): this.
6317
63182002-06-20 Akim Demaille <akim@epita.fr>
6319
6320 * src/symtab.h, src/symtab.c (symbol_type_set)
6321 (symbol_destructor_set, symbol_precedence_set): The location is
6322 the last argument.
6323 Adjust all callers.
6324
63252002-06-20 Akim Demaille <akim@epita.fr>
6326
6327 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
6328 internals.
6329 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
6330 Takes a location.
6331 * src/symtab.h, src/symtab.c (symbol_class_set)
6332 (symbol_user_token_number_set): Likewise.
6333 Adjust all callers.
6334 Promote complain_at.
6335 * tests/input.at (Type Clashes): Adjust.
6336
63372002-06-20 Akim Demaille <akim@epita.fr>
6338
6339 * data/bison.simple (YYLEX): Fix the declaration when
6340 %pure-parser.
6341
63422002-06-20 Akim Demaille <akim@epita.fr>
6343
6344 * data/bison.simple (yysymprint): Don't print the token number,
6345 just its name.
6346 * tests/actions.at (Destructors): Rename as...
6347 (Printers and Destructors): this.
6348 Also exercise %printer.
6349
63502002-06-20 Akim Demaille <akim@epita.fr>
6351
6352 * data/bison.simple (YYDSYMPRINT): New.
6353 Use it to remove many of the #if YYDEBUG/if (yydebug).
6354
63552002-06-20 Akim Demaille <akim@epita.fr>
6356
6357 * src/symtab.h, src/symtab.c (symbol_t): printer and
6358 printer_location are new members.
6359 (symbol_printer_set): New.
6360 * src/parse-gram.y (PERCENT_PRINTER): New token.
6361 Handle its associated rule.
6362 * src/scan-gram.l: Adjust.
6363 (handle_destructor_at, handle_destructor_dollar): Rename as...
6364 (handle_symbol_code_at, handle_symbol_code_dollar): these.
6365 * src/output.c (symbol_printers_output): New.
6366 (output_skeleton): Call it.
6367 * data/bison.simple (yysymprint): New. Cannot be named yyprint
6368 since there are already many grammar files with a user `yyprint'.
6369 Replace the calls to YYPRINT to calls to yysymprint.
6370 * tests/calc.at: Adjust.
6371 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
6372 taking advantage of parser very internal details (stack size!).
6373
63742002-06-20 Akim Demaille <akim@epita.fr>
6375
6376 * src/scan-gram.l: Complete the scanner with the missing patterns
6377 to pacify Flex.
6378 Use `quote' and `symbol_tag_get' where appropriate.
6379
63802002-06-19 Akim Demaille <akim@epita.fr>
6381
6382 * tests/actions.at (Destructors): Augment to test locations.
6383 * data/bison.simple (yydestructor): Pass it the current location
6384 if locations are enabled.
6385 Prototype only when __STDC__ or C++.
6386 Change the argument names to move into the yy name space: there is
6387 user code here.
6388
63892002-06-19 Akim Demaille <akim@epita.fr>
6390
6391 * data/bison.simple (b4_pure_if): New.
6392 Use it instead of #ifdef YYPURE.
6393
63942002-06-19 Akim Demaille <akim@epita.fr>
6395
6396 * data/bison.simple (b4_location_if): New.
6397 Use it instead of #ifdef YYLSP_NEEDED.
6398
63992002-06-19 Akim Demaille <akim@epita.fr>
6400
6401 Prepare @$ in %destructor, but currently don't bind it in the
6402 skeleton, as %location use is not cleaned up yet.
6403
6404 * src/scan-gram.l (handle_dollar, handle_destructor_at)
6405 (handle_action_at): New.
6406 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
6407 a braced_code_t and a location as additional arguments.
6408 (handle_destructor_dollar): Instead of requiring `b4_eval', just
6409 unquote one when outputting `b4_dollar_dollar'.
6410 Adjust callers.
6411 * data/bison.simple (b4_eval): Remove.
6412 (b4_symbol_destructor): Adjust.
6413 * tests/input.at (Invalid @n): Adjust.
6414
64152002-06-19 Zack Weinberg <zack@codesourcery.com>
6416
6417 * doc/bison.texinfo: Document ability to have multiple
6418 prologue sections.
6419
64202002-06-18 Akim Demaille <akim@epita.fr>
6421
6422 * src/files.c (compute_base_names): When computing the output file
6423 names from the input file name, strip the directory part.
6424
64252002-06-18 Akim Demaille <akim@epita.fr>
6426
6427 * data/bison.simple.new: Comment changes.
6428 Reported by Andreas Schwab.
6429
64302002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
6431
6432 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
6433 there are no `label `yyoverflowlab' defined but not used' warnings
6434 when yyoverflow is defined.
6435
64362002-06-18 Akim Demaille <akim@epita.fr>
6437
6438 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
6439 new member.
6440 (symbol_destructor_set): Adjust.
6441 * src/output.c (symbol_destructors_output): Output the destructor
6442 locations.
6443 Output the symbol name.
6444 * data/bison.simple (b4_symbol_destructor): Adjust.
6445
64462002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
6447 and Akim Demaille <akim@epita.fr>
6448
6449 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
6450 what's left on the stack when the error recovery hits EOF.
6451 * tests/actions.at (Destructors): Complete to exercise this case.
6452
64532002-06-17 Akim Demaille <akim@epita.fr>
6454
6455 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
6456 arguments is really empty, not only equal to `[]'.
6457 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
6458 member.
6459 (symbol_destructor_set): New.
6460 * src/output.c (symbol_destructors_output): New.
6461 * src/reader.h (brace_code_t, current_braced_code): New.
6462 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
6463 (handle_dollar): Rename as...
6464 (handle_action_dollar): this.
6465 (handle_destructor_dollar): New.
6466 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
6467 (grammar_declaration): Use it.
6468 * data/bison.simple (yystos): Is always defined.
6469 (yydestructor): New.
6470 * tests/actions.at (Destructors): New.
6471 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
6472
64732002-06-17 Akim Demaille <akim@epita.fr>
6474
6475 * src/symlist.h, src/symlist.c (symbol_list_length): New.
6476 * src/scan-gram.l (handle_dollar, handle_at): Compute the
6477 rule_length only when needed.
6478 * src/output.c (actions_output, token_definitions_output): Output
6479 the full M4 block.
6480 * src/symtab.c: Don't access directly to the symbol tag, use
6481 symbol_tag_get.
6482 * src/parse-gram.y: Use symbol_list_free.
6483
64842002-06-17 Akim Demaille <akim@epita.fr>
6485
6486 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
6487 (symbol_list_prepend, get_type_name): Move to...
6488 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
6489 (symbol_list_prepend, symbol_list_n_type_name_get): here.
6490 Adjust all callers.
6491 (symbol_list_free): New.
6492 * src/scan-gram.l (handle_dollar): Takes a location.
6493 * tests/input.at (Invalid $n): Adjust.
6494
64952002-06-17 Akim Demaille <akim@epita.fr>
6496
6497 * src/reader.h, src/reader.c (symbol_list_new): Export it.
6498 (symbol_list_prepend): New.
6499 * src/parse-gram.y (%union): `list' is a new member.
6500 (symbols.1): New, replaces...
6501 (terms_to_prec.1, nterms_to_type.1): these.
6502 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
6503 Take a location as additional argument.
6504 Adjust all callers.
6505
65062002-06-15 Akim Demaille <akim@epita.fr>
6507
6508 * src/parse-gram.y: Move %token in the declaration section so that
6509 we don't depend upon CVS Bison.
6510
65112002-06-15 Akim Demaille <akim@epita.fr>
6512
6513 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
6514 * src/print.c (print_core): Use it.
6515
65162002-06-15 Akim Demaille <akim@epita.fr>
6517
6518 * src/conflicts.c (log_resolution): Accept the rule involved in
6519 the sr conflicts instead of the lookahead number that points to
6520 that rule.
6521 (flush_reduce): Accept the current lookahead vector as argument,
6522 instead of the index in LA.
6523 (resolve_sr_conflict): Accept the current number of lookahead
6524 bitset to consider for the STATE, instead of the index in LA.
6525 (set_conflicts): Adjust.
6526 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
6527
65282002-06-15 Akim Demaille <akim@epita.fr>
6529
6530 * src/state.h (state_t): Replace the `lookaheadsp' member, a
6531 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
6532 Adjust all dependencies.
6533 * src/lalr.c (initialize_lookaheads): Split into...
6534 (states_lookaheads_count, states_lookaheads_initialize): these.
6535 (lalr): Adjust.
6536
65372002-06-15 Akim Demaille <akim@epita.fr>
6538
6539 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
6540 out of...
6541 (grammar_rules_print): here.
6542 * src/reduce.c (reduce_output): Use it.
6543 * tests/reduce.at (Useless Rules, Reduced Automaton)
6544 (Underivable Rules): Adjust.
6545
65462002-06-15 Akim Demaille <akim@epita.fr>
6547
6548 Copy BYacc's nice way to report the grammar.
6549
6550 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
6551 New.
6552 Don't print the rules' location, it is confusing and useless.
6553 (rule_print): Use grammar_rhs_print.
6554 * src/print.c (print_grammar): Use grammar_rules_print.
6555
65562002-06-15 Akim Demaille <akim@epita.fr>
6557
6558 Complete and rationalize `useless thing' warnings.
6559
6560 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
6561 (symbol_tag_print): New.
6562 Use them everywhere in place of accessing directly the tag member.
6563 * src/gram.h, src/gram.c (rule_print): New.
6564 Use it where a rule used to be printed `by hand'.
6565 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
6566 (reduce_grammar_tables): Report the useless rules.
6567 (reduce_print): Useless things are a warning, not an error.
6568 Report it as such.
6569 * tests/reduce.at (Useless Nonterminals, Useless Rules):
6570 (Reduced Automaton, Underivable Rules): Adjust.
6571 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
6572 * tests/conflicts.at (Unresolved SR Conflicts)
6573 (Solved SR Conflicts): Adjust.
6574
65752002-06-15 Akim Demaille <akim@epita.fr>
6576
6577 Let symbols have a location.
6578
6579 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
6580 (getsym): Adjust.
6581 Adjust all callers.
6582 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
6583 Use location_t, not int.
6584 * src/symtab.c (symbol_check_defined): Take advantage of the
6585 location.
6586 * tests/regression.at (Invalid inputs): Adjust.
6587
65882002-06-15 Akim Demaille <akim@epita.fr>
6589
6590 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
6591 (input): Don't try to initialize yylloc here, do it in the
6592 scanner.
6593 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
6594 * src/gram.h (rule_t): Change line and action_line into location
6595 and action_location, of location_t type.
6596 Adjust all dependencies.
6597 * src/location.h, src/location.c (empty_location): New.
6598 * src/reader.h, src/reader.c (grammar_start_symbol_set)
6599 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
6600 (grammar_current_rule_symbol_append)
6601 (grammar_current_rule_action_append): Expect a location as argument.
6602 * src/reader.c (grammar_midrule_action): Adjust to attach an
6603 action's location as dummy symbol location.
6604 * src/symtab.h, src/symtab.c (startsymbol_location): New.
6605 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
6606 the line numbers.
6607
66082002-06-14 Akim Demaille <akim@epita.fr>
6609
6610 Grammar declarations may be found in the grammar section.
6611
6612 * src/parse-gram.y (rules_or_grammar_declaration): New.
6613 (declarations): Each declaration may end with a semicolon, not
6614 just...
6615 (grammar_declaration): `"%union"'.
6616 (grammar): Branch to rules_or_grammar_declaration.
6617
66182002-06-14 Akim Demaille <akim@epita.fr>
6619
6620 * src/main.c (main): Invoke scanner_free.
6621
66222002-06-14 Akim Demaille <akim@epita.fr>
6623
6624 * src/output.c (m4_invoke): Extracted from...
6625 (output_skeleton): here.
6626 Free tempfile.
6627
66282002-06-14 Akim Demaille <akim@epita.fr>
6629
6630 * src/parse-gram.y (directives, directive, gram)
6631 (grammar_directives, precedence_directives, precedence_directive):
6632 Rename as...
6633 (declarations, declaration, grammar, grammar_declaration)
6634 (precedence_declaration, precedence_declarator): these.
6635 (symbol_declaration): New.
6636
66372002-06-14 Akim Demaille <akim@epita.fr>
6638
6639 * src/files.c (action_obstack): Remove, unused.
6640 (output_obstack): Remove it, and all its dependencies, as it is no
6641 longer needed.
6642 * src/reader.c (epilogue_set): Build the epilogue in the
6643 muscle_obstack.
6644 * src/output.h, src/output.c (muscle_obstack): Move to...
6645 * src/muscle_tab.h, src/muscle_tab.h: here.
6646 (muscle_init): Initialize muscle_obstack.
6647 (muscle_free): New.
6648 * src/main.c (main): Call it.
6649
66502002-06-14 Akim Demaille <akim@epita.fr>
6651
6652 * src/location.h: New, extracted from...
6653 * src/reader.h: here.
6654 * src/Makefile.am (noinst_HEADERS): Merge into
6655 (bison_SOURCES): this.
6656 Add location.h.
6657 * src/parse-gram.y: Use location_t instead of Bison's.
6658 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
6659 Use location_t instead of ints.
6660
66612002-06-14 Akim Demaille <akim@epita.fr>
6662
6663 * data/bison.simple, data/bison.c++: Be sure to restore the
6664 current #line when returning to the skeleton contents after having
6665 exposed the input file's #line.
6666
66672002-06-12 Akim Demaille <akim@epita.fr>
6668
6669 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
6670 eager.
6671 * tests/actions.at (Exotic Dollars): New.
6672
66732002-06-12 Akim Demaille <akim@epita.fr>
6674
6675 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
6676 ['"/] too eagerly.
6677 * tests/input.at (Torturing the Scanner): New.
6678
66792002-06-11 Akim Demaille <akim@epita.fr>
6680
6681 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
6682 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
6683 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
6684 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
6685 * src/reader.c (reader): Use it.
6686
66872002-06-11 Akim Demaille <akim@epita.fr>
6688
6689 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
6690 Adjust all callers.
6691 (scanner_last_string_free): New.
6692
66932002-06-11 Akim Demaille <akim@epita.fr>
6694
6695 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
6696 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
6697 (last_string, YY_OBS_FREE): New.
6698 Use them when returning an ID.
6699
67002002-06-11 Akim Demaille <akim@epita.fr>
6701
6702 Have Bison grammars parsed by a Bison grammar.
6703
6704 * src/reader.c, src/reader.h (prologue_augment): New.
6705 * src/reader.c (copy_definition): Remove.
6706
6707 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
6708 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
6709 (grammar_current_rule_prec_set, grammar_current_rule_check)
6710 (grammar_current_rule_symbol_append)
6711 (grammar_current_rule_action_append): Export.
6712 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
6713 (symbol_list_action_append): Remove.
6714 Hook the routines from reader.
6715 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
6716 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
6717
6718 * src/reader.c (read_declarations): Remove, unused.
6719
6720 * src/parse-gram.y: Handle the epilogue.
6721 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
6722 (grammar_start_symbol_set): this.
6723 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
6724 * src/reader.c (readgram): Remove, unused.
6725 (reader): Adjust to insert eoftoken and axiom where appropriate.
6726
6727 * src/reader.c (copy_dollar): Replace with...
6728 * src/scan-gram.h (handle_dollar): this.
6729 * src/parse-gram.y: Remove `%thong'.
6730
6731 * src/reader.c (copy_at): Replace with...
6732 * src/scan-gram.h (handle_at): this.
6733
6734 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
6735 New.
6736
6737 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
6738 time being.
6739
6740 * src/reader.h, src/reader.c (grammar_rule_end): New.
6741
6742 * src/parse.y (current_type, current_class): New.
6743 Implement `%nterm', `%token' support.
6744 Merge `%term' into `%token'.
6745 (string_as_id): New.
6746 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
6747 type name.
6748
6749 * src/parse-gram.y: Be sure to handle properly the beginning of
6750 rules.
6751
6752 * src/parse-gram.y: Handle %type.
6753 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
6754
6755 * src/parse-gram.y: More directives support.
6756 * src/options.c: No longer handle source directives.
6757
6758 * src/parse-gram.y: Fix %output.
6759
6760 * src/parse-gram.y: Handle %union.
6761 Use the prologue locations.
6762 * src/reader.c (parse_union_decl): Remove.
6763
6764 * src/reader.h, src/reader.c (epilogue_set): New.
6765 * src/parse-gram.y: Use it.
6766
6767 * data/bison.simple, data/bison.c++: b4_stype is now either not
6768 defined, then default to int, or to the contents of %union,
6769 without `union' itself.
6770 Adjust.
6771 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
6772
6773 * src/output.c (actions_output): Don't output braces, as they are
6774 already handled by the scanner.
6775
6776 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
6777 characters to themselves.
6778
6779 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
6780 that the epilogue has a proper #line.
6781
6782 * src/parse-gram.y: Handle precedence/associativity.
6783
6784 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
6785 a terminal.
6786 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
6787 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
6788 at all to define terminals that cannot be emitted.
6789
6790 * src/scan-gram.l: Escape M4 characters.
6791
6792 * src/scan-gram.l: Working properly with escapes in user
6793 strings/characters.
6794
6795 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
6796 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
6797 grammar.
6798 Use more modest sizes, as for the time being the parser does not
6799 release memory, and therefore the process swallows a huge amount
6800 of memory.
6801
6802 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
6803 stricter %token grammar.
6804
6805 * src/symtab.h (associativity): Add `undef_assoc'.
6806 (symbol_precedence_set): Do nothing when passed an undef_assoc.
6807 * src/symtab.c (symbol_check_alias_consistence): Adjust.
6808
6809 * tests/regression.at (Invalid %directive): Remove, as it is now
6810 meaningless.
6811 (Invalid inputs): Adjust to the new error messages.
6812 (Token definitions): The new grammar doesn't allow too many
6813 eccentricities.
6814
6815 * src/lex.h, src/lex.c: Remove.
6816 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
6817 (copy_character, copy_string2, copy_string, copy_identifier)
6818 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
6819 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
6820 (parse_action): Remove.
6821 * po/POTFILES.in: Adjust.
6822
68232002-06-11 Akim Demaille <akim@epita.fr>
6824
6825 * src/reader.c (parse_action): Don't store directly into the
6826 rule's action member: return the action as a string.
6827 Don't require `rule_length' as an argument: compute it.
6828 (grammar_current_rule_symbol_append)
6829 (grammar_current_rule_action_append): New, eved out from
6830 (readgram): here.
6831 Remove `action_flag', `rulelength', unused now.
6832
68332002-06-11 Akim Demaille <akim@epita.fr>
6834
6835 * src/reader.c (grammar_current_rule_prec_set).
6836 (grammar_current_rule_check): New, eved out from...
6837 (readgram): here.
6838 Remove `xaction', `first_rhs': useless.
6839 * tests/input.at (Type clashes): New.
6840 * tests/existing.at (GNU Cim Grammar): Adjust.
6841
68422002-06-11 Akim Demaille <akim@epita.fr>
6843
6844 * src/reader.c (grammar_midrule_action): New, Eved out from
6845 (readgram): here.
6846
68472002-06-11 Akim Demaille <akim@epita.fr>
6848
6849 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
6850 New.
6851 (readgram): Use them as replacement of inlined code, crule and
6852 crule1.
6853
68542002-06-11 Akim Demaille <akim@epita.fr>
6855
6856 * src/reader.c (grammar_end, grammar_symbol_append): New.
6857 (readgram): Use them.
6858 Make the use of `p' as local as possible.
6859
68602002-06-10 Akim Demaille <akim@epita.fr>
6861
6862 GCJ's parser requires the tokens to be defined before the prologue.
6863
6864 * data/bison.simple: Output the token definition before the user's
6865 prologue.
6866 * tests/regression.at (Braces parsing, Duplicate string)
6867 (Mixing %token styles): Check the output from bison.
6868 (Early token definitions): New.
6869
68702002-06-10 Akim Demaille <akim@epita.fr>
6871
6872 * src/symtab.c (symbol_user_token_number_set): Don't complain when
6873 assigning twice the same user number to a token, so that we can
6874 use it in...
6875 * src/lex.c (lex): here.
6876 Also use `symbol_class_set' instead of hand written code.
6877 * src/reader.c (parse_assoc_decl): Likewise.
6878
68792002-06-10 Akim Demaille <akim@epita.fr>
6880
6881 * src/symtab.c, src/symtab.c (symbol_class_set)
6882 (symbol_user_token_number_set): New.
6883 * src/reader.c (parse_token_decl): Use them.
6884 Use a switch instead of ifs.
6885 Use a single argument.
6886
68872002-06-10 Akim Demaille <akim@epita.fr>
6888
6889 Remove `%thong' support as it is undocumented, unused, duplicates
6890 `%token's job, and creates useless e-mail traffic with people who
6891 want to know what it is, why it is undocumented, unused, and
6892 duplicates `%token's job.
6893
6894 * src/reader.c (parse_thong_decl): Remove.
6895 * src/options.c (option_table): Remove "thong".
6896 * src/lex.h (tok_thong): Remove.
6897
68982002-06-10 Akim Demaille <akim@epita.fr>
6899
6900 * src/symtab.c, src/symtab.c (symbol_type_set)
6901 (symbol_precedence_set): New.
6902 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
6903 (value_components_used): Remove, unused.
6904
69052002-06-09 Akim Demaille <akim@epita.fr>
6906
6907 Move symbols handling code out of the reader.
6908
6909 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
6910 (axiom): Move to...
6911 * src/symtab.h, src/symtab.c: here.
6912
6913 * src/gram.c (start_symbol): Remove: use startsymbol->number.
6914 * src/reader.c (startval): Rename as...
6915 * src/symtab.h, src/symtab.c (startsymbol): this.
6916 * src/reader.c: Adjust.
6917
6918 * src/reader.c (symbol_check_defined, symbol_make_alias)
6919 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
6920 (token_translations_init)
6921 Move to...
6922 * src/symtab.c: here.
6923 * src/reader.c (packsymbols): Move to...
6924 * src/symtab.h, src/symtab.c (symbols_pack): here.
6925 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
6926 argument.
6927
69282002-06-03 Akim Demaille <akim@epita.fr>
6929
6930 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
6931 then statements.
6932
69332002-06-03 Akim Demaille <akim@epita.fr>
6934
6935 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
6936 structs with non literals.
6937 * src/scan-skel.l: never-interactive.
6938 * src/conflicts.c (enum conflict_resolution_e): No trailing
6939 comma.
6940 * src/getargs.c (usage): Split long literal strings.
6941 Reported by Hans Aberg.
6942
69432002-05-28 Akim Demaille <akim@epita.fr>
6944
6945 * data/bison.c++: Use C++ ostreams.
6946 (cdebug_): New member.
6947
69482002-05-28 Akim Demaille <akim@epita.fr>
6949
6950 * src/output.c (output_skeleton): Be sure to allocate enough room
6951 for `/' _and_ for `\0' in full_skeleton.
6952
69532002-05-28 Akim Demaille <akim@epita.fr>
6954
6955 * data/bison.c++: Catch up with bison.simple:
6956 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6957 and Paul Eggert <eggert@twinsun.com>: `error' handing.
6958 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
6959 and popping traces.
6960
69612002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6962
6963 * src/output.c (output_skeleton): Put an explicit path in front of
6964 the skeleton file name, rather than relying on the -I directory,
6965 to partially alleviate effects of having a skeleton file lying around
6966 in the current directory.
6967
69682002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6969
6970 * src/conflicts.c (log_resolution): Correct typo:
6971 obstack_printf should be obstack_fgrow1.
6972
69732002-05-26 Akim Demaille <akim@epita.fr>
6974
6975 * src/state.h (state_t): `solved_conflicts' is a new member.
6976 * src/LR0.c (new_state): Set it to 0.
6977 * src/conflicts.h, src/conflicts.c (print_conflicts)
6978 (free_conflicts, solve_conflicts): Rename as...
6979 (conflicts_print, conflicts_free, conflicts_solve): these.
6980 Adjust callers.
6981 * src/conflicts.c (enum conflict_resolution_e)
6982 (solved_conflicts_obstack): New, used by...
6983 (log_resolution): this.
6984 Adjust to attach the conflict resolution to each state.
6985 Complete the description with the precedence/associativity
6986 information.
6987 (resolve_sr_conflict): Adjust.
6988 * src/print.c (print_state): Output its solved_conflicts.
6989 * tests/conflicts.at (Unresolved SR Conflicts)
6990 (Solved SR Conflicts): Exercise --report=all.
6991
69922002-05-26 Akim Demaille <akim@epita.fr>
6993
6994 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
6995 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
6996 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
6997 (token_number_t, item_number_as_token_number)
6998 (token_number_as_item_number, muscle_insert_token_number_table):
6999 Rename as...
7000 (symbol_number_t, item_number_as_symbol_number)
7001 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
7002 these, since it is more appropriate.
7003
70042002-05-26 Akim Demaille <akim@epita.fr>
7005
7006 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
7007 `Error:' lines.
7008 * data/bison.simple (yystos) [YYDEBUG]: New.
7009 (yyparse) [YYDEBUG]: Display the symbols which are popped during
7010 error recovery.
7011 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
7012
70132002-05-25 Akim Demaille <akim@epita.fr>
7014
7015 * doc/bison.texinfo (Debugging): Split into...
7016 (Tracing): this new section, its former contents, and...
7017 (Understanding): this new section.
7018 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
7019 by...
7020 (report_flag): this.
7021 Adjust all dependencies.
7022 (report_args, report_types, report_argmatch): New.
7023 (usage, getargs): Report/support -r, --report.
7024 * src/options.h
7025 (struct option_table_struct): Rename as..,
7026 (struct option_table_s): this.
7027 Rename the `set_flag' member to `flag' to match with getopt_long's
7028 struct.
7029 * src/options.c (option_table): Split verbose into an entry for
7030 %verbose, and another for --verbose.
7031 Support --report/-r, so remove -r from the obsolete --raw.
7032 * src/print.c: Attach full item sets and lookaheads reports to
7033 report_flag instead of trace_flag.
7034 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
7035
70362002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7037 and Paul Eggert <eggert@twinsun.com>
7038
7039 * data/bison.simple (yyparse): Correct error handling to conform to
7040 POSIX and yacc. Specifically, after syntax error is discovered,
7041 do not reduce further before shifting the error token.
7042 Clean up the code a bit by removing the labels yyerrdefault,
7043 yyerrhandle, yyerrpop.
7044 * NEWS: Document the above.
7045
70462002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7047
7048 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
7049 type; it isn't always big enough, since it doesn't necessarily
7050 include non-terminals.
7051 (yytranslate): Expand definition of yy_token_number_type, so that
7052 the latter can be removed.
7053 (yy_token_number_type): Remove, only one use.
7054 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
7055 don't use TokenNumberType as element type.
7056
7057 * tests/regression.at: Modify expected output to agree with change
7058 to yyr1 and yytranslate.
7059
70602002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
7061
7062 * src/reader.c (parse_action): Use copy_character instead of
7063 obstack_1grow.
7064
70652002-05-13 Akim Demaille <akim@epita.fr>
7066
7067 * tests/regression.at (Token definitions): Prototype yylex and
7068 yyerror.
7069
70702002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7071
7072 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
7073 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
7074 32-bit arithmetic.
7075 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
7076
70772002-05-07 Akim Demaille <akim@epita.fr>
7078
7079 * tests/synclines.at: Be sure to prototype yylex and yyerror to
7080 avoid GCC warnings.
7081
70822002-05-07 Akim Demaille <akim@epita.fr>
7083
7084 Kill GCC warnings.
7085
7086 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
7087 over the RHS of each rule.
7088 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
7089 * src/state.h (state_t): Member `nitems' is unsigned short.
7090 * src/LR0.c (get_state): Adjust.
7091 * src/reader.c (packgram): Likewise.
7092 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
7093 `Type'.
7094 (muscle_insert_int_table): Remove, unused.
7095 (prepare_rules): Remove `max'.
7096
70972002-05-06 Akim Demaille <akim@epita.fr>
7098
7099 * src/closure.c (print_firsts): Display of the symbol tags.
7100 (bitmatrix_print): Move to...
7101 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
7102 here.
7103 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
7104
71052002-05-06 Akim Demaille <akim@epita.fr>
7106
7107 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
7108 hash_do_for_each.
7109
71102002-05-06 Akim Demaille <akim@epita.fr>
7111
7112 * src/LR0.c (new_state, get_state): Instead of using the global
7113 `kernel_size' and `kernel_base', have two new arguments:
7114 `core_size' and `core'.
7115 Adjust callers.
7116
71172002-05-06 Akim Demaille <akim@epita.fr>
7118
7119 * src/reader.c (packgram): No longer end `ritem' with a 0
7120 sentinel: it is not used.
7121
71222002-05-05 Akim Demaille <akim@epita.fr>
7123
7124 New experimental feature: display the lookaheads in the report and
7125 graph.
7126
7127 * src/print (print_core): When --trace-flag, display the rules
7128 lookaheads.
7129 * src/print_graph.c (print_core): Likewise.
7130 Swap the arguments.
7131 Adjust caller.
7132
71332002-05-05 Akim Demaille <akim@epita.fr>
7134
7135 * tests/torture.at (Many lookaheads): New test.
7136
71372002-05-05 Akim Demaille <akim@epita.fr>
7138
7139 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
7140 (GENERATE_MUSCLE_INSERT_TABLE): this.
7141 (output_int_table, output_unsigned_int_table, output_short_table)
7142 (output_token_number_table, output_item_number_table): Replace with...
7143 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
7144 (muscle_insert_short_table, muscle_insert_token_number_table)
7145 (muscle_insert_item_number_table): these.
7146 Adjust all callers.
7147 (prepare_tokens): Don't free `translations', since...
7148 * src/reader.h, src/reader.c (grammar_free): do it.
7149 Move to...
7150 * src/gram.h, src/gram.c (grammar_free): here.
7151 * data/bison.simple, data/bison.c++: b4_token_number_max is now
7152 b4_translate_max.
7153
71542002-05-05 Akim Demaille <akim@epita.fr>
7155
7156 * src/output.c (output_unsigned_int_table): New.
7157 (prepare_rules): `i' is unsigned.
7158 `prhs', `rline', `r2' are unsigned int.
7159 Rename muscle `rhs_number_max' as `rhs_max'.
7160 Output muscles `prhs_max', `rline_max', and `r2_max'.
7161 Free rline and r1.
7162 * data/bison.simple, data/bison.c++: Adjust to use these muscles
7163 to compute types instead of constant types.
7164 * tests/regression.at (Web2c Actions): Adjust.
7165
71662002-05-04 Akim Demaille <akim@epita.fr>
7167
7168 * src/symtab.h (SALIAS, SUNDEF): Rename as...
7169 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
7170 Adjust dependencies.
7171 * src/output.c (token_definitions_output): Be sure not to output a
7172 `#define 'a'' when fed with `%token 'a' "a"'.
7173 * tests/regression.at (Token definitions): New.
7174
71752002-05-03 Paul Eggert <eggert@twinsun.com>
7176
7177 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
7178 for K&R C.
7179
71802002-05-03 gettextize <bug-gnu-gettext@gnu.org>
7181
7182 * Makefile.am (SUBDIRS): Remove intl.
7183 (EXTRA_DIST): Add config/config.rpath.
7184
71852002-05-03 Akim Demaille <akim@epita.fr>
7186
7187 * data/bison.simple (m4_if): Don't output empty enums.
7188 And actually, output valid enum definitions :(.
7189
71902002-05-03 Akim Demaille <akim@epita.fr>
7191
7192 * configure.bat: Remove, completely obsolete.
7193 * Makefile.am (EXTRA_DIST): Adjust.
7194 Don't distribute config.rpath...
7195 * config/Makefile.am (EXTRA_DIST): Do it.
7196
71972002-05-03 Akim Demaille <akim@epita.fr>
7198
7199 * configure.in (GETTEXT_VERSION): New.
7200 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
7201
72022002-05-03 Akim Demaille <akim@epita.fr>
7203
7204 * data/bison.simple (b4_token_enum): New.
7205 (b4_token_defines): Use it to output tokens both as #define and
7206 enums.
7207 Suggested by Paul Eggert.
7208 * src/output.c (token_definitions_output): Don't output spurious
7209 white spaces.
7210
72112002-05-03 Akim Demaille <akim@epita.fr>
7212
7213 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
7214
72152002-05-02 Robert Anisko <robert@lrde.epita.fr>
7216
7217 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
7218 Update the stack class, give a try to deque as the default container.
7219
72202002-05-02 Akim Demaille <akim@epita.fr>
7221
7222 * data/bison.simple (yyparse): Do not implement @$ = @1.
7223 (YYLLOC_DEFAULT): Adjust to do it.
7224 * doc/bison.texinfo (Location Default Action): Fix.
7225
72262002-05-02 Akim Demaille <akim@epita.fr>
7227
7228 * src/reader.c (parse_braces): Merge into...
7229 (parse_action): this.
7230
72312002-05-02 Akim Demaille <akim@epita.fr>
7232
7233 * configure.in (ALL_LINGUAS): Remove.
7234 * po/LINGUAS, hr.po: New.
7235
72362002-05-02 Akim Demaille <akim@epita.fr>
7237
7238 Remove the so called hairy (semantic) parsers.
7239
7240 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
7241 * src/gram.h, src/gram.c (semantic_parser): Remove.
7242 (rule_t): Remove the guard and guard_line members.
7243 * src/lex.h (token_t): remove tok_guard.
7244 * src/options.c (option_table): Remove %guard and %semantic_parser
7245 support.
7246 * src/output.c, src/output.h (guards_output): Remove.
7247 (prepare): Adjust.
7248 (token_definitions_output): Don't output the `T'
7249 tokens (???).
7250 (output_skeleton): Don't output the guards.
7251 * src/files.c, src/files.c (attrsfile): Remove.
7252 * src/reader.c (symbol_list): Remove the guard and guard_line
7253 members.
7254 Adjust dependencies.
7255 (parse_guard): Remove.
7256 * data/bison.hairy: Remove.
7257 * doc/bison.texinfo (Environment Variables): Remove occurrences of
7258 BISON_HAIRY.
7259
72602002-05-02 Akim Demaille <akim@epita.fr>
7261
7262 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
7263 (parse_guard): Rename the formal argument `stack_offset' as
7264 `rule_length', which is more readable.
7265 Adjust callers.
7266 (copy_at, copy_dollar): Instead of outputting the hard coded
7267 values of $$, $n and so forth, output invocation to b4_lhs_value,
7268 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
7269 Note: this patch partially drops `semantic-parser' support: it
7270 always does `rule_length - n', where semantic parsers ought to
7271 always use `-n'.
7272 * data/bison.simple, data/bison.c++ (b4_lhs_value)
7273 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
7274
72752002-05-02 Akim Demaille <akim@epita.fr>
7276
7277 * configure.in (AC_INIT): Bump to 1.49b.
7278 (AM_INIT_AUTOMAKE): Short invocation.
7279
72802002-05-02 Akim Demaille <akim@epita.fr>
7281
7282 Version 1.49a.
7283
72842002-05-01 Akim Demaille <akim@epita.fr>
7285
7286 * src/skeleton.h: Remove.
7287
72882002-05-01 Akim Demaille <akim@epita.fr>
7289
7290 * src/skeleton.h: Fix the #endif.
7291 Reported by Magnus Fromreide.
7292
72932002-04-26 Paul Eggert <eggert@twinsun.com>
7294
7295 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
7296 Define if we define YYSTYPE and YYLTYPE, respectively.
7297 (YYCOPY): Fix [] quoting problem in the non-GCC case.
7298
72992002-04-25 Robert Anisko <robert@lrde.epita.fr>
7300
7301 * src/scan-skel.l: Postprocess quadrigraphs.
7302
7303 * src/reader.c (copy_character): New function, used to output
7304 single characters while replacing `[' and `]' with quadrigraphs, to
7305 avoid troubles with M4 quotes.
7306 (copy_comment): Output characters with copy_character.
7307 (read_additionnal_code): Likewise.
7308 (copy_string2): Likewise.
7309 (copy_definition): Likewise.
7310
7311 * tests/calc.at: Exercise M4 quoting.
7312
73132002-04-25 Akim Demaille <akim@epita.fr>
7314
7315 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
7316 between `!' and the command.
7317 Reported by Paul Eggert.
7318
73192002-04-24 Robert Anisko <robert@lrde.epita.fr>
7320
7321 * tests/calc.at: Exercise prologue splitting.
7322
7323 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
7324 `b4_post_prologue' instead of `b4_prologue'.
7325
7326 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
7327 muscles.
7328 (output): Free pre_prologue_obstack and post_prologue_obstack.
7329 * src/files.h, src/files.c (attrs_obstack): Remove.
7330 (pre_prologue_obstack, post_prologue_obstack): New.
7331 * src/reader.c (copy_definition): Add a parameter to specify the
7332 obstack to fill, instead of using attrs_obstack unconditionally.
7333 (read_declarations): Pass pre_prologue_obstack to copy_definition if
7334 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
7335
73362002-04-23 Paul Eggert <eggert@twinsun.com>
7337
7338 * data/bison.simple: Remove unnecessary commentary and white
7339 space differences from 1_29-branch.
7340 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
7341
7342 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
7343 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
7344 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
7345 constructors or destructors.
7346
7347 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
7348
73492002-04-23 Akim Demaille <akim@epita.fr>
7350
7351 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
7352 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
7353 location with columns.
7354 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
7355 All reported by Paul Eggert.
7356
73572002-04-22 Akim Demaille <akim@epita.fr>
7358
7359 * src/reduce.c (dump_grammar): Move to...
7360 * src/gram.h, src/gram.c (grammar_dump): here.
7361 Be sure to separate long item numbers.
7362 Don't read the members of a rule's prec if its nil.
7363
73642002-04-22 Akim Demaille <akim@epita.fr>
7365
7366 * src/output.c (table_size, table_grow): New.
7367 (MAXTABLE): Remove, replace uses with table_size.
7368 (pack_vector): Instead of dying when the table is too big, grow it.
7369
73702002-04-22 Akim Demaille <akim@epita.fr>
7371
7372 * data/bison.simple (yyr1): Its type is that of a token number.
7373 * data/bison.c++ (r1_): Likewise.
7374 * tests/regression.at (Web2c Actions): Adjust.
7375
73762002-04-22 Akim Demaille <akim@epita.fr>
7377
7378 * src/reader.c (token_translations_init): 256 is now the default
7379 value for the error token, i.e., it will be assigned another
7380 number if the user assigned 256 to one of her tokens.
7381 (reader): Don't force 256 to error.
7382 * doc/bison.texinfo (Symbols): Adjust.
7383 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
7384 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
7385 etc. instead of 10, 20, 30 (which was used to `jump' over error
7386 (256) and undefined (2)).
7387
73882002-04-22 Akim Demaille <akim@epita.fr>
7389
7390 Propagate more token_number_t.
7391
7392 * src/gram.h (token_number_as_item_number)
7393 (item_number_as_token_number): New.
7394 * src/output.c (GENERATE_OUTPUT_TABLE): New.
7395 Use it to create output_item_number_table and
7396 output_token_number_table.
7397 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
7398 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
7399 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
7400 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
7401
74022002-04-22 Akim Demaille <akim@epita.fr>
7403
7404 * src/output.h, src/output.c (get_lines_number): Remove.
7405
74062002-04-19 Akim Demaille <akim@epita.fr>
7407
7408 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
7409 as Lex/Flex'.
7410 (Debugging): More details about enabling the debugging features.
7411 (Table of Symbols): Describe $$, $n, @$, and @n.
7412 Suggested by Tim Josling.
7413
74142002-04-19 Akim Demaille <akim@epita.fr>
7415
7416 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
7417
74182002-04-10 Akim Demaille <akim@epita.fr>
7419
7420 * src/system.h: Rely on HAVE_LIMITS_H.
7421 Suggested by Paul Eggert.
7422
74232002-04-09 Akim Demaille <akim@epita.fr>
7424
7425 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
7426 full stderr, and strip it according to the bison options, instead
7427 of composing the error message from different bits.
7428 This makes it easier to check for several error messages.
7429 Adjust all the invocations.
7430 Add an invocation exercising the error token.
7431 Add an invocation demonstrating a stupid error message.
7432 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
7433 Adjust the tests.
7434 Error message are for stderr, not stdout.
7435
74362002-04-09 Akim Demaille <akim@epita.fr>
7437
7438 * src/gram.h, src/gram.c (error_token_number): Remove, use
7439 errtoken->number.
7440 * src/reader.c (reader): Don't specify the user token number (2)
7441 for $undefined, as it uselessly prevents using it.
7442 * src/gram.h (token_number_t): Move to...
7443 * src/symtab.h: here.
7444 (state_t.number): Is a token_number_t.
7445 * src/print.c, src/reader.c: Use undeftoken->number instead of
7446 hard coded 2.
7447 (Even though this 2 is not the same as above: the number of the
7448 undeftoken remains being 2, it is its user token number which
7449 might not be 2).
7450 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
7451 `user_token_number_max'.
7452 Output `undef_token_number'.
7453 * data/bison.simple, data/bison.c++: Use them.
7454 Be sure to map invalid yylex return values to
7455 `undef_token_number'. This saves us from gratuitous SEGV.
7456
7457 * tests/conflicts.at (Solved SR Conflicts)
7458 (Unresolved SR Conflicts): Adjust.
7459 * tests/regression.at (Web2c Actions): Adjust.
7460
74612002-04-08 Akim Demaille <akim@epita.fr>
7462
7463 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
7464 Adding #line.
7465 Remove the duplicate `typedefs'.
7466 (RhsNumberType): Fix the declaration and various other typos.
7467 Use __ofile__.
7468 * data/bison.simple: Use __ofile__.
7469 * src/scan-skel.l: Handle __ofile__.
7470
74712002-04-08 Akim Demaille <akim@epita.fr>
7472
7473 * src/gram.h (item_number_t): New, the type of item numbers in
7474 RITEM. Note that it must be able to code symbol numbers as
7475 positive number, and the negation of rule numbers as negative
7476 numbers.
7477 Adjust all dependencies (pretty many).
7478 * src/reduce.c (rule): Remove this `short *' pointer: use
7479 item_number_t.
7480 * src/system.h (MINSHORT, MAXSHORT): Remove.
7481 Include `limits.h'.
7482 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
7483 (shortcpy): Remove.
7484 (MAXTABLE): Move to...
7485 * src/output.c (MAXTABLE): here.
7486 (prepare_rules): Use output_int_table to output rhs.
7487 * data/bison.simple, data/bison.c++: Adjust.
7488 * tests/torture.at (Big triangle): Move the limit from 254 to
7489 500.
7490 * tests/regression.at (Web2c Actions): Ajust.
7491
7492 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
7493 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
7494 passes, but produces negative #line number, once fixed, GCC is
7495 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
7496 C), it passes.
7497 * src/state.h (state_h): Code input lines on ints, not shorts.
7498
74992002-04-08 Akim Demaille <akim@epita.fr>
7500
7501 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
7502 and then the grammar.
7503
75042002-04-08 Akim Demaille <akim@epita.fr>
7505
7506 * src/system.h: No longer using strndup.
7507
75082002-04-07 Akim Demaille <akim@epita.fr>
7509
7510 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
7511 * src/output.c (output_table_data): Return the longest number.
7512 (prepare_tokens): Output `token_number_max').
7513 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
7514 New.
7515 Use them to define yy_token_number_type/TokenNumberType.
7516 Use this type for yytranslate.
7517 * tests/torture.at (Big triangle): Push the limit from 124 to
7518 253.
7519 * tests/regression.at (Web2c Actions): Adjust.
7520
75212002-04-07 Akim Demaille <akim@epita.fr>
7522
7523 * tests/torture.at (Big triangle): New.
7524 (GNU AWK Grammar, GNU Cim Grammar): Move to...
7525 * tests/existing.at: here.
7526
75272002-04-07 Akim Demaille <akim@epita.fr>
7528
7529 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
7530 nritems.
7531 Adjust dependencies.
7532
75332002-04-07 Akim Demaille <akim@epita.fr>
7534
7535 * src/reader.c: Normalize increments to prefix form.
7536
75372002-04-07 Akim Demaille <akim@epita.fr>
7538
7539 * src/reader.c, symtab.c: Remove debugging code.
7540
75412002-04-07 Akim Demaille <akim@epita.fr>
7542
7543 Rename all the `bucket's as `symbol_t'.
7544
7545 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
7546 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
7547 * src/symtab.c, src/symtab.h (bucket): Rename as...
7548 (symbol_t): this.
7549 (symbol_list_new, bucket_check_defined, bucket_make_alias)
7550 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
7551 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
7552 (buckets_new, buckets_free, buckets_do): Rename as...
7553 (symbol_list_new, symbol_check_defined, symbol_make_alias)
7554 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
7555 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
7556 (symbols_new, symbols_free, symbols_do): these.
7557
75582002-04-07 Akim Demaille <akim@epita.fr>
7559
7560 Use lib/hash for the symbol table.
7561
7562 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
7563 EOF.
7564 * src/lex.c (lex): Set the `number' member of new terminals.
7565 * src/reader.c (bucket_check_defined, bucket_make_alias)
7566 (bucket_check_alias_consistence, bucket_translation): New.
7567 (reader, grammar_free, readgram, token_translations_init)
7568 (packsymbols): Adjust.
7569 (reader): Number the predefined tokens.
7570 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
7571 for predefined tokens.
7572 * src/symtab.h (bucket): Remove all the hash table related
7573 members.
7574 * src/symtab.c (symtab): Replace by...
7575 (bucket_table): this.
7576 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
7577 (buckets_new, buckets_do): New.
7578
75792002-04-07 Akim Demaille <akim@epita.fr>
7580
7581 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
7582 (start_symbol, max_user_token_number, semantic_parser)
7583 (error_token_number): Initialize.
7584 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
7585 Initialize.
7586 (reader): Don't.
7587 (errtoken, eoftoken, undeftoken, axiom): Extern.
7588
75892002-04-07 Akim Demaille <akim@epita.fr>
7590
7591 * src/gram.h (rule_s): prec and precsym are now pointers
7592 to the bucket giving the priority/associativity.
7593 Member `associativity' removed: useless.
7594 * src/reduce.c, src/conflicts.c: Adjust.
7595
75962002-04-07 Akim Demaille <akim@epita.fr>
7597
7598 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
7599 Properly escape the symbols' TAG when outputting them.
7600
76012002-04-07 Akim Demaille <akim@epita.fr>
7602
7603 * src/lalr.h (LA): Is a bitsetv, not bitset*.
7604
76052002-04-07 Akim Demaille <akim@epita.fr>
7606
7607 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
7608 (LArule): this, which is an array to rule_t*.
7609 * src/print.c, src/conflicts.c: Adjust.
7610
76112002-04-07 Akim Demaille <akim@epita.fr>
7612
7613 * src/gram.h (rule_t): Rename `number' as `user_number'.
7614 `number' is a new member.
7615 Adjust dependencies.
7616 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
7617
76182002-04-07 Akim Demaille <akim@epita.fr>
7619
7620 As a result of the previous patch, it is no longer needed
7621 to reorder ritem itself.
7622
7623 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
7624
76252002-04-07 Akim Demaille <akim@epita.fr>
7626
7627 Be sure never to walk through RITEMS, but use only data related to
7628 the rules themselves. RITEMS should be banished.
7629
7630 * src/output.c (output_token_translations): Rename as...
7631 (prepare_tokens): this.
7632 In addition to `translate', prepare the muscles `tname' and
7633 `toknum', which were handled by...
7634 (output_rule_data): this.
7635 Remove, and move the remainder of its outputs into...
7636 (prepare_rules): this new routines, which also merges content from
7637 (output_gram): this.
7638 (prepare_rules): Be sure never to walk through RITEMS.
7639 (output_stos): Rename as...
7640 (prepare_stos): this.
7641 (output): Always invoke prepare_states, after all, just don't use it
7642 in the output if you don't need it.
7643
76442002-04-07 Akim Demaille <akim@epita.fr>
7645
7646 * src/LR0.c (new_state): Display `nstates' as the name of the
7647 newly created state.
7648 Adjust to initialize first_state and last_state if needed.
7649 Be sure to distinguish the initial from the final state.
7650 (new_states): Create the itemset of the initial state, and use
7651 new_state.
7652 * src/closure.c (closure): Now that the initial state has its
7653 items properly set, there is no need for a special case when
7654 creating `ruleset'.
7655
7656 As a result, now the rule 0, reducing to $axiom, is visible in the
7657 outputs. Adjust the test suite.
7658
7659 * tests/conflicts.at (Solved SR Conflicts)
7660 (Unresolved SR Conflicts): Adjust.
7661 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
7662 * tests/conflicts.at (S/R in initial): New.
7663
76642002-04-07 Akim Demaille <akim@epita.fr>
7665
7666 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
7667 the RHS of the rules.
7668 * src/output.c (output_gram): Likewise.
7669
76702002-04-07 Akim Demaille <akim@epita.fr>
7671
7672 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
7673 bucket.
7674 Adjust all dependencies.
7675 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
7676 `number' of the buckets too.
7677 * src/gram.h: Include `symtab.h'.
7678 (associativity): Move to...
7679 * src/symtab.h: here.
7680 No longer include `gram.h'.
7681
76822002-04-07 Akim Demaille <akim@epita.fr>
7683
7684 * src/gram.h, src/gram.c (rules_rhs_length): New.
7685 (ritem_longest_rhs): Use it.
7686 * src/gram.h (rule_t): `number' is a new member.
7687 * src/reader.c (packgram): Set it.
7688 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
7689 the end of `rules', and count them out of `nrules'.
7690 (reduce_output, dump_grammar): Adjust.
7691 * src/print.c (print_grammar): It is no longer needed to check for
7692 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
7693 * tests/reduce.at (Reduced Automaton): New test.
7694
76952002-04-07 Akim Demaille <akim@epita.fr>
7696
7697 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
7698 lacking `+ 1' to nrules, Bison reported as useless a token if it
7699 was used solely to set the precedence of the last rule...
7700
77012002-04-07 Akim Demaille <akim@epita.fr>
7702
7703 * data/bison.c++, data/bison.simple: Don't output the current file
7704 name in #line, to avoid useless diffs between two identical
7705 outputs under different names.
7706
77072002-04-07 Akim Demaille <akim@epita.fr>
7708
7709 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
7710 Normalize loops to using `< nrules + 1', not `<= nrules'.
7711
77122002-04-07 Akim Demaille <akim@epita.fr>
7713
7714 * TODO: Update.
7715
77162002-04-07 Akim Demaille <akim@epita.fr>
7717
7718 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
7719 bucket.value as bucket.number.
7720
77212002-04-07 Akim Demaille <akim@epita.fr>
7722
7723 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
7724 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
7725 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
7726 RHS, instead of being an index in RITEMS.
7727
77282002-04-04 Paul Eggert <eggert@twinsun.com>
7729
7730 * doc/bison.texinfo: Update copyright date.
7731 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
7732 (Symbols): Warn about running Bison in one character set,
7733 but compiling and/or running in an incompatible one.
7734 Warn about character code 256, too.
7735
77362002-04-03 Paul Eggert <eggert@twinsun.com>
7737
7738 * src/bison.data (YYSTACK_ALLOC): Depend on whether
7739 YYERROR_VERBOSE is nonzero, not whether it is defined.
7740
7741 Merge changes from bison-1_29-branch.
7742
77432002-03-20 Paul Eggert <eggert@twinsun.com>
7744
7745 Merge fixes from Debian bison_1.34-1.diff.
7746
7747 * configure.in (AC_PREREQ): 2.53.
7748
77492002-03-20 Akim Demaille <akim@epita.fr>
7750
7751 * src/conflicts.c (log_resolution): Argument `resolution' is const.
7752
77532002-03-19 Paul Eggert <eggert@twinsun.com>
7754
7755 * src/bison.simple (YYCOPY): New macro.
7756 (YYSTACK_RELOCATE): Use it.
7757 Remove Type arg; no longer needed. All callers changed.
7758 (yymemcpy): Remove; no longer needed.
7759
7760 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
7761 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
7762
77632002-03-19 Akim Demaille <akim@epita.fr>
7764
7765 Test and fix the #line outputs.
7766
7767 * tests/atlocal.at (GCC): New.
7768 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
7769 (Prologue synch line, %union synch line, Postprologue synch line)
7770 (Action synch line, Epilogue synch line): New tests.
7771 * src/reader.c (parse_union_decl): Define the muscle stype_line.
7772 * data/bison.simple, data/bison.c++: Use it.
7773
77742002-03-19 Akim Demaille <akim@epita.fr>
7775
7776 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
7777 (Solved SR Conflicts, %expect not enough, %expect right)
7778 (%expect too much): Move to...
7779 * tests/conflicts.at: this new file.
7780
77812002-03-19 Akim Demaille <akim@epita.fr>
7782
7783 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
7784 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
7785 that we can move to enums for instance.
7786 * src/output.c (token_definitions_output): Output a list of
7787 `token-name, token-number' instead of the #define.
7788 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
7789
77902002-03-14 Akim Demaille <akim@epita.fr>
7791
7792 Use Gettext 0.11.1.
7793
77942002-03-09 Robert Anisko <robert@lrde.epita.fr>
7795
7796 * data/bison.c++: Make the user able to add members to the generated
7797 parser by subclassing.
7798
77992002-03-05 Robert Anisko <robert@lrde.epita.fr>
7800
7801 * src/reader.c (read_additionnal_code): `c' should be an integer, not
7802 a character.
7803 Reported by Nicolas Tisserand and Nicolas Burrus.
7804
78052002-03-04 Robert Anisko <robert@lrde.epita.fr>
7806
7807 * src/reader.c: Warn about lacking semi-colons, do not complain.
7808
78092002-03-04 Robert Anisko <robert@lrde.epita.fr>
7810
7811 * data/bison.c++: Remove a debug line.
7812
78132002-03-04 Robert Anisko <robert@lrde.epita.fr>
7814
7815 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
7816 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
7817 provide a default implementation.
7818
78192002-03-04 Akim Demaille <akim@epita.fr>
7820
7821 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
7822 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
7823 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
7824 * tests/semantic.at (Parsing Guards): Similarly.
7825 * src/reader.at (readgram): Complain if the last rule is not ended
7826 with a semi-colon.
7827
78282002-03-04 Akim Demaille <akim@epita.fr>
7829
7830 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
7831 * src/closure.c: here.
7832 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
7833 RTC.
7834 * src/warshall.h, src/warshall.c: Remove.
7835 * tests/sets.at (Broken Closure): Adjust.
7836
78372002-03-04 Akim Demaille <akim@epita.fr>
7838
7839 * src/output.c (output_skeleton): tempdir is const.
7840 bytes_read is unused.
7841
78422002-03-04 Akim Demaille <akim@epita.fr>
7843
7844 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
7845 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
7846 Update.
7847 From Michael Hayes.
7848
78492002-03-04 Akim Demaille <akim@epita.fr>
7850
7851 * src/closure.c (closure): `r' is unused.
7852
78532002-03-04 Akim Demaille <akim@epita.fr>
7854
7855 * tests/sets.at (Broken Closure): Add the ending `;'.
7856 * src/reader.at (readgram): Complain if a rule is not ended with a
7857 semi-colon.
7858
78592002-03-04 Akim Demaille <akim@epita.fr>
7860
7861 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
7862 (count_sr_conflicts): Use bitset_count.
7863 * src/reduce.c (inaccessable_symbols): Ditto.
7864 (bits_size): Remove.
7865 * src/warshall.h, src/warshall.c: Convert to bitsetv.
7866
78672002-03-04 Akim Demaille <akim@epita.fr>
7868
7869 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
7870 * src/reduce.c: Remove the `bitset_zero's following the
7871 `bitset_create's, as now it is performed by the latter.
7872
78732002-03-04 Akim Demaille <akim@epita.fr>
7874
7875 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
7876 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
7877 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
7878 latest sources from Michael.
7879
78802002-03-04 Akim Demaille <akim@epita.fr>
7881
7882 * src/output.c (output): Don't free the grammar.
7883 * src/reader.c (grammar_free): New.
7884 * src/main.c (main): Call it and don't free symtab here.
7885
78862002-03-04 Akim Demaille <akim@epita.fr>
7887
7888 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
7889 before returning.
7890 Reported by Benoit Perrot.
7891
78922002-03-04 Akim Demaille <akim@epita.fr>
7893
7894 Use bitset operations when possible, not loops over bits.
7895
7896 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
7897 bitset_or.
7898 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
7899 * src/reduce.c (useless_nonterminals): Formatting changes.
7900 * src/warshall.c (TC): Use bitset_or.
7901
79022002-03-04 Akim Demaille <akim@epita.fr>
7903
7904 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
7905 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
7906 Ditto.
7907
79082002-03-04 Akim Demaille <akim@epita.fr>
7909
7910 * src/lalr.c (F): Now a bitset*.
7911 Adjust all dependencies.
7912
79132002-03-04 Akim Demaille <akim@epita.fr>
7914
7915 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
7916 Adjust all dependencies.
7917
79182002-03-04 Akim Demaille <akim@epita.fr>
7919
7920 * src/L0.c, src/LR0.h (nstates): Be size_t.
7921 Adjust comparisons (signed vs unsigned).
7922 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
7923 bitset*.
7924 Adjust all dependencies.
7925
79262002-03-04 Akim Demaille <akim@epita.fr>
7927
7928 * src/closure.c (firsts): Now, also a bitset.
7929 Adjust all dependencies.
7930 (varsetsize): Remove, now unused.
7931 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
7932
79332002-03-04 Akim Demaille <akim@epita.fr>
7934
7935 * src/print.c: Convert to use bitset.h, not hand coded iterations
7936 over ints.
7937
79382002-03-04 Akim Demaille <akim@epita.fr>
7939
7940 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
7941
79422002-03-04 Akim Demaille <akim@epita.fr>
7943
7944 * src/closure.c (ruleset): Be a bitset.
7945 (rulesetsize): Remove.
7946
79472002-03-04 Akim Demaille <akim@epita.fr>
7948
7949 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
7950 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
7951 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
7952 * src/closure.c (fderives): Be an array of bitsets.
7953
79542002-02-28 Robert Anisko <robert@lrde.epita.fr>
7955
7956 * data/bison.c++: Merge the two generated headers. Insert a copyright
7957 notice in each output file.
7958
79592002-02-28 Akim Demaille <akim@epita.fr>
7960
7961 * data/bison.c++: Copy the prologue of bison.simple to fetch
7962 useful M4 definitions, such as b4_header_guard.
7963
79642002-02-25 Akim Demaille <akim@epita.fr>
7965
7966 * src/getargs.c (version): Give the name of the authors, and use a
7967 translator friendly scheme for the bgr
7968 copyright notice.
7969
79702002-02-25 Akim Demaille <akim@epita.fr>
7971
7972 * src/output.c (header_output): Remove, now handled completely via
7973 M4.
7974
79752002-02-25 Akim Demaille <akim@epita.fr>
7976
7977 * m4/m4.m4: New, from CVS Autoconf.
7978 * configure.in: Invoke it.
7979 * src/output.c (output_skeleton): Use its result instead of the
7980 hard coded name.
7981
79822002-02-25 Akim Demaille <akim@epita.fr>
7983
7984 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
7985 Fileutils 4.1.5.
7986 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
7987 * src/output.c (output_skeleton): Use mkstemp to create a real
7988 temporary file.
7989 Move the filling of `skeleton' and its muscle to...
7990 (prepare): here.
7991 (output): Move the definition of the prologue muscle to...
7992 (prepare): here.
7993 * src/system.h (DEFAULT_TMPDIR): New.
7994
79952002-02-14 Paul Eggert <eggert@twinsun.com>
7996
7997 Remove the support for C++ namespace cleanliness; it was
7998 causing more problems than it was curing, since it didn't work
7999 properly on some nonstandard C++ compilers. This can wait
8000 for a proper C++ parser.
8001
8002 * NEWS: Document this.
8003 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
8004 of C++, as it's treated like C now.
8005 * src/bison.simple (YYSTD): Remove.
8006 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
8007 Treat C++ just like Standard C instead of trying to support
8008 namespace cleanliness.
8009
80102002-02-14 Akim Demaille <akim@epita.fr>
8011
8012 * tests/regression.at (else): Adjust to Andreas' change.
8013
80142002-02-14 Akim Demaille <akim@epita.fr>
8015
8016 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
8017
80182002-02-13 Andreas Schwab <schwab@suse.de>
8019
8020 * src/output.c (output_rule_data): Don't output NULL, it might
8021 not be defined yet.
8022
80232002-02-11 Robert Anisko <robert@lrde.epita.fr>
8024
8025 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
8026 (Copyright notice): Update.
8027
80282002-02-11 Akim Demaille <akim@epita.fr>
8029
8030 * tests/regression.at (%nonassoc and eof): Don't include
8031 nonportable headers.
8032
80332002-02-08 Robert Anisko <robert@lrde.epita.fr>
8034
8035 * data/bison.c++: Correct error recovery. Make the user able to
8036 initialize the starting location.
8037
80382002-02-07 Akim Demaille <akim@epita.fr>
8039
8040 * tests/input.at: New.
8041
80422002-02-07 Robert Anisko <robert@lrde.epita.fr>
8043
8044 * data/bison.c++: Replace some direct m4 expansions by constants. Be
8045 more consistent when naming methods and variables. Put preprocessor
8046 directives around tables only needed for debugging.
8047
80482002-02-07 Robert Anisko <robert@lrde.epita.fr>
8049
8050 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
8051 C++ parsers.
8052 (yy::b4_name::parse): Use print_.
8053
80542002-02-07 Robert Anisko <robert@lrde.epita.fr>
8055
8056 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
8057
80582002-02-07 Robert Anisko <robert@lrde.epita.fr>
8059
8060 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
8061 C++ parsers.
8062 (yy::b4_name::parse): Build verbose error messages, and use error_.
8063
80642002-02-06 Robert Anisko <robert@lrde.epita.fr>
8065
8066 * data/bison.c++: Fix m4 quoting in comments.
8067
80682002-02-06 Robert Anisko <robert@lrde.epita.fr>
8069
8070 * data/bison.c++: Adjust the parser code. Fix some muscles that were
8071 not expanded by m4.
8072
80732002-02-05 Akim Demaille <akim@epita.fr>
8074
8075 * data/bison.c++: Adjust to the M4 back end.
8076 More is certainly needed.
8077
80782002-02-05 Akim Demaille <akim@epita.fr>
8079
8080 Give a try to M4 as a back end.
8081
8082 * lib/readpipe.c: New, from wdiff.
8083 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
8084 BISON_HAIRY.
8085 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
8086 specific values. Now it is m4 that performs the lookup.
8087 * src/parse-skel.y: Remove.
8088 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
8089 * src/output.c (actions_output, guards_output)
8090 (token_definitions_output): No longer keeps track of the output
8091 line number, hence remove the second argument.
8092 (guards_output): Check against the guard member of a rule, not the
8093 action member.
8094 Adjust callers.
8095 (output_skeleton): Don't look for the skeleton location, let m4 do
8096 that.
8097 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
8098 file will be used.
8099 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
8100 (prepare): Given that for the time being changesyntax is not
8101 usable in M4, rename the muscles using `-' to `_'.
8102 Define `defines_flag', `output_parser_name' and `output_header_name'.
8103 * src/output.h (actions_output, guards_output)
8104 (token_definitions_output): Adjust prototypes.
8105 * src/scan-skel.l: Instead of scanning the skeletons, it now
8106 processes the output of m4: `__oline__' and `#output'.
8107 * data/bison.simple: Adjust to be used by M4(sugar).
8108 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
8109 to date.
8110 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
8111 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
8112 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
8113 shamelessly stolen from CVS Autoconf.
8114
81152002-02-05 Akim Demaille <akim@epita.fr>
8116
8117 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
8118 * configure.in: Check for the declarations of free and malloc.
8119 * src/muscle_tab.c: Adjust.
8120
81212002-02-05 Akim Demaille <akim@epita.fr>
8122
8123 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
8124 which have no values.
8125
81262002-02-05 Akim Demaille <akim@epita.fr>
8127
8128 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
8129 * data/: here.
8130
81312002-01-29 Paul Eggert <eggert@twinsun.com>
8132
8133 * src/bison.simple (YYSIZE_T): Do not define merely because
8134 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
8135 On some platforms, <alloca.h> does not declare YYSTD (size_t).
8136
81372002-01-27 Akim Demaille <akim@epita.fr>
8138
8139 Fix `%nonassoc and eof'.
8140
8141 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
8142 which were not properly copied! Replace
8143 memcpy (res->errs, src->errs, src->nerrs);
8144 with
8145 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
8146 !!!
8147 * tests/regression.at (%nonassoc and eof): Adjust to newest
8148 Autotest: `.' is not in the PATH.
8149
81502002-01-27 Akim Demaille <akim@epita.fr>
8151
8152 * tests/sets.at (AT_EXTRACT_SETS): New.
8153 (Nullable): Use it.
8154 (Firsts): New.
8155
81562002-01-26 Akim Demaille <akim@epita.fr>
8157
8158 * tests/actions.at, tests/calc.at, tests/headers.at,
8159 * tests/torture.at: Adjust to the newest Autotest which no longer
8160 forces `.' in the PATH.
8161
81622002-01-25 Akim Demaille <akim@epita.fr>
8163
8164 * tests/regression.at (%nonassoc and eof): New.
8165 Suggested by Robert Anisko.
8166
81672002-01-24 Akim Demaille <akim@epita.fr>
8168
8169 Bison dumps core when trying to complain about broken input files.
8170 Reported by Cris van Pelt.
8171
8172 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
8173 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
8174 into...
8175 (Invalid inputs): Strengthen: exercise parse_percent_token.
8176
81772002-01-24 Robert Anisko <robert.anisko@epita.fr>
8178
8179 * src/Makefile.am: Add bison.c++.
8180 * src/bison.c++: New skeleton.
8181
81822002-01-21 Paolo Bonzini <bonzini@gnu.org>
8183
8184 * po/it.po: New.
8185
81862002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
8187
8188 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
8189
81902002-01-20 Marc Autret <marc@gnu.org>
8191
8192 * src/files.c (compute_output_file_names): Fix
8193
81942002-01-20 Marc Autret <marc@gnu.org>
8195
8196 * tests/output.at: New test.
8197 * src/files.c (compute_base_names): Don't map extensions when
8198 the YACC flag is set, use defaults.
8199 Reported by Evgeny Stambulchik.
8200
82012002-01-20 Marc Autret <marc@gnu.org>
8202
8203 * src/system.h: Need to define __attribute__ away for non-GCC
8204 compilers as well (i.e. the vendor C compiler).
8205 Suggested by Albert Chin-A-Young.
8206
82072002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
8208
8209 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
8210 canonical definition.
8211 * src/system.h: Use the canonical definition for PARAMS (avoids
8212 a conflict with the macro from lib/hash.h).
8213
82142002-01-11 Akim Demaille <akim@epita.fr>
8215
8216 * configure.in: Use AC_FUNC_STRNLEN.
8217 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
8218
82192002-01-09 Akim Demaille <akim@epita.fr>
8220
8221 * src/files.c, src/files.h (output_infix): New.
8222 (tab_extension): Remove.
8223 (compute_base_names): Compute the former, drop the latter.
8224 * src/output.c (prepare): Insert the muscles `output-infix', and
8225 `output-suffix'.
8226 * src/parse-skel.y (string, string.1): New.
8227 (section.header): Use it.
8228 (section.yacc): Remove.
8229 (prefix): Remove too.
8230 * src/scan-skel.l: Adjust.
8231 * src/bison.simple, src/bison.hairy: Adjust.
8232
82332002-01-09 Akim Demaille <akim@epita.fr>
8234
8235 * configure.in (WERROR_CFLAGS): Compute it.
8236 * src/Makefile.am (CFLAGS): Pass it.
8237 * tests/atlocal.in (CFLAGS): Idem.
8238 * src/files.c: Fix a few warnings.
8239 (get_extension_index): Remove, unused.
8240
82412002-01-08 Akim Demaille <akim@epita.fr>
8242
8243 * src/getargs.c (AS_FILE_NAME): New.
8244 (getargs): Use it to convert DOSish file names.
8245 * src/files.c (base_name): Rename as full_base_name to avoid
8246 clashes with `base_name ()'.
8247 (filename_split): New.
8248 (compute_base_names): N-th rewrite, using filename_split.
8249
82502002-01-08 Akim Demaille <akim@epita.fr>
8251
8252 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
8253 New, stolen from the Fileutils 4.1.
8254 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
8255 * configure.in: Check for the presence of memrchr, and of its
8256 prototype.
8257
82582002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
8259
8260 * lib/hash.h (__P): Added definition for this macro.
8261 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
8262 BUILT_SOURCES, to ensure they are generated first.
8263 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
8264 %error-verbose to allow bootstrapping with bison 1.30x.
8265
82662002-01-06 Akim Demaille <akim@epita.fr>
8267
8268 * src/reader.c (parse_braces): Don't fetch the next char, the
8269 convention is to fetch on entry.
8270 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
8271 'switch' without a following semicolon.
8272 * tests/regression.at (braces parsing): New.
8273
82742002-01-06 Akim Demaille <akim@epita.fr>
8275
8276 Bison is dead wrong in its RR conflict reports.
8277
8278 * tests/torture.at (GNU Cim Grammar): New.
8279 * src/conflicts.c (count_rr_conflicts): Fix.
8280
82812002-01-06 Akim Demaille <akim@epita.fr>
8282
8283 Creating package.m4 from configure.ac causes too many problems.
8284
8285 * tests/Makefile.am (package.m4): Create it by hand,
8286 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
8287
82882002-01-06 Akim Demaille <akim@epita.fr>
8289
8290 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
8291 skeleton.h.
8292
82932002-01-04 Paul Eggert <eggert@twinsun.com>
8294
8295 * doc/bison.texinfo (Debugging):
8296 Remove YYSTDERR; it's no longer defined or used.
8297 Also, s/cstdio.h/cstdio/.
8298
82992002-01-03 Akim Demaille <akim@epita.fr>
8300
8301 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
8302
83032002-01-03 Akim Demaille <akim@epita.fr>
8304
8305 * src/parse-skel.y (process_skeleton): Don't bind the parser's
8306 tracing code to --trace, wait for a better --trace option, with
8307 args.
8308
83092002-01-03 Akim Demaille <akim@epita.fr>
8310
8311 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
8312 The ISO C++ standard is extremely clear about it: stderr is
8313 considered a macro, not a regular symbol (see table 94 `Header
8314 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
8315 Therefore std:: does not apply to it. It still does with fprintf.
8316 Also, s/cstdio.h/cstdio/.
8317
83182002-01-03 Akim Demaille <akim@epita.fr>
8319
8320 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
8321 for non system headers.
8322
83232002-01-02 Akim Demaille <akim@epita.fr>
8324
8325 Equip the skeleton chain with location tracking, runtime trace,
8326 pure parser and scanner.
8327
8328 * src/parse-skel.y: Request a pure parser, locations, and prefix
8329 renaming.
8330 (%union): Having several members with the same type does not help
8331 type mismatches, simplify.
8332 (YYPRINT, yyprint): New.
8333 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
8334 (skel_error): this.
8335 Handle locations.
8336 * src/scan-skel.l: Adjust to these changes.
8337 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
8338 (LOCATION_PRINT, skel_control_t): New.
8339
83402001-12-30 Akim Demaille <akim@epita.fr>
8341
8342 * src/parse-skel.y: Get rid of the shift/reduce conflict:
8343 replace `gb' with BLANKS.
8344 * src/scan-skel.l: Adjust.
8345
83462001-12-30 Akim Demaille <akim@epita.fr>
8347
8348 * src/system.h: We don't need nor want bcopy.
8349 Throw away MS-DOS crap: we don't need getpid.
8350 * configure.in: We don't need strndup. It was even causing
8351 problems: because Flex includes the headers *before* us,
8352 _GNU_SOURCE is not defined by config.h, and therefore strndup was
8353 not visible.
8354 * lib/xstrndup.c: New.
8355 * src/scan-skel.l: Use it.
8356 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
8357 * src/parse-skel.y: Use %directives instead of #defines.
8358
83592001-12-30 Akim Demaille <akim@epita.fr>
8360
8361 * src/skeleton.h: New.
8362 * src/output.c (output_parser, output_master_parser): Remove, dead
8363 code.
8364 * src/output.h (get_lines_number, actions_output, guards_output)
8365 (token_definitions_output): Prototype them.
8366 * src/parse-skel.y: Add the license notice.
8367 Include output.h and skeleton.h.
8368 (process_skeleton): Returns void, and takes a single parameter.
8369 * src/scan-skel.l: Add the license notice.
8370 Include skeleton.h.
8371 Don't use %option yylineno: it seems that then Flex imagines
8372 REJECT has been used, and therefore it won't reallocate its
8373 buffers (which makes no other sense to me than a bug). It results
8374 in warnings for `unused: yy_flex_realloc'.
8375
83762001-12-30 Robert Anisko <robert.anisko@epita.fr>
8377
8378 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
8379 (MUSCLE_INSERT_PREFIX): ...to there.
8380 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
8381 (MUSCLE_INSERT_PREFIX): Move from here...
8382
8383 * src/bison.hairy: Add a section directive. Put braces around muscle
8384 names. This parser skeleton is still broken, but Bison should not
8385 choke on a bad muscle 'syntax'.
8386 * src/bison.simple: Add a section directive. Put braces around muscle
8387 names.
8388
8389 * src/files.h (strsuffix, stringappend): Add declarations.
8390 (tab_extension): Add declaration.
8391 (short_base_name): Add declaration.
8392
8393 * src/files.c (strsuffix, stringappend): No longer static. These
8394 functions are used in the skeleton parser.
8395 (tab_extension): New.
8396 (compute_base_names): Use the computations done in this function
8397 to guess if the generated parsers should have '.tab' in their
8398 names.
8399 (short_base_name): No longer static.
8400
8401 * src/output.c (output_skeleton): New.
8402 (output): Disable call to output_master_parser, and give a try to
8403 a new skeleton handling system.
8404 (guards_output, actions_output): No longer static.
8405 (token_definitions_output, get_lines_number): No longer static.
8406
8407 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
8408
8409 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
8410 parse-skel.y.
8411
8412 * src/parse-skel.y: New file.
8413 * src/scan-skel.l: New file.
8414
84152001-12-29 Akim Demaille <akim@epita.fr>
8416
8417 %name-prefix is broken.
8418
8419 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
8420 Adjust all dependencies.
8421 * tests/headers.at (export YYLTYPE): Strengthen this test: use
8422 %name-prefix.
8423
8424 Renaming yylval but not yylloc is not consistent. Now we do.
8425
8426 * src/bison.simple: Prefix yylloc if used.
8427 * doc/bison.texinfo (Decl Summary): Document that.
8428
84292001-12-29 Akim Demaille <akim@epita.fr>
8430
8431 * doc/bison.texinfo: Promote `%long-directive' over
8432 `%long_directive'.
8433 Remove all references to fixed-output-files, yacc is enough.
8434
84352001-12-29 Akim Demaille <akim@epita.fr>
8436
8437 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
8438 user prologue. These are defaults.
8439 * tests/actions.at (Mid-rule actions): Make sure the user can
8440 define YYDEBUG and YYERROR_VERBOSE.
8441
84422001-12-29 Akim Demaille <akim@epita.fr>
8443
8444 * src/output.c (header_output): Don't forget to export YYLTYPE and
8445 yylloc.
8446 * tests/headers.at (export YYLTYPE): New, make sure it does.
8447 * tests/regression.at (%union and --defines, Invalid CPP headers):
8448 Move to...
8449 * tests/headers.at: here.
8450
84512001-12-29 Akim Demaille <akim@epita.fr>
8452
8453 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
8454
84552001-12-29 Akim Demaille <akim@epita.fr>
8456
8457 * tests/actions.at (Mid-rule actions): Output on a single line
8458 instead of several.
8459
84602001-12-29 Akim Demaille <akim@epita.fr>
8461
8462 * doc/bison.texinfo: Formatting changes.
8463
84642001-12-29 Akim Demaille <akim@epita.fr>
8465
8466 Don't store the token defs in a muscle, just be ready to output it
8467 on command. Now possible via `symbols'. Fixes a memory leak.
8468
8469 * src/output.c (token_definitions_output): New.
8470 (output_parser, header_output): Use it.
8471 * src/reader.c (symbols_save): Remove.
8472
84732001-12-29 Akim Demaille <akim@epita.fr>
8474
8475 * src/bison.simple: Do not provide a default for YYSTYPE and
8476 YYLTYPE before the user's prologue. Otherwise it's hardly... a
8477 default.
8478
84792001-12-29 Akim Demaille <akim@epita.fr>
8480
8481 Mid-rule actions are simply... ignored!
8482
8483 * src/reader.c (readgram): Be sure to attach mid-rule actions to
8484 the empty-rule associated to the dummy symbol, not to the host
8485 rule.
8486 * tests/actions.at (Mid-rule actions): New.
8487
84882001-12-29 Akim Demaille <akim@epita.fr>
8489
8490 Memory leak.
8491
8492 * src/reader.c (reader): Free grammar.
8493
84942001-12-29 Akim Demaille <akim@epita.fr>
8495
8496 Memory leak.
8497
8498 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
8499 since it allocates it for each state, although only one is needed.
8500 (allocate_storage): Do it here.
8501
85022001-12-29 Akim Demaille <akim@epita.fr>
8503
8504 * src/options.h, src/options.c (create_long_option_table): Rename
8505 as...
8506 (long_option_table_new): this, with a clearer prototype.
8507 (percent_table): Remove, unused,
8508 * src/getargs.c (getargs): Adjust.
8509
85102001-12-29 Akim Demaille <akim@epita.fr>
8511
8512 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
8513 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
8514 as states.
8515
85162001-12-29 Akim Demaille <akim@epita.fr>
8517
8518 * src/lalr.c (build_relations): Rename `states' as `states1'.
8519 Sorry, I don't understand exactly what it is, no better name...
8520
85212001-12-29 Akim Demaille <akim@epita.fr>
8522
8523 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
8524 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
8525 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
8526 as rules.
8527
85282001-12-29 Akim Demaille <akim@epita.fr>
8529
8530 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
8531 ago.
8532
85332001-12-29 Akim Demaille <akim@epita.fr>
8534
8535 * src/reader.c, src/reader.h (user_toknums): Remove.
8536 Adjust all users to use symbols[i]->user_token_number.
8537
85382001-12-29 Akim Demaille <akim@epita.fr>
8539
8540 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
8541 Adjust all users to use symbols[i]->prec or ->assoc.
8542
85432001-12-29 Akim Demaille <akim@epita.fr>
8544
8545 * src/reader.c, src/reader.h (tags): Remove.
8546 Adjust all users to use symbols[i]->tag.
8547
85482001-12-29 Akim Demaille <akim@epita.fr>
8549
8550 * src/gram.h, src/gram.c (symbols): New, similar to state_table
8551 and rule_table.
8552 * src/reader.c (packsymbols): Fill this table.
8553 Drop sprec.
8554 * src/conflicts.c (resolve_sr_conflict): Adjust.
8555 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
8556 single table.
8557 Use symbols[i]->tag instead of tags[i].
8558
85592001-12-29 Akim Demaille <akim@epita.fr>
8560
8561 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
8562 In addition, put a comment in there, to replace...
8563 * tests/regression.at (%union and C comments): Remove.
8564
85652001-12-29 Akim Demaille <akim@epita.fr>
8566
8567 * tests/regression.at (Web2c Actions): Blindly move the actual
8568 output as expected output. The contents *seem* right to me, but I
8569 can't pretend reading perfectly parser tables... Nonetheless, all
8570 the other tests pass correctly, the table look OK, even though the
8571 presence of `$axiom' is to be noted: AFAICS it is useless (but
8572 harmless).
8573
85742001-12-29 Akim Demaille <akim@epita.fr>
8575
8576 * src/reader.c (readgram): Don't add the rule 0 if there were no
8577 rules read. In other words, add it _after_ having performed
8578 grammar sanity checks.
8579 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
8580
85812001-12-29 Akim Demaille <akim@epita.fr>
8582
8583 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
8584 visible, and some states have now a different number.
8585
85862001-12-29 Akim Demaille <akim@epita.fr>
8587
8588 * src/reader.c (readgram): Bind the initial rule's lineno to that
8589 of the first rule.
8590 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
8591 (Solved SR Conflicts): Adjust rule 0's line number.
8592
85932001-12-29 Akim Demaille <akim@epita.fr>
8594
8595 Fix the `GAWK Grammar' failure.
8596
8597 * src/LR0.c (final_state): Initialize to -1 so that we do compute
8598 the reductions of the first state which was mistakenly confused
8599 with the final state because precisely final_state was initialized
8600 to 0.
8601 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
8602 now noticed by Bison.
8603 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
8604 have a reduction on $default.
8605
86062001-12-29 Akim Demaille <akim@epita.fr>
8607
8608 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
8609 rule line numbers.
8610 * src/closure.c (print_closure): Likewise.
8611 * src/derives.c (print_derives): Likewise.
8612 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
8613 now.
8614
86152001-12-29 Akim Demaille <akim@epita.fr>
8616
8617 * src/lalr.c (lookaheads_print): New.
8618 (lalr): Call it when --trace-flag.
8619 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
8620 are dumped.
8621
86222001-12-29 Akim Demaille <akim@epita.fr>
8623
8624 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
8625 when walking through ritem, even via rule->rhs.
8626 * src/reduce.c (dump_grammar, useful_production, reduce_output)
8627 (useful_production, useless_nonterminals): Likewise.
8628 (reduce_grammar_tables): Likewise, plus update nritems.
8629 * src/nullable.c (set_nullable): Likewise.
8630 * src/lalr.c (build_relations): Likewise.
8631 * tests/sets.at (Nullable): Adjust.
8632 Fortunately, now, the $axiom is no longer nullable.
8633
86342001-12-29 Akim Demaille <akim@epita.fr>
8635
8636 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
8637 the 0-sentinel.
8638 * src/gram.c (ritem_longest_rhs): Likewise.
8639 * src/reduce.c (nonterminals_reduce): Likewise.
8640 * src/print_graph.c (print_graph): Likewise.
8641 * src/output.c (output_rule_data): Likewise.
8642 * src/nullable.c (set_nullable): Likewise.
8643
86442001-12-29 Akim Demaille <akim@epita.fr>
8645
8646 * src/output.c: Comment changes.
8647
86482001-12-27 Paul Eggert <eggert@twinsun.com>
8649
8650 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
8651 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
8652 Sparc, as they were causing more porting problems than the
8653 (minor) performance improvement was worth.
8654
8655 Also, catch up with 1.31's YYSTD.
8656
86572001-12-27 Akim Demaille <akim@epita.fr>
8658
8659 * src/output.c (output_gram): Rely on nritems, not the
8660 0-sentinel. See below.
8661 Use -1 as separator, not 0.
8662 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
8663 Rely on -1 as separator in yyrhs, instead of 0.
8664 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
8665 twice `Now at end of input', therefore there are two lines less to
8666 expect.
8667
86682001-12-27 Akim Demaille <akim@epita.fr>
8669
8670 * tests/regression.at (Unresolved SR Conflicts):
8671 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
8672 below.
8673
86742001-12-27 Akim Demaille <akim@epita.fr>
8675
8676 * src/LR0.c (new_state): Recognize the final state by the fact it
8677 is reached by eoftoken.
8678 (insert_start_shifting_state, insert_eof_shifting_state)
8679 (insert_accepting_state, augment_automaton): Remove, since now
8680 these states are automatically computed from the initial state.
8681 (generate_states): Adjust.
8682 * src/print.c: When reporting a rule number to the user, substract
8683 1, so that the axiom rule is rule 0, and the first user rule is 1.
8684 * src/reduce.c: Likewise.
8685 * src/print_graph.c (print_core): For the time being, just as for
8686 the report, depend upon --trace-flags to dump the full set of
8687 items.
8688 * src/reader.c (readgram): Once the grammar read, insert the rule
8689 0: `$axiom: START-SYMBOL $'.
8690 * tests/set.at: Adjust: rule 0 is now displayed, and since the
8691 number of the states has changed (the final state is no longer
8692 necessarily the last), catch up.
8693
86942001-12-27 Akim Demaille <akim@epita.fr>
8695
8696 Try to make the use of the eoftoken valid. Given that its value
8697 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
8698 is used instead of > 0 where appropriate, (ii), depend upon nritems
8699 instead of the 0-sentinel.
8700
8701 * src/gram.h, src/gram.c (nritems): New.
8702 Expected to be duplication of nitems, but for the time being...
8703 * src/reader.c (packgram): Assert nritems and nitems are equal.
8704 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
8705 * src/closure.c (print_closure, print_fderives): Likewise.
8706 * src/gram.c (ritem_print): Likewise.
8707 * src/print.c (print_core, print_grammar): Likewise.
8708 * src/print_graph.c: Likewise.
8709
87102001-12-27 Akim Demaille <akim@epita.fr>
8711
8712 * src/main.c (main): If there are complains after grammar
8713 reductions, then output the report anyway if requested, then die.
8714 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
8715 * src/reader.c (eoftoken): New.
8716 (parse_token_decl): If the token being defined has value `0', it
8717 is the eoftoken.
8718 (packsymbols): No longer hack `tags' to insert `$' by hand.
8719 Be sure to preserve the value of the eoftoken.
8720 (reader): Make sure eoftoken is defined.
8721 Initialize nsyms to 0: now eoftoken is created just like the others.
8722 * src/print.c (print_grammar): Don't special case the eof token.
8723 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
8724 lie anyway, albeit pleasant.
8725 * tests/calc.at: Exercise error messages with eoftoken.
8726 Change the grammar so that empty input is invalid.
8727 Adjust expectations.
8728 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
8729
87302001-12-27 Akim Demaille <akim@epita.fr>
8731
8732 * configure.in: Check the protos of strchr ans strspn.
8733 Replace strchr if needed.
8734 * src/system.h: Provide the protos of strchr, strspn and memchr if
8735 missing.
8736 * lib/strchr.c: New.
8737 * src/reader.c (symbols_save): Use strchr.
8738
87392001-12-27 Akim Demaille <akim@epita.fr>
8740
8741 * src/print.c, src/print_graph.c (escape): New.
8742 Use it to quote the TAGS outputs.
8743 * src/print_graph.c (print_state): Now errors are in red, and
8744 reductions in green.
8745 Prefer high to wide: output the state number on a line of its own.
8746
87472001-12-27 Akim Demaille <akim@epita.fr>
8748
8749 * src/state.h, src/state.c (reductions_new): New.
8750 * src/LR0.c (set_state_table): Let all the states have a
8751 `reductions', even if reduced to 0.
8752 (save_reductions): Adjust.
8753 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
8754 * src/print.c (print_reductions, print_actions): Adjust.
8755 * src/output.c (action_row): Adjust.
8756
87572001-12-27 Akim Demaille <akim@epita.fr>
8758
8759 * src/state.h, src/state.c (errs_new, errs_dup): New.
8760 * src/LR0.c (set_state_table): Let all the states have an errs,
8761 even if reduced to 0.
8762 * src/print.c (print_errs, print_reductions): Adjust.
8763 * src/output.c (output_actions, action_row): Adjust.
8764 * src/conflicts.c (resolve_sr_conflict): Adjust.
8765
87662001-12-27 Akim Demaille <akim@epita.fr>
8767
8768 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
8769
87702001-12-27 Akim Demaille <akim@epita.fr>
8771
8772 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
8773 * src/print.c: here.
8774 (lookaheadset, shiftset): New, used as additional storage by
8775 print_reductions.
8776 (print_results): Adjust.
8777 (print_shifts, print_gotos, print_errs): New, extracted from...
8778 (print_actions): here.
8779 * src/print_graph.c (print_actions): Remove dead code.
8780
87812001-12-27 Akim Demaille <akim@epita.fr>
8782
8783 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
8784 `$n' and `@n'.
8785
87862001-12-27 Akim Demaille <akim@epita.fr>
8787
8788 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
8789 (build_relations): Adjust.
8790
87912001-12-27 Akim Demaille <akim@epita.fr>
8792
8793 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
8794 duplication.
8795
87962001-12-27 Akim Demaille <akim@epita.fr>
8797
8798 * src/reader.c (packgram): Catch nitems overflows.
8799
88002001-12-27 Akim Demaille <akim@epita.fr>
8801
8802 * src/files.c, src/files.h (guard_obstack): Remove.
8803 * src/output.c (output): Adjust.
8804 * src/reader.c (parse_braces): New, factoring...
8805 (copy_action, copy_guard): these two which are renamed as...
8806 (parse_action, parse_guard): these.
8807 As a voluntary consequence, using braces around guards is now
8808 mandatory.
8809
88102001-12-27 Akim Demaille <akim@epita.fr>
8811
8812 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
8813 * src/reader.c (symbol_list): `guard' and `guard_line' are new
8814 members.
8815 (symbol_list_new): Adjust.
8816 (copy_action): action_line is the first line, not the last.
8817 (copy_guard): Just as for actions, store the `action' only, not
8818 the switch/case/break flesh.
8819 Don't parse the user action that might follow the guard, let...
8820 (readgram): do it, i.e., now, there can be an action after a
8821 guard.
8822 In other words the guard is just explicitly optional.
8823 (packgram): Adjust.
8824 * src/output.c (guards_output): New.
8825 (output_parser): Call it when needed.
8826 (output): Also free the guard and attrs obstacks.
8827 * src/files.c, src/files.h (obstack_save): Remove.
8828 (output_files): Remove.
8829 As a result, if one needs the former `.act' file, using an
8830 appropriate skeleton which requires actions and guards is now
8831 required.
8832 * src/main.c (main): Adjust.
8833 * tests/semantic.at: New.
8834 * tests/regression.at: Use `input.y' as input file name.
8835 Avoid 8+3 problems by requiring input.c when the test needs the
8836 parser.
8837
88382001-12-27 Akim Demaille <akim@epita.fr>
8839
8840 * src/reader.c (symbol_list_new): Be sure to initialize all the
8841 fields.
8842
88432001-12-27 Akim Demaille <akim@epita.fr>
8844
8845 All the hacks using a final pseudo state are now useless.
8846
8847 * src/LR0.c (set_state_table): state_table holds exactly nstates.
8848 * src/lalr.c (nLA): New.
8849 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
8850 instead of lookaheadsp from the pseudo state (nstate + 1).
8851
88522001-12-27 Akim Demaille <akim@epita.fr>
8853
8854 * src/output.c (action_row, token_actions): Use a state_t instead
8855 of a integer, and nlookaheads instead of the following state's
8856 lookaheadsp.
8857
88582001-12-27 Akim Demaille <akim@epita.fr>
8859
8860 * src/conflicts.c (log_resolution, flush_shift)
8861 (resolve_sr_conflict, set_conflicts, solve_conflicts)
8862 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
8863 (conflicts_print, print_reductions): Use a state_t instead of an
8864 integer when referring to a state.
8865 As much as possible, depend upon nlookaheads, instead of the
8866 `lookaheadsp' member of the following state (since lookaheads of
8867 successive states are successive, the difference between state n + 1
8868 and n served as the number of lookaheads for state n).
8869 * src/lalr.c (add_lookback_edge): Likewise.
8870 * src/print.c (print_core, print_actions, print_state)
8871 (print_results): Likewise.
8872 * src/print_graph.c (print_core, print_actions, print_state)
8873 (print_graph): Likewise.
8874 * src/conflicts.h: Adjust.
8875
88762001-12-27 Akim Demaille <akim@epita.fr>
8877
8878 * src/bison.hairy: Formatting/comment changes.
8879 ANSIfy.
8880 Remove `register' indications.
8881 Add plenty of `static'.
8882
88832001-12-27 Akim Demaille <akim@epita.fr>
8884
8885 * src/output.c (prepare): Drop the muscle `ntbase' which
8886 duplicates ntokens.
8887 * src/bison.simple: Formatting/comment changes.
8888 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
8889 is an undocumented synonym.
8890
88912001-12-22 Akim Demaille <akim@epita.fr>
8892
8893 * src/output.c (output_table_data): Change the prototype to use
8894 `int' for array ranges: some invocations do pass an int, not a
8895 short.
8896 Reported by Wayne Green.
8897
88982001-12-22 Akim Demaille <akim@epita.fr>
8899
8900 Some actions of web2c.y are improperly triggered.
8901 Reported by Mike Castle.
8902
8903 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
8904 * tests/regression.at (Web2c): Rename as...
8905 (Web2c Report): this.
8906 (Web2c Actions): New.
8907
89082001-12-22 Akim Demaille <akim@epita.fr>
8909
8910 Reductions in web2c.y are improperly reported.
8911 Reported by Mike Castle.
8912
8913 * src/conflicts.c (print_reductions): Fix.
8914 * tests/regression.at (Web2c): New.
8915
89162001-12-18 Akim Demaille <akim@epita.fr>
8917
8918 Some host fail on `assert (!"foo")', which expands to
8919 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
8920 Reported by Nelson Beebee.
8921
8922 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
8923 `#define it_succeeded 0' and `assert (it_succeeded)'.
8924
89252001-12-17 Marc Autret <autret_m@epita.fr>
8926
8927 * src/bison.simple: Don't hard code the skeleton line and filename.
8928 * src/output.c (output_parser): Rename 'line' as 'output_line'.
8929 New line counter 'skeleton_line' (skeleton-line muscle).
8930
89312001-12-17 Paul Eggert <eggert@twinsun.com>
8932
8933 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
8934 YYDEBUG must be defined to a nonzero value.
8935
8936 * src/bison.simple (yytname): Do not assume that the user defines
8937 YYDEBUG to a properly parenthesized expression.
8938
89392001-12-17 Akim Demaille <akim@epita.fr>
8940
8941 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
8942 nlookaheads is a new member.
8943 Adjust all users.
8944 * src/lalr.h (nlookaheads): Remove this orphan declaration.
8945 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
8946 state.
8947
89482001-12-17 Akim Demaille <akim@epita.fr>
8949
8950 * src/files.h, src/files.c (open_files, close_files): Remove.
8951 * src/main.c (main): Don't open/close files, nor invoke lex_free,
8952 let...
8953 * src/reader.c (reader): Do it.
8954
89552001-12-17 Akim Demaille <akim@epita.fr>
8956
8957 * src/conflicts.c (print_reductions): Formatting changes.
8958
89592001-12-17 Akim Demaille <akim@epita.fr>
8960
8961 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
8962 (flush_reduce): New.
8963 (resolve_sr_conflict): Adjust.
8964
89652001-12-17 Akim Demaille <akim@epita.fr>
8966
8967 * src/output.c (output_obstack): Be static and rename as...
8968 (format_obstack): this, to avoid any confusion with files.c's
8969 output_obstack.
8970 * src/reader.h (muscle_obstack): Move to...
8971 * src/output.h: here, since it's defined in output.c.
8972
89732001-12-17 Akim Demaille <akim@epita.fr>
8974
8975 * src/output.c (action_row, save_column, default_goto)
8976 (sort_actions, matching_state, pack_vector): Better variable
8977 locality.
8978
89792001-12-17 Akim Demaille <akim@epita.fr>
8980
8981 * src/output.c: Various formatting changes.
8982
89832001-12-17 Akim Demaille <akim@epita.fr>
8984
8985 * src/files.c (output_files): Free the output_obstack.
8986 * src/main.c (main): Call print and print_graph conditionally.
8987 * src/print.c (print): Work unconditionally.
8988 * src/print_graph.c (print_graph): Work unconditionally.
8989 * src/conflicts.c (log_resolution): Output only if verbose_flag.
8990
89912001-12-16 Marc Autret <autret_m@epita.fr>
8992
8993 * src/output.c (actions_output): Fix. When we use %no-lines,
8994 there is one less line per action.
8995
89962001-12-16 Marc Autret <autret_m@epita.fr>
8997
8998 * src/bison.simple: Remove a useless #line directive.
8999 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
9000 * src/output.c (get_lines_number): New.
9001 (output_parser): Adjust, now takes care about the lines of a
9002 output muscles.
9003 Fix line numbering.
9004 (actions_output): Computes the number of lines taken by actions.
9005 (output_master_parser): Insert new skeleton which is the name of
9006 the output parser file name.
9007
90082001-12-15 Marc Autret <autret_m@epita.fr>
9009
9010 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
9011
90122001-12-15 Marc Autret <autret_m@epita.fr>
9013
9014 * src/output.c (output_gram): Keep track of the hairy one.
9015
90162001-12-15 Akim Demaille <akim@epita.fr>
9017
9018 Make `make distcheck' work.
9019
9020 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
9021 system.h which uses libgettext.h.
9022
90232001-12-15 Akim Demaille <akim@epita.fr>
9024
9025 * src/nullable.c (set_nullable): Useless rules must be skipped,
9026 otherwise, since we range over their symbols, we might look at a
9027 nonterminal which no longer ``exists'', i.e., it is not counted in
9028 `nvars', hence we overflow our arrays.
9029
90302001-12-15 Akim Demaille <akim@epita.fr>
9031
9032 The header can also be produced directly, without any obstack!
9033 Yahoo!
9034
9035 * src/files.c, src/files.h (defines_obstack): Remove.
9036 (compute_header_macro): Global.
9037 (defines_obstack_save): Remove.
9038 * src/reader.c (parse_union_decl): No longer output to
9039 defines_obstack: its content can be found in the `stype' muscle
9040 anyway.
9041 (output_token_translations): Merge into...
9042 (symbols_output): this.
9043 Rename as...
9044 (symbols_save): this.
9045 (reader): Adjust.
9046 * src/output.c (header_output): New.
9047 (output): Call it.
9048
90492001-12-15 Akim Demaille <akim@epita.fr>
9050
9051 * src/reader.c (parse_union_decl): Instead of handling two obstack
9052 simultaneously, use one to define the `stype' muscle, and use the
9053 value of the latter to fill defines_obstack.
9054 (copy_comment): Remove.
9055 (copy_comment2): Work for a single obstack.
9056 Rename as...
9057 (copy_comment): this.
9058
90592001-12-15 Akim Demaille <akim@epita.fr>
9060
9061 * src/lex.c, src/lex.h (xgetc): No longer static.
9062 * src/reader.c (parse_union_decl): Revamp.
9063
90642001-12-15 Akim Demaille <akim@epita.fr>
9065
9066 Still making progress in separating Bison into (i) input, (ii)
9067 process, (iii) output: now we can directly output the parser file
9068 without using table_obstack at all.
9069
9070 * src/files.c, src/files.h (table_obstack): Bye bye.
9071 (parser_file_name): New.
9072 * src/files.c (compute_output_file_names): Compute it.
9073 * src/output.c (actions_output, output_parser)
9074 (output_master_parser): To a file instead of an obstack.
9075
90762001-12-15 Akim Demaille <akim@epita.fr>
9077
9078 Attach actions to rules, instead of pre-outputting them to
9079 actions_obstack.
9080
9081 * src/gram.h (rule_t): action and action_line are new members.
9082 * src/reader.c (symbol_list): Likewise.
9083 (copy_action): Save the actions within the rule.
9084 (packgram): Save them in rule_table.
9085 * src/output.c (actions_output): New.
9086 (output_parser): Use it on `%%actions'.
9087 (output_rule_data): Don't free rule_table.
9088 (output): Do it.
9089 (prepare): Don't save the `action' muscle.
9090 * src/bison.simple: s/%%action/%%actions/.
9091
90922001-12-15 Akim Demaille <akim@epita.fr>
9093
9094 * src/reader.c (copy_action): When --yacc, don't append a `;'
9095 to the user action: let it fail if lacking.
9096 Suggested by Arnold Robbins and Tom Tromey.
9097
90982001-12-14 Akim Demaille <akim@epita.fr>
9099
9100 * src/lex.c (literalchar): Simply return the char you decoded, non
9101 longer mess around with obstacks and int pointers.
9102 Adjust all callers.
9103
91042001-12-14 Akim Demaille <akim@epita.fr>
9105
9106 * src/lex.c (literalchar): Don't escape the special characters,
9107 just decode them, and keep them as char (before, eol was output as
9108 the 2 char string `\n' etc.).
9109 * src/output.c (output_rule_data): Use quotearg to output the
9110 token strings.
9111
91122001-12-13 Paul Eggert <eggert@twinsun.com>
9113
9114 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
9115 Do not infringe on the global user namespace when using C++.
9116 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
9117 All uses of `fprintf' and `stderr' changed.
9118
9119 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
9120
91212001-12-13 Akim Demaille <akim@epita.fr>
9122
9123 The computation of nullable is broken: it doesn't handle empty
9124 RHS's properly.
9125
9126 * tests/torture.at (GNU AWK Grammar): New.
9127 * tests/sets.at (Nullable): New.
9128 * src/nullable.c (set_nullable): Instead of blindly looping over
9129 `ritems', loop over the rules, and then over their rhs's.
9130
9131 Work around Autotest bugs.
9132
9133 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
9134 frame, because Autotest understand lines starting with a `+' as
9135 traces from the shell. Then, they are not processed properly.
9136 Admittedly an Autotest bug, but we don't have time to wait for
9137 Autotest to catch up.
9138 * tests/regression.at (Broken Closure): Adjust to the new table
9139 frames.
9140 Move to...
9141 * tests/sets.at: here.
9142
91432001-12-13 Akim Demaille <akim@epita.fr>
9144
9145 * src/closure.c (closure): Use nrules instead of playing tricks
9146 with BITS_PER_WORD.
9147
91482001-12-13 Akim Demaille <akim@epita.fr>
9149
9150 * src/print.c (print_actions): Output the handling of `$' as the
9151 traces do: shifting the token EOF. Before EOF was treated as a
9152 nonterminal.
9153 * tests/regression.at: Adjust some tests.
9154 * src/print_graph.c (print_core): Complete the set of items via
9155 closure. The next-to-final and final states are still unsatisfying,
9156 but that's to be addressed elsewhere.
9157 No longer output the rule numbers, but do output the state number.
9158 A single loop for the shifts + gotos is enough, but picked a
9159 distinct color for each.
9160 (print_graph): Initialize and finalize closure.
9161
91622001-12-13 Akim Demaille <akim@epita.fr>
9163
9164 * src/reader.c (readgram): Remove dead code, an strip useless
9165 braces.
9166 (get_type): Remove, unused.
9167
91682001-12-12 Akim Demaille <akim@epita.fr>
9169
9170 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
9171 on that of lib/error.c.
9172
91732001-12-12 Akim Demaille <akim@epita.fr>
9174
9175 Some hosts don't like `/' in includes.
9176
9177 * src/system.h: Include libgettext.h without qualifying the path.
9178 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
9179 $(top_srcdir).
9180
91812001-12-11 Marc Autret <autret_m@epita.fr>
9182
9183 * src/output.c (output_parser): Remove useless muscle.
9184
91852001-12-11 Marc Autret <autret_m@epita.fr>
9186
9187 * src/bison.simple: Remove #line just before %%epilogue. It
9188 is now handled in ...
9189 * src/reader.c (read_additionnal_code): Add the output of a
9190 #line for the epilogue.
9191
91922001-12-10 Marc Autret <autret_m@epita.fr>
9193
9194 * src/reader.c (copy_definition): Re-use CPP-outed code which
9195 replace precedent remove.
9196 * src/bison.simple: Remove #line before %%prologue because
9197 %%input-line is wrong at this time.
9198
91992001-12-10 Marc Autret <autret_m@epita.fr>
9200
9201 * src/reader.c (symbols_output): Clean up.
9202 * src/output.c (output_gram, output): Clean up.
9203
92042001-12-10 Akim Demaille <akim@epita.fr>
9205
9206 * src/lalr.c (initialize_lookaheads): New. Extracted from...
9207 * src/LR0.c (set_state_table): here.
9208 * src/lalr.c (lalr): Call it.
9209
92102001-12-10 Akim Demaille <akim@epita.fr>
9211
9212 * src/state.h (shifts): Remove the `number' member: shifts are
9213 attached to state, hence no longer need to be labelled with a
9214 state number.
9215
92162001-12-10 Akim Demaille <akim@epita.fr>
9217
9218 Now that states have a complete set of members, the linked list of
9219 shifts is useless: just fill directly the state's shifts member.
9220
9221 * src/state.h (shifts): Remove the `next' member.
9222 * src/LR0.c (first_state, last_state): Remove.
9223 Adjust the callers.
9224 (augment_automaton): Don't look for the shifts that must be added
9225 a shift on EOF: it is those of the state we looked for! But now,
9226 since shifts are attached, it is no longer needed to looking
9227 merely by its id: its number.
9228
92292001-12-10 Akim Demaille <akim@epita.fr>
9230
9231 * src/LR0.c (augment_automaton): Better variable locality.
9232 Remove an impossible branch: if there is a state corresponding to
9233 the start symbol being shifted, then there is shift for the start
9234 symbol from the initial state.
9235
92362001-12-10 Akim Demaille <akim@epita.fr>
9237
9238 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
9239 only when appropriate: when insert_start_shifting_state' is not
9240 invoked.
9241 * tests/regression.at (Rule Line Numbers): Adjust.
9242
92432001-12-10 Akim Demaille <akim@epita.fr>
9244
9245 * src/LR0.c (augment_automaton): Now that all states have shifts,
9246 merge the two cases addition shifts to the initial state.
9247
92482001-12-10 Akim Demaille <akim@epita.fr>
9249
9250 * src/lalr.c (set_state_table): Move to...
9251 * src/LR0.c: here.
9252 * src/lalr.c (lalr): Don't call it...
9253 * src/LR0.c (generate_states): do it.
9254 * src/LR0.h (first_state): Remove, only the table is used.
9255
92562001-12-10 Akim Demaille <akim@epita.fr>
9257
9258 * src/LR0.h (first_shift, first_reduction): Remove.
9259 * src/lalr.c: Don't use first_shift: find shifts through the
9260 states.
9261
92622001-12-10 Akim Demaille <akim@epita.fr>
9263
9264 * src/LR0.c: Attach shifts to states as soon as they are
9265 computed.
9266 * src/lalr.c (set_state_table): Instead of assigning shifts to
9267 state, just assert that the mapping was properly done.
9268
92692001-12-10 Akim Demaille <akim@epita.fr>
9270
9271 * src/LR0.c (insert_start_shift): Rename as...
9272 (insert_start_shifting_state): this.
9273 (insert_eof_shifting_state, insert_accepting_state): New.
9274 (augment_automaton): Adjust.
9275 Better locality of the variables.
9276 When looking if the start_symbol is shifted from the initial
9277 state, using `while (... symbol != start_symbol ...)' sounds
9278 better than `while (... symbol < start_symbol ...)': If fail
9279 to see how the order between symbols could be relevant!
9280
92812001-12-10 Akim Demaille <akim@epita.fr>
9282
9283 * src/getargs.h: Don't declare `spec_name_prefix' and
9284 `spec_file_prefix', declared by src/files.h.
9285 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
9286 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
9287 * src/output.c (prepare): Adjust.
9288 * src/reader.c (symbols_output): Likewise.
9289 * src/vmsgetargs.c: Vaguely adjust, but who cares?
9290
92912001-12-10 Akim Demaille <akim@epita.fr>
9292
9293 * src/muscle_tab.c (muscle_init): NULL is a better default than
9294 `"0"'.
9295
92962001-12-10 Akim Demaille <akim@epita.fr>
9297
9298 * src/reader.c (reader): Calling symbols_output once is enough.
9299
93002001-12-10 Akim Demaille <akim@epita.fr>
9301
9302 Now that states have a complete set of members, the linked list of
9303 reductions is useless: just fill directly the state's reductions
9304 member.
9305
9306 * src/state.h (struct reductions): Remove member `number' and
9307 `next'.
9308 * src/LR0.c (first_reduction, last_reduction): Remove.
9309 (save_reductions): Don't link the new reductions, store them in
9310 this_state.
9311 * src/lalr.c (set_state_table): No need to attach reductions to
9312 states, it's already done.
9313 * src/output.c (output_actions): No longer free the shifts, then
9314 the reductions, then the states: free all the states and their
9315 members.
9316
93172001-12-10 Akim Demaille <akim@epita.fr>
9318
9319 * src/options.c (OPTN, DRTV, BOTH): New.
9320 (option_table): Use them.
9321
9322 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
9323 the job of system.h.
9324 * src/options.c: Don't include stdio.h and xalloc.h for the same
9325 reasons.
9326
93272001-12-10 Akim Demaille <akim@epita.fr>
9328
9329 * src/output.c (output, prepare): Make sure the values of the
9330 muscles `action' and `prologue' are 0-terminated.
9331
93322001-12-10 Akim Demaille <akim@epita.fr>
9333
9334 Clean up GCC warnings.
9335
9336 * src/reader.c (copy_action): `buf' is not used.
9337 (parse_skel_decl): Be static.
9338 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
9339 * src/options.h (create_long_option_table): Have a real prototype.
9340 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
9341 (hash_delete_at): Return const void *.
9342 Adjust casts to preserve the const.
9343
93442001-12-10 Akim Demaille <akim@epita.fr>
9345
9346 * configure.in: Require 2.52g.
9347 M4 is not needed, but AUTOM4TE is.
9348 * m4/m4.m4: Remove.
9349 * tests/Makefile.am: Adjust.
9350
93512001-12-10 Akim Demaille <akim@epita.fr>
9352
9353 One structure for states is enough, even though theoretically
9354 there are LR(0) states and LALR(1) states.
9355
9356 * src/lalr.h (state_t): Remove.
9357 (state_table): Be state_t **, not state_t *.
9358 * src/state.h (core, CORE_ALLOC): Rename as...
9359 (state_t, STATE_ALLOC): this.
9360 Add the LALR(1) members: shifts, reductions, errs.
9361 * src/LR0.c (state_table): Rename as...
9362 (state_hash): this, to avoid name clashes with the global
9363 `state_table'.
9364 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
9365 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
9366
93672001-12-10 Akim Demaille <akim@epita.fr>
9368
9369 Bison dumps core on bash.y.
9370 Reported by Pascal Bart.
9371
9372 * src/warshall.c (bitmatrix_print): New.
9373 (TC): Use it.
9374 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
9375 j must be the outer loop.
9376 * tests/regression.at (Broken Closure): New.
9377
93782001-12-05 Akim Demaille <akim@epita.fr>
9379
9380 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
9381 its argument.
9382 Reported by Peter Hamorsky.
9383
93842001-12-05 Akim Demaille <akim@epita.fr>
9385
9386 * src/conflicts.c (err_table): Remove.
9387 (resolve_sr_conflict): Adjust.
9388 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
9389 Rename as...
9390 (state_t.reductions, state_t.shifts): this.
9391
93922001-12-05 Akim Demaille <akim@epita.fr>
9393
9394 * src/reduce.c (reduce_grammar_tables): No longer disable the
9395 removal of useless rules via CPP but via `if (0)', so that the
9396 compiler still check the code is valid.
9397 For instance, it should have noticed `rline' no longer exists: use
9398 the `line' member of rule_t.
9399 * src/gram.c (dummy, rline): Remove, unused.
9400
94012001-12-05 Akim Demaille <akim@epita.fr>
9402
9403 * src/output.c (pack_vector): Use assert, not berror.
9404 * src/main.c (berror): Remove, unused.
9405
94062001-12-05 Akim Demaille <akim@epita.fr>
9407
9408 New experimental feature: if --verbose --trace output all the
9409 items of a state, not only its kernel.
9410
9411 * src/print.c (print_core): If `trace_flag', then invoke closure
9412 before outputting the items of the state (print_core is no longer
9413 a correct name them).
9414 (print_results): Invoke new_closure/free_closure if needed.
9415
94162001-12-05 Akim Demaille <akim@epita.fr>
9417
9418 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
9419 * src/closure.c, src/closure.h (itemsetsize): Rename as...
9420 (nitemset): for consistency with the rest of the project.
9421
94222001-12-05 Akim Demaille <akim@epita.fr>
9423
9424 * src/closure.c (print_closure): Improve.
9425 (closure): Use it for printing input and output.
9426
94272001-12-05 Akim Demaille <akim@epita.fr>
9428
9429 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
9430 indexed by nonterminals.
9431
94322001-12-05 Akim Demaille <akim@epita.fr>
9433
9434 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
9435 what it was!).
9436 * src/warshall.h: Remove accidental duplication of the content.
9437
94382001-12-05 Akim Demaille <akim@epita.fr>
9439
9440 * src/closure.c (set_fderives): De-obfuscate.
9441
94422001-12-05 Akim Demaille <akim@epita.fr>
9443
9444 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
9445
94462001-12-05 Akim Demaille <akim@epita.fr>
9447
9448 * src/closure.c (set_firsts): De-obfuscate.
9449
94502001-12-05 Akim Demaille <akim@epita.fr>
9451
9452 * src/output.c (action_row): De-obfuscate
9453 using the good o' techniques: arrays not pointers, variable
9454 locality, BITISSET, RESETBIT etc.
9455
94562001-12-05 Akim Demaille <akim@epita.fr>
9457
9458 Pessimize the code to simplify it: from now on, all the states
9459 have a valid SHIFTS, which NSHIFTS is possibly 0.
9460
9461 * src/LR0.c (shifts_new): Be global and move to..
9462 * src/state.c, src/state.h: here.
9463 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
9464 * src/print_graph: Adjust.
9465
94662001-12-05 Akim Demaille <akim@epita.fr>
9467
9468 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
9469 * src/conflicts.c: Use it.
9470 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
9471 incorrectly ``simplified''.
9472
94732001-12-05 Akim Demaille <akim@epita.fr>
9474
9475 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
9476 using the good o' techniques: arrays not pointers, variable
9477 locality, BITISSET, RESETBIT etc.
9478
94792001-12-05 Akim Demaille <akim@epita.fr>
9480
9481 * src/state.h (SHIFT_SYMBOL): New.
9482 * src/conflicts.c: Use it to deobfuscate.
9483
94842001-12-05 Akim Demaille <akim@epita.fr>
9485
9486 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
9487 (print_reductions): De-obfuscate using the good o' techniques:
9488 arrays not pointers, variable locality, BITISSET.
9489
94902001-12-05 Akim Demaille <akim@epita.fr>
9491
9492 * src/conflicts.c (print_reductions): Arrays, not pointers.
9493 Use BITISSET.
9494
94952001-12-05 Akim Demaille <akim@epita.fr>
9496
9497 * src/conflicts.c (print_reductions): Pessimize, but clarify.
9498
94992001-12-05 Akim Demaille <akim@epita.fr>
9500
9501 * src/conflicts.c (print_reductions): Improve variable locality.
9502
95032001-12-05 Akim Demaille <akim@epita.fr>
9504
9505 * src/conflicts.c (print_reductions): Pessimize, but clarify.
9506
95072001-12-05 Akim Demaille <akim@epita.fr>
9508
9509 * src/conflicts.c (print_reductions): Improve variable locality.
9510
95112001-12-05 Akim Demaille <akim@epita.fr>
9512
9513 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
9514 * src/lalr.c: Use them.
9515
95162001-12-05 Akim Demaille <akim@epita.fr>
9517
9518 * src/LR0.c (augment_automaton): Formatting changes.
9519 Better variable locality.
9520
95212001-12-05 Akim Demaille <akim@epita.fr>
9522
9523 * src/lalr.c (matrix_print): New.
9524 (transpose): Use it.
9525 Use arrays instead of pointers.
9526
95272001-12-05 Akim Demaille <akim@epita.fr>
9528
9529 * src/lalr.c (maxrhs): Move to...
9530 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
9531 * src/lalr.c (build_relations): Adjust.
9532
95332001-12-05 Akim Demaille <akim@epita.fr>
9534
9535 * src/lalr.c (transpose): Free the memory allocated to the
9536 argument, as it is replaced by the results by the unique caller.
9537 (build_relations): Merely invoke transpose: it handles the memory
9538 deallocation.
9539 Improve variable locality.
9540 Avoid variables used as mere abbreviations.
9541 (compute_lookaheads): Use arrays instead of pointers.
9542
95432001-12-05 Akim Demaille <akim@epita.fr>
9544
9545 * src/lalr.c (initialize_F): Improve variable locality.
9546 Avoid variables used as mere abbreviations.
9547
95482001-12-05 Akim Demaille <akim@epita.fr>
9549
9550 * src/derives.c (print_derives): Display the ruleno.
9551 * src/lalr.c (initialize_F, transpose): Better variable locality
9552 to improve readability.
9553 Avoid variables used as mere abbreviations.
9554
95552001-12-05 Akim Demaille <akim@epita.fr>
9556
9557 * src/lalr.c (traverse): Use arrays instead of pointers.
9558
95592001-12-05 Akim Demaille <akim@epita.fr>
9560
9561 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
9562 the handling of squeue.
9563 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
9564
95652001-12-05 Akim Demaille <akim@epita.fr>
9566
9567 Because useless nonterminals are now kept alive (instead of being
9568 `destroyed'), we now sometimes examine them, and store information
9569 related to them. Hence we need to know their number, and adjust
9570 memory allocations.
9571
9572 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
9573 static.
9574 * src/LR0.c (allocate_itemsets): The memory allocated to
9575 `symbol_count' was used for two different purpose: once to count
9576 the number of occurrences of each symbol, and later reassigned to
9577 `shift_symbol', containing the symbol that can be shifted from a
9578 given state.
9579 Deobfuscate, i.e., allocate, use and free `symbol_count' here
9580 only, and...
9581 (new_itemsets): Allocate `shift_symbol' here.
9582 (allocate_itemsets): symbol_count includes useless nonterminals.
9583 Make room for them.
9584 (free_storage): Use `free', not `XFREE', for pointers that cannot
9585 be null.
9586
95872001-12-05 Akim Demaille <akim@epita.fr>
9588
9589 * src/nullable.c (set_nullable): Deobfuscate the handling of
9590 ritem.
9591 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
9592
95932001-12-05 Akim Demaille <akim@epita.fr>
9594
9595 * src/gram.c, src/gram.h (ritem_print): New.
9596 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
9597 (This useless function was defined only to work around VMS linkers
9598 that can't handle compilation units with variables only).
9599 * src/reduce.c (dump_grammar): Use it to trace the construction of
9600 ritem.
9601
96022001-12-04 Paul Eggert <eggert@twinsun.com>
9603
9604 * src/bison.simple (union yyalloc): Change member names
9605 to be the same as the stack names.
9606 (yyparse): yyptr is now union yyalloc *, not char *.
9607 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
9608 and may generate better code on some machines.
9609 (yystpcpy): Use prototype if __STDC__ is defined, not just
9610 if __cplusplus is defined.
9611
96122001-11-30 Akim Demaille <akim@epita.fr>
9613
9614 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
9615 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
9616 Gettext doesn't compile cleanly, and dies with -Werror.
9617 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
9618 Include WARNING_CFLAGS here.
9619 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
9620 before being defined.
9621
96222001-11-27 Paul Eggert <eggert@twinsun.com>
9623
9624 * lib/quotearg.h (quotearg_n, quotearg_n_style):
9625 First arg is int, not unsigned.
9626 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
9627 (SIZE_MAX, UINT_MAX): New macros.
9628 (quotearg_n_options): Abort if N is negative.
9629 Avoid overflow check on hosts where size_t is 64 bits and int
9630 is 32 bits, as overflow is impossible there.
9631 Fix off-by-one typo that caused unnecessary reallocation.
9632
96332001-11-29 Paul Eggert <eggert@twinsun.com>
9634
9635 Name space cleanup in generated parser.
9636
9637 * doc/bison.texinfo (Bison Parser): Discuss system headers
9638 and their effect on the user name space.
9639
9640 * src/bison.simple:
9641 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
9642 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
9643 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
9644
9645 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
9646 on user names when possible.
9647
9648 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
9649 Simplify test for whather <alloca.h> exists.
9650
9651 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
9652
9653 (<stdio.h>): Include if YYDEBUG.
9654
9655 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
9656 ! defined (yyoverflow) && ! defined (yymemcpy).
9657
9658 (yymemcpy, yyparse): Rename local variables as needed so that
9659 they all begin with 'yy'.
9660
9661 (yystrlen, yystpcpy): New functions.
9662
9663 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
9664 All uses changed.
9665
9666 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
9667 instead of relying on string.h functions. Use YYSTACK_ALLOC
9668 and YYSTACK_FREE instead of malloc and free.
9669
96702001-11-30 Akim Demaille <akim@epita.fr>
9671
9672 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
9673 before their first uses.
9674 (YYBISON, YYPURE): Move to the top of the output.
9675
96762001-11-30 Akim Demaille <akim@epita.fr>
9677
9678 * tests/reduce.at (Useless Nonterminals): Fix.
9679
96802001-11-30 Akim Demaille <akim@epita.fr>
9681
9682 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
9683 if body instead of `;' to pacify GCC's warnings.
9684
96852001-11-30 Akim Demaille <akim@epita.fr>
9686
9687 Instead of mapping the LHS of unused rules to -1, keep the LHS
9688 valid, but flag the rules as invalid.
9689
9690 * src/gram.h (rule_t): `useful' is a new member.
9691 * src/print.c (print_grammar): Adjust.
9692 * src/derives.c (set_derives): Likewise.
9693 * src/reader.c (packgram, reduce_output): Likewise.
9694 * src/reduce.c (reduce_grammar_tables): Likewise.
9695 * tests/reduce.at (Underivable Rules, Useless Rules): New.
9696
96972001-11-30 Akim Demaille <akim@epita.fr>
9698
9699 * src/reduce.c (reduce_output): Formatting changes.
9700 * src/print.c (print_results, print_grammar): Likewise.
9701 * tests/regression.at (Rule Line Numbers)
9702 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
9703
97042001-11-30 Akim Demaille <akim@epita.fr>
9705
9706 * src/reduce.c (nonterminals_reduce): Instead of throwing away
9707 useless nonterminals, move them at the end of the symbol arrays.
9708 (reduce_output): Adjust.
9709 * tests/reduce.at (Useless Nonterminals): Adjust.
9710
97112001-11-30 Akim Demaille <akim@epita.fr>
9712
9713 * src/reduce.c: Various comment/formatting changes.
9714 (nonterminals_reduce): New, extracted from...
9715 (reduce_grammar_tables): here.
9716 (reduce_grammar): Call nonterminals_reduce.
9717
97182001-11-29 Paul Eggert <eggert@twinsun.com>
9719
9720 * src/bison.simple (YYSTACK_REALLOC): Remove.
9721 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
9722 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
9723 New macros.
9724 (union yyalloc): New type.
9725 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
9726 an arbitrary restriction on hosts where size_t is wider than int.
9727
9728 (yyparse): Don't dump core if alloca or malloc fails; instead, report
9729 a parser stack overflow. Allocate just one block of memory for all
9730 three stacks, instead of allocating three blocks; this typically is
9731 faster and reduces fragmentation.
9732
9733 Do not limit the number of items in the stack to a value that fits
9734 in 'int', as this is an arbitrary limit on hosts with 64-bit
9735 size_t and 32-bit int.
9736
97372001-11-29 Marc Autret <autret_m@epita.fr>
9738
9739 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
9740 of defining YYERROR_VERBOSE.
9741 [AT_DATA]: $4 is now out of C declarations in the prologue.
9742
97432001-11-28 Marc Autret <autret_m@epita.fr>
9744
9745 * src/reader.c (parse_dquoted_param): New.
9746 (parse_skel_decl): Use it.
9747 * src/lex.h: Add its prototype.
9748 * src/lex.c (literalchar): Become not static.
9749
97502001-11-28 Marc Autret <autret_m@epita.fr>
9751
9752 * src/output.h: And put its extern declaration here.
9753 * src/output.c (error_verbose): Define here.
9754 (prepare): Echo name modification.
9755 * src/getargs.h: Clean its extern declaration.
9756 * src/getargs.c (error_verbose_flag): Remove.
9757 (getargs): Remove case 'e'.
9758 * src/options.c (option_table): 'error-verbose' is now seen as simple
9759 percent option.
9760 Include output.h.
9761
9762 * src/reader.c (read_declarations): Remove case tok_include.
9763 (parse_include_decl): Remove.
9764 * src/lex.h (token_t): Remove tok_include.
9765 * src/options.c (option_table): 'include' is now a simple command line
9766 option.
9767
97682001-11-28 Marc Autret <autret_m@epita.fr>
9769
9770 * src/bison.simple: Adjust muscle names.
9771 * src/muscle_tab.c (muscle_init): Also rename the muscles.
9772 * src/output.c (prepare): s/_/-/ for the muscles names.
9773 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
9774
97752001-11-28 Marc Autret <autret_m@epita.fr>
9776
9777 * src/bison.simple: Fix debug.
9778 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
9779
97802001-11-28 Akim Demaille <akim@epita.fr>
9781
9782 * src/LR0.c (shifts_new): New.
9783 (save_shifts, insert_start_shift, augment_automaton): Use it.
9784
97852001-11-28 Akim Demaille <akim@epita.fr>
9786
9787 * src/closure.c (closure): `b' and `ruleno' denote the same value:
9788 keep ruleno only.
9789
97902001-11-28 Akim Demaille <akim@epita.fr>
9791
9792 * src/closure.c (closure): Instead of looping over word in array
9793 then bits in words, loop over bits in array.
9794
97952001-11-28 Akim Demaille <akim@epita.fr>
9796
9797 * src/closure.c (closure): No longer optimize the special case
9798 where all the bits of `ruleset[r]' are set to 0, to make the code
9799 clearer.
9800
98012001-11-28 Akim Demaille <akim@epita.fr>
9802
9803 * src/closure.c (closure): `r' and `c' are new variables, used to
9804 de-obfuscate accesses to RULESET and CORE.
9805
98062001-11-28 Akim Demaille <akim@epita.fr>
9807
9808 * src/reduce.c (reduce_print): Use ngettext.
9809 (dump_grammar): Improve the trace accuracy.
9810
98112001-11-28 Akim Demaille <akim@epita.fr>
9812
9813 * src/reduce.c (dump_grammar): Don't translate trace messages.
9814
98152001-11-28 Akim Demaille <akim@epita.fr>
9816
9817 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
9818 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
9819 as all tags are free'ed afterwards.
9820 From Enrico Scholz.
9821
98222001-11-27 Paul Eggert <eggert@twinsun.com>
9823
9824 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
9825 use alloca when we didn't want to, and vice versa.
9826
98272001-11-27 Marc Autret <autret_m@epita.fr>
9828
9829 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
9830 initialization.
9831 * src/output.c (prepare): Remove its update.
9832
98332001-11-27 Marc Autret <autret_m@epita.fr>
9834
9835 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
9836 Use %error-verbose.
9837
98382001-11-27 Marc Autret <autret_m@epita.fr>
9839
9840 * src/bison.simple: Remove YYERROR_VERBOSE using.
9841 Use %%error_verbose.
9842 (yyparse): Likewise.
9843 * src/output.c (prepare): Give its final value.
9844 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
9845 * src/getargs.h: Add its extern declaration.
9846 * src/getargs.c (error_verbose_flag): New int.
9847 (getargs): Update to catch new case.
9848 * src/options.c (option_table): 'error-verbose' is a new option.
9849 (shortopts): Update.
9850
98512001-11-27 Akim Demaille <akim@epita.fr>
9852
9853 * src/system.h: Use intl/libgettext.h.
9854 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
9855
98562001-11-27 Akim Demaille <akim@epita.fr>
9857
9858 * tests/torture.at (Exploding the Stack Size with Malloc):
9859 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
9860
98612001-11-27 Akim Demaille <akim@epita.fr>
9862
9863 * src/files.c: Include error.h.
9864 Reported by Hans Aberg.
9865
98662001-11-26 Marc Autret <autret_m@epita.fr>
9867
9868 * src/reader.c (parse_include_decl): New, not yet implemented.
9869 (read_declarations): Add case tok_include.
9870 * src/getargs.h (include): Add its extern definition.
9871 * src/getargs.c (include): New const char *.
9872 (getargs): Add case '-I'.
9873 * src/options.c (option_table): Add include as command line and
9874 percent option.
9875 * src/lex.h (token_t): Add tok_include.
9876
98772001-11-26 Akim Demaille <akim@epita.fr>
9878
9879 * src/reader.c (readgram): Make sure rules for mid-rule actions
9880 have a lineno equal to that of their host rule.
9881 Reported by Hans Aberg.
9882 * tests/regression.at (Rule Line Numbers): New.
9883
98842001-11-26 Akim Demaille <akim@epita.fr>
9885
9886 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
9887 size_ts.
9888
98892001-11-26 Akim Demaille <akim@epita.fr>
9890
9891 * src/complain.c, src/complain.h (error): Remove, provided by
9892 lib/error.[ch].
9893
98942001-11-26 Akim Demaille <akim@epita.fr>
9895
9896 * src/reader.c (read_declarations): Don't abort on tok_illegal,
9897 issue an error message.
9898 * tests/regression.at (Invalid %directive): New.
9899 Reported by Hans Aberg.
9900
99012001-11-26 Akim Demaille <akim@epita.fr>
9902
9903 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
9904 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
9905
99062001-11-26 Akim Demaille <akim@epita.fr>
9907
9908 * src/conflicts.c (conflicts_print): Don't complain at all when
9909 there are no reduce/reduce conflicts, and as many shift/reduce
9910 conflicts as expected.
9911 * tests/regression.at (%expect right): Adjust.
9912
99132001-11-23 Akim Demaille <akim@epita.fr>
9914
9915 * lib/alloca.c: Update, from fileutils.
9916
99172001-11-23 Akim Demaille <akim@epita.fr>
9918
9919 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
9920
99212001-11-23 Akim Demaille <akim@epita.fr>
9922
9923 * src/system.h: Include alloca.h.
9924 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
9925
99262001-11-23 Akim Demaille <akim@epita.fr>
9927
9928 * src/print_graph.c (print_actions): Remove `rule', unused.
9929 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
9930 pacify GCC's signed < unsigned warnings.
9931 * src/closure.c (itemsetsize): Likewise.
9932 * src/reader.c (symbol_list_new): Static.
9933
99342001-11-23 Akim Demaille <akim@epita.fr>
9935
9936 Attaching lineno to buckets is stupid, since only one copy of each
9937 symbol is kept, only the line of the first occurrence is kept too.
9938
9939 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
9940 * src/reader.c (rline_allocated): Remove, unused.
9941 (symbol_list): Have a `line' member.
9942 (symbol_list_new): New.
9943 (readgram): Use it.
9944 * src/print.c (print_grammar): Output the rule line numbers.
9945 * tests/regression.at (Solved SR Conflicts)
9946 (Unresolved SR Conflicts): Adjust.
9947 Reported by Hans Aberg.
9948
99492001-11-22 Marc Autret <autret_m@epita.fr>
9950
9951 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
9952
99532001-11-22 Marc Autret <autret_m@epita.fr>
9954
9955 * src/muscle_tab.c (muscle_init): Remove initialization of
9956 skeleton muscle.
9957 * src/output.c (output_master_parser): Do it here.
9958
99592001-11-20 Akim Demaille <akim@epita.fr>
9960
9961 * po/sv.po: New.
9962 * configure.in (ALL_LINGUAS): Adjust.
9963 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
9964 longer contains strings to translate.
9965
99662001-11-19 Akim Demaille <akim@epita.fr>
9967
9968 * src/conflicts.c (conflicts_print): Add a missing \n.
9969
99702001-11-19 Akim Demaille <akim@epita.fr>
9971
9972 * src/nullable.c (nullable_print): New.
9973 (set_nullable): Call it when tracing.
9974 Better locality of variables.
9975
99762001-11-19 Akim Demaille <akim@epita.fr>
9977
9978 * src/print.c (print_actions): Better locality of variables.
9979
99802001-11-19 Akim Demaille <akim@epita.fr>
9981
9982 * src/derives.c (print_derives): Fix and enrich.
9983 * src/closure.c (print_fderives): Likewise.
9984
99852001-11-19 Akim Demaille <akim@epita.fr>
9986
9987 * src/closure.c (itemsetend): Remove, replaced with...
9988 (itemsetsize): new.
9989
99902001-11-19 Akim Demaille <akim@epita.fr>
9991
9992 * src/LR0.c (kernel_end): Remove, replaced with...
9993 (kernel_size): new.
9994
99952001-11-19 Akim Demaille <akim@epita.fr>
9996
9997 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
9998 to clarify.
9999
100002001-11-19 Akim Demaille <akim@epita.fr>
10001
10002 * src/closure.c (closure): Use arrays instead of pointers to clarify.
10003
100042001-11-19 Akim Demaille <akim@epita.fr>
10005
10006 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
10007 trace messages.
10008 * src/LR0.c: Likewise.
10009 (allocate_itemsets): Use arrays instead of pointers to clarify.
10010
100112001-11-19 Akim Demaille <akim@epita.fr>
10012
10013 * src/getargs.c (statistics_flag): Replace with...
10014 (trace_flag): New.
10015 (longopts): Accept --trace instead of --statistics.
10016 * src/getargs.h, src/options.c: Adjust.
10017 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
10018 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
10019
100202001-11-19 Akim Demaille <akim@epita.fr>
10021
10022 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
10023 pointers to clarify the code.
10024 (save_reductions, save_shifts): Factor common parts of alternatives.
10025
100262001-11-19 Akim Demaille <akim@epita.fr>
10027
10028 * src/LR0.c (new_state, get_state): Complete TRACE code.
10029 * src/closure.c: Include `reader.h' to get `tags', needed by the
10030 trace code.
10031 Rename the conditional DEBUG as TRACE.
10032 Output consistently TRACEs to stderr, not stdout.
10033 * src/derives.c: Likewise.
10034 * src/reduce.c: (inaccessable_symbols): Using if is better style
10035 than goto.
10036 Use `#if TRACE' instead of `#if 0' for tracing code.
10037
100382001-11-19 Akim Demaille <akim@epita.fr>
10039
10040 * src/system.h (LIST_FREE, shortcpy): New.
10041 * src/LR0.c: Use them.
10042 * src/output.c (free_itemsets, free_reductions, free_shifts):
10043 Remove, replaced by LIST_FREE.
10044
100452001-11-19 Akim Demaille <akim@epita.fr>
10046
10047 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
10048 (REDUCTIONS_ALLOC): New.
10049 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
10050 allocation.
10051
100522001-11-19 Akim Demaille <akim@epita.fr>
10053
10054 * src/LR0.c (new_state): Complete trace code.
10055 * src/nullable.c (set_nullable): Don't translate traces.
10056
100572001-11-19 Akim Demaille <akim@epita.fr>
10058
10059 * src/print_graph.c (print_core): Better locality of variables.
10060 * src/print.c (print_core): Likewise.
10061
100622001-11-19 Akim Demaille <akim@epita.fr>
10063
10064 * src/vcg.c: You do the output, so you are responsible of the
10065 handling of VCG syntax, in particular: use quotearg.
10066 * src/print_graph.c: Don't.
10067 (print_actions): Don't output the actions as part of the nodes,
10068 since that's the job of the edges.
10069 (print_state): Don't output by hand: fill the node description,
10070 and ask for its output.
10071
100722001-11-19 Akim Demaille <akim@epita.fr>
10073
10074 * src/bison.simple (yyparse): When verbosely reporting an error,
10075 no longer put additional quotes around token names.
10076 * tests/calc.at: Adjust.
10077
100782001-11-19 Akim Demaille <akim@epita.fr>
10079
10080 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
10081 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
10082 * src/output.c: Adjust.
10083
100842001-11-19 Akim Demaille <akim@epita.fr>
10085
10086 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
10087 (rule_t): this.
10088 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
10089
100902001-11-19 Akim Demaille <akim@epita.fr>
10091
10092 * src/gram.h (rule_t): New.
10093 (rule_table): New.
10094 (rrhs, rlhs): Remove, part of state_t.
10095 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
10096 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
10097 * src/reader.c, src/reduce.c: Adjust.
10098
100992001-11-19 Akim Demaille <akim@epita.fr>
10100
10101 * src/reader.c (symbols_output): New, extracted from...
10102 (packsymbols): Here.
10103 (reader): Call it.
10104
101052001-11-19 Akim Demaille <akim@epita.fr>
10106
10107 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
10108 (maxrhs): this new function.
10109
101102001-11-19 Akim Demaille <akim@epita.fr>
10111
10112 * src/lalr.c (F): New macro to access the variable F.
10113 Adjust.
10114
101152001-11-19 Akim Demaille <akim@epita.fr>
10116
10117 * src/lalr.h (LA): New macro to access the variable LA.
10118 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
10119 * src/lalr.c: Adjust.
10120
101212001-11-19 Akim Demaille <akim@epita.fr>
10122
10123 * src/lalr.c (initialize_LA): Only initialize LA. Let...
10124 (set_state_table): handle the `lookaheads' members.
10125
101262001-11-19 Akim Demaille <akim@epita.fr>
10127
10128 * src/lalr.h (lookaheads): Removed array, whose contents is now
10129 a member of...
10130 (state_t): this structure.
10131 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
10132 Adjust.
10133
101342001-11-19 Akim Demaille <akim@epita.fr>
10135
10136 * src/lalr.h (consistent): Removed array, whose contents is now
10137 a member of...
10138 (state_t): this structure.
10139 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
10140 Adjust.
10141
101422001-11-19 Akim Demaille <akim@epita.fr>
10143
10144 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
10145 contents are now members of...
10146 (state_t): this structure.
10147 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
10148 Adjust.
10149
101502001-11-19 Akim Demaille <akim@epita.fr>
10151
10152 * src/lalr.h (state_t): New.
10153 (state_table): Be a state_t * instead of a core **.
10154 (accessing_symbol): Remove, part of state_t.
10155 * src/lalr.c: Adjust.
10156 (set_accessing_symbol): Merge into...
10157 (set_state_table): this.
10158 * src/print_graph.c, src/conflicts.c: Adjust.
10159
101602001-11-14 Akim Demaille <akim@epita.fr>
10161
10162 * tests/calc.at, tests/output.at, tests/regression.at,
10163 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
10164 now the tests are run in private dirs, therefore AC_CLEANUP and
10165 family can be simplified to 0-ary.
10166 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
10167 use abs. path to find config.h.
10168 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
10169 stderr, there can be way too much random noise.
10170 Instead pass -Werror to GCC and rely on the exit status.
10171 Reported by Wolfram Wagner.
10172
101732001-11-14 Akim Demaille <akim@epita.fr>
10174
10175 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
10176 defined only if yyoverflow is defined, to avoid `warning: unused
10177 variable `yyvs1''.
10178 Reported by The Test Suite.
10179
101802001-11-14 Akim Demaille <akim@epita.fr>
10181
10182 * src/print.c: Include reduce.h.
10183 Reported by Hans Aberg.
10184
101852001-11-14 Akim Demaille <akim@epita.fr>
10186
10187 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
10188 Revert a previous patch: these are really const.
10189 * src/conflicts.c (conflict_report): Additional useless pair of
10190 braces to pacify GCC's warnings for `if () if () {} else {}'.
10191 * src/lex.c (parse_percent_token): Replace equal_offset with
10192 arg_offset.
10193 arg is const.
10194 Be sure to strdup `arg' when used, since there is no reason for
10195 token_buffer not to change.
10196
101972001-11-14 Akim Demaille <akim@epita.fr>
10198
10199 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
10200 definition.
10201 * src/main.c (main): Use them.
10202 Suggested by Hans Aberg.
10203
102042001-11-12 Akim Demaille <akim@epita.fr>
10205
10206 * src/system.h (ngettext): Now that we use ngettext, be sure to
10207 provide a default definition when NLS are not used.
10208
102092001-11-12 Akim Demaille <akim@epita.fr>
10210
10211 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
10212 Use @kbd to denote user input.
10213 (Language and Grammar): ANSIfy the example.
10214 Adjust its layout for info/notinfo.
10215 (Location Tracking Calc): Output error messages to stderr.
10216 Output locations in a more GNUtically correct way.
10217 Fix a couple of Englishos.
10218 Adjust @group/@end group pairs.
10219
102202001-11-12 Akim Demaille <akim@epita.fr>
10221
10222 %expect was not functioning at all.
10223
10224 * src/conflicts.c (expected_conflicts): Set to -1.
10225 (conflict_report): Use ngettext.
10226 (conflicts_print): Check %expect and make its violation an error.
10227 * doc/bison.texinfo (Expect Decl): Adjust.
10228 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
10229 * tests/regression.at (%expect not enough, %expect right)
10230 (%expect too much): New.
10231
102322001-11-12 Akim Demaille <akim@epita.fr>
10233
10234 * tests/regression.at (Conflicts): Rename as...
10235 (Unresolved SR Conflicts): this.
10236 (Solved SR Conflicts): New.
10237
102382001-11-12 Akim Demaille <akim@epita.fr>
10239
10240 * src/reduce.c (print_results): Rename as...
10241 (reduce_output): This.
10242 Output to OUT, passed as argument, instead of output_obstack.
10243 (dump_grammar): Likewise.
10244 (reduce_free): New.
10245 Also free V1.
10246 (reduce_grammar): No longer call reduce_output, since...
10247 * src/print.c (print_results): do it.
10248 * src/main.c (main): Call reduce_free;
10249
102502001-11-12 Akim Demaille <akim@epita.fr>
10251
10252 * src/conflicts.c (print_reductions): Accept OUT as argument.
10253 Output to it, not to output_obstack.
10254 * src/print.c (print_actions): Adjust.
10255
102562001-11-12 Akim Demaille <akim@epita.fr>
10257
10258 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
10259 the result instead of using...
10260 (src_total, rrc_total, src_count, rrc_count): Remove.
10261 (any_conflicts): Remove.
10262 (print_conflicts): Split into...
10263 (conflicts_print, conflicts_output): New.
10264 * src/conflicts.h: Adjust.
10265 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
10266 * src/print.c (print_grammar): Issue `\n' between two rules.
10267 * tests/regression.at (Conflicts): New.
10268 Reported by Tom Lane.
10269
102702001-11-12 Akim Demaille <akim@epita.fr>
10271
10272 * tests/regression.at (Invalid input): Remove, duplicate with
10273 ``Invalid input: 1''.
10274
102752001-11-12 Akim Demaille <akim@epita.fr>
10276
10277 * tests/torture.at (AT_DATA_STACK_TORTURE)
10278 (Exploding the Stack Size with Alloca)
10279 (Exploding the Stack Size with Malloc): New.
10280
102812001-11-12 Akim Demaille <akim@epita.fr>
10282
10283 * src/bison.simple (YYSTACK_REALLOC): New.
10284 (yyparse) [!yyoverflow]: Use it and free the old stack.
10285 Reported by Per Allansson.
10286
102872001-11-12 Pascal Bart <pascal.bart@epita.fr>
10288
10289 * src/bison.simple: Define type yystype instead of YYSTYPE, and
10290 define CPP macro, which substitute YYSTYPE by yystype.
10291 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
10292 with yyltype/YYLTYPE. This allows inclusion of the generated
10293 header within the parser if the compiler, such as GGC, accepts
10294 multiple equivalent #defines.
10295 From Akim.
10296
102972001-11-05 Akim Demaille <akim@epita.fr>
10298
10299 * src/reader.c (symbols_output): New, extracted from...
10300 (packsymbols): here.
10301 (reader): Adjust.
10302
103032001-11-05 Akim Demaille <akim@epita.fr>
10304
10305 * src/lex.c (parse_percent_token): s/quotearg/quote/.
10306
103072001-11-05 Akim Demaille <akim@epita.fr>
10308
10309 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
10310 pattern.
10311
103122001-11-05 Akim Demaille <akim@epita.fr>
10313
10314 * src/options.h (struct option_table_struct): set_flags is void*.
10315 * src/options.c (longopts): Support `--output' and `%output'.
10316 (usage): Adjust.
10317 * src/lex.h (tok_setopt): Remove, replaced with...
10318 (tok_intopt, tok_stropt): these new guys.
10319 * src/lex.c (getopt.h): Not needed.
10320 (token_buffer, unlexed_token_buffer): Not const.
10321 (percent_table): Promote `-' over `_' in directive names.
10322 Active `%name-prefix', `file-prefix', and `output'.
10323 (parse_percent_token): Accept possible arguments to directives.
10324 Promote `-' over `_' in directive names.
10325
103262001-11-04 Akim Demaille <akim@epita.fr>
10327
10328 * doc/bison.texinfo (Decl Summary): Split the list into
10329 `directives for grammars' and `directives for bison'.
10330 Sort'em.
10331 Add description of `%name-prefix', `file-prefix', and `output'.
10332 Promote `-' over `_' in directive names.
10333 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
10334 Simplify the description of `--name-prefix'.
10335 Promote `-' over `_' in directive names.
10336 Promote `--output' over `--output-file'.
10337 Fix the description of `--defines'.
10338 * tests/output.at: Exercise %file-prefix and %output.
10339
103402001-11-02 Akim Demaille <akim@epita.fr>
10341
10342 * doc/refcard.tex: Update.
10343
103442001-11-02 Akim Demaille <akim@epita.fr>
10345
10346 * src/symtab.h (SUNDEF): New.
10347 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
10348 stand for `uninitialized', instead of 0.
10349 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
10350 * src/lex.c (lex): Adjust.
10351
10352 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
10353 Number it 0.
10354 Let yylex return it instead of a plain 0.
10355 Reported by Dick Streefland.
10356
103572001-11-02 Akim Demaille <akim@epita.fr>
10358
10359 * tests/regression.at (Mixing %token styles): New test.
10360
103612001-11-02 Akim Demaille <akim@epita.fr>
10362
10363 * src/reader.c (parse_thong_decl): Formatting changes.
10364 (token_translations_init): New, extracted from...
10365 (packsymbols): Here.
10366 Adjust.
10367
103682001-11-01 Akim Demaille <akim@epita.fr>
10369
10370 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
10371 Check that `9foo.y' produces correct cpp guards.
10372 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
10373 guards.
10374 Reported by Wwp.
10375
103762001-11-01 Akim Demaille <akim@epita.fr>
10377
10378 * tests/regression.at (Invalid input: 2): New.
10379 * src/lex.c (unlexed_token_buffer): New.
10380 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
10381 too.
10382 Reported by Wwp.
10383
103842001-11-01 Akim Demaille <akim@epita.fr>
10385
10386 * tests/calc.at: Catch up with 1.30.
10387 * configure.in: Bump to 1.49a.
10388 Adjust to newer Autotest.
10389
103902001-10-19 Pascal Bart <pascal.bart@epita.fr>
10391
10392 * src/conflicts.c: Move global variables rrc_total and src_total ...
10393 (print_conflicts): here.
10394 * src/output.c (output): Free global variable user_toknums.
10395 * src/lex.c (token_obstack): Become static.
10396
103972001-10-18 Akim Demaille <akim@epita.fr>
10398
10399 * tests/atlocal.in (GCC): Add.
10400 * tests/calc.at: s/m4_match/m4_bmatch/.
10401 s/m4_patsubst/m4_bpatsubst/.
10402 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
10403 * configure.in: AC_SUBST(GCC).
10404
104052001-10-14 Marc Autret <autret_m@epita.fr>
10406
10407 * src/options.c (create_long_option_table): Fix.
10408
104092001-10-10 Akim Demaille <akim@epita.fr>
10410
10411 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
10412
104132001-10-04 Akim Demaille <akim@epita.fr>
10414
10415 * src/reader.c (parse_union_decl): Push the caracters in
10416 union_obstack, not attrs_obstack.
10417
104182001-10-04 Akim Demaille <akim@epita.fr>
10419
10420 Merge in the branch 1.29.
10421
10422 * src/reader.c (packsymbols): Use a temporary obstack for
10423 `%%tokendef', since output_stack is already used elsewhere.
10424
10425 2001-10-02 Akim Demaille <akim@epita.fr>
10426
10427 Bump 1.29d.
10428
10429 2001-10-02 Akim Demaille <akim@epita.fr>
10430
10431 Version 1.29c.
10432
10433 2001-10-02 Akim Demaille <akim@epita.fr>
10434
10435 * tests/regression.at (Invalid CPP headers): New.
10436 From Alexander Belopolsky.
10437 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
10438
10439 2001-10-02 Akim Demaille <akim@epita.fr>
10440
10441 * tests/regression.at (Invalid input): New.
10442 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
10443 Reported by Shura.
10444
10445 2001-10-02 Akim Demaille <akim@epita.fr>
10446
10447 * tests/calc.at: Now that --debug works, the tests must be adjusted.
10448
10449 2001-10-02 Akim Demaille <akim@epita.fr>
10450
10451 * src/output.c (output_parser): Assert `skeleton'.
10452 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
10453 systems.
10454 From Shura.
10455
10456 2001-10-01 Marc Autret <autret_m@epita.fr>
10457
10458 * src/lex.h: Echo modifications.
10459 * src/lex.c (unlex): Parameter is now token_t.
10460 From Hans Aberg.
10461
10462 2001-10-01 Marc Autret <autret_m@epita.fr>
10463
10464 * src/main.c: Include lex.h.
10465 From Hans Aberg.
10466
10467 2001-09-29 Akim Demaille <akim@epita.fr>
10468
10469 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
10470
10471 2001-09-28 Akim Demaille <akim@epita.fr>
10472
10473 * tests/testsuite.at: Update to newer Autotest.
10474 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
10475
10476 2001-09-27 Akim Demaille <akim@epita.fr>
10477
10478 Position independent wrapper.
10479
10480 * tests/bison: Remove.
10481 * tests/bison.in: New.
10482 * configure.in: Adjust.
10483
10484 2001-09-27 Paul Eggert <eggert@twinsun.com>
10485
10486 Port quotearg fixes from tar 1.13.24.
10487
10488 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
10489 tm to be declared.
10490 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
10491 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
10492
10493 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
10494 * m4/mbrtowc.m4: New file.
10495 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
10496 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
10497
10498 2001-09-27 Akim Demaille <akim@epita.fr>
10499
10500 Bump to 1.29c.
10501
10502 2001-09-27 Akim Demaille <akim@epita.fr>
10503
10504 Version 1.29b.
10505
10506 2001-09-25 Akim Demaille <akim@epita.fr>
10507
10508 * src/system.h: Include `xalloc.h'.
10509 Remove it from the C files.
10510 * src/files.c (output_files): Free the obstacks.
10511 * src/lex.c (init_lex): Rename as...
10512 (lex_init): this.
10513 (lex_free): New.
10514 * src/main.c (main): Use it.
10515
10516 2001-09-24 Marc Autret <autret_m@epita.fr>
10517
10518 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
10519 to output informations in fout (FILE*).
10520 (open_graph, close_graph): Likewise.
10521 (output_graph, output_edge, output_node): Likewise.
10522 * src/vcg.h: Update function prototypes.
10523 * src/print_graph.c (print_graph): Open output graph file.
10524 (print_actions): Adjust.
10525 * src/files.h: Remove extern declaration.
10526 * src/files.c: Remove graph_obstack declaration.
10527 (open_files): Remove graph_obstack initialization.
10528 (output_files): Remove graph_obstack saving.
10529
10530 2001-09-24 Marc Autret <autret_m@epita.fr>
10531
10532 * src/files.c (compute_output_file_names): Fix.
10533
10534 2001-09-24 Marc Autret <autret_m@epita.fr>,
10535 Akim Demaille <akim@epita.fr>
10536
10537 * src/reader.c (reader): Remove call to free_symtab ().
10538 * src/main.c (main): Call it here.
10539 Include symtab.h.
10540 * src/conflicts.c (initialize_conflicts): Rename as...
10541 (solve_conflicts): this.
10542 * src/print.c (print_core, print_actions, print_state)
10543 (print_grammar): Dump to a file instead a `output_obstack'.
10544 (print_results): Dump `output_obstack', and then proceed with the
10545 FILE *.
10546 * src/files.c (compute_output_file_names, close_files): New.
10547 (output_files): Adjust.
10548 * src/main.c (main): Adjust.
10549
10550 2001-09-23 Marc Autret <autret_m@epita.fr>
10551
10552 * src/files.c (compute_header_macro): Computes header macro name
10553 from spec_defines_file when given.
10554
10555 2001-09-23 Marc Autret <autret_m@epita.fr>
10556
10557 * src/files.c (output_files): Add default extensions.
10558
10559 2001-09-22 Akim Demaille <akim@epita.fr>
10560
10561 * src/conflicts.c (finalize_conflicts): Rename as...
10562 (free_conflicts): this.
10563
10564 2001-09-22 Akim Demaille <akim@epita.fr>
10565
10566 * src/gram.c (gram_free): Rename back as...
10567 (dummy): this.
10568 (output_token_translations): Free `token_translations'.
10569 * src/symtab.c (free_symtab): Free the tag field.
10570
10571 2001-09-22 Akim Demaille <akim@epita.fr>
10572
10573 Remove `translations' as it is always set to true.
10574
10575 * src/gram.h: Adjust.
10576 * src/reader.c (packsymbols, parse_token_decl): Adjust
10577 * src/print.c (print_grammar): Adjust.
10578 * src/output.c (output_token_translations): Adjust.
10579 * src/lex.c (lex): Adjust.
10580 * src/gram.c: Be sure the set pointers to NULL.
10581 (dummy): Rename as...
10582 (gram_free): this.
10583
10584 2001-09-22 Akim Demaille <akim@epita.fr>
10585
10586 * configure.in: Invoke AM_LIB_DMALLOC.
10587 * src/system.h: Use dmalloc.
10588 * src/LR0.c: Be sure to have pointers initialized to NULL.
10589 (allocate_itemsets): Allocate kernel_items only if needed.
10590
10591 2001-09-22 Akim Demaille <akim@epita.fr>
10592
10593 * configure.in: Bump to 1.29b.
10594 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
10595 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
10596 need xmalloc.c in calc.y.
10597 From Pascal Bart.
10598
10599 2001-09-21 Akim Demaille <akim@epita.fr>
10600
10601 Version 1.29a.
10602 * Makefile.maint, config/config.guess, config/config.sub,
10603 * config/missing: Update from masters.
10604 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
10605 upon package.m4.
10606 * configure.in (ALL_LINGUAS): Add `tr'.
10607
10608 2001-09-21 Akim Demaille <akim@epita.fr>
10609
10610 * tests/Makefile.am (package.m4): Move to...
10611 ($(srcdir)/$(TESTSUITE)): here.
10612
10613 2001-09-20 Akim Demaille <akim@epita.fr>
10614
10615 * src/complain.c: No longer try to be standalone: use system.h.
10616 Don't assume __STDC__ is defined to 1. Just test if it is defined.
10617 * src/complain.h: Likewise.
10618 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
10619 Remove the unused variable `n'.
10620 From Albert Chin-A-Young.
10621
10622 2001-09-18 Marc Autret <autret_m@epita.fr>
10623
10624 * doc/bison.1: Update.
10625 * doc/bison.texinfo (Bison Options): Update --defines and --graph
10626 descriptions.
10627 (Option Cross Key): Update.
10628 Add --graph.
10629
10630 2001-09-18 Marc Autret <autret_m@epita.fr>
10631
10632 * tests/regression.at: New test (comment in %union).
10633
10634 2001-09-18 Marc Autret <autret_m@epita.fr>
10635
10636 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
10637 do that.
10638 Reported by Keith Browne.
10639
10640 2001-09-18 Marc Autret <autret_m@epita.fr>
10641
10642 * tests/output.at: Add tests for --defines and --graph.
10643
10644 2001-09-18 Marc Autret <autret_m@epita.fr>
10645
10646 * tests/output.at: Removes tests of %{header,src}_extension features.
10647
10648 2001-09-18 Akim Demaille <akim@epita.fr>
10649
10650 * tests/Makefile.am (package.m4): New.
10651 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
10652 (_AT_CHECK_CALC_ERROR): Likewise.
10653 Factor the `, ' part of verbose error messages.
10654
10655 2001-09-18 Marc Autret <autret_m@epita.fr>
10656
10657 * src/getargs.c (longopts): Declare --defines and --graph as options
10658 with optional arguments.
10659 * src/files.h: Add extern declarations.
10660 * src/files.c (spec_graph_file, spec_defines_file): New.
10661 (output_files): Update.
10662 Remove CPP-outed code.
10663
10664 2001-09-18 Marc Autret <autret_m@epita.fr>
10665
10666 Turn off %{source,header}_extension feature.
10667
10668 * src/files.c (compute_exts_from_gf): Update.
10669 (compute_exts_from_src): Update.
10670 (output_files): CPP-out useless code.
10671 * src/files.h: Remove {header,source}_extension extern declarations.
10672 * src/reader.c (parse_dquoted_param): CPP-out.
10673 (parse_header_extension_decl): Remove.
10674 (parse_source_extension_decl): Remove.
10675 (read_declarations): Remove cases tok_{hdrext,srcext}.
10676 * src/lex.c (percent_table): Remove {header,source}_extension entries.
10677 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
10678
10679 2001-09-10 Akim Demaille <akim@epita.fr>
10680
10681 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
10682 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
10683 (AT_CHECK_OUTPUT): this.
10684 Merely check ls' exit status, its output is useless.
10685
10686 2001-09-10 Akim Demaille <akim@epita.fr>
10687
10688 * tests/calc.at: Use m4_match.
10689 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
10690
10691 2001-09-10 Marc Autret <autret_m@epita.fr>,
10692 Akim Demaille <akim@epita.fr>
10693
10694 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
10695 enum color_e.
10696 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
10697 to `normal'.
10698 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
10699 * src/lex.h: Adjust prototype.
10700 (token_t): Add `tok_undef'.
10701 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
10702 (parse_percent_token): Now returns token_t.
10703 Add default statement in switch.
10704 (lex): Separate `c' as an input variable, from the token_t result
10705 part.
10706 (unlexed): Is a token_t.
10707
10708 2001-09-10 Akim Demaille <akim@epita.fr>
10709
10710 * configure.in: Bump to 1.29a.
10711
10712 2001-09-07 Akim Demaille <akim@epita.fr>
10713
10714 Version 1.29.
10715
10716 2001-08-30 Akim Demaille <akim@epita.fr>
10717
10718 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
10719 * m4/atconfig.m4: Remove.
10720 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
10721 * tests/bison: New.
10722 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
10723 m4_if, m4_patsubst, and m4_regexp.
10724 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
10725 `input' file instead of echo.
10726
10727 2001-08-29 Akim Demaille <akim@epita.fr>
10728
10729 Bump to 1.28e.
10730
10731 2001-08-29 Akim Demaille <akim@epita.fr>
10732
10733 Version 1.28d.
10734
10735 2001-08-29 Paul Eggert <eggert@twinsun.com>
10736
10737 * src/bison.simple (yyparse): Don't take the address of an
10738 item before the start of an array, as that doesn't conform to
10739 the C Standard.
10740
10741 2001-08-29 Robert Anisko <anisko_r@epita.fr>
10742
10743 * doc/bison.texinfo (Location Tracking Calc): New node.
10744
10745 2001-08-29 Paul Eggert <eggert@twinsun.com>
10746
10747 * src/output.c (output): Do not define const, as this now
10748 causes more problems than it cures.
10749
10750 2001-08-29 Akim Demaille <akim@epita.fr>
10751
10752 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
10753 the nodes.
10754 Be sure to tag the `detailmenu'.
10755
10756 2001-08-29 Akim Demaille <akim@epita.fr>
10757
10758 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
10759 download in a tmp dir.
10760
10761 2001-08-28 Marc Autret <autret_m@epita.fr>
10762
10763 * config/depcomp: New file.
10764
10765 2001-08-28 Marc Autret <autret_m@epita.fr>
10766
10767 * doc/bison.1 (mandoc): Adjust.
10768 From Juan Manuel Guerrero.
10769
10770 2001-08-28 Marc Autret <autret_m@epita.fr>
10771
10772 * src/print_graph.c (print_state): Fix.
10773
10774 2001-08-27 Marc Autret <autret_m@epita.fr>
10775
10776 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
10777 char * members.
10778 Echo modifications to the functions prototypes.
10779 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
10780
10781 2001-08-27 Marc Autret <autret_m@epita.fr>
10782
10783 * src/vcg.c: Include `xalloc.h'.
10784 (add_colorentry): New.
10785 (add_classname): New.
10786 (add_infoname): New.
10787 * src/vcg.h: Add new prototypes.
10788
10789 2001-08-27 Akim Demaille <akim@epita.fr>
10790
10791 * Makefile.maint: Sync. again with CVS Autoconf.
10792
10793 2001-08-27 Akim Demaille <akim@epita.fr>
10794
10795 * Makefile.maint: Formatting changes.
10796 (po-update, cvs-update, update): New targets.
10797 (AMTAR): Remove.
10798
10799 2001-08-27 Akim Demaille <akim@epita.fr>
10800
10801 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
10802 * Makefile.maint: Sync. with CVS Autoconf.
10803
10804 2001-08-27 Marc Autret <autret_m@epita.fr>
10805
10806 * src/vcg.h (struct infoname_s): New.
10807 (struct colorentry_s): New.
10808 (graph_s): New fields {vertical,horizontal}_order in structure.
10809 Add `infoname' field.
10810 Add `colorentry' field;
10811 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
10812 (G_HORIZONTAL_ORDER): New.
10813 (G_INFONAME): New.
10814 (G_COLORENTRY): New.
10815 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
10816 Add output of `infoname'.
10817 Add output of `colorentry'.
10818
10819 2001-08-27 Marc Autret <autret_m@epita.fr>
10820
10821 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
10822 This one shadowed a global parameter.
10823
10824 2001-08-24 Marc Autret <autret_m@epita.fr>
10825
10826 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
10827 instead of `unsigned'.
10828 (print_state): Do not call obstack_object_size () in obstack_grow ()
10829 to avoid macro variables shadowing.
10830
10831 2001-08-23 Marc Autret <autret_m@epita.fr>
10832
10833 * src/lex.c (percent_table): Typo: s/naem/name/.
10834 Add graph option.
10835 Normalize new options declarations.
10836
10837 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
10838
10839 * tests/suite.at: Exercise %header_extension and %source_extension.
10840
10841 2001-08-16 Marc Autret <autret_m@epita.fr>
10842
10843 * src/reader.c (parse_dquoted_param): New.
10844 (parse_header_extension_decl): Use it.
10845 (parse_source_extension_decl): Likewise.
10846
10847 2001-08-16 Marc Autret <autret_m@epita.fr>
10848
10849 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
10850 (get_xxxx_str): Use assert () instead of complain ().
10851 Remove return invokations in default cases.
10852 (get_decision_str): Modify default behaviour. Remove second argument.
10853 Echo modifications on calls.
10854 (output_graph): Fix.
10855
10856 2001-08-16 Marc Autret <autret_m@epita.fr>
10857
10858 * src/getargs.c (usage): Update with ``-g, --graph''.
10859
10860 2001-08-16 Marc Autret <autret_m@epita.fr>
10861
10862 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
10863 (Option Cross Key): Likewise.
10864 * doc/bison.1: Update.
10865
108662001-09-25 Pascal Bart <pascal.bart@epita.fr>
10867
10868 * src/output.c (output_master_parser): Don't finish action_obstack.
10869 (output_parser): Don't care about the muscle action, here.
10870 (prepare): Copy the action_obstack in the action muscle.
10871 (output): Free action_obstack.
10872
108732001-09-23 Pascal Bart <pascal.bart@epita.fr>
10874
10875 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
10876 will contain `%union' declaration.
10877 (parse_union_decl): Delete #line directive output.
10878 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
10879 informations about %union.
10880 (parse_union_decl): Copy the union_obstack in the muscle stype.
10881 * src/bison.simple: Add new #line directive.
10882 Add typdef %%stype YYSTYPE.
10883
108842001-09-23 Pascal Bart <pascal.bart@epita.fr>
10885
10886 * src/bison.simple: Add new `#line' directive.
10887
108882001-09-22 Pascal Bart <pascal.bart@epita.fr>
10889
10890 * src/bison.simple: New `#line' directive.
10891 * src/output.c (output_parser): Support new dynamic muscle input_line.
10892
108932001-09-22 Marc Autret <autret_m@epita.fr>
10894
10895 * src/output.c (output_master_parser): New.
10896 (output_parser): Be more re-entrant.
10897
108982001-09-21 Marc Autret <autret_m@epita.fr>
10899
10900 * src/reader.c (copy_definition, parse_union_decl): Update and use
10901 `linef' muscle.
10902 (copy_action): Likewise.
10903 Use obstack_1grow ().
10904 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
10905
109062001-09-21 Marc Autret <autret_m@epita.fr>
10907
10908 * src/options.c (option_table): Adjust.
10909 * src/lex.c (parse_percent_token): Fix.
10910
109112001-09-20 Pascal Bart <pascal.bart@epita.fr>
10912
10913 * src/options.c (symtab.h): Include it, need by lex.h.
10914
109152001-09-20 Pascal Bart <pascal.bart@epita.fr>
10916
10917 * src/lex.c (parse_percent_token): Change type of variable `tx', which
10918 is now an option_table_struct*.
10919 (option_strcmp): New function option_strcmp.
10920 (parse_percent_token): Call option_strcmp.
10921 * src/getargs.c (xalloc.h, options.h): Include it.
10922 (getargs): Call create_long_option_table.
10923 (getargs): Free longopts at the end of the function.
10924 (shortopts): Move in options.c.
10925 * src/options.c (create_long_option_table): New function. Convert
10926 information from option_table to option structure.
10927 * src/reader.c (options.h): Include it.
10928
10929 * src/Makefile.am: Adjust.
10930 * src/options.c (option_table): Create from longopts and percent_table.
10931 * src/getargs.c (longopts): Delete.
10932 * src/lex.c (struct percent_table_struct): Delete.
10933 (percent_table): Delete.
10934 (options.h): Include it.
10935 * src/options.c: Create.
10936 * src/options.h: Create.
10937 Declare enum opt_access_e.
10938 Define struct option_table_struct.
10939
109402001-09-20 Marc Autret <autret_m@epita.fr>
10941
10942 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
10943 sections of Bison.
10944
109452001-09-19 Pascal Bart <pascal.bart@epita.fr>
10946
10947 * src/bison.simple: s/%%filename/%%skeleton.
10948 * src/muscle_tab.c (getargs.h): Include it.
10949 (muscle_init): Insert new muscle skeleton.
10950
109512001-09-18 Pascal Bart <pascal.bart@epita.fr>
10952
10953 * src/output.c (output_parser): Delete unused variable actions_dumped.
10954
109552001-09-07 Pascal Bart <pascal.bart@epita.fr>
10956
10957 * src/output.c (output): Delete call to reader_output_yylsp.
10958 * src/reader.c (reader): Likewise.
10959 * src/reader.h: Delete declaration of reader_output_yylsp.
10960
109612001-09-02 Marc Autret <autret_m@epita.fr>
10962
10963 * src/reader.c: Include muscle_tab.h.
10964 (parse_union_decl): Update.
10965 (parse_macro_decl): Rename parse_muscle_decl.
10966 Update to use renamed functions and variable.
10967 (read_declarations, copy_action, read_additionnal_code, : Updated
10968 with correct variables and functions names.
10969 (packsymbols, reader): Likewise.
10970
10971 * src/reader.h (muscle_obstack): Extern declaration update.
10972
10973 * src/output.c: Include muscle_tab.h
10974 In all functions using macro_insert, change by using muscle_insert ().
10975 (macro_obstack): Rename muscle_obstack.
10976 Echo modifications in the whole file.
10977 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
10978 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
10979 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
10980
10981 * src/muscle_tab.h: Update double inclusion macros.
10982 (macro_entry_s): Rename muscle_entry_s.
10983 Update prototypes.
10984
10985 * src/muscle_tab.c: Include muscle_tab.h.
10986 Rename macro_tabble to muscle_table.
10987 (mhash1, mhash2, mcmp): Use muscle_entry.
10988 (macro_init): Rename muscle_init. Update.
10989 (macro_insert): Rename muscle_insert. Update.
10990 (macro_find): Rename muscle_find. Update.
10991
10992 * src/main.c: Include muscle_tab.h.
10993 (main): Call muscle_init ().
10994 * src/Makefile.am (bison_SOURCES): Echo modifications.
10995
109962001-09-02 Marc Autret <autret_m@epita.fr>
10997
10998 Now the files macro_tab.[ch] are named muscle_tab.[ch].
10999
11000 * src/muscle_tab.c, src/muscle_tab.h: Add files.
11001
110022001-09-02 Marc Autret <autret_m@epita.fr>
11003
11004 * src/macrotab.c, src/macrotab.h: Remove.
11005
110062001-09-01 Pascal Bart <pascal.bart@epita.fr>
11007
11008 * src/reader.c (copy_guard): Use muscle to specify the `#line'
11009 filename.
11010
110112001-09-01 Marc Autret <autret_m@epita.fr>
11012
11013 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
11014 to an explicit value to activate the feature. We do it here.
11015
110162001-08-31 Pascal Bart <pascal.bart@epita.fr>
11017
11018 * src/output.c (prepare): Delete the `filename' muscule insertion.
11019 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
11020 (parse_union_decl): Likewise.
11021 * src/macrotab.c (macro_init): Initialize filename by infile.
11022
110232001-08-31 Marc Autret <autret_m@epita.fr>
11024
11025 * src/bison.simple (YYLSP_NEEDED): New definition.
11026 * src/output.c (prepare): Add macro insertion of `locations_flag'
11027
110282001-08-31 Pascal Bart <pascal.bart@epita.fr>
11029
11030 * src/output.c (prepare): Delete insertion of previous muscles,
11031 and insert the `prefix' muscles.
11032 * src/macrotab.c (macro_init): Likewise.
11033 (macro_init): Initialization prefix directive by `yy'.
11034 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
11035 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
11036 yylval, yydebug, yyerror, yynerrs and yyparse.
11037 New directive `#define' to substitute yydebug, ... with option
11038 name_prefix.
11039
110402001-08-31 Pascal Bart <pascal.bart@epita.fr>
11041
11042 * src/main.c (main): Standardize.
11043 * src/output.c (output_table_data, output_parser): Likewise.
11044 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
11045
110462001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
11047
11048 * src/reader.c (read_additionnal_code): Rename %%user_code to
11049 %%epilogue.
11050 * src/output.c (output): Rename %%declarations to %%prologue.
11051 * src/bison.simple: Echo modifications.
11052
110532001-08-31 Marc Autret <autret_m@epita.fr>
11054
11055 * src/reader.c (readgram): CleanUp.
11056 (output_token_defines): Likewise.
11057 (packsymbols): Likewise.
11058 (reader): Likewise.
11059 * src/output.c (output): CPP-out useless code.
11060
110612001-08-31 Pascal Bart <pascal.bart@epita.fr>
11062
11063 * src/reader.c (reader): Delete obsolete call to function
11064 output_trailers and output_headers.
11065 * src/output.h: Remove obsolete functions prototypes of output_headers
11066 and output_trailers.
11067
110682001-08-30 Pascal Bart <pascal.bart@epita.fr>
11069
11070 * src/main.c: Include macrotab.h.
11071 * src/macrotab.h (macro_entry_s): Constify fields.
11072 Adjust functions prototypes.
11073 * src/macrotab.c (macro_insert): Constify key and value.
11074 (macro_find): Constify key.
11075 (macro_insert): Include 'xalloc.h'
11076 (macro_insert): Use XMALLOC.
11077 (macro_find): Constify return value.
11078 * src/output.c (output_table_data): Rename table to table_data.
11079 (output_parser): Constify macro_key, macro_value.
11080
110812001-08-30 Marc Autret <autret_m@epita.fr>
11082
11083 * src/reader.c (parse_skel_decl): New.
11084 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
11085 * src/lex.h (token_t): New token `tok_skel'.
11086 * src/lex.c (percent_table): Add skeleton option entry.
11087 Standardize.
11088
110892001-08-29 Marc Autret <autret_m@epita.fr>
11090
11091 * src/bison.simple: Add %%user_code directive at the end.
11092 * src/reader.c (read_additionnal_code): New.
11093 (reader): Use it.
11094 * src/output.c (output_program): Remove.
11095 (output): Update.
11096
110972001-08-28 Marc Autret <autret_m@epita.fr>
11098
11099 * src/output.c (output_actions): Clean up.
11100 (output_gram): CPP-out useless code.
11101 * src/reader.c (reader): Clean up, CPP-out useless code.
11102
111032001-08-28 Pascal Bart <pascal.bart@epita.fr>
11104
11105 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
11106 directive.
11107 * src/bison.simple: Add `%%definitions'.
11108
111092001-08-28 Marc Autret <autret_m@epita.fr>
11110
11111 * config/depcomp: New file.
11112
111132001-08-27 Paul Eggert <eggert@twinsun.com>
11114
11115 * src/bison.simple (yyparse): Don't take the address of an
11116 item before the start of an array, as that doesn't conform to
11117 the C Standard.
11118
111192001-08-27 Robert Anisko <robert.anisko@epita.fr>
11120
11121 * src/output.c (output): Remove the initialization of the macro
11122 obstack. It was done too late here.
11123
11124 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
11125 completely wrong.
11126 (reader): Initialize the macro obstack here, since we need it to grow
11127 '%define' directives.
11128
11129 * src/reader.h: Declare the macro obstack as extern.
11130
111312001-08-27 Robert Anisko <robert.anisko@epita.fr>
11132
11133 * src/output.c (output_parser): Fix. Store single '%' characters in
11134 the output obstack instead of throwing them away.
11135
111362001-08-27 Akim Demaille <akim@epita.fr>
11137
11138 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
11139
111402001-08-25 Robert Anisko <robert.anisko@epita.fr>
11141
11142 * lib/Makefile.am: Adjust.
11143
111442001-08-25 Robert Anisko <robert.anisko@epita.fr>
11145
11146 * src/bison.simple: Update and add '%%' directives.
11147
111482001-08-25 Robert Anisko <robert.anisko@epita.fr>
11149
11150 * src/reader.c (reader): Remove calls to 'output_headers' and
11151 'output_trailers'. Remove some C output.
11152 (readgram): Disable a piece of code that was writing a default
11153 definition for 'YYSTYPE'.
11154 (reader_output_yylsp): Remove.
11155 (packsymbols): Output token defintions to a macro.
11156 (copy_definition): Disable C output.
11157
11158 * src/reader.c (parse_macro_decl): New function used to parse macro
11159 declarations.
11160 (copy_string2): Put the body of copy_string into this new function.
11161 Add a parameter to let the caller choose whether he wants to copy the
11162 string delimiters or not.
11163 (copy_string): Be a simple call to copy_string2 with the last argument
11164 bound to true.
11165 (read_declarations): Add case for macro definition.
11166 (copy_identifier): New.
11167 (parse_macro_decl): Read macro identifiers using copy_identifier
11168 rather than lex.
11169
111702001-08-25 Robert Anisko <robert.anisko@epita.fr>
11171
11172 * src/output.c (prepare): Add prefixed names.
11173 (output_parser): Output semantic actions.
11174 (output_parser): Fix bug on '%%line' directives.
11175
11176 * src/output.c (output_headers): Remove. The C code printed by this
11177 function should now be in the skeletons.
11178 (output_trailers): Remove.
11179 (output): Disable call to 'reader_output_yylsp'.
11180 (output_rule_data): Do not output tables to the table obstack.
11181
11182 * src/output.c: Remove some C dedicated output.
11183 Improve the use of macro and output obstacks.
11184 (output_defines): Remove.
11185
11186 * src/output.c (output_token_translations): Associate 'translate'
11187 table with a macro. No output to the table obstack.
11188 (output_gram): Same for 'rhs' and 'prhs'.
11189 (output_stos): Same for 'stos'.
11190 (output_rule_data): Same for 'r1' and 'r2'.
11191 (token_actions): Same for 'defact'.
11192 (goto_actions): Same for 'defgoto'.
11193 (output_base): Same for 'pact' and 'pgoto'.
11194 (output_table): Same for 'table'.
11195 (output_check): Same for 'check'.
11196
11197 * src/output.c (output_table_data): New function.
11198 (output_short_table): Remove.
11199 (output_short_or_char_table): Remove.
11200
11201 * src/output.c (output_parser): Replace most of the skeleton copy code
11202 with something new. Skeletons are now processed character by character
11203 rather than line by line, and Bison looks for '%%' macros. This is the
11204 first step in making Bison's output process (a lot) more flexible.
11205 (output_parser): Use the macro table.
11206
112072001-08-25 Robert Anisko <robert.anisko@epita.fr>
11208
11209 * src/main.c (main): Initialize the macro table.
11210
112112001-08-25 Robert Anisko <robert.anisko@epita.fr>
11212
11213 * src/lex.c (percent_table): Add tok_define.
11214 * src/lex.h: Add tok_define.
11215
112162001-08-25 Robert Anisko <robert.anisko@epita.fr>
11217
11218 * src/macrotab.c: New file.
11219 * src/macrotab.h: New file.
11220 * src/Makefile.am: Update.
11221
112222001-08-25 Robert Anisko <robert.anisko@epita.fr>
11223
11224 * lib/hash.c: New file.
11225 * lib/hash.h: New file.
11226 * lib/Makefile.am: Update.
11227
112282001-08-15 Akim Demaille <akim@epita.fr>
11229
11230 Version 1.28c.
11231
112322001-08-15 Marc Autret <autret_m@epita.fr>
11233
11234 * src/reader.c (readgram): Indent output macro YYSTYPE.
11235 (packsymbols): Likewise.
11236 (output_token_defines): Likewise.
11237 * src/files.c: Standardize.
11238 (compute_header_macro): New.
11239 (defines_obstack_save): New. Use compute_header_macro.
11240 (output_files): Update. Use defines_obstack_save.
11241
112422001-08-15 Akim Demaille <akim@epita.fr>
11243
11244 * doc/bison.texinfo (Table of Symbols): Document
11245 YYSTACK_USE_ALLOCA.
11246
112472001-08-15 Akim Demaille <akim@epita.fr>
11248
11249 * missing: Update from CVS Automake.
11250 * config/config.guess, config/config.sub, config/texinfo.tex:
11251 Update from gnu.org.
11252
112532001-08-15 Akim Demaille <akim@epita.fr>
11254
11255 * Makefile.maint: Sync with CVS Autoconf.
11256
112572001-08-14 Pascal Bart <pascal.bart@epita.fr>
11258
11259 * doc/bison.texinfo: Include GNU Free Documentation License from
11260 `fdl.texi'.
11261 * doc/fdl.texi: Add to package.
11262
112632001-08-14 Marc Autret <autret_m@epita.fr>
11264
11265 Turn on %{source,header}_extension features.
11266
11267 * src/lex.c (percent_table): Un-CPP out header_extension and
11268 source_extension.
11269 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
11270 (compute_exts_from_src): Remove conditions. It restores priorities
11271 between options.
11272
112732001-08-14 Marc Autret <autret_m@epita.fr>
11274
11275 * src/files.c (compute_base_names): Add extensions computing when
11276 `--file-prefix' used.
11277 Standardize function calls.
11278
112792001-08-13 Marc Autret <autret_m@epita.fr>
11280
11281 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
11282 defining it (defined but null disables alloca).
11283
112842001-08-13 Marc Autret <autret_m@epita.fr>
11285
11286 * src/bison.simple (_yy_memcpy): CPP reformat.
11287
112882001-08-13 Pascal Bart <pascal.bart@epita.fr>
11289
11290 * tests/atconfig.in (CPPFLAGS): Fix.
11291
112922001-08-10 Pascal Bart <pascal.bart@epita.fr>
11293
11294 * doc/bison.texinfo: Include GNU General Public License from
11295 `gpl.texi'.
11296 * doc/gpl.texi: Add to package.
11297
112982001-08-10 Marc Autret <autret_m@epita.fr>
11299
11300 * src/print_graph.h: Fix.
11301 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
11302
113032001-08-10 Akim Demaille <akim@epita.fr>
11304
11305 * src/system.h: Provide default declarations for stpcpy, strndup,
11306 and strnlen.
11307
113082001-08-10 Robert Anisko <anisko_r@epita.fr>
11309
11310 * doc/bison.texinfo (Locations): Update @$ stuff.
11311
113122001-08-09 Robert Anisko <anisko_r@epita.fr>
11313
11314 * src/bison.simple (YYLLOC_DEFAULT): Update.
11315 (yyparse): Adjust.
11316
113172001-08-08 Marc Autret <autret_m@epita.fr>
11318
11319 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
11320 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
11321 Reported by Fabrice Bauzac.
11322
113232001-08-08 Marc Autret <autret_m@epita.fr>
11324
11325 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
11326 * src/vcg.c (output_node): Fix.
11327 * src/vcg.h: Cleanup.
11328 * src/print_graph.c: Add comments.
11329 (node_output_size): New global variable. Simplify the formatting of
11330 the VCG graph output.
11331 (print_actions): Unused code is now used. It notifies the final state
11332 and no action states in the VCG graph. It also give the reduce actions.
11333 The `shift and goto' edges are red and the `go to state' edges are
11334 blue.
11335 Get the current node name and node_obstack by argument.
11336 (node_obstack): New variable.
11337 (print_state): Manage node_obstack.
11338 (print_core): Use node_obstack given by argument.
11339 A node is not only computed here but in print_actions also.
11340 (print_graph): CPP out useless code instead of commenting it.
11341
113422001-08-07 Pascal Bart <pascal.bart@epita.fr>
11343
11344 * tests/atconfig.in (CPPFLAGS): Fix.
11345
113462001-08-07 Akim Demaille <akim@epita.fr>
11347
11348 * src/print_graph.c (quote): New.
11349 (print_core): Use it.
11350
113512001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
11352
11353 * src/vcg.c (complain.h): Include it.
11354 Unepitaize `return' invocations.
11355 [NDEBUG] (main): Remove.
11356 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
11357 * src/files.c (open_files): Initialize graph_obstack.
11358 * src/print_graph.c (print_actions): CPP out useless code.
11359 (print_core): Don't output the last `\n' in labels.
11360 Use `quote'.
11361 * src/files.c (output_files): Output the VCG file.
11362 * src/main.c (main): Invoke print_graph ();
11363
113642001-08-06 Marc Autret <autret_m@epita.fr>
11365
11366 Automaton VCG graph output.
11367 Using option ``-g'' or long option ``--graph'', you can generate
11368 a gram_filename.vcg file containing a VCG description of the LALR (1)
11369 automaton of your grammar.
11370
11371 * src/main.c: Call to print_graph() function.
11372 * src/getargs.h: Update.
11373 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
11374 (graph_flag): New flag.
11375 (longopts): Update.
11376 (getargs): Add case `g'.
11377 * src/files.c (graph_obstack): New obstack struct.
11378 (open_files): Initialize new obstack.
11379 (output_files): Saves graph_obstack if required.
11380 * src/files.h (graph_obstack): New extern declaration.
11381 * src/Makefile.am: Add new source files.
11382
113832001-08-06 Marc Autret <autret_m@epita.fr>
11384
11385 * src/print_graph.c, src/print_graph.h (graph): New.
11386 * src/vcg.h: New file.
11387 * src/vcg.c: New file, VCG graph handling.
11388
113892001-08-06 Marc Autret <autret_m@epita.fr>
11390
11391 Add of %source_extension and %header_extension which specify
11392 the source or/and the header output file extension.
11393
11394 * src/files.c (compute_base_names): Remove initialisation of
11395 src_extension and header_extension.
11396 (compute_exts_from_gf): Update.
11397 (compute_exts_from_src): Update.
11398 (output_files): Update.
11399 * src/reader.c (parse_header_extension_decl): New.
11400 (parse_source_extension_decl): New.
11401 (read_declarations): New case statements for the new tokens.
11402 * src/lex.c (percent_table): Add entries for %source_extension
11403 and %header_extension.
11404 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
11405
114062001-08-06 Marc Autret <autret_m@epita.fr>
11407
11408 * configure.in: Bump to 1.28c.
11409 * doc/bison.texinfo: Texinfo thingies.
11410
114112001-08-04 Pascal Bart <pascal.bart@epita.fr>
11412
11413 * tests/atconfig.in (CPPFLAGS): Add.
11414 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
11415
114162001-08-03 Akim Demaille <akim@epita.fr>
11417
11418 Version 1.28b.
11419
114202001-08-03 Akim Demaille <akim@epita.fr>
11421
11422 * tests/Makefile.am (check-local): Ship testsuite.
11423 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
11424 Include `string.h'.
11425
114262001-08-03 Akim Demaille <akim@epita.fr>
11427
11428 * configure.in: Try using -Wformat when compiling.
11429
114302001-08-03 Akim Demaille <akim@epita.fr>
11431
11432 * configure.in: Bump to 1.28b.
11433
114342001-08-03 Akim Demaille <akim@epita.fr>
11435
11436 * src/complain.c: Adjust strerror_r portability issues.
11437
114382001-08-03 Akim Demaille <akim@epita.fr>
11439
11440 Version 1.28a.
11441
114422001-08-03 Akim Demaille <akim@epita.fr>
11443
11444 * src/getargs.c, src/getarg.h (skeleton)): Constify.
11445 * src/lex.c (literalchar): Avoid name clashes on `buf'.
11446 * src/getargs.c: Include complain.h.
11447 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
11448 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
11449
114502001-08-03 Akim Demaille <akim@epita.fr>
11451
11452 * src/reader.c (readgram): Display hidden chars in error messages.
11453
114542001-08-03 Akim Demaille <akim@epita.fr>
11455
11456 Update to gettext 0.10.39.
11457
114582001-08-03 Akim Demaille <akim@epita.fr>
11459
11460 * lib/strspn.c: New.
11461
114622001-08-01 Marc Autret <autret_m@epita.fr>
11463
11464 * doc/bison.texinfo: Update.
11465 * doc/bison.1 (mandoc): Update.
11466 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
11467 * src/files.c: Support output files extensions computing.
11468 (src_extension): New static variable.
11469 (header_extension): New static variable.
11470 (tr): New function.
11471 (get_extension_index): New function, gets the index of an extension
11472 filename in a string.
11473 (compute_exts_from_gf): New function, computes extensions from the
11474 grammar file extension.
11475 (compute_exts_from_src): New functions, computes extensions from the
11476 C source file extension, file given by ``-o'' option.
11477 (compute_base_names): Update.
11478 (output_files): Update.
11479
114802001-08-01 Robert Anisko <anisko_r@epita.fr>
11481
11482 * doc/bison.texi: Document @$.
11483 (Locations): New section.
11484
114852001-07-18 Akim Demaille <akim@epita.fr>
11486
11487 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
11488 * config/prev-version.txt, config/move-if-change: New.
11489 * Makefile.am: Adjust.
11490
114912001-07-08 Pascal Bart <pascal.bart@epita.fr>
11492
11493 * src/bison.simple (yyparse): Suppress warning `comparaison
11494 between signed and unsigned'.
11495
114962001-07-05 Pascal Bart <pascal.bart@epita.fr>
11497
11498 * src/getargs.h (raw_flag): Remove.
11499 * src/getargs.c: Die on `-r'/`--raw'.
11500 * src/lex.c (parse_percent_token): Die on `%raw'.
11501 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
11502 * tests/calc.at: Suppress test with option `--raw'.
11503
115042001-07-14 Akim Demaille <akim@epita.fr>
11505
11506 * config/: New.
11507 * configure.in: Require Autoconf 2.50.
11508 Update to gettext 0.10.38.
11509
115102001-03-16 Akim Demaille <akim@epita.fr>
11511
11512 * doc/bison.texinfo: ANSIfy the examples.
11513
115142001-03-16 Akim Demaille <akim@epita.fr>
11515
11516 * getargs.c (skeleton): New variable.
11517 (longopts): --skeleton is a new option.
11518 (shortopts, getargs): -S is a new option.
11519 * getargs.h: Declare skeleton.
11520 * output.c (output_parser): Use it.
11521
115222001-03-16 Akim Demaille <akim@epita.fr>
11523
11524 * m4/strerror_r.m4: New.
11525 * m4/error.m4: Run AC_FUNC_STRERROR_R.
11526 * lib/error.h, lib/error.c: Update.
11527
115282001-03-16 Akim Demaille <akim@epita.fr>
11529
11530 * src/getargs.c (longopts): Clean up.
11531
115322001-02-21 Akim Demaille <akim@epita.fr>
11533
11534 * src/reader.c (gensym): `gensym_count' is your own.
11535 Use a static buf to create the symbol name, as token_buffer is no
11536 longer a buffer.
11537
115382001-02-08 Akim Demaille <akim@epita.fr>
11539
11540 * src/conflicts.c (conflict_report): Be sure not to append to res
11541 between two calls, which could happen if both first sprintf were
11542 skipped, but not the first cp += strlen.
11543
115442001-02-08 Akim Demaille <akim@epita.fr>
11545
11546 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
11547 New, from fileutils 4.0.37.
11548 * configure.in: Require Autoconf 2.49c. I took some time before
11549 making this decision. This is the only way out for portability
11550 issues in Bison, it would mean way too much duplicate effort to
11551 import in Bison features implemented in 2.49c since 2.13.
11552 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
11553
115542001-02-02 Akim Demaille <akim@epita.fr>
11555
11556 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
11557 * lib/xalloc.h, lib/xmalloc.c: Update.
11558
115592001-01-19 Akim Demaille <akim@epita.fr>
11560
11561 Get rid of the ad hoc handling of token_buffer in the scanner: use
11562 the obstacks.
11563
11564 * src/lex.c (token_obstack): New.
11565 (init_lex): Initialize it. No longer call...
11566 (grow_token_buffer): this. Remove it.
11567 Adjust all the places which used it to use the obstack.
11568
115692001-01-19 Akim Demaille <akim@epita.fr>
11570
11571 * src/lex.h: Rename all the tokens:
11572 s/\bENDFILE\b/tok_eof/g;
11573 s/\bIDENTIFIER\b/tok_identifier/g;
11574 etc.
11575 Let them be enums, not #define, to ease debugging.
11576 Adjust all the code.
11577
115782001-01-18 Akim Demaille <akim@epita.fr>
11579
11580 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
11581 * src/lex.c (maxtoken, grow_token_buffer): Static.
11582
115832001-01-18 Akim Demaille <akim@epita.fr>
11584
11585 Since we now use obstacks, more % directives can be enabled.
11586
11587 * src/lex.c (percent_table): Also accept `%yacc',
11588 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
11589 `%debug'.
11590 Handle the actions for `%semantic_parser' and `%pure_parser' here,
11591 instead of returning a token.
11592 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
11593 * src/reader.c (read_declarations): Adjust.
11594 * src/files.c (open_files): Don't call `compute_base_names', don't
11595 compute `attrsfile' since they depend upon data which might be
11596 *in* the input file now.
11597 (output_files): Do it here.
11598 * src/output.c (output_headers): Document the fact that this patch
11599 introduces a guaranteed SEGV for semantic parsers.
11600 * doc/bison.texinfo: Document them.
11601 * tests/suite.at: Exercise these %options.
11602
116032000-12-20 Akim Demaille <akim@epita.fr>
11604
11605 Also handle the output file (--verbose) with obstacks.
11606
11607 * files.c (foutput): Remove.
11608 (output_obstack): New.
11609 Adjust all dependencies.
11610 * src/conflicts.c: Return a string.
11611 * src/system.h (obstack_grow_string): Rename as...
11612 (obstack_sgrow): this. Be ready to work with non literals.
11613 (obstack_fgrow4): New.
11614
116152000-12-20 Akim Demaille <akim@epita.fr>
11616
11617 * src/files.c (open_files): Fix the computation of short_base_name
11618 in the case of `-o foo.tab.c'.
11619
116202000-12-20 Akim Demaille <akim@epita.fr>
11621
11622 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
11623 (copy_dollar): Now that everything uses obstacks, get rid of the
11624 FILE * parameters.
11625
116262000-12-20 Akim Demaille <akim@epita.fr>
11627
11628 * src/files.c (open_files): Actually the `.output' file is based
11629 on the short_base_name, not base_name.
11630 * tests/suite.at (Checking output file names): Adjust.
11631
116322000-12-20 Akim Demaille <akim@epita.fr>
11633
11634 * src/bison.s1: Remove, we now use directly...
11635 * src/bison.simple: this.
11636 * src/Makefile.am: Use pkgdata instead of data.
11637
116382000-12-20 Akim Demaille <akim@epita.fr>
11639
11640 * src/files.c (guard_obstack): New.
11641 (open_files): Initialize it.
11642 (output_files): Dump it...
11643 * src/files.h: Export it.
11644 * src/reader.c (copy_guard): Use it.
11645
116462000-12-19 Akim Demaille <akim@epita.fr>
11647
11648 * src/files.c (outfile, defsfile, actfile): Removed as global
11649 vars.
11650 (open_files): Don't compute them.
11651 (output_files): Adjust.
11652 (base_name, short_base_name): Be global.
11653 Adjust dependencies.
11654
116552000-12-19 Akim Demaille <akim@epita.fr>
11656
11657 * src/files.c (strsuffix): New.
11658 (stringappend): Be just like strcat but allocate.
11659 (base_names): Eve out from open_files.
11660 Try to simplify the rather hairy computation of base_name and
11661 short_base_name.
11662 (open_files): Use it.
11663 * tests/suite.at (Checking output file names): New test.
11664
116652000-12-19 Akim Demaille <akim@epita.fr>
11666
11667 * src/system.h (obstack_grow_literal_string): Rename as...
11668 (obstack_grow_string): this.
11669 * src/output.c (output_parser): Recognize `%% actions' instead of
11670 `$'.
11671 * src/bison.s1: s/$/%% actions/.
11672 * src/bison.hairy: Likewise.
11673
116742000-12-19 Akim Demaille <akim@epita.fr>
11675
11676 * src/output.c (output_parser): Compute the `#line' lines when
11677 there are.
11678 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
11679 Suggested by Hans Aberg.
11680
116812000-12-19 Akim Demaille <akim@epita.fr>
11682
11683 Let the handling of the skeleton files be local to the procedures
11684 that use it.
11685
11686 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
11687 longer static.
11688 (fparser, open_extra_files): Remove.
11689 (open_files, output_files): Don't take care of fparser.
11690 * src/files.h: Adjust.
11691 * src/output.c (output_parser): Open and close the file to the
11692 skeleton.
11693 * src/reader.c (read_declarations): When %semantic_parser, open
11694 fguard.
11695
116962000-12-19 Akim Demaille <akim@epita.fr>
11697
11698 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
11699 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
11700
117012000-12-19 Akim Demaille <akim@epita.fr>
11702
11703 * src/files.c (open_files): Yipee! We no longer need all the code
11704 looking for `/tmp' since we have no tmp file.
11705
117062000-12-19 Akim Demaille <akim@epita.fr>
11707
11708 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
11709 New macros.
11710 * src/files.c (open_files): Less dependency on MSDOS etc.
11711
117122000-12-14 Akim Demaille <akim@epita.fr>
11713
11714 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
11715 Provide a default definition.
11716 Use it when executing the default @ action.
11717 * src/reader.c (reader_output_yylsp): No longer include
11718 `timestamp' and `text' in the default YYLTYPE.
11719
117202000-12-12 Akim Demaille <akim@epita.fr>
11721
11722 * src/reader.c (copy_definition, parse_union_decl, copy_action)
11723 (copy_guard): Quote the file names.
11724 Reported by Laurent Mascherpa.
11725
117262000-12-12 Akim Demaille <akim@epita.fr>
11727
11728 * src/output.c (output_headers, output_program, output): Be sure
11729 to escape special characters when outputting filenames.
11730 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
11731 (output_headers): Don't depend on them, Use ACTSTR.
11732
117332000-11-17 Akim Demaille <akim@epita.fr>
11734
11735 * lib/obstack.h: Formatting changes.
11736 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
11737 prevents type checking.
11738 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
11739 cast the value to (void *): assigning a `foo *' to a `void *'
11740 variable is valid.
11741 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
11742 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
11743 append characters.
11744
117452000-11-17 Akim Demaille <akim@epita.fr>
11746
11747 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
11748 as...
11749 (suite.m4, regression.m4, calc.m4): these.
11750 * tests/atgeneral.m4: Update from CVS Autoconf.
11751
117522000-11-17 Akim Demaille <akim@epita.fr>
11753
11754 * tests/regression.m4 (%union and --defines): New test,
11755 demonstrating a current bug in the obstack implementation.
11756
117572000-11-17 Akim Demaille <akim@epita.fr>
11758
11759 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
11760 macros.
11761 Use them to declare the variables which are global or local to
11762 `yyparse'.
11763
117642000-11-17 Akim Demaille <akim@epita.fr>
11765
11766 * acconfig.h: Remove, no longer used.
11767
117682000-11-07 Akim Demaille <akim@epita.fr>
11769
11770 * src: s/Copyright (C)/Copyright/g.
11771
117722000-11-07 Akim Demaille <akim@epita.fr>
11773
11774 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
11775 defining.
11776 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
11777
117782000-11-07 Akim Demaille <akim@epita.fr>
11779
11780 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
11781 Merge in a single CPP if/else.
11782
117832000-11-07 Akim Demaille <akim@epita.fr>
11784
11785 * src/output.c (output): Remove useless variables.
11786 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
11787 argument `data' for consistency with the prototypes.
11788 Qualify it `const'.
11789 (obstack_copy, obstack_copy0): Rename the second argument as
11790 `address' for consistency. Qualify it `const'.
11791 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
11792 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
11793 `const' their input argument (`data' or `address').
11794 Adjust the corresponding macros to include `const' in casts.
11795
117962000-11-03 Akim Demaille <akim@epita.fr>
11797
11798 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
11799 s/PFILE1/BISON_HAIRY/.
11800 Adjust dependencies.
11801
118022000-11-03 Akim Demaille <akim@epita.fr>
11803
11804 For some reason, this was not applied.
11805
11806 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
11807 `unlink': it's no longer used.
11808
118092000-11-03 Akim Demaille <akim@epita.fr>
11810
11811 * src/files.c (skeleton_find): New function, eved out of...
11812 (open_files, open_extra_files): here.
11813
118142000-11-03 Akim Demaille <akim@epita.fr>
11815
11816 Don't use `atexit'.
11817
11818 * src/files.c (obstack_save): New function.
11819 (done): Rename as...
11820 (output_files): this.
11821 Use `obstack_save'.
11822 * src/main.c (main): Don't use `atexit' to register `done', since
11823 it no longer has to remove tmp files, just call `output_files'
11824 when there are no errors.
11825
118262000-11-02 Akim Demaille <akim@epita.fr>
11827
11828 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
11829 `unlink': it's no longer used.
11830 * src/files.h: Formatting changes.
11831
118322000-11-02 Akim Demaille <akim@epita.fr>
11833
11834 Remove the last uses of mktemp and unlink/delete.
11835
11836 * src/files.c (fdefines, ftable): Removed.
11837 (defines_ostack, table_obstack): New.
11838 Adjust dependencies of the former into uses of the latter.
11839 * src/output.c (output_short_or_char_table, output_short_table):
11840 Convert to using obstacks.
11841 * src/reader.c (copy_comment2): Accept one FILE * and two
11842 obstacks.
11843 (output_token_defines, reader_output_yylsp): Use obstacks.
11844 * src/system.h (obstack_fgrow3): New.
11845 * po/POTFILES.in: Adjust.
11846
118472000-11-01 Akim Demaille <akim@epita.fr>
11848
11849 Change each use of `fattrs' into a use of `attrs_obstack'.
11850
11851 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
11852 * src/files.c (fattrs): Remove.
11853 (attrs_obstack): New.
11854 Adjust all dependencies.
11855 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
11856
118572000-11-01 Akim Demaille <akim@epita.fr>
11858
11859 Introduce obstacks.
11860 Change each use of `faction' into a use of `action_obstack'.
11861
11862 * lib/obstack.h, lib/obstack.c: New files.
11863 * src/files.c (faction): Remove.
11864 (action_obstack): New.
11865 Adjust all dependencies.
11866
118672000-10-20 Akim Demaille <akim@epita.fr>
11868
11869 * lib/quote.h (PARAMS): New macro. Use it.
11870
118712000-10-16 Akim Demaille <akim@epita.fr>
11872
11873 * src/output.c (output_short_or_char_table): New function.
11874 (output_short_table, output_token_translations): Use it.
11875 (goto_actions): Use output_short_table.
11876
118772000-10-16 Akim Demaille <akim@epita.fr>
11878
11879 * src/symtab.c (bucket_new): New function.
11880 (getsym): Use it.
11881
11882 * src/output.c (output_short_table): New argument to display the
11883 comment associated with the table.
11884 Adjust dependencies.
11885 (output_gram): Use it.
11886 (output_rule_data): Nicer output layout for YYTNAME.
11887
118882000-10-16 Akim Demaille <akim@epita.fr>
11889
11890 * src/lex.c (read_typename): New function.
11891 (lex): Use it.
11892 * src/reader.c (copy_dollar): Likewise.
11893
118942000-10-16 Akim Demaille <akim@epita.fr>
11895
11896 * src/reader.c (copy_comment2): Expect the input stream to be on
11897 the `/' which is suspected to open a comment, instead of being
11898 called after `//' or `/*' was read.
11899 (copy_comment, copy_definition, parse_union_decl, copy_action)
11900 (copy_guard): Adjust.
11901
119022000-10-16 Akim Demaille <akim@epita.fr>
11903
11904 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
11905 `read_signed_integer'.
11906
119072000-10-16 Akim Demaille <akim@epita.fr>
11908
11909 * src/reader.c (copy_dollar): New function.
11910 (copy_guard, copy_action): Use it.
11911
119122000-10-16 Akim Demaille <akim@epita.fr>
11913
11914 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
11915 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
11916 New files, from Fileutils 4.0.27.
11917 * src/main.c (printable_version): Remove.
11918 * src/lex.c, src/reader.c: Use `quote'.
11919
119202000-10-04 Akim Demaille <akim@epita.fr>
11921
11922 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
11923
119242000-10-04 Akim Demaille <akim@epita.fr>
11925
11926 * doc/bison.texinfo: Various typos spotted by Neil Booth.
11927
119282000-10-04 Akim Demaille <akim@epita.fr>
11929
11930 When a literal string is used to define two different tokens,
11931 `bison -v' segfaults.
11932 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
11933
11934 * tests/regression.m4: New file.
11935 Include the core of the sample provided by Piotr Gackiewicz.
11936 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
11937 properly.
11938
119392000-10-04 Akim Demaille <akim@epita.fr>
11940
11941 * src/reader.c (parse_expect_decl): Keep `count' within the size
11942 of `buffer'.
11943 From Neil Booth.
11944
119452000-10-02 Paul Eggert <eggert@twinsun.com>
11946
11947 * bison.s1 (yyparse): Assign the default value
11948 unconditionally, to avoid a GCC warning and make the parser a
11949 tad smaller.
11950
119512000-10-02 Akim Demaille <akim@epita.fr>
11952
11953 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
11954 options.
11955
119562000-10-02 Akim Demaille <akim@epita.fr>
11957
11958 * src/derives.c, src/print.c, src/reduce.c: To ease the
11959 translation, move some `\n' out of the translated strings.
11960
119612000-10-02 Akim Demaille <akim@epita.fr>
11962
11963 The location tracking mechanism is precious for parse error
11964 messages. Nevertheless, it is enabled only when `@n' is used in
11965 the grammar, which is a different issue (you can use it in error
11966 message, but not in the grammar per se). Therefore, there should
11967 be another means to enable it.
11968
11969 * src/getargs.c (getargs): Support `--locations'.
11970 (usage): Report it.
11971 * src/getargs.h (locationsflag): Export it.
11972 * src/lex.c (percent_table): Support `%locations'.
11973 * src/reader.c (yylsp_needed): Remove this variable, now replaced
11974 with `locationsflag'.
11975 * doc/bison.texinfo: Document `--locations' and `%locations'.
11976 Sort the options.
11977 * tests/calc.m4: Test it.
11978
11979 For regularity of the names, replace each
11980 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
11981 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
11982 In addition replace each `flag' with `_flag'.
11983
119842000-10-02 Akim Demaille <akim@epita.fr>
11985
11986 Also test parse error messages, including with YYERROR_VERBOSE.
11987
11988 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
11989 associative).
11990 Use it to check the computations.
11991 Use it to check `nonassoc' is honored.
11992 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
11993 `--yyerror-verbose'.
11994 (_AT_CHECK_CALC): Adjust to this option.
11995 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
11996
119972000-10-02 Akim Demaille <akim@epita.fr>
11998
11999 Test also `--verbose', `--defines' and `--name-prefix'. Testing
12000 the latter demonstrates a flaw in the handling of non debugging
12001 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
12002 was used in order to simplify:
12003
12004 #if YYDEBUG
12005 if (yydebug)
12006 {
12007 ...
12008 }
12009 #endif
12010
12011 into
12012
12013 if (yydebug)
12014 {
12015 ...
12016 }
12017
12018 unfortunately this leads to a CPP conflict when
12019 `--name-prefix=foo' is used since it produces `#define yydebug
12020 foodebug'.
12021
12022 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
12023 (YYDPRINTF): New macro.
12024 Spread its use.
12025 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
12026 the bison options.
12027 Also test `--verbose', `--defines' and `--name-prefix'.
12028
120292000-10-02 Akim Demaille <akim@epita.fr>
12030
12031 Improve the readability of the produced parsers.
12032
12033 * src/bison.s1: Formatting changes.
12034 Improve the comment related to the `$' mark.
12035 (yydefault): Don't fall through to `yyresume': `goto' there.
12036 * src/output.c (output_parser): When the `$' is met, skip the end
12037 of its line.
12038 New variable, `number_of_dollar_signs', to check there's exactly
12039 one `$' in the parser skeleton.
12040
120412000-10-02 Akim Demaille <akim@epita.fr>
12042
12043 * lib/xstrdup.c: New file, from the fileutils.
12044 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
12045 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
12046 instead of strlen + xmalloc + strcpy.
12047 * src/symtab.c (copys): Remove, use xstrdup instead.
12048
120492000-10-02 Akim Demaille <akim@epita.fr>
12050
12051 * src/gram.h (associativity): New enum type which replaces the
12052 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
12053 `right_assoc', `left_assoc' and `non_assoc'.
12054 Adjust all dependencies.
12055 * src/reader.c: Formatting changes.
12056 (LTYPESTR): Don't define it, use it as a literal in
12057 `reader_output_yylsp'.
12058 * src/symtab.h (symbol_class): New enum type which replaces the
12059 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
12060 `sunknown', `stoken and `snterm'.
12061
120622000-10-02 Akim Demaille <akim@epita.fr>
12063
12064 * src/getargs.c (fixed_outfiles): Rename as...
12065 (yaccflag): for consistency and accuracy.
12066 Adjust dependencies.
12067
120682000-10-02 Akim Demaille <akim@epita.fr>
12069
12070 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
12071 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
12072 difficult and introduced a lot of core dump. It turns out that
12073 Bison used an implementation of `xmalloc' based on `calloc', and
12074 at various places it does depend upon the initialization to 0. I
12075 have not tried to isolate the pertinent places, and all the former
12076 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
12077 someone should address this issue.
12078
12079 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
12080 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
12081 files.
12082 Adjust dependencies.
12083 * src/warshall.h: New file.
12084 Propagate.
12085
120862000-10-02 Akim Demaille <akim@epita.fr>
12087
12088 Various anti-`extern in *.c' changes.
12089
12090 * src/system.h: Include `assert.h'.
12091
120922000-10-02 Akim Demaille <akim@epita.fr>
12093
12094 * src/state.h (nstates, final_state, first_state, first_shift)
12095 (first_reduction): Move their exportation from here...
12096 * src/LR0.h: to here.
12097 Adjust dependencies.
12098 * src/getargs.c (statisticsflag): New variable.
12099 Add support for `--statistics'.
12100 Adjust dependencies.
12101
12102 Remove a lot of now useless `extern' statements in most files.
12103
121042000-10-02 Akim Demaille <akim@epita.fr>
12105
12106 * src/LR0.h: New file.
12107 Propagate its use.
12108
121092000-10-02 Akim Demaille <akim@epita.fr>
12110
12111 * src/print.h: New file.
12112 Propagate its use.
12113 * src/print.c: Formatting and ordering changes.
12114 (verbose, terse): Replace with...
12115 (print_results): this new function.
12116 Adjust dependencies.
12117
121182000-10-02 Akim Demaille <akim@epita.fr>
12119
12120 * src/conflicts.c (conflict_report): New function.
12121 (conflict_log, verbose_conflict_log): Replace with...
12122 (print_conflicts): this function.
12123 Adjust dependencies.
12124 * src/conflicts.h: New file.
12125 Propagate its inclusion.
12126
121272000-10-02 Akim Demaille <akim@epita.fr>
12128
12129 * src/nullable.h: New file.
12130 Propagate its inclusion.
12131 * src/nullable.c: Formatting changes.
12132
121332000-10-02 Akim Demaille <akim@epita.fr>
12134
12135 * src/reduce.h: New file.
12136 Propagate its inclusion.
12137 * src/reduce.c: Topological sort and other formatting changes.
12138 (bool, TRUE, FALSE): Move their definition to...
12139 * src/system.h: here.
12140
121412000-10-02 Akim Demaille <akim@epita.fr>
12142
12143 * src/files.c: Formatting changes.
12144 (tryopen, tryclose, openfiles): Rename as...
12145 (xfopen, xfclose, open_files): this.
12146 (stringappend): static.
12147 * src/files.h: Complete the list of exported symbols.
12148 Propagate its use.
12149
121502000-10-02 Akim Demaille <akim@epita.fr>
12151
12152 * src/reader.h: New file.
12153 Propagate its use instead of tedious list of `extern' and
12154 prototypes.
12155 * src/reader.c: Formatting changes, topological sort,
12156 s/register//.
12157
121582000-10-02 Akim Demaille <akim@epita.fr>
12159
12160 * src/lex.h: Prototype `lex.c' exported functions.
12161 * src/reader.c: Adjust.
12162 * src/lex.c: Formatting changes.
12163 (safegetc): Rename as...
12164 (xgetc): this.
12165
121662000-10-02 Akim Demaille <akim@epita.fr>
12167
12168 * src/lalr.h: New file.
12169 Propagate its inclusion instead of prototypes and `extern'.
12170 * src/lalr.c: Formatting changes, topological sorting etc.
12171
121722000-10-02 Akim Demaille <akim@epita.fr>
12173
12174 * src/output.c (token_actions): Introduce a temporary array,
12175 YYDEFACT, that makes it possible for this function to use
12176 output_short_table.
12177
121782000-10-02 Akim Demaille <akim@epita.fr>
12179
12180 `user_toknums' is output as a `short[]' in `output.c', while it is
12181 defined as a `int[]' in `reader.c'. For consistency with the
12182 other output tables, `user_toknums' is now defined as a table of
12183 shorts.
12184
12185 * src/reader.c (user_toknums): Be a short table instead of an int
12186 table.
12187 Adjust dependencies.
12188
12189 Factor the short table outputs.
12190
12191 * src/output.c (output_short_table): New function.
12192 * src/output.c (output_gram, output_stos, output_rule_data)
12193 (output_base, output_table, output_check): Use it.
12194
121952000-10-02 Akim Demaille <akim@epita.fr>
12196
12197 * src/output.c (output): Topological sort of the functions, in
12198 order to get rid of the `static' prototypes.
12199 No longer use `register'.
12200 * src/output.h: New file.
12201 Propagate its inclusion in files explicitly prototyping functions
12202 from output.c.
12203
122042000-09-21 Akim Demaille <akim@epita.fr>
12205
12206 * src/atgeneral.m4: Update from Autoconf.
12207
122082000-09-21 Akim Demaille <akim@epita.fr>
12209
12210 * src/closure.h: New file.
12211 * src/closure.c: Formatting changes, topological sort over the
12212 functions, use of closure.h.
12213 (initialize_closure, finalize_closure): Rename as...
12214 (new_closure, free_closure): these. Adjust dependencies.
12215 * src/LR0.c: Formatting changes, topological sort, use of
12216 cloture.h.
12217 (initialize_states): Rename as...
12218 (new_states): this.
12219 * src/Makefile.am (noinst_HEADERS): Adjust.
12220
122212000-09-20 Akim Demaille <akim@epita.fr>
12222
12223 * src/acconfig.h: Don't protect config.h against multiple
12224 inclusion.
12225 Don't define PARAMS.
12226 * src/system.h: Define PARAMS.
12227 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
12228 purpose of config.h. system.h must not try to fix wrong
12229 definitions in config.h.
12230
122312000-09-20 Akim Demaille <akim@epita.fr>
12232
12233 * src/derives.h: New file.
12234 * src/main.c, src/derives.h: Use it.
12235 Formatting changes.
12236 * src/Makefile.am (noinst_HEADERS): Adjust.
12237
122382000-09-20 Akim Demaille <akim@epita.fr>
12239
12240 * tests/atgeneral.m4: Update from Autoconf.
12241 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
12242 (AT_CHECK_CALC): New macros.
12243 Use these macros to test bison with options `', `--raw',
12244 `--debug', `--yacc', `--yacc --debug'.
12245
122462000-09-19 Akim Demaille <akim@epita.fr>
12247
12248 * src/output.c: Formatting changes.
12249 * src/machine.h: Remove, leaving its contents in...
12250 * src/system.h: here.
12251 Include stdio.h.
12252 Adjust all dependencies on stdio.h and machine.h.
12253 * src/getargs.h: New file.
12254 Let all `extern' declarations about getargs.c be replaced with
12255 inclusion of `getargs.h'.
12256 * src/Makefile.am (noinst_HEADERS): Adjust.
12257
12258 * tests/calc.m4 (yyin): Be initialized in main, not on the global
12259 scope.
12260 (yyerror): Returns void, not int.
12261 * doc/bison.texinfo: Formatting changes.
12262
122632000-09-19 Akim Demaille <akim@epita.fr>
12264
12265 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
12266 portable.
12267
122682000-09-18 Akim Demaille <akim@epita.fr>
12269
12270 * configure.in: Append WARNING_CFLAGS to CFLAGS.
12271 * src/Makefile.am (INCLUDES): Don't.
12272 Be ready to fetch headers in lib/.
12273
122742000-09-18 Akim Demaille <akim@epita.fr>
12275
12276 * doc/bison.texinfo: Update the copyright.
12277 ANSIfy and GNUify the examples.
12278 Remove the old menu.
12279
122802000-09-18 Akim Demaille <akim@epita.fr>
12281
12282 First set of tests: use the `calc' example from the documentation.
12283
12284 * src/bison.s1 (yyparse): Condition the code using `yytname' which
12285 is defined only when YYDEBUG is.
12286 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
12287 * src/files.c (tryopen, tryclose): Formatting changes.
12288 Move to the top and be static.
12289 * src/reader.c (read_signed_integer): Likewise.
12290 * tests/calc.m4: New file.
12291 * Makefile.am, suite.m4: Adjust.
12292 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
12293
122942000-09-18 Akim Demaille <akim@epita.fr>
12295
12296 Add support for an Autotest test suite for Bison.
12297
12298 * m4/m4.m4, m4/atconfig.m4: New files.
12299 * m4/Makefile.am (EXTRA_DIST): Adjust.
12300 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
12301 files.
12302 * src/getargs.c: Display a more standard --version message.
12303 * src/reader.c (reader): Formatting changes.
12304 No longer depend upon VERSION_STRING.
12305 * configure.in: No longer use `dnl'.
12306 Set up the test suite and the new directory `tests/.
12307 (VERSION_STRING): Remove.
12308
123092000-04-14 Akim Demaille <akim@epita.fr>
12310
12311 * src/reader.c (copy_comment2): New function, same as former
12312 `copy_comment', but outputs into two FILE *.
12313 (copy_comment): Use it.
12314 (parse_union_decl): Use it.
12315 (get_type, parse_start_decl): Use the same `invalid' message.
12316 (parse_start_decl, parse_union_decl): Use the same `multiple'
12317 message.
12318 (parse_union_decl, copy_guard, copy_action): Use the same
12319 `unmatched' message.
12320 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
12321
123222000-03-31 Akim Demaille <akim@epita.fr>
12323
12324 * src/files.c (tryopen, tryclose): Move to the top.
12325 Be static.
12326
123272000-03-31 Akim Demaille <akim@epita.fr>
12328
12329 * src/main.c (main): Don't call `done', exit does it.
12330
123312000-03-31 Akim Demaille <akim@epita.fr>
12332
12333 * allocate.c: s/return (foo)/return foo/.
12334 * lalr.c: Likewise.
12335 * LR0.c: Likewise.
12336 * output.c: Likewise.
12337 * reader.c: Likewise.
12338 * symtab.c: Likewise.
12339 * vmsgetargs.c: Likewise.
12340
123412000-03-31 Akim Demaille <akim@epita.fr>
12342
12343 Clean up the error reporting functions.
12344
12345 * src/report.c: New file.
12346 * src/report.h: Likewise.
12347 * src/Makefile.am: Adjust.
12348 * m4/error.m4: New file.
12349 * m4/Makefile.am: Adjust.
12350 * configure.in (jm_PREREQ_ERROR): Call it.
12351 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
12352 Remove.
12353 (fatal, fatals): Remove. All callers use complain.c::fatal.
12354 (warn, warni, warns, warnss, warnss): Remove. All callers use
12355 complain.c::complain.
12356 (toomany): Remove, use fatal instead.
12357 * src/files.c (done): No argument, use complain_message_count.
12358 * src/main.c (main): Register `done' to `atexit'.
12359
12360 * src/getargs.c (usage): More `fputs', less `fprintf'.
12361
123622000-03-28 Akim Demaille <akim@epita.fr>
12363
12364 * lib/: New directory.
12365 * Makefile.am (SUBDIRS): Adjust.
12366 * configure.in: Adjust.
12367 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
12368 useless.
12369 * src/alloca.c: Moved to lib/.
12370 * src/getopt.c: Likewise.
12371 * src/getopt1.c: Likewise.
12372 * src/getopt.h: Likewise.
12373 * src/ansi2knr.c: Likewise.
12374 * src/ansi2knr.1: Likewise.
12375 * src/Makefile.am: Adjust.
12376 * lib/Makefile.am: New file.
12377
123782000-03-28 Akim Demaille <akim@epita.fr>
12379
12380 * src/getargs.c (usage): Refresh the help message.
12381
123822000-03-17 Akim Demaille <akim@epita.fr>
12383
12384 * src/getopt1.c: Updated from textutils 2.0e
12385 * src/getopt.c: Likewise.
12386 * src/getopt.h: Likewise.
12387
123882000-03-17 Akim Demaille <akim@epita.fr>
12389
12390 * src/Makefile.am (bison.simple): Fix the awk program: quote only
12391 the file name, not the whole `#line LINE FILE'.
12392
123932000-03-17 Akim Demaille <akim@epita.fr>
12394
12395 On syntax errors, report the token on which we choked.
12396
12397 * src/bison.s1 (yyparse): In the label yyerrlab, when
12398 YYERROR_VERBOSE, add yychar in msg.
12399
124002000-03-17 Akim Demaille <akim@epita.fr>
12401
12402 * src/reader.c (copy_at): New function.
12403 (copy_guard): Use it.
12404 (copy_action): Use it.
12405
124062000-03-17 Akim Demaille <akim@epita.fr>
12407
12408 Be kind to translators, save some useless translations.
12409
12410 * src/main.c (banner): New function.
12411 (fatal_banner): Use it.
12412 (warn_banner): Use it.
12413
124142000-03-17 Akim Demaille <akim@epita.fr>
12415
12416 * src/reader.c (copy_definition): Use copy_string and
12417 copy_comment. Removed now unused `match', `ended',
12418 `cplus_comment'.
12419 (copy_comment, copy_string): Moved, to be visible from
12420 copy_definition.
12421
124222000-03-17 Akim Demaille <akim@epita.fr>
12423
12424 * src/reader.c (copy_string): Declare `static inline'. No
12425 problems with inline, since it is checked by configure.
12426 (copy_comment): Likewise.
12427
124282000-03-17 Akim Demaille <akim@epita.fr>
12429
12430 * src/reader.c (packsymbols): Formatting changes.
12431
124322000-03-17 Akim Demaille <akim@epita.fr>
12433
12434 * src/reader.c (copy_comment): New function, factored out from:
12435 (copy_action): Use it. Removed now unused `match', `ended',
12436 `cplus_comment'.
12437 (copy_guard): Likewise.
12438
124392000-03-17 Akim Demaille <akim@epita.fr>
12440
12441 * src/reader.c (copy_string): New function, factored out from:
12442 (copy_action): Use it.
12443 (copy_guard): Likewise.
12444
124452000-03-17 Akim Demaille <akim@epita.fr>
12446
12447 Change the handling of @s so that they behave exactly like $s.
12448 There is now a pseudo variable @$ (readble and writable), location
12449 of the lhs of the rule (by default ranging from the location of
12450 the first symbol of the rhs, to the location of the last symbol,
12451 or, if the rhs is empty, YYLLOC).
12452
12453 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
12454 yyval.
12455 (yyparse): When providing a default semantic action, provide a
12456 default location action.
12457 (after the $): No longer change `*YYLSP', just stack YYLOC the
12458 same way you stack YYVAL.
12459 * src/reader.c (read_declarations): Use warns.
12460 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
12461 (copy_action, case '@'): Likewise.
12462 Use a standard error message, to save useless work from
12463 translators.
12464
124652000-03-17 Akim Demaille <akim@epita.fr>
12466
12467 * src/bison.s1: Formatting and cosmetics changes.
12468 * src/reader.c: Likewise.
12469 Update the Copyright notice.
12470
124712000-03-17 Akim Demaille <akim@epita.fr>
12472
12473 * src/bison.s1 (#line): All set to `#line' only, since the
12474 Makefile now handles them.
12475
124762000-03-16 Akim Demaille <akim@epita.fr>
12477
12478 * src/output.c (output_rule_data): Output the documentation of
12479 some of the tables.
12480 (Copyright notice): Update.
12481 Formatting changes.
12482
124832000-03-16 Akim Demaille <akim@epita.fr>
12484
12485 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
12486 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
12487 One `#if YYDEBUG' remains, since it uses variables which are
12488 defined only if `YYDEBUG != 0'.
12489
124902000-03-16 Akim Demaille <akim@epita.fr>
12491
12492 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
12493 and related variables so that the similarities are highlighted.
12494
124952000-03-16 Akim Demaille <akim@epita.fr>
12496
12497 * src/bison.s1: Properly indent CPP directives.
12498
124992000-03-16 Akim Demaille <akim@epita.fr>
12500
12501 * src/bison.s1: Properly indent the `alloca' CPP section.
12502
125032000-03-16 Akim Demaille <akim@epita.fr>
12504
12505 Do not hard code values of directories in `configure.in'.
12506 Update the `configure' tool chain.
12507
12508 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
12509 src/makefile.am.
12510 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
12511 (AC_OUTPUT): Add m4/Makefile.
12512 Bump to bison 1.28a, 1.29 has never been released.
12513 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
12514 handled via src/Makefile.am.
12515 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
12516 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
12517 autoheader.
12518 * Makefile.am (SUBDIRS): Add m4.
12519 (ACLOCAL_AM_FLAGS): New variable.
12520 (AUTOMAKE_OPTIONS): Add check-news.
12521 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
12522 the proper line number and file name.
12523 (DEFS): Propagate the location of bison library files and of the
12524 locale files.
12525 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
12526 builddir.
12527 * acinclude.m4: Remove, replaced by the directory m4.
12528 * m4/Makefile.am (EXTRA_DIST): New variable.
12529 * m4/gettext.m4: New file, from the fileutils.
12530 * m4/lcmessage.m4: Likewise
12531 * m4/progtest.m4: Likewise.
12532 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
12533
125342000-03-10 Akim Demaille <akim@epita.fr>
12535
12536 * src/closure.c:
12537 Formatting changes of various comments.
12538 Respect the GNU coding standards at various places.
12539 Don't use `_()' when no translation is needed.
12540
125411999-12-13 Jesse Thilo <jthilo@gnu.org>
12542
12543 * src/files.c:
12544 OS/2 honors TMPDIR environment variable.
12545
125461999-12-13 Jesse Thilo <jthilo@gnu.org>
12547
12548 * doc/bison.texinfo: Tweaked spelling and grammar.
12549 Updated ISBN.
12550 Removed reference to price of printed copy.
12551 Mention BISON_SIMPLE and BISON_HAIRY.
12552
125531999-12-13 Jesse Thilo <jthilo@gnu.org>
12554
12555 * configure.in, NEWS:
12556 Bison 1.29 released.
12557
125581999-10-27 Jesse Thilo <jthilo@gnu.org>
12559
12560 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
12561 Added reference card.
12562
125631999-07-26 Jesse Thilo <jthilo@gnu.org>
12564
12565 * po/ru.po: Added Russian translation.
12566
125671999-07-26 Jesse Thilo <jthilo@gnu.org>
12568
12569 * configure.in: Added Russian translation.
12570
125711999-07-06 Jesse Thilo <jthilo@gnu.org>
12572
12573 * configure.in, NEWS, README:
12574 Released version 1.28.
12575
125761999-06-14 Jesse Thilo <jthilo@gnu.org>
12577
12578 * src/system.h:
12579 Squashed redefinition warning on some systems.
12580
12581 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
12582 Have configure build version string instead of relying on ANSI string
12583 concatentation.
12584
125851999-06-14 Jesse Thilo <jthilo@gnu.org>
12586
12587 * po/POTFILES.in: Got rid of version.c.
12588
125891999-06-14 Jesse Thilo <jthilo@gnu.org>
12590
12591 * acconfig.h, configure.in:
12592 Have configure build version string instead of relying on ANSI string
12593 concatentation.
12594
125951999-06-08 Jesse Thilo <jthilo@gnu.org>
12596
12597 * doc/bison.1:
12598 Dropped mention of `+' for long-named options.
12599
126001999-05-30 Jesse Thilo <jthilo@gnu.org>
12601
12602 * src/files.c: Added <unistd.h> for unlink().
12603
12604 * src/Makefile.am, src/system.h:
12605 I18n fixes.
12606
126071999-05-30 Jesse Thilo <jthilo@gnu.org>
12608
12609 * README: Added a FAQ list.
12610
12611 * configure.in, acconfig.h:
12612 I18n fixes.
12613
126141999-05-30 Jesse Thilo <jthilo@gnu.org>
12615
12616 * doc/FAQ, doc/Makefile.am:
12617 Added a FAQ list.
12618
126191999-05-19 Jesse Thilo <jthilo@gnu.org>
12620
12621 * src/alloc.h, src/symtab.h, src/version.c:
12622 Protected inclusion of "config.h" with HAVE_CONFIG_H.
12623
126241999-04-18 Jesse Thilo <jthilo@gnu.org>
12625
12626 * src/.cvsignore, src/Makefile.am:
12627 Reorganized: sources in `src', documentation in `doc'.
12628
12629 * src/lex.c (literalchar):
12630 fixed the code for escaping double quotes (thanks
12631 Jonathan Czisny.)
12632
126331999-04-18 Jesse Thilo <jthilo@gnu.org>
12634
12635 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
12636 Adjusted paths to reflect directory reorganization.
12637
126381999-04-18 Jesse Thilo <jthilo@gnu.org>
12639
12640 * doc/.cvsignore, doc/Makefile.am:
12641 Reorganized: sources in `src', documentation in `doc'.
12642
126431999-04-18 Jesse Thilo <jthilo@gnu.org>
12644
12645 * configure.in:
12646 Updated AC_INIT file to reflect directory reorganization.
12647
12648 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
12649 Reorganized: sources in `src', documentation in `doc'.
12650
126511999-04-13 Jesse Thilo <jthilo@gnu.org>
12652
12653 * src/allocate.c:
12654 Don't declare calloc() and realloc() if not necessary.
12655
126561999-04-13 Jesse Thilo <jthilo@gnu.org>
12657
12658 * configure.in, acconfig.h, acinclude.m4:
12659 Don't declare calloc() and realloc() if not necessary.
12660
126611999-03-23 Jesse Thilo <jthilo@gnu.org>
12662
12663 * po/.cvsignore: Added i18n support.
12664
126651999-03-23 Jesse Thilo <jthilo@gnu.org>
12666
12667 * acconfig.h, configure.in, Makefile.am:
12668 Added i18n support.
12669
126701999-03-22 Jesse Thilo <jthilo@gnu.org>
12671
12672 * src/bison.s1: Fixed #line numbers.
12673
126741999-03-15 Jesse Thilo <jthilo@gnu.org>
12675
12676 * po/es.po, po/fr.po, po/nl.po, po/de.po:
12677 Added PO files from Translation Project.
12678
126791999-03-03 Jesse Thilo <jthilo@gnu.org>
12680
12681 * Makefile.am:
12682 Added support for non-ANSI compilers (ansi2knr).
12683
126841999-02-16 Jesse Thilo <jthilo@gnu.org>
12685
12686 * configure.in: Bumped version number to 1.27.
12687
12688 * Makefile.am:
12689 Added `bison.simple' to list of files removed by `make distclean'.
12690
126911999-02-12 Jesse Thilo <jthilo@gnu.org>
12692
12693 * src/files.c, src/files.h:
12694 Defined locations of parser files in config.h instead of Makefile.
12695
126961999-02-12 Jesse Thilo <jthilo@gnu.org>
12697
12698 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
12699 Defined locations of parser files in config.h instead of Makefile.
12700
127011999-02-09 Jesse Thilo <jthilo@gnu.org>
12702
12703 * Makefile.am:
12704 Removed inappropriate use of $< macro.
12705
127061999-02-05 Jesse Thilo <jthilo@gnu.org>
12707
12708 * po/Makefile.in.in, po/POTFILES.in:
12709 Add `po' directory skeleton.
12710
127111999-01-27 Jesse Thilo <jthilo@gnu.org>
12712
12713 * README: Document help-bison list.
12714
12715 * configure.in: Add check for mkstemp().
12716
127171999-01-20 Jesse Thilo <jthilo@gnu.org>
12718
12719 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
12720 Hush a few compiler warnings.
12721
12722 * src/files.c:
12723 Add tryclose(), which verifies that fclose was successful.
12724 Hush a couple of compiler warnings.
12725
127261999-01-20 Jesse Thilo <jthilo@gnu.org>
12727
12728 * Makefile.am, OChangeLog:
12729 ChangeLog is now automatically generated. Include the old version as
12730 OChangeLog.
12731
127321999-01-14 Jesse Thilo <jthilo@gnu.org>
12733
12734 * 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:
12735 Update FSF address.
12736
127371999-01-14 Jesse Thilo <jthilo@gnu.org>
12738
12739 * doc/bison.texinfo: Fix formatting glitch.
12740
12741 * doc/bison.texinfo: Update FSF address.
12742
127431999-01-14 Jesse Thilo <jthilo@gnu.org>
12744
12745 * acconfig.h: Update FSF address.
12746
127471999-01-08 Jesse Thilo <jthilo@gnu.org>
12748
12749 * src/system.h:
12750 Don't define PACKAGE here, since config.h defines it.
12751
127521998-12-30 Jesse Thilo <jthilo@gnu.org>
12753
12754 * src/reader.c: Update copyright date.
12755
12756 * src/main.c:
12757 Ditch sprintf to statically-sized buffers in fatal/warn functions in
12758 favor of output directly to stderr (avoids buffer overruns).
12759
12760 * src/reader.c: Some checks for premature EOF.
12761
12762 * 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:
12763 Use prototypes if the compiler understands them.
12764
12765 * src/files.c: Honor TMPDIR on Unix hosts.
12766 Use prototypes if the compiler understands them.
12767
12768 * src/reader.c:
12769 Fix a couple of buffer overrun bugs.
12770 Use prototypes if the compiler understands them.
12771
12772 * src/system.h: Include unistd.h and ctype.h.
12773 Use #ifdef instead of #if for NLS symbols.
12774
127751998-12-30 Jesse Thilo <jthilo@gnu.org>
12776
12777 * doc/bison.texinfo:
12778 Delete comment "consider using @set for edition number, etc..." since
12779 we now are doing so.
12780
127811998-12-30 Jesse Thilo <jthilo@gnu.org>
12782
12783 * configure.in:
12784 Use prototypes if the compiler understands them.
12785
12786 * NEWS: Document 1.26 highlights.
12787
12788 * Makefile.am: Require Automake 1.3 or later.
12789
12790 * acconfig.h:
12791 Use prototypes if the compiler understands them.
12792
127931998-12-29 Jesse Thilo <jthilo@gnu.org>
12794
12795 * src/version.c:
12796 Use VERSION symbol from automake for version number.
12797
127981998-12-29 Jesse Thilo <jthilo@gnu.org>
12799
12800 * acconfig.h, configure.in, version.cin:
12801 Use VERSION symbol from automake for version number.
12802
128031998-11-28 Jesse Thilo <jthilo@gnu.org>
12804
12805 * Makefile.am:
12806 Distribute original version of simple parser (bison.s1), not built
12807 version (bison.simple).
12808
128091998-11-28 Jesse Thilo <jthilo@gnu.org>
12810
12811 * doc/bison.texinfo: Add info dir entry.
12812
12813 * doc/bison.texinfo:
12814 Let automake put version number into documentation.
12815
128161998-11-26 Jesse Thilo <jthilo@gnu.org>
12817
12818 * src/bison.cld, src/build.com, src/vmshlp.mar:
12819 Add non-RCS files from /gd/gnu/bison.
12820
128211998-11-26 Jesse Thilo <jthilo@gnu.org>
12822
12823 * doc/bison.1:
12824 Document the BISON_HAIRY and BISON_SIMPLE variables.
12825
128261998-11-25 Jesse Thilo <jthilo@gnu.org>
12827
12828 * src/version.c: Build version.c automatically.
12829
12830 * src/reader.c:
12831 Fix token numbering (used to start at 258, not 257).
12832
12833 * src/system.h: Include config.h.
12834
12835 * src/getargs.c: Update bug report address.
12836
12837 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
12838 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
12839
128401998-11-25 Jesse Thilo <jthilo@gnu.org>
12841
12842 * Makefile.am:
12843 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
12844
12845 * configure.in, version.cin:
12846 Build version.c automatically.
12847
12848 * AUTHORS: Add AUTHORS file.
12849
12850 * README: Update bug report address.
12851
12852 * bison.simple:
12853 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
12854
12855 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
12856 Add automake stuff.
12857
128581998-11-25 Jesse Thilo <jthilo@gnu.org>
12859
12860 * doc/bison.texinfo: Clean up some formatting.
12861
128621998-05-05 Richard Stallman <rms@gnu.org>
12863
12864 * doc/bison.texinfo:
12865 Explain better why to make a pure parser.
12866
128671998-01-05 Richard Stallman <rms@gnu.org>
12868
12869 * src/files.c (openfiles):
12870 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
12871 find a temporary directory, if possible. Do not unlink files while
12872 they are open.
12873
128741997-08-25 Richard Stallman <rms@gnu.org>
12875
12876 * src/reader.c (stack_offset;):
12877 Change some warni to warns.
12878
12879 * src/lex.c (literalchar): Use warns, not warni.
12880
128811997-06-28 Richard Stallman <rms@gnu.org>
12882
12883 * src/bison.s1: Add a Bison version comment.
12884
12885 * src/main.c (fatal, warn, berror):
12886 Use program_name.
12887
128881997-06-28 Richard Stallman <rms@gnu.org>
12889
12890 * Makefile.in (bison_version): New variable.
12891 (dist): Use that variable.
12892 (bison.s1): Substitute the Bison version into bison.simple.
12893
12894 * bison.simple: Add a Bison version comment.
12895
128961997-06-18 Richard Stallman <rms@gnu.org>
12897
12898 * src/main.c (fatal, warn, berror):
12899 Make error messages standard.
12900 (toomany): Improve error message text.
12901
12902 * 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:
12903 new.h renamed to alloc.h.
12904
129051997-06-18 Richard Stallman <rms@gnu.org>
12906
12907 * Makefile.in: new.h renamed to alloc.h.
12908
129091997-05-24 Richard Stallman <rms@gnu.org>
12910
12911 * src/lex.c (literalchar):
12912 Fix the code for escaping \, " and '.
12913
12914 (lex): Avoid trouble when there are many chars
12915 to discard in a char literal with just several chars in it.
12916
129171997-05-17 Richard Stallman <rms@gnu.org>
12918
12919 * src/bison.s1:
12920 Use malloc, if using alloca is troublesome.
12921 (YYSTACK_USE_ALLOCA): New flag macro.
12922 Define it for some systems and compilers.
12923 (YYSTACK_ALLOC): New macro.
12924 (yyparse): Use YYSTACK_ALLOC to allocate stack.
12925 If it was malloc'd, free it.
12926
129271997-05-17 Richard Stallman <rms@gnu.org>
12928
12929 * bison.simple:
12930 Use malloc, if using alloca is troublesome.
12931 (YYSTACK_USE_ALLOCA): New flag macro.
12932 Define it for some systems and compilers.
12933 (YYSTACK_ALLOC): New macro.
12934 (yyparse): Use YYSTACK_ALLOC to allocate stack.
12935 If it was malloc'd, free it.
12936
129371997-04-23 Richard Stallman <rms@gnu.org>
12938
12939 * src/bison.s1:
12940 (alloca) [__hpux]: Always define as __builtin_alloca.
12941
129421997-04-23 Richard Stallman <rms@gnu.org>
12943
12944 * bison.simple:
12945 (alloca) [__hpux]: Always define as __builtin_alloca.
12946
129471997-04-22 Richard Stallman <rms@gnu.org>
12948
12949 * src/bison.s1:
12950 [__hpux]: Include alloca.h (right for HPUX 10)
12951 instead of declaring alloca (right for HPUX 9).
12952
12953 * src/bison.s1 (__yy_memcpy):
12954 Declare arg `count' as unsigned int.
12955 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
12956
129571997-04-22 Richard Stallman <rms@gnu.org>
12958
12959 * bison.simple:
12960 [__hpux]: Include alloca.h (right for HPUX 10)
12961 instead of declaring alloca (right for HPUX 9).
12962
12963 * bison.simple (__yy_memcpy):
12964 Declare arg `count' as unsigned int.
12965 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
12966
129671997-01-03 Richard Stallman <rms@gnu.org>
12968
12969 * src/allocate.c: [__STDC__ or _MSC_VER]:
12970 Declare calloc and realloc to return void *.
12971
129721997-01-02 Richard Stallman <rms@gnu.org>
12973
12974 * src/system.h:
12975 [_MSC_VER]: Include stdlib.h and process.h.
12976 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
12977
12978 * src/main.c (main): Return FAILURE as a value.
12979 (printable_version): Declare arg as int, not char.
12980
129811997-01-02 Richard Stallman <rms@gnu.org>
12982
12983 * Makefile.in (dist):
12984 Explicitly check for symlinks, and copy them.
12985
129861996-12-19 Richard Stallman <rms@gnu.org>
12987
12988 * src/files.c:
12989 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
12990
129911996-12-18 Paul Eggert <eggert@gnu.org>
12992
12993 * src/bison.s1 (yyparse):
12994 If __GNUC__ and YYPARSE_PARAM are both defined,
12995 declare yyparse to have a void * argument.
12996
129971996-12-18 Paul Eggert <eggert@gnu.org>
12998
12999 * bison.simple (yyparse):
13000 If __GNUC__ and YYPARSE_PARAM are both defined,
13001 declare yyparse to have a void * argument.
13002
130031996-12-17 Richard Stallman <rms@gnu.org>
13004
13005 * src/reduce.c (nbits): Add some casts.
13006
130071996-08-12 Richard Stallman <rms@gnu.org>
13008
13009 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
13010
130111996-08-12 Richard Stallman <rms@gnu.org>
13012
13013 * bison.simple: Test _MSDOS as well as _MSDOS_.
13014
130151996-07-31 Richard Stallman <rms@gnu.org>
13016
13017 * src/bison.s1:
13018 [__sun && __i386]: Include alloca.h.
13019
130201996-07-31 Richard Stallman <rms@gnu.org>
13021
13022 * bison.simple:
13023 [__sun && __i386]: Include alloca.h.
13024
130251996-07-30 Richard Stallman <rms@gnu.org>
13026
13027 * src/bison.s1: Comment change.
13028
13029 * src/bison.s1: Test _MSDOS_, not MSDOS.
13030
130311996-07-30 Richard Stallman <rms@gnu.org>
13032
13033 * bison.simple: Comment change.
13034
13035 * bison.simple: Test _MSDOS_, not MSDOS.
13036
130371996-06-01 Richard Stallman <rms@gnu.org>
13038
13039 * 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:
13040 Insert `_' macro around many string constants.
13041
13042 * src/main.c:
13043 Insert `_' macro around many string constants.
13044
13045 (main): Call setlocale, bindtextdomain and textdomain.
13046
13047 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
13048 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
13049 [ENABLE_NLS]: Include libintl.h.
13050 [ENABLE_NLS] (gettext): Define.
13051 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
13052 (N_, PACKAGE, LOCALEDIR): New macros.
13053
130541996-06-01 Richard Stallman <rms@gnu.org>
13055
13056 * POTFILES.in: New file.
13057
13058 * Makefile.in (allocate.o):
13059 Define target explicitly.
13060
13061 * Makefile.in (CFLAGS): Set to @CFLAGS@.
13062 (LDFLAGS): Set to @LDFLAGS@.
13063 (configure): Run autoconf only if preceding `cd' succeeds.
13064 (bison.s1): Redirect output to temporary file then move the
13065 temporary to the target, rather than redirecting directly to bison.s1.
13066 (clean): Remove config.status and config.log.
13067 (distclean): Don't remove config.status here.
13068
130691996-05-12 Richard Stallman <rms@gnu.org>
13070
13071 * src/bison.s1:
13072 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
13073
130741996-05-12 Richard Stallman <rms@gnu.org>
13075
13076 * bison.simple:
13077 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
13078
130791996-05-11 Richard Stallman <rms@gnu.org>
13080
13081 * src/bison.s1 (__yy_memcpy):
13082 Really reorder the args, as was supposedly done on Feb 14 1995.
13083 (yyparse): Calls changed accordingly.
13084
130851996-05-11 Richard Stallman <rms@gnu.org>
13086
13087 * Makefile.in (dist): Don't use $(srcdir).
13088
13089 * bison.simple (__yy_memcpy):
13090 Really reorder the args, as was supposedly done on Feb 14 1995.
13091 (yyparse): Calls changed accordingly.
13092
130931996-01-27 Richard Stallman <rms@gnu.org>
13094
13095 * src/output.c (output_rule_data):
13096 Test YYERROR_VERBOSE in the conditional
13097 around the definition of ttyname.
13098
130991995-12-29 Richard Stallman <rms@gnu.org>
13100
13101 * src/bison.s1:
13102 Fix line numbers in #line commands.
13103
131041995-12-29 Richard Stallman <rms@gnu.org>
13105
13106 * bison.simple:
13107 Fix line numbers in #line commands.
13108
131091995-12-27 Richard Stallman <rms@gnu.org>
13110
13111 * src/bison.s1 (YYPARSE_PARAM_DECL):
13112 In C++, make it always null.
13113 (YYPARSE_PARAM_ARG): New macro.
13114 (yyparse): Use YYPARSE_PARAM_ARG.
13115
131161995-12-27 Richard Stallman <rms@gnu.org>
13117
13118 * bison.simple (YYPARSE_PARAM_DECL):
13119 In C++, make it always null.
13120 (YYPARSE_PARAM_ARG): New macro.
13121 (yyparse): Use YYPARSE_PARAM_ARG.
13122
131231995-11-29 Richard Stallman <rms@gnu.org>
13124
13125 * doc/bison.texinfo:
13126 Describe literal string tokens, %raw, %no_lines, %token_table.
13127
131281995-11-29 Daniel Hagerty <hag@gnu.org>
13129
13130 * doc/bison.texinfo: Fixed update date
13131
131321995-10-16 Richard Stallman <rms@gnu.org>
13133
13134 * src/version.c: Version 1.25.
13135
131361995-10-16 Richard Stallman <rms@gnu.org>
13137
13138 * NEWS: *** empty log message ***
13139
131401995-10-16 Richard Stallman <rms@gnu.org>
13141
13142 * doc/bison.1, doc/bison.rnh:
13143 Add new options.
13144
131451995-10-15 Richard Stallman <rms@gnu.org>
13146
13147 * src/vmsgetargs.c, src/getargs.c:
13148 Added -n, -k, and -raw switches.
13149 (noparserflag, toknumflag, rawtoknumflag): New variables.
13150
13151 * src/symtab.h (SALIAS):
13152 New #define for adding aliases to %token.
13153 (struct bucket): Added `alias' field.
13154
13155 * src/reduce.c (reduce_grammar):
13156 Revise error message.
13157 (print_notices): Remove final `.' from error message.
13158
13159 * src/reader.c (reader_output_yylsp):
13160 New function.
13161 (readgram): Use `#if 0' around code that accepted %command
13162 inside grammar rules: The documentation doesn't allow it,
13163 and it will fail since the %command processors scan for the next %.
13164 (parse_token_decl): Extended the %token
13165 declaration to allow a multi-character symbol as an alias.
13166 (parse_thong_decl): New function.
13167 (read_declarations): Added %thong declarations.
13168 (read_declarations): Handle NOOP to deal with allowing
13169 % declarations as another means to specify the flags.
13170 (readgram): Allow %prec prior to semantics embedded in a rule.
13171 (skip_to_char, read_declarations, copy_definition)
13172 (parse_token_decl, parse_start_decl, parse_type_decl)
13173 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
13174 (get_type_name, copy_guard, copy_action, readgram)
13175 (get_type, packsymbols): Revised most error messages.
13176 Changed `fatal' to `warnxxx' to avoid aborting for error.
13177 Revised and use multiple warnxxx functions to avoid using VARARGS1.
13178 (read_declarations): Improve the error message for
13179 an invalid character. Do not abort.
13180 (read_declarations, copy_guard, copy_action): Use
13181 printable_version to avoid unprintable characters in printed output.
13182 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
13183 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
13184 Allow the type of a non-terminal can be given
13185 more than once, as long as all specifications give the same type.
13186
13187 * src/output.c:
13188 (output_headers, output_trailers, output, output_gram)
13189 (output_rule_data): Implement noparserflag variable.
13190 Implement toknumflag variable.
13191 (output): Call reader_output_yylsp to output LTYPESTR.
13192
13193 * src/main.c (main):
13194 If reader sees an error, don't process the grammar.
13195 (fatals): Updated to not use VARARGS1.
13196 (printable_version, int_to_string, warn, warni, warns, warnss)
13197 (warnsss): New error reporting functions. Avoid abort for error.
13198
13199 * src/lex.h:
13200 Added THONG and NOOP for alias processing.
13201 Added SETOPT for the new code that allows setting options with %flags.
13202
13203 * src/lex.c:
13204 Include getopt.h. Add some extern decls.
13205 (safegetc): New function to deal with EOF gracefully.
13206 (literalchar); new function to deal with reading \ escapes.
13207 (lex): Use literalchar.
13208 (lex): Implemented "..." tokens.
13209 (literalchar, lex, parse_percent_token): Made tokenbuffer
13210 always contain the token. This includes growing the token
13211 buffer while reading an integer.
13212 (parse_percent_token): Replaced if-else statement with percent_table.
13213 (parse_percent_token): Added % declarations as another
13214 way to specify the flags -n, -l, and -r. Also added hooks for
13215 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
13216 major changes to files.c.
13217 (lex) Retain in the incoming stream a character following
13218 an incorrect '/'.
13219 (skip_white_space, lex): Revised most error messages
13220 and changed fatal to warn to avoid aborting.
13221 (percent_table): Added %thong declarations.
13222
13223 * src/gram.h: Comment changes.
13224
13225 * src/files.c (openfiles, open_extra_files, done):
13226 Add faction flag
13227 and actfile file. Handle noparserflag. Both for -n switch.
13228
13229 * src/conflicts.c (resolve_sr_conflict):
13230 Remove use of alloca.
13231
132321995-06-01 Jim Meyering <meyering@gnu.org>
13233
13234 * doc/bison.texinfo: *** empty log message ***
13235
132361995-05-06 Richard Stallman <rms@gnu.org>
13237
13238 * src/bison.s1: Comment change.
13239
132401995-05-06 Richard Stallman <rms@gnu.org>
13241
13242 * bison.simple: Comment change.
13243
132441995-05-03 Richard Stallman <rms@gnu.org>
13245
13246 * src/version.c: Version now 1.24.
13247
13248 * src/bison.s1: Change distribution terms.
13249
13250 * src/version.c: Version now 1.23.
13251
132521995-05-03 Richard Stallman <rms@gnu.org>
13253
13254 * doc/bison.texinfo:
13255 Rewrite "Conditions for Using Bison".
13256 Update version to 1.24.
13257
132581995-05-03 Richard Stallman <rms@gnu.org>
13259
13260 * bison.simple: Change distribution terms.
13261
132621995-02-23 Richard Stallman <rms@gnu.org>
13263
13264 * src/files.c: Test __VMS_POSIX as well as VMS.
13265
132661995-02-14 Jim Meyering <meyering@gnu.org>
13267
13268 * src/bison.s1 (__yy_memcpy):
13269 Renamed from __yy_bcopy to avoid
13270 confusion. Reverse FROM and TO arguments to be consistent with
13271 those of memcpy.
13272
132731995-02-14 Jim Meyering <meyering@gnu.org>
13274
13275 * bison.simple (__yy_memcpy):
13276 Renamed from __yy_bcopy to avoid
13277 confusion. Reverse FROM and TO arguments to be consistent with
13278 those of memcpy.
13279
132801994-11-10 David J. MacKenzie <djm@gnu.org>
13281
13282 * NEWS: reformat
13283
13284 * NEWS: New file.
13285
13286 * Makefile.in (DISTFILES): Include NEWS.
13287
13288 * Makefile.in (DISTFILES):
13289 Include install-sh, not install.sh.
13290
13291 * configure.in: Update to Autoconf v2 macro names.
13292
132931994-10-05 David J. MacKenzie <djm@gnu.org>
13294
13295 * Makefile.in: fix typo
13296
13297 * Makefile.in (prefix, exec_prefix):
13298 Let configure set them.
13299
133001994-09-28 David J. MacKenzie <djm@gnu.org>
13301
13302 * Makefile.in: Set datadir to $(prefix)/share.
13303
133041994-09-15 Richard Stallman <rms@gnu.org>
13305
13306 * src/bison.s1:
13307 Update copyright notice and GPL version.
13308
133091994-09-15 Richard Stallman <rms@gnu.org>
13310
13311 * bison.simple:
13312 Update copyright notice and GPL version.
13313
133141994-07-12 Richard Stallman <rms@gnu.org>
13315
13316 * src/reduce.c, src/reader.c:
13317 entered into RCS
13318
133191994-05-05 David J. MacKenzie <djm@gnu.org>
13320
13321 * Makefile.in: entered into RCS
13322
133231994-03-26 Richard Stallman <rms@gnu.org>
13324
13325 * src/bison.s1: entered into RCS
13326
133271994-03-26 Richard Stallman <rms@gnu.org>
13328
13329 * bison.simple: entered into RCS
13330
133311994-03-25 Richard Stallman <rms@gnu.org>
13332
13333 * src/main.c: entered into RCS
13334
133351994-03-24 Richard Stallman <rms@gnu.org>
13336
13337 * src/conflicts.c: entered into RCS
13338
133391994-01-02 Richard Stallman <rms@gnu.org>
13340
13341 * Makefile.in: *** empty log message ***
13342
133431993-11-21 Richard Stallman <rms@gnu.org>
13344
13345 * src/bison.s1: *** empty log message ***
13346
133471993-11-21 Richard Stallman <rms@gnu.org>
13348
13349 * doc/bison.texinfo: entered into RCS
13350
13351 * doc/bison.texinfo: *** empty log message ***
13352
133531993-11-21 Richard Stallman <rms@gnu.org>
13354
13355 * bison.simple: *** empty log message ***
13356
133571993-10-25 David J. MacKenzie <djm@gnu.org>
13358
13359 * doc/bison.texinfo: *** empty log message ***
13360
133611993-10-19 Richard Stallman <rms@gnu.org>
13362
13363 * src/bison.s1: *** empty log message ***
13364
133651993-10-19 Richard Stallman <rms@gnu.org>
13366
13367 * bison.simple: *** empty log message ***
13368
133691993-10-14 Richard Stallman <rms@gnu.org>
13370
13371 * src/bison.s1: *** empty log message ***
13372
133731993-10-14 Richard Stallman <rms@gnu.org>
13374
13375 * bison.simple: *** empty log message ***
13376
133771993-09-14 David J. MacKenzie <djm@gnu.org>
13378
13379 * doc/bison.texinfo: *** empty log message ***
13380
133811993-09-13 Noah Friedman <friedman@gnu.org>
13382
13383 * Makefile.in: *** empty log message ***
13384
133851993-09-10 Richard Stallman <rms@gnu.org>
13386
13387 * src/conflicts.c: *** empty log message ***
13388
13389 * src/system.h: entered into RCS
13390
133911993-09-10 Richard Stallman <rms@gnu.org>
13392
13393 * doc/bison.1: entered into RCS
13394
133951993-09-06 Noah Friedman <friedman@gnu.org>
13396
13397 * src/version.c: entered into RCS
13398
133991993-09-06 Noah Friedman <friedman@gnu.org>
13400
13401 * Makefile.in: *** empty log message ***
13402
134031993-07-30 David J. MacKenzie <djm@gnu.org>
13404
13405 * Makefile.in: *** empty log message ***
13406
134071993-07-24 Richard Stallman <rms@gnu.org>
13408
13409 * src/bison.s1: *** empty log message ***
13410
134111993-07-24 Richard Stallman <rms@gnu.org>
13412
13413 * bison.simple: *** empty log message ***
13414
134151993-07-08 David J. MacKenzie <djm@gnu.org>
13416
13417 * Makefile.in: *** empty log message ***
13418
134191993-07-04 Richard Stallman <rms@gnu.org>
13420
13421 * src/bison.s1: *** empty log message ***
13422
134231993-07-04 Richard Stallman <rms@gnu.org>
13424
13425 * bison.simple: *** empty log message ***
13426
134271993-06-26 David J. MacKenzie <djm@gnu.org>
13428
13429 * src/getargs.c: entered into RCS
13430
134311993-06-26 David J. MacKenzie <djm@gnu.org>
13432
13433 * doc/bison.texinfo: *** empty log message ***
13434
13435 * doc/bison.1: New file.
13436
134371993-06-25 Richard Stallman <rms@gnu.org>
13438
13439 * src/getargs.c: New file.
13440
134411993-06-16 Richard Stallman <rms@gnu.org>
13442
13443 * src/bison.s1: *** empty log message ***
13444
134451993-06-16 Richard Stallman <rms@gnu.org>
13446
13447 * bison.simple: *** empty log message ***
13448
134491993-06-03 Richard Stallman <rms@gnu.org>
13450
13451 * src/bison.s1: New file.
13452
134531993-06-03 Richard Stallman <rms@gnu.org>
13454
13455 * doc/bison.texinfo: *** empty log message ***
13456
134571993-06-03 Richard Stallman <rms@gnu.org>
13458
13459 * bison.simple: New file.
13460
134611993-05-19 Richard Stallman <rms@gnu.org>
13462
13463 * doc/bison.texinfo: New file.
13464
134651993-05-07 Noah Friedman <friedman@gnu.org>
13466
13467 * Makefile.in: *** empty log message ***
13468
134691993-04-28 Noah Friedman <friedman@gnu.org>
13470
13471 * src/reader.c: *** empty log message ***
13472
134731993-04-23 Noah Friedman <friedman@gnu.org>
13474
13475 * src/alloc.h: entered into RCS
13476
134771993-04-20 David J. MacKenzie <djm@gnu.org>
13478
13479 * src/version.c: *** empty log message ***
13480
13481 * src/files.c, src/allocate.c:
13482 entered into RCS
13483
13484 * src/reader.c: *** empty log message ***
13485
13486 * src/lex.c: entered into RCS
13487
13488 * src/conflicts.c: New file.
13489
13490 * src/symtab.c: entered into RCS
13491
13492 * src/alloc.h: New file.
13493
13494 * src/LR0.c: entered into RCS
13495
134961993-04-18 Noah Friedman <friedman@gnu.org>
13497
13498 * src/reader.c: New file.
13499
13500 * src/version.c: *** empty log message ***
13501
135021993-04-18 Noah Friedman <friedman@gnu.org>
13503
13504 * Makefile.in: *** empty log message ***
13505
135061993-04-17 Noah Friedman <friedman@gnu.org>
13507
13508 * Makefile.in: *** empty log message ***
13509
135101993-04-15 Richard Stallman <rms@gnu.org>
13511
13512 * src/main.c, src/files.c:
13513 New file.
13514
135151993-04-15 Noah Friedman <friedman@gnu.org>
13516
13517 * configure.in: entered into RCS
13518
13519 * configure.in: *** empty log message ***
13520
13521 * configure.in: New file.
13522
135231993-04-14 Richard Stallman <rms@gnu.org>
13524
13525 * Makefile.in: New file.
13526
135271993-04-13 Richard Stallman <rms@gnu.org>
13528
13529 * src/version.c: New file.
13530
135311993-03-25 Richard Stallman <rms@gnu.org>
13532
13533 * src/output.c: entered into RCS
13534
135351992-09-25 Richard Stallman <rms@gnu.org>
13536
13537 * configure.bat: entered into RCS
13538
135391992-06-22 Richard Stallman <rms@gnu.org>
13540
13541 * src/vmsgetargs.c: entered into RCS
13542
135431992-06-22 Richard Stallman <rms@gnu.org>
13544
13545 * doc/bison.rnh: entered into RCS
13546
135471992-04-20 David J. MacKenzie <djm@gnu.org>
13548
13549 * README: entered into RCS
13550
135511992-01-22 Richard Stallman <rms@gnu.org>
13552
13553 * src/machine.h: entered into RCS
13554
135551991-12-21 Richard Stallman <rms@gnu.org>
13556
13557 * src/lalr.c, src/closure.c:
13558 entered into RCS
13559
135601991-12-20 Richard Stallman <rms@gnu.org>
13561
13562 * src/state.h: entered into RCS
13563
135641991-12-18 Richard Stallman <rms@gnu.org>
13565
13566 * src/print.c, src/nullable.c, src/derives.c:
13567 entered into RCS
13568
135691991-11-03 David J. MacKenzie <djm@gnu.org>
13570
13571 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
13572 entered into RCS
13573
135741988-09-09 Richard Stallman <rms@gnu.org>
13575
13576 * src/bison.hairy: entered into RCS
13577
135781987-12-16 Richard Stallman <rms@gnu.org>
13579
13580 * REFERENCES: entered into RCS
13581
13582-----
13583
13584Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
135851998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
13586
13587This file is part of Bison, the GNU Compiler Compiler.
13588
13589Bison is free software; you can redistribute it and/or modify
13590it under the terms of the GNU General Public License as published by
13591the Free Software Foundation; either version 2, or (at your option)
13592any later version.
13593
13594Bison is distributed in the hope that it will be useful,
13595but WITHOUT ANY WARRANTY; without even the implied warranty of
13596MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13597GNU General Public License for more details.
13598
13599You should have received a copy of the GNU General Public License
13600along with Bison; see the file COPYING. If not, write to
13601the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
13602Boston, MA 02110-1301, USA.