]> git.saurik.com Git - bison.git/blob - ChangeLog
1e8215ef3e80ff9bbcc1bf7ce9281cdba7077890
[bison.git] / ChangeLog
1 2005-06-06 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
2
3 * data/glr.c: Modify treatment of unused parameters to permit use
4 of g++ (which doesn't allow __attribute__ ((unused)) for parameters).
5
6 2005-05-30 Paul Eggert <eggert@cs.ucla.edu>
7
8 Fix infringement on user name space reported by Janos Zoltan Szabo.
9 * data/yacc.c (yyparse): strlen -> yystrlen.
10
11 2005-05-30 Akim Demaille <akim@epita.fr>
12
13 * data/lalr1.cc (_): New.
14 Translate the various messages.
15
16 2005-05-27 Paul Eggert <eggert@cs.ucla.edu>
17
18 Fix infringement on user name space reported by Bruno Haible.
19 * data/yacc.c (YYSIZE_T): Define first, so that later decls can use it.
20 Prefer GCC's __SIZE_TYPE__ if available, so that we don't infringe on
21 the user's name space.
22 (alloca): Include <stdlib.h> to get it, if it's not built in.
23 (YYMALLOC, YYFREE): Define only if needed.
24 (malloc, free): Declare, but only if needed, as this infringes on
25 the user name space.
26
27 2005-05-25 Paul Eggert <eggert@cs.ucla.edu>
28
29 Fix BeOS, FreeBSD, MacOS porting problems reported by Bruno Haible.
30 * lib/bitset.c (bitset_print): Don't assume size_t can be printed
31 with %d format.
32 * lib/ebitset.c (min, max): Undef before defining.
33 * lib/vbitset.c (min, max): Likewise.
34 * lib/subpipe.c (create_subpipe): Save local variables in case
35 vfork clobbers them.
36
37 2005-05-24 Bruno Haible <bruno@clisp.org>
38
39 * tests/synclines.at (AT_SYNCLINES_COMPILE): Add support for the
40 error message syntax used by gcc-4.0.
41
42 2005-05-23 Paul Eggert <eggert@cs.ucla.edu>
43
44 * README: Mention m4 1.4.3. Remove obsolete advice about
45 Sun Forte Developer 6 update 2, VMS, and MS-DOS.
46
47 * bootstrap: Remove workaround for problem I encountered with
48 gettext 0.14.1; it seems to be fixed now.
49
50 2005-05-22 Paul Eggert <eggert@cs.ucla.edu>
51
52 * NEWS: Version 2.0a.
53
54 * src/files.c: Include "stdio-safer.h"; this fixes a typo in
55 the previous change.
56
57 Various maintainer cleanups.
58 * .cvsignore: Add a.exe, a.out, b.out,, conf[0-9]*, confdefs*,
59 conftest*, for benefit of CVS commands run at the same time as
60 "configure". Add build-aux, since "bootstrap" now creates it and
61 its subfiles.
62 * Makefile.cfg (move_if_change): Remove.
63 * Makefile.maint: Remove the update stuff; we now use "bootstrap".
64 (ftp-gnu, www-gnu, move_if_change, local_updates, update):
65 (po_repo, do-po-update, po-update, wget_files, get-targets):
66 (config.guess-url_prefix, config.sub-url_prefix):
67 (ansi2knr.c-url_prefix, texinfo.tex-url_prefix):
68 (standards.texi-url_prefix, make-stds.texi-url_prefix, taget, url):
69 ($(get-targets), cvs-files, automake_repo, wget-update, cvs-update):
70 Remove.
71 * configure.ac (AC_CONFIG_AUX_DIR): Change from config to build-aux;
72 this is now the recommended name.
73 * config/.cvsignore: Remove config.guess, config.rpath, config.sub,
74 depcomp, install-sh, mdate-sh, missing, mkinstalldirs, texinfo.tex,
75 ylwrap. These files now go into build-aux.
76 * config/move-if-change: Remove.
77 * config/prev-version.txt: Bump from 1.75 to 2.0.
78
79 * bootstrap: Add stdio-safer, unistd-safer modules.
80 Remove m4/glibc2.m4 (introduced by latest gnulib, but
81 we don't need it).
82 * lib/.cvsignore: Add dup-safer.c, fd-safer.c,
83 fopen-safer.c, stdio-safer.h, unistd-safer.h.
84 * lib/subpipe.c: Include "unistd-safer.h".
85 (create_subpipe): Make sure all the newly-created
86 file descriptors are > 2, so that diagnostics don't
87 get sent down them (which might cause Bison to hang, in theory).
88 * m4/.cvsignore: Add stdio-safer.m4, unistd-safer.m4.
89 * src/files.c (xfopen): Use fopen_safer, not fopen.
90
91 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Port
92 yesterday's yacc.c fix.
93
94 2005-05-21 Paul Eggert <eggert@cs.ucla.edu>
95
96 * data/glr.c, data/lalr1.cc: Update copyright date.
97
98 Fix a destructor bug reported by Wolfgang Spraul in
99 <http://lists.gnu.org/archive/html/bug-bison/2005-05/msg00042.html>.
100 * data/yacc.c (yyabortlab): Don't call destructor, and
101 don't set yychar to EMPTY.
102 (yyoverflowlab): Don't call destructor.
103 (yyreturn): Call destructor, if yychar is neither YYEOF nor YYEMPTY.
104 * tests/calc.at (AT_CHECK_CALC): Expect one fewer output lines,
105 since we no longer output the message "discarding lookahead token
106 end of input ()".
107
108 2005-05-20 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
109
110 * data/glr.c (YY_SYMBOL_PRINT): Don't print newline at end to
111 fix a small glitch in debugging output.
112 (yyprocessOneStack, yyrecoverSyntaxError, yyparse): Print newline
113 after YY_SYMBOL_PRINT where needed.
114
115 (struct yyGLRState): Add some comments.
116 (struct yySemanticOption): Add some comments.
117 (union yyGLRStackItem): Add comment.
118
119 (yymergeOptionSets): Correct this to properly perform the union,
120 avoiding infinite reported by Michael Rosien.
121 Update comment.
122
123 * tests/glr-regression.at: Add test for GLR merging error reported
124 by M. Rosien.
125
126 2005-05-13 Paul Eggert <eggert@cs.ucla.edu>
127
128 * COPYING, ChangeLog, GNUmakefile, HACKING, Makefile.am,
129 Makefile.cfg, Makefile.maint, NEWS, README, README-alpha,
130 README-cvs, TODO, bootstrap, configure.ac, data/Makefile.am,
131 data/README, data/c.m4, data/glr.c, data/lalr1.cc, data/yacc.c,
132 data/m4sugar/m4sugar.m4, doc/Makefile.am, doc/bison.texinfo,
133 doc/fdl.texi, doc/gpl.texi, doc/refcard.tex, lib/Makefile.am,
134 lib/abitset.c, lib/abitset.h, lib/bbitset.h, lib/bitset.c,
135 lib/bitset.h, lib/bitset_stats.c, lib/bitset_stats.h,
136 lib/bitsetv-print.c, lib/bitsetv-print.h, lib/bitsetv.c,
137 lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/get-errno.c,
138 lib/get-errno.h, lib/lbitset.c, lib/lbitset.h, lib/libiberty.h,
139 lib/main.c, lib/subpipe.c, lib/subpipe.h, lib/timevar.c,
140 lib/timevar.def, lib/timevar.h, lib/vbitset.c, lib/vbitset.h,
141 lib/yyerror.c, m4/cxx.m4, m4/m4.m4, m4/subpipe.m4, m4/timevar.m4,
142 m4/warning.m4, src/LR0.c, src/LR0.h, src/Makefile.am, src/assoc.c,
143 src/assoc.h, src/closure.c, src/closure.h, src/complain.c,
144 src/complain.h, src/conflicts.c, src/conflicts.h, src/derives.c,
145 src/derives.h, src/files.c, src/files.h, src/getargs.c,
146 src/getargs.h, src/gram.c, src/gram.h, src/lalr.c, src/lalr.h,
147 src/location.c, src/location.h, src/main.c, src/muscle_tab.c,
148 src/muscle_tab.h, src/nullable.c, src/nullable.h, src/output.c,
149 src/output.h, src/parse-gram.c, src/parse-gram.h,
150 src/parse-gram.y, src/print.c, src/print.h, src/print_graph.c,
151 src/print_graph.h, src/reader.c, src/reader.h, src/reduce.c,
152 src/reduce.h, src/relation.c, src/relation.h, src/scan-gram.l,
153 src/scan-skel.l, src/state.c, src/state.h, src/symlist.c,
154 src/symlist.h, src/symtab.c, src/symtab.h, src/system.h,
155 src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h,
156 src/vcg.c, src/vcg.h, src/vcg_defaults.h, tests/Makefile.am,
157 tests/actions.at, tests/c++.at, tests/calc.at, tests/conflicts.at,
158 tests/cxx-type.at, tests/existing.at, tests/glr-regression.at,
159 tests/headers.at, tests/input.at, tests/local.at, tests/output.at,
160 tests/reduce.at, tests/regression.at, tests/sets.at,
161 tests/synclines.at, tests/testsuite.at, tests/torture.at:
162 Update FSF postal mail address.
163
164 2005-05-11 Paul Eggert <eggert@cs.ucla.edu>
165
166 * tests/local.at (AT_COMPILE_CXX): Treat LDFLAGS like AT_COMPILE does.
167 Problem reported by Ralf Menzel.
168
169 2005-05-01 Paul Eggert <eggert@cs.ucla.edu>
170
171 * tests/actions.at: Test that stack overflow invokes destructors.
172 From Marcus Holland-Moritz.
173 * data/yacc.c (yyerrlab): Move the code that destroys the stack
174 from here....
175 (yyreturn): to here. That way, destructors are called properly
176 even if the stack overflows, or the user calls YYACCEPT or
177 YYABORT. Stack-overflow problem reported by Marcus Holland-Moritz.
178 (yyoverflowlab): Destroy the lookahead.
179
180 2005-04-24 Paul Eggert <eggert@cs.ucla.edu>
181
182 * data/yacc.c (YYSTACK_ALLOC_MAXIMUM): Add more-descriptive comment.
183
184 2005-04-17 Paul Eggert <eggert@cs.ucla.edu>
185
186 * NEWS: Bison-generated C parsers no longer quote literal strings
187 associated with tokens.
188 * src/output.c (prepare_symbols): Don't escape strings,
189 since users don't want to see C escapes.
190 * tests/calc.at (AT_CHECK_CALC): Adjust to lack of quotes
191 in diagnostics.
192 * tests/input.at (Torturing the Scanner): Likewise.
193 * tests/regression.at (Token definitions, Web2c Actions): Likewise.
194
195 2005-04-16 Paul Eggert <eggert@cs.ucla.edu>
196
197 * tests/torture.at (AT_INCREASE_DATA_SIZE): Skip the test if
198 the data size is known to be too small and we can't increase it.
199 This works around an HP-UX 11.00 glitch reported by Andrew Benham.
200
201 2005-04-15 Paul Eggert <eggert@cs.ucla.edu>
202
203 * src/parse-gram.y: Include quotearg.h.
204 (string_as_id): Quote $1 before using it as a key, since the
205 lexer no longer quotes it for us.
206 (string_content): Don't strip quotes, since lexer no longer
207 quotes it for us.
208 * src/scan-gram.l: Include quotearg.h.
209 ("\""): Omit quote.
210 ("'"<SC_ESCAPED_CHARACTER>): Quote symbol before using it as
211 a key, since the rest of the lexer doesn't quote it.
212 * src/symtab.c (symbol_get): Don't quote symbol; caller does it now.
213 * tests/regression.at (Token definitions): Check for backslashes
214 in token strings.
215
216 * data/yacc.c (YYSTACK_ALLOC_MAXIMUM): New macro.
217 (YYSIZE_T): Define to unsigned long int when using an older compiler.
218 (yyparse): Revamp code to generate long syntax error message, to
219 make it easier to translate, and to avoid problems with arithmetic
220 overflow. Change "virtual memory" to "memory" in diagnostic, since
221 we don't know whether the memory is virtual.
222
223 2005-04-13 Paul Eggert <eggert@cs.ucla.edu>
224
225 * NEWS: Bison-generated C parsers now use the _ macro to
226 translate strings.
227 * data/yacc.c (_) [!defined _]: New macro.
228 All English strings wrapped inside this macro.
229 * doc/bison.texinfo (Bison Parser): Document _.
230 * po/POTFILES.in: Include src/parse-gram.c, since it now
231 includes translateable strings that parse-gram.y doesn't.
232
233 2005-04-12 Paul Eggert <eggert@cs.ucla.edu>
234
235 * src/symtab.c (symbol_make_alias): Call symbol_type_set,
236 reverting the 2004-10-11 change to this function.
237 (symbol_check_alias_consistency): Don't call symbol_type_set
238 if the type name is already correct.
239 * tests/input.at (Typed symbol aliases): New test, from Tim Van Holder.
240
241 2005-03-25 Paul Eggert <eggert@cs.ucla.edu>
242
243 * tests/regression.at (Token definitions): Don't use a token named
244 c, as that generates a "#define c ..." that runs afoul of buggy
245 stdlib.h that uses the identifier c as a member of struct
246 drand48_data. Problem reported by Horst Wente.
247
248 2005-03-21 Paul Eggert <eggert@cs.ucla.edu>
249
250 * bootstrap: Change translation URL from
251 http://www2.iro.umontreal.ca/~gnutra/po/maint/bison/ to
252 http://www.iro.umontreal.ca/translation/maint/bison/ to avoid
253 redirection glitches. Problem reported by twlevo@xs4all.nl.
254
255 2005-03-20 Paul Eggert <eggert@cs.ucla.edu>
256
257 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Don't put options
258 after operands; POSIX says this isn't portable for the c99 command.
259
260 2005-03-18 Paul Eggert <eggert@cs.ucla.edu>
261
262 * tests/glr-regression.at (glr-regr2a.y): Try to dump core
263 immediately if a data overrun has occurred; this may help us track
264 down what may be a spurious failure on MacOS.
265
266 2005-03-17 Paul Eggert <eggert@cs.ucla.edu>
267
268 Respond to problems reported by twlevo@xs4all.nl.
269
270 * bootstrap: Use "trap - 0" rather than the unportable "trap 0".
271
272 * src/vcg.h: Comment fix.
273 * src/vcg_defaults.h: Parenthesize macro bodies to make them safe.
274 (G_CMAX): Change to -1 instead of INT_MAX.
275
276 * data/yacc.c (yyparse): Omit spaces before #line.
277
278 2005-03-15 Paul Eggert <eggert@cs.ucla.edu>
279
280 * src/tables.c (state_number_to_vector_number): Put it inside an
281 "#if 0", since it's not currently used. Problem reported by
282 Roland McGrath.
283
284 2005-03-06 Paul Eggert <eggert@cs.ucla.edu>
285
286 * src/output.c (escaped_output): Renamed from
287 escaped_file_name_output, since we now use it for symbol tags as
288 well. All uses changed.
289 (symbol_destructors_output, symbol_printers_output):
290 Escape symbol tags too.
291 Problem reported by Matyas Forstner in
292 <http://lists.gnu.org/archive/html/bug-bison/2005-03/msg00009.html>.
293
294 * src/muscle_tab.c (muscle_code_grow): Don't quote numbers; it's
295 not needed.
296 * src/output.c (user_actions_output, token_definitions_output,
297 symbol_destructors_output, symbol_printers_output): Likewise.
298 * src/reader.c (prologue_augment): Likewise.
299 * src/scan-gram.l (handle_action_dollar, handle_action_at): Likewise.
300
301 * src/vcg.c (output_edge): Don't quote linestyle arg.
302 Problem reported by twlevo@xs4all.nl.
303
304 2005-02-28 Paul Eggert <eggert@cs.ucla.edu>
305
306 * doc/bison.texinfo (Semantic Tokens): Fix scoping problem in
307 example, reported by Derek M Jones. Also, make the example even
308 more outrageous, to better illustrate how bad the problem is.
309
310 2005-02-24 Paul Eggert <eggert@cs.ucla.edu>
311
312 * doc/bison.texinfo (Mfcalc Symtab): Correct the prototype for
313 putsym. Typo reported by Sebastian Piping.
314
315 2005-02-23 Paul Eggert <eggert@cs.ucla.edu>
316
317 * doc/bison.texinfo (Language and Grammar): some -> same
318 (Epilogue): int he -> in the
319 Typos reported by Sebastian Piping via Justin Pence.
320
321 2005-02-07 Paul Eggert <eggert@cs.ucla.edu>
322
323 * tests/glr-regression.at (Improper handling of embedded actions
324 and dollar(-N) in GLR parsers): Renamed from "Improper handling of
325 embedded actions and $-N in GLR parsers", work around an Autoconf bug
326 with dollar signs in test names.
327 * tests/input.at (Invalid dollar-n): Renamed from "Invalid \$n",
328 for a similar reason.
329
330 2005-01-28 Paul Eggert <eggert@cs.ucla.edu>
331
332 * src/vcg.c (output_graph): G_VIEW -> normal_view in case someone
333 wants to redefine G_VIEW.
334
335 2005-01-27 Paul Eggert <eggert@cs.ucla.edu>
336
337 * src/vcg.c (get_view_str): Remove case for normal_view.
338 Problem reported by twlevo@xs4all.nl.
339
340 2005-01-24 Paul Eggert <eggert@cs.ucla.edu>
341
342 * configure.ac (O0CFLAGS, O0CXXFLAGS): Fix quoting bug.
343 Problem reported by twlevo@xs4all.nl.
344
345 * doc/bison.texinfo: Change @dircategory from "GNU programming
346 tools" to "Software development". Requested by Richard Stallman
347 via Karl Berry.
348
349 2005-01-23 Paul Eggert <eggert@cs.ucla.edu>
350
351 * tests/c++.at (AT_CHECK_DOXYGEN): Don't use options after operands.
352 Problem reported by twlevo@xs4all.nl.
353
354 2005-01-21 Paul Eggert <eggert@cs.ucla.edu>
355
356 * data/yacc.c (YYCOPY, yystpcpy, yyparse): Remove "register"
357 keyword; it's not needed with modern compilers, and it doesn't
358 affect correctness with older compilers. Suggested by
359 twlevo@xs4all.nl.
360
361 2005-01-17 Paul Eggert <eggert@cs.ucla.edu>
362
363 * data/glr.c (yyuserAction): Add "default: break;" case to pacify
364 gcc -Wswitch-default.
365 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
366 * data/yacc.c (yyparse): Likewise.
367
368 2005-01-12 Paul Eggert <eggert@cs.ucla.edu>
369
370 * src/system.h (OUTPUT_EXT, TAB_EXT): Define only if not defined
371 already. Let config.h define any nonstandard values.
372
373 2005-01-10 Paul Eggert <eggert@cs.ucla.edu>
374
375 * tests/calc.at (_AT_DATA_CALC_Y): Use alarm (100), not alarm (10),
376 for the benefit of slower hosts. Problem reported by
377 Nelson H. F. Beebe.
378
379 2005-01-07 Paul Eggert <eggert@cs.ucla.edu>
380
381 * data/yacc.c (yyparse): Pacify non-GCC compilers about yyerrorlab
382 being defined and not used.
383 * data/lalr1.cc (yyparse): Likewise.
384 Use "if (false)" rather than "if (0)".
385
386 2005-01-05 Paul Eggert <eggert@cs.ucla.edu>
387
388 * TODO: Mention that we should allow NUL bytes in tokens.
389
390 2005-01-02 Paul Eggert <eggert@cs.ucla.edu>
391
392 * src/scan-skel.l (<<EOF>>): Don't close standard output.
393 Problem reported by Hans Aberg.
394
395 2005-01-01 Paul Eggert <eggert@cs.ucla.edu>
396
397 * src/getargs.c (version): Happy new year; update overall
398 program copyright date from 2004 to 2005.
399
400 * src/scan-skel.l ("@output ".*\n): Don't close standard output.
401 Problem reported by Hans Aberg.
402 * tests/output.at (AT_CHECK_OUTPUT): New arg SHELLIO.
403 (Output file names.): Add a test for the case when standard output
404 is closed.
405
406 2004-12-26 Paul Eggert <eggert@cs.ucla.edu>
407
408 * doc/bison.texinfo (@copying): Update FDL version number to 1.2,
409 to fix an oversight in the Bison 2.0 manual.
410
411 2004-12-25 Paul Eggert <eggert@cs.ucla.edu>
412
413 * NEWS: Version 2.0. Reformat the existing news items since
414 1.875, so that related items are grouped together.
415 * configure.ac (AC_INIT): Bump version to 2.0.
416 * src/parse-gram.c, src/parse-gram.h: Regenerate with 2.0.
417
418 * tests/torture.at (Exploding the Stack Size with Alloca): Set
419 YYSTACK_USE_ALLOCA to 1 if __GNUC__ or alloca are defined;
420 otherwise, we're not testing alloca. Unfortunately there's no
421 simple way to consult HAVE_ALLOCA here.
422
423 * data/lalr1.cc (yydestruct_): Pacify unused variable warning
424 for yymsg, too.
425
426 * src/LR0.c (new_itemsets): Use memset rather than zeroing by
427 hand. This avoids a warning about comparing int to size_t when
428 GCC warnings are enabled.
429
430 2004-12-22 Paul Eggert <eggert@cs.ucla.edu>
431
432 * NEWS: Bison-generated parsers no longer default to using the
433 alloca function (when available) to extend the parser stack, due
434 to widespread problems in unchecked stack-overflow detection.
435 * data/glr.c (YYMAXDEPTH): Remove undef when zero. It's the user's
436 responsibility to set it to a positive value. This lets the user
437 specify a value that is not a preprocessor constant.
438 * data/yacc.c (YYMAXDEPTH): Likewise.
439 (YYSTACK_ALLOC): Define only if YYSTACK_USE_ALLOCA is nonzero.
440 * doc/bison.texinfo (Stack Overflow): YYMAXDEPTH no longer needs
441 to be a compile-time constant. However, explain the constraints on it.
442 Also, explain the constraints on YYINITDEPTH.
443 (Table of Symbols): Explain that alloca is no longer the default.
444 Explain the user's responsibility if they define YYSTACK_USE_ALLOCA
445 to 1.
446
447 * doc/bison.texinfo (Location Default Action): Mention that n must
448 be zero when k is zero. Suggested by Frank Heckenbach.
449
450 2004-12-22 Akim Demaille <akim@epita.fr>
451
452 * data/lalr1.cc (parser::token_number_type, parser::rhs_number_type)
453 (parser::state_type, parser::semantic_type, parser::location_type):
454 Private, not public.
455 (parser::parse): Return ints, not bool.
456 Returning a bool introduces a problem: 0 corresponds to false, and
457 it seems weird to return false on success. Returning true changes
458 the conventions for yyparse.
459 Alternatively we could return void and send an exception.
460 There is no clear consensus (yet?).
461 (state_stack, semantic_stack, location_stack): Rename as...
462 (state_stack_type, semantic_stack_type, location_stack_type): these.
463 Private, not public.
464 * tests/c++.at: New.
465 * tests/testsuite.at, tests/Makefile.am: Adjust.
466
467 2004-12-21 Akim Demaille <akim@epita.fr>
468
469 * data/lalr1.cc (parser::parse): Return a bool instead of an int.
470
471 2004-12-21 Akim Demaille <akim@epita.fr>
472
473 Don't impose std::string for filenames.
474
475 * data/lalr1.cc (b4_filename_type): New.
476 (position::filename): Use it.
477 (parser.hh): Move the inclusion of stack.hh and location.hh below
478 the user code, so that needed headers for the filename type can be
479 included first.
480 Forward declare them before the user code.
481 * tests/Makefile.am (check-local, installcheck-local): Pass
482 TESTSUITEFLAGS to the TESTSUITE.
483
484 2004-12-20 Akim Demaille <akim@epita.fr>
485
486 Use more STL like names: my_class instead of MyClass.
487
488 * data/lalr1.cc (LocationStack, LocationType, RhsNumberType)
489 (SemanticStack, SemanticType, StateStack, StateType)
490 (TokenNumberType, Stack, Slice, Traits, Parser::location)
491 (Parser::value): Rename as...
492 (location_stack, location_type, rhs_number_type, semantic_stack)
493 (semantic_type, state_stack, state_type, token_number_type, stack)
494 (slice, traits, parser::yylloc, parser::yylval): these.
495
496 * tests/calc.at, tests/regression.at, tests/actions.at: Adjust.
497
498 2004-12-19 Paul Eggert <eggert@cs.ucla.edu>
499
500 * data/glr.c (YYLLOC_DEFAULT): Use GNU spacing conventions.
501 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
502
503 2004-12-17 Paul Eggert <eggert@cs.ucla.edu>
504
505 Remove uses of 'short int' and 'unsigned short int'. This raises
506 some arbitrary limits. It uses more memory but nowadays that's
507 not much of an issue.
508
509 This change does not affect the generated parsers; that's a different
510 task, as some users will want to conserve memory there.
511
512 Ideally we should use size_t to represent all object counts, and
513 something like ptrdiff_t to represent signed differences of object
514 counts; but that will require more code-cleanup than I have the
515 time to do right now.
516
517 * src/LR0.c (allocate_itemsets, new_itemsets, save_reductions):
518 Use size_t, not int or short int, to count objects.
519 * src/closure.c (nritemset, closure): Likewise.
520 * src/closure.h (nritemset, closure): Likewise.
521 * src/nullable.c (nullable_compute): Likewise.
522 * src/print.c (print_core): Likewise.
523 * src/print_graph.c (print_core): Likewise.
524 * src/state.c (state_compare, state_hash): Likewise.
525 * src/state.h (struct state): Likewise.
526 * src/tables.c (default_goto, goto_actions): Likewise.
527
528 * src/gram.h (rule_number, rule): Use int, not short int.
529 * src/output.c (prepare_rules): Likewise.
530 * src/state.h (state_number, STATE_NUMBER_MAXIMUM, transitions,
531 errs, reductions): Likewise.
532 * src/symtab.h (symbol_number, SYMBOL_NUMBER_MAXIMUM, struct symbol):
533 Likewise.
534 * src/tables.c (vector_number, tally, action_number,
535 ACTION_NUMBER_MINIMUM): Likewise.
536 * src/output.c (muscle_insert_short_int_table): Remove.
537
538 2004-12-17 Akim Demaille <akim@epita.fr>
539
540 * data/lalr1.cc: Extensive Doxygenation.
541 (error_): Rename as...
542 (error): this, since it is visible to the user.
543 Adjust callers.
544 (Parser::message): Now an automatic variable from...
545 (Parser::yyreport_syntax_error_): here.
546 * tests/actions.at, tests/calc.at, tests/regression.at: Adjust to
547 Parser::error.
548 * tests/input.at: Escape $.
549
550 2004-12-16 Paul Eggert <eggert@cs.ucla.edu>
551
552 * data/glr.c (b4_lhs_value, b4_rhs_value, b4_rhs-location):
553 Parenthesize rhs to avoid obscure problems with mistakes like
554 "foo$$bar = foo$1bar;". Problem reported by twlevo at xs4all.
555 * data/lalr1.cc (b4_lhs_value, b4_rhs_value, b4_lhs_location,
556 b4_rhs_location): Likewise.
557 * data/yacc.c (b4_lhs_value, b4_rhs_value, b4_lhs_location,
558 b4_rhs_location): Likewise.
559
560 2004-12-16 Akim Demaille <akim@epita.fr>
561
562 * data/lalr1.cc (yyreport_syntax_error_): Catch up with glr.c and
563 yacc.c: be sure to stay within yycheck_.
564 * tests/actions.at: Re-enable C++ tests.
565
566 2004-12-16 Akim Demaille <akim@epita.fr>
567
568 * src/print_graph.c (print_graph): Remove layoutalgorithm uses for
569 real.
570
571 2004-12-16 Akim Demaille <akim@epita.fr>
572
573 Use #define to handle the %name-prefix.
574
575 * data/glr.c, data/yacc.c: Comment changes.
576 * data/lalr1.cc (yylex): Use #define to select the name of yylex,
577 so that one can refer to yylex in the parser file, and have it
578 renamed, as is the case with other skeletons.
579
580 2004-12-16 Akim Demaille <akim@epita.fr>
581
582 Move lalr1.cc internals into yy*.
583
584 * data/lalr1.cc (semantic_stack_, location_stack_, state_stack_)
585 (semantic_stack_, location_stack_, pact_, pact_ninf_, defact_)
586 (pgoto_, defgoto_, table_, table_ninf_, check_, stos_, r1_, r2_)
587 (name_, rhs_, prhs_, rline_, token_number_, eof_, last_, nnts_)
588 (empty_, final_, terror_, errcode_, ntokens_)
589 (user_token_number_max_, undef_token_, n_, len_, state_, nerrs_)
590 (looka_, ilooka_, error_range_, nerrs_):
591 Rename as...
592 (yysemantic_stack_, yylocation_stack_, yystate_stack_)
593 (yysemantic_stack_, yylocation_stack_, yypact_, yypact_ninf_)
594 (yydefact_, yypgoto_, yydefgoto_, yytable_, yytable_ninf_)
595 (yycheck_, yystos_, yyr1_, yyr2_, yyname_, yyrhs_, yyprhs_)
596 (yyrline_, yytoken_number_, yyeof_, yylast_, yynnts_, yyempty_)
597 (yyfinal_, yyterror_, yyerrcode_, yyntokens_)
598 (yyuser_token_number_max_, yyundef_token_, yyn_, yylen_, yystate_)
599 (yynerrs_, yylooka_, yyilooka_, yyerror_range_, yynerrs_):
600 these.
601
602 2004-12-15 Paul Eggert <eggert@cs.ucla.edu>
603
604 Fix some problems reported by twlevo at xs4all.
605 * src/symtab.c (symbol_new): Report an error if the input grammar
606 contains too many symbols. This is better than calling abort() later.
607 * src/vcg.h (enum layoutalgorithm): Remove. All uses removed.
608 (struct node, struct graph):
609 Rename member expand to stretch. All uses changed.
610 (struct graph): Remove member layoutalgorithm. All uses removed.
611 * src/vcg.c (get_layoutalgorithm_str): Remove. All uses removed.
612 * src/vcg_defaults.h (G_STRETCH): Renamed from G_EXPAND.
613 All uses changed.
614 (N_STRETCH): Rename from N_EXPAND. All uses changed.
615
616 2004-12-15 Akim Demaille <akim@epita.fr>
617
618 * data/lalr1.cc: Normalize /** \brief ... */ to ///.
619 Add more Doxygen comments.
620 (symprint_, stack_print_, reduce_print_, destruct_, pop)
621 (report_syntax_error_, translate_): Rename as...
622 (yysymprint_, yystack_print_, yyreduce_print_, yydestruct_)
623 (yypop_, yyreport_syntax_error_, yytranslate_): this.
624
625 2004-12-15 Akim Demaille <akim@epita.fr>
626
627 * data/lalr1.cc (lex_): Rename as...
628 (yylex_): this.
629 Move the trace here.
630 Take the %name-prefix into account.
631 Reported by Alexandre Duret-Lutz.
632
633 2004-12-15 Akim Demaille <akim@epita.fr>
634
635 Simplify the C++ parser constructor.
636
637 * data/lalr1.cc (debug_): Rename as...
638 (yydebug_): so that the parser's internals are always in the yy*
639 pseudo namespace.
640 Adjust uses.
641 (b4_parse_param_decl): Remove the leading comma as it is now only
642 called as unique argument list.
643 (Parser::Parser): Remove the constructor accepting a location and
644 an initial debugging level.
645 Remove from the other ctor the argument for the debugging level.
646 (debug_level_type, debug_level, set_debug_level): New.
647
648 * tests/actions.at, tests/calc.at, tests/regression.at: Adjust
649 constructor calls.
650
651 2004-12-15 Akim Demaille <akim@epita.fr>
652
653 Remove b4_root related material: failure experiment
654 (which goal was to allow to derive from a class).
655
656 * data/lalr1.cc (b4_root, b4_param, b4_constructor): Remove
657 definitions and uses.
658
659 2004-12-14 Paul Eggert <eggert@cs.ucla.edu>
660
661 * data/glr.c (struct yyGLRStack): yyerror_range now has 3 items,
662 not 2, since it's not portable to subtract 1 from the start of an
663 array. The new item 0 is never set or used. All uses changed.
664
665 (yyrecoverSyntaxError): Use YYLLOC_DEFAULT instead of assuming
666 the default definition of YYLLOC_DEFAULT. Problem reported
667 by Frank Heckenbach.
668
669 2004-12-12 Paul Eggert <eggert@cs.ucla.edu>
670
671 * data/glr.c (YYRHSLOC): Don't have two definitions, one for
672 the normal case and one for the error case. Just use the
673 first one uniformly. Problem reported by Frank Heckenbach.
674 (YYLLOC_DEFAULT): Use the conventions of yacc.c, so we can
675 use exactly the same macro in both places.
676 (yyerror_range): Now of type yyGLRStackItem, not YYLTYPE,
677 so that the normal-case YYRHSLOC works for the error case too.
678 All uses changed.
679 * data/yacc.c (YYRHSLOC): New macro, taken from glr.c.
680 (YYLLOC_DEFAULT): Use the same macro as glr.c.
681 * doc/bison.texinfo (Location Default Action): Don't claim that
682 we have an array of locations. Use the same macro for both glr
683 and lalr parsers. Mention YYRHSLOC. Mention what happens when
684 the index is 0.
685
686 2004-12-10 Paul Eggert <eggert@cs.ucla.edu>
687
688 * HACKING: Update email addresses to send announcements to.
689
690 * configure.ac (AC_INIT): Bump version to 1.875f.
691
692 2004-12-10 Paul Eggert <eggert@cs.ucla.edu>
693
694 * NEWS: Version 1.875e.
695 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875e.
696
697 * src/scan-skel.l: Include "complain.h", for "fatal".
698
699 * src/relation.h (relation_print, relation_digraph):
700 Relation sizes are of type relation_node, not size_t (this is
701 merely a doc fix, since the two types are equivalent).
702 (relation_transpose): Relation sizes are of type relation_node,
703 not int.
704 * src/relation.c: Likewise.
705 (top, infinity): Now of type relation_node, not int.
706 (traverse, relation_transpose): Use relation_node, not int.
707
708 * data/glr.c (yyuserAction, yyrecoverSyntaxError): Mark args
709 with ATTRIBUTE_UNUSED if they're not used, to avoid GCC warning.
710 (yyparse): Remove unused local introduced in 2004-10-25 patch.
711
712 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): New arg
713 specifying whether the test should be skipped. Use it tp
714 specify that the [%defines %skeleton "lalr1.cc"] tests currently
715 fail on some hosts, and should be skipped.
716
717 2004-12-08 Paul Eggert <eggert@cs.ucla.edu>
718
719 * src/system.h (CALLOC, MALLOC, REALLOC): Remove. All callers
720 changed to use xcalloc, xnmalloc, xnrealloc, respectively,
721 unless otherwise specified below.
722
723 * src/LR0.c (allocate_itemsets): Use xnmalloc, not xcalloc,
724 to allocate kernel_base, kernel_items, kernel_size, since
725 they needn't be initialized to 0.
726 (allocate_storgae): Likewise, for shiftset, redset, shift_symbol.
727 * src/closure.c (new_closure): Likewise, for itemset.
728 * src/derives.c (derives_compute): Likewise, for delts, derives, q.
729 * src/lalr.c (set_goto_map): Likewise, for temp_map.
730 (initialize_F): Likewise, for reads, edge, reads[i], includes[i].
731 (build_relations): Likewise for edge, states1, includes.
732 * src/nullable.c (nullable_compute): Likewise, for squeue, relts.
733 * src/reader.c (packgram): Likewise, for ritem, rules.
734 * src/reduce.c (nonterminals_reduce): Likewise for nontermmap.
735 * src/relation.c (relation_digraph): Likewise for VERTICES.
736 (relation_transpose): Likewise for new_R, end_R.
737 * src/symtab.c (symbols_token_translations_init): Likewise for
738 token_translations.
739 * src/tables.c (save_row): Likewise for froms, tos, conflict_tos.
740 (token_actions): Likewise for yydefact, actrow, conflrow,
741 conflict_list.
742 (save_column): Likewise for froms[symno], tos[symno].
743 (goto_actions): Likewise for state_count.
744 (pack_table): Likewise for base, pos, check.
745 (tables_generate): Likewise for width.
746
747 * src/LR0.c (set_states): Don't reuse kernel_size and kernel_base
748 for initial core. Just have a separate core, so we needn't worry
749 about whether kernel_size and kernel_base are initialized.
750
751 * src/LR0.c (shift_symbol, redset, shiftset, kernel_base,
752 kernel_size, kernel_items): Remove unnecessary initialization.
753 * src/conflicts.c (conflicts): Likewise.
754 * src/derives.c (derives): Likewise.
755 * src/muscle_tablc (muscle_insert): Likewise.
756 * src/relation.c (relation_digraph): Likewise.
757 * src/tables.c (froms, tos, conflict_tos, tally, width, actrow, order,
758 conflrow, conflict_table, conflict_list, table, check):
759 Likewise.
760
761 * src/closure.c (new_closure): Arg is of type unsigned int, not int.
762 This is because all callers pass unsigned int.
763 * src/closure.h (new_closure): Likewise.
764
765 * src/lalr.c (initialize_F): Initialize reads[i] in all cases.
766 (build_relations): Initialize includes[i] in all cases.
767 * src/reader.c (packgram): Always initialize rules[ruleno].prec
768 and rules[ruleno].precsym. Initialize members in order.
769 * src/relation.c (relation_transpose): Always initialize new_R[i]
770 and end_R[i].
771 * src/table.c (conflict_row): Initialize 0 at end of conflict_list.
772
773 * src/output.c (prepare_actions): Pass 0 instead of conflict_list[0];
774 conflict_list[0] was always 0, but now it isn't initialized.
775
776 * src/table.c (table_grow): When conflict_table grew, the grown
777 area wasn't cleared. Fix this.
778
779 * lib/.cvsignore: Add strdup.c, strdup.h.
780 * m4/.cvsignore: Add strdup.m4.
781
782 2004-12-07 Paul Eggert <eggert@cs.ucla.edu>
783
784 * src/lalr.h (GOTO_NUMBER_MAXIMUM): New macro.
785 * src/lalr.c (set_goto_map): Don't allow ngotos to equal
786 GOTO_NUMBER_MAXIMUM, since we occasionally compute
787 ngotos + 1 without checking for overflow.
788 (build_relations): Use END_NODE, not -1, to denote end of edges.
789 * src/lalr.c (set_goto_map, map_goto, initialize_F, add_loopback_edge,
790 build_relations): Use goto_number, not int, for goto numbers.
791 * src/tables.c (save_column, default_goto): Likewise.
792
793 2004-11-23 Akim Demaille <akim@epita.fr>
794
795 * data/lalr1.cc (YYSTYPE): Define it as is done for C, instead
796 of #defining from yystype.
797 Don't typedef yystype, C++ does not need it.
798 This lets it possible to forward declare it as union.
799
800 2004-11-23 Paul Eggert <eggert@cs.ucla.edu>
801
802 * bootstrap (gnulib_modules): Add extensions.
803 Problem reported by Jim Meyering.
804
805 2004-11-22 Paul Eggert <eggert@cs.ucla.edu>
806
807 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c,
808 src/lalr.c, src/nullable.c, src/relation.c, src/scan-skel.l,
809 src/system.h, src/tables.c: XFREE -> free, to accommodate
810 recent change to gnulib xalloc.h.
811 Problem reported by Jim Meyering.
812
813 2004-11-17 Akim Demaille <akim@epita.fr>
814
815 * data/lalr1.cc (symprint_): Use cdebug_ to avoid warnings.
816
817 2004-10-28 Akim Demaille <akim@epita.fr>,
818 Alexandre Duret-Lutz <adl@gnu.org>
819
820 * data/lalr1.cc (Parser::yycdebug_): New, a pointer, to allow
821 changes.
822 (YYCDEBUG): Adjust.
823 Use it instead of cdebug_.
824 (Parser::debug_stream, Parser::set_debug_stream): New.
825 (Parser::symprint_): Define cdebug_ for temporary backward
826 compatibility.
827 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use
828 debug_stream ().
829
830 2004-11-17 Akim Demaille <akim@epita.fr>
831
832 * data/lalr1.cc (Parser:print_): Remove, use %printer instead.
833 * tests/regression.at (_AT_DATA_DANCER_Y): Adjust.
834 * tests/calc.at (_AT_DATA_CALC_Y): Ditto.
835 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
836
837 2004-10-27 Paul Eggert <eggert@cs.ucla.edu>
838
839 * data/glr.c (yyloc_default): Remove; not used.
840 Problem reported by Frank Heckenbach.
841
842 2004-10-25 Akim Demaille <akim@epita.fr>
843
844 * data/glr.c (YYRHSLOC): Move its definition next to its uses.
845 Introduce another definition to address simple location arrays.
846 (yyGLRStack): New member: yyerror_range.
847 (yyrecoverSyntaxError, yyparse): Update it.
848 (yyrecoverSyntaxError): Use it when shifting the error token to
849 have an accurate range, equivalent to the one computed by both
850 yacc.c and lalr1.cc.
851 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Change its yylex so
852 that column numbers start at column 0, as per GNU Coding
853 Standards, the others tests, and the doc.
854 (_AT_RESOLVED_GLR_OUTPUT_WITH_LOC, _AT_AMBIG_GLR_OUTPUT_WITH_LOC):
855 Adjust to the above change (first column is 0).
856 And adjust the location of the "<error>", now covering the whole
857 line.
858
859 2004-10-22 Akim Demaille <akim@epita.fr>
860 and Paul Eggert <eggert@cs.ucla.edu>
861
862 Remove some arbitrary limits on goto numbers and relations.
863 * src/lalr.c (goto_map, ngotos, from_state, to_state): Omit
864 initial values, since they're never used.
865 (set_goto_map): ngotos is now unsigned, so test for overflow
866 by seeing whether it wraps around to zero.
867 * src/lalr.h (goto_number): Now size_t, not short int.
868 (GOTO_NUMBER_MAXIMUM): Remove.
869 * src/relation.c (relation_print, traverse, relation_transpose):
870 Check for END_NODE rather than looking at sign.
871 * src/relation.h (END_NODE): New macro.
872 (relation_node): Now size_t, not short int.
873
874 2004-10-22 Paul Eggert <eggert@cs.ucla.edu>
875
876 * doc/bison.texinfo (Language and Grammar): In example, "int" is a
877 keyword, not an identifier. Problem reported by Baron Schwartz in
878 <http://lists.gnu.org/archive/html/bug-bison/2004-10/msg00017.html>.
879
880 2004-10-11 Akim Demaille <akim@epita.fr>
881
882 * src/symtab.c (symbol_check_alias_consistency): Also check
883 type names, destructors, and printers.
884 Reported by Alexandre Duret-Lutz.
885 Recode the handling of associativity and precedence in terms
886 of symbol_precedence_set.
887 Accept no redeclaration at all, not even equal to the previous
888 value.
889 (redeclaration): New.
890 Use it to factor redeclaration complaints.
891 (symbol_make_alias): Don't set the type of the alias, let
892 symbol_check_alias_consistency do it as for other features.
893 * src/symtab.h (symbol): Add new member prec_location, and
894 type_location.
895 * src/symtab.c (symbol_precedence_set, symbol_type_set): Set them.
896 * tests/input.at (Incompatible Aliases): New.
897
898 2004-10-09 Paul Eggert <eggert@cs.ucla.edu>
899
900 .cvsignore fixes to accommodate gnulib changes,
901 and the practice of naming build directories "_build".
902 * .cvsignore: Add "_*". Sort.
903 * lib/.cvsignore: Add getopt_.h, xalloc-die.c.
904 * m4/.cvsignore: Add "*_gl.m4".
905
906 2004-10-06 Akim Demaille <akim@epita.fr>
907
908 * src/parse-gram.y (add_param): Fix the truncation of trailing
909 spaces.
910
911 2004-10-05 Akim Demaille <akim@epita.fr>
912
913 In Bison 1.875's yacc.c, YYLLOC_DEFAULT was called regardless
914 whether the reducion was empty or not. This leaves room to
915 improve the use of YYLLOC_DEFAULT in such a case.
916 lalr1.cc is still experimental, so changing this is acceptable.
917 And finally, there are probably not many users who changed the
918 handling of locations in GLR, so changing is admissible too.
919
920 * data/glr.c, data/lalr1.cc, data/yacc.c (YYLLOC_DEFAULT): On an
921 empty reduction, set @$ to an empty location ending the previously
922 stacked symbol.
923 Adjust uses to make sure the code is triggered on empty
924 reductions.
925 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust the
926 expected output: empty reductions have empty locations.
927
928 2004-09-29 Akim Demaille <akim@epita.fr>
929
930 * data/lalr1.cc: Move towards a more standard C++ coding style
931 for templates: Class < T > -> Class<T>.
932
933 2004-09-29 Akim Demaille <akim@epita.fr>
934
935 * data/lalr1.cc: Reinstall the former ctor, for sake of
936 compatibility, but warn it will be removed.
937 Move towards a more standard C++ coding style (i.e., type *var ->
938 type* var).
939
940 2004-09-27 Paul Eggert <eggert@cs.ucla.edu>
941
942 * src/parse-gram.y (add_param): Rewrite to avoid strchr,
943 since it's less likely to work if NULs are involved in the future.
944
945 2004-09-27 Akim Demaille <akim@epita.fr>
946
947 * data/yacc.c (YY_LOCATION_PRINT): Fix its default declaration.
948
949 2004-09-27 Akim Demaille <akim@epita.fr>
950
951 * data/lalr1.cc (b4_parse_param_decl_1): New.
952 (b4_parse_param_decl): Use it to have different names between attribute
953 and argument names.
954 (b4_cc_constructor_call): Likewise.
955
956 2004-09-24 Akim Demaille <akim@epita.fr>
957
958 * src/parse-gram.y (add_param): Strip the leading and trailing
959 blanks from a formal argument declaration.
960 (YY_LOCATION_PRINT): New.
961
962 2004-09-24 Akim Demaille <akim@epita.fr>
963
964 * data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation
965 after the location.
966
967 2004-09-24 Akim Demaille <akim@epita.fr>
968
969 * doc/bison.texinfo (Table of Symbols): Sort.
970
971 2004-09-21 Akim Demaille <akim@epita.fr>
972
973 * data/yacc.c, data/glr.c (b4_at_dollar, b4_dollar_dollar): Remove
974 the useless parentheses.
975 Suggested by Paul Eggert.
976
977 2004-09-20 Akim Demaille <akim@epita.fr>
978
979 Let the initial-action act on the look-ahead, and use it for the
980 "initial push" (corresponding to an hypothetical beginning-of-file).
981 And let lalr1.cc honor %initial-action.
982
983 * doc/bison.texinfo (Initial Action Decl): Clarify, and add an
984 example.
985 * data/lalr1.cc (Parser::initlocation_): Remove, bad experiment.
986 (Parser::Parser): Remove the ctor that used to initialize it.
987 (Parser::parse): Like in the other skeletons, issue the "starting
988 parse" message before any action.
989 Honor %initial-action.
990 Initialize the stacks with the lookahead.
991 * data/yacc.c: Let $$ and @$ in %initial-action designate the
992 look-ahead.
993 Push them in the stacks.
994 * tests/actions.at, tests/calc.at: Adjust the C++ ctor invocations.
995
996 2004-09-20 Akim Demaille <akim@epita.fr>
997
998 * doc/bison.texinfo (Initial Action Decl): New.
999
1000 2004-09-20 Akim Demaille <akim@epita.fr>
1001
1002 * data/yacc.c (YY_LOCATION_PRINT): Use YYLTYPE_IS_TRIVIAL as a
1003 clearer criterion to define it.
1004 (parse): Initialize the initial location when YYLTYPE_IS_TRIVIAL.
1005 When reducing on an empty RHS, use the latest stacked location as
1006 location.
1007 yylloc is not always available.
1008 * data/glr.c: Likewise.
1009 Also, honor initial-actions.
1010
1011 2004-09-20 Akim Demaille <akim@epita.fr>
1012
1013 * data/yacc.c (YY_LOCATION_PRINT): New.
1014 Define when we know YYLTYPE's structure, i.e., when the default
1015 YYLLOC_DEFAULT is used.
1016 * data/c.m4 (b4_yysymprint_generate): Use it.
1017 * data/lalr1.cc (YYLLOC_DEFAULT): Stop relying on the initial
1018 value of the result.
1019 (error_start_): Replace with...
1020 (error_range_): this location array.
1021 This allows to replace code relying on the implementation of
1022 locations by portable code.
1023 * data/yacc.c (yylerrsp): Replace with...
1024 (yyerror_range): this.
1025 Every time a token is popped, update yyerror_range[0], to have an
1026 accurate location for the error token.
1027 * data/glr.c (YY_LOCATION_PRINT): New.
1028 (yyprocessOneStack): Fix an invocation of YY_SYMBOL_PRINT:
1029 deference a pointer.
1030 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): No longer
1031 report the location in %printers.
1032
1033 * src/scan-skel.l: Instead of abort, report error messages to ease
1034 understanding skeleton scanning failures.
1035
1036 2004-09-16 Akim Demaille <akim@epita.fr>
1037
1038 * data/lalr1.cc (Stack::Iterator, Stack::ConstIterator): Rename as...
1039 (iterator, const_iterator): these, to be more in the C++ spirit.
1040 Also, return reverse iterators so that when displaying the stack
1041 we display its bottom first.
1042 (Parser::stack_print_, Parser::reduce_print_): Match the messages
1043 from yacc.c.
1044 We should probably use vector here though.
1045
1046 2004-09-16 Akim Demaille <akim@epita.fr>
1047
1048 Have more complete shift traces.
1049
1050 * data/yacc.c, data/lalr1.c, data/glr.c: Use YY_SYMBOL_PRINT
1051 to report Shifts instead of ad hoc YYDPRINTF invocations,
1052 including for the error token.
1053 * data/lalr1.cc (symprint_): Output the location.
1054 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): In C++, don't
1055 output the location within the %printer.
1056 Activate GLR tests, at least to make sure they compile properly.
1057 They still don't pass though.
1058 * tests/calc.at: Adjust expect verbose output, since now "Entering
1059 state..." is on a different line than the "Shifting" message.
1060
1061 2004-09-08 Akim Demaille <akim@epita.fr>
1062
1063 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Move the
1064 Bison directive from the Bison file to the invocation of this
1065 macro, so that these directives are passed to
1066 AT_BISON_OPTION_PUSHDEFS to get correct help macros.
1067 Use these helping macros (e.g., AT_LOC, AT_VAL and so forth).
1068 Move the AT_SETUP/AT_CLEANUP outside, to report as test title
1069 the extra Bison directives instead of the whole series.
1070 Change the grammar so that there are recoverable errors, and
1071 unrecoverable errors. Now we can have the parser give up before
1072 consuming the whole input. As a result we now can observe that
1073 the lookahead is freed when needed.
1074 Change the parser source to parse argv[1] instead of a hard coded
1075 string.
1076 Simplify yylex, and give a value and location to EOF.
1077 Simplify some invocations of AT_CHECK_PRINTER_AND_DESTRUCTOR that
1078 passed directives already coded in the file.
1079 Add some tests to check the location of "error".
1080 For some tests, the C++ parser is correct, and not yacc.c.
1081 For other tests, they provide different, but unsatisfying, values,
1082 so keep the C++ value so that at least one parser is "correct"
1083 according to the test suite.
1084 (Actions after errors): Remove, this is subsumed by the
1085 AT_CHECK_PRINTER_AND_DESTRUCTOR series.
1086
1087 2004-09-06 Akim Demaille <akim@epita.fr>
1088
1089 * data/lalr1.cc: Adjust the indentation of the labels.
1090 (Parser::pop): New.
1091 Use it.
1092
1093 2004-09-06 Akim Demaille <akim@epita.fr>
1094
1095 * data/yacc.cc, data/glr.cc (yydestruct): Accept an additional
1096 argument, an informative message.
1097 Call YY_SYMBOL_PRINT.
1098 Adjust all callers: integrate the associated YY_SYMBOL_PRINT.
1099 * data/lalr1.cc (destruct_): Likewise.
1100 In addition, no longer depend on b4_yysymprint_generate and
1101 b4_yydestruct_generate to generate these functions, do it "by
1102 hand".
1103
1104 2004-09-03 Akim Demaille <akim@epita.fr>
1105
1106 * data/glr.c, data/lalr1.cc, data/yacc.c: When YYABORT was
1107 invoked, yydestruct the lookahead.
1108 * tests/calc.at (Calculator $1): Update the expected lengths of
1109 traces: there is an added line for the discarded lookahead.
1110 * doc/bison.texinfo (Destructor Decl): Some rewording.
1111 Define "discarded" symbols.
1112
1113 2004-09-02 Akim Demaille <akim@epita.fr>
1114
1115 * data/lalr1.cc (translate_, destruct_): No reason to be static.
1116
1117 2004-09-02 Akim Demaille <akim@epita.fr>
1118
1119 * data/glr.c, yacc.c (YYDSYMPRINT): Remove, not used.
1120 (YYDSYMPRINTF): Rename as...
1121 (YY_SYMBOL_PRINT): this.
1122 * data/lalr1.cc (YY_SYMBOL_PRINT): New, modeled after the previous
1123 two.
1124 Use it instead of direct symprint_ calls.
1125 (yybackup): Tweak the "Now at end of input" case to match yacc.c's
1126 one.
1127
1128 2004-09-02 Akim Demaille <akim@epita.fr>
1129
1130 * data/lalr1.cc (b4_yysymprint_generate): New.
1131 (symprint_): New member function, defined when YYDEBUG.
1132 Use it consistently instead of token/nterm debugging output by
1133 hand.
1134 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust
1135 %printer calls to use cdebug_ when using lalr1.cc.
1136
1137 2004-08-30 Florian Krohm <florian@edamail.fishkill.ibm.com>
1138
1139 * data/glr.c: Guard the declarations of yypstack and yypdumpstack
1140 with #ifdef YYDEBUG.
1141
1142 2004-08-26 Akim Demaille <akim@epita.fr>
1143
1144 * doc/bison.texinfo (Implementing Loops): Rename as...
1145 (Implementing Gotos/Loops): this.
1146
1147 2004-08-13 Paul Eggert <eggert@cs.ucla.edu>
1148
1149 Adjust to latest gnulib.
1150 * bootstrap (gnulib_modules): Add xalloc-die.
1151 Set LC_ALL=C so that file names sort consistently.
1152 Prefer the gnulib copies of gettext.m4, glibc21.m4,
1153 inttypes_h.m4, lib-ld.m4, lib-prefix.m4, po.m4, stdint_h.m4,
1154 uintmax_t.m4, ulonglong.m4.
1155 (intl_files_to_remove): Add gettext.m4, lib-ld.m4, lib-prefix.m4,
1156 po.m4 since we are now using _gl.m4 instead.
1157
1158 2004-08-10 Florian Krohm <florian@edamail.fishkill.ibm.com>
1159
1160 * src/scan-action.l: Remove. Scanning of semantic actions is
1161 handled in scan-gram.l.
1162
1163 2004-08-07 Florian Krohm <florian@edamail.fishkill.ibm.com>
1164
1165 * src/scan-gram.l (handle_syncline): Use uniqstr_new not xstrdup.
1166
1167 * src/location.h (struct): The file member is a uniqstr.
1168 (equal_boundaries): Use UNIQSTR_EQ for comparison.
1169
1170 2004-07-22 Paul Eggert <eggert@cs.ucla.edu>
1171
1172 Fix bug with non-%union parsers that have printers or destructors,
1173 which led to a Bison core dump. Reported by Peter Fales in
1174 <http://lists.gnu.org/archive/html/bug-bison/2004-07/msg00014.html>.
1175
1176 * data/c.m4 (b4_symbol_actions): Don't assume %union was used.
1177 * data/lalr1.cc (yystype) [defined YYSTYPE]: Define to YYSTYPE,
1178 not to our own type.
1179 * src/output.c (symbol_destructors_output, symbol_printers_output):
1180 Don't assume %union.
1181 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR,
1182 AT_CHECK_PRINTER_AND_DESTRUCTOR): New argument
1183 UNION-FLAG. All callers changed.
1184 (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't assume %union.
1185 Use type char, not unsigned int, when declaring an array of char;
1186 this lets us remove a cast.
1187 (Printers and Destructors): Add non-%union test cases.
1188
1189 2004-06-21 Paul Eggert <eggert@cs.ucla.edu>
1190
1191 * doc/bison.texinfo: Minor editorial changes, mostly to the new
1192 GLR writeups. E.g., avoid frenchspacing and the future tense,
1193 change "lookahead" to "look-ahead", and change "wrt" to "with
1194 respect to".
1195
1196 2004-06-21 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
1197
1198 * doc/bison.texinfo (Merging GLR Parses, Compiler Requirements):
1199 New sections, split off from the GLR Parsers section. Put the new
1200 Simple GLR Parser near the start of the GLR section, for clarity.
1201 Rewrite connective text.
1202
1203 2004-06-21 Frank Heckenbach <frank@g-n-u.de>
1204
1205 * doc/bison.texinfo (Simple GLR Parsers): New section.
1206
1207 2004-06-21 Paul Eggert <eggert@cs.ucla.edu>
1208
1209 * NEWS, TODO, doc/bison.texinfo:
1210 Use "look-ahead" instead of "lookahead", to be consistent.
1211 * REFERENCES: Fix incorrect reference to DeRemer and Pennello,
1212 while we're fixing "look-ahead".
1213 * src/conflicts.c (shift_set): Renamed from shiftset.
1214 (look_ahead_set): Renamed from lookaheadset.
1215 * src/print.c: Likewise.
1216 * src/getargs.c (report_args): Add "look-ahead" as the new canonical
1217 name for "lookahead".
1218 (report_types, usage): Likewise.
1219 * src/getargs.h (report_look_ahead_tokens): Renamed from
1220 report_lookaheads.
1221 * src/lalr.c (compute_look_ahead_tokens): Renamed from
1222 compute_lookaheads.
1223 (state_look_ahead_tokens_count): Renamed from state_lookaheads_count.
1224 (look_ahead_tokens_print): Renamed from lookaheads_print.
1225 * src/state.c (state_rule_look_ahead_tokens_print): Renamed from
1226 state_rule_lookaheads_print.
1227 * src/state.h: Likewise.
1228 (reductions.look_ahead_tokens): Renamed from lookaheads.
1229 * tests/torture.at (AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR): Renamed from
1230 AT_DATA_LOOKAHEADS_GRAMMAR.
1231
1232 2004-06-03 Paul Eggert <eggert@cs.ucla.edu>
1233
1234 * README: Update location of patched M4 distribution.
1235
1236 2004-05-30 Albert Chin-A-Young <china@thewrittenword.com>
1237
1238 Don't assume the C++ compiler takes the same arguments as the C compiler
1239 (trivial change).
1240 * configure.ac (O0CXXFLAGS): New var.
1241 * tests/atlocal.in (CXXFLAGS): Use it.
1242
1243 2004-05-29 Paul Eggert <eggert@cs.ucla.edu>
1244
1245 Fix some "make check" problems with C++ reported by
1246 Albert Chin-A-Young for Tru64 C++ in this thread:
1247 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00049.html
1248
1249 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check for std::cerr.
1250 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
1251 Output to a .cc file for C++, not to a .c file.
1252 * tests/calc.at (AT_CHECK_CALC): Likewise.
1253 * tests/regression.at (AT_CHECK_DANCER): Likewise.
1254 * tests/local.at (AT_COMPILE_CXX): Default to OUTPUT.cc, not OUTPUT.c.
1255
1256 2004-05-28 Albert Chin-A-Young <china@thewrittenword.com>
1257
1258 * tests/calc.at, tests/actions.at: Workaround for SGI
1259 C++ compiler. (trivial change)
1260
1261 2004-05-27 Paul Eggert <eggert@cs.ucla.edu>
1262
1263 Spent a few hours checking out which prerequisite versions the
1264 current sources actually require. I went all the way back to
1265 Gettext 0.10.40, Automake 1.4, and Autoconf 2.57 and investigated
1266 a seemingly endless set of combinations of versions more recent
1267 than that. The bottom line is that the current sources require
1268 fairly recent versions of the build tools, and it'll be some work
1269 to change this.
1270 * configure.ac (AC_PREREQ): Increase from 2.58 to 2.59.
1271 (AM_INIT_AUTOMAKE): Increase from 1.7 to 1.8.
1272 (AM_GNU_GETTEXT_VERSION): Increase from 0.11.5 to 0.12.
1273 Add comments explaining why those particular versions are
1274 currently needed.
1275
1276 * src/parse-gram.y (lloc_default): Rewrite to avoid compiler bug
1277 in SGI MIPSpro 7.4.1m. Problem reported by Albert Chin-A-Young in
1278 <http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00037.html>.
1279
1280 * configure.ac (AC_PREREQ): Bump to 2.58, since 2.57 doesn't work
1281 (it fails with a Autoconf-without-aclocal-m4 diagnostic).
1282
1283 2004-05-26 Paul Eggert <eggert@cs.ucla.edu>
1284
1285 * configure.ac (AM_GNU_GETTEXT_VERSION): Lower it from 0.14.1 to
1286 0.11.5. Suggested by Bruno Haible.
1287 * bootstrap: Remove gettext version checking.
1288
1289 * doc/bison.texinfo (Decl Summary): Also mention that %union
1290 can depend on prerequisite types. Problem reported by Tim
1291 Van Holder.
1292
1293 2004-05-25 Paul Eggert <eggert@cs.ucla.edu>
1294
1295 * README: Mention GNU m4 1.4 bugs and Akim's patched version.
1296 * README-alpha: Don't tell people not to package this.
1297
1298 * bootstrap: Don't assume $(...) works; use `...` instead.
1299 Problem reported by Paul Hilfinger. Also, diagnose non-GNU
1300 gettext better.
1301
1302 * doc/bison.texinfo (Decl Summary, Bison Options): Clarify what's
1303 put into the -d output file, and mention what to do if YYSTYPE is
1304 defined as a macro.
1305
1306 2004-05-24 Paul Eggert <eggert@cs.ucla.edu>
1307
1308 Undo change made earlier today: it caused autopoint to not bring
1309 in ABOUT-NLS. Ouch. Instead, substitute our own diagnostic for
1310 autopoint's.
1311
1312 * bootstrap: Check that gettext version matches what's in
1313 configure.ac. Warn users to ignore robots.txt ERROR 404.
1314 * bootstrap: Undo today's earlier change (logged below).
1315 * configure.ac (AM_GNU_GETTEXT_VERSION): Likewise.
1316
1317 The gettext version checking is causing more trouble than it's
1318 curing; remove it. Problem reported by Paul Hilfinger.
1319
1320 * bootstrap: Issue a warning that one can expect a message
1321 'AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION'.
1322 * configure.ac (AM_GNU_GETTEXT_VERSION): Remove.
1323
1324 2004-05-23 Paul Eggert <eggert@cs.ucla.edu>
1325
1326 Ensure that the C++ compiler used for testing actually works on a
1327 simple test program; if not, skip the C++-related tests. Problem
1328 reported by Vin Shelton in:
1329 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00026.html
1330
1331 * m4/cxx.m4: New file.
1332 * configure.ac (BISON_TEST_FOR_WORKING_CXX_COMPILER): Add.
1333 * tests/atlocal.in (BISON_CXX_WORKS): Add.
1334 * tests/local.at (AT_COMPILE_CXX): Use it.
1335
1336 2004-05-21 Paul Eggert <eggert@cs.ucla.edu>
1337
1338 * data/glr.c (yylloc): Output this macro even if locations are not
1339 being generated, as the GLR parser needs it even in that case.
1340 Problem reported by Troy A. Johnson
1341 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=195946>.
1342
1343 * configure.ac (AC_INIT): Update to 1.875e.
1344
1345 2004-05-21 Paul Eggert <eggert@cs.ucla.edu>
1346
1347 * NEWS: Version 1.875d.
1348 * configure.ac (AC_INIT): Likewise.
1349 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875d.
1350
1351 * configure.ac (--enable-gcc-warnings): Do not enable -Wshadow,
1352 -Wmissing-prototypes, or -Wstrict-prototypes for C++. The current
1353 lalr1.cc runs afoul of the first, and the last two are no longer
1354 supported by GCC 3.4.0.
1355 * README: Mention GNU m4 1.4 or later; mention m4 patches.
1356 * HACKING: Use ./bootstrap, not "make update" to import foreign files.
1357
1358 2004-05-06 Paul Eggert <eggert@cs.ucla.edu>
1359
1360 * src/muscle_tab.c (hash_muscle): Accept and return size_t, not
1361 unsigned int, for compatibility with latest gnulib hash module.
1362 * src/state.c (state_hash, state_hasher): Likewise.
1363 * src/symtab.c (hash_symbol, hash_symbol_hasher): Likewise.
1364 * src/uniqstr.c (hash_uniqstr): Likewise.
1365
1366 2004-05-03 Paul Eggert <eggert@cs.ucla.edu>
1367
1368 * NEWS: Unescaped newlines are no longer allowed in char & strings.
1369
1370 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER,
1371 SC_CHARACTER,SC_STRING>): Reject unescaped newlines in
1372 character and string literals.
1373 (unexpected_end): New function.
1374 (unexpected_eof): Use it.
1375 (unexpected_newline): New function.
1376 (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>): Coalesce duplicate
1377 actions.
1378
1379 * NEWS: Document %expect-rr.
1380
1381 * bootstrap (--gnulib-srcdir=*, --cvs-user=*):
1382 Fix typo by replacing $1 with $option.
1383 Remove more 'intl'-related files.
1384 Don't DEFUN AM_INTL_SUBDIR twice.
1385
1386 * lib/.cvsignore: Add strndup.h. Remove memchr.c, memcmp.c,
1387 memrchr.c, strcasecmp.c, strchr.c, strrchr.c, strspn.c, strtol.c,
1388 strtoul.c.
1389 * m4/.cvsignore: Add exitfail.m4, extensions.m4, gnulib.m4,
1390 hard-locale.m4, mbstate_t.m4, strerror_r.m4, strndup.m4,
1391 xstrndup.m4. Remove glibc21.m4, intdiv0.m4, inttypes-pri.m4,
1392 inttypes.m4, inttypes_h.m4, isc-posix.m4, lcmessage.m4,
1393 stdint_h.m4, uintmax_t.m4, ulonglong.m4.
1394 * src/.cvsignore: Add *.output.
1395
1396 * src/parse-gram.y: Put copyright notice inside %{ %} so it
1397 gets copied to the output file.
1398
1399 2004-04-28 Paul Eggert <eggert@twinsun.com>
1400
1401 Get files from the gnulib and po repositories, instead of relying
1402 on them being in our CVS. Upgrade to latest versions of gnulib
1403 and Automake.
1404
1405 * Makefile.am (SUBDIRS): Remove m4; Automake now does m4.
1406 * bootstrap: Bootstrap from gnulib and po repositories.
1407 Much of this code was stolen from GNU diff and GNU tar's bootstrap.
1408 * README-cvs: Document these changes. Remove version numbers from
1409 mentions of build tools, since they change so often. Mention Flex.
1410
1411 * configure.ac (AC_CONFIG_MACRO_DIR): Add, with m4 as arg.
1412 (gl_USE_SYSTEM_EXTENSIONS): Add.
1413 (AC_GNU_SOURCE, AC_AIX, AC_MINIX):
1414 Remove; no longer needed, as gl_USE_SYSTEM_EXTENSIONS
1415 does this for us.
1416 (AC_ISC_POSIX): Remove; we no longer support this
1417 ancient OS, as it gets in the way of latest Autoconf & gnulib.
1418 (AC_HEADER_STDC): Remove: we now assume C89 or better.
1419 (AC_CHECK_HEADERS_ONCE): Use instead of AC_CHECK_HEADERS.
1420 Do not check for C89 headers, except for locale.h which is used
1421 by the Yacc library and must port to K&R hosts.
1422 (AC_CHECK_FUNCS_ONCE): Use instead of AC_CHECK_FUNCS.
1423 Do not check for C89 functions, except for setlocale which is
1424 used by the Yacc library.
1425 (AC_CHECK_DECLS, AC_REPLACE_FUNCS): Remove; no longer needed.
1426 (gl_DIRNAME, gl_ERROR, gl_FUNC_ALLOCA, gl_FUNC_MEMCHR,
1427 gl_FUNC_MEMRCHR, gl_FUNC_STPCPY, gl_FUNC_STRNLEN, gl_FUNC_STRTOL,
1428 gl_GETOPT, gl_HASH, gl_MBSWIDTH, gl_OBSTACK, gl_QUOTE,
1429 gl_QUOTEARG, gl_XALLOC, jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_MALLOC,
1430 AM_GNU_GETTEXT): Remove; now done by:
1431 (GNULIB_AUTOCONF_SNIPPET): Add. "bootstrap" builds this for us.
1432 (AC_CONFIG_FILES): Remove m4/Makefile, as Automake now does this
1433 for us.
1434
1435 * lib/Makefile.am: Include gnulib.mk, built for us by "bootstrap".
1436 (BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES):
1437 Define to empty, as gnulib.mk will do the rest for us.
1438 ($(libbison_a_OBJECTS), stdbool.h): Remove, as gnulib.mk does this
1439 for us.
1440 (libbison_a_SOURCES): Define to $(lib_SOURCES) now.
1441 (lib_SOURCES): New symbol, containing only the non-gnulib libs.
1442
1443 * src/files.c: Include gnulib's xstrndup.h.
1444
1445 * src/system.h (MALLOC): Use xnmalloc, for better overflow checking.
1446 (REALLOC): Use xnrealloc, for likewise.
1447 (xstrndup, stpcpy): Remove decls, as gnulib does this for us now.
1448 (strnlen, memrchr): Remove decls; functions no longer used.
1449 Include <stpcpy.h>.
1450
1451 * config/depcomp, config/install-sh, lib/alloca.c, lib/argmatch.c,
1452 lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
1453 lib/error.c, lib/error.h, lib/getopt.c, lib/getopt.h,
1454 lib/getopt1.c, lib/gettext.h, lib/hash.c, lib/hash.h,
1455 lib/malloc.c, lib/mbswidth.c, lib/mbswidth.h, lib/memchr.c,
1456 lib/memcmp.c, lib/memrchr.c, lib/obstack.c, lib/obstack.h,
1457 lib/quote.c, lib/quote.h, lib/quotearg.c, lib/quotearg.h,
1458 lib/realloc.c, lib/stdbool_.h, lib/stpcpy.c, lib/strcasecmp.c,
1459 lib/strchr.c, lib/strncasecmp.c, lib/strnlen.c, lib/strrchr.c,
1460 lib/strspn.c, lib/strtol.c, lib/strtoul.c, lib/unlocked-io.h,
1461 lib/xalloc.h, lib/xmalloc.c, lib/xstrdup.c, lib/xstrndup.c,
1462 m4/Makefile.am, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
1463 m4/error.m4, m4/getopt.m4, m4/hash.m4, m4/malloc.m4,
1464 m4/mbrtowc.m4, m4/mbswidth.m4, m4/memchr.m4, m4/memcmp.m4,
1465 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/prereq.m4,
1466 m4/quote.m4, m4/quotearg.m4, m4/realloc.m4, m4/stdbool.m4,
1467 m4/stpcpy.m4, m4/strnlen.m4, m4/strtol.m4, m4/strtoul.m4,
1468 m4/unlocked-io.m4, m4/xalloc.m4, po/LINGUAS, po/Makefile.in.in,
1469 po/Makevars, po/da.po, po/de.po, po/es.po, po/et.po, po/fr.po,
1470 po/hr.po, po/id.po, po/it.po, po/ja.po, po/ms.po, po/nl.po,
1471 po/pt_BR.po, po/ro.po, po/ru.po, po/sv.po, po/tr.po:
1472 Remove, as these files are now generated automatically
1473 by bootstrap or automake.
1474
1475 * po/ChangeLog: Remove: all but one entry was a duplicate
1476 of this file, and I moved that 2000-11-02 entry here.
1477
1478 * config/.cvsignore: Add Makefile, depcomp, install-sh.
1479 * lib/.cvsignore: Add alloca.c, alloca.h, alloca_.h, argmatch.c,
1480 argmatch.h, basename.c, dirname.c, dirname.h, error.c, error.h,
1481 exit.h, exitfail.c, exitfail.h, getopt.c, getopt.h, getopt1.c,
1482 getopt_int.h, gettext.h, gnulib.mk, hard-locale.c, hard-locale.h,
1483 hash.c, hash.h, malloc.c, mbswidth.c, mbswidth.h, memchr.c,
1484 memcmp.c, memrchr.c, obstack.c, obstack.h, quote.c, quote.h,
1485 quotearg.c, quotearg.h, realloc.c, stdbool_.h, stpcpy.c, stpcpy.h,
1486 strcasecmp.c, strchr.c, stripslash.c, strncasecmp.c, strndup.c,
1487 strnlen.c, strrchr.c, strspn.c, strtol.c, strtoul.c,
1488 unlocked-io.h, xalloc.h, xmalloc.c, xstrdup.c, xstrndup.c,
1489 xstrndup.h.
1490 * m4/.cvsignore: Remove Makefile, Makefile.in. Add alloca.m4,
1491 dirname.m4, dos.m4, error.m4, getopt.m4, hash.m4, mbrtowc.m4,
1492 mbswidth.m4, obstack.m4, onceonly.m4, quote.m4, quotearg.m4,
1493 stdbool.m4, stpcpy.m4, strnlen.m4, unlocked-io.m4, xalloc.m4.
1494 * po/.cvsignore: Add *.po, LINGUAS, Makefile.in.in, Makevars.
1495 * src/.cvsignore: Remove *_.c.
1496
1497
1498 * Makefile.maint (GZIP_ENV): Don't use --rsyncable if gzip doesn't
1499 support it. (The latest stable gzip doesn't.)
1500
1501 2004-04-27 Paul Eggert <eggert@twinsun.com>
1502
1503 * data/lalr1.cc (Parser::stos_) [! YYDEBUG]: Define even in this
1504 case, as stos_ is now used by destructors due to the 2004-02-09
1505 change.
1506
1507 Remove more K&R C support.
1508 * lib/libiberty.y (PARAMS): Remove. All uses removed.
1509 * lib/subpipe.c (errno): Remove decl.
1510 Include <stdlib.h> unconditionally.
1511 (EXIT_FAILURE): Remove macro.
1512 * src/complain.c (vfprintf, strerror): Remove.
1513 * src/system.h: Include limits.h, stdlib.h, string.h, locale.h
1514 unconditionally.
1515 (EXIT_FAILURE, EXIT_SUCCESS, setlocale): Remove defns.
1516 Use latest Autoconf recommendations for including inttypes.h, stdint.h.
1517 (strchr, strspn, memchr): Remove decls.
1518 * tests/calc.at (_AT_DATA_CALC_Y): Include stdlib.h, string.h
1519 unconditionally. Do not declare perror.
1520 * tests/conflicts.at (%nonassoc and eof): Include stdlib.h
1521 unconditionally.
1522
1523 * src/complain.c (_): Remove useless defn, as system.h defines this.
1524
1525 * lib/bitset.h (__INT_TO_PTR): Remove; workaround no longer needed
1526 with latest obstack.h.
1527 * lib/ebitset.c (ebitset_elt_alloc): Don't bother to cast args
1528 to procedure types, as obstack.h now does that for us.
1529 * lib/lbitset.c (lbitset_elt_alloc): Likewise.
1530
1531 * lib/subpipe.h [HAVE_SYS_TYPES_H]: Include <sys/types.h>,
1532 so that this include file can stand alone.
1533 * lib/subpipe.c: Do not include <sys/types.h>, as subpipe.h
1534 does this now. Include subpipe.h first after config.h, to
1535 test whether it can stand alone.
1536
1537 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't
1538 declare yyerror when using lalr.cc, as GCC 3.4.0 warns about the
1539 unused declaration.
1540
1541 * tests/synclines.at (%union synch line): Put a dummy member in
1542 the union, because empty unions aren't allowed in C. Caught
1543 by GCC 3.4.0.
1544
1545 2004-04-13 Jim Meyering <jim@meyering.net>
1546
1547 * src/conflicts.c (conflicts_print): Correct format string typo:
1548 use `%%' to produce literal `%'. (trivial change)
1549
1550 2004-03-30 Paul Eggert <eggert@twinsun.com>
1551
1552 * src/getargs.c (version): Update copyright year to 2004.
1553
1554 * data/c.m4 (b4_int_type): Use 'short int' rather than
1555 'short', and similarly for 'long', 'unsigned', etc.
1556 * data/glr.c (YYTRANSLATE, yyconfl, yySymbol, yyItemNum,
1557 yygetLRActions, yyprocessOneStack, yyrecoverSyntaxError,
1558 yy_yypstack, yydumpstack): Likewise.
1559 * data/lalr1.cc (user_token_number_max_, user_token_number_max_,
1560 translate_, seq_, [], pop, Slice, range_, operator+, operator+=):
1561 Likewise.
1562 * data/yacc.c (b4_int_type, yyss, YYSTACK_BYTES, yysigned_char,
1563 yy_stack_print, yyparse): Likewise.
1564 * doc/bison.texinfo (Prologue, Multiple Types): Likewise.
1565 * lib/bbitset.h (bitset_word, BITSET_WORD_BITS): Likewise.
1566 * lib/bitset.c (bitset_print): Likewise.
1567 * lib/bitset_stats.c (bitste_log_histogram_print): Likewise.
1568 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
1569 * lib/bitsetv.c (bitsetv_dump): Likewise.
1570 * lib/ebitset.c (EBITSET_ELT_BITS, ebitset_elt_alloc): Likewise.
1571 * lib/lbitset.c (LBITSET_ELT_BITS, lbitset_elt_alloc, debug_lbitset):
1572 Likewise.
1573 * src/LR0.c (allocate_itemsets): Likewise.
1574 * src/gram.h (rule_number, rule): Likewise.
1575 * src/lalr.h (goto_number): Likewise.
1576 * src/nullable.c (nullable_compute): Likewise.
1577 * src/output.c (prepare_rules): Likewise.
1578 * src/relation.c (relation_print, relation_digraph): Likewise.
1579 * src/relation.h (relation_node): Likewise.
1580 * src/state.h (state_number, transitions, errs, reductions,
1581 struct state): Likewise.
1582 * src/symtab.h (symbol_number, struct symbol): Likewise.
1583 * src/tables.c (vector_number, tally, action_number,
1584 default_goto, goto_actions): Likewise.
1585 * tests/existing.at (GNU Cim Grammar): Likewise.
1586 * tests/regression.at (Web2c Actions): Likewise.
1587
1588 * src/output.c (muscle_insert_short_int_table): Renamed from
1589 muscle_insert_short_table. All uses changed.
1590
1591 2004-03-25 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
1592
1593 * src/parse-gram.y: Define PERCENT_EXPECT_RR.
1594 (declaration): Replace expected_conflicts with expected_sr_conflicts.
1595 Add %expect-rr rule.
1596
1597 * src/scan-gram.l: Recognize %expect-rr.
1598
1599 * src/conflicts.h (expected_sr_conflicts): Rename from
1600 expected_conflicts.
1601 (expected_rr_conflicts): Declare.
1602
1603 * src/conflicts.c (expected_sr_conflicts): Rename from
1604 expected_conflicts.
1605 (expected_rr_conflicts): Define.
1606 (conflicts_print): Check r/r conflicts against expected_rr_conflicts
1607 for GLR parsers.
1608 Use expected_sr_conflicts in place of expected_conflicts.
1609 Warn if expected_rr_conflicts used in non-GLR parser.
1610
1611 * doc/bison.texinfo: Add documentation for %expect-rr.
1612
1613 2004-03-08 Paul Eggert <eggert@gnu.org>
1614
1615 Add support for hex token numbers. Suggested by Odd Arild Olsen in
1616 <http://lists.gnu.org/archive/html/bison-patches/2004-03/msg00000.html>.
1617
1618 * NEWS: Document hexadecimal tokens, no NUL bytes, %destructor
1619 in lalr1.cc.
1620 * doc/bison.texinfo (Token Decl): Add hexadecimal token numbers.
1621 * src/scan-gram.l (scan_integer): New function.
1622 ({int}): Use it.
1623 (0[xX][0-9abcdefABCDEF]+): New pattern, to support hex numbers.
1624 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>, \\x[0-9abcdefABCDEF]+,
1625 handle_action_dollar, handle_action_at, convert_ucn_to_byte):
1626 Say "long int", not "long", for uniformity with GNU style.
1627
1628 2004-02-25 Paul Eggert <eggert@twinsun.com>
1629
1630 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Ignore stdout from
1631 compilers. This fixes a problem with Intel's C++ compiler being
1632 chatty, reported by Guido Trentalancia in
1633 <http://lists.gnu.org/archive/html/bug-bison/2004-02/msg00030.html>.
1634
1635 2004-02-09 Alexandre Duret-Lutz <adl@gnu.org>
1636
1637 Support %destructor and merge error locations in lalr1.cc.
1638
1639 * data/lalr1.cc (b4_cxx_destruct_def): New macro.
1640 (Parser::stos_): Define unconditionally.
1641 (Parser::destruct_): New method. Generate its body with
1642 b4_yydestruct_generate.
1643 (Parser::error_start_): New attribute.
1644 (Parser::parse) <yyerrlab, yyerrlab1>: Call destruct_ on erroneous
1645 token which are discarded.
1646 (Parser::parse) <yyerrlab, yyerrorlab, yyerrlab1>: Update
1647 error_start_ when erroneous token are discarded.
1648 (Parser::parse) <yyerrlab1>: Compute the location of the error
1649 token so that it covers all the discarded tokens.
1650 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust so
1651 it can be called with `%skeleton "lalr1.cc"', and do that.
1652
1653 2004-02-02 Paul Eggert <eggert@twinsun.com>
1654
1655 * src/Makefile.am (AM_CPPFLAGS): New macro. It mentions
1656 $(top_srcdir)/lib and ../lib. This fixes a bug reported
1657 by Paul Hilfinger; the old INCLUDES value didn't mention ../lib.
1658 There's no need to mention top_builddir since Automake does that
1659 for us.
1660 (INCLUDES): Remove, as Automake says it's obsolescent.
1661 Contents migrated into AM_CPPFLAGS as described above.
1662 * lib/Makefile.am (INCLUDES): Remove; obsolescent.
1663
1664 2004-01-14 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
1665
1666 * data/glr.c (yytokenName): Bullet-proof against YYEMPTY token.
1667 (yyreportSyntaxError): Handle case where lookahead token is
1668 YYEMPTY.
1669
1670 2004-01-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1671
1672 * data/glr.c: Put casts on uses of YYREALLOC and YYMALLOC so that
1673 resulting parsers are compilable with C++.
1674
1675 2003-12-23 Paul Eggert <eggert@twinsun.com>
1676
1677 * config/depcomp, config/install-sh: Sync with Automake 1.8.
1678 * src/output.c (output_skeleton): Rename local var.
1679 * tests/input.at (Torturing the Scanner): Don't use \x0 or \0 in
1680 Bison tokens, as this runs afoul of the 2003-10-07 change that
1681 disallowed NUL bytes in character constants or string literals.
1682
1683 * tests/local.at: Require Autoconf 2.59's Autotest.
1684 * tests/testsuite.at: Don't include local.at, since we now assume
1685 Autoconf 2.59 or later. Autoconf 2.59 had some problems with
1686 including it.
1687 * tests/Makefile.am ($(TESTSUITE)): Remove warning about ignoring
1688 multiple inclusion warnings.
1689
1690 2003-12-02 Akim Demaille <akim@epita.fr>
1691
1692 * doc/bison.texinfo (How Can I Reset the Parser): More about start
1693 conditions.
1694 From Bruno Haible.
1695
1696 2003-11-18 Alexandre Duret-Lutz <adl@gnu.org>
1697
1698 * doc/bison.texinfo (Bison Options): Escape `@' in `$@'.
1699
1700 2003-10-07 Paul Eggert <eggert@twinsun.com>
1701
1702 * tests/Makefile.am (clean-local): Don't run 'testsuite --clean'
1703 if testsuite doesn't exist.
1704
1705 * doc/bison.texinfo (Symbols): NUL bytes are not allowed in string
1706 literals, unfortunately.
1707 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>):
1708 Complain about NUL bytes in character constants or string literals.
1709
1710 2003-10-05 Paul Eggert <eggert@twinsun.com>
1711
1712 * NEWS: Don't document %no-default-prec, as it's still
1713 too experimental.
1714 * doc/bison.texinfo: Document %no-default-prec only if
1715 the defaultprec flag is set. Normally it's not.
1716
1717 2003-10-04 Paul Eggert <eggert@twinsun.com>
1718
1719 * data/glr.c (b4_rhs_value, b4_rhs_location): Yield a
1720 non-modifiable lvalue, instead of a modifiable one.
1721 * doc/bison.texinfo (Actions): Document that $$ can
1722 be assigned to. Do not claim that $$ and $N are
1723 array element references: user code should not rely on this.
1724
1725 2003-10-01 Paul Eggert <eggert@twinsun.com>
1726
1727 * src/parse-gram.h (PERCENT_NO_DEFAULT_PREC): New token.
1728 (grammar_declaration): Use it.
1729 * src/scan-gram.l: New token %no-default-prec.
1730 * tests/conflicts.at: Revamp tests to use %no-default-prec.
1731 * NEWS, doc/bison.texinfo: Document the above.
1732
1733 2003-10-01 Akim Demaille <akim@epita.fr>
1734
1735 VCG no longer supports long_straight_phase.
1736
1737 * src/vcg.c, src/vcg.h: Remove the handling of long_straight_phase.
1738 * src/print_graph.c (print_graph): Adjust.
1739
1740 2003-09-30 Frank Heckenbach <frank@g-n-u.de>
1741 and Paul Eggert <eggert@twinsun.com>
1742
1743 * doc/bison.texinfo (Decl Summary, Contextual Precedence,
1744 Table of Symbols): Document %default-prec.
1745 * src/parse-gram.y (PERCENT_DEFAULT_PREC): New token.
1746 (grammar_declaration): Set default_prec on %default-prec.
1747 * src/scan-gram.l (%default-prec): New token.
1748 * src/reader.h (default_prec): New flag.
1749 * src/reader.c: Likewise.
1750 (packgram): Handle it.
1751 * tests/conflicts.at (%default-prec without %prec,
1752 %default-prec with %prec, %default-prec 1): New tests.
1753
1754 2003-09-30 Paul Eggert <eggert@twinsun.com>
1755
1756 * tests/testsuite.at: Include local.at, not input.at, fixing
1757 a typo in the 2003-08-25 patch.
1758
1759 2003-08-27 Akim Demaille <akim@epita.fr>
1760
1761 * data/lalr1.cc (yyparse) [__GNUC__]: "Use" yyerrorlab to pacify
1762 GCC warnings.
1763
1764 2003-08-26 Akim Demaille <akim@epita.fr>
1765
1766 * config/announce-gen (print_changelog_deltas): Neutralize "<#" as
1767 "<\#" to avoid magic from Gnus when posting parts of this script.
1768
1769 2003-08-26 Akim Demaille <akim@epita.fr>
1770
1771 * data/lalr1.cc (Parser::report_syntax_error_): New, extracted from
1772 (Parser::parse): here.
1773 Adjust: nerrs and errstatus is now replaced by...
1774 (Parser::nerrs_, Parser::errstatus_): New.
1775
1776 2003-08-25 Akim Demaille <akim@epita.fr>
1777
1778 * config/announce-gen, Makefile.cfg: New.
1779 * Makefile.am: Adjust.
1780 * GNUmakefile, Makefile.maint: Update from CVS Autoconf, but
1781 keeping local WGET and WGETFLAGS modifications from Paul Eggert.
1782
1783 2003-08-25 Akim Demaille <akim@epita.fr>
1784
1785 When reducing initial empty rules, Bison parser read an initial
1786 location that is not defined. This results in garbage, and that
1787 affects Bison's own parser. Therefore we need (i) to extend Bison
1788 to support a means to initialize this location, and (ii) to use
1789 this CVS Bison to fix CVS Bison's parser.
1790
1791 * src/reader.h, reader.c (epilogue_augment): Remove, replace
1792 with...
1793 * src/muscle_tab.h, src/muscle_tab.c (muscle_code_grow): this.
1794 * src/parse-gram.y: Adjust.
1795 (%initial-action): New.
1796 (%error-verbose): Since we require CVS Bison, there is no reason
1797 not to use it.
1798 * src/scan-gram.l: Adjust.
1799 * src/Makefile.am (YACC): New, to make sure we use our own parser.
1800 * data/yacc.c (yyparse): Use b4_initial_action.
1801
1802 2003-08-25 Akim Demaille <akim@epita.fr>
1803
1804 * doc/bison.texinfo: Don't promote stdout for error messages.
1805
1806 2003-08-25 Akim Demaille <akim@epita.fr>
1807
1808 * data/lalr1.cc (Parser::reduce_print_): Remove unused yyi.
1809 From Alexandre Duret-Lutz.
1810
1811 2003-08-25 Akim Demaille <akim@epita.fr>
1812
1813 Version 1.875c.
1814
1815 2003-08-25 Akim Demaille <akim@epita.fr>
1816
1817 * data/lalr1.cc (Parser::stack_print_, YY_STACK_PRINT): New.
1818 Use them.
1819
1820 2003-08-25 Akim Demaille <akim@epita.fr>
1821
1822 * data/lalr1.cc (Parser::reduce_print_): New.
1823 Use it.
1824
1825 2003-08-25 Akim Demaille <akim@epita.fr>
1826
1827 Have lalr1.cc catch with Paul Eggert's patch to fix the infinite
1828 error recovery loops. This patch is based on
1829 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00000.html>.
1830 Also, augment the similarity between lalr1.cc and yacc.c.
1831 Note: the locations of error recovery rules are not correct yet.
1832
1833 * data/lalr1.cc: Comment changes to augment the similarity between
1834 lalr1.cc and yacc.c.
1835 (YYERROR): Goto to yyerrorlab, not yyerrlab1.
1836 (yyerrlab1): Remove, but where it used to be (now the bottom part of
1837 yyerrlab), when hitting EOF, pop the whole stack here instead of
1838 merely falling thru the default error handling mechanism.
1839 (yyerrorlab): New label, with the old contents of YYERROR,
1840 plus the following change: pop the stack of rhs corresponding
1841 to the production that invoked YYERROR. That is how Yacc
1842 behaves (required by POSIX).
1843 * tests/calc.at (AT_CHECK_CALC_LALR1_CC): No longer expected to
1844 fail.
1845
1846 2003-08-25 Akim Demaille <akim@epita.fr>
1847
1848 Tune local.at so that people can "autom4te -l autotest calc.at -o
1849 calc" for instance, to extract a sub test suite.
1850
1851 * tests/testsuite.at: Move the initialization, Autotest version
1852 requirement, and AT_TESTED invocation into...
1853 * tests/local.at: here.
1854 * tests/testsuite.at: Include it for compatibility with Autoconf
1855 2.57.
1856 * tests/Makefile.am ($(TESTSUITE)): Report that the warning should
1857 be ignore.
1858
1859 2003-08-04 Paul Eggert <eggert@twinsun.com>
1860
1861 Rework code slightly to avoid gcc -Wtraditional warnings.
1862 * data/glr.c (yyuserMerge): Return void, not YYSTYPE.
1863 The returned value is now stored in *YY0. All callers changed.
1864 * src/output.c (merge_output): Adjust to the above change.
1865
1866 2003-07-26 Paul Eggert <eggert@twinsun.com>
1867
1868 * data/glr.c (YYASSERT): New macro.
1869 (yyfillin, yydoAction, yyglrReduce, yysplitStack,
1870 yyresolveStates, yyprocessOneStack):
1871 Use `YYASSERT (FOO);' rather than `if (! (FOO)) abort ();'.
1872 Derived from a suggestion by Frank Heckenbach.
1873
1874 2003-07-25 Paul Eggert <eggert@twinsun.com>
1875
1876 * data/glr.c (yyglrReduce): Don't use C89 string concatenation,
1877 for portability to K&R C (after ansi2knr, presumably). See
1878 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>
1879 by Frank Heckenbach, though I have omitted the structure-initialization
1880 part of his glr-knr.diff patch since I recall that the Portable
1881 C Compiler didn't require that change.
1882
1883 Let the user specify how to allocate and free memory.
1884 Derived from a suggestion by Frank Heckenbach in
1885 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>.
1886 * data/glr.c (YYFREE, YYMALLOC, YYREALLOC): New macros.
1887 All uses of free, malloc, realloc changed to use these macros,
1888 and unnecessary casts removed.
1889 * data/yacc.c (YYFREE, YYMALLOC): Likewise.
1890
1891 2003-07-06 Matthias Mann <MatthiasMann@gmx.de>
1892
1893 * data/lalr1.cc (operator<<(std::ostream&, const Position&)):
1894 use s.empty() rather than s == "" to test for empty string; see
1895 <http://lists.gnu.org/archive/html/bison-patches/2003-07/msg00003.html>
1896 (trivial change)
1897
1898 2003-06-25 Akim Demaille <akim@epita.fr>
1899
1900 * config/depcomp, config/install-sh: Update from masters.
1901
1902 2003-06-20 Paul Eggert <eggert@twinsun.com>
1903
1904 * data/glr.c (YYLLOC_DEFAULT): Parenthesize arguments as needed,
1905 and return properly parenthesized result.
1906 * data/lalar1.cc (YYLLOC_DEFAULT): Likewise.
1907 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
1908 Remove unnecessary parentheses from uses.
1909 * doc/bison.texinfo (Location Default Action): Describe the
1910 conventions for parentheses.
1911
1912 2003-06-19 Paul Eggert <eggert@twinsun.com>
1913
1914 * data/glr.c (yyremoveDeletes, yy_reduce_print, yyglrReduce,
1915 yyreportTree): Do not assume that size_t is the same width as int,
1916 when printing sizes. Print sizes using an unsigned format.
1917 Problem reported by Frank Heckenbach in
1918 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00035.html>.
1919
1920 Port to Forte Developer 7 C compiler.
1921 * data/glr.c (struct YYLTYPE): If locations are not being used,
1922 declare a single dummy member, as empty structs do not conform
1923 to the C standard.
1924 (YYERROR, YYBACKUP): Do not use "do { ...; return foo; } while (0)";
1925 the Forte Developer 7 C compiler complains that end-of-loop
1926 code is not reached.
1927
1928 2003-06-17 Paul Eggert <eggert@twinsun.com>
1929
1930 * lib/libiberty.h (PARAMS): Spell argument as Args, not as X, to
1931 avoid warnings from picky compilers about redefinition of PARAMS.
1932
1933 2003-06-17 Paul Eggert <eggert@twinsun.com>
1934
1935 Version 1.875b.
1936
1937 * NEWS: Document 1.875b.
1938
1939 * lib/bbitset.h: Do not include config.h; that's the includer's job.
1940 Do not include <sys/types.h>; shouldn't be needed on a C89 host.
1941 * lib/bitset.h (bitset_compatible_p): Indent as per GNU standard.
1942 Don't use 'index' in comments, as it's a builtin fn on some hosts.
1943 * lib/bitset_stats.c: Include gettext.h unconditionally, as
1944 per recent gettext manual's suggestion.
1945 * lib/ebitset.c (ebitset_resize, ebitset_unused_clear):
1946 Use prototypes, not old-style definitions.
1947 * lib/lbitset.c (lbitset_unused_clear): Likewise.
1948 * lib/vbitset.c (vbitset_resize, vbitset_ones, vbitset_zero,
1949 vbitset_empty_p, vbitset_copy1, vbitset_not, vbitset_equal_p,
1950 vbitset_subset_p, vbitset_disjoint_p, vbitset_and, vbitset_and_cmp,
1951 vbitset_andn, vbitset_andn_cmp, vbitset_or, vbitset_or_cmp,
1952 vbitset_xor, vbitset_xor_cmp, vbitset_and_or, vbitset_and_or_cmp,
1953 vbitset_andn_or, vbitset_andn_or_cmp, vbitset_or_and,
1954 vbitset_or_and_cmp, vbitset_copy): Likewise.
1955
1956 * lib/libiberty.h: Do not include config.h; that's the includer's job.
1957 Do not include <stdlib.h>.
1958 (PARAMS): Define unconditionally for C89.
1959 (ATTRIBUTE_NORETURN): Remove.
1960 (ATTRIBUTE_UNUSED): Define unconditionally.
1961
1962 Upgrade to 2003-06-08 libbitset, submitted by Michael Hayes in:
1963 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00005.html>
1964 * lib/Makefile.am (bitsets_sources): Add vbitset.c, vbitset.h.
1965 * lib/vbitset.c, lib/vbitset.h: New files.
1966 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
1967 lib/bitset_stats.c, lib/ebitset.c, lib/lbitset.c: Import
1968 from libbitset.
1969
1970 * doc/bison.texinfo (How Can I Reset the Parser): Renamed from
1971 `How Can I Reset @code{yyparse}', since texinfo does not allow
1972 arbitrary @ in node names.
1973
1974 * m4/Makefile.am (EXTRA_DIST): Add the following files, which
1975 shouldn't be needed according to the gettext 0.12.1 documentation
1976 but which seem to be needed anyway: codeset.m4 glibc21.m4
1977 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4
1978 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
1979 * po/Makefile.in.in: Upgrade to gettext 0.12.1 version.
1980
1981 * lib/.cvsignore: Add stdbool.h.
1982 * m4/.cvsignore: Add nls.m4, po.m4.
1983
1984 Upgrade to CVS gnulib.
1985 * stdbool_.h: File renamed from stdbool.h.in.
1986 * configure.ac (AM_STDBOOL_H): Invoke this instead of
1987 AC_HEADER_STDBOOL.
1988 (AM_GNU_GETTEXT): Put brackets around args, as latest manual suggests.
1989 (AM_GNU_GETTEXT_VERSION): Update to 0.12.1.
1990 * lib/Makefile.am (EXTRA_DIST): Add stdbool_.h.
1991 (MOSTLYCLEANFILES): New var.
1992 ($(libbison_a_OBJECTS)): Depend on $(STDBOOL_H).
1993 (stdbool.h): New rule.
1994 * lib/dirname.c, lib/dirname.h, lib/hash.c, lib/hash.h,
1995 lib/malloc.c, lib/obstack.h, lib/quote.c, lib/realloc.c,
1996 lib/strcasecmp.c, lib/xalloc.h, m4/alloca.m4, m4/onceonly.m4,
1997 m4/quote.m4: Upgrade to today's gnulib.
1998
1999 * tests/calc.at (AT_CHECK_CALC): New option EXPECTED-TO-FAIL.
2000 (AT_CHECK_CALC_LALR1_CC): Use it, since the C++ LALR parser fails
2001 the tests right now.
2002 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Ensure yylex and
2003 yyerror are declared before use; C99 requires this.
2004
2005 2003-06-09 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2006
2007 * data/glr.c (YYERROR): Update definition to reset yyerrState to 0
2008 first.
2009 (yyrecoverSyntaxError): Correct the logic for setting and testing
2010 yyerrState.
2011 Correct comment on handling EOF.
2012 Allow states with only a default reduction, rather than failing
2013 (I can't quite reconstruct why these were not allowed before).
2014
2015 Fixes to avoid problem that $-N rules in GLR parsers can cause
2016 buffer overruns, corrupting state.
2017
2018 * src/output.c (prepare_rules): Output max_left_semantic_context
2019 definition.
2020 * src/reader.h (max_left_semantic_context): New variable declaration.
2021 * src/scan-gram.l (max_left_semantic_context): Define.
2022 (handle_action_dollar): Update max_left_semantic_context.
2023 * data/glr.c (YYMAXLEFT): New definition.
2024 (yydoAction): Increase size of yyrhsVals by YYMAXLEFT.
2025 (yyresolveAction): Ditto.
2026
2027 Fixes to problems with location handling in GLR parsers reported by
2028 Frank Heckenbach (2003/06/05).
2029
2030 * data/glr.c (YYLTYPE): Make trivial if locations not used.
2031 (YYRHSLOC): Add parentheses, and define only if locations used.
2032 (YYLLOC_DEFAULT): Add parentheses, and give trivial definition if
2033 locations not used.
2034 (yyuserAction): Use YYLLOC_DEFAULT to set *yylocp.
2035 (yydoAction): Remove redundant initialization of *yyvalp and *yylocp.
2036
2037 * tests/cxx-type.at: Exercise location information; update tests
2038 to differentiate output with and without locations.
2039 Remove forward declarations of yylex and yyerror---caused errors
2040 because default YYLTYPE not yet defined.
2041 Change semantic actions to compute strings, rather than printing
2042 them directly (to test proper passing of semantics values). Change
2043 output to prefix notation and update test data and expected results.
2044 (yylex): Track locations.
2045 (stmtMerge): Return value rather than printing, and include arguments
2046 in value.
2047
2048 2003-06-03 Paul Eggert <eggert@twinsun.com>
2049
2050 Avoid warnings generated by GCC 2.95.4 when Bison is
2051 configured with --enable-gcc-warnings.
2052 * data/lalr1.cc (yy::]b4_parser_class_name[::parse,
2053 yy::]b4_parser_class_name[::translate_,
2054 yy::Stack::operator[] (unsigned),
2055 yy::Stack::operator[] (unsigned) const,
2056 yy::Slice::operator[] (unsigned),
2057 yy::Slice::operator[] (unsigned) const):
2058 Rename local vars to avoid warnings.
2059 * tests/glr-regression.at (Improper handling of embedded actions
2060 and $-N in GLR parsers): Remove unused local variable from yylex.
2061 * tests/regression.at (_AT_DATA_DANCER_Y): Declare yylex to take
2062 (void) as arg when not pure, since we now assume C89 when building
2063 Bison. Pacify GCC by using parameter.
2064
2065 2003-06-02 Paul Eggert <eggert@twinsun.com>
2066
2067 * data/lalr1.cc (yy::Position::lines, yy::Position::columns,
2068 yy::Location::lines, yy::Location::columns): Rename arguments
2069 to avoid shadowing; this removes a warning generated by GCC 3.3.
2070
2071 2003-06-01 Paul Eggert <eggert@twinsun.com>
2072
2073 Don't pass C-only warning optins (e.g., -Wmissing-declarations)
2074 to g++, as GCC 3.3 complains if you do it.
2075 * configure.ac (WARNING_CXXFLAGS): New subst. Set it to
2076 everything that WARNING_CFLAGS has, except omit warnings
2077 not suitable for C++.
2078 (AC_PROG_CXX): Use this instead of AC_CHECK_PROGS([CXX], [g++]).
2079 * tests/atlocal.in (CXXFLAGS): New var.
2080 * tests/local.at (AT_COMPILE_CXX): Use it instead of CFLAGS.
2081
2082 Fix a GLR parser bug I reported in February; see
2083 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00008.html>.
2084 The problem was that GLR parsers did not conform to the C standard,
2085 because actions like { $1 = $2 + $3; } expanded to expressions
2086 that invoked YYFILL in separate subexpressions, and YYFILL assigned
2087 to a local variable. The C standard says that expressions
2088 like (var = f ()) + (var = f ()) have undefined behavior.
2089 Another problem was that GCC sometimes issues warnings that
2090 yyfill and its parameters are unused.
2091
2092 * data/glr.c (yyfillin): Renamed from the old yyfill. Mark
2093 as possibly unused.
2094 (yyfill): New function.
2095 (YYFILL): Use it.
2096 (yyuserAction): Change type of yynormal to bool, so that it matches
2097 the new yyfill signature. Mark it as possibly unused.
2098
2099
2100 Follow up on a bug I reported in February, where a Bison-generated
2101 parser can loop. Provide a test case and a fix for yacc.c. I
2102 don't have a fix for lalr1.cc or for glr.c, unfortunately.
2103 The original bug report is in:
2104 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00044.html>
2105
2106 * data/yacc.c (YYERROR): Now just 'goto yyerrorlab', since the
2107 macro's size was becoming unwieldy.
2108 (yyerrlab): Do not discard an empty lookahead symbol, as this
2109 might destroy garbage.
2110 (yyerrorlab): New label, with the old contents of YYERROR,
2111 plus the following change: pop the stack of rhs corresponding
2112 to the production that invoked YYERROR. That is how Yacc
2113 behaves, and POSIX requires this behavior.
2114 (yyerrlab1): Use YYPOPSTACK instead of its definiens.
2115 * tests/calc.at (_AT_DATA_CALC_Y): Include unistd.h if available.
2116 Define 'alarm' to do nothing if unistd.h is not available.
2117 Add a new rule "exp: '-' error;" to test the above change to
2118 data/yacc.c. Use 'alarm' to abort any test taking longer than
2119 10 seconds, as it's probably looping.
2120 (AT_CHECK_CALC): Test recovery from error in new grammar rule.
2121 Also, the new yacc.c generates two fewer diagnostics for an
2122 existing test.
2123
2124 2003-05-24 Paul Eggert <eggert@twinsun.com>
2125
2126 * data/glr.c (YYSTACKEXPANDABLE): Do not evaluate
2127 YYSTYPE_IS_TRIVIAL or YYSTYPE_IS_TRIVIAL unless they are defined.
2128 This fixes a problem reported by John Bowman when the Compaq/HP
2129 Alpha cxx compiler happy (e.g. using cxx -D__USE_STD_IOSTREAM
2130 -ansi -Wall -gall).
2131 * data/yacc.c (union yyalloc): Likewise.
2132 (YYCOPY): Do not evaluate __GNUC__ unless it is defined.
2133
2134 Switch from 'int' to 'bool' where that makes sense.
2135
2136 * lib/abitset.c (abitset_test, abitset_empty_p, abitset_equal_p,
2137 abitset_subset_p, abitset_disjoint_p, abitset_and_cmp,
2138 abitset_andn_cmp, abitset_or_cmp, abitset_xor_cmp, abitset_and_or,
2139 abitset_and_or_cmp, abitset_andn_or_cmp, abitset_or_and_cmp):
2140 Return or accept bool, not int. All callers changed.
2141 * lib/bbitset.h: (bitset_toggle_, bitset_copy_, bitset_and_or_cmp_,
2142 bitset_andn_or_cmp_, bitset_or_and_cmp_): Likewise.
2143 * lib/bitset.c (bitset_only_set_p, bitset_print, bitset_toggle_,
2144 bitset_copy_, bitset_op4_cmp, bitset_and_or_cmp_, bitset_andn_or_cmp_,
2145 bitset_or_and_cmp_): Likewise.
2146 * lib/bitset.h (bitset_test, bitset_only_set_p): Likewise.
2147 * lib/bitset_stats.c (bitset_stats_print, bitset_stats_toggle,
2148 bitset_stats_test, bitset_stats_empty_p, bitset_stats_disjoint_p,
2149 bitset_stats_equal_p, bitset_stats_subset_p, bitset_stats_and_cmp,
2150 bitset_stats_andn_cmp, bitset_stats_or_cmp, bitset_stats_xor_cmp,
2151 bitset_stats_and_or_cmp, bitset_stats_andn_or_cmp,
2152 bitset_stats_or_and_cmp): Likewise.
2153 * lib/ebitset.c (ebitset_elt_zero_p, ebitset_equal_p, ebitset_copy_cmp,
2154 ebitset_test, ebitset_empty_p, ebitset_subset_p, ebitset_disjoint_p,
2155 ebitset_op3_cmp, ebitset_and_cmp, ebitset_andn_cmp, ebitset_or_cmp,
2156 ebitset_xor_cmp): Likewise.
2157 * lib/lbitset.c (lbitset_elt_zero_p, lbitset_equal_p, lbitset_copy_cmp,
2158 lbitset_test, lbitset_empty_p, lbitset_subset_p, lbitset_disjoint_p,
2159 lbitset_op3_cmp, lbitset_and_cmp, lbitset_andn_cmp, lbitset_or_cmp,
2160 lbitset_xor_cmp): Likewise.
2161 * lib/bbitset.h: Include <stdbool.h>.
2162 (struct bitset_vtable): The following members now return bool, not
2163 int: toggle, test, empty_p, disjoint_p, equal_p, subset_p,
2164 and_cmp, andn_cmp, or_cmp, xor_cmp, and_or_cmp, andn_or_cmp,
2165 or_and_cmp).
2166 * src/conflicts.c (count_rr_conflicts): Likewise.
2167 * lib/bitset_stats.h (bitset_stats_enabled): Now bool, not int.
2168 All uses changed.
2169 * lib/ebitset.c (ebitset_obstack_init): Likewise.
2170 * lib/lbitset.c (lbitset_obstack_init): Likewise.
2171 * src/getargs.c (debug_flag, defines_flag, locations_flag,
2172 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
2173 graph_flag): Likewise.
2174 * src/getargs.h (debug_flag, defines_flag, locations_flag,
2175 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
2176 graph_flag): Likewise.
2177 * src/output.c (error_verbose): Likewise.
2178 * src/output.h (error_verbose): Likewise.
2179 * src/reader.c (start_flag, typed): Likewise.
2180 * src/reader.h (typed): Likewise.
2181 * src/getargs.c (LOCATIONS_OPTION): New constant.
2182 (long_options, getargs): Use it.
2183 * src/lalr.c (build_relations): Use bool, not int.
2184 * src/nullable.c (nullable_compute): Likewise.
2185 * src/print.c (print_reductions): Likewise.
2186 * src/tables.c (action_row, pack_vector): Likewise.
2187 * src/muscle_tab.h (MUSCLE_INSERT_BOOL): New macro.
2188 * src/output.c (prepare): Use it.
2189 * src/output.c (token_definitions_output,
2190 symbol_destructors_output, symbol_destructors_output): Use string,
2191 not boolean integer, to keep track of whether to output separator.
2192 * src/print_graph.c (print_core): Likewise.
2193 * src/state.c (state_rule_lookaheads_print): Likewise.
2194
2195 * config/install-sh: Sync from automake 1.7.5.
2196
2197 2003-05-14 Paul Eggert <eggert@twinsun.com>
2198
2199 * src/parse-gram.y (rules_or_grammar_declaration): Require a
2200 semicolon after a grammar declaration, in the interest of possible
2201 future changes to the Bison input language.
2202 Do not allow a stray semicolon at the start of the grammar.
2203 (rhses.1): Allow one or more semicolons after any rule, including
2204 just before "|" as required by POSIX.
2205 * tests/input.at (Torturing the Scanner): Add tests for ";|" in a
2206 grammar.
2207
2208 2003-05-14 Alexandre Duret-Lutz <adl@gnu.org>
2209
2210 %parse-param support for lalr1.cc.
2211
2212 * data/lalr1.cc (b4_parse_param_decl, b4_parse_param_cons,
2213 b4_cc_constructor_calls, b4_cc_constructor_call,
2214 b4_parse_param_vars, b4_cc_var_decls, b4_cc_var_decl): New m4
2215 definitions.
2216 (yy::b4_parser_class_name::b4_parser_class_name): Take extra
2217 parse-param arguments.
2218 (yy::b4_parser_class_name): Declare instance variables to
2219 hold parse-param arguments.
2220 * tests/calc.at: s/value/semantic_value/ because value clashes
2221 with a member of yy::b4_parser_class_name. Adjust C++ code
2222 to handle %parse-param. Enable %parse-param test in C++.
2223
2224 2003-05-12 Paul Eggert <eggert@twinsun.com>
2225
2226 * doc/bison.texinfo (How Can I Reset @code{yyparse}): Reword the
2227 English a bit. Fix fclose typo. Change "const char" to "char
2228 const", and use ANSI C rather than K&R for "main". Suggest
2229 YY_FLUSH_BUFFER over yyrestart (as that is what Flex recommends)
2230 and suggest yy_switch_to_buffer.
2231
2232 2003-05-05 Paul Eggert <eggert@twinsun.com>
2233
2234 * lib/bitset.h (__INT_TO_PTR): Define to a value that presumes
2235 C89. This avoids a diagnostic on compilers that define __STDC__
2236 to 0, fixing a problem with Tru64 cc reported by Martin Mokrejs in
2237 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
2238
2239 2003-05-03 Paul Eggert <eggert@twinsun.com>
2240
2241 * lib/bitset.h (BITSET_FOR_EACH, BITSET_FOR_EACH_REVERSE):
2242 Do not overrun array bounds.
2243 This should fix a bug reported today by Olatunji Oluwabukunmi in
2244 <http://lists.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
2245
2246 2003-04-29 Akim Demaille <akim@epita.fr>
2247
2248 * src/gram.h, src/gram.c (pure_parser, glr_parser): Move to...
2249 * src/getargs.c, src/getargs.h: here, as bool, not int.
2250 (nondeterministic_parser): New.
2251 * src/parse-gram.y, src/scan-gram.l: Support
2252 %nondeterministic-parser.
2253 * src/output.c (prepare): Use nondeterministic_parser instead
2254 of glr_parser where appropriate.
2255 * src/tables.c (conflict_row, action_row, save_row)
2256 (token_actions, token_actions, pack_vector): Ditto.
2257
2258 2003-04-29 Akim Demaille <akim@epita.fr>
2259
2260 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
2261
2262 2003-04-29 Akim Demaille <akim@epita.fr>
2263
2264 * tests/calc.at: Also test yacc.c and glr.c (but not lalr1.cc yet)
2265 with %pure-parser and %locations to exercise the patch from Yakov
2266 Markovitch below.
2267
2268 2003-04-28 Tim Van Holder <tim.van.holder@pandora.be>
2269
2270 * data/yacc.c: (b4_lex_param): Corrected for the case where
2271 %lex-param is provided and %pure-parser isn't.
2272
2273 2003-04-27 Paul Eggert <eggert@twinsun.com>
2274
2275 Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
2276 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
2277 * data/yacc.c (YYSTACK_ALLOC): Don't evaluate YYSTACK_USE_ALLOCA
2278 if it is not defined.
2279 (YYMAXDEPTH): Don't evaluate YYMAXDEPTH if it is not defined.
2280
2281 2003-04-26 Paul Eggert <eggert@twinsun.com>
2282
2283 * data/lalr1.cc (yy::Parser::pact_ninf_, yy::Parser::table_ninf_):
2284 Declare to be of type suitable for the ninf value itself, not of
2285 type suitable for the corresponding table, since the latter might
2286 be unsigned but the ninf value might be negative. This fixes a
2287 bug reported by Alexandre Duret-Lutz in
2288 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
2289
2290 * configure.ac (AC_FUNC_ERROR_AT_LINE): Remove, since gl_ERROR
2291 invokes it. We shouldn't invoke it twice because it will attempt
2292 to put error.o in the archive twice. This fixes a glitch reported
2293 by Martin Mokrejs in
2294 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
2295
2296 2003-04-21 Paul Eggert <eggert@twinsun.com>
2297
2298 * m4/error.m4: Update from Bruno Haible's 2003-04-14 patch
2299 to gnulib.
2300
2301 2003-04-21 Yakov Markovitch <Markovitch@iso.ru>
2302
2303 * data/glr.c (yyexpandGLRStack) [!YYSTACKEXPANDABLE]:
2304 Fix obvious typo that results in uncompilable GLR parsers
2305 when both %pure-parser and %locations are used. (trivial change)
2306
2307 2003-04-17 Paul Eggert <eggert@twinsun.com>
2308
2309 * src/scan-gram.l: Add %option nounput, since we no longer use unput.
2310 (unexpected_eof): Renamed from unexpected_end_of_file, for brevity.
2311 Do not insert the expected token via unput, as this runs afoul
2312 of a POSIX-compatibility bug in flex 2.5.31.
2313 All uses changed to BEGIN the parent state,
2314 since we no longer insert the expected token via unput.
2315 * tests/regression.at (Invalid inputs): Remove cascaded diagnostic
2316 that is no longer emitted after the above change.
2317
2318 * src/conflicts.c (set_conflicts): Resolve all conflicts, not just
2319 the first one. This change is from Paul Hilfinger, and it fixes
2320 regression reported by Werner Lemberg in
2321 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
2322
2323 (resolve_sr_conflict): Don't invoke state_errs_set
2324 unless one or more tokens have been explicitly made errors.
2325 Otherwise, the above change causes Bison to abort.
2326
2327 * tests/existing.at (GNU pic Grammar): New test case, taken from
2328 Lemberg's email.
2329
2330 2003-03-31 Akim Demaille <akim@epita.fr>
2331
2332 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
2333
2334 2003-03-31 Akim Demaille <akim@epita.fr>
2335
2336 * src/output.c (prepare_symbols): Avoid trailing spaces in the
2337 output.
2338
2339 2003-03-31 Akim Demaille <akim@epita.fr>
2340
2341 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
2342 From Paul Hilfinger.
2343
2344 2003-03-29 Akim Demaille <akim@epita.fr>
2345
2346 * m4/error.m4: Do not put under dynamic conditions some code which
2347 expansion is under static control.
2348
2349 2003-03-29 Akim Demaille <akim@epita.fr>
2350
2351 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
2352
2353 2003-03-29 Akim Demaille <akim@epita.fr>
2354
2355 * doc/bison.texinfo (Strings are Destroyed): New.
2356
2357 2003-03-13 Paul Eggert <eggert@twinsun.com>
2358
2359 * .cvsignore: Add configure.lineno.
2360 * src/.cvsignore: Add yacc.
2361 * tests/.cvsignore: Add testsuite.log.
2362 * doc/fdl.texi: Sync with latest FSF version.
2363
2364 2003-03-12 Paul Eggert <eggert@twinsun.com>
2365
2366 * scan-gram.l (YY_USER_INIT): Initialize code_start, too.
2367 (<INITIAL><<EOF>>, <SC_PRE_CODE><<EOF>>): Set *loc to the scanner
2368 cursor, instead of leaving it undefined. This fixes a bug
2369 reported by Tim Van Holder in
2370 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
2371 * tests/input.at (Torturing the Scanner): Test the scanner on
2372 an empty input file, which was Tim Van Holder's test case.
2373
2374 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): When checking whether
2375 <sys/resource.h> can be included, include sys/time.h and
2376 sys/times.h first, if available. This works around the SunOS
2377 4.1.4 porting bug reported by Bruce Becker in
2378 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
2379
2380 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't
2381 AC_CHECK_HEADERS([sys/wait.h]), as this interferes with
2382 AC_HEADER_SYS_WAIT.
2383
2384 Merge changes from gnulib. This was prompted because the CVS
2385 snapshot didn't build on Solaris 7 due to strnlen problems.
2386
2387 These changes need to be merged back into gnulib:
2388 * lib/hash.c: Include <stdbool.h> unconditionally.
2389 * m4/onceonly.m4 (m4_quote): New macro.
2390 (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE):
2391 Quote AC_FOREACH variable-expansions properly.
2392 The 2003-01-03 obstack.h change also needs merging.
2393 {end of changes requiring merging}
2394
2395 * lib/stdbool.h.in, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
2396 m4/getopt.m4, m4/hash.m4, m4/malloc.m4, m4/memchr.m4,
2397 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/quote.m4,
2398 m4/quotearg.m4, m4/realloc.m4, m4/stpcpy.m4, m4/strnlen.m4,
2399 m4/strtol.m4, m4/strtoul.m4, m4/unlocked-io.m4, m4/xalloc.m4:
2400 New files, imported from gnulib.
2401 * m4/Makefile.am (EXTRA_DIST): Add the new m4/*.m4 files mentioned
2402 above.
2403
2404 * lib/mbswidth.c, m4/error.m4, m4/mbrtowc.m4, m4/mbswidth.m4,
2405 m4/memcmp.m4, m4/prereq.m4, m4/stdbool.m4: Update to current
2406 gnulib sources.
2407
2408 * configure.ac (gl_DIRNAME, gl_GETOPT, gl_HASH, gl_QUOTE, gl_XALLOC):
2409 Add.
2410 (gl_ERROR): New, replacing jm_PREREQ_ERROR.
2411 (gl_FUNC_ALLOCA): New, replacing AC_FUNC_ALLOCA.
2412 (gl_FUNC_STPCPY): New, replacing AC_REPLACE_FUNCS(stpcpy).
2413 (gl_FUNC_STRNLEN): New, replacing AC_FUNC_STRNLEN.
2414 (gl_MBSWIDTH): New, replacing jm_PREREQ_MBSWIDTH.
2415 (gl_OBSTACK): New, replacing AC_FUNC_OBSTACK.
2416 (gl_QUOTEARG): New, replacing jm_PREREQ_QUOTEARG.
2417 (jm_FUNC_GLIBC_UNLOCKED_IO, gl_FUNC_STPCPY, gl_FUNC_STRTOL): New.
2418 (jm_FUNC_MALLOC): New, replacing AC_FUNC_MALLOC.
2419 (jm_FUNC_REALLOC): New, replacing AC_FUNC_REALLOC.
2420 (jm_PREREQ_ARGMATCH): Remove.
2421 (AC_REPLACE_FUNCS): Remove memchr, memrchr, stpcpy, strtol, strtoul.
2422 * lib/Makefile.am (libbison_a_SOURCES): Add argmatch.c, argmatch.h.
2423
2424 * src/system.h: Include <stdbool.h> unconditionally.
2425
2426 * lib/bbitset.h: Include <limits.h> unconditionally. We have been
2427 assuming at least C89 in the bitset code for some time now.
2428
2429 2003-03-03 Akim Demaille <akim@epita.fr>
2430
2431 * ro.po: New.
2432
2433 2003-03-02 Akim Demaille <akim@epita.fr>
2434
2435 * doc/bison.texinfo (Table of Symbols): Reactivate the
2436 documentation for %lex-param, and %parse-param.
2437
2438 2003-03-02 Akim Demaille <akim@epita.fr>
2439
2440 * data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to
2441 generate verbose error messages.
2442 Use the number of tokens as an upper bound in yytname, as it
2443 cannot be a non terminal.
2444
2445 2003-03-02 Akim Demaille <akim@epita.fr>
2446
2447 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
2448 message.
2449
2450 2003-03-02 Akim Demaille <akim@epita.fr>
2451
2452 * tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New.
2453 Use them to exercise yycheck overrun.
2454 Based on Andrew Suffield's grammar.
2455
2456 2003-03-02 Akim Demaille <akim@epita.fr>
2457
2458 Create tests/local.at for Bison generic testing macros.
2459
2460 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to...
2461 * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
2462 This new file.
2463 * tests/calc.at (AT_CHECK_CALC): Adjust.
2464 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR)
2465 (AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to...
2466 * tests/local.at: here.
2467 (AT_COMPILE_CXX): Tags the tests using it as c++.
2468 Ignore the test if CXX is not functional.
2469
2470 2003-03-01 Paul Eggert <eggert@twinsun.com>
2471
2472 * src/scan-gram.l (code_start): Initialize it to scanner_cursor,
2473 not loc->end, since loc->end might contain garbage and this leads
2474 to undefined behavior on some platforms.
2475 (id_loc, token_start): Use (IF_LINTed) initial values that do not
2476 depend on *loc, so that the reader doesn't give the the false
2477 impression that *loc is initialized.
2478 (<INITIAL>"%%"): Do not bother setting code_start, since its value
2479 does not survive the return.
2480
2481 2003-03-01 Akim Demaille <akim@epita.fr>
2482
2483 * src/scan-gram.l (code_start): Always initialize it when entering
2484 into yylex, as SC_EPILOGUE is activated *before* the corresponding
2485 yylex invocation. An alternative would be making it static, but
2486 then it starts with the second %%'s beginning, instead of its end.
2487
2488 2003-02-28 Paul Eggert <eggert@twinsun.com>
2489
2490 * lib/mbswidth.c: Include <wchar.h> before "mbswidth.h", to work
2491 around a UnixWare 7.1.1 porting bug reported by John Hughes in
2492 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
2493
2494 2003-02-26 Paul Eggert <eggert@twinsun.com>
2495
2496 * README: Mention compiler bug in Sun Forte Developer 6 update 2.
2497 Remove Sequent/Pyramid discussion (nobody uses them any more).
2498 Merge VMS and MS-DOS discussion; these ports may well be dead
2499 but let's keep mentioning them for now. Put <> around email
2500 addresses. Add copyright notice.
2501
2502 2003-02-24 Paul Eggert <eggert@twinsun.com>
2503
2504 * data/glr.c (yy_reduce_print): yylineno -> yylno,
2505 to avoid collision with flex use of yylineno.
2506 Problem reported by Bruce Lilly in
2507 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
2508 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
2509 * data/yacc.c (yy_reduce_print): Likewise.
2510
2511 * config/depcomp: Sync with Automake 1.7.3.
2512
2513 2003-02-21 Akim Demaille <akim@epita.fr>
2514
2515 * data/lalr1.cc: Use temporary variables instead of casts to
2516 change integer types.
2517 Suggested by Paul Eggert.
2518
2519 2003-02-21 Akim Demaille <akim@epita.fr>
2520
2521 * doc/bison.texinfo: Use "location" consistently to refer to @n,
2522 to avoid confusions with lalr1.cc's notion of Position.
2523 Suggested by Paul Eggert.
2524
2525 2003-02-20 Akim Demaille <akim@epita.fr>
2526
2527 * data/lalr1.cc (position.hh): Make sure "columns" never pushes
2528 before initial_columns.
2529 (location.hh): Use consistent variable names when defining the
2530 operator<<.
2531 Use "last" so that we subtract from Positions, not from unsigned.
2532
2533 2003-02-20 Akim Demaille <akim@epita.fr>
2534
2535 * data/lalr1.cc (position.hh): New subfile, including the extended
2536 and Doxygen'ed documentation of class Position.
2537 (location.hh): Use it.
2538 Document a` la Doxygen.
2539 With the help of Benoit Perrot.
2540
2541 2003-02-20 Akim Demaille <akim@epita.fr>
2542
2543 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
2544 AT_YACC_IF.
2545 Redefine AT_YYERROR_SEES_LOC_IF using it.
2546 (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
2547 not defined.
2548 Don't use the location in yy::Parser::error_ and
2549 yy::Parser::print_ when not %locations.
2550 Activate more lalr1.cc tests.
2551
2552 2003-02-19 Akim Demaille <akim@epita.fr>
2553
2554 * data/lalr1.cc: When displaying a line number, be sure to make it
2555 an int.
2556
2557 2003-02-19 Akim Demaille <akim@epita.fr>
2558
2559 * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
2560 Remove, useless.
2561 (YYABORT, YYACCEPT, YYERROR): New.
2562 * tests/calc.at: Renable the lalr1.cc test.
2563
2564 2003-02-19 Akim Demaille <akim@epita.fr>
2565
2566 * tests/calc.at (AT_CHECK_CALC): Check different scenarios of
2567 error recovery, mixing with/without pops and discarding of the
2568 lookahead.
2569 Exercise YYERROR.
2570 Disable the lalr1.cc tests as currently it doesn't support YYERROR.
2571
2572 2003-02-17 Paul Eggert <eggert@twinsun.com>
2573
2574 * tests/atlocal.in (LDFLAGS, LIBS): New vars.
2575 * tests/testsuite.at (AT_COMPILE): Use them.
2576 This fixes the testsuite problem reported by Robert Lentz in
2577 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
2578
2579 2003-02-12 Paul Eggert <eggert@twinsun.com>
2580
2581 * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
2582 Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
2583 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
2584 * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
2585 Check for malloc failure, for consistency with yacc.c.
2586 (yytname_size): Remove, for consistency with yacc.c.
2587
2588 The bug still remains in data/lalr1.cc, as I didn't have time
2589 to fix it there.
2590
2591 2003-02-06 Akim Demaille <akim@epita.fr>
2592
2593 * configure.ac (GXX): Rename as...
2594 (CXX): this, to keep the original Autoconf semantics.
2595 Require 2.57.
2596 * data/lalr1.cc: Fix b4_copyright invocations.
2597 If YYDEBUG is not defined, don't depend upon name_ being defined.
2598 (location.hh): Include string and iostream.
2599 (Position::filename): New member.
2600 (Position::Position ()): New.
2601 (operator<< (Position)): New.
2602 (operator- (Position, int)): New.
2603 (Location::first, Location::last): Rename as...
2604 (Location::begin, Location::end): these, to mock the conventional
2605 iterator names.
2606 (operator<< (Location)): New.
2607 * tests/atlocal.in (CXX): New.
2608 * tests/testsuite.at (AT_COMPILE_CXX): New.
2609 * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
2610 locations in a more synthetic way.
2611 (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
2612 lalr1.cc is used.
2613 Adjust the C locations to match those from Emacs: first column is
2614 column 0.
2615 Change all the expected results.
2616 Conform to the GCS: simplify the locations when applicable.
2617 (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
2618 (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
2619 these CPP macros with the m4 macros new defined by...
2620 (AT_CHECK_PUSHDEFS): this, i.e.:
2621 (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
2622 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
2623 New macros.
2624 (AT_CHECK_POPDEFS): Undefine them.
2625 (AT_CHECK_CALC_LALR1_CC): New.
2626 Use it for the first lalr1.cc test.
2627
2628 2003-02-04 Akim Demaille <akim@epita.fr>
2629
2630 * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
2631 Location as is defined.
2632
2633 2003-02-04 Akim Demaille <akim@epita.fr>
2634
2635 * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
2636 name_ being defined.
2637
2638 2003-02-03 Paul Eggert <eggert@twinsun.com>
2639
2640 * src/gram.h (start_symbol): Remove unused decl.
2641
2642 Use more-consistent naming conventions for local vars.
2643
2644 * src/derives.c (derives_compute): Change type of local var from
2645 int to rule_number.
2646 * src/gram.c (grammar_rules_partial_print): Likewise.
2647 * src/print.c (print_core): Likewise.
2648 * src/reduce.c (reduce_grammar_tables): Likewise.
2649
2650 * src/gram.c (grammar_dump): Change name of item_number *
2651 local var from r to rp.
2652 * src/nullable.c (nullable_compute): Likewise.
2653
2654 * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
2655
2656 * src/gram.h (symbol_number_as_item_number): Use sym, not s,
2657 for symbol or symbol_number var.
2658 * src/reader.c (grammar_start_symbol_set): Likewise.
2659 * src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
2660 Likewise.
2661 * src/state.c (transitions_to): Likewise.
2662 * src/state.h: Likewise.
2663 * src/tables.c (symbol_number_to_vector_number): Likewise.
2664
2665 * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
2666 char * var.
2667
2668 * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
2669 var.
2670
2671 * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
2672 var.
2673
2674 * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
2675 Use str, not s, for char * var. Use ch, not c, for character var.
2676 Use size for size var.
2677
2678 * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
2679 char * var.
2680 (uniqstr_print, uniqst_print_processor): Use ustr, not s, for
2681 uniqstr var.
2682 * src/uniqstr.h: Likewise.
2683
2684 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
2685 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
2686 get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
2687 get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
2688 param to have same name as that of enum, so that we don't use
2689 "s" to stand for a non-state.
2690
2691 2003-02-02 Akim Demaille <akim@epita.fr>
2692
2693 * src/scan-skel.l: Scan more than one inert character per yylex
2694 invocation.
2695
2696 2003-02-01 Paul Eggert <eggert@twinsun.com>
2697
2698 Version 1.875a.
2699
2700 * po/LINGUAS: Add ms.
2701
2702 2003-01-30 Akim Demaille <akim@epita.fr>
2703
2704 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
2705
2706 2003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2707
2708 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
2709 of $1.
2710
2711 Changes in response to error report by S. Eken: GLR mode does not
2712 handle negative $ indices or $ indices in embedded rules correctly.
2713 See <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
2714
2715 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
2716 (b4_rhs_location): Ditto.
2717 (yyfill): New function to copy from stack tree into array
2718 incrementally.
2719 (yyuserAction): Modify to allow incremental move of semantic values
2720 to rhs array when in GLR mode.
2721 Define YYFILL to use in user-defined actions to fill semantic array
2722 as needed.
2723 Remove dummy use of yystack, as there is now a guaranteed use.
2724 (yydoAction): Modify to allow incremental move of semantic values
2725 to rhs array when in GLR mode.
2726 (yyresolveAction): Ditto.
2727 (yyglrShiftDefer): Update comment.
2728 (yyresolveStates): Use X == NULL for pointers, not !X.
2729 (yyglrReduce): Ditto.
2730 (yydoAction): Ditto
2731
2732 * tests/glr-regr1.at: Rename to ...
2733 * tests/glr-regression.at: Add new regression test for the problems
2734 described above (adapted from S. Eken).
2735 Update copyright notice.
2736 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
2737 * tests/Makefile.am: Ditto.
2738
2739 2003-01-28 Paul Eggert <eggert@twinsun.com>
2740
2741 * data/lalr1.cc: Do not use @output_header_name@ unless
2742 b4_defines_flag is set. This fixes two bugs reported by
2743 Tim Van Holder in
2744 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
2745 and <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
2746
2747 2003-01-21 Paul Eggert <eggert@twinsun.com>
2748
2749 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
2750 we don't need to worry about yyerrlab1 being reported as an
2751 "unused label" by non-GCC C compilers. The downside is that if
2752 locations are used then a couple of statements are duplicated each
2753 time YYERROR is invoked, but the upside is that the warnings
2754 should vanish.
2755 (yyerrlab1): Move code to YERROR.
2756 (yyerrlab2): Remove. Change uses back to yyerrlab1.
2757 This reverts some of the 2002-12-27 change.
2758
2759 2003-01-17 Paul Eggert <eggert@twinsun.com>
2760
2761 * src/output.c (symbol_printers_output): Fix typo that led
2762 to core dump. Problem reported by Antonio Rus in
2763 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
2764
2765 2003-01-13 Akim Demaille <akim@epita.fr>,
2766 Quoc Peyrot <chojin@lrde.epita.fr>,
2767 Robert Anisko <anisko_r@lrde.epita.fr>
2768
2769 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
2770 when the stacks contain one element, as the loop would otherwise
2771 free the last state, and then use the top state (the one we just
2772 popped). This means that the initial elements will not be freed
2773 explicitly, as is the case in yacc.c; it is not a problem, as
2774 these elements have fake values.
2775
2776 2003-01-11 Paul Eggert <eggert@twinsun.com>
2777
2778 * NEWS: %expect-violations are now just warnings, reverting
2779 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
2780 bootstrapping problem reported by Matthias Klose; see
2781 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
2782 * src/conflicts.c (conflicts_print): Likewise.
2783 * tests/conflicts.at (%expect not enough, %expect too much,
2784 %expect with reduce conflicts): Likewise.
2785 * doc/bison.texinfo (Expect Decl): Document this. Also mention
2786 that the warning is enabled if the number of conflicts changes
2787 (not necessarily increases).
2788
2789 * src/getargs.c (version): Update copyright year.
2790
2791 2003-01-09 Akim Demaille <akim@epita.fr>
2792
2793 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
2794
2795 2003-01-08 Paul Eggert <eggert@twinsun.com>
2796
2797 * Makefile.maint (WGETFLAGS):
2798 New macro, containing "-C off" to disable proxy caches.
2799 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
2800 (rel-check): Use $(WGET) instead of wget.
2801
2802 2003-01-06 Paul Eggert <eggert@twinsun.com>
2803
2804 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
2805 the GLR paper of Scott, Johnstone and Hussain.
2806
2807 2003-01-04 Paul Eggert <eggert@twinsun.com>
2808
2809 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
2810 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
2811 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
2812 (EXTRA_LIBRARIES): New var, for liby.a.
2813 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
2814 (EXTRA_SCRIPTS): New var, for yacc.
2815
2816 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
2817 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
2818 Problem reported by Nelson H. F. Beebe.
2819
2820 2003-01-03 Paul Eggert <eggert@twinsun.com>
2821
2822 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
2823 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
2824 when compiling Bison 1.875's `bitset bset = obstack_alloc
2825 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
2826
2827 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
2828 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
2829 grow to a huge size with typical invocation.
2830
2831 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
2832 Use the pattern recommended by Autoconf 2.57, except also protect
2833 against double-definition.
2834 * src/system.h: Likewise.
2835 Portability issues reported by Nelson H. F. Beebe.
2836
2837 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
2838 All uses changed. Provide a definition in both C and C++.
2839 (yytrue, yyfalse): Define even if defined (__cplusplus).
2840
2841 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
2842 Reported by Nelson H. F. Beebe.
2843
2844 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
2845
2846 2003-01-02 Paul Eggert <eggert@twinsun.com>
2847
2848 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
2849 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
2850 Bug reported by Nelson H. F. Beebe.
2851
2852 2003-01-01 Paul Eggert <eggert@twinsun.com>
2853
2854 * Version 1.875.
2855
2856 2002-12-30 Paul Eggert <eggert@twinsun.com>
2857
2858 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
2859 Moved here from...
2860 (<INITIAL>","): Here. This causes stray "," to be treated
2861 more uniformly.
2862
2863 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
2864 last brace in braced code when not in Yacc mode, for compatibility
2865 with Bison 1.35. This resurrects the 2001-12-15 patch to
2866 src/reader.c.
2867
2868 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
2869 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
2870
2871 2002-12-28 Paul Eggert <eggert@twinsun.com>
2872
2873 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
2874 that of SYM's type. This fixes Debian bug 168069, reported by
2875 Thomas Olsson.
2876
2877 2002-12-28 Paul Eggert <eggert@twinsun.com>
2878
2879 Version 1.75f.
2880
2881 Switch back to the Yacc style of conflict reports, undoing some
2882 of the 2002-07-30 change.
2883 * doc/bison.texinfo (Understanding): Use Yacc style for
2884 conflict reports. Also, use new way of locating rules.
2885 * src/conflicts.c (conflict_report):
2886 Renamed from conflict_report_yacc, removing the old
2887 'conflict_report'. Translate the entire conflict report at once,
2888 so that we don't assume that "," has the same interpretation in
2889 all languages.
2890 (conflicts_output): Use Yacc-style conflict report for each state,
2891 instead of our more-complicated style.
2892 (conflicts_print): Use Yacc-style conflict report, except print
2893 the input file name when not emulating Yacc.
2894 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
2895 Conflicted Reduction, %expect not enough, %expect too much,
2896 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
2897 * tests/existing.at (GNU Cim Grammar): Likewise.
2898 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
2899
2900 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
2901 fatal): Don't invoke fflush; it's not needed and it might even be
2902 harmful for stdout, as stdout might not be open.
2903 * src/reduce.c (reduce_print): Likewise.
2904
2905 2002-12-27 Paul Eggert <eggert@twinsun.com>
2906
2907 Fix a bug where error locations were not being recorded correctly.
2908 This problem was originally reported by Paul Hilfinger in
2909 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
2910
2911 * data/yacc.c (yyparse): New local var yylerrsp, to record the
2912 top of the location stack's error locations.
2913 (yyerrlab): Set it. When discarding a token, push its location
2914 onto yylerrsp so that we don't lose track of the error's end.
2915 (yyerrlab1): Now is only the target of YYERROR, so that we can
2916 properly record the location of the action that failed. For GCC
2917 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
2918 GCC warning about yyerrlab1 being unused if YYERROR is unused.
2919 (yyerrlab2): New label, which yyerrlab now falls through to.
2920 Compute the error's location by applying YYLLOC_DEFAULT to
2921 the locations of all the symbols that went into the error.
2922 * doc/bison.texinfo (Location Default Action): Mention that
2923 YYLLOC_DEFAULT is also invoked for syntax errors.
2924 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
2925 Error locations include the locations of all the tokens that were
2926 discarded, not just the last token.
2927
2928 2002-12-26 Paul Eggert <eggert@twinsun.com>
2929
2930 * src/files.c: Include quote.h.
2931 (compute_output_file_names): Warn if we detect conflicting
2932 outputs to the same file. This should catch the misunderstanding
2933 exemplified by Debian Bug 165349, reported by Bruce Stephens..
2934
2935 * src/conflicts.c (conflicts_print): If the user specifies
2936 "%expect N", report an error if there are any reduce/reduce
2937 conflicts. This is what the manual says should happen.
2938 This fixes Debian bug 130890, reported by Anthony DeRobertis.
2939 * tests/conflicts.at (%expect with reduce conflicts): New test.
2940
2941 Don't use m4_include on relative file names, as it doesn't work as
2942 desired if there happens to be a file with that name under ".".
2943
2944 * m4sugar/version.m4: Remove; it was included but it wasn't used.
2945 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
2946 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
2947 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
2948 * src/output.c (output_skeleton): Use full path names when
2949 specifying a file to include; don't rely on include path, as
2950 it's unreliable when the working file contains a file with
2951 that name.
2952
2953 2002-12-25 Paul Eggert <eggert@twinsun.com>
2954
2955 Remove obsolete references to bison.simple and bison.hairy.
2956 Problem mentioned by Aubin Mahe in
2957 <http://lists.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
2958 * data/glr.c: Comment fix.
2959 * doc/bison.1: Remove references. Also, mention "yacc".
2960
2961 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
2962 with -g option.
2963
2964 * src/parse-gram.y (declaration): Use enum "report_states" rather
2965 than its numeric value 1.
2966
2967 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
2968 opening a new one. This fixes Debian bug 165349, reported by
2969 Bruce Stephens.
2970
2971 2002-12-24 Paul Eggert <eggert@twinsun.com>
2972
2973 Version 1.75e.
2974
2975 * Makefile.maint (cvs-update): Don't assume that the shell
2976 supports $(...), as Solaris sh doesn't.
2977
2978 * src/parse-gram.y (lloc_default): Remove test for empty
2979 nonterminals at the end, since it didn't change the result.
2980
2981 2002-12-24 Paul Eggert <eggert@twinsun.com>
2982
2983 If the user does not define YYSTYPE as a macro, Bison now declares it
2984 using typedef instead of defining it as a macro. POSIX requires this.
2985 For consistency, YYLTYPE is also declared instead of defined.
2986
2987 %union directives can now have a tag before the `{', e.g., the
2988 directive `%union foo {...}' now generates the C code
2989 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
2990 The default union tag is `YYSTYPE', for compatibility with Solaris 9
2991 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
2992 instead of `yyltype'.
2993
2994 `yystype' and `yyltype' are now obsolescent macros instead of being
2995 typedefs or tags; they are no longer documented and will be
2996 withdrawn in a future release.
2997
2998 * data/glr.c (b4_location_type): Remove.
2999 (YYSTYPE): Renamed from yystype.
3000 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
3001 (struct YYLTYPE): Renamed from struct yyltype.
3002 (YYLTYPE): Renamed from yyltype.
3003 (yyltype, yystype): New (and obsolescent) macros,
3004 for backward compatibility.
3005 * data/yacc.c: Likewise.
3006
3007 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
3008 does not specify a union tag. This is for compatibility with
3009 Solaris 9 yacc.
3010
3011 * src/parse-gram.y (add_param): 2nd arg is now char * not char
3012 const *, since it is now modified by stripping surrounding { }.
3013 (current_braced_code): Remove.
3014 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
3015 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
3016 trailing " {...}". Now of type <chars>.
3017 (grammar_declaration): Adjust to bundled tokens.
3018 (code_content): Remove; stripping is now done by add_param.
3019 (print_token_value): Print contents of bundled tokens.
3020 (token_name): New function.
3021
3022 * src/reader.h (braced_code, current_braced_code): Remove.
3023 (token_name): New decl.
3024
3025 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
3026 token_type, not braced_code code_kind. All uses changed.
3027 (SC_PRE_CODE): New state, for scanning after a keyword that
3028 has (or usually has) an immediately-following braced code.
3029 (token_type): New local var, to keep track of which token type
3030 to return when scanning braced code.
3031 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
3032 <INITIAL>"%parse-param", <INITIAL>"%printer",
3033 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
3034 instead of returning a token type immediately.
3035 (<INITIAL>"{"): Set token type.
3036 (<SC_BRACED_CODE>"}"): Use it.
3037 (handle_action_dollar, handle_action_at): Now returns bool
3038 indicating success. Fail if ! current_rule; this prevents a core dump.
3039 (handle_symbol_code_dollar, handle_symbol_code_at):
3040 Remove; merge body into caller.
3041 (handle_dollar, handle_at): Complain in invalid contexts.
3042
3043 * NEWS, doc/bison.texinfo: Document the above.
3044 * NEWS: Fix years and program names in copyright notice.
3045
3046 2002-12-17 Paul Eggert <eggert@twinsun.com>
3047
3048 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
3049 Reporting, Table of Symbols): Omit mentions of %lex-param and
3050 %parse-param from the documentation for now.
3051
3052 2002-12-15 Paul Eggert <eggert@twinsun.com>
3053
3054 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
3055 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
3056 lookahead symbol, and which sets yychar in parser actions) and it
3057 disagreed with the Bison documentation. Bug
3058 reported by Andrew Walrond.
3059
3060 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
3061 as the caller now does that.
3062 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
3063 (YYEMPTY): Parenthesize right hand side, since others use it.
3064 (yyparse): Don't assume that our generated code is the only code
3065 that sets yychar.
3066
3067 2002-12-13 Paul Eggert <eggert@twinsun.com>
3068
3069 Version 1.75d.
3070
3071 POSIX requires a "yacc" command.
3072 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
3073 (MOSTLYCLEANFILES): Add yacc.
3074 (yacc): New rule.
3075 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
3076 as an alias for bison y.
3077
3078 * po/LINGUAS: Add da.
3079
3080 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
3081 problem with latest <getopt.h>.
3082 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
3083
3084 * doc/fdl.texi: Upgrade to 1.2.
3085 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
3086 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
3087 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
3088 gnulib.
3089 * config/install-sh: Sync with autotools.
3090
3091 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
3092 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
3093 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
3094 locations are requested.
3095 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
3096 locations are requested.
3097
3098 2002-12-12 Paul Eggert <eggert@twinsun.com>
3099
3100 Remove unportable casts and storage allocation tricks.
3101 While we're at it, remove almost all casts, since they
3102 usually aren't needed and are a sign of trouble.
3103
3104 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
3105
3106 * src/derives.c (derives_compute): Do not subtract NTOKENS from
3107 the pointer DSET returned by malloc; this isn't portable.
3108 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
3109 Similarly for DERIVES.
3110 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
3111 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
3112 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
3113
3114 * src/derives.c (derives_compute): Do not bother invoking
3115 int_of_rule_number, since rule numbers are integers.
3116
3117 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
3118 rather than XMALLOC (char, N).
3119
3120 * src/files.c (filename_split): Rewrite to avoid cast.
3121
3122 * src/gram.h (symbol_number_as_item_number,
3123 item_number_as_symbol_number, rule_number_as_item_number,
3124 item_number_as_rule_number):
3125 Now inline functions rather than macros, to avoid casts.
3126 * src/state.h (state_number_as_int): Likewise.
3127 * src/tables.c (state_number_to_vector_number,
3128 symbol_number_to_vector_number): Likewise.
3129
3130 * src/gram.h (int_of_rule_number): Remove; no longer used.
3131
3132 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
3133 since the resulting storage is always stored into.
3134
3135 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
3136 where it's needed.
3137
3138 * src/muscle_tab.c (muscle_m4_output):
3139 Now inline. Return bool, not int.
3140 * src/state.c (state_compare): Likewise.
3141 * src/symtab.c (symbol_check_defined,
3142 symbol_check_alias_consistency, symbol_pack, symbol_translation,
3143 hash_compare_symbol, hash_symbol):
3144 Likewise.
3145 * src/uniqstr.c (uniqstr_print): Likewise.
3146 * src/muscle_tab.c (muscle_m4_output_processor):
3147 New function, to avoid casts.
3148 * src/state.c (state_comparator, stage_hasher): Likewise.
3149 * src/symtab.c (symbol_check_defined_processor,
3150 symbol_check_alias_consistency_processor, symbol_pack_processor,
3151 symbol_translation_processor, hash_symbol_comparator,
3152 hash_symbol_hasher): Likewise.
3153 * src/uniqstr.c (uniqstr_print_processor): Likewise.
3154 * src/muscle_tab.c (muscles_m4_output):
3155 Use new functions instead of casting old functions unportably.
3156 * src/state.c (state_hash_new): Likewise.
3157 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
3158 symbols_token_translations_init):
3159 Likewise.
3160 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
3161
3162 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
3163 var instead of casting to long, to avoid casts.
3164 (prepare_states): Use MALLOC rather than alloca, so that we don't
3165 have to worry about alloca.
3166 * src/state.c (state_hash_lookup): Likewise.
3167
3168 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
3169 local var instead of casting to unsigned char, to avoid casts.
3170
3171 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
3172 STATE_ALLOC): Remove.
3173 (transitions_new, errs_new, reductions_new, state_new): Use malloc
3174 rather than calloc, and use offsetof to avoid allocating slightly
3175 too much storage.
3176 (state_new): Initialize all members.
3177
3178 * src/state.c (state_hash): Use unsigned accumulator, not signed.
3179
3180 * src/symtab.c (symbol_free): Remove; unused.
3181 (symbol_get): Remove cast in lhs of assignment.
3182 (symbols_do): Now static. Accept generic arguments, not
3183 hashing-related ones.
3184
3185 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
3186 (symbol_processor): Remove.
3187 (symbols_do): Remove decl; now static.
3188
3189 * src/system.h (alloca): Remove; decl no longer needed.
3190 (<stddef.h>): Include, for offsetof.
3191 (<inttypes.>, <stdint.h>): Include if available.
3192 (uintptr_t): New type, if system lacks it.
3193 (CALLOC, MALLOC, REALLOC): New macros.
3194 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
3195 new macros.
3196
3197 * src/tables.c (table_size): Now int, to pacify GCC.
3198 (table_grow, table_ninf_remap): Use signed table size.
3199 (save_row): Don't bother initializing locals when not needed.
3200 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
3201 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
3202
3203 * src/vcg.h: Correct misspellings.
3204
3205 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
3206
3207
3208 * src/getargs.c (getargs): Don't assume EOF == -1.
3209
3210 2002-12-09 Paul Eggert <eggert@twinsun.com>
3211
3212 Change identifier spellings to avoid collisions with names
3213 that are reserved by POSIX.
3214
3215 Don't use names ending in _t, since POSIX reserves them.
3216 For consistency, remove _e and _s endings -- they're weren't
3217 needed to remove ambiguity. All uses changed.
3218 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
3219 turn was just renamed from struniq_t.
3220 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
3221 which in turn was just renamed from struniq_processor_t.
3222 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
3223 in turn was renamed from hash_compare_struniq_t.
3224 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
3225 (state_list): Renamed from state_list_t.
3226 * src/assoc.h (assoc): Renamed from assoc_t.
3227 * src/conflicts.c (enum conflict_resolution): Renamed from
3228 enum conflict_resolution_e.
3229 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
3230 (rule_list): Renamed from rule_list_t.
3231 * src/getargs.h (enum trace): Renamed from enum trace_e.
3232 (enum report): Renamed from enum report_e.
3233 * src/gram.h (item_number): Renamed from item_number_t.
3234 (rule_number): Renamed from rule_number_t.
3235 (struct rule_s): Remove the "rule_s" part; not used.
3236 (rule): Renamed from rule_t.
3237 (rule_filter): Renamed from rule_filter_t.
3238 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
3239 (goto_list): Renamed from goto_list_t.
3240 * src/lalr.h (goto_number): Renamed from goto_number_t.
3241 * src/location.h (location): Renamed from location_t.
3242 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
3243 and moved here from:
3244 * src/muscle_tab.h (muscle_entry_t): here.
3245 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
3246 (rule_list): Renamed from rule_list_t.
3247 * src/print_graph.c (static_graph): Renamed from graph.
3248 * src/reader.h (braced_code): Renamed from braced_code_t.
3249 Remove brace_code_e tag.
3250 * src/relation.h (relation_node): Renamed from relation_node_t.
3251 (relation_nodes): Renamed from relation_nodes_t.
3252 (relation): Renamed from relation_t.
3253 * src/state.h (state_number): Renamed from state_number_t.
3254 (struct state): Renamed from struct state_s.
3255 (state): Renamed from state_t.
3256 (transitions): Renamed from transitions_t. Unused (and
3257 misspelled) transtion_s tag removed.
3258 (errs): Renamed from errs_t. Unused errs_s tag removed.
3259 (reductions): Renamed from reductions_t. Unused tag
3260 reductions_s removed.
3261 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
3262 (struct symbol_list): Renamed from struct symbol_list_s.
3263 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
3264 (struct symbol): Renamed from struct symbol_s.
3265 (symbol): Renamed from symbol_t.
3266 * src/tables.c (vector_number): Renamed from vector_number_t.
3267 (action_number): Renamed from action_t.
3268 * src/tables.h (base_number): Renamed from base_t.
3269 * src/vcg.h (enum color): Renamed from enum color_e.
3270 (enum textmode): Renamed from enum textmode_e.
3271 (enum shape): Renamed from enum shape_e.
3272 (struct colorentry): Renamed from struct colorentry_s.
3273 (struct classname): Renamed from struct classname_s.
3274 (struct infoname): Renamed from struct infoname_s.
3275 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
3276 (enum decision): Renamed from enum decision_e.
3277 (enum orientation): Renamed from enum orientation_e.
3278 (enum alignment): Renamed from enum alignment_e.
3279 (enum arrow_mode): Renamed from enum arrow_mode_e.
3280 (enum crossing_type): Renamed from enum crossing_type_e.
3281 (enum view): Renamed from enum view_e.
3282 (struct node): Renamed from struct node_s.
3283 (node): Renamed from node_t.
3284 (enum linestyle): Renamed from enum linestyle_e.
3285 (enum arrowstyle): Renamed from enum arrowstyle_e.
3286 (struct edge): Renamed from struct edge.
3287 (edge): Renamed from edge_t.
3288 (struct graph): Renamed from struct graph_s.
3289 (graph): Renamed from graph_t.
3290 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
3291 Rename value_t -> value.
3292 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
3293 value_t_as_yystype -> value_as_yystype.
3294
3295 Don't include <errno.h> in the mainstream code, since it
3296 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
3297 * lib/get-errno.c, lib/get-errno.h: New files.
3298 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
3299 get-errno.c.
3300 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
3301 * src/output.c (output_skeleton): Likewise.
3302 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
3303 instead of errno.
3304 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
3305 Likewise.
3306 (handle_action_dollar, handle_action_at): Likewise.
3307 * src/system.h: Do not include <errno.h>.
3308 (TAB_EXT): Renamed from EXT_TAB.
3309 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
3310
3311 Avoid str[a-z]*, since <string.h> reserves that name space.
3312 Change all instances of "struniq" in names to "uniqstr", and
3313 likewise for "STRUNIQ" and "UNIQSTR".
3314 * src/uniqstr.c: Renamed from src/struniq.c.
3315 * src/uniqstr.h: Renamed from src/struniq.h.
3316 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
3317 * src/files.c (strsuffix): Remove; unused.
3318 (concat2): Renamed from stringappend. Now static.
3319 * src/files.h (strsuffix, stringappend): Remove; unused.
3320 * src/parse-gram.y (<chars>): Renamed from <string>.
3321 (<uniqstr>): Renamed from <struniq>.
3322 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
3323 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
3324 (struct graph_s.expand): Renamed from struct graph_s.stretch.
3325 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
3326 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
3327 (N_EXPAND): Renamed from N_STRETCH.
3328
3329 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
3330 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
3331 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
3332 Remove; unused.
3333 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
3334 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
3335 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
3336 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
3337 (BASE_MAXIMUM): Renamed from BASE_MAX.
3338 (BASE_MINIMUM): Renamed from BASE_MIN.
3339 (ACTION_MAX): Remove; unused.
3340 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
3341 Unnecessary casts removed from above defines.
3342
3343
3344 Fix misspelling in names.
3345 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
3346 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
3347 G_NODE_ALIGNEMENT.
3348
3349
3350 * lib/timevar.c (timevar_report): Renamed from time_report,
3351 for consistency with other names.
3352 * lib/timevar.h (timevar_report): New decl.
3353 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
3354
3355
3356 Sort include-file uses.
3357
3358 Reorder all include files under src to be in the order "system.h".
3359 then the ../lib include files in angle brackets (alphabetized),
3360 then the . include files in double-quotes (alphabetized). Fix
3361 dependency breakages encountered in this process, as follows:
3362 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
3363 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
3364 * src/state.h: Include "symtab.h".
3365
3366 2002-12-08 Paul Eggert <eggert@twinsun.com>
3367
3368 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
3369 since this causes problems when __file__ contains character
3370 sequences like "@" that are treated specially by src/scan-skel.l.
3371 Instead, just use the file's basename. This fixes the bug
3372 reported by Martin Mokrejs in
3373 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
3374
3375 2002-12-06 Paul Eggert <eggert@twinsun.com>
3376
3377 Add support for rules that do not have trailing semicolons, as
3378 POSIX requires. Improve the quality of locations in Bison
3379 diagnostics.
3380
3381 * src/location.c: Include <quotearg.h>.
3382 (empty_location): Now const.
3383 (location_print): New function. Follow the recommendation of the
3384 GNU Coding Standards for locations that span file boundaries.
3385 * src/location.h: Do not include <quotearg.h>; no longer needed.
3386 (boundary): New type.
3387 (location_t): Use it. This allows locations to span file boundaries.
3388 All member uses changed: file -> start.file or end.file (as needed),
3389 first_line -> start.line, first_column -> start.column,
3390 last_line -> end.line, last_column -> end.column.
3391 (equal_boundaries): New function.
3392 (LOCATION_RESET, LOCATION_STEP): Remove.
3393 (LOCATION_PRINT): Remove. All callers changed to use location_print.
3394 (empty_location): Now const.
3395 (location_print): New decl.
3396 * src/parse-gram.y (lloc_default): New function, which handles
3397 empty locations more accurately.
3398 (YYLLOC_DEFAULT): Use it.
3399 (%token COLON): Remove.
3400 (%token ID_COLON): New token.
3401 (rules): Use it.
3402 (declarations, rules): Remove trailing semicolon.
3403 (declaration, rules_or_grammar_declaration):
3404 Allow empty (";") declaration.
3405 (symbol_def): Remove empty actions; no longer needed.
3406 (rules_or_grammar_declaration): Remove trailing semicolon.
3407 (semi_colon.opt): Remove.
3408 * src/reader.h: Include location.h.
3409 (scanner_cursor): New decl.
3410 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
3411 rolling our own.
3412 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
3413 of *loc.
3414 (STEP): Remove. No longer needed, now that adjust_location does
3415 the work. All uses removed.
3416 (scanner_cursor): New var.
3417 (adjust_location): Renamed from extend_location. It now sets
3418 *loc and adjusts the scanner cursor. All uses changed.
3419 Don't bother testing for CR.
3420 (handle_syncline): Remove location arg; now updates scanner cursor.
3421 All callers changed.
3422 (unexpected_end_of_file): Now accepts start boundary of token or
3423 comment, not location. All callers changed. Update scanner cursor,
3424 not the location.
3425 (SC_AFTER_IDENTIFIER): New state.
3426 (context_state): Renamed from c_context. All uses changed.
3427 (id_loc, code_start, token_start): New local vars.
3428 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
3429 processing of Yacc white space and equivalents here.
3430 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
3431 instead of returning ID immediately, since we need to search for
3432 a subsequent colon.
3433 (<INITIAL>"'", "\""): Save token_start.
3434 (<INITIAL>"%{", "{", "%%"): Save code_start.
3435 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
3436 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
3437 BEGIN context_state at end, not INITIAL.
3438 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
3439 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
3440 Return correct token start.
3441 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
3442 the start of a character, string or multiline comment is found.
3443 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
3444 Reduction): Adjust reported locations to match the more-precise
3445 results now expected.
3446 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
3447 * tests/reduce.at (Useless Rules, Reduced Automaton,
3448 Underivable Rules): Likewise.
3449 * tests/regression.at (Invalid inputs): No longer `expecting ";"
3450 or "|"' now that so many other tokens are allowed by the new grammar.
3451
3452 * src/complain.h (current_file): Remove duplicate decl;
3453 current_file is now owned by files.h.
3454 * src/complain.c, src/scan-gram.l: Include files.h.
3455
3456 2002-12-06 Paul Eggert <eggert@twinsun.com>
3457
3458 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
3459 promotes to int; it might be unsigned int.
3460 * data/yacc.c (yy_reduce_print): Likewise.
3461
3462 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
3463 be #defined in the prologue, not in the Bison declarations.
3464 This fixes Debian Bug 102878, reported by Shaul Karl.
3465
3466 2002-12-02 Paul Eggert <eggert@twinsun.com>
3467
3468 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
3469 * lib/strtoul.c: New file, from gnulib.
3470 This fixes a porting bug reported by Peter Klein in
3471 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
3472
3473 2002-11-30 Paul Eggert <eggert@twinsun.com>
3474
3475 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
3476 and put only a forward declaration in the prologue. This is for
3477 consistency with the other scanner helper functions.
3478
3479 Type clashes now generate warnings, not errors, since it
3480 appears that POSIX may allow some grammars with type clashes.
3481 * src/reader.c (grammar_current_rule_check): Warn about
3482 type clashes instead of complaining.
3483 * tests/input.at (Type Clashes): Expect warnings, not complaints.
3484
3485 Add Yacc library, since POSIX requires it.
3486 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
3487 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
3488 * lib/main.c, lib/yyerror.c: New files.
3489
3490 gram_error can be static; it need not be extern.
3491 * src/reader.h (gram_error): Remove decl.
3492 * src/parse-gram.y (gram_error): Now static. Add static decl.
3493 (print_token_value): Omit parameter names from forward decl,
3494 for consistency.
3495
3496 2002-11-29 Paul Eggert <eggert@twinsun.com>
3497
3498 * doc/bison.texinfo: Emphasize that yylex and yyerror must
3499 be declared before being used. E.g., one should typically
3500 declare them in the prologue. Use GNU coding style in examples.
3501 Put "const" consistently after the type it modifies. Mention
3502 that C99 supports "inline". Mention that yyerror traditionally
3503 returns "int".
3504
3505 %parse-param and %lex-param now take just one argument, the
3506 declaration; the argument name is deduced from the declaration.
3507
3508 * doc/bison.texinfo (Parser Function, Pure Calling, Error
3509 Reporting, Table of Symbols): Document this.
3510 * src/parse-gram.y (add_param): New function.
3511 (COMMA): Remove.
3512 (declaration): Implement new rule for %parse-param and %lex-param.
3513 * src/scan-gram.l: "," now elicits a warning, rather than being
3514 a token; this is more compatible with byacc.
3515 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
3516
3517 2002-11-27 Paul Eggert <eggert@twinsun.com>
3518
3519 Rename identifiers to avoid real and potential collisions.
3520
3521 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
3522 to avoid collision with lex macro described by Bruce Lilly in
3523 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
3524 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
3525 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
3526 * src/parse-gram.y (print_token_value): Renamed from yyprint.
3527 All uses changed.
3528 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
3529 The name "yycontrol" violates the name space rules, and this stuff
3530 wasn't being used anyway.
3531 (input): Remove action; this stuff wasn't being used.
3532 (gram_error): Rename local variable yylloc -> loc.
3533 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
3534 (YY_DECL): Don't use "yy" at start of local variables.
3535 All uses changed, e.g., yylloc -> loc.
3536 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
3537 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
3538 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
3539 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
3540
3541 * src/parse-gram.y (gram_error): loc is now const *.
3542 * src/reader.h (gram_error): Likewise.
3543
3544 2002-11-24 Paul Eggert <eggert@twinsun.com>
3545
3546 Version 1.75c.
3547
3548 * tests/actions.at (Actions after errors): Use an output format
3549 more similar to that of the Printers and Destructors test.
3550 Test the position of the ';' token too.
3551 (Printers and Destructors): Likewise.
3552 (Printers and Destructors: %glr-parser): Remove for now, to avoid
3553 unnecessarily alarming people when the test fails.
3554
3555 * data/yacc.c (yyerrlab1): Move this label down, so that the
3556 parser does not discard the lookahead token if the user code
3557 invokes YYERROR. This change is required for POSIX conformance.
3558
3559 * lib/error.c: Sync with gnulib.
3560
3561 2002-11-22 Paul Eggert <eggert@twinsun.com>
3562
3563 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
3564 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
3565 * lib/xmalloc.c: Likewise.
3566
3567 2002-11-20 Paul Eggert <eggert@twinsun.com>
3568
3569 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
3570
3571 2002-11-20 Paul Eggert <eggert@twinsun.com>
3572
3573 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
3574 should use `if (! x) abort ();' rather than `assert (x);', and
3575 anyway it's one less thing to worry about configuring.
3576
3577 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
3578 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
3579 and replace all instances of assert with abort.
3580 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
3581 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
3582
3583 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
3584 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
3585 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
3586 hash_find_entry, hash_rehash, hash_insert): Likewise.
3587 * src/conflicts.c (resolve_sr_conflict): Likewise.
3588 * src/lalr.c (set_goto_map, map_goto): Likewise.
3589 * src/nullable.c (nullable_compute): Likewise.
3590 * src/output.c (prepare_rules, token_definitions_output): Likewise.
3591 * src/reader.c (packgram, reader): Likewise.
3592 * src/state.c (state_new, state_free, state_transitions_set,
3593 state_reduction_find): Likewise.
3594 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
3595 symbol_pack): Likewise.
3596 * src/tables.c (conflict_row, pack_vector): Likewise.
3597 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
3598 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
3599 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
3600 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
3601
3602 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
3603 (ARGMATCH_CONSTRAINT): New macro.
3604 (ARGMATCH_ASSERT): Use it.
3605
3606 * src/system.h (verify): New macro.
3607 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
3608 rather than assert.
3609 * src/tables.c (tables_generate): Likewise.
3610
3611 * src/struniq.c (struniq_assert): Now returns void, and aborts
3612 if the assertion is false.
3613 (struniq_assert_p): Remove.
3614 * src/struniq.h: Likewise.
3615
3616 2002-11-18 Paul Eggert <eggert@twinsun.com>
3617
3618 * data/glr.c (yygetLRActions): Replace `yyindex' with
3619 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
3620 This fixes the regression with Sun ONE Studio 7 cc that I reported in
3621 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
3622
3623 2002-11-18 Akim Demaille <akim@epita.fr>
3624
3625 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
3626 space.
3627 From Tim Van Holder.
3628
3629 2002-11-17 Paul Eggert <eggert@twinsun.com>
3630
3631 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
3632 to "SyntaxError" for consistency with my 2002-11-15 change.
3633
3634 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
3635 not define to {}, since this breaks the common use of `YYDPRINTF
3636 ((...));' if a single statement is desired (e.g. before `else').
3637 Work around GCC warnings by surrounding corresponding calls with
3638 {} if needed.
3639 (yyhasResolvedValue): Remove unused function.
3640 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
3641 loop body.
3642 (yyreportSyntaxError): Renamed from yyreportParseError.
3643 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
3644 All uses changed.
3645 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
3646 extern when possible. Remove unused initializations.
3647
3648 2002-11-16 Akim Demaille <akim@epita.fr>
3649
3650 Augment the similarity between GLR and LALR traces.
3651
3652 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
3653 (YY_REDUCE_PRINT): New.
3654 (yyparse): Use them.
3655 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
3656 YYDPRINT here.
3657 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
3658 state reached after the reduction/recovery, since...
3659 (yyparse, yyprocessOneStack): Report the state we are entering in.
3660
3661 2002-11-16 Akim Demaille <akim@epita.fr>
3662
3663 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
3664 Add support for --trace=skeleton.
3665 * src/scan-skel.l: %option debug.
3666 Scan strings of non-@ or \n instead of character by character.
3667 (scan_skel): Handle trace_skeleton.
3668 (QPUTS): New.
3669 (@output_parser_name@, @output_header_name@): ``Restore'' their
3670 support (used to be M4 macros).
3671 * data/yacc.c: Quote larger chunks, a la glr.c.
3672 * data/lalr1.cc: Likewise.
3673 The header guards are no longer available, so use some other
3674 string than `YYLSP_NEEDED'.
3675
3676 2002-11-16 Akim Demaille <akim@epita.fr>
3677
3678 Make the ``Printers and Destructors'' test more verbose, taking
3679 `yacc.c''s behavior as (possibly wrong) reference.
3680
3681 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
3682 instead of fprint on stdout.
3683 Set and report the last_line of the symbols.
3684 Consistently display values and locations.
3685
3686 2002-11-16 Paul Eggert <eggert@twinsun.com>
3687
3688 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
3689
3690 2002-11-15 Paul Eggert <eggert@twinsun.com>
3691
3692 * tests/actions.at (Actions after errors): New test case.
3693
3694 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
3695 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
3696 tests/action.at, tests/calc.at, tests/conflicts.at,
3697 tests/cxx-type.at, tests/regression.at:
3698 "parse error" -> "syntax error" for POSIX compatibility.
3699 "parsing stack overflow..." -> "parser stack overflow" so
3700 that code matches Bison documentation.
3701
3702 2002-11-15 Akim Demaille <akim@epita.fr>
3703
3704 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
3705 take two BRACED_CODE, not two string_content.
3706 Free the scanner's obstack when we are done.
3707 (code_content): New.
3708 * tests/calc.at: Adjust.
3709 * doc/bison.texinfo: Adjust.
3710 Also, make sure to include the `,' for these declarations.
3711
3712 2002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
3713
3714 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
3715 definition; avoids potential autoreconf problems.
3716
3717 2002-11-15 Akim Demaille <akim@epita.fr>
3718
3719 Always check the value returned by yyparse.
3720
3721 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
3722 returned by yyparse.
3723 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
3724 Adjust calls.
3725 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
3726 returned by yyparse.
3727
3728 2002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3729
3730 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
3731 on input.at test.
3732
3733 2002-11-14 Paul Eggert <eggert@twinsun.com>
3734
3735 * src/output.c (output_skeleton): Call xfopen instead of
3736 duplicating xfopen's body.
3737
3738 Fix bugs reported by Nelson H. F. Beebe in
3739 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
3740
3741 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
3742 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
3743 Group compiler. Instead, use "$CC -E bar.c". Include the .h
3744 file twice in the grammar, as an extra check.
3745
3746 * tests/input.at (Torturing the Scanner): Surround the
3747 backslash-newline tests with "#if 0", to make it less likely that
3748 we'll run into compiler bugs. Bring back solitary \ inside
3749 comment, but add a closing comment to work around HP C bug. Don't
3750 test backslash-newline in C character constant.
3751
3752 2002-11-14 Akim Demaille <akim@epita.fr>
3753
3754 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
3755 status of the compiler.
3756 Calling `exit 1' is no longer needed.
3757 Reported by Nelson H. F. Beebe.
3758
3759 2002-11-14 Akim Demaille <akim@epita.fr>
3760
3761 * tests/atlocal.in (CPPFLAGS): We have config.h.
3762 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
3763 New.
3764 * tests/actions.at, tests/calc.at, tests/conflicts.at,
3765 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
3766 * tests/regression.at, tests/torture.at: Use them for all the
3767 grammars that are to be compiled.
3768 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
3769 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
3770 * doc/bison.texinfo (GLR Parsers): Document `inline'.
3771
3772 2002-11-14 Akim Demaille <akim@epita.fr>
3773
3774 * doc/bison.texinfo: Various formatting changes (alignments in
3775 samples, additional @group/@end group, GCS in samples.
3776 Use @deffn instead of simple @table to define the directives,
3777 macros, variables etc.
3778
3779 2002-11-13 Paul Eggert <eggert@twinsun.com>
3780
3781 Fix some bugs reported by Albert Chin-A-Young in
3782 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
3783
3784 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
3785 -o c"; the HP C compiler chatters during compilation.
3786 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
3787 * tests/headers.at (export YYLTYPE): Likewise.
3788
3789 * tests/input.at (Torturing the Scanner): Remove lines containing
3790 solitary backslashes, as they tickle a bug in the HP C compiler.
3791
3792 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
3793 comments, since they're not portable. Use GNU coding style.
3794
3795 2002-11-13 Akim Demaille <akim@epita.fr>
3796
3797 * data/yacc.c: Leave bigger chunks of quoted text.
3798 (YYDSYMPRINTF): New.
3799 Use it to report symbol activities.
3800 * data/glr.c (YYDSYMPRINTF): New.
3801 Use it.
3802
3803 2002-11-12 Paul Eggert <eggert@twinsun.com>
3804
3805 Version 1.75b.
3806
3807 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
3808 (yyglrReduce): Return yyok, not 0.
3809 This should avoid the enumerated-type warnings reported
3810 by Nelson H. F. Beebe in
3811 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
3812
3813 * lib/bbitset.h (BITSET_INLINE): Remove.
3814 * lib/bitset.h [! BITSET_INLINE]: Remove.
3815 (bitset_set, bitset_reset, bitset_test): Rename local vars
3816 to avoid shadowing warnings by GCC.
3817
3818 * data/glr.c (inline): Remove #define. It's the user's
3819 responsibility to #define it away, just like 'const'.
3820 This fixes one of the bugs reported by Nelson H. F. Beebe in
3821 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
3822
3823 * Makefile.maint (po-check): Scan .l and .y files instead of the
3824 .c and the .h files that they generate. This fixes the bug
3825 reported by Tim Van Holder in:
3826 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
3827 Look for N_ as well as for _. Try to avoid matching #define for
3828 N_ and _.
3829 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
3830 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
3831 * src/scan-gram.l: Revamp regular expressions so that " and '
3832 do not confuse xgettext.
3833
3834 * src/struniq.h (struniq_new): Do not declare the return type
3835 to be 'const'; this violates the C standard.
3836 * src/struniq.c (struniq_new): Likewise.
3837
3838 2002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
3839
3840 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
3841 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
3842 linker.
3843
3844 2002-11-12 Akim Demaille <akim@epita.fr>
3845
3846 * Makefile.maint: Sync with Autoconf:
3847 (local_updates): New.
3848
3849 2002-11-12 Akim Demaille <akim@epita.fr>
3850
3851 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
3852
3853 2002-11-12 Akim Demaille <akim@epita.fr>
3854
3855 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
3856 locations.
3857
3858 2002-11-12 Akim Demaille <akim@epita.fr>
3859
3860 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
3861 not yyvalue.
3862
3863 2002-11-12 Akim Demaille <akim@epita.fr>
3864
3865 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
3866 Use it to test the GLR parser.
3867
3868 2002-11-12 Akim Demaille <akim@epita.fr>
3869
3870 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
3871 defines it.
3872 * data/glr.c (yystos): New.
3873 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
3874 (YYDSYMPRINT): New.
3875 (yyval): Don't define it, it is handled via M4.
3876 (yyrecoverParseError): Free verbosely the discarded symbols.
3877 * data/yacc.c (yysymprint): Remove, rather...
3878 (b4_yysymprint_generate): invoke.
3879 * data/c.m4 (b4_yysymprint_generate): New.
3880 Accept pointers as arguments, as opposed to the version from
3881 yacc.c.
3882 (b4_yydestruct_generate): Likewise.
3883 * tests/cations.at (Printers and Destructors): Use Bison directives
3884 instead of CPP macros.
3885 Don't rely on internal details.
3886
3887 2002-11-12 Akim Demaille <akim@epita.fr>
3888
3889 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
3890 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
3891 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
3892 it against YYEMPTY and so forth), work on yytoken (i.e., set
3893 it to YYEMPTY etc.).
3894 (yydestruct): Replace with a b4_yydestruct_generate invocation.
3895 (b4_symbol_actions): Remove.
3896 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
3897 for 0, end-of-input.
3898
3899 2002-11-12 Akim Demaille <akim@epita.fr>
3900
3901 * doc/bison.texinfo (Destructor Decl): New.
3902
3903 2002-11-12 Akim Demaille <akim@epita.fr>
3904
3905 * src/tables.c (tables_generate): Use free for pointers that
3906 cannot be NULL, not XFREE.
3907 (pack_vector): Use assert, not fatal, for bound violations.
3908 * src/state.c (state_new): Likewise.
3909 * src/reader.c (reader): Likewise.
3910 * src/lalr.c (set_goto_map): Likewise.
3911 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
3912 the file name.
3913
3914 2002-11-12 Akim Demaille <akim@epita.fr>
3915
3916 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
3917 Restore.
3918 * src/scan-gram.l (last_string): Is global to the file, not to
3919 yylex.
3920 * src/parse-gram.y (input): Don't append the epilogue here,
3921 (epilogue.opt): do it here, and free the scanner's obstack.
3922 * src/reader.c (epilogue_set): Rename as...
3923 (epilogue_augment): this.
3924 * data/c.m4 (b4_epilogue): Defaults to empty.
3925
3926 2002-11-12 Akim Demaille <akim@epita.fr>
3927
3928 * src/getargs.c (long_options): Remove duplicates.
3929 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
3930 Remove.
3931 * doc/bison.rnh: Remove.
3932 * doc/bison.texinfo (VMS Invocation): Remove.
3933
3934 2002-11-12 Akim Demaille <akim@epita.fr>
3935
3936 * src/struniq.h, src/struniq.c (struniq_t): Is const.
3937 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
3938
3939 Use struniq for symbols.
3940
3941 * src/symtab.h (symbol_t): The tag member is a struniq.
3942 (symbol_type_set): Adjust.
3943 * src/symtab.c (symbol_new): Takes a struniq.
3944 (symbol_free): Don't free the tag member.
3945 (hash_compare_symbol_t, hash_symbol_t): Rename as...
3946 (hash_compare_symbol, hash_symbol): these.
3947 Use the fact that tags as struniqs.
3948 (symbol_get): Use struniq_new.
3949 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
3950 Returns a strniq.
3951 * src/reader.h (merger_list, grammar_currentmerge_set): The name
3952 and type members are struniqs.
3953 * src/reader.c (get_merge_function)
3954 (grammar_current_rule_merge_set): Adjust.
3955 (TYPE, current_type): Are struniq.
3956
3957 Use struniq for file names.
3958
3959 * src/files.h, src/files.c (infile): Split into...
3960 (grammar_file, current_file): these.
3961 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
3962 * src/reduce.c (reduce_print): Likewise.
3963 * src/getargs.c (getargs): Likewise.
3964 * src/complain.h, src/complain.c: Likewise.
3965 * src/main.c (main): Call struniqs_new early enough to use it for
3966 file names.
3967 Don't free the input file name.
3968
3969 2002-11-12 Akim Demaille <akim@epita.fr>
3970
3971 * src/symtab.c (symbol_free): Remove dead deactivated code:
3972 type_name are properly removed.
3973 Don't use XFREE to free items that cannot be NULL.
3974 * src/struniq.h, src/struniq.c: New.
3975 * src/main.c (main): Initialize/free struniqs.
3976 * src/parse-gram.y (%union): Add astruniq member.
3977 (yyprint): Adjust.
3978 * src/scan-gram.l (<{tag}>): Return a struniq.
3979 Free the obstack bit that used to store it.
3980 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
3981
3982 2002-11-11 Paul Eggert <eggert@twinsun.com>
3983
3984 Revamp to fix many (but not all) of the C- and M4-related quoting
3985 problems. Among other things, this fixes the Bison bug reported
3986 by Jan Hubicka when processing the Bash grammar; see:
3987 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
3988
3989 Use new @ escapes consistently. Represent brackets with @{ and @}
3990 rather than @<:@ and @:>@, since this works a bit better with dumb
3991 editors like vi. Represent @ with @@, since @ is now consistently
3992 an escape. Use @oline@ and @ofile@ rather than __oline__ and
3993 __ofile__, to avoid unexpected expansions. Similarly, use @output
3994 rather than #output.
3995
3996 * data/c.m4 (b4_copyright): Omit file name from comment, since
3997 the file name could contain "*/".
3998 (b4_synclines_flag): Don't quote the 2nd argument; it should already
3999 be quoted. All uses changed.
4000
4001 * data/glr.c: Use new @ escapes consistently.
4002 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
4003 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
4004 Remove, since they couldn't handle arbitrary characters in file
4005 names.
4006 * data/lalr1.cc: Likewise.
4007 * data/yacc.c: Likewise.
4008
4009 * src/files.c (output_infix): Remove; all uses removed.
4010 * src/files.h: Likewise.
4011
4012 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
4013 mishandled funny characters in file names, and anyway it isn't
4014 needed any more.
4015 * data/yacc.c: Likewise.
4016 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
4017
4018 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
4019 * data/yacc.c: Likewise.
4020
4021 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
4022 strings now.
4023 (muscle_init): Quote filename as a C string.
4024 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
4025 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
4026 * src/output.c (escaped_file_name_output): New function.
4027 (prepare_symbols): Quote tokens for M4.
4028 (prepare): Don't insert output_infix, output_prefix,
4029 output_parser_name, output_header_name; this is now down by scan-skel.
4030 Insert skeleton as a C string.
4031
4032 * src/output.c (user_actions_output, symbol_destructors_output,
4033 symbol_printers_output): Quote filenames for C and M4.
4034 * src/reader.c (prologue_augment, epilogue_set): Likewise.
4035
4036 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
4037 escapes other than \\ and \'; this simplifies the code.
4038 (<SC_STRING>): Likewise, for \\ and \".
4039 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
4040 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
4041 Use new escapes @{ and @} for [ and ].
4042
4043 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
4044 them with auto vars.
4045 Switch to new escape scheme, where @ is the escape character uniformly.
4046 Abort if a stray escape character is found. Avoid unbounded input
4047 buffer when parsing non-escaped text.
4048
4049 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
4050 __oline__, #output, $@, and @{ do not have unintended meanings.
4051
4052 2002-11-09 Paul Eggert <eggert@twinsun.com>
4053
4054 Fix the test failure due to GCC warnings described in
4055 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
4056 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
4057 evaluate to 0 if it's impossible for NINF to be in the respective
4058 table.
4059 (yygetLRActions, yyrecoverParseError): Use them.
4060
4061 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
4062 counted in the token inserted at end of file. Now takes
4063 location_t *, not location_t, so that the location can be
4064 adjusted. All uses changed.
4065
4066 * tests/regression.at (Invalid inputs): Adjust wording in
4067 diagnostic to match the new behavior.
4068
4069 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
4070 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
4071 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
4072 abort ();'. This reduces the runtime of the "Many lookaheads"
4073 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
4074 GCC 3.2.
4075
4076 2002-11-07 Paul Eggert <eggert@twinsun.com>
4077
4078 * src/parse-gram.y (CHARACTER): Remove unused token.
4079 All uses removed.
4080
4081 * src/scan-gram.l: Remove stack option. We no longer use the
4082 stack, since the stack was never deeper than 1; instead, use the
4083 new auto var c_context to record the stacked value.
4084
4085 Remove nounput option. At an unexpected end of file, we now unput
4086 the minimal input necessary to end cleanly; this simplifies the
4087 code.
4088
4089 Avoid unbounded token sizes where this is easy.
4090
4091 (unexpected_end_of_file): New function.
4092 Use it to systematize the error message on unexpected EOF.
4093 (last-string): Now auto, not static.
4094 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
4095 (scanner_last_string_free): Remove; not used.
4096 (percent_percent_count): Move decl to just before use.
4097 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
4098 not the (never otherwised-used) CHARACTER.
4099
4100 2002-11-07 Akim Demaille <akim@epita.fr>
4101
4102 Let yyerror always receive the msg as last argument, so that
4103 yyerror can be variadic.
4104
4105 * data/yacc.c (b4_yyerror_args): New.
4106 Use it when calling yyerror.
4107 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
4108 Use it when calling yyerror.
4109 * doc/bison.texinfo (Error Reporting): Adjust.
4110 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
4111 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
4112
4113 2002-11-06 Akim Demaille <akim@epita.fr>
4114
4115 #line should have quoted strings.
4116 Ideally, this should be done by m4_quotearg.
4117
4118 * src/scan-skel.l: Include quotearg.h.
4119 Quote __ofile__.
4120 * src/output.c (symbol_printers_output)
4121 (symbol_destructors_output): Quote the file name.
4122
4123 2002-11-06 Akim Demaille <akim@epita.fr>
4124
4125 * tests/regression.at (Invalid inputs): Adjust to the recent
4126 messages.
4127
4128 2002-11-06 Akim Demaille <akim@epita.fr>
4129
4130 Restore --no-lines.
4131 Reported by Jim Kent.
4132
4133 * data/c.m4 (b4_syncline): New.
4134 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
4135 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
4136 * src/output.c (user_actions_output): Likewise.
4137 (prepare): Define 'b4_synclines_flag'.
4138 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
4139
4140 2002-11-06 Akim Demaille <akim@epita.fr>
4141
4142 * src/main.c (main): Free `infile'.
4143 * src/scan-gram.l (handle_syncline): New.
4144 Recognize `#line'.
4145 * src/output.c (user_actions_output, symbol_destructors_output)
4146 (symbol_printers_output): Use the location's file name, not
4147 infile.
4148 * src/reader.c (prologue_augment, epilogue_set): Likewise.
4149
4150 2002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4151
4152 * src/tables.c (matching_state): Don't allow states to match if
4153 either has GLR conflict entries.
4154
4155 2002-11-05 Paul Eggert <eggert@twinsun.com>
4156
4157 * src/scan-gram.l: Use more accurate diagnostics, e.g.
4158 "integer out of range" rather than "invalid value".
4159 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
4160 accordingly.
4161
4162 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
4163 Also, remove one static variable in the scanner.
4164
4165 * src/scan-gram.l (braces_level): Now auto, not static.
4166 Initialize to zero if the compiler is being picky.
4167 (INITIAL): Clear braces_level instead of incrementing it.
4168 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
4169 as POSIX 1003.1-2001 requires.
4170 * src/system.h (IF_LINT): New macro, taken from coreutils.
4171 * configure.ac: Define "lint" if --enable-gcc-warnings.
4172
4173 2002-11-05 Akim Demaille <akim@epita.fr>
4174
4175 * src/scan-gram.l: When it starts with `%', complain about the
4176 whole directive, not just that `invalid character: %'.
4177
4178 2002-11-04 Akim Demaille <akim@epita.fr>
4179
4180 * Makefile.maint: Update from Autoconf.
4181 (update, cvs-update, po-update, do-po-update): New.
4182
4183 2002-11-04 Akim Demaille <akim@epita.fr>
4184
4185 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
4186 and yyerror.
4187 Have yyerror `use' its arguments.
4188 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
4189 returns true when location & yacc & pure & parse-param.
4190 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
4191
4192 2002-11-04 Akim Demaille <akim@epita.fr>
4193
4194 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
4195 clashes.
4196 * src/scan-gram.l: Use [\'] instead of ['] to pacify
4197 font-lock-mode.
4198 Use complain_at.
4199 Use quote, not quote_n since LOCATION_PRINT no longer uses the
4200 slot 0.
4201
4202 2002-11-03 Paul Eggert <eggert@twinsun.com>
4203
4204 * src/reader.c (get_merge_function, grammar_current_rule_check):
4205 Use consistent diagnostics for reporting type name clashes.
4206 Quote the types with <>, for consistency with Yacc.
4207 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
4208
4209 2002-11-03 Akim Demaille <akim@epita.fr>
4210
4211 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
4212 New.
4213 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
4214 (b4_parse_param): Remove.
4215 Use b4_identification.
4216 Propagate b4_pure_args where needed to pass them to yyerror.
4217 * data/glr.m4 (b4_parse_param): Remove.
4218 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
4219 (b4_lpure_formals): New.
4220 Use b4_identification.
4221 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
4222 b4_user_formals and b4_user_args.
4223 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
4224 (yyreportAmbiguity): When using a pure parser, also need
4225 the location, and the parse-params.
4226 Adjust callers.
4227 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
4228 When using a pure parser, also need the parse-params.
4229 Adjust callers.
4230 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
4231 (%pure-parser + %parse-param) LALR and GLR parsers.
4232 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
4233 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
4234 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
4235 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
4236 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
4237 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
4238 * doc/bison.texinfo: Untabify the whole file.
4239 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
4240 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
4241 (Error Reporting): Adjust to these new directives.
4242 Document %error-verbose, deprecate YYERROR_VERBOSE.
4243
4244 2002-11-03 Akim Demaille <akim@epita.fr>
4245
4246 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
4247 AT_CHECK_CALC_GLR invocations to use % directives, instead of
4248 command line options.
4249 * tests/cxx-type.at: Formatting changes.
4250
4251 2002-11-03 Paul Eggert <eggert@twinsun.com>
4252
4253 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
4254 to count columns correctly, and to check for invalid inputs.
4255
4256 Use mbsnwidth to count columns correctly. Account for tabs, too.
4257 Include mbswidth.h.
4258 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
4259 (extend_location): New function.
4260 (YY_LINES): Remove.
4261
4262 Handle CRLF in C code rather than in Lex code.
4263 (YY_INPUT): New macro.
4264 (no_cr_read): New function.
4265
4266 Scan UCNs, even though we don't fully handle them yet.
4267 (convert_ucn_to_byte): New function.
4268
4269 Handle backslash-newline correctly in C code.
4270 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
4271 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
4272 all uses changed.
4273 (tag, splice): New EREs. Do not allow NUL or newline in tags.
4274 Use {splice} wherever C allows backslash-newline.
4275 YY_STEP after space, newline, vertical-tab.
4276 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
4277
4278 (letter, id): Don't assume ASCII; e.g., spell out a-z.
4279
4280 ({int}, handle_action_dollar, handle_action_at): Check for integer
4281 overflow.
4282
4283 (YY_STEP): Omit trailing semicolon, so that it's more like C.
4284
4285 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
4286 as well as \000. Check for UCHAR_MAX, not 255.
4287 Allow \x with an arbitrary positive number of digits, as in C.
4288 Check for overflow here.
4289 Allow \? and UCNs, for compatibility with C.
4290
4291 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
4292 with quote slot used by complain_at.
4293
4294 * tests/input.at: Add tests for backslash-newline, m4 quotes
4295 in symbols, long literals, and funny escapes in strings.
4296
4297 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
4298 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
4299 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
4300 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
4301 * m4/mbswidth.m4: New file, from GNU coreutils.
4302
4303 * doc/bison.texinfo (Grammar Outline): Document // comments.
4304 (Symbols): Document that trigraphs have no special meaning in Bison,
4305 nor is backslash-newline allowed.
4306 (Actions): Document that trigraphs have no special meaning.
4307
4308 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
4309 no longer used.
4310
4311 2002-11-02 Paul Eggert <eggert@twinsun.com>
4312
4313 * src/reader.c: Don't include quote.h; not needed.
4314 (get_merge_function): Reword warning to be consistent with
4315 type clash diagnostic in grammar_current_rule_check.
4316
4317 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
4318 bug in trigraph handling.
4319
4320 * src/output.c (prepare_symbols): When printing token names,
4321 escape "[" as "@<:@" and likewise for "]".
4322
4323 * src/system.h (errno): Remove declaration, as we are now
4324 assuming C89 or better, and C89 guarantees errno.
4325
4326 2002-10-30 Paul Eggert <eggert@twinsun.com>
4327
4328 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
4329 Check for close failures.
4330 * src/files.h (xfclose): Return void, not int, since it always
4331 returned zero.
4332 * src/files.c (xfclose): Likewise. Report I/O error if ferror
4333 indicates one.
4334 * src/output.c (output_skeleton): Use xfclose rather than fclose
4335 and ferror. xfclose now checks ferror.
4336
4337 * data/glr.c (YYLEFTMOST_STATE): Remove.
4338 (yyreportTree): Use a stack-based leftmost state. This avoids
4339 our continuing battles with bogus warnings about initializers.
4340
4341 2002-10-30 Akim Demaille <akim@epita.fr>
4342
4343 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
4344 #if.
4345
4346 2002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4347
4348 * tests/glr-regr1.at: New test for reported regressions.
4349 * tests/testsuite.at: Add glr-regr1.at test.
4350 * tests/Makefile.am: Add glr-regr1.at test.
4351
4352 2002-10-24 Paul Eggert <eggert@twinsun.com>
4353
4354 Version 1.75a.
4355
4356 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
4357 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
4358 we use malloc. Don't assume 'A' through 'Z' are contiguous.
4359 Don't assume strdup exists; POSIX says its an XSI extension.
4360 Check for buffer overflow on input.
4361
4362 2002-10-24 Akim Demaille <akim@epita.fr>
4363
4364 * src/output.c (output_skeleton): Don't disable M4sugar comments
4365 too soon: it results in comments being expanded.
4366 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
4367 first output.
4368
4369 2002-10-24 Akim Demaille <akim@epita.fr>
4370
4371 * data/yacc.c (m4_int_type): New.
4372 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
4373 char' as only yacc.c wants K&R portability.
4374 * data/glr.c (yysigned_char): Remove.
4375 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
4376 Reported by Quoc Peyrot.
4377
4378 2002-10-23 Paul Eggert <eggert@twinsun.com>
4379
4380 * src/main.c (main): With --trace=time, report times even if a
4381 non-fatal error occurs. Formerly, the times were reported in some
4382 such cases but not in others.
4383 * src/reader.c (reader): Just return if a complaint has been issued,
4384 instead of exiting, so that 'main' can report times.
4385
4386 2002-10-22 Akim Demaille <akim@epita.fr>
4387
4388 * src/system.h: Include sys/types.
4389 Reported by Bert Deknuydt.
4390
4391 2002-10-23 Paul Eggert <eggert@twinsun.com>
4392
4393 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
4394 Suggested by Art Haas.
4395
4396 2002-10-22 Paul Eggert <eggert@twinsun.com>
4397
4398 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
4399 decl; not needed any more.
4400 * src/main.c (main): Use return to exit, undoing yesterday's change.
4401 The last OS that we could find where this wouldn't work is
4402 SunOS 3.5, and that's too old to worry about now.
4403
4404 * data/glr.c (struct yyltype): Define members even when not
4405 doing locations. This is more consistent with yacc.c, and it
4406 works around the following bug reports:
4407 http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
4408 http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
4409
4410 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
4411 @acronym consistently. Standardize on "Yacc" instead of "YACC",
4412 "Algol" instead of "ALGOL". Give a bit more history about BNF.
4413
4414 2002-10-22 Akim Demaille <akim@epita.fr>
4415
4416 * data/README: New.
4417
4418 2002-10-21 Paul Eggert <eggert@twinsun.com>
4419
4420 Be consistent about 'bool'; the old code used an enum in one
4421 module and an int in another, and this violates the C standard.
4422 * m4/stdbool.m4: New file, from coreutils 4.5.3.
4423 * configure.ac (AC_HEADER_STDBOOL): Add.
4424 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
4425 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
4426 * src/symtab.c (hash_compare_symbol_t): Likewise.
4427 * src/system.h (bool, false, true): Use a definition consistent
4428 with ../lib/hash.c. All uses changed.
4429
4430 * src/complain.c (warning_issued): Renamed from warn_message_count,
4431 so that we needn't worry about integer overflow (!).
4432 Now of type bool. All uses changed.
4433 (complaint_issued): Renamed from complain_message_count; likewise.
4434
4435 * src/main.c (main): Use exit to exit with failure.
4436
4437 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
4438 rather than 1 and 0.
4439 * src/main.c (main): Likewise.
4440 * src/getargs.c (getargs): Likewise.
4441 * src/reader.c (reader): Likewise.
4442
4443 * src/getarg.c (getargs): Remove duplicate code for
4444 "Try `bison --help'".
4445
4446 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
4447 What was that "2" for?
4448
4449 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
4450 * src/getargs.c (usage): Likewise.
4451
4452 * src/getargs.c (getargs): When there are too few operands, report
4453 the last one. When there are too many, report the first extra
4454 one. This is how diffutils does it.
4455
4456 2002-10-20 Paul Eggert <eggert@twinsun.com>
4457
4458 Remove K&R vestiges.
4459 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
4460 * src/complain.c (VA_START): Remove. Assume prototypes.
4461 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
4462 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
4463 fatal): Assume prototypes.
4464 * src/complain.h: Assume prototypes.
4465 * src/system.h (PARAMS): Remove.
4466 Include <limits.h> unconditionally, since it's guaranteeed even
4467 for a freestanding C89 compiler.
4468 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
4469 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
4470
4471 2002-10-20 Akim Demaille <akim@epita.fr>
4472
4473 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
4474 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
4475 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
4476 (yyresolveStates, yyresolveAction, yyresolveStack)
4477 (yyprocessOneStack): Use them.
4478 (yy_reduce_print): New.
4479 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
4480
4481 2002-10-20 Akim Demaille <akim@epita.fr>
4482
4483 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
4484 arguments and output `void'.
4485 (b4_c_function): Rename as...
4486 (b4_c_function_def): this.
4487 (b4_c_function_decl, b4_c_ansi_function_def)
4488 (b4_c_ansi_function_decl): New.
4489 Change the interpretation of the arguments: before `int, foo', now
4490 `int foo, foo'.
4491 * data/yacc.c (yyparse): Prototype and define thanks to these.
4492 Adjust b4_c_function_def uses.
4493 * data/glr.c (yyparse): Likewise, but ANSI only.
4494
4495 2002-10-20 Akim Demaille <akim@epita.fr>
4496
4497 * src/output.c (prepare): Move the definition of `tokens_number',
4498 `nterms_number', `undef_token_number', `user_token_number_max'
4499 to...
4500 (prepare_tokens): Here.
4501 (prepare_tokens): Rename as...
4502 (prepare_symbols): this.
4503 (prepare): Move the definition of `rules_number' to...
4504 (prepare_rules): here.
4505 (prepare): Move the definition of `last', `final_state_number',
4506 `states_number' to...
4507 (prepare_states): here.
4508 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
4509
4510 2002-10-20 Akim Demaille <akim@epita.fr>
4511
4512 * src/tables.h, src/tables.c, src/output.c: Comment changes.
4513
4514 2002-10-20 Akim Demaille <akim@epita.fr>
4515
4516 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
4517 * data/c.m4: here.
4518
4519 2002-10-20 Akim Demaille <akim@epita.fr>
4520
4521 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
4522 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
4523 `pair'.
4524 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
4525 `name' to...
4526 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
4527 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
4528 These.
4529
4530 2002-10-19 Paul Eggert <eggert@twinsun.com>
4531
4532 Do not create a temporary file, as that involves security and
4533 cleanup headaches. Instead, use a pair of pipes.
4534 Derived from a suggestion by Florian Krohm.
4535 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
4536 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
4537 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
4538 (BISON_PREREQ_SUBPIPE): Add.
4539 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
4540 Add subpipe.h, subpipe.c.
4541 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
4542 * po/POTFILES.in: Add lib/subpipe.c.
4543 * src/output.c: Include "subpipe.h".
4544 (m4_invoke): Remove decl.
4545 (scan_skel): New decl.
4546 (output_skeleton): Use pipe rather than temporary file for m4 input.
4547 Check that m4sugar.m4 is readable, to avoid deadlock.
4548 Check for pipe I/O error.
4549 * src/scan-skel.l (readpipe): Remove decl.
4550 (scan_skel): New function, to be used in place of m4_invoke.
4551 Read from stream rather than file.
4552
4553 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
4554 float, as this generates a warning on Solaris 8 + GCC 3.2 with
4555 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
4556 this generates a more-accurate value anyway.
4557
4558 * lib/timevar.c (timervar_accumulate): Rename locals to
4559 avoid confusion with similarly-named more-global.
4560 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
4561
4562 * src/output.c (prepare): Use xstrdup to convert char const *
4563 to char *, to avoid GCC warning.
4564
4565 2002-10-19 Akim Demaille <akim@epita.fr>
4566
4567 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
4568 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
4569 Use them to have `calc.y' ready for %pure-parser.
4570 * data/yacc.c (YYLEX): Pass a yylex return type to
4571 b4_c_function_call.
4572
4573 2002-10-19 Akim Demaille <akim@epita.fr>
4574
4575 Prototype support of %lex-param and %parse-param.
4576
4577 * src/parse-gram.y: Add the definition of the %lex-param and
4578 %parse-param tokens, plus their rules.
4579 Drop the `_' version of %glr-parser.
4580 Add the "," token.
4581 * src/scan-gram.l (INITIAL): Scan them.
4582 * src/muscle_tab.c: Comment changes.
4583 (muscle_insert, muscle_find): Rename `pair' as `probe'.
4584 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
4585 (muscle_entry_s): The `value' member is no longer const.
4586 Adjust all dependencies.
4587 * src/muscle_tab.c (muscle_init): Adjust: use
4588 MUSCLE_INSERT_STRING.
4589 Initialize the obstack earlier.
4590 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
4591 (muscle_pair_list_grow): New.
4592 * data/c.m4 (b4_c_function_call, b4_c_args): New.
4593 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
4594 * tests/calc.at: Use %locations, not --locations.
4595 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
4596
4597 2002-10-19 Akim Demaille <akim@epita.fr>
4598
4599 * src/getargs.c (usage): Take status as argument and exit
4600 accordingly.
4601 Report the traditional `Try ... --help' message when status != 0.
4602 (usage, version): Don't take a FILE * as arg, it is pointless.
4603 (getargs): When there is an incorrect number of arguments, make it
4604 an error, and report it GNUlically thanks to `usage ()'.
4605
4606 2002-10-18 Paul Eggert <eggert@twinsun.com>
4607
4608 * data/glr.c (yyreportParseError): Don't assume that sprintf
4609 yields the length of the printed string, as this is not true
4610 on SunOS 4.1.4. Reported by Peter Klein.
4611
4612 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
4613 * tests/conflicts.at (%nonassoc and eof): Likewise.
4614 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
4615
4616 2002-10-17 Akim Demaille <akim@epita.fr>
4617
4618 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
4619 * src/getargs.c (trace_types, trace_args): Adjust.
4620 * src/reader.c (grammar_current_rule_prec_set)
4621 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
4622 Standardize error messages.
4623 And s/@prec/%prec/!
4624 (reader): Use trace_flag to enable scanner/parser debugging,
4625 instead of an adhoc scheme.
4626 * src/scan-gram.l: Remove trailing debugging code.
4627
4628 2002-10-16 Paul Eggert <eggert@twinsun.com>
4629
4630 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
4631 MUSCLE_TAB_H.
4632
4633 * NEWS: Officially drop support for building Bison with K&R C,
4634 since it didn't work anyway and it's not worth worrying about.
4635 * Makefile.maint (wget_files): Remove ansi2knr.c.
4636 (ansi2knr.c-url_prefix): Remove.
4637 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
4638 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
4639 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
4640
4641 2002-10-15 Paul Eggert <eggert@twinsun.com>
4642
4643 Stop using the "enum_" trick for K&R-style function definitions;
4644 it confused me, and I was the author! Instead, assume that people
4645 who want to use K&R C compilers (when using these modules in GCC,
4646 perhaps?) will run ansi2knr.
4647
4648 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
4649 All uses of "enum_" changed to "enum ".
4650 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
4651 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
4652
4653 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
4654 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
4655 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
4656 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
4657 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
4658 abitset_not, abitset_ones, abitset_or, abitset_or_and,
4659 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
4660 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
4661 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
4662 Use function prototypes; this removes the need for declaring
4663 static functions simply to provide their prototypes.
4664 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
4665 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
4666 bitset_count_, bitset_create, bitset_dump, bitset_first,
4667 bitset_free, bitset_init, bitset_last, bitset_next,
4668 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
4669 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
4670 bitset_print, bitset_release_memory, bitset_toggle_,
4671 bitset_type_choose, bitset_type_get, bitset_type_name_get,
4672 debug_bitset): Likewise.
4673 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
4674 * lib/bitset_stats.c (bitset_log_histogram_print,
4675 bitset_percent_histogram_print, bitset_stats_and,
4676 bitset_stats_and_cmp, bitset_stats_and_or,
4677 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
4678 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
4679 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
4680 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
4681 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
4682 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
4683 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
4684 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
4685 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
4686 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
4687 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
4688 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
4689 bitset_stats_zero): Likewise.
4690 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
4691 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
4692 bitsetv_dump, debug_bitsetv): Likewise.
4693 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
4694 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
4695 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
4696 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
4697 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
4698 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
4699 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
4700 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
4701 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
4702 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
4703 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
4704 Likewise.
4705 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
4706 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
4707 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
4708 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
4709 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
4710 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
4711 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
4712 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
4713 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
4714 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
4715 lbitset_xor_cmp, lbitset_zero): Likewise.
4716
4717 2002-10-14 Akim Demaille <akim@epita.fr>
4718
4719 Version 1.75.
4720
4721 2002-10-14 Akim Demaille <akim@epita.fr>
4722
4723 * tests/Makefile.am (maintainer-check-posix): New.
4724
4725 2002-10-14 Akim Demaille <akim@epita.fr>
4726
4727 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
4728 member.
4729
4730 2002-10-14 Akim Demaille <akim@epita.fr>
4731
4732 * src/tables.c (table_ninf_remap): base -> tab.
4733 Reported by Matt Rosing.
4734
4735 2002-10-14 Paul Eggert <eggert@twinsun.com>
4736
4737 * tests/action.at, tests/calc.at, tests/conflicts.at,
4738 tests/cxx-type.at, tests/headers.at, tests/input.at,
4739 tests/regression.at, tests/synclines.at, tests/torture.at:
4740 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
4741 so that the tests still work even if POSIXLY_CORRECT is set.
4742 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
4743
4744 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
4745 for portability to K&R hosts. Fix typo: signed char is guaranteed
4746 only to 127, not to 128.
4747 * data/glr.c (yysigned_char): New type.
4748 * data/yacc.c (yysigned_char): Likewise.
4749 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
4750
4751 2002-10-13 Paul Eggert <eggert@twinsun.com>
4752
4753 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
4754 true due to limited range of data type" warning from GCC.
4755
4756 * data/c.m4 (b4_token_defines): Protect against double-inclusion
4757 by wrapping enum yytokentype's definition inside #ifndef
4758 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
4759
4760 2002-10-13 Akim Demaille <akim@epita.fr>
4761
4762 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
4763 Un yy- yyrhs to avoid the name clash with the global YYRHS.
4764
4765 2002-10-13 Akim Demaille <akim@epita.fr>
4766
4767 * Makefile.maint: Update from Autoconf 2.54.
4768 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
4769
4770 2002-10-13 Akim Demaille <akim@epita.fr>
4771
4772 * src/print.c (print_state): Separate the list of solved conflicts
4773 from the other items.
4774 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
4775
4776 2002-10-13 Akim Demaille <akim@epita.fr>
4777
4778 Let nondeterministic skeletons be usable with deterministic
4779 tables.
4780
4781 With the patch, GAWK compiled by GCC without -O2 passes its test
4782 suite using a GLR parser driven by LALR tables. It fails with -O2
4783 because `struct stat' gives two different answers on my machine:
4784 88 (definition of an auto var) and later 96 (memset on this var).
4785 Hence the stack is badly corrumpted. The headers inclusion is to
4786 blame: if I move the awk.h inclusion before GLR's system header
4787 inclusion, the two struct stat have the same size.
4788
4789 * src/tables.c (pack_table): Always create conflict_table.
4790 (token_actions): Always create conflict_list.
4791 * data/glr.c (YYFLAG): Remove, unused.
4792
4793 2002-10-13 Akim Demaille <akim@epita.fr>
4794
4795 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
4796 (O0FLAGS): New.
4797 (VALGRIND, GXX): New.
4798 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
4799 * tests/bison.in: Run $PREBISON a pre-command.
4800 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
4801 (maintainer-check-g++): New.
4802 * Makefile.am (maintainer-check): New.
4803
4804 2002-10-13 Akim Demaille <akim@epita.fr>
4805
4806 * data/glr.c: Formatting changes.
4807 Tweak some trace messages to match yacc.c's.
4808
4809 2002-10-13 Akim Demaille <akim@epita.fr>
4810
4811 GLR parsers sometimes raise parse errors instead of performing the
4812 default reduction.
4813 Reported by Charles-Henry de Boysson.
4814
4815 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
4816 check the length of the traces when %glr.
4817 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
4818 GLR's traces.
4819 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
4820 Test GLR parsers.
4821 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
4822 (yyltype): Remove the yy prefix from the member names.
4823 (yytable): Complete its comment.
4824 (yygetLRActions): Map error action number from YYTABLE from
4825 YYTABLE_NINF to 0.
4826 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
4827 (which was a bug: it should have been YYTABEL_NINF, and yet it was
4828 not satisfying as we could compare an YYACTION computed from
4829 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
4830 only value for error actions.
4831 (yyreportParseError): In verbose parse error messages, don't issue
4832 `error' in the list of expected tokens.
4833 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
4834 next action to perform to match glr.c's decoding.
4835 (yytable): Complete its comment.
4836
4837 2002-10-13 Paul Eggert <eggert@twinsun.com>
4838
4839 Fix problem reported by Henrik Grubbstroem in
4840 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
4841 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
4842 because the Bison parser reads the second action before reducing
4843 the first one.
4844 * src/scan-gram.l (rule_length): New static var.
4845 Use it to keep track of the rule length in the scanner, since
4846 we can't expect the parser to be in lock-step sync with the scanner.
4847 (handle_action_dollar, handle_action_at): Use this var.
4848 * tests/actions.at (Exotic Dollars): Test for the problem.
4849
4850 2002-10-12 Paul Eggert <eggert@twinsun.com>
4851
4852 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
4853 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
4854 Include <sys/time.h> when checking for clock_t and struct tms.
4855 Use same include order as source.
4856 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
4857 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
4858
4859 * lib/timevar.c: Update copyright date and clarify comments.
4860 (get_time) [IN_GCC]: Keep the GCC version for reference.
4861
4862 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
4863 GCC version as of today, then merge Bison's changes.
4864 Change "GCC" to "Bison" in copyright notice. timevar.def's
4865 author is Akim, so change that too.
4866
4867 * src/reader.c (grammar_current_rule_check):
4868 Don't worry about the default action if $$ is untyped.
4869 Prevents bogus warnings reported by Jim Gifford in
4870 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
4871
4872 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
4873 * data/glr.c, data/lalr1.cc, data/yacc.c:
4874 Output token definitions before the first part of user declarations.
4875 Fixes compatibility problem reported by Jim Gifford for kbd in
4876 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
4877
4878 2002-10-11 Paul Eggert <eggert@twinsun.com>
4879
4880 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
4881 (yyparse): here. This undoes some of the 2002-07-25 change.
4882 Compatibility problem reported by Ralf S. Engelschall with
4883 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
4884
4885 2002-10-11 Akim Demaille <akim@epita.fr>
4886
4887 * tests/regression.at Characters Escapes): New.
4888 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
4889 characters.
4890 Reported by Jan Nieuwenhuizen.
4891
4892 2002-10-11 Akim Demaille <akim@epita.fr>
4893
4894 * po/id.po: New.
4895
4896 2002-10-10 Paul Eggert <eggert@twinsun.com>
4897
4898 Portability fixes for bitsets; this also avoids several GCC
4899 warnings.
4900
4901 * lib/abitset.c: Include <stddef.h>, for offsetof.
4902 * lib/lbitset.c: Likewise.
4903
4904 * lib/abitset.c (abitset_bytes): Return a size that is aligned
4905 properly for vectors of objects. Do not assume that adding a
4906 header size to a multiple of a word size yields a value that is
4907 properly aligned for the whole union.
4908 * lib/bitsetv.c (bitsetv_alloc): Likewise.
4909
4910 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
4911 unique names for structures.
4912 * lib/ebitset.c (ebitset_bytes): Likewise.
4913 * lib/lbitset.c (lbitset_bytes): Likewise.
4914
4915 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
4916 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
4917 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
4918 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
4919 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
4920 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
4921 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
4922 to improve the type-checking that GCC can do.
4923 * lib/bitset.c (bitset_op4_cmp): Likewise.
4924 * lib/bitset_stats.c (bitset_stats_count,
4925 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
4926 bitset_stats_copy, bitset_stats_disjoint_p,
4927 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
4928 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
4929 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
4930 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
4931 bitset_stats_and_or_cmp, bitset_stats_andn_or,
4932 bitset_stats_andn_or_cmp, bitset_stats_or_and,
4933 bitset_stats_or_and_cmp): Likewise.
4934 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
4935 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
4936 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
4937 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
4938
4939 * lib/abitset.h: Include bitset.h, not bbitset.h.
4940 * lib/ebitset.h: Likewise.
4941 * lib/lbitset.h: Likewise.
4942
4943 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
4944 All instances of parameters of type enum bitset_opts are now of
4945 type enum_bitset_opts, to conform to the C Standard, and similarly
4946 for enum_bitset_type.
4947 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
4948 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
4949
4950 Do not use "struct bitset_struct" to mean different things in
4951 different modules. Not only is this confusing, it violates
4952 the C Standard, which requires that structure types in different
4953 modules must be compatible if one is to be passed to the other.
4954 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
4955 All instances of "struct bitset_struct *" replaced with "bitset".
4956 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
4957 (union bitset_union, struct abitset_struct, struct ebitset_struct,
4958 struct lbitset_struct, struct bitset_stats_struct): New types.
4959 All uses of struct bitset_struct changed to union bitset_union,
4960 etc.
4961 * lib/abitset.c (struct abitset_struct, abitset,
4962 struct bitset_struct): Remove.
4963 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
4964 struct bitset_struct): Remove.
4965 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
4966 bitset_struct): Remove.
4967 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
4968 Likewise.
4969
4970 Do not call a function of type T using a call that assumes the
4971 function is of a different type U. Standard C requires that a
4972 function must be called with a type that is compatible with its
4973 definition.
4974 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
4975 New decls.
4976 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
4977 New functions.
4978 * lib/ebitset.c (PFV): Remove.
4979 * lib/lbitset.c (PFV): Likewise.
4980 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
4981 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
4982 decls.
4983 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
4984 (ebitset_vtable): Use them.
4985 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
4986 lbitset_xor): New functions.
4987 (lbitset_vtable): Use them.
4988
4989 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
4990 Declare.
4991
4992 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
4993 GCC warning.
4994 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
4995 Use offsetof, for simplicity.
4996
4997 2002-10-06 Paul Eggert <eggert@twinsun.com>
4998
4999 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
5000 the same width as int. This reapplies a hunk of the 2002-08-12 patch
5001 <http://lists.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
5002 which was inadvertently undone by the 2002-09-30 patch.
5003 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
5004 the same width as int.
5005
5006 2002-10-04 Paul Eggert <eggert@twinsun.com>
5007
5008 Version 1.50.
5009
5010 * configure.ac (AC_INIT), NEWS: Increment version number.
5011
5012 * doc/bison.texinfo: Minor spelling, grammar, and white space
5013 fixes.
5014 (Symbols): Mention that any negative value returned from yylex
5015 signifies end-of-input. Warn about negative chars. Mention
5016 the portable Standard C character set.
5017
5018 The GNU coding standard says CFLAGS and YFLAGS are reserved
5019 for the installer to set.
5020 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
5021 * src/Makefile.am (AM_CFLAGS): Likewise.
5022 (AM_YFLAGS): Renamed from YFLAGS.
5023
5024 Fix some MAX and MIN problems.
5025 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
5026 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
5027 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
5028 * src/reader.c (reader): Use it.
5029
5030 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
5031 POSIX 1003.1-2001 has removed fgrep.
5032
5033 2002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5034
5035 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
5036 interpreted as signed.
5037 * lib/ebitset.c (ebitset_list): Fix bug.
5038
5039 2002-10-01 Paul Eggert <eggert@twinsun.com>
5040
5041 More fixes for 64-bit hosts and large bitsets.
5042
5043 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
5044 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
5045 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
5046 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
5047 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
5048 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
5049 bitset_count_): Likewise.
5050 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
5051 bitset_first, bitset_last): Likewise.
5052 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
5053 bitset_stats_list_reverse, bitset_stats_size,
5054 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
5055 Likewise.
5056 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
5057 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
5058 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
5059 bitsetv_reflexive_transitive_closure): Likewise.
5060 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
5061 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
5062 Likewise.
5063 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
5064 Likewise.
5065
5066 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
5067 Use size_t, not unsigned int, to count bytes.
5068 * lib/abitset.h (abitset_bytes): Likewise.
5069 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
5070 Likewise.
5071 * lib/bitset.h (bitset_bytes): Likewise.
5072 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
5073 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
5074 * lib/bitsetv.c (bitsetv_alloc): Likewise.
5075 * lib/ebitset.c (ebitset_bytes): Likewise.
5076 * lib/ebitset.h (ebitset_bytes): Likewise.
5077 * lib/lbitset.c (lbitset_bytes): Likewise.
5078 * lib/lbitset.h (lbitset_bytes): Likewise.
5079
5080 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
5081 abitset_subset_p, abitset_disjoint_p, abitset_and,
5082 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
5083 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
5084 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
5085 abitset_or_and, abitset_or_and_cmp):
5086 Use bitset_windex instead of unsigned int.
5087 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
5088 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
5089 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
5090 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
5091 Likewise.
5092 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
5093
5094 * lib/bitset.c (bitset_print):
5095 Use proper printf formats for widths of integer types.
5096 * lib/bitset_stats.c (bitset_percent_histogram_print,
5097 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
5098 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
5099 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
5100 * lib/lbitset.c (lbitset_bytes): Likewise.
5101
5102 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
5103 BITSET_SIZE_MAX): New macros.
5104 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
5105 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
5106 to BITSET_WINDEX_MAX.
5107
5108 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
5109 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
5110 since we now return the bitset_bindex type (not int).
5111
5112 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
5113 when computing sizes.
5114 * lib/ebitset.c (ebitset_elts_grow): Likewise.
5115
5116 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
5117 and avoid cast to unsigned.
5118
5119 2002-09-30 Akim Demaille <akim@epita.fr>
5120
5121 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
5122 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
5123 Updates from Michael Hayes.
5124
5125 2002-09-30 Art Haas <ahaas@neosoft.com>
5126
5127 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
5128 invocations.
5129 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
5130 defined.
5131
5132 2002-09-27 Akim Demaille <akim@epita.fr>
5133
5134 Version 1.49c.
5135
5136 2002-09-27 Akim Demaille <akim@epita.fr>
5137
5138 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
5139 (Because of AC_LIBSOURCE).
5140
5141 2002-09-27 Akim Demaille <akim@epita.fr>
5142
5143 Playing with Autoscan.
5144
5145 * configure.ac: Remove the old LIBOBJ tweaks.
5146 (AC_REPLACE_FUNCS): Add strrchr and strtol.
5147 * lib/strrchr.c: New.
5148 * lib/strtol.c: New, from the Coreutils 4.5.1.
5149
5150 2002-09-27 Akim Demaille <akim@epita.fr>
5151
5152 Playing with Autoscan.
5153
5154 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
5155 * lib/Makefile.am (libbison_a_SOURCES): No longer include
5156 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
5157 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
5158 Coreutils 4.5.1.
5159
5160 2002-09-24 Akim Demaille <akim@epita.fr>
5161
5162 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
5163 (Frequently Asked Questions, Parser Stack Overflow): New.
5164
5165 2002-09-13 Akim Demaille <akim@epita.fr>
5166
5167 Playing with autoscan.
5168
5169 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
5170 * src/files.c (skeleton_find): Remove, unused.
5171 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
5172 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
5173
5174 2002-09-13 Akim Demaille <akim@epita.fr>
5175
5176 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
5177 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
5178
5179 2002-09-13 Akim Demaille <akim@epita.fr>
5180
5181 * configure.ac: Require 2.54.
5182 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
5183 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
5184 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
5185 Remove, provided by Autoconf macros.
5186
5187 2002-09-12 Akim Demaille <akim@epita.fr>
5188
5189 * m4/prereq.m4: Update, from Coreutils 4.5.1.
5190
5191 2002-09-12 Akim Demaille <akim@epita.fr>
5192
5193 * m4/prereq.m4: Update, from Fileutils 4.1.5.
5194 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
5195 Reported by Martin Mokrejs.
5196
5197 2002-09-10 Akim Demaille <akim@epita.fr>
5198
5199 * src/parse-gram.y: Associate a human readable string to each
5200 token type.
5201 * tests/regression.at (Invalid inputs): Adjust.
5202
5203 2002-09-10 Gary V. Vaughan <gary@gnu.org>
5204
5205 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
5206 with an Autoconf-2.5x style configure.ac.
5207
5208 2002-09-06 Paul Eggert <eggert@twinsun.com>
5209
5210 * doc/bison.texinfo (Conditions): Make explicit that the GPL
5211 exception applies only to yacc.c. This is a modification of a
5212 patch originally suggested by Akim Demaille.
5213
5214 2002-09-06 Akim Demaille <akim@epita.fr>
5215
5216 * data/c.m4 (b4_copyright): Move the GPL exception comment from
5217 here to...
5218 * data/yacc.c: here.
5219
5220 * data/lalr1.cc (struct yyltype): Don't define it, since we use
5221 LocationType.
5222 (b4_ltype): Default to yy::Location from location.hh.
5223
5224 2002-09-04 Jim Meyering <jim@meyering.net>
5225
5226 * data/yacc.c: Guard the declaration of yytoknum also with
5227 `#ifdef YYPRINT', so it is declared only when used.
5228
5229 2002-09-04 Akim Demaille <akim@epita.fr>
5230
5231 * configure.in: Rename as...
5232 * configure.ac: this.
5233 Bump to 1.49c.
5234
5235 2002-09-04 Akim Demaille <akim@epita.fr>
5236
5237 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
5238 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
5239 translate maintainer only messages.
5240
5241 2002-08-12 Paul Eggert <eggert@twinsun.com>
5242
5243 Version 1.49b.
5244
5245 * Makefile.am (SUBDIRS): Remove intl.
5246 (DISTCLEANFILES): Remove.
5247 * NEWS: Mention that GNU M4 is now required. Clarify what is
5248 meant by "larger grammars". Mention the pt_BR translation.
5249 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
5250 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
5251 Bump version from 0.11.2 to 0.11.5.
5252 (BISON_PREREQ_STAGE): Remove.
5253 (AM_GNU_GETTEXT): Use external gettext.
5254 (AC_OUTPUT): Remove intl/Makefile.
5255
5256 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
5257
5258 * data/glr.c: Include string.h, for strlen.
5259 (yyreportParseError): Use size_t for yysize.
5260 (yy_yypstack): No longer nested inside yypstates, as nested
5261 functions are not portable. Do not assume size_t is the
5262 same width as int.
5263 (yypstates): Do not assume that ptrdiff_t is the same width
5264 as int, and similarly for yyposn and YYINDEX.
5265
5266 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
5267
5268 * lib/Makefile.am (INCLUDES): Do not include from the intl
5269 directory, which has been removed.
5270 * src/Makefile.am (INCLUDES): Likewise.
5271
5272 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
5273 (bitsets_sources, additional_bitsets_sources, timevars_sources):
5274 New vars.
5275
5276 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
5277 * tests/Makefile.am (EXTRA_DIST): Likewise.
5278
5279 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
5280 Do not assume that bitset_windex is the same width as unsigned.
5281
5282 * lib/abitset.c (abitset_unused_clear): Do not assume that
5283 bitset_word is the same width as int.
5284 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
5285 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
5286 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
5287 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
5288 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
5289
5290 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
5291 portability to one's complement hosts!).
5292 * lib/ebitset.c (ebitset_op1): Likewise.
5293 * lib/lbitset.c (lbitset_op1): Likewise.
5294
5295 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
5296 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
5297 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
5298 Sync with fileutils.
5299 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
5300 lib/gettext.h: Sync with diffutils.
5301
5302 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
5303 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
5304
5305 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
5306 PROTOTYPES to check for prototypes, and "defined __STDC__" to
5307 check for void *.
5308
5309 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
5310 size_t; the old version tried to do this but casted improperly.
5311 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
5312 (bitset_test): Now returns int, not unsigned long.
5313
5314 * lib/bitset_stats.c: Include "gettext.h".
5315 (_): New macro.
5316 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
5317 name locals "index", as it generates unnecessary warnings on some
5318 hosts that have an "index" function.
5319
5320 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
5321 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
5322 they need translation.
5323 * src/LR0.c (state_list_append, new_itemsets, get_state,
5324 append_states, generate_states): Likewise.
5325 * src/assoc.c (assoc_to_string): Likewise.
5326 * src/closure.c (print_closure, set_firsts, closure): Likewise.
5327 * src/gram.c (grammar_dump): Likewise.
5328 * src/injections.c (injections_compute): Likewise.
5329 * src/lalr.c (lookaheads_print): Likewise.
5330 * src/relation.c (relation_transpose): Likewise.
5331 * src/scan-gram.l: Likewise.
5332 * src/tables.c (table_grow, pack_vector): Likewise.
5333
5334 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
5335 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
5336 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
5337 * m4/mbstate_t.m4: Sync with fileutils.
5338 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
5339
5340 * po/LINGUAS: Add pt_BR.
5341 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
5342 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
5343 lib/timevar.c.
5344 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
5345 manual recommends.
5346 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
5347
5348 * src/complain.c (strerror_r): Remove decl; not needed.
5349 (strerror): Use same pattern as ../lib/error.c.
5350
5351 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
5352
5353 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
5354
5355 * src/main.c (main): Cast result of bindtextdomain and textdomain
5356 to void, to avoid a GCC warning when --disable-nls is in effect.
5357
5358 * src/scan-gram.l: Use strings rather than escapes when possible,
5359 to minimize the number of warnings from xgettext.
5360 (handle_action_dollar, handle_action_at): Don't use isdigit,
5361 as it mishandles negative chars and it may not work as expected
5362 outside the C locale.
5363
5364 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
5365 this is a GCC extension and is not portable to other compilers.
5366
5367 * src/system.h (alloca): Use same pattern as ../lib/error.c.
5368 Do not include <ctype.h>; no longer needed.
5369 Do not include <malloc.h>; no longer needed (and generates
5370 warnings on OpenBSD 3.0).
5371
5372 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
5373 it's not portable.
5374
5375 * tests/regression.at: Do not use 'cc -c input.c -o input';
5376 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
5377
5378 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
5379 exit status as failure, not just exit status 1. Sun C exits
5380 with status 2 sometimes.
5381
5382 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
5383 Use it for the two large tests.
5384
5385 2002-08-02 Akim Demaille <akim@epita.fr>
5386
5387 * src/conflicts.c (conflicts_output): Don't output rules never
5388 reduced here, since anyway that computation doesn't work.
5389 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
5390 (rule_useless_p, rule_never_reduced_p): New.
5391 (grammar_rules_partial_print): Use a filter instead of a range.
5392 Display the title only if needed.
5393 (grammar_rules_print): Adjust.
5394 (grammar_rules_never_reduced_report): New.
5395 * src/tables.c (action_row): Move the computation of rules never
5396 reduced to...
5397 (token_actions): here.
5398 * src/main.c (main): Make the parser before making the report, so
5399 that rules never reduced are computed.
5400 Call grammar_rules_never_reduced_report.
5401 * src/print.c (print_results): Report rules never reduced.
5402 * tests/conflicts.at, tests/reduce.at: Adjust.
5403
5404 2002-08-01 Akim Demaille <akim@epita.fr>
5405
5406 Instead of attaching lookaheads and duplicating the rules being
5407 reduced by a state, attach the lookaheads to the reductions.
5408
5409 * src/state.h (state_t): Remove the `lookaheads',
5410 `lookaheads_rule' member.
5411 (reductions_t): Add a `lookaheads' member.
5412 Use a regular array for the `rules'.
5413 * src/state.c (reductions_new): Initialize the lookaheads member
5414 to 0.
5415 (state_rule_lookaheads_print): Adjust.
5416 * src/state.h, src/state.c (state_reductions_find): New.
5417 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
5418 (count_rr_conflicts): Adjust.
5419 * src/lalr.c (LArule): Remove.
5420 (add_lookback_edge): Adjust.
5421 (state_lookaheads_count): New.
5422 (states_lookaheads_initialize): Merge into...
5423 (initialize_LA): this.
5424 (lalr_free): Adjust.
5425 * src/main.c (main): Don't free nullable and derives too early: it
5426 is used by --verbose.
5427 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
5428
5429 2002-08-01 Akim Demaille <akim@epita.fr>
5430
5431 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
5432 `rule_number_t**'.
5433 (set_derives, free_derives): Rename as...
5434 (derives_compute, derives_free): this.
5435 Adjust all dependencies.
5436 * src/nullable.c (set_nullable, free_nullable): Rename as...
5437 (nullable_compute, nullable_free): these.
5438 (rule_list_t): Store rule_t *, not rule_number_t.
5439 * src/state.c (state_rule_lookaheads_print): Directly compare rule
5440 pointers, instead of their numbers.
5441 * src/main.c (main): Call nullable_free, and derives_free earlier,
5442 as they were lo longer used.
5443
5444 2002-08-01 Akim Demaille <akim@epita.fr>
5445
5446 * lib/timevar.c (get_time): Include children time.
5447 * src/lalr.h (LA, LArule): Don't export them: used with the
5448 state_t.
5449 * src/lalr.c (LA, LArule): Static.
5450 * src/lalr.h, src/lalr.c (lalr_free): New.
5451 * src/main.c (main): Call it.
5452 * src/tables.c (pack_vector): Check whether loc is >= to the
5453 table_size, not >.
5454 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
5455 (tables_generate): do it, since that's also it which allocates
5456 them.
5457 Don't free LA and LArule, main does.
5458
5459 2002-07-31 Akim Demaille <akim@epita.fr>
5460
5461 Separate parser tables computation and output.
5462
5463 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
5464 (conflict_list, conflict_list_cnt, table, check, table_ninf)
5465 (yydefgoto, yydefact, high): Move to...
5466 * src/tables.h, src/tables.c: here.
5467 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
5468 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
5469 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
5470 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
5471 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
5472 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
5473 (action_row, save_row, token_actions, save_column, default_goto)
5474 (goto_actions, sort_actions, matching_state, pack_vector)
5475 (table_ninf_remap, pack_table, prepare_actions): Move to...
5476 * src/tables.c: here.
5477 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
5478 * src/output.c (token_actions, output_base, output_conflicts)
5479 (output_check): Merge into...
5480 (prepare_actions): this.
5481 (actions_output): Rename as...
5482 (user_actions_output): this.
5483 * src/main.c (main): Call tables_generate and tables_free.
5484
5485 2002-07-31 Akim Demaille <akim@epita.fr>
5486
5487 Steal GCC's --time-report support.
5488
5489 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
5490 stolen/adjusted from GCC.
5491 * m4/stage.m4: Remove time related checks.
5492 * m4/timevar.m4: New.
5493 * configure.in: Adjust.
5494 * src/system.h: Adjust to using timevar.h.
5495 * src/getargs.h, src/getargs.c: Support trace_time for
5496 --trace=time.
5497 * src/main.c (stage): Remove.
5498 (main): Replace `stage' invocations with timevar calls.
5499 * src/output.c: Insert pertinent timevar calls.
5500
5501 2002-07-31 Akim Demaille <akim@epita.fr>
5502
5503 Let --trace have arguments.
5504
5505 * src/getargs.h (enum trace_e): New.
5506 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
5507 (long_options, short_options): --trace/-T takes an optional
5508 argument.
5509 Change all the uses of trace_flag to reflect the new flags.
5510 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
5511
5512 Strengthen `stage' portability.
5513
5514 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
5515 * configure.in: Use it.
5516 Don't check for malloc.h and sys/times.h.
5517 * src/system.h: Include them when appropriate.
5518 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
5519 times and struct tms are available.
5520
5521 2002-07-30 Akim Demaille <akim@epita.fr>
5522
5523 In verbose parse error message, don't report `error' as an
5524 expected token.
5525 * tests/actions.at (Printers and Destructors): Adjust.
5526 * tests/calc.at (Calculator $1): Adjust.
5527 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
5528 error message, do not report the parser accepts the error token in
5529 that state.
5530
5531 2002-07-30 Akim Demaille <akim@epita.fr>
5532
5533 Normalize conflict related messages.
5534
5535 * src/complain.h, src/complain.c (warn, complain): New.
5536 * src/conflicts.c (conflicts_print): Use them.
5537 (conflict_report_yacc): New, extracted from...
5538 (conflicts_print): here.
5539 * tests/conflicts.at, tests/existing.at: Adjust.
5540
5541 2002-07-30 Akim Demaille <akim@epita.fr>
5542
5543 Report rules which are never reduced by the parser: those hidden
5544 by conflicts.
5545
5546 * src/LR0.c (save_reductions): Don't make the final state too
5547 different: save its reduction (accept) instead of having a state
5548 without any action (no shift or goto, no reduce).
5549 Note: the final state is now a ``regular'' state, i.e., the
5550 parsers now contain `reduce 0' as default reduction.
5551 Nevertheless, since they decide to `accept' when yystate =
5552 final_state, they still will not reduce rule 0.
5553 * src/print.c (print_actions, print_reduction): Adjust.
5554 * src/output.c (action_row): Track reduced rules.
5555 (token_actions): Report rules never reduced.
5556 * tests/conflicts.at, tests/regression.at: Adjust.
5557
5558 2002-07-30 Akim Demaille <akim@epita.fr>
5559
5560 `stage' was accidently included in a previous patch.
5561 Initiate its autoconfiscation.
5562
5563 * configure.in: Look for malloc.h and sys/times.h.
5564 * src/main.c (stage): Adjust.
5565 Report only when trace_flag.
5566
5567 2002-07-29 Akim Demaille <akim@epita.fr>
5568
5569 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
5570 state_number_t.
5571 (errs_t): symbol_t*, not symbol_number_t.
5572 (reductions_t): rule_t*, not rule_number_t.
5573 (FOR_EACH_SHIFT): New.
5574 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
5575 * src/print.c, src/print_graph.c: Adjust.
5576
5577 2002-07-29 Akim Demaille <akim@epita.fr>
5578
5579 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
5580
5581 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
5582 (endtoken, accept): these.
5583 * src/reader.c (reader): Set endtoken's default tag to "$end".
5584 Set undeftoken's tag to "$undefined" instead of "$undefined.".
5585 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
5586 Adjust.
5587
5588 2002-07-29 Akim Demaille <akim@epita.fr>
5589
5590 * src/reduce.c (reduce_grammar): When the language is empty,
5591 complain about the start symbol, not the axiom.
5592 Use its location.
5593 * tests/reduce.at (Empty Language): New.
5594
5595 2002-07-26 Akim Demaille <akim@epita.fr>
5596
5597 * src/reader.h, src/reader.c (gram_error): ... can't get
5598 yycontrol without making too strong assumptions on the parser
5599 itself.
5600 * src/output.c (prepare_tokens): Use the real 0th value of
5601 token_translations instead of `0'.
5602 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
5603 visible here.
5604 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
5605 for the time being: %locations ought to provide it to yyerror.
5606
5607 2002-07-25 Akim Demaille <akim@epita.fr>
5608
5609 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
5610 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
5611 * tests/regression.at (Web2c Actions): Adjust.
5612
5613 2002-07-25 Akim Demaille <akim@epita.fr>
5614
5615 Stop storing rules from 1 to nrules + 1.
5616
5617 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
5618 * src/nullable.c, src/output.c, src/print.c, src/reader.c
5619 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
5620 Iterate from 0 to nrules.
5621 Use rule_number_as_item_number and item_number_as_rule_number.
5622 Adjust to `derive' now containing possibly 0.
5623 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
5624 Handle the `- 1' part in rule numbers from/to item numbers.
5625 * src/conflicts.c (log_resolution): Fix the message which reversed
5626 shift and reduce.
5627 * src/output.c (action_row): Initialize default_rule to -1.
5628 (token_actions): Adjust.
5629 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
5630 expected output.
5631 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
5632
5633 2002-07-25 Akim Demaille <akim@epita.fr>
5634
5635 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
5636 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
5637 (b4_c_knr_arg_decl): New.
5638 * data/yacc.c: Use it to define yysymprint, yydestruct, and
5639 yyreport_parse_error.
5640
5641 2002-07-25 Akim Demaille <akim@epita.fr>
5642
5643 * data/yacc.c (yyreport_parse_error): New, extracted from...
5644 (yyparse): here.
5645 (yydestruct, yysymprint): Move above yyparse.
5646 Be K&R compliant.
5647
5648 2002-07-25 Akim Demaille <akim@epita.fr>
5649
5650 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
5651 replace...
5652 (b4_sint_type, b4_uint_type): these.
5653 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
5654 * tests/regression.at (Web2c Actions): Adjust.
5655
5656 2002-07-25 Akim Demaille <akim@epita.fr>
5657
5658 * src/gram.h (TIEM_NUMBER_MAX): New.
5659 (item_number_of_rule_number, rule_number_of_item_number): Rename
5660 as...
5661 (rule_number_as_item_number, item_number_as_rule_number): these.
5662 Adjust dependencies.
5663 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
5664 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
5665 (symbol_number_to_vector_number): New.
5666 (order): Of vector_number_t* type.
5667 (base_t, BASE_MAX, BASE_MIN): New.
5668 (froms, tos, width, pos, check): Of base_t type.
5669 (action_number_t, ACTION_MIN, ACTION_MAX): New.
5670 (actrow): Of action_number_t type.
5671 (conflrow): Of unsigned int type.
5672 (table_ninf, base_ninf): New.
5673 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
5674 (muscle_insert_int_table, muscle_insert_base_table)
5675 (muscle_insert_rule_number_table): New.
5676 (prepare_tokens): Output `toknum' as int_table.
5677 (action_row): Returns a rule_number_t.
5678 Use ACTION_MIN, not SHRT_MIN.
5679 (token_actions): yydefact is rule_number_t*.
5680 (table_ninf_remap): New.
5681 (pack_table): Use it for `base' and `table'.
5682 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
5683 replaced with...
5684 (YYPACT_NINF, YYTABLE_NINF): these.
5685 (yypact, yytable): Compute their types instead of hard-coded
5686 `short'.
5687 * tests/regression.at (Web2c Actions): Adjust.
5688
5689 2002-07-19 Akim Demaille <akim@epita.fr>
5690
5691 * src/scan-gram.l (id): Can start with an underscore.
5692
5693 2002-07-16 Akim Demaille <akim@epita.fr>
5694
5695 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
5696 Adjust all former `associativity' dependencies.
5697 * src/symtab.c (symbol_new): Default associativity is `undef', not
5698 `right'.
5699 (symbol_check_alias_consistence): Adjust.
5700
5701 2002-07-09 Akim Demaille <akim@epita.fr>
5702
5703 * doc/bison.texinfo: Properly set the ``header'' part.
5704 Use @dircategory ``GNU programming tools'' as per Texinfo's
5705 documentation.
5706 Use @copying.
5707
5708 2002-07-09 Akim Demaille <akim@epita.fr>
5709
5710 * lib/quotearg.h: Protect against multiple inclusions.
5711 * src/location.h (location_t): Add a `file' member.
5712 (LOCATION_RESET, LOCATION_PRINT): Adjust.
5713 * src/complain.c (warn_at, complain_at, fatal_at): Drop
5714 `error_one_per_line' support.
5715
5716 2002-07-09 Akim Demaille <akim@epita.fr>
5717
5718 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
5719 * src/reader.c (lineno): Remove.
5720 Adjust all dependencies.
5721 (get_merge_function): Take a location and use complain_at.
5722 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
5723 * tests/regression.at (Invalid inputs, Mixing %token styles):
5724 Adjust.
5725
5726 2002-07-09 Akim Demaille <akim@epita.fr>
5727
5728 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
5729 recovery rule, and forbid extensions when --yacc.
5730 (gram_error): Use complain_at.
5731 * src/reader.c (reader): Exit if there were parse errors.
5732
5733 2002-07-09 Akim Demaille <akim@epita.fr>
5734
5735 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
5736 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
5737 Reported by R Blake <blakers@mac.com>.
5738
5739 2002-07-09 Akim Demaille <akim@epita.fr>
5740
5741 * data/yacc.c: Output the copyright notive in the header.
5742
5743 2002-07-03 Akim Demaille <akim@epita.fr>
5744
5745 * src/output.c (froms, tos): Are state_number_t.
5746 (save_column): sp, sp1, and sp2 are state_number_t.
5747 (prepare): Rename `final' as `final_state_number', `nnts' as
5748 `nterms_number', `nrules' as `rules_number', `nstates' as
5749 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
5750 unused.
5751 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
5752 * data/lalr1.cc (nsym_): Remove, unused.
5753
5754 2002-07-03 Akim Demaille <akim@epita.fr>
5755
5756 * src/lalr.h, src/lalr.c (goto_number_t): New.
5757 * src/lalr.c (goto_list_t): New.
5758 Propagate them.
5759 * src/nullable.c (rule_list_t): New.
5760 Propagate.
5761 * src/types.h: Remove.
5762
5763 2002-07-03 Akim Demaille <akim@epita.fr>
5764
5765 * src/closure.c (print_fderives): Use rule_rhs_print.
5766 * src/derives.c (print_derives): Use rule_rhs_print.
5767 (rule_list_t): New, replaces `shorts'.
5768 (set_derives): Add comments.
5769 * tests/sets.at (Nullable, Firsts): Adjust.
5770
5771 2002-07-03 Akim Demaille <akim@epita.fr>
5772
5773 * src/output.c (prepare_actions): Free `tally' and `width'.
5774 (prepare_actions): Allocate and free `order'.
5775 * src/symtab.c (symbols_free): Free `symbols'.
5776 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
5777 * src/output.c (m4_invoke): Move to...
5778 * src/scan-skel.l: here.
5779 (<<EOF>>): Close yyout, and free its name.
5780
5781 2002-07-03 Akim Demaille <akim@epita.fr>
5782
5783 Fix some memory leaks, and fix a bug: state 0 was examined twice.
5784
5785 * src/LR0.c (new_state): Merge into...
5786 (state_list_append): this.
5787 (new_states): Merge into...
5788 (generate_states): here.
5789 (set_states): Don't ensure a proper `errs' state member here, do it...
5790 * src/conflicts.c (conflicts_solve): here.
5791 * src/state.h, src/state.c: Comment changes.
5792 (state_t): Rename member `shifts' as `transitions'.
5793 Adjust all dependencies.
5794 (errs_new): For consistency, also take the values as argument.
5795 (errs_dup): Remove.
5796 (state_errs_set): New.
5797 (state_reductions_set, state_transitions_set): Assert that no
5798 previous value was assigned.
5799 (state_free): New.
5800 (states_free): Use it.
5801 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
5802 temporary storage: use `errs' and `nerrs' as elsewhere.
5803 (set_conflicts): Allocate and free this `errs'.
5804
5805 2002-07-02 Akim Demaille <akim@epita.fr>
5806
5807 * lib/libiberty.h: New.
5808 * lib: Update the bitset implementation from upstream.
5809 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
5810 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
5811 * src/main.c: Adjust bitset stats calls.
5812
5813 2002-07-01 Paul Eggert <eggert@twinsun.com>
5814
5815 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
5816 char, so that negative chars don't collide with $.
5817
5818 2002-06-30 Akim Demaille <akim@epita.fr>
5819
5820 Have the GLR tests be `warning' checked, and fix the warnings.
5821
5822 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
5823 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
5824 (yyremoveDeletes): `yyi' and `yyj' are size_t.
5825 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
5826 (yyaddDeferredAction): static.
5827 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
5828 (yyreportParseError): yyprefix is const.
5829 yytokenp is used only when verbose.
5830 (yy__GNUC__): Replace with __GNUC__.
5831 (yypdumpstack): yyi is size_t.
5832 (yypreference): Un-yy local variables and arguments, to avoid
5833 clashes with `yyr1'. Anyway, we are not in the user name space.
5834 (yytname_size): be an int, as is compared with ints.
5835 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
5836 Use them.
5837 * tests/cxx-gram.at: Use quotation to protect $1.
5838 Use AT_COMPILE to enable warnings hunts.
5839 Prototype yylex and yyerror.
5840 `Use' argc.
5841 Include `string.h', not `strings.h'.
5842 Produce and prototype stmtMerge only when used.
5843 yylex takes a location.
5844
5845 2002-06-30 Akim Demaille <akim@epita.fr>
5846
5847 We spend a lot of time in quotearg, in particular when --verbose.
5848
5849 * src/symtab.c (symbol_get): Store a quoted version of the key.
5850 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
5851 Adjust all callers.
5852
5853 2002-06-30 Akim Demaille <akim@epita.fr>
5854
5855 * src/state.h (reductions_t): Rename member `nreds' as num.
5856 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
5857 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
5858
5859 2002-06-30 Akim Demaille <akim@epita.fr>
5860
5861 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
5862 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
5863 (shifts_to): Rename as...
5864 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
5865 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
5866 (TRANSITION_IS_DISABLED, transitions_to): these.
5867
5868 2002-06-30 Akim Demaille <akim@epita.fr>
5869
5870 * src/print.c (print_shifts, print_gotos): Merge into...
5871 (print_transitions): this.
5872 (print_transitions, print_errs, print_reductions): Align the
5873 lookaheads columns.
5874 (print_core, print_transitions, print_errs, print_state,
5875 print_grammar): Output empty lines separator before, not after.
5876 (state_default_rule_compute): Rename as...
5877 (state_default_rule): this.
5878 * tests/conflicts.at (Defaulted Conflicted Reduction),
5879 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
5880 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
5881
5882 2002-06-30 Akim Demaille <akim@epita.fr>
5883
5884 Display items as we display rules.
5885
5886 * src/gram.h, src/gram.c (rule_lhs_print): New.
5887 * src/gram.c (grammar_rules_partial_print): Use it.
5888 * src/print.c (print_core): Likewise.
5889 * tests/conflicts.at (Defaulted Conflicted Reduction),
5890 (Unresolved SR Conflicts): Adjust.
5891 (Unresolved SR Conflicts): Adjust and rename as...
5892 (Resolved SR Conflicts): this, as was meant.
5893 * tests/regression.at (Web2c Report): Adjust.
5894
5895 2002-06-30 Akim Demaille <akim@epita.fr>
5896
5897 * src/print.c (state_default_rule_compute): New, extracted from...
5898 (print_reductions): here.
5899 Pessimize, but clarify the code.
5900 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
5901
5902 2002-06-30 Akim Demaille <akim@epita.fr>
5903
5904 * src/output.c (action_row): Let default_rule be always a rule
5905 number.
5906
5907 2002-06-30 Akim Demaille <akim@epita.fr>
5908
5909 * src/closure.c (print_firsts, print_fderives, closure):
5910 Use BITSET_EXECUTE.
5911 * src/lalr.c (lookaheads_print): Likewise.
5912 * src/state.c (state_rule_lookaheads_print): Likewise.
5913 * src/print_graph.c (print_core): Likewise.
5914 * src/print.c (print_reductions): Likewise.
5915 * src/output.c (action_row): Likewise.
5916 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
5917
5918 2002-06-30 Akim Demaille <akim@epita.fr>
5919
5920 * src/print_graph.c: Use report_flag.
5921
5922 2002-06-30 Akim Demaille <akim@epita.fr>
5923
5924 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
5925 to...
5926 * src/relation.h, src/relation.c (traverse, relation_digraph)
5927 (relation_print, relation_transpose): New.
5928
5929 2002-06-30 Akim Demaille <akim@epita.fr>
5930
5931 * src/state.h, src/state.c (shifts_to): New.
5932 * src/lalr.c (build_relations): Use it.
5933
5934 2002-06-30 Akim Demaille <akim@epita.fr>
5935
5936 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
5937 (item_number_of_rule_number, rule_number_of_item_number): New.
5938 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
5939 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
5940 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
5941 Propagate their use.
5942 Much remains to be done, in particular wrt `shorts' from types.h.
5943
5944 2002-06-30 Akim Demaille <akim@epita.fr>
5945
5946 * src/symtab.c (symbol_new): Initialize the `printer' member.
5947
5948 2002-06-30 Akim Demaille <akim@epita.fr>
5949
5950 * src/LR0.c (save_reductions): Remove, replaced by...
5951 * src/state.h, src/state.c (state_reductions_set): New.
5952 (reductions, errs): Rename as...
5953 (reductions_t, errs_t): these.
5954 Adjust all dependencies.
5955
5956 2002-06-30 Akim Demaille <akim@epita.fr>
5957
5958 * src/LR0.c (state_list_t, state_list_append): New.
5959 (first_state, last_state): Now symbol_list_t.
5960 (this_state): Remove.
5961 (new_itemsets, append_states, save_reductions): Take a state_t as
5962 argument.
5963 (set_states, generate_states): Adjust.
5964 (save_shifts): Remove, replaced by...
5965 * src/state.h, src/state.c (state_shifts_set): New.
5966 (shifts): Rename as...
5967 (shifts_t): this.
5968 Adjust all dependencies.
5969 * src/state.h (state_t): Remove the `next' member.
5970
5971 2002-06-30 Akim Demaille <akim@epita.fr>
5972
5973 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
5974 escaped in slot 0.
5975
5976 2002-06-30 Akim Demaille <akim@epita.fr>
5977
5978 Use hash.h for the state hash table.
5979
5980 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
5981 (allocate_storage): Use state_hash_new.
5982 (free_storage): Use state_hash_free.
5983 (new_state, get_state): Adjust.
5984 * src/lalr.h, src/lalr.c (states): Move to...
5985 * src/states.h (state_t): Remove the `link' member, no longer
5986 used.
5987 * src/states.h, src/states.c: here.
5988 (state_hash_new, state_hash_free, state_hash_lookup)
5989 (state_hash_insert, states_free): New.
5990 * src/states.c (state_table, state_compare, state_hash): New.
5991 * src/output.c (output_actions): Do not free states now, since we
5992 still need to know the final_state number in `prepare', called
5993 afterwards. Do it...
5994 * src/main.c (main): here: call states_free after `output'.
5995
5996 2002-06-30 Akim Demaille <akim@epita.fr>
5997
5998 * src/state.h, src/state.c (state_new): New, extracted from...
5999 * src/LR0.c (new_state): here.
6000 * src/state.h (STATE_ALLOC): Move to...
6001 * src/state.c: here.
6002 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
6003 * src/state.h, src/state.c: here.
6004
6005 2002-06-30 Akim Demaille <akim@epita.fr>
6006
6007 * src/reader.c (gensym): Rename as...
6008 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
6009 (getsym): Rename as...
6010 (symbol_get): this.
6011
6012 2002-06-30 Akim Demaille <akim@epita.fr>
6013
6014 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
6015 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
6016 * src/output.c, src/print.c, src/print_graph.c: Propagate.
6017 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
6018
6019 2002-06-30 Akim Demaille <akim@epita.fr>
6020
6021 Make the test suite pass with warnings checked.
6022
6023 * tests/actions.at (Printers and Destructors): Improve.
6024 Avoid unsigned vs. signed issues.
6025 * tests/calc.at: Don't exercise the scanner here, do it...
6026 * tests/input.at (Torturing the Scanner): here.
6027
6028 2002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6029
6030 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
6031 reorganize first lines parallel to yacc.c.
6032
6033 2002-06-28 Akim Demaille <akim@epita.fr>
6034
6035 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
6036 (b4_token_enum, b4_token_defines): New, factored from...
6037 * data/lalr1.cc, data/yacc.c, glr.c: here.
6038
6039 2002-06-28 Akim Demaille <akim@epita.fr>
6040
6041 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
6042 unused variables.
6043 * src/output.c (merger_output): static.
6044
6045 2002-06-28 Akim Demaille <akim@epita.fr>
6046
6047 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
6048 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
6049 pacify GCC.
6050 * src/output.c (save_row): Initialize all the variables to pacify GCC.
6051
6052 2002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6053
6054 Accumulated changelog for new GLR parsing features.
6055
6056 * src/conflicts.c (count_total_conflicts): Change name to
6057 conflicts_total_count.
6058 * src/conflicts.h: Ditto.
6059 * src/output.c (token_actions): Use the new name.
6060 (output_conflicts): Change conflp => conflict_list_heads, and
6061 confl => conflict_list for better readability.
6062 * data/glr.c: Use the new names.
6063 * NEWS: Add self to GLR announcement.
6064
6065 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
6066
6067 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
6068 Akim Demaille.
6069
6070 * data/bison.glr: Change name to glr.c
6071 * data/glr.c: Renamed from bison.glr.
6072 * data/Makefile.am: Add glr.c
6073
6074 * src/getargs.c:
6075
6076 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
6077 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
6078
6079 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6080
6081 * data/bison.glr: Be sure to restore the
6082 current #line when returning to the skeleton contents after having
6083 exposed the input file's #line.
6084
6085 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6086
6087 * data/bison.glr: Bring up to date with changes to bison.simple.
6088
6089 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6090
6091 * data/bison.glr: Correct definitions that use b4_prefix.
6092 Various reformatting.
6093 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
6094 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
6095 yytokenp argument; now part of stack.
6096 (yychar): Define to behave as documented.
6097 (yyclearin): Ditto.
6098
6099 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6100
6101 * src/reader.h: Add declaration for free_merger_functions.
6102
6103 * src/reader.c (merge_functions): New variable.
6104 (get_merge_function): New function.
6105 (free_merger_functions): New function.
6106 (readgram): Check for %prec that is not followed by a symbol.
6107 Handle %dprec and %merge declarations.
6108 (packgram): Initialize dprec and merger fields in rules array.
6109
6110 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
6111 conflict_list_cnt, conflict_list_free): New variables.
6112 (table_grow): Also grow conflict_table.
6113 (prepare_rules): Output dprec and merger tables.
6114 (conflict_row): New function.
6115 (action_row): Output conflict lists for GLR parser. Don't use
6116 default reduction in conflicted states for GLR parser so that there
6117 are spaces for the conflict lists.
6118 (save_row): Also save conflict information.
6119 (token_actions): Allocate conflict list.
6120 (merger_output): New function.
6121 (pack_vector): Pack conflict table, too.
6122 (output_conflicts): New function to output yyconflp and yyconfl.
6123 (output_check): Allocate conflict_tos.
6124 (output_actions): Output conflict tables, also.
6125 (output_skeleton): Output b4_mergers definition.
6126 (prepare): Output b4_max_rhs_length definition.
6127 Use 'bison.glr' as default skeleton for GLR parsers.
6128
6129 * src/gram.c (glr_parser): New flag.
6130 (grammar_free): Call free_merger_functions.
6131
6132 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
6133 all pairs of conflicting reductions, rather than just all tokens
6134 causing conflicts. Needed to size conflict tables.
6135 (conflicts_output): Modify call to count_rr_conflicts for new
6136 interface.
6137 (conflicts_print): Ditto.
6138 (count_total_conflicts): New function.
6139
6140 * src/reader.h (merger_list): New type.
6141 (merge_functions): New variable.
6142
6143 * src/lex.h (tok_dprec, tok_merge): New token types.
6144
6145 * src/gram.h (rule_s): Add dprec and merger fields.
6146 (glr_parser): New flag.
6147
6148 * src/conflicts.h (count_total_conflicts): New function.
6149
6150 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
6151
6152 * doc/bison.texinfo (Generalized LR Parsing): New section.
6153 (GLR Parsers): New section.
6154 (Language and Grammar): Mention GLR parsing.
6155 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
6156 Correct typo ("tge" -> "the").
6157
6158 * data/bison.glr: New skeleton for GLR parsing.
6159
6160 * tests/cxx-gram.at: New tests for GLR parsing.
6161
6162 * tests/testsuite.at: Include cxx-gram.at.
6163
6164 * tests/Makefile.am: Add cxx-gram.at.
6165
6166 * src/parse-gram.y:
6167
6168 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
6169
6170 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
6171
6172 2002-06-27 Akim Demaille <akim@epita.fr>
6173
6174 * src/options.h, src/options.c: Remove.
6175 * src/getargs.c (short_options, long_options): New.
6176
6177 2002-06-27 Akim Demaille <akim@epita.fr>
6178
6179 * data/bison.simple, data/bison.c++: Rename as...
6180 * data/yacc.c, data/lalr1.cc: these.
6181 * doc/bison.texinfo (Environment Variables): Remove.
6182
6183 2002-06-25 Raja R Harinath <harinath@cs.umn.edu>
6184
6185 * src/getargs.c (report_argmatch): Initialize strtok().
6186
6187 2002-06-20 Akim Demaille <akim@epita.fr>
6188
6189 * data/bison.simple (b4_symbol_actions): New, replaces...
6190 (b4_symbol_destructor, b4_symbol_printer): these.
6191 (yysymprint): Be sure to call YYPRINT only for tokens, and using
6192 user token numbers.
6193
6194 2002-06-20 Akim Demaille <akim@epita.fr>
6195
6196 * data/bison.simple (yydestructor): Rename as...
6197 (yydestruct): this.
6198
6199 2002-06-20 Akim Demaille <akim@epita.fr>
6200
6201 * src/symtab.h, src/symtab.c (symbol_type_set)
6202 (symbol_destructor_set, symbol_precedence_set): The location is
6203 the last argument.
6204 Adjust all callers.
6205
6206 2002-06-20 Akim Demaille <akim@epita.fr>
6207
6208 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
6209 internals.
6210 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
6211 Takes a location.
6212 * src/symtab.h, src/symtab.c (symbol_class_set)
6213 (symbol_user_token_number_set): Likewise.
6214 Adjust all callers.
6215 Promote complain_at.
6216 * tests/input.at (Type Clashes): Adjust.
6217
6218 2002-06-20 Akim Demaille <akim@epita.fr>
6219
6220 * data/bison.simple (YYLEX): Fix the declaration when
6221 %pure-parser.
6222
6223 2002-06-20 Akim Demaille <akim@epita.fr>
6224
6225 * data/bison.simple (yysymprint): Don't print the token number,
6226 just its name.
6227 * tests/actions.at (Destructors): Rename as...
6228 (Printers and Destructors): this.
6229 Also exercise %printer.
6230
6231 2002-06-20 Akim Demaille <akim@epita.fr>
6232
6233 * data/bison.simple (YYDSYMPRINT): New.
6234 Use it to remove many of the #if YYDEBUG/if (yydebug).
6235
6236 2002-06-20 Akim Demaille <akim@epita.fr>
6237
6238 * src/symtab.h, src/symtab.c (symbol_t): printer and
6239 printer_location are new members.
6240 (symbol_printer_set): New.
6241 * src/parse-gram.y (PERCENT_PRINTER): New token.
6242 Handle its associated rule.
6243 * src/scan-gram.l: Adjust.
6244 (handle_destructor_at, handle_destructor_dollar): Rename as...
6245 (handle_symbol_code_at, handle_symbol_code_dollar): these.
6246 * src/output.c (symbol_printers_output): New.
6247 (output_skeleton): Call it.
6248 * data/bison.simple (yysymprint): New. Cannot be named yyprint
6249 since there are already many grammar files with a user `yyprint'.
6250 Replace the calls to YYPRINT to calls to yysymprint.
6251 * tests/calc.at: Adjust.
6252 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
6253 taking advantage of parser very internal details (stack size!).
6254
6255 2002-06-20 Akim Demaille <akim@epita.fr>
6256
6257 * src/scan-gram.l: Complete the scanner with the missing patterns
6258 to pacify Flex.
6259 Use `quote' and `symbol_tag_get' where appropriate.
6260
6261 2002-06-19 Akim Demaille <akim@epita.fr>
6262
6263 * tests/actions.at (Destructors): Augment to test locations.
6264 * data/bison.simple (yydestructor): Pass it the current location
6265 if locations are enabled.
6266 Prototype only when __STDC__ or C++.
6267 Change the argument names to move into the yy name space: there is
6268 user code here.
6269
6270 2002-06-19 Akim Demaille <akim@epita.fr>
6271
6272 * data/bison.simple (b4_pure_if): New.
6273 Use it instead of #ifdef YYPURE.
6274
6275 2002-06-19 Akim Demaille <akim@epita.fr>
6276
6277 * data/bison.simple (b4_location_if): New.
6278 Use it instead of #ifdef YYLSP_NEEDED.
6279
6280 2002-06-19 Akim Demaille <akim@epita.fr>
6281
6282 Prepare @$ in %destructor, but currently don't bind it in the
6283 skeleton, as %location use is not cleaned up yet.
6284
6285 * src/scan-gram.l (handle_dollar, handle_destructor_at)
6286 (handle_action_at): New.
6287 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
6288 a braced_code_t and a location as additional arguments.
6289 (handle_destructor_dollar): Instead of requiring `b4_eval', just
6290 unquote one when outputting `b4_dollar_dollar'.
6291 Adjust callers.
6292 * data/bison.simple (b4_eval): Remove.
6293 (b4_symbol_destructor): Adjust.
6294 * tests/input.at (Invalid @n): Adjust.
6295
6296 2002-06-19 Zack Weinberg <zack@codesourcery.com>
6297
6298 * doc/bison.texinfo: Document ability to have multiple
6299 prologue sections.
6300
6301 2002-06-18 Akim Demaille <akim@epita.fr>
6302
6303 * src/files.c (compute_base_names): When computing the output file
6304 names from the input file name, strip the directory part.
6305
6306 2002-06-18 Akim Demaille <akim@epita.fr>
6307
6308 * data/bison.simple.new: Comment changes.
6309 Reported by Andreas Schwab.
6310
6311 2002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
6312
6313 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
6314 there are no `label `yyoverflowlab' defined but not used' warnings
6315 when yyoverflow is defined.
6316
6317 2002-06-18 Akim Demaille <akim@epita.fr>
6318
6319 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
6320 new member.
6321 (symbol_destructor_set): Adjust.
6322 * src/output.c (symbol_destructors_output): Output the destructor
6323 locations.
6324 Output the symbol name.
6325 * data/bison.simple (b4_symbol_destructor): Adjust.
6326
6327 2002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
6328 and Akim Demaille <akim@epita.fr>
6329
6330 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
6331 what's left on the stack when the error recovery hits EOF.
6332 * tests/actions.at (Destructors): Complete to exercise this case.
6333
6334 2002-06-17 Akim Demaille <akim@epita.fr>
6335
6336 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
6337 arguments is really empty, not only equal to `[]'.
6338 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
6339 member.
6340 (symbol_destructor_set): New.
6341 * src/output.c (symbol_destructors_output): New.
6342 * src/reader.h (brace_code_t, current_braced_code): New.
6343 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
6344 (handle_dollar): Rename as...
6345 (handle_action_dollar): this.
6346 (handle_destructor_dollar): New.
6347 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
6348 (grammar_declaration): Use it.
6349 * data/bison.simple (yystos): Is always defined.
6350 (yydestructor): New.
6351 * tests/actions.at (Destructors): New.
6352 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
6353
6354 2002-06-17 Akim Demaille <akim@epita.fr>
6355
6356 * src/symlist.h, src/symlist.c (symbol_list_length): New.
6357 * src/scan-gram.l (handle_dollar, handle_at): Compute the
6358 rule_length only when needed.
6359 * src/output.c (actions_output, token_definitions_output): Output
6360 the full M4 block.
6361 * src/symtab.c: Don't access directly to the symbol tag, use
6362 symbol_tag_get.
6363 * src/parse-gram.y: Use symbol_list_free.
6364
6365 2002-06-17 Akim Demaille <akim@epita.fr>
6366
6367 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
6368 (symbol_list_prepend, get_type_name): Move to...
6369 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
6370 (symbol_list_prepend, symbol_list_n_type_name_get): here.
6371 Adjust all callers.
6372 (symbol_list_free): New.
6373 * src/scan-gram.l (handle_dollar): Takes a location.
6374 * tests/input.at (Invalid $n): Adjust.
6375
6376 2002-06-17 Akim Demaille <akim@epita.fr>
6377
6378 * src/reader.h, src/reader.c (symbol_list_new): Export it.
6379 (symbol_list_prepend): New.
6380 * src/parse-gram.y (%union): `list' is a new member.
6381 (symbols.1): New, replaces...
6382 (terms_to_prec.1, nterms_to_type.1): these.
6383 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
6384 Take a location as additional argument.
6385 Adjust all callers.
6386
6387 2002-06-15 Akim Demaille <akim@epita.fr>
6388
6389 * src/parse-gram.y: Move %token in the declaration section so that
6390 we don't depend upon CVS Bison.
6391
6392 2002-06-15 Akim Demaille <akim@epita.fr>
6393
6394 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
6395 * src/print.c (print_core): Use it.
6396
6397 2002-06-15 Akim Demaille <akim@epita.fr>
6398
6399 * src/conflicts.c (log_resolution): Accept the rule involved in
6400 the sr conflicts instead of the lookahead number that points to
6401 that rule.
6402 (flush_reduce): Accept the current lookahead vector as argument,
6403 instead of the index in LA.
6404 (resolve_sr_conflict): Accept the current number of lookahead
6405 bitset to consider for the STATE, instead of the index in LA.
6406 (set_conflicts): Adjust.
6407 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
6408
6409 2002-06-15 Akim Demaille <akim@epita.fr>
6410
6411 * src/state.h (state_t): Replace the `lookaheadsp' member, a
6412 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
6413 Adjust all dependencies.
6414 * src/lalr.c (initialize_lookaheads): Split into...
6415 (states_lookaheads_count, states_lookaheads_initialize): these.
6416 (lalr): Adjust.
6417
6418 2002-06-15 Akim Demaille <akim@epita.fr>
6419
6420 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
6421 out of...
6422 (grammar_rules_print): here.
6423 * src/reduce.c (reduce_output): Use it.
6424 * tests/reduce.at (Useless Rules, Reduced Automaton)
6425 (Underivable Rules): Adjust.
6426
6427 2002-06-15 Akim Demaille <akim@epita.fr>
6428
6429 Copy BYacc's nice way to report the grammar.
6430
6431 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
6432 New.
6433 Don't print the rules' location, it is confusing and useless.
6434 (rule_print): Use grammar_rhs_print.
6435 * src/print.c (print_grammar): Use grammar_rules_print.
6436
6437 2002-06-15 Akim Demaille <akim@epita.fr>
6438
6439 Complete and rationalize `useless thing' warnings.
6440
6441 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
6442 (symbol_tag_print): New.
6443 Use them everywhere in place of accessing directly the tag member.
6444 * src/gram.h, src/gram.c (rule_print): New.
6445 Use it where a rule used to be printed `by hand'.
6446 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
6447 (reduce_grammar_tables): Report the useless rules.
6448 (reduce_print): Useless things are a warning, not an error.
6449 Report it as such.
6450 * tests/reduce.at (Useless Nonterminals, Useless Rules):
6451 (Reduced Automaton, Underivable Rules): Adjust.
6452 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
6453 * tests/conflicts.at (Unresolved SR Conflicts)
6454 (Solved SR Conflicts): Adjust.
6455
6456 2002-06-15 Akim Demaille <akim@epita.fr>
6457
6458 Let symbols have a location.
6459
6460 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
6461 (getsym): Adjust.
6462 Adjust all callers.
6463 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
6464 Use location_t, not int.
6465 * src/symtab.c (symbol_check_defined): Take advantage of the
6466 location.
6467 * tests/regression.at (Invalid inputs): Adjust.
6468
6469 2002-06-15 Akim Demaille <akim@epita.fr>
6470
6471 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
6472 (input): Don't try to initialize yylloc here, do it in the
6473 scanner.
6474 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
6475 * src/gram.h (rule_t): Change line and action_line into location
6476 and action_location, of location_t type.
6477 Adjust all dependencies.
6478 * src/location.h, src/location.c (empty_location): New.
6479 * src/reader.h, src/reader.c (grammar_start_symbol_set)
6480 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
6481 (grammar_current_rule_symbol_append)
6482 (grammar_current_rule_action_append): Expect a location as argument.
6483 * src/reader.c (grammar_midrule_action): Adjust to attach an
6484 action's location as dummy symbol location.
6485 * src/symtab.h, src/symtab.c (startsymbol_location): New.
6486 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
6487 the line numbers.
6488
6489 2002-06-14 Akim Demaille <akim@epita.fr>
6490
6491 Grammar declarations may be found in the grammar section.
6492
6493 * src/parse-gram.y (rules_or_grammar_declaration): New.
6494 (declarations): Each declaration may end with a semicolon, not
6495 just...
6496 (grammar_declaration): `"%union"'.
6497 (grammar): Branch to rules_or_grammar_declaration.
6498
6499 2002-06-14 Akim Demaille <akim@epita.fr>
6500
6501 * src/main.c (main): Invoke scanner_free.
6502
6503 2002-06-14 Akim Demaille <akim@epita.fr>
6504
6505 * src/output.c (m4_invoke): Extracted from...
6506 (output_skeleton): here.
6507 Free tempfile.
6508
6509 2002-06-14 Akim Demaille <akim@epita.fr>
6510
6511 * src/parse-gram.y (directives, directive, gram)
6512 (grammar_directives, precedence_directives, precedence_directive):
6513 Rename as...
6514 (declarations, declaration, grammar, grammar_declaration)
6515 (precedence_declaration, precedence_declarator): these.
6516 (symbol_declaration): New.
6517
6518 2002-06-14 Akim Demaille <akim@epita.fr>
6519
6520 * src/files.c (action_obstack): Remove, unused.
6521 (output_obstack): Remove it, and all its dependencies, as it is no
6522 longer needed.
6523 * src/reader.c (epilogue_set): Build the epilogue in the
6524 muscle_obstack.
6525 * src/output.h, src/output.c (muscle_obstack): Move to...
6526 * src/muscle_tab.h, src/muscle_tab.h: here.
6527 (muscle_init): Initialize muscle_obstack.
6528 (muscle_free): New.
6529 * src/main.c (main): Call it.
6530
6531 2002-06-14 Akim Demaille <akim@epita.fr>
6532
6533 * src/location.h: New, extracted from...
6534 * src/reader.h: here.
6535 * src/Makefile.am (noinst_HEADERS): Merge into
6536 (bison_SOURCES): this.
6537 Add location.h.
6538 * src/parse-gram.y: Use location_t instead of Bison's.
6539 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
6540 Use location_t instead of ints.
6541
6542 2002-06-14 Akim Demaille <akim@epita.fr>
6543
6544 * data/bison.simple, data/bison.c++: Be sure to restore the
6545 current #line when returning to the skeleton contents after having
6546 exposed the input file's #line.
6547
6548 2002-06-12 Akim Demaille <akim@epita.fr>
6549
6550 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
6551 eager.
6552 * tests/actions.at (Exotic Dollars): New.
6553
6554 2002-06-12 Akim Demaille <akim@epita.fr>
6555
6556 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
6557 ['"/] too eagerly.
6558 * tests/input.at (Torturing the Scanner): New.
6559
6560 2002-06-11 Akim Demaille <akim@epita.fr>
6561
6562 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
6563 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
6564 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
6565 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
6566 * src/reader.c (reader): Use it.
6567
6568 2002-06-11 Akim Demaille <akim@epita.fr>
6569
6570 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
6571 Adjust all callers.
6572 (scanner_last_string_free): New.
6573
6574 2002-06-11 Akim Demaille <akim@epita.fr>
6575
6576 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
6577 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
6578 (last_string, YY_OBS_FREE): New.
6579 Use them when returning an ID.
6580
6581 2002-06-11 Akim Demaille <akim@epita.fr>
6582
6583 Have Bison grammars parsed by a Bison grammar.
6584
6585 * src/reader.c, src/reader.h (prologue_augment): New.
6586 * src/reader.c (copy_definition): Remove.
6587
6588 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
6589 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
6590 (grammar_current_rule_prec_set, grammar_current_rule_check)
6591 (grammar_current_rule_symbol_append)
6592 (grammar_current_rule_action_append): Export.
6593 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
6594 (symbol_list_action_append): Remove.
6595 Hook the routines from reader.
6596 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
6597 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
6598
6599 * src/reader.c (read_declarations): Remove, unused.
6600
6601 * src/parse-gram.y: Handle the epilogue.
6602 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
6603 (grammar_start_symbol_set): this.
6604 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
6605 * src/reader.c (readgram): Remove, unused.
6606 (reader): Adjust to insert eoftoken and axiom where appropriate.
6607
6608 * src/reader.c (copy_dollar): Replace with...
6609 * src/scan-gram.h (handle_dollar): this.
6610 * src/parse-gram.y: Remove `%thong'.
6611
6612 * src/reader.c (copy_at): Replace with...
6613 * src/scan-gram.h (handle_at): this.
6614
6615 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
6616 New.
6617
6618 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
6619 time being.
6620
6621 * src/reader.h, src/reader.c (grammar_rule_end): New.
6622
6623 * src/parse.y (current_type, current_class): New.
6624 Implement `%nterm', `%token' support.
6625 Merge `%term' into `%token'.
6626 (string_as_id): New.
6627 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
6628 type name.
6629
6630 * src/parse-gram.y: Be sure to handle properly the beginning of
6631 rules.
6632
6633 * src/parse-gram.y: Handle %type.
6634 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
6635
6636 * src/parse-gram.y: More directives support.
6637 * src/options.c: No longer handle source directives.
6638
6639 * src/parse-gram.y: Fix %output.
6640
6641 * src/parse-gram.y: Handle %union.
6642 Use the prologue locations.
6643 * src/reader.c (parse_union_decl): Remove.
6644
6645 * src/reader.h, src/reader.c (epilogue_set): New.
6646 * src/parse-gram.y: Use it.
6647
6648 * data/bison.simple, data/bison.c++: b4_stype is now either not
6649 defined, then default to int, or to the contents of %union,
6650 without `union' itself.
6651 Adjust.
6652 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
6653
6654 * src/output.c (actions_output): Don't output braces, as they are
6655 already handled by the scanner.
6656
6657 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
6658 characters to themselves.
6659
6660 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
6661 that the epilogue has a proper #line.
6662
6663 * src/parse-gram.y: Handle precedence/associativity.
6664
6665 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
6666 a terminal.
6667 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
6668 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
6669 at all to define terminals that cannot be emitted.
6670
6671 * src/scan-gram.l: Escape M4 characters.
6672
6673 * src/scan-gram.l: Working properly with escapes in user
6674 strings/characters.
6675
6676 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
6677 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
6678 grammar.
6679 Use more modest sizes, as for the time being the parser does not
6680 release memory, and therefore the process swallows a huge amount
6681 of memory.
6682
6683 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
6684 stricter %token grammar.
6685
6686 * src/symtab.h (associativity): Add `undef_assoc'.
6687 (symbol_precedence_set): Do nothing when passed an undef_assoc.
6688 * src/symtab.c (symbol_check_alias_consistence): Adjust.
6689
6690 * tests/regression.at (Invalid %directive): Remove, as it is now
6691 meaningless.
6692 (Invalid inputs): Adjust to the new error messages.
6693 (Token definitions): The new grammar doesn't allow too many
6694 eccentricities.
6695
6696 * src/lex.h, src/lex.c: Remove.
6697 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
6698 (copy_character, copy_string2, copy_string, copy_identifier)
6699 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
6700 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
6701 (parse_action): Remove.
6702 * po/POTFILES.in: Adjust.
6703
6704 2002-06-11 Akim Demaille <akim@epita.fr>
6705
6706 * src/reader.c (parse_action): Don't store directly into the
6707 rule's action member: return the action as a string.
6708 Don't require `rule_length' as an argument: compute it.
6709 (grammar_current_rule_symbol_append)
6710 (grammar_current_rule_action_append): New, eved out from
6711 (readgram): here.
6712 Remove `action_flag', `rulelength', unused now.
6713
6714 2002-06-11 Akim Demaille <akim@epita.fr>
6715
6716 * src/reader.c (grammar_current_rule_prec_set).
6717 (grammar_current_rule_check): New, eved out from...
6718 (readgram): here.
6719 Remove `xaction', `first_rhs': useless.
6720 * tests/input.at (Type clashes): New.
6721 * tests/existing.at (GNU Cim Grammar): Adjust.
6722
6723 2002-06-11 Akim Demaille <akim@epita.fr>
6724
6725 * src/reader.c (grammar_midrule_action): New, Eved out from
6726 (readgram): here.
6727
6728 2002-06-11 Akim Demaille <akim@epita.fr>
6729
6730 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
6731 New.
6732 (readgram): Use them as replacement of inlined code, crule and
6733 crule1.
6734
6735 2002-06-11 Akim Demaille <akim@epita.fr>
6736
6737 * src/reader.c (grammar_end, grammar_symbol_append): New.
6738 (readgram): Use them.
6739 Make the use of `p' as local as possible.
6740
6741 2002-06-10 Akim Demaille <akim@epita.fr>
6742
6743 GCJ's parser requires the tokens to be defined before the prologue.
6744
6745 * data/bison.simple: Output the token definition before the user's
6746 prologue.
6747 * tests/regression.at (Braces parsing, Duplicate string)
6748 (Mixing %token styles): Check the output from bison.
6749 (Early token definitions): New.
6750
6751 2002-06-10 Akim Demaille <akim@epita.fr>
6752
6753 * src/symtab.c (symbol_user_token_number_set): Don't complain when
6754 assigning twice the same user number to a token, so that we can
6755 use it in...
6756 * src/lex.c (lex): here.
6757 Also use `symbol_class_set' instead of hand written code.
6758 * src/reader.c (parse_assoc_decl): Likewise.
6759
6760 2002-06-10 Akim Demaille <akim@epita.fr>
6761
6762 * src/symtab.c, src/symtab.c (symbol_class_set)
6763 (symbol_user_token_number_set): New.
6764 * src/reader.c (parse_token_decl): Use them.
6765 Use a switch instead of ifs.
6766 Use a single argument.
6767
6768 2002-06-10 Akim Demaille <akim@epita.fr>
6769
6770 Remove `%thong' support as it is undocumented, unused, duplicates
6771 `%token's job, and creates useless e-mail traffic with people who
6772 want to know what it is, why it is undocumented, unused, and
6773 duplicates `%token's job.
6774
6775 * src/reader.c (parse_thong_decl): Remove.
6776 * src/options.c (option_table): Remove "thong".
6777 * src/lex.h (tok_thong): Remove.
6778
6779 2002-06-10 Akim Demaille <akim@epita.fr>
6780
6781 * src/symtab.c, src/symtab.c (symbol_type_set)
6782 (symbol_precedence_set): New.
6783 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
6784 (value_components_used): Remove, unused.
6785
6786 2002-06-09 Akim Demaille <akim@epita.fr>
6787
6788 Move symbols handling code out of the reader.
6789
6790 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
6791 (axiom): Move to...
6792 * src/symtab.h, src/symtab.c: here.
6793
6794 * src/gram.c (start_symbol): Remove: use startsymbol->number.
6795 * src/reader.c (startval): Rename as...
6796 * src/symtab.h, src/symtab.c (startsymbol): this.
6797 * src/reader.c: Adjust.
6798
6799 * src/reader.c (symbol_check_defined, symbol_make_alias)
6800 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
6801 (token_translations_init)
6802 Move to...
6803 * src/symtab.c: here.
6804 * src/reader.c (packsymbols): Move to...
6805 * src/symtab.h, src/symtab.c (symbols_pack): here.
6806 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
6807 argument.
6808
6809 2002-06-03 Akim Demaille <akim@epita.fr>
6810
6811 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
6812 then statements.
6813
6814 2002-06-03 Akim Demaille <akim@epita.fr>
6815
6816 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
6817 structs with non literals.
6818 * src/scan-skel.l: never-interactive.
6819 * src/conflicts.c (enum conflict_resolution_e): No trailing
6820 comma.
6821 * src/getargs.c (usage): Split long literal strings.
6822 Reported by Hans Aberg.
6823
6824 2002-05-28 Akim Demaille <akim@epita.fr>
6825
6826 * data/bison.c++: Use C++ ostreams.
6827 (cdebug_): New member.
6828
6829 2002-05-28 Akim Demaille <akim@epita.fr>
6830
6831 * src/output.c (output_skeleton): Be sure to allocate enough room
6832 for `/' _and_ for `\0' in full_skeleton.
6833
6834 2002-05-28 Akim Demaille <akim@epita.fr>
6835
6836 * data/bison.c++: Catch up with bison.simple:
6837 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6838 and Paul Eggert <eggert@twinsun.com>: `error' handing.
6839 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
6840 and popping traces.
6841
6842 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6843
6844 * src/output.c (output_skeleton): Put an explicit path in front of
6845 the skeleton file name, rather than relying on the -I directory,
6846 to partially alleviate effects of having a skeleton file lying around
6847 in the current directory.
6848
6849 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6850
6851 * src/conflicts.c (log_resolution): Correct typo:
6852 obstack_printf should be obstack_fgrow1.
6853
6854 2002-05-26 Akim Demaille <akim@epita.fr>
6855
6856 * src/state.h (state_t): `solved_conflicts' is a new member.
6857 * src/LR0.c (new_state): Set it to 0.
6858 * src/conflicts.h, src/conflicts.c (print_conflicts)
6859 (free_conflicts, solve_conflicts): Rename as...
6860 (conflicts_print, conflicts_free, conflicts_solve): these.
6861 Adjust callers.
6862 * src/conflicts.c (enum conflict_resolution_e)
6863 (solved_conflicts_obstack): New, used by...
6864 (log_resolution): this.
6865 Adjust to attach the conflict resolution to each state.
6866 Complete the description with the precedence/associativity
6867 information.
6868 (resolve_sr_conflict): Adjust.
6869 * src/print.c (print_state): Output its solved_conflicts.
6870 * tests/conflicts.at (Unresolved SR Conflicts)
6871 (Solved SR Conflicts): Exercise --report=all.
6872
6873 2002-05-26 Akim Demaille <akim@epita.fr>
6874
6875 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
6876 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
6877 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
6878 (token_number_t, item_number_as_token_number)
6879 (token_number_as_item_number, muscle_insert_token_number_table):
6880 Rename as...
6881 (symbol_number_t, item_number_as_symbol_number)
6882 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
6883 these, since it is more appropriate.
6884
6885 2002-05-26 Akim Demaille <akim@epita.fr>
6886
6887 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
6888 `Error:' lines.
6889 * data/bison.simple (yystos) [YYDEBUG]: New.
6890 (yyparse) [YYDEBUG]: Display the symbols which are popped during
6891 error recovery.
6892 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
6893
6894 2002-05-25 Akim Demaille <akim@epita.fr>
6895
6896 * doc/bison.texinfo (Debugging): Split into...
6897 (Tracing): this new section, its former contents, and...
6898 (Understanding): this new section.
6899 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
6900 by...
6901 (report_flag): this.
6902 Adjust all dependencies.
6903 (report_args, report_types, report_argmatch): New.
6904 (usage, getargs): Report/support -r, --report.
6905 * src/options.h
6906 (struct option_table_struct): Rename as..,
6907 (struct option_table_s): this.
6908 Rename the `set_flag' member to `flag' to match with getopt_long's
6909 struct.
6910 * src/options.c (option_table): Split verbose into an entry for
6911 %verbose, and another for --verbose.
6912 Support --report/-r, so remove -r from the obsolete --raw.
6913 * src/print.c: Attach full item sets and lookaheads reports to
6914 report_flag instead of trace_flag.
6915 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
6916
6917 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6918 and Paul Eggert <eggert@twinsun.com>
6919
6920 * data/bison.simple (yyparse): Correct error handling to conform to
6921 POSIX and yacc. Specifically, after syntax error is discovered,
6922 do not reduce further before shifting the error token.
6923 Clean up the code a bit by removing the labels yyerrdefault,
6924 yyerrhandle, yyerrpop.
6925 * NEWS: Document the above.
6926
6927 2002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6928
6929 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
6930 type; it isn't always big enough, since it doesn't necessarily
6931 include non-terminals.
6932 (yytranslate): Expand definition of yy_token_number_type, so that
6933 the latter can be removed.
6934 (yy_token_number_type): Remove, only one use.
6935 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
6936 don't use TokenNumberType as element type.
6937
6938 * tests/regression.at: Modify expected output to agree with change
6939 to yyr1 and yytranslate.
6940
6941 2002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
6942
6943 * src/reader.c (parse_action): Use copy_character instead of
6944 obstack_1grow.
6945
6946 2002-05-13 Akim Demaille <akim@epita.fr>
6947
6948 * tests/regression.at (Token definitions): Prototype yylex and
6949 yyerror.
6950
6951 2002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6952
6953 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
6954 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
6955 32-bit arithmetic.
6956 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
6957
6958 2002-05-07 Akim Demaille <akim@epita.fr>
6959
6960 * tests/synclines.at: Be sure to prototype yylex and yyerror to
6961 avoid GCC warnings.
6962
6963 2002-05-07 Akim Demaille <akim@epita.fr>
6964
6965 Kill GCC warnings.
6966
6967 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
6968 over the RHS of each rule.
6969 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
6970 * src/state.h (state_t): Member `nitems' is unsigned short.
6971 * src/LR0.c (get_state): Adjust.
6972 * src/reader.c (packgram): Likewise.
6973 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
6974 `Type'.
6975 (muscle_insert_int_table): Remove, unused.
6976 (prepare_rules): Remove `max'.
6977
6978 2002-05-06 Akim Demaille <akim@epita.fr>
6979
6980 * src/closure.c (print_firsts): Display of the symbol tags.
6981 (bitmatrix_print): Move to...
6982 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
6983 here.
6984 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
6985
6986 2002-05-06 Akim Demaille <akim@epita.fr>
6987
6988 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
6989 hash_do_for_each.
6990
6991 2002-05-06 Akim Demaille <akim@epita.fr>
6992
6993 * src/LR0.c (new_state, get_state): Instead of using the global
6994 `kernel_size' and `kernel_base', have two new arguments:
6995 `core_size' and `core'.
6996 Adjust callers.
6997
6998 2002-05-06 Akim Demaille <akim@epita.fr>
6999
7000 * src/reader.c (packgram): No longer end `ritem' with a 0
7001 sentinel: it is not used.
7002
7003 2002-05-05 Akim Demaille <akim@epita.fr>
7004
7005 New experimental feature: display the lookaheads in the report and
7006 graph.
7007
7008 * src/print (print_core): When --trace-flag, display the rules
7009 lookaheads.
7010 * src/print_graph.c (print_core): Likewise.
7011 Swap the arguments.
7012 Adjust caller.
7013
7014 2002-05-05 Akim Demaille <akim@epita.fr>
7015
7016 * tests/torture.at (Many lookaheads): New test.
7017
7018 2002-05-05 Akim Demaille <akim@epita.fr>
7019
7020 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
7021 (GENERATE_MUSCLE_INSERT_TABLE): this.
7022 (output_int_table, output_unsigned_int_table, output_short_table)
7023 (output_token_number_table, output_item_number_table): Replace with...
7024 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
7025 (muscle_insert_short_table, muscle_insert_token_number_table)
7026 (muscle_insert_item_number_table): these.
7027 Adjust all callers.
7028 (prepare_tokens): Don't free `translations', since...
7029 * src/reader.h, src/reader.c (grammar_free): do it.
7030 Move to...
7031 * src/gram.h, src/gram.c (grammar_free): here.
7032 * data/bison.simple, data/bison.c++: b4_token_number_max is now
7033 b4_translate_max.
7034
7035 2002-05-05 Akim Demaille <akim@epita.fr>
7036
7037 * src/output.c (output_unsigned_int_table): New.
7038 (prepare_rules): `i' is unsigned.
7039 `prhs', `rline', `r2' are unsigned int.
7040 Rename muscle `rhs_number_max' as `rhs_max'.
7041 Output muscles `prhs_max', `rline_max', and `r2_max'.
7042 Free rline and r1.
7043 * data/bison.simple, data/bison.c++: Adjust to use these muscles
7044 to compute types instead of constant types.
7045 * tests/regression.at (Web2c Actions): Adjust.
7046
7047 2002-05-04 Akim Demaille <akim@epita.fr>
7048
7049 * src/symtab.h (SALIAS, SUNDEF): Rename as...
7050 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
7051 Adjust dependencies.
7052 * src/output.c (token_definitions_output): Be sure not to output a
7053 `#define 'a'' when fed with `%token 'a' "a"'.
7054 * tests/regression.at (Token definitions): New.
7055
7056 2002-05-03 Paul Eggert <eggert@twinsun.com>
7057
7058 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
7059 for K&R C.
7060
7061 2002-05-03 gettextize <bug-gnu-gettext@gnu.org>
7062
7063 * Makefile.am (SUBDIRS): Remove intl.
7064 (EXTRA_DIST): Add config/config.rpath.
7065
7066 2002-05-03 Akim Demaille <akim@epita.fr>
7067
7068 * data/bison.simple (m4_if): Don't output empty enums.
7069 And actually, output valid enum definitions :(.
7070
7071 2002-05-03 Akim Demaille <akim@epita.fr>
7072
7073 * configure.bat: Remove, completely obsolete.
7074 * Makefile.am (EXTRA_DIST): Adjust.
7075 Don't distribute config.rpath...
7076 * config/Makefile.am (EXTRA_DIST): Do it.
7077
7078 2002-05-03 Akim Demaille <akim@epita.fr>
7079
7080 * configure.in (GETTEXT_VERSION): New.
7081 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
7082
7083 2002-05-03 Akim Demaille <akim@epita.fr>
7084
7085 * data/bison.simple (b4_token_enum): New.
7086 (b4_token_defines): Use it to output tokens both as #define and
7087 enums.
7088 Suggested by Paul Eggert.
7089 * src/output.c (token_definitions_output): Don't output spurious
7090 white spaces.
7091
7092 2002-05-03 Akim Demaille <akim@epita.fr>
7093
7094 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
7095
7096 2002-05-02 Robert Anisko <robert@lrde.epita.fr>
7097
7098 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
7099 Update the stack class, give a try to deque as the default container.
7100
7101 2002-05-02 Akim Demaille <akim@epita.fr>
7102
7103 * data/bison.simple (yyparse): Do not implement @$ = @1.
7104 (YYLLOC_DEFAULT): Adjust to do it.
7105 * doc/bison.texinfo (Location Default Action): Fix.
7106
7107 2002-05-02 Akim Demaille <akim@epita.fr>
7108
7109 * src/reader.c (parse_braces): Merge into...
7110 (parse_action): this.
7111
7112 2002-05-02 Akim Demaille <akim@epita.fr>
7113
7114 * configure.in (ALL_LINGUAS): Remove.
7115 * po/LINGUAS, hr.po: New.
7116
7117 2002-05-02 Akim Demaille <akim@epita.fr>
7118
7119 Remove the so called hairy (semantic) parsers.
7120
7121 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
7122 * src/gram.h, src/gram.c (semantic_parser): Remove.
7123 (rule_t): Remove the guard and guard_line members.
7124 * src/lex.h (token_t): remove tok_guard.
7125 * src/options.c (option_table): Remove %guard and %semantic_parser
7126 support.
7127 * src/output.c, src/output.h (guards_output): Remove.
7128 (prepare): Adjust.
7129 (token_definitions_output): Don't output the `T'
7130 tokens (???).
7131 (output_skeleton): Don't output the guards.
7132 * src/files.c, src/files.c (attrsfile): Remove.
7133 * src/reader.c (symbol_list): Remove the guard and guard_line
7134 members.
7135 Adjust dependencies.
7136 (parse_guard): Remove.
7137 * data/bison.hairy: Remove.
7138 * doc/bison.texinfo (Environment Variables): Remove occurrences of
7139 BISON_HAIRY.
7140
7141 2002-05-02 Akim Demaille <akim@epita.fr>
7142
7143 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
7144 (parse_guard): Rename the formal argument `stack_offset' as
7145 `rule_length', which is more readable.
7146 Adjust callers.
7147 (copy_at, copy_dollar): Instead of outputting the hard coded
7148 values of $$, $n and so forth, output invocation to b4_lhs_value,
7149 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
7150 Note: this patch partially drops `semantic-parser' support: it
7151 always does `rule_length - n', where semantic parsers ought to
7152 always use `-n'.
7153 * data/bison.simple, data/bison.c++ (b4_lhs_value)
7154 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
7155
7156 2002-05-02 Akim Demaille <akim@epita.fr>
7157
7158 * configure.in (AC_INIT): Bump to 1.49b.
7159 (AM_INIT_AUTOMAKE): Short invocation.
7160
7161 2002-05-02 Akim Demaille <akim@epita.fr>
7162
7163 Version 1.49a.
7164
7165 2002-05-01 Akim Demaille <akim@epita.fr>
7166
7167 * src/skeleton.h: Remove.
7168
7169 2002-05-01 Akim Demaille <akim@epita.fr>
7170
7171 * src/skeleton.h: Fix the #endif.
7172 Reported by Magnus Fromreide.
7173
7174 2002-04-26 Paul Eggert <eggert@twinsun.com>
7175
7176 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
7177 Define if we define YYSTYPE and YYLTYPE, respectively.
7178 (YYCOPY): Fix [] quoting problem in the non-GCC case.
7179
7180 2002-04-25 Robert Anisko <robert@lrde.epita.fr>
7181
7182 * src/scan-skel.l: Postprocess quadrigraphs.
7183
7184 * src/reader.c (copy_character): New function, used to output
7185 single characters while replacing `[' and `]' with quadrigraphs, to
7186 avoid troubles with M4 quotes.
7187 (copy_comment): Output characters with copy_character.
7188 (read_additionnal_code): Likewise.
7189 (copy_string2): Likewise.
7190 (copy_definition): Likewise.
7191
7192 * tests/calc.at: Exercise M4 quoting.
7193
7194 2002-04-25 Akim Demaille <akim@epita.fr>
7195
7196 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
7197 between `!' and the command.
7198 Reported by Paul Eggert.
7199
7200 2002-04-24 Robert Anisko <robert@lrde.epita.fr>
7201
7202 * tests/calc.at: Exercise prologue splitting.
7203
7204 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
7205 `b4_post_prologue' instead of `b4_prologue'.
7206
7207 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
7208 muscles.
7209 (output): Free pre_prologue_obstack and post_prologue_obstack.
7210 * src/files.h, src/files.c (attrs_obstack): Remove.
7211 (pre_prologue_obstack, post_prologue_obstack): New.
7212 * src/reader.c (copy_definition): Add a parameter to specify the
7213 obstack to fill, instead of using attrs_obstack unconditionally.
7214 (read_declarations): Pass pre_prologue_obstack to copy_definition if
7215 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
7216
7217 2002-04-23 Paul Eggert <eggert@twinsun.com>
7218
7219 * data/bison.simple: Remove unnecessary commentary and white
7220 space differences from 1_29-branch.
7221 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
7222
7223 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
7224 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
7225 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
7226 constructors or destructors.
7227
7228 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
7229
7230 2002-04-23 Akim Demaille <akim@epita.fr>
7231
7232 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
7233 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
7234 location with columns.
7235 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
7236 All reported by Paul Eggert.
7237
7238 2002-04-22 Akim Demaille <akim@epita.fr>
7239
7240 * src/reduce.c (dump_grammar): Move to...
7241 * src/gram.h, src/gram.c (grammar_dump): here.
7242 Be sure to separate long item numbers.
7243 Don't read the members of a rule's prec if its nil.
7244
7245 2002-04-22 Akim Demaille <akim@epita.fr>
7246
7247 * src/output.c (table_size, table_grow): New.
7248 (MAXTABLE): Remove, replace uses with table_size.
7249 (pack_vector): Instead of dying when the table is too big, grow it.
7250
7251 2002-04-22 Akim Demaille <akim@epita.fr>
7252
7253 * data/bison.simple (yyr1): Its type is that of a token number.
7254 * data/bison.c++ (r1_): Likewise.
7255 * tests/regression.at (Web2c Actions): Adjust.
7256
7257 2002-04-22 Akim Demaille <akim@epita.fr>
7258
7259 * src/reader.c (token_translations_init): 256 is now the default
7260 value for the error token, i.e., it will be assigned another
7261 number if the user assigned 256 to one of her tokens.
7262 (reader): Don't force 256 to error.
7263 * doc/bison.texinfo (Symbols): Adjust.
7264 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
7265 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
7266 etc. instead of 10, 20, 30 (which was used to `jump' over error
7267 (256) and undefined (2)).
7268
7269 2002-04-22 Akim Demaille <akim@epita.fr>
7270
7271 Propagate more token_number_t.
7272
7273 * src/gram.h (token_number_as_item_number)
7274 (item_number_as_token_number): New.
7275 * src/output.c (GENERATE_OUTPUT_TABLE): New.
7276 Use it to create output_item_number_table and
7277 output_token_number_table.
7278 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
7279 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
7280 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
7281 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
7282
7283 2002-04-22 Akim Demaille <akim@epita.fr>
7284
7285 * src/output.h, src/output.c (get_lines_number): Remove.
7286
7287 2002-04-19 Akim Demaille <akim@epita.fr>
7288
7289 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
7290 as Lex/Flex'.
7291 (Debugging): More details about enabling the debugging features.
7292 (Table of Symbols): Describe $$, $n, @$, and @n.
7293 Suggested by Tim Josling.
7294
7295 2002-04-19 Akim Demaille <akim@epita.fr>
7296
7297 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
7298
7299 2002-04-10 Akim Demaille <akim@epita.fr>
7300
7301 * src/system.h: Rely on HAVE_LIMITS_H.
7302 Suggested by Paul Eggert.
7303
7304 2002-04-09 Akim Demaille <akim@epita.fr>
7305
7306 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
7307 full stderr, and strip it according to the bison options, instead
7308 of composing the error message from different bits.
7309 This makes it easier to check for several error messages.
7310 Adjust all the invocations.
7311 Add an invocation exercising the error token.
7312 Add an invocation demonstrating a stupid error message.
7313 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
7314 Adjust the tests.
7315 Error message are for stderr, not stdout.
7316
7317 2002-04-09 Akim Demaille <akim@epita.fr>
7318
7319 * src/gram.h, src/gram.c (error_token_number): Remove, use
7320 errtoken->number.
7321 * src/reader.c (reader): Don't specify the user token number (2)
7322 for $undefined, as it uselessly prevents using it.
7323 * src/gram.h (token_number_t): Move to...
7324 * src/symtab.h: here.
7325 (state_t.number): Is a token_number_t.
7326 * src/print.c, src/reader.c: Use undeftoken->number instead of
7327 hard coded 2.
7328 (Even though this 2 is not the same as above: the number of the
7329 undeftoken remains being 2, it is its user token number which
7330 might not be 2).
7331 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
7332 `user_token_number_max'.
7333 Output `undef_token_number'.
7334 * data/bison.simple, data/bison.c++: Use them.
7335 Be sure to map invalid yylex return values to
7336 `undef_token_number'. This saves us from gratuitous SEGV.
7337
7338 * tests/conflicts.at (Solved SR Conflicts)
7339 (Unresolved SR Conflicts): Adjust.
7340 * tests/regression.at (Web2c Actions): Adjust.
7341
7342 2002-04-08 Akim Demaille <akim@epita.fr>
7343
7344 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
7345 Adding #line.
7346 Remove the duplicate `typedefs'.
7347 (RhsNumberType): Fix the declaration and various other typos.
7348 Use __ofile__.
7349 * data/bison.simple: Use __ofile__.
7350 * src/scan-skel.l: Handle __ofile__.
7351
7352 2002-04-08 Akim Demaille <akim@epita.fr>
7353
7354 * src/gram.h (item_number_t): New, the type of item numbers in
7355 RITEM. Note that it must be able to code symbol numbers as
7356 positive number, and the negation of rule numbers as negative
7357 numbers.
7358 Adjust all dependencies (pretty many).
7359 * src/reduce.c (rule): Remove this `short *' pointer: use
7360 item_number_t.
7361 * src/system.h (MINSHORT, MAXSHORT): Remove.
7362 Include `limits.h'.
7363 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
7364 (shortcpy): Remove.
7365 (MAXTABLE): Move to...
7366 * src/output.c (MAXTABLE): here.
7367 (prepare_rules): Use output_int_table to output rhs.
7368 * data/bison.simple, data/bison.c++: Adjust.
7369 * tests/torture.at (Big triangle): Move the limit from 254 to
7370 500.
7371 * tests/regression.at (Web2c Actions): Ajust.
7372
7373 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
7374 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
7375 passes, but produces negative #line number, once fixed, GCC is
7376 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
7377 C), it passes.
7378 * src/state.h (state_h): Code input lines on ints, not shorts.
7379
7380 2002-04-08 Akim Demaille <akim@epita.fr>
7381
7382 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
7383 and then the grammar.
7384
7385 2002-04-08 Akim Demaille <akim@epita.fr>
7386
7387 * src/system.h: No longer using strndup.
7388
7389 2002-04-07 Akim Demaille <akim@epita.fr>
7390
7391 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
7392 * src/output.c (output_table_data): Return the longest number.
7393 (prepare_tokens): Output `token_number_max').
7394 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
7395 New.
7396 Use them to define yy_token_number_type/TokenNumberType.
7397 Use this type for yytranslate.
7398 * tests/torture.at (Big triangle): Push the limit from 124 to
7399 253.
7400 * tests/regression.at (Web2c Actions): Adjust.
7401
7402 2002-04-07 Akim Demaille <akim@epita.fr>
7403
7404 * tests/torture.at (Big triangle): New.
7405 (GNU AWK Grammar, GNU Cim Grammar): Move to...
7406 * tests/existing.at: here.
7407
7408 2002-04-07 Akim Demaille <akim@epita.fr>
7409
7410 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
7411 nritems.
7412 Adjust dependencies.
7413
7414 2002-04-07 Akim Demaille <akim@epita.fr>
7415
7416 * src/reader.c: Normalize increments to prefix form.
7417
7418 2002-04-07 Akim Demaille <akim@epita.fr>
7419
7420 * src/reader.c, symtab.c: Remove debugging code.
7421
7422 2002-04-07 Akim Demaille <akim@epita.fr>
7423
7424 Rename all the `bucket's as `symbol_t'.
7425
7426 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
7427 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
7428 * src/symtab.c, src/symtab.h (bucket): Rename as...
7429 (symbol_t): this.
7430 (symbol_list_new, bucket_check_defined, bucket_make_alias)
7431 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
7432 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
7433 (buckets_new, buckets_free, buckets_do): Rename as...
7434 (symbol_list_new, symbol_check_defined, symbol_make_alias)
7435 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
7436 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
7437 (symbols_new, symbols_free, symbols_do): these.
7438
7439 2002-04-07 Akim Demaille <akim@epita.fr>
7440
7441 Use lib/hash for the symbol table.
7442
7443 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
7444 EOF.
7445 * src/lex.c (lex): Set the `number' member of new terminals.
7446 * src/reader.c (bucket_check_defined, bucket_make_alias)
7447 (bucket_check_alias_consistence, bucket_translation): New.
7448 (reader, grammar_free, readgram, token_translations_init)
7449 (packsymbols): Adjust.
7450 (reader): Number the predefined tokens.
7451 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
7452 for predefined tokens.
7453 * src/symtab.h (bucket): Remove all the hash table related
7454 members.
7455 * src/symtab.c (symtab): Replace by...
7456 (bucket_table): this.
7457 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
7458 (buckets_new, buckets_do): New.
7459
7460 2002-04-07 Akim Demaille <akim@epita.fr>
7461
7462 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
7463 (start_symbol, max_user_token_number, semantic_parser)
7464 (error_token_number): Initialize.
7465 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
7466 Initialize.
7467 (reader): Don't.
7468 (errtoken, eoftoken, undeftoken, axiom): Extern.
7469
7470 2002-04-07 Akim Demaille <akim@epita.fr>
7471
7472 * src/gram.h (rule_s): prec and precsym are now pointers
7473 to the bucket giving the priority/associativity.
7474 Member `associativity' removed: useless.
7475 * src/reduce.c, src/conflicts.c: Adjust.
7476
7477 2002-04-07 Akim Demaille <akim@epita.fr>
7478
7479 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
7480 Properly escape the symbols' TAG when outputting them.
7481
7482 2002-04-07 Akim Demaille <akim@epita.fr>
7483
7484 * src/lalr.h (LA): Is a bitsetv, not bitset*.
7485
7486 2002-04-07 Akim Demaille <akim@epita.fr>
7487
7488 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
7489 (LArule): this, which is an array to rule_t*.
7490 * src/print.c, src/conflicts.c: Adjust.
7491
7492 2002-04-07 Akim Demaille <akim@epita.fr>
7493
7494 * src/gram.h (rule_t): Rename `number' as `user_number'.
7495 `number' is a new member.
7496 Adjust dependencies.
7497 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
7498
7499 2002-04-07 Akim Demaille <akim@epita.fr>
7500
7501 As a result of the previous patch, it is no longer needed
7502 to reorder ritem itself.
7503
7504 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
7505
7506 2002-04-07 Akim Demaille <akim@epita.fr>
7507
7508 Be sure never to walk through RITEMS, but use only data related to
7509 the rules themselves. RITEMS should be banished.
7510
7511 * src/output.c (output_token_translations): Rename as...
7512 (prepare_tokens): this.
7513 In addition to `translate', prepare the muscles `tname' and
7514 `toknum', which were handled by...
7515 (output_rule_data): this.
7516 Remove, and move the remainder of its outputs into...
7517 (prepare_rules): this new routines, which also merges content from
7518 (output_gram): this.
7519 (prepare_rules): Be sure never to walk through RITEMS.
7520 (output_stos): Rename as...
7521 (prepare_stos): this.
7522 (output): Always invoke prepare_states, after all, just don't use it
7523 in the output if you don't need it.
7524
7525 2002-04-07 Akim Demaille <akim@epita.fr>
7526
7527 * src/LR0.c (new_state): Display `nstates' as the name of the
7528 newly created state.
7529 Adjust to initialize first_state and last_state if needed.
7530 Be sure to distinguish the initial from the final state.
7531 (new_states): Create the itemset of the initial state, and use
7532 new_state.
7533 * src/closure.c (closure): Now that the initial state has its
7534 items properly set, there is no need for a special case when
7535 creating `ruleset'.
7536
7537 As a result, now the rule 0, reducing to $axiom, is visible in the
7538 outputs. Adjust the test suite.
7539
7540 * tests/conflicts.at (Solved SR Conflicts)
7541 (Unresolved SR Conflicts): Adjust.
7542 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
7543 * tests/conflicts.at (S/R in initial): New.
7544
7545 2002-04-07 Akim Demaille <akim@epita.fr>
7546
7547 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
7548 the RHS of the rules.
7549 * src/output.c (output_gram): Likewise.
7550
7551 2002-04-07 Akim Demaille <akim@epita.fr>
7552
7553 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
7554 bucket.
7555 Adjust all dependencies.
7556 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
7557 `number' of the buckets too.
7558 * src/gram.h: Include `symtab.h'.
7559 (associativity): Move to...
7560 * src/symtab.h: here.
7561 No longer include `gram.h'.
7562
7563 2002-04-07 Akim Demaille <akim@epita.fr>
7564
7565 * src/gram.h, src/gram.c (rules_rhs_length): New.
7566 (ritem_longest_rhs): Use it.
7567 * src/gram.h (rule_t): `number' is a new member.
7568 * src/reader.c (packgram): Set it.
7569 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
7570 the end of `rules', and count them out of `nrules'.
7571 (reduce_output, dump_grammar): Adjust.
7572 * src/print.c (print_grammar): It is no longer needed to check for
7573 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
7574 * tests/reduce.at (Reduced Automaton): New test.
7575
7576 2002-04-07 Akim Demaille <akim@epita.fr>
7577
7578 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
7579 lacking `+ 1' to nrules, Bison reported as useless a token if it
7580 was used solely to set the precedence of the last rule...
7581
7582 2002-04-07 Akim Demaille <akim@epita.fr>
7583
7584 * data/bison.c++, data/bison.simple: Don't output the current file
7585 name in #line, to avoid useless diffs between two identical
7586 outputs under different names.
7587
7588 2002-04-07 Akim Demaille <akim@epita.fr>
7589
7590 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
7591 Normalize loops to using `< nrules + 1', not `<= nrules'.
7592
7593 2002-04-07 Akim Demaille <akim@epita.fr>
7594
7595 * TODO: Update.
7596
7597 2002-04-07 Akim Demaille <akim@epita.fr>
7598
7599 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
7600 bucket.value as bucket.number.
7601
7602 2002-04-07 Akim Demaille <akim@epita.fr>
7603
7604 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
7605 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
7606 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
7607 RHS, instead of being an index in RITEMS.
7608
7609 2002-04-04 Paul Eggert <eggert@twinsun.com>
7610
7611 * doc/bison.texinfo: Update copyright date.
7612 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
7613 (Symbols): Warn about running Bison in one character set,
7614 but compiling and/or running in an incompatible one.
7615 Warn about character code 256, too.
7616
7617 2002-04-03 Paul Eggert <eggert@twinsun.com>
7618
7619 * src/bison.data (YYSTACK_ALLOC): Depend on whether
7620 YYERROR_VERBOSE is nonzero, not whether it is defined.
7621
7622 Merge changes from bison-1_29-branch.
7623
7624 2002-03-20 Paul Eggert <eggert@twinsun.com>
7625
7626 Merge fixes from Debian bison_1.34-1.diff.
7627
7628 * configure.in (AC_PREREQ): 2.53.
7629
7630 2002-03-20 Akim Demaille <akim@epita.fr>
7631
7632 * src/conflicts.c (log_resolution): Argument `resolution' is const.
7633
7634 2002-03-19 Paul Eggert <eggert@twinsun.com>
7635
7636 * src/bison.simple (YYCOPY): New macro.
7637 (YYSTACK_RELOCATE): Use it.
7638 Remove Type arg; no longer needed. All callers changed.
7639 (yymemcpy): Remove; no longer needed.
7640
7641 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
7642 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
7643
7644 2002-03-19 Akim Demaille <akim@epita.fr>
7645
7646 Test and fix the #line outputs.
7647
7648 * tests/atlocal.at (GCC): New.
7649 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
7650 (Prologue synch line, ,%union synch line, Postprologue synch line)
7651 (Action synch line, Epilogue synch line): New tests.
7652 * src/reader.c (parse_union_decl): Define the muscle stype_line.
7653 * data/bison.simple, data/bison.c++: Use it.
7654
7655 2002-03-19 Akim Demaille <akim@epita.fr>
7656
7657 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
7658 (Solved SR Conflicts, %expect not enough, %expect right)
7659 (%expect too much): Move to...
7660 * tests/conflicts.at: this new file.
7661
7662 2002-03-19 Akim Demaille <akim@epita.fr>
7663
7664 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
7665 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
7666 that we can move to enums for instance.
7667 * src/output.c (token_definitions_output): Output a list of
7668 `token-name, token-number' instead of the #define.
7669 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
7670
7671 2002-03-14 Akim Demaille <akim@epita.fr>
7672
7673 Use Gettext 0.11.1.
7674
7675 2002-03-09 Robert Anisko <robert@lrde.epita.fr>
7676
7677 * data/bison.c++: Make the user able to add members to the generated
7678 parser by subclassing.
7679
7680 2002-03-05 Robert Anisko <robert@lrde.epita.fr>
7681
7682 * src/reader.c (read_additionnal_code): `c' should be an integer, not
7683 a character.
7684 Reported by Nicolas Tisserand and Nicolas Burrus.
7685
7686 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
7687
7688 * src/reader.c: Warn about lacking semi-colons, do not complain.
7689
7690 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
7691
7692 * data/bison.c++: Remove a debug line.
7693
7694 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
7695
7696 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
7697 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
7698 provide a default implementation.
7699
7700 2002-03-04 Akim Demaille <akim@epita.fr>
7701
7702 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
7703 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
7704 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
7705 * tests/semantic.at (Parsing Guards): Similarly.
7706 * src/reader.at (readgram): Complain if the last rule is not ended
7707 with a semi-colon.
7708
7709 2002-03-04 Akim Demaille <akim@epita.fr>
7710
7711 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
7712 * src/closure.c: here.
7713 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
7714 RTC.
7715 * src/warshall.h, src/warshall.c: Remove.
7716 * tests/sets.at (Broken Closure): Adjust.
7717
7718 2002-03-04 Akim Demaille <akim@epita.fr>
7719
7720 * src/output.c (output_skeleton): tempdir is const.
7721 bytes_read is unused.
7722
7723 2002-03-04 Akim Demaille <akim@epita.fr>
7724
7725 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
7726 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
7727 Update.
7728 From Michael Hayes.
7729
7730 2002-03-04 Akim Demaille <akim@epita.fr>
7731
7732 * src/closure.c (closure): `r' is unused.
7733
7734 2002-03-04 Akim Demaille <akim@epita.fr>
7735
7736 * tests/sets.at (Broken Closure): Add the ending `;'.
7737 * src/reader.at (readgram): Complain if a rule is not ended with a
7738 semi-colon.
7739
7740 2002-03-04 Akim Demaille <akim@epita.fr>
7741
7742 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
7743 (count_sr_conflicts): Use bitset_count.
7744 * src/reduce.c (inaccessable_symbols): Ditto.
7745 (bits_size): Remove.
7746 * src/warshall.h, src/warshall.c: Convert to bitsetv.
7747
7748 2002-03-04 Akim Demaille <akim@epita.fr>
7749
7750 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
7751 * src/reduce.c: Remove the `bitset_zero's following the
7752 `bitset_create's, as now it is performed by the latter.
7753
7754 2002-03-04 Akim Demaille <akim@epita.fr>
7755
7756 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
7757 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
7758 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
7759 latest sources from Michael.
7760
7761 2002-03-04 Akim Demaille <akim@epita.fr>
7762
7763 * src/output.c (output): Don't free the grammar.
7764 * src/reader.c (grammar_free): New.
7765 * src/main.c (main): Call it and don't free symtab here.
7766
7767 2002-03-04 Akim Demaille <akim@epita.fr>
7768
7769 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
7770 before returning.
7771 Reported by Benoit Perrot.
7772
7773 2002-03-04 Akim Demaille <akim@epita.fr>
7774
7775 Use bitset operations when possible, not loops over bits.
7776
7777 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
7778 bitset_or.
7779 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
7780 * src/reduce.c (useless_nonterminals): Formatting changes.
7781 * src/warshall.c (TC): Use bitset_or.
7782
7783 2002-03-04 Akim Demaille <akim@epita.fr>
7784
7785 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
7786 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
7787 Ditto.
7788
7789 2002-03-04 Akim Demaille <akim@epita.fr>
7790
7791 * src/lalr.c (F): Now a bitset*.
7792 Adjust all dependencies.
7793
7794 2002-03-04 Akim Demaille <akim@epita.fr>
7795
7796 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
7797 Adjust all dependencies.
7798
7799 2002-03-04 Akim Demaille <akim@epita.fr>
7800
7801 * src/L0.c, src/LR0.h (nstates): Be size_t.
7802 Adjust comparisons (signed vs unsigned).
7803 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
7804 bitset*.
7805 Adjust all dependencies.
7806
7807 2002-03-04 Akim Demaille <akim@epita.fr>
7808
7809 * src/closure.c (firsts): Now, also a bitset.
7810 Adjust all dependencies.
7811 (varsetsize): Remove, now unused.
7812 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
7813
7814 2002-03-04 Akim Demaille <akim@epita.fr>
7815
7816 * src/print.c: Convert to use bitset.h, not hand coded iterations
7817 over ints.
7818
7819 2002-03-04 Akim Demaille <akim@epita.fr>
7820
7821 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
7822
7823 2002-03-04 Akim Demaille <akim@epita.fr>
7824
7825 * src/closure.c (ruleset): Be a bitset.
7826 (rulesetsize): Remove.
7827
7828 2002-03-04 Akim Demaille <akim@epita.fr>
7829
7830 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
7831 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
7832 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
7833 * src/closure.c (fderives): Be an array of bitsets.
7834
7835 2002-02-28 Robert Anisko <robert@lrde.epita.fr>
7836
7837 * data/bison.c++: Merge the two generated headers. Insert a copyright
7838 notice in each output file.
7839
7840 2002-02-28 Akim Demaille <akim@epita.fr>
7841
7842 * data/bison.c++: Copy the prologue of bison.simple to fetch
7843 useful M4 definitions, such as b4_header_guard.
7844
7845 2002-02-25 Akim Demaille <akim@epita.fr>
7846
7847 * src/getargs.c (version): Give the name of the authors, and use a
7848 translator friendly scheme for the bgr
7849 copyright notice.
7850
7851 2002-02-25 Akim Demaille <akim@epita.fr>
7852
7853 * src/output.c (header_output): Remove, now handled completely via
7854 M4.
7855
7856 2002-02-25 Akim Demaille <akim@epita.fr>
7857
7858 * m4/m4.m4: New, from CVS Autoconf.
7859 * configure.in: Invoke it.
7860 * src/output.c (output_skeleton): Use its result instead of the
7861 hard coded name.
7862
7863 2002-02-25 Akim Demaille <akim@epita.fr>
7864
7865 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
7866 Fileutils 4.1.5.
7867 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
7868 * src/output.c (output_skeleton): Use mkstemp to create a real
7869 temporary file.
7870 Move the filling of `skeleton' and its muscle to...
7871 (prepare): here.
7872 (output): Move the definition of the prologue muscle to...
7873 (prepare): here.
7874 * src/system.h (DEFAULT_TMPDIR): New.
7875
7876 2002-02-14 Paul Eggert <eggert@twinsun.com>
7877
7878 Remove the support for C++ namespace cleanliness; it was
7879 causing more problems than it was curing, since it didn't work
7880 properly on some nonstandard C++ compilers. This can wait
7881 for a proper C++ parser.
7882
7883 * NEWS: Document this.
7884 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
7885 of C++, as it's treated like C now.
7886 * src/bison.simple (YYSTD): Remove.
7887 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
7888 Treat C++ just like Standard C instead of trying to support
7889 namespace cleanliness.
7890
7891 2002-02-14 Akim Demaille <akim@epita.fr>
7892
7893 * tests/regression.at (else): Adjust to Andreas' change.
7894
7895 2002-02-14 Akim Demaille <akim@epita.fr>
7896
7897 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
7898
7899 2002-02-13 Andreas Schwab <schwab@suse.de>
7900
7901 * src/output.c (output_rule_data): Don't output NULL, it might
7902 not be defined yet.
7903
7904 2002-02-11 Robert Anisko <robert@lrde.epita.fr>
7905
7906 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
7907 (Copyright notice): Update.
7908
7909 2002-02-11 Akim Demaille <akim@epita.fr>
7910
7911 * tests/regression.at (%nonassoc and eof): Don't include
7912 nonportable headers.
7913
7914 2002-02-08 Robert Anisko <robert@lrde.epita.fr>
7915
7916 * data/bison.c++: Correct error recovery. Make the user able to
7917 initialize the starting location.
7918
7919 2002-02-07 Akim Demaille <akim@epita.fr>
7920
7921 * tests/input.at: New.
7922
7923 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
7924
7925 * data/bison.c++: Replace some direct m4 expansions by constants. Be
7926 more consistent when naming methods and variables. Put preprocessor
7927 directives around tables only needed for debugging.
7928
7929 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
7930
7931 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
7932 C++ parsers.
7933 (yy::b4_name::parse): Use print_.
7934
7935 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
7936
7937 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
7938
7939 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
7940
7941 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
7942 C++ parsers.
7943 (yy::b4_name::parse): Build verbose error messages, and use error_.
7944
7945 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
7946
7947 * data/bison.c++: Fix m4 quoting in comments.
7948
7949 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
7950
7951 * data/bison.c++: Adjust the parser code. Fix some muscles that were
7952 not expanded by m4.
7953
7954 2002-02-05 Akim Demaille <akim@epita.fr>
7955
7956 * data/bison.c++: Adjust to the M4 back end.
7957 More is certainly needed.
7958
7959 2002-02-05 Akim Demaille <akim@epita.fr>
7960
7961 Give a try to M4 as a back end.
7962
7963 * lib/readpipe.c: New, from wdiff.
7964 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
7965 BISON_HAIRY.
7966 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
7967 specific values. Now it is m4 that performs the lookup.
7968 * src/parse-skel.y: Remove.
7969 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
7970 * src/output.c (actions_output, guards_output)
7971 (token_definitions_output): No longer keeps track of the output
7972 line number, hence remove the second argument.
7973 (guards_output): Check against the guard member of a rule, not the
7974 action member.
7975 Adjust callers.
7976 (output_skeleton): Don't look for the skeleton location, let m4 do
7977 that.
7978 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
7979 file will be used.
7980 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
7981 (prepare): Given that for the time being changesyntax is not
7982 usable in M4, rename the muscles using `-' to `_'.
7983 Define `defines_flag', `output_parser_name' and `output_header_name'.
7984 * src/output.h (actions_output, guards_output)
7985 (token_definitions_output): Adjust prototypes.
7986 * src/scan-skel.l: Instead of scanning the skeletons, it now
7987 processes the output of m4: `__oline__' and `#output'.
7988 * data/bison.simple: Adjust to be used by M4(sugar).
7989 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
7990 to date.
7991 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
7992 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
7993 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
7994 shamelessly stolen from CVS Autoconf.
7995
7996 2002-02-05 Akim Demaille <akim@epita.fr>
7997
7998 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
7999 * configure.in: Check for the declarations of free and malloc.
8000 * src/muscle_tab.c: Adjust.
8001
8002 2002-02-05 Akim Demaille <akim@epita.fr>
8003
8004 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
8005 which have no values.
8006
8007 2002-02-05 Akim Demaille <akim@epita.fr>
8008
8009 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
8010 * data/: here.
8011
8012 2002-01-29 Paul Eggert <eggert@twinsun.com>
8013
8014 * src/bison.simple (YYSIZE_T): Do not define merely because
8015 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
8016 On some platforms, <alloca.h> does not declare YYSTD (size_t).
8017
8018 2002-01-27 Akim Demaille <akim@epita.fr>
8019
8020 Fix `%nonassoc and eof'.
8021
8022 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
8023 which were not properly copied! Replace
8024 memcpy (res->errs, src->errs, src->nerrs);
8025 with
8026 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
8027 !!!
8028 * tests/regression.at (%nonassoc and eof): Adjust to newest
8029 Autotest: `.' is not in the PATH.
8030
8031 2002-01-27 Akim Demaille <akim@epita.fr>
8032
8033 * tests/sets.at (AT_EXTRACT_SETS): New.
8034 (Nullable): Use it.
8035 (Firsts): New.
8036
8037 2002-01-26 Akim Demaille <akim@epita.fr>
8038
8039 * tests/actions.at, tests/calc.at, tests/headers.at,
8040 * tests/torture.at: Adjust to the newest Autotest which no longer
8041 forces `.' in the PATH.
8042
8043 2002-01-25 Akim Demaille <akim@epita.fr>
8044
8045 * tests/regression.at (%nonassoc and eof): New.
8046 Suggested by Robert Anisko.
8047
8048 2002-01-24 Akim Demaille <akim@epita.fr>
8049
8050 Bison dumps core when trying to complain about broken input files.
8051 Reported by Cris van Pelt.
8052
8053 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
8054 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
8055 into...
8056 (Invalid inputs): Strengthen: exercise parse_percent_token.
8057
8058 2002-01-24 Robert Anisko <robert.anisko@epita.fr>
8059
8060 * src/Makefile.am: Add bison.c++.
8061 * src/bison.c++: New skeleton.
8062
8063 2002-01-21 Paolo Bonzini <bonzini@gnu.org>
8064
8065 * po/it.po: New.
8066
8067 2002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
8068
8069 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
8070
8071 2002-01-20 Marc Autret <marc@gnu.org>
8072
8073 * src/files.c (compute_output_file_names): Fix
8074
8075 2002-01-20 Marc Autret <marc@gnu.org>
8076
8077 * tests/output.at: New test.
8078 * src/files.c (compute_base_names): Don't map extensions when
8079 the YACC flag is set, use defaults.
8080 Reported by Evgeny Stambulchik.
8081
8082 2002-01-20 Marc Autret <marc@gnu.org>
8083
8084 * src/system.h: Need to define __attribute__ away for non-GCC
8085 compilers as well (i.e. the vendor C compiler).
8086 Suggested by Albert Chin-A-Young.
8087
8088 2002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
8089
8090 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
8091 canonical definition.
8092 * src/system.h: Use the canonical definition for PARAMS (avoids
8093 a conflict with the macro from lib/hash.h).
8094
8095 2002-01-11 Akim Demaille <akim@epita.fr>
8096
8097 * configure.in: Use AC_FUNC_STRNLEN.
8098 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
8099
8100 2002-01-09 Akim Demaille <akim@epita.fr>
8101
8102 * src/files.c, src/files.h (output_infix): New.
8103 (tab_extension): Remove.
8104 (compute_base_names): Compute the former, drop the latter.
8105 * src/output.c (prepare): Insert the muscles `output-infix', and
8106 `output-suffix'.
8107 * src/parse-skel.y (string, string.1): New.
8108 (section.header): Use it.
8109 (section.yacc): Remove.
8110 (prefix): Remove too.
8111 * src/scan-skel.l: Adjust.
8112 * src/bison.simple, src/bison.hairy: Adjust.
8113
8114 2002-01-09 Akim Demaille <akim@epita.fr>
8115
8116 * configure.in (WERROR_CFLAGS): Compute it.
8117 * src/Makefile.am (CFLAGS): Pass it.
8118 * tests/atlocal.in (CFLAGS): Idem.
8119 * src/files.c: Fix a few warnings.
8120 (get_extension_index): Remove, unused.
8121
8122 2002-01-08 Akim Demaille <akim@epita.fr>
8123
8124 * src/getargs.c (AS_FILE_NAME): New.
8125 (getargs): Use it to convert DOSish file names.
8126 * src/files.c (base_name): Rename as full_base_name to avoid
8127 clashes with `base_name ()'.
8128 (filename_split): New.
8129 (compute_base_names): N-th rewrite, using filename_split.
8130
8131 2002-01-08 Akim Demaille <akim@epita.fr>
8132
8133 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
8134 New, stolen from the Fileutils 4.1.
8135 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
8136 * configure.in: Check for the presence of memrchr, and of its
8137 prototype.
8138
8139 2002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
8140
8141 * lib/hash.h (__P): Added definition for this macro.
8142 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
8143 BUILT_SOURCES, to ensure they are generated first.
8144 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
8145 %error-verbose to allow bootstrapping with bison 1.30x.
8146
8147 2002-01-06 Akim Demaille <akim@epita.fr>
8148
8149 * src/reader.c (parse_braces): Don't fetch the next char, the
8150 convention is to fetch on entry.
8151 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
8152 'switch' without a following semicolon.
8153 * tests/regression.at (braces parsing): New.
8154
8155 2002-01-06 Akim Demaille <akim@epita.fr>
8156
8157 Bison is dead wrong in its RR conflict reports.
8158
8159 * tests/torture.at (GNU Cim Grammar): New.
8160 * src/conflicts.c (count_rr_conflicts): Fix.
8161
8162 2002-01-06 Akim Demaille <akim@epita.fr>
8163
8164 Creating package.m4 from configure.ac causes too many problems.
8165
8166 * tests/Makefile.am (package.m4): Create it by hand,
8167 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
8168
8169 2002-01-06 Akim Demaille <akim@epita.fr>
8170
8171 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
8172 skeleton.h.
8173
8174 2002-01-04 Paul Eggert <eggert@twinsun.com>
8175
8176 * doc/bison.texinfo (Debugging):
8177 Remove YYSTDERR; it's no longer defined or used.
8178 Also, s/cstdio.h/cstdio/.
8179
8180 2002-01-03 Akim Demaille <akim@epita.fr>
8181
8182 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
8183
8184 2002-01-03 Akim Demaille <akim@epita.fr>
8185
8186 * src/parse-skel.y (process_skeleton): Don't bind the parser's
8187 tracing code to --trace, wait for a better --trace option, with
8188 args.
8189
8190 2002-01-03 Akim Demaille <akim@epita.fr>
8191
8192 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
8193 The ISO C++ standard is extremely clear about it: stderr is
8194 considered a macro, not a regular symbol (see table 94 `Header
8195 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
8196 Therefore std:: does not apply to it. It still does with fprintf.
8197 Also, s/cstdio.h/cstdio/.
8198
8199 2002-01-03 Akim Demaille <akim@epita.fr>
8200
8201 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
8202 for non system headers.
8203
8204 2002-01-02 Akim Demaille <akim@epita.fr>
8205
8206 Equip the skeleton chain with location tracking, runtime trace,
8207 pure parser and scanner.
8208
8209 * src/parse-skel.y: Request a pure parser, locations, and prefix
8210 renaming.
8211 (%union): Having several members with the same type does not help
8212 type mismatches, simplify.
8213 (YYPRINT, yyprint): New.
8214 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
8215 (skel_error): this.
8216 Handle locations.
8217 * src/scan-skel.l: Adjust to these changes.
8218 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
8219 (LOCATION_PRINT, skel_control_t): New.
8220
8221 2001-12-30 Akim Demaille <akim@epita.fr>
8222
8223 * src/parse-skel.y: Get rid of the shift/reduce conflict:
8224 replace `gb' with BLANKS.
8225 * src/scan-skel.l: Adjust.
8226
8227 2001-12-30 Akim Demaille <akim@epita.fr>
8228
8229 * src/system.h: We don't need nor want bcopy.
8230 Throw away MS-DOS crap: we don't need getpid.
8231 * configure.in: We don't need strndup. It was even causing
8232 problems: because Flex includes the headers *before* us,
8233 _GNU_SOURCE is not defined by config.h, and therefore strndup was
8234 not visible.
8235 * lib/xstrndup.c: New.
8236 * src/scan-skel.l: Use it.
8237 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
8238 * src/parse-skel.y: Use %directives instead of #defines.
8239
8240 2001-12-30 Akim Demaille <akim@epita.fr>
8241
8242 * src/skeleton.h: New.
8243 * src/output.c (output_parser, output_master_parser): Remove, dead
8244 code.
8245 * src/output.h (get_lines_number, actions_output, guards_output)
8246 (token_definitions_output): Prototype them.
8247 * src/parse-skel.y: Add the license notice.
8248 Include output.h and skeleton.h.
8249 (process_skeleton): Returns void, and takes a single parameter.
8250 * src/scan-skel.l: Add the license notice.
8251 Include skeleton.h.
8252 Don't use %option yylineno: it seems that then Flex imagines
8253 REJECT has been used, and therefore it won't reallocate its
8254 buffers (which makes no other sense to me than a bug). It results
8255 in warnings for `unused: yy_flex_realloc'.
8256
8257 2001-12-30 Robert Anisko <robert.anisko@epita.fr>
8258
8259 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
8260 (MUSCLE_INSERT_PREFIX): ...to there.
8261 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
8262 (MUSCLE_INSERT_PREFIX): Move from here...
8263
8264 * src/bison.hairy: Add a section directive. Put braces around muscle
8265 names. This parser skeleton is still broken, but Bison should not
8266 choke on a bad muscle 'syntax'.
8267 * src/bison.simple: Add a section directive. Put braces around muscle
8268 names.
8269
8270 * src/files.h (strsuffix, stringappend): Add declarations.
8271 (tab_extension): Add declaration.
8272 (short_base_name): Add declaration.
8273
8274 * src/files.c (strsuffix, stringappend): No longer static. These
8275 functions are used in the skeleton parser.
8276 (tab_extension): New.
8277 (compute_base_names): Use the computations done in this function
8278 to guess if the generated parsers should have '.tab' in their
8279 names.
8280 (short_base_name): No longer static.
8281
8282 * src/output.c (output_skeleton): New.
8283 (output): Disable call to output_master_parser, and give a try to
8284 a new skeleton handling system.
8285 (guards_output, actions_output): No longer static.
8286 (token_definitions_output, get_lines_number): No longer static.
8287
8288 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
8289
8290 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
8291 parse-skel.y.
8292
8293 * src/parse-skel.y: New file.
8294 * src/scan-skel.l: New file.
8295
8296 2001-12-29 Akim Demaille <akim@epita.fr>
8297
8298 %name-prefix is broken.
8299
8300 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
8301 Adjust all dependencies.
8302 * tests/headers.at (export YYLTYPE): Strengthen this test: use
8303 %name-prefix.
8304
8305 Renaming yylval but not yylloc is not consistent. Now we do.
8306
8307 * src/bison.simple: Prefix yylloc if used.
8308 * doc/bison.texinfo (Decl Summary): Document that.
8309
8310 2001-12-29 Akim Demaille <akim@epita.fr>
8311
8312 * doc/bison.texinfo: Promote `%long-directive' over
8313 `%long_directive'.
8314 Remove all references to fixed-output-files, yacc is enough.
8315
8316 2001-12-29 Akim Demaille <akim@epita.fr>
8317
8318 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
8319 user prologue. These are defaults.
8320 * tests/actions.at (Mid-rule actions): Make sure the user can
8321 define YYDEBUG and YYERROR_VERBOSE.
8322
8323 2001-12-29 Akim Demaille <akim@epita.fr>
8324
8325 * src/output.c (header_output): Don't forget to export YYLTYPE and
8326 yylloc.
8327 * tests/headers.at (export YYLTYPE): New, make sure it does.
8328 * tests/regression.at (%union and --defines, Invalid CPP headers):
8329 Move to...
8330 * tests/headers.at: here.
8331
8332 2001-12-29 Akim Demaille <akim@epita.fr>
8333
8334 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
8335
8336 2001-12-29 Akim Demaille <akim@epita.fr>
8337
8338 * tests/actions.at (Mid-rule actions): Output on a single line
8339 instead of several.
8340
8341 2001-12-29 Akim Demaille <akim@epita.fr>
8342
8343 * doc/bison.texinfo: Formatting changes.
8344
8345 2001-12-29 Akim Demaille <akim@epita.fr>
8346
8347 Don't store the token defs in a muscle, just be ready to output it
8348 on command. Now possible via `symbols'. Fixes a memory leak.
8349
8350 * src/output.c (token_definitions_output): New.
8351 (output_parser, header_output): Use it.
8352 * src/reader.c (symbols_save): Remove.
8353
8354 2001-12-29 Akim Demaille <akim@epita.fr>
8355
8356 * src/bison.simple: Do not provide a default for YYSTYPE and
8357 YYLTYPE before the user's prologue. Otherwise it's hardly... a
8358 default.
8359
8360 2001-12-29 Akim Demaille <akim@epita.fr>
8361
8362 Mid-rule actions are simply... ignored!
8363
8364 * src/reader.c (readgram): Be sure to attach mid-rule actions to
8365 the empty-rule associated to the dummy symbol, not to the host
8366 rule.
8367 * tests/actions.at (Mid-rule actions): New.
8368
8369 2001-12-29 Akim Demaille <akim@epita.fr>
8370
8371 Memory leak.
8372
8373 * src/reader.c (reader): Free grammar.
8374
8375 2001-12-29 Akim Demaille <akim@epita.fr>
8376
8377 Memory leak.
8378
8379 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
8380 since it allocates it for each state, although only one is needed.
8381 (allocate_storage): Do it here.
8382
8383 2001-12-29 Akim Demaille <akim@epita.fr>
8384
8385 * src/options.h, src/options.c (create_long_option_table): Rename
8386 as...
8387 (long_option_table_new): this, with a clearer prototype.
8388 (percent_table): Remove, unused,
8389 * src/getargs.c (getargs): Adjust.
8390
8391 2001-12-29 Akim Demaille <akim@epita.fr>
8392
8393 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
8394 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
8395 as states.
8396
8397 2001-12-29 Akim Demaille <akim@epita.fr>
8398
8399 * src/lalr.c (build_relations): Rename `states' as `states1'.
8400 Sorry, I don't understand exactly what it is, no better name...
8401
8402 2001-12-29 Akim Demaille <akim@epita.fr>
8403
8404 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
8405 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
8406 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
8407 as rules.
8408
8409 2001-12-29 Akim Demaille <akim@epita.fr>
8410
8411 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
8412 ago.
8413
8414 2001-12-29 Akim Demaille <akim@epita.fr>
8415
8416 * src/reader.c, src/reader.h (user_toknums): Remove.
8417 Adjust all users to use symbols[i]->user_token_number.
8418
8419 2001-12-29 Akim Demaille <akim@epita.fr>
8420
8421 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
8422 Adjust all users to use symbols[i]->prec or ->assoc.
8423
8424 2001-12-29 Akim Demaille <akim@epita.fr>
8425
8426 * src/reader.c, src/reader.h (tags): Remove.
8427 Adjust all users to use symbols[i]->tag.
8428
8429 2001-12-29 Akim Demaille <akim@epita.fr>
8430
8431 * src/gram.h, src/gram.c (symbols): New, similar to state_table
8432 and rule_table.
8433 * src/reader.c (packsymbols): Fill this table.
8434 Drop sprec.
8435 * src/conflicts.c (resolve_sr_conflict): Adjust.
8436 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
8437 single table.
8438 Use symbols[i]->tag instead of tags[i].
8439
8440 2001-12-29 Akim Demaille <akim@epita.fr>
8441
8442 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
8443 In addition, put a comment in there, to replace...
8444 * tests/regression.at (%union and C comments): Remove.
8445
8446 2001-12-29 Akim Demaille <akim@epita.fr>
8447
8448 * tests/regression.at (Web2c Actions): Blindly move the actual
8449 output as expected output. The contents *seem* right to me, but I
8450 can't pretend reading perfectly parser tables... Nonetheless, all
8451 the other tests pass correctly, the table look OK, even though the
8452 presence of `$axiom' is to be noted: AFAICS it is useless (but
8453 harmless).
8454
8455 2001-12-29 Akim Demaille <akim@epita.fr>
8456
8457 * src/reader.c (readgram): Don't add the rule 0 if there were no
8458 rules read. In other words, add it _after_ having performed
8459 grammar sanity checks.
8460 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
8461
8462 2001-12-29 Akim Demaille <akim@epita.fr>
8463
8464 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
8465 visible, and some states have now a different number.
8466
8467 2001-12-29 Akim Demaille <akim@epita.fr>
8468
8469 * src/reader.c (readgram): Bind the initial rule's lineno to that
8470 of the first rule.
8471 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
8472 (Solved SR Conflicts): Adjust rule 0's line number.
8473
8474 2001-12-29 Akim Demaille <akim@epita.fr>
8475
8476 Fix the `GAWK Grammar' failure.
8477
8478 * src/LR0.c (final_state): Initialize to -1 so that we do compute
8479 the reductions of the first state which was mistakenly confused
8480 with the final state because precisely final_state was initialized
8481 to 0.
8482 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
8483 now noticed by Bison.
8484 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
8485 have a reduction on $default.
8486
8487 2001-12-29 Akim Demaille <akim@epita.fr>
8488
8489 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
8490 rule line numbers.
8491 * src/closure.c (print_closure): Likewise.
8492 * src/derives.c (print_derives): Likewise.
8493 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
8494 now.
8495
8496 2001-12-29 Akim Demaille <akim@epita.fr>
8497
8498 * src/lalr.c (lookaheads_print): New.
8499 (lalr): Call it when --trace-flag.
8500 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
8501 are dumped.
8502
8503 2001-12-29 Akim Demaille <akim@epita.fr>
8504
8505 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
8506 when walking through ritem, even via rule->rhs.
8507 * src/reduce.c (dump_grammar, useful_production, reduce_output)
8508 (useful_production, useless_nonterminals): Likewise.
8509 (reduce_grammar_tables): Likewise, plus update nritems.
8510 * src/nullable.c (set_nullable): Likewise.
8511 * src/lalr.c (build_relations): Likewise.
8512 * tests/sets.at (Nullable): Adjust.
8513 Fortunately, now, the $axiom is no longer nullable.
8514
8515 2001-12-29 Akim Demaille <akim@epita.fr>
8516
8517 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
8518 the 0-sentinel.
8519 * src/gram.c (ritem_longest_rhs): Likewise.
8520 * src/reduce.c (nonterminals_reduce): Likewise.
8521 * src/print_graph.c (print_graph): Likewise.
8522 * src/output.c (output_rule_data): Likewise.
8523 * src/nullable.c (set_nullable): Likewise.
8524
8525 2001-12-29 Akim Demaille <akim@epita.fr>
8526
8527 * src/output.c: Comment changes.
8528
8529 2001-12-27 Paul Eggert <eggert@twinsun.com>
8530
8531 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
8532 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
8533 Sparc, as they were causing more porting problems than the
8534 (minor) performance improvement was worth.
8535
8536 Also, catch up with 1.31's YYSTD.
8537
8538 2001-12-27 Akim Demaille <akim@epita.fr>
8539
8540 * src/output.c (output_gram): Rely on nritems, not the
8541 0-sentinel. See below.
8542 Use -1 as separator, not 0.
8543 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
8544 Rely on -1 as separator in yyrhs, instead of 0.
8545 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
8546 twice `Now at end of input', therefore there are two lines less to
8547 expect.
8548
8549 2001-12-27 Akim Demaille <akim@epita.fr>
8550
8551 * tests/regression.at (Unresolved SR Conflicts):
8552 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
8553 below.
8554
8555 2001-12-27 Akim Demaille <akim@epita.fr>
8556
8557 * src/LR0.c (new_state): Recognize the final state by the fact it
8558 is reached by eoftoken.
8559 (insert_start_shifting_state, insert_eof_shifting_state)
8560 (insert_accepting_state, augment_automaton): Remove, since now
8561 these states are automatically computed from the initial state.
8562 (generate_states): Adjust.
8563 * src/print.c: When reporting a rule number to the user, substract
8564 1, so that the axiom rule is rule 0, and the first user rule is 1.
8565 * src/reduce.c: Likewise.
8566 * src/print_graph.c (print_core): For the time being, just as for
8567 the report, depend upon --trace-flags to dump the full set of
8568 items.
8569 * src/reader.c (readgram): Once the grammar read, insert the rule
8570 0: `$axiom: START-SYMBOL $'.
8571 * tests/set.at: Adjust: rule 0 is now displayed, and since the
8572 number of the states has changed (the final state is no longer
8573 necessarily the last), catch up.
8574
8575 2001-12-27 Akim Demaille <akim@epita.fr>
8576
8577 Try to make the use of the eoftoken valid. Given that its value
8578 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
8579 is used instead of > 0 where appropriate, (ii), depend upon nritems
8580 instead of the 0-sentinel.
8581
8582 * src/gram.h, src/gram.c (nritems): New.
8583 Expected to be duplication of nitems, but for the time being...
8584 * src/reader.c (packgram): Assert nritems and nitems are equal.
8585 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
8586 * src/closure.c (print_closure, print_fderives): Likewise.
8587 * src/gram.c (ritem_print): Likewise.
8588 * src/print.c (print_core, print_grammar): Likewise.
8589 * src/print_graph.c: Likewise.
8590
8591 2001-12-27 Akim Demaille <akim@epita.fr>
8592
8593 * src/main.c (main): If there are complains after grammar
8594 reductions, then output the report anyway if requested, then die.
8595 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
8596 * src/reader.c (eoftoken): New.
8597 (parse_token_decl): If the token being defined has value `0', it
8598 is the eoftoken.
8599 (packsymbols): No longer hack `tags' to insert `$' by hand.
8600 Be sure to preserve the value of the eoftoken.
8601 (reader): Make sure eoftoken is defined.
8602 Initialize nsyms to 0: now eoftoken is created just like the others.
8603 * src/print.c (print_grammar): Don't special case the eof token.
8604 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
8605 lie anyway, albeit pleasant.
8606 * tests/calc.at: Exercise error messages with eoftoken.
8607 Change the grammar so that empty input is invalid.
8608 Adjust expectations.
8609 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
8610
8611 2001-12-27 Akim Demaille <akim@epita.fr>
8612
8613 * configure.in: Check the protos of strchr ans strspn.
8614 Replace strchr if needed.
8615 * src/system.h: Provide the protos of strchr, strspn and memchr if
8616 missing.
8617 * lib/strchr.c: New.
8618 * src/reader.c (symbols_save): Use strchr.
8619
8620 2001-12-27 Akim Demaille <akim@epita.fr>
8621
8622 * src/print.c, src/print_graph.c (escape): New.
8623 Use it to quote the TAGS outputs.
8624 * src/print_graph.c (print_state): Now errors are in red, and
8625 reductions in green.
8626 Prefer high to wide: output the state number on a line of its own.
8627
8628 2001-12-27 Akim Demaille <akim@epita.fr>
8629
8630 * src/state.h, src/state.c (reductions_new): New.
8631 * src/LR0.c (set_state_table): Let all the states have a
8632 `reductions', even if reduced to 0.
8633 (save_reductions): Adjust.
8634 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
8635 * src/print.c (print_reductions, print_actions): Adjust.
8636 * src/output.c (action_row): Adjust.
8637
8638 2001-12-27 Akim Demaille <akim@epita.fr>
8639
8640 * src/state.h, src/state.c (errs_new, errs_dup): New.
8641 * src/LR0.c (set_state_table): Let all the states have an errs,
8642 even if reduced to 0.
8643 * src/print.c (print_errs, print_reductions): Adjust.
8644 * src/output.c (output_actions, action_row): Adjust.
8645 * src/conflicts.c (resolve_sr_conflict): Adjust.
8646
8647 2001-12-27 Akim Demaille <akim@epita.fr>
8648
8649 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
8650
8651 2001-12-27 Akim Demaille <akim@epita.fr>
8652
8653 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
8654 * src/print.c: here.
8655 (lookaheadset, shiftset): New, used as additional storage by
8656 print_reductions.
8657 (print_results): Adjust.
8658 (print_shifts, print_gotos, print_errs): New, extracted from...
8659 (print_actions): here.
8660 * src/print_graph.c (print_actions): Remove dead code.
8661
8662 2001-12-27 Akim Demaille <akim@epita.fr>
8663
8664 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
8665 `$n' and `@n'.
8666
8667 2001-12-27 Akim Demaille <akim@epita.fr>
8668
8669 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
8670 (build_relations): Adjust.
8671
8672 2001-12-27 Akim Demaille <akim@epita.fr>
8673
8674 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
8675 duplication.
8676
8677 2001-12-27 Akim Demaille <akim@epita.fr>
8678
8679 * src/reader.c (packgram): Catch nitems overflows.
8680
8681 2001-12-27 Akim Demaille <akim@epita.fr>
8682
8683 * src/files.c, src/files.h (guard_obstack): Remove.
8684 * src/output.c (output): Adjust.
8685 * src/reader.c (parse_braces): New, factoring...
8686 (copy_action, copy_guard): these two which are renamed as...
8687 (parse_action, parse_guard): these.
8688 As a voluntary consequence, using braces around guards is now
8689 mandatory.
8690
8691 2001-12-27 Akim Demaille <akim@epita.fr>
8692
8693 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
8694 * src/reader.c (symbol_list): `guard' and `guard_line' are new
8695 members.
8696 (symbol_list_new): Adjust.
8697 (copy_action): action_line is the first line, not the last.
8698 (copy_guard): Just as for actions, store the `action' only, not
8699 the switch/case/break flesh.
8700 Don't parse the user action that might follow the guard, let...
8701 (readgram): do it, i.e., now, there can be an action after a
8702 guard.
8703 In other words the guard is just explicitly optional.
8704 (packgram): Adjust.
8705 * src/output.c (guards_output): New.
8706 (output_parser): Call it when needed.
8707 (output): Also free the guard and attrs obstacks.
8708 * src/files.c, src/files.h (obstack_save): Remove.
8709 (output_files): Remove.
8710 As a result, if one needs the former `.act' file, using an
8711 appropriate skeleton which requires actions and guards is now
8712 required.
8713 * src/main.c (main): Adjust.
8714 * tests/semantic.at: New.
8715 * tests/regression.at: Use `input.y' as input file name.
8716 Avoid 8+3 problems by requiring input.c when the test needs the
8717 parser.
8718
8719 2001-12-27 Akim Demaille <akim@epita.fr>
8720
8721 * src/reader.c (symbol_list_new): Be sure to initialize all the
8722 fields.
8723
8724 2001-12-27 Akim Demaille <akim@epita.fr>
8725
8726 All the hacks using a final pseudo state are now useless.
8727
8728 * src/LR0.c (set_state_table): state_table holds exactly nstates.
8729 * src/lalr.c (nLA): New.
8730 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
8731 instead of lookaheadsp from the pseudo state (nstate + 1).
8732
8733 2001-12-27 Akim Demaille <akim@epita.fr>
8734
8735 * src/output.c (action_row, token_actions): Use a state_t instead
8736 of a integer, and nlookaheads instead of the following state's
8737 lookaheadsp.
8738
8739 2001-12-27 Akim Demaille <akim@epita.fr>
8740
8741 * src/conflicts.c (log_resolution, flush_shift)
8742 (resolve_sr_conflict, set_conflicts, solve_conflicts)
8743 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
8744 (conflicts_print, print_reductions): Use a state_t instead of an
8745 integer when referring to a state.
8746 As much as possible, depend upon nlookaheads, instead of the
8747 `lookaheadsp' member of the following state (since lookaheads of
8748 successive states are successive, the difference between state n + 1
8749 and n served as the number of lookaheads for state n).
8750 * src/lalr.c (add_lookback_edge): Likewise.
8751 * src/print.c (print_core, print_actions, print_state)
8752 (print_results): Likewise.
8753 * src/print_graph.c (print_core, print_actions, print_state)
8754 (print_graph): Likewise.
8755 * src/conflicts.h: Adjust.
8756
8757 2001-12-27 Akim Demaille <akim@epita.fr>
8758
8759 * src/bison.hairy: Formatting/comment changes.
8760 ANSIfy.
8761 Remove `register' indications.
8762 Add plenty of `static'.
8763
8764 2001-12-27 Akim Demaille <akim@epita.fr>
8765
8766 * src/output.c (prepare): Drop the muscle `ntbase' which
8767 duplicates ntokens.
8768 * src/bison.simple: Formatting/comment changes.
8769 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
8770 is an undocumented synonym.
8771
8772 2001-12-22 Akim Demaille <akim@epita.fr>
8773
8774 * src/output.c (output_table_data): Change the prototype to use
8775 `int' for array ranges: some invocations do pass an int, not a
8776 short.
8777 Reported by Wayne Green.
8778
8779 2001-12-22 Akim Demaille <akim@epita.fr>
8780
8781 Some actions of web2c.y are improperly triggered.
8782 Reported by Mike Castle.
8783
8784 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
8785 * tests/regression.at (Web2c): Rename as...
8786 (Web2c Report): this.
8787 (Web2c Actions): New.
8788
8789 2001-12-22 Akim Demaille <akim@epita.fr>
8790
8791 Reductions in web2c.y are improperly reported.
8792 Reported by Mike Castle.
8793
8794 * src/conflicts.c (print_reductions): Fix.
8795 * tests/regression.at (Web2c): New.
8796
8797 2001-12-18 Akim Demaille <akim@epita.fr>
8798
8799 Some host fail on `assert (!"foo")', which expands to
8800 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
8801 Reported by Nelson Beebee.
8802
8803 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
8804 `#define it_succeeded 0' and `assert (it_succeeded)'.
8805
8806 2001-12-17 Marc Autret <autret_m@epita.fr>
8807
8808 * src/bison.simple: Don't hard code the skeleton line and filename.
8809 * src/output.c (output_parser): Rename 'line' as 'output_line'.
8810 New line counter 'skeleton_line' (skeleton-line muscle).
8811
8812 2001-12-17 Paul Eggert <eggert@twinsun.com>
8813
8814 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
8815 YYDEBUG must be defined to a nonzero value.
8816
8817 * src/bison.simple (yytname): Do not assume that the user defines
8818 YYDEBUG to a properly parenthesized expression.
8819
8820 2001-12-17 Akim Demaille <akim@epita.fr>
8821
8822 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
8823 nlookaheads is a new member.
8824 Adjust all users.
8825 * src/lalr.h (nlookaheads): Remove this orphan declaration.
8826 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
8827 state.
8828
8829 2001-12-17 Akim Demaille <akim@epita.fr>
8830
8831 * src/files.h, src/files.c (open_files, close_files): Remove.
8832 * src/main.c (main): Don't open/close files, nor invoke lex_free,
8833 let...
8834 * src/reader.c (reader): Do it.
8835
8836 2001-12-17 Akim Demaille <akim@epita.fr>
8837
8838 * src/conflicts.c (print_reductions): Formatting changes.
8839
8840 2001-12-17 Akim Demaille <akim@epita.fr>
8841
8842 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
8843 (flush_reduce): New.
8844 (resolve_sr_conflict): Adjust.
8845
8846 2001-12-17 Akim Demaille <akim@epita.fr>
8847
8848 * src/output.c (output_obstack): Be static and rename as...
8849 (format_obstack): this, to avoid any confusion with files.c's
8850 output_obstack.
8851 * src/reader.h (muscle_obstack): Move to...
8852 * src/output.h: here, since it's defined in output.c.
8853
8854 2001-12-17 Akim Demaille <akim@epita.fr>
8855
8856 * src/output.c (action_row, save_column, default_goto)
8857 (sort_actions, matching_state, pack_vector): Better variable
8858 locality.
8859
8860 2001-12-17 Akim Demaille <akim@epita.fr>
8861
8862 * src/output.c: Various formatting changes.
8863
8864 2001-12-17 Akim Demaille <akim@epita.fr>
8865
8866 * src/files.c (output_files): Free the output_obstack.
8867 * src/main.c (main): Call print and print_graph conditionally.
8868 * src/print.c (print): Work unconditionally.
8869 * src/print_graph.c (print_graph): Work unconditionally.
8870 * src/conflicts.c (log_resolution): Output only if verbose_flag.
8871
8872 2001-12-16 Marc Autret <autret_m@epita.fr>
8873
8874 * src/output.c (actions_output): Fix. When we use %no-lines,
8875 there is one less line per action.
8876
8877 2001-12-16 Marc Autret <autret_m@epita.fr>
8878
8879 * src/bison.simple: Remove a useless #line directive.
8880 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
8881 * src/output.c (get_lines_number): New.
8882 (output_parser): Adjust, now takes care about the lines of a
8883 output muscles.
8884 Fix line numbering.
8885 (actions_output): Computes the number of lines taken by actions.
8886 (output_master_parser): Insert new skeleton which is the name of
8887 the output parser file name.
8888
8889 2001-12-15 Marc Autret <autret_m@epita.fr>
8890
8891 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
8892
8893 2001-12-15 Marc Autret <autret_m@epita.fr>
8894
8895 * src/output.c (output_gram): Keep track of the hairy one.
8896
8897 2001-12-15 Akim Demaille <akim@epita.fr>
8898
8899 Make `make distcheck' work.
8900
8901 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
8902 system.h which uses libgettext.h.
8903
8904 2001-12-15 Akim Demaille <akim@epita.fr>
8905
8906 * src/nullable.c (set_nullable): Useless rules must be skipped,
8907 otherwise, since we range over their symbols, we might look at a
8908 nonterminal which no longer ``exists'', i.e., it is not counted in
8909 `nvars', hence we overflow our arrays.
8910
8911 2001-12-15 Akim Demaille <akim@epita.fr>
8912
8913 The header can also be produced directly, without any obstack!
8914 Yahoo!
8915
8916 * src/files.c, src/files.h (defines_obstack): Remove.
8917 (compute_header_macro): Global.
8918 (defines_obstack_save): Remove.
8919 * src/reader.c (parse_union_decl): No longer output to
8920 defines_obstack: its content can be found in the `stype' muscle
8921 anyway.
8922 (output_token_translations): Merge into...
8923 (symbols_output): this.
8924 Rename as...
8925 (symbols_save): this.
8926 (reader): Adjust.
8927 * src/output.c (header_output): New.
8928 (output): Call it.
8929
8930 2001-12-15 Akim Demaille <akim@epita.fr>
8931
8932 * src/reader.c (parse_union_decl): Instead of handling two obstack
8933 simultaneously, use one to define the `stype' muscle, and use the
8934 value of the latter to fill defines_obstack.
8935 (copy_comment): Remove.
8936 (copy_comment2): Work for a single obstack.
8937 Rename as...
8938 (copy_comment): this.
8939
8940 2001-12-15 Akim Demaille <akim@epita.fr>
8941
8942 * src/lex.c, src/lex.h (xgetc): No longer static.
8943 * src/reader.c (parse_union_decl): Revamp.
8944
8945 2001-12-15 Akim Demaille <akim@epita.fr>
8946
8947 Still making progress in separating Bison into (i) input, (ii)
8948 process, (iii) output: now we can directly output the parser file
8949 without using table_obstack at all.
8950
8951 * src/files.c, src/files.h (table_obstack): Bye bye.
8952 (parser_file_name): New.
8953 * src/files.c (compute_output_file_names): Compute it.
8954 * src/output.c (actions_output, output_parser)
8955 (output_master_parser): To a file instead of an obstack.
8956
8957 2001-12-15 Akim Demaille <akim@epita.fr>
8958
8959 Attach actions to rules, instead of pre-outputting them to
8960 actions_obstack.
8961
8962 * src/gram.h (rule_t): action and action_line are new members.
8963 * src/reader.c (symbol_list): Likewise.
8964 (copy_action): Save the actions within the rule.
8965 (packgram): Save them in rule_table.
8966 * src/output.c (actions_output): New.
8967 (output_parser): Use it on `%%actions'.
8968 (output_rule_data): Don't free rule_table.
8969 (output): Do it.
8970 (prepare): Don't save the `action' muscle.
8971 * src/bison.simple: s/%%action/%%actions/.
8972
8973 2001-12-15 Akim Demaille <akim@epita.fr>
8974
8975 * src/reader.c (copy_action): When --yacc, don't append a `;'
8976 to the user action: let it fail if lacking.
8977 Suggested by Arnold Robbins and Tom Tromey.
8978
8979 2001-12-14 Akim Demaille <akim@epita.fr>
8980
8981 * src/lex.c (literalchar): Simply return the char you decoded, non
8982 longer mess around with obstacks and int pointers.
8983 Adjust all callers.
8984
8985 2001-12-14 Akim Demaille <akim@epita.fr>
8986
8987 * src/lex.c (literalchar): Don't escape the special characters,
8988 just decode them, and keep them as char (before, eol was output as
8989 the 2 char string `\n' etc.).
8990 * src/output.c (output_rule_data): Use quotearg to output the
8991 token strings.
8992
8993 2001-12-13 Paul Eggert <eggert@twinsun.com>
8994
8995 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
8996 Do not infringe on the global user namespace when using C++.
8997 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
8998 All uses of `fprintf' and `stderr' changed.
8999
9000 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
9001
9002 2001-12-13 Akim Demaille <akim@epita.fr>
9003
9004 The computation of nullable is broken: it doesn't handle empty
9005 RHS's properly.
9006
9007 * tests/torture.at (GNU AWK Grammar): New.
9008 * tests/sets.at (Nullable): New.
9009 * src/nullable.c (set_nullable): Instead of blindly looping over
9010 `ritems', loop over the rules, and then over their rhs's.
9011
9012 Work around Autotest bugs.
9013
9014 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
9015 frame, because Autotest understand lines starting with a `+' as
9016 traces from the shell. Then, they are not processed properly.
9017 Admittedly an Autotest bug, but we don't have time to wait for
9018 Autotest to catch up.
9019 * tests/regression.at (Broken Closure): Adjust to the new table
9020 frames.
9021 Move to...
9022 * tests/sets.at: here.
9023
9024 2001-12-13 Akim Demaille <akim@epita.fr>
9025
9026 * src/closure.c (closure): Use nrules instead of playing tricks
9027 with BITS_PER_WORD.
9028
9029 2001-12-13 Akim Demaille <akim@epita.fr>
9030
9031 * src/print.c (print_actions): Output the handling of `$' as the
9032 traces do: shifting the token EOF. Before EOF was treated as a
9033 nonterminal.
9034 * tests/regression.at: Adjust some tests.
9035 * src/print_graph.c (print_core): Complete the set of items via
9036 closure. The next-to-final and final states are still unsatisfying,
9037 but that's to be addressed elsewhere.
9038 No longer output the rule numbers, but do output the state number.
9039 A single loop for the shifts + gotos is enough, but picked a
9040 distinct color for each.
9041 (print_graph): Initialize and finalize closure.
9042
9043 2001-12-13 Akim Demaille <akim@epita.fr>
9044
9045 * src/reader.c (readgram): Remove dead code, an strip useless
9046 braces.
9047 (get_type): Remove, unused.
9048
9049 2001-12-12 Akim Demaille <akim@epita.fr>
9050
9051 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
9052 on that of lib/error.c.
9053
9054 2001-12-12 Akim Demaille <akim@epita.fr>
9055
9056 Some hosts don't like `/' in includes.
9057
9058 * src/system.h: Include libgettext.h without qualifying the path.
9059 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
9060 $(top_srcdir).
9061
9062 2001-12-11 Marc Autret <autret_m@epita.fr>
9063
9064 * src/output.c (output_parser): Remove useless muscle.
9065
9066 2001-12-11 Marc Autret <autret_m@epita.fr>
9067
9068 * src/bison.simple: Remove #line just before %%epilogue. It
9069 is now handled in ...
9070 * src/reader.c (read_additionnal_code): Add the output of a
9071 #line for the epilogue.
9072
9073 2001-12-10 Marc Autret <autret_m@epita.fr>
9074
9075 * src/reader.c (copy_definition): Re-use CPP-outed code which
9076 replace precedent remove.
9077 * src/bison.simple: Remove #line before %%prologue because
9078 %%input-line is wrong at this time.
9079
9080 2001-12-10 Marc Autret <autret_m@epita.fr>
9081
9082 * src/reader.c (symbols_output): Clean up.
9083 * src/output.c (output_gram, output): Clean up.
9084
9085 2001-12-10 Akim Demaille <akim@epita.fr>
9086
9087 * src/lalr.c (initialize_lookaheads): New. Extracted from...
9088 * src/LR0.c (set_state_table): here.
9089 * src/lalr.c (lalr): Call it.
9090
9091 2001-12-10 Akim Demaille <akim@epita.fr>
9092
9093 * src/state.h (shifts): Remove the `number' member: shifts are
9094 attached to state, hence no longer need to be labelled with a
9095 state number.
9096
9097 2001-12-10 Akim Demaille <akim@epita.fr>
9098
9099 Now that states have a complete set of members, the linked list of
9100 shifts is useless: just fill directly the state's shifts member.
9101
9102 * src/state.h (shifts): Remove the `next' member.
9103 * src/LR0.c (first_state, last_state): Remove.
9104 Adjust the callers.
9105 (augment_automaton): Don't look for the shifts that must be added
9106 a shift on EOF: it is those of the state we looked for! But now,
9107 since shifts are attached, it is no longer needed to looking
9108 merely by its id: its number.
9109
9110 2001-12-10 Akim Demaille <akim@epita.fr>
9111
9112 * src/LR0.c (augment_automaton): Better variable locality.
9113 Remove an impossible branch: if there is a state corresponding to
9114 the start symbol being shifted, then there is shift for the start
9115 symbol from the initial state.
9116
9117 2001-12-10 Akim Demaille <akim@epita.fr>
9118
9119 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
9120 only when appropriate: when insert_start_shifting_state' is not
9121 invoked.
9122 * tests/regression.at (Rule Line Numbers): Adjust.
9123
9124 2001-12-10 Akim Demaille <akim@epita.fr>
9125
9126 * src/LR0.c (augment_automaton): Now that all states have shifts,
9127 merge the two cases addition shifts to the initial state.
9128
9129 2001-12-10 Akim Demaille <akim@epita.fr>
9130
9131 * src/lalr.c (set_state_table): Move to...
9132 * src/LR0.c: here.
9133 * src/lalr.c (lalr): Don't call it...
9134 * src/LR0.c (generate_states): do it.
9135 * src/LR0.h (first_state): Remove, only the table is used.
9136
9137 2001-12-10 Akim Demaille <akim@epita.fr>
9138
9139 * src/LR0.h (first_shift, first_reduction): Remove.
9140 * src/lalr.c: Don't use first_shift: find shifts through the
9141 states.
9142
9143 2001-12-10 Akim Demaille <akim@epita.fr>
9144
9145 * src/LR0.c: Attach shifts to states as soon as they are
9146 computed.
9147 * src/lalr.c (set_state_table): Instead of assigning shifts to
9148 state, just assert that the mapping was properly done.
9149
9150 2001-12-10 Akim Demaille <akim@epita.fr>
9151
9152 * src/LR0.c (insert_start_shift): Rename as...
9153 (insert_start_shifting_state): this.
9154 (insert_eof_shifting_state, insert_accepting_state): New.
9155 (augment_automaton): Adjust.
9156 Better locality of the variables.
9157 When looking if the start_symbol is shifted from the initial
9158 state, using `while (... symbol != start_symbol ...)' sounds
9159 better than `while (... symbol < start_symbol ...)': If fail
9160 to see how the order between symbols could be relevant!
9161
9162 2001-12-10 Akim Demaille <akim@epita.fr>
9163
9164 * src/getargs.h: Don't declare `spec_name_prefix' and
9165 `spec_file_prefix', declared by src/files.h.
9166 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
9167 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
9168 * src/output.c (prepare): Adjust.
9169 * src/reader.c (symbols_output): Likewise.
9170 * src/vmsgetargs.c: Vaguely adjust, but who cares?
9171
9172 2001-12-10 Akim Demaille <akim@epita.fr>
9173
9174 * src/muscle_tab.c (muscle_init): NULL is a better default than
9175 `"0"'.
9176
9177 2001-12-10 Akim Demaille <akim@epita.fr>
9178
9179 * src/reader.c (reader): Calling symbols_output once is enough.
9180
9181 2001-12-10 Akim Demaille <akim@epita.fr>
9182
9183 Now that states have a complete set of members, the linked list of
9184 reductions is useless: just fill directly the state's reductions
9185 member.
9186
9187 * src/state.h (struct reductions): Remove member `number' and
9188 `next'.
9189 * src/LR0.c (first_reduction, last_reduction): Remove.
9190 (save_reductions): Don't link the new reductions, store them in
9191 this_state.
9192 * src/lalr.c (set_state_table): No need to attach reductions to
9193 states, it's already done.
9194 * src/output.c (output_actions): No longer free the shifts, then
9195 the reductions, then the states: free all the states and their
9196 members.
9197
9198 2001-12-10 Akim Demaille <akim@epita.fr>
9199
9200 * src/options.c (OPTN, DRTV, BOTH): New.
9201 (option_table): Use them.
9202
9203 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
9204 the job of system.h.
9205 * src/options.c: Don't include stdio.h and xalloc.h for the same
9206 reasons.
9207
9208 2001-12-10 Akim Demaille <akim@epita.fr>
9209
9210 * src/output.c (output, prepare): Make sure the values of the
9211 muscles `action' and `prologue' are 0-terminated.
9212
9213 2001-12-10 Akim Demaille <akim@epita.fr>
9214
9215 Clean up GCC warnings.
9216
9217 * src/reader.c (copy_action): `buf' is not used.
9218 (parse_skel_decl): Be static.
9219 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
9220 * src/options.h (create_long_option_table): Have a real prototype.
9221 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
9222 (hash_delete_at): Return const void *.
9223 Adjust casts to preserve the const.
9224
9225 2001-12-10 Akim Demaille <akim@epita.fr>
9226
9227 * configure.in: Require 2.52g.
9228 M4 is not needed, but AUTOM4TE is.
9229 * m4/m4.m4: Remove.
9230 * tests/Makefile.am: Adjust.
9231
9232 2001-12-10 Akim Demaille <akim@epita.fr>
9233
9234 One structure for states is enough, even though theoretically
9235 there are LR(0) states and LALR(1) states.
9236
9237 * src/lalr.h (state_t): Remove.
9238 (state_table): Be state_t **, not state_t *.
9239 * src/state.h (core, CORE_ALLOC): Rename as...
9240 (state_t, STATE_ALLOC): this.
9241 Add the LALR(1) members: shifts, reductions, errs.
9242 * src/LR0.c (state_table): Rename as...
9243 (state_hash): this, to avoid name clashes with the global
9244 `state_table'.
9245 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
9246 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
9247
9248 2001-12-10 Akim Demaille <akim@epita.fr>
9249
9250 Bison dumps core on bash.y.
9251 Reported by Pascal Bart.
9252
9253 * src/warshall.c (bitmatrix_print): New.
9254 (TC): Use it.
9255 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
9256 j must be the outer loop.
9257 * tests/regression.at (Broken Closure): New.
9258
9259 2001-12-05 Akim Demaille <akim@epita.fr>
9260
9261 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
9262 its argument.
9263 Reported by Peter Hamorsky.
9264
9265 2001-12-05 Akim Demaille <akim@epita.fr>
9266
9267 * src/conflicts.c (err_table): Remove.
9268 (resolve_sr_conflict): Adjust.
9269 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
9270 Rename as...
9271 (state_t.reductions, state_t.shifts): this.
9272
9273 2001-12-05 Akim Demaille <akim@epita.fr>
9274
9275 * src/reduce.c (reduce_grammar_tables): No longer disable the
9276 removal of useless rules via CPP but via `if (0)', so that the
9277 compiler still check the code is valid.
9278 For instance, it should have noticed `rline' no longer exists: use
9279 the `line' member of rule_t.
9280 * src/gram.c (dummy, rline): Remove, unused.
9281
9282 2001-12-05 Akim Demaille <akim@epita.fr>
9283
9284 * src/output.c (pack_vector): Use assert, not berror.
9285 * src/main.c (berror): Remove, unused.
9286
9287 2001-12-05 Akim Demaille <akim@epita.fr>
9288
9289 New experimental feature: if --verbose --trace output all the
9290 items of a state, not only its kernel.
9291
9292 * src/print.c (print_core): If `trace_flag', then invoke closure
9293 before outputting the items of the state (print_core is no longer
9294 a correct name them).
9295 (print_results): Invoke new_closure/free_closure if needed.
9296
9297 2001-12-05 Akim Demaille <akim@epita.fr>
9298
9299 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
9300 * src/closure.c, src/closure.h (itemsetsize): Rename as...
9301 (nitemset): for consistency with the rest of the project.
9302
9303 2001-12-05 Akim Demaille <akim@epita.fr>
9304
9305 * src/closure.c (print_closure): Improve.
9306 (closure): Use it for printing input and output.
9307
9308 2001-12-05 Akim Demaille <akim@epita.fr>
9309
9310 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
9311 indexed by nonterminals.
9312
9313 2001-12-05 Akim Demaille <akim@epita.fr>
9314
9315 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
9316 what it was!).
9317 * src/warshall.h: Remove accidental duplication of the content.
9318
9319 2001-12-05 Akim Demaille <akim@epita.fr>
9320
9321 * src/closure.c (set_fderives): De-obfuscate.
9322
9323 2001-12-05 Akim Demaille <akim@epita.fr>
9324
9325 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
9326
9327 2001-12-05 Akim Demaille <akim@epita.fr>
9328
9329 * src/closure.c (set_firsts): De-obfuscate.
9330
9331 2001-12-05 Akim Demaille <akim@epita.fr>
9332
9333 * src/output.c (action_row): De-obfuscate
9334 using the good o' techniques: arrays not pointers, variable
9335 locality, BITISSET, RESETBIT etc.
9336
9337 2001-12-05 Akim Demaille <akim@epita.fr>
9338
9339 Pessimize the code to simplify it: from now on, all the states
9340 have a valid SHIFTS, which NSHIFTS is possibly 0.
9341
9342 * src/LR0.c (shifts_new): Be global and move to..
9343 * src/state.c, src/state.h: here.
9344 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
9345 * src/print_graph: Adjust.
9346
9347 2001-12-05 Akim Demaille <akim@epita.fr>
9348
9349 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
9350 * src/conflicts.c: Use it.
9351 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
9352 incorrectly ``simplified''.
9353
9354 2001-12-05 Akim Demaille <akim@epita.fr>
9355
9356 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
9357 using the good o' techniques: arrays not pointers, variable
9358 locality, BITISSET, RESETBIT etc.
9359
9360 2001-12-05 Akim Demaille <akim@epita.fr>
9361
9362 * src/state.h (SHIFT_SYMBOL): New.
9363 * src/conflicts.c: Use it to deobfuscate.
9364
9365 2001-12-05 Akim Demaille <akim@epita.fr>
9366
9367 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
9368 (print_reductions): De-obfuscate using the good o' techniques:
9369 arrays not pointers, variable locality, BITISSET.
9370
9371 2001-12-05 Akim Demaille <akim@epita.fr>
9372
9373 * src/conflicts.c (print_reductions): Arrays, not pointers.
9374 Use BITISSET.
9375
9376 2001-12-05 Akim Demaille <akim@epita.fr>
9377
9378 * src/conflicts.c (print_reductions): Pessimize, but clarify.
9379
9380 2001-12-05 Akim Demaille <akim@epita.fr>
9381
9382 * src/conflicts.c (print_reductions): Improve variable locality.
9383
9384 2001-12-05 Akim Demaille <akim@epita.fr>
9385
9386 * src/conflicts.c (print_reductions): Pessimize, but clarify.
9387
9388 2001-12-05 Akim Demaille <akim@epita.fr>
9389
9390 * src/conflicts.c (print_reductions): Improve variable locality.
9391
9392 2001-12-05 Akim Demaille <akim@epita.fr>
9393
9394 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
9395 * src/lalr.c: Use them.
9396
9397 2001-12-05 Akim Demaille <akim@epita.fr>
9398
9399 * src/LR0.c (augment_automaton): Formatting changes.
9400 Better variable locality.
9401
9402 2001-12-05 Akim Demaille <akim@epita.fr>
9403
9404 * src/lalr.c (matrix_print): New.
9405 (transpose): Use it.
9406 Use arrays instead of pointers.
9407
9408 2001-12-05 Akim Demaille <akim@epita.fr>
9409
9410 * src/lalr.c (maxrhs): Move to...
9411 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
9412 * src/lalr.c (build_relations): Adjust.
9413
9414 2001-12-05 Akim Demaille <akim@epita.fr>
9415
9416 * src/lalr.c (transpose): Free the memory allocated to the
9417 argument, as it is replaced by the results by the unique caller.
9418 (build_relations): Merely invoke transpose: it handles the memory
9419 deallocation.
9420 Improve variable locality.
9421 Avoid variables used as mere abbreviations.
9422 (compute_lookaheads): Use arrays instead of pointers.
9423
9424 2001-12-05 Akim Demaille <akim@epita.fr>
9425
9426 * src/lalr.c (initialize_F): Improve variable locality.
9427 Avoid variables used as mere abbreviations.
9428
9429 2001-12-05 Akim Demaille <akim@epita.fr>
9430
9431 * src/derives.c (print_derives): Display the ruleno.
9432 * src/lalr.c (initialize_F, transpose): Better variable locality
9433 to improve readability.
9434 Avoid variables used as mere abbreviations.
9435
9436 2001-12-05 Akim Demaille <akim@epita.fr>
9437
9438 * src/lalr.c (traverse): Use arrays instead of pointers.
9439
9440 2001-12-05 Akim Demaille <akim@epita.fr>
9441
9442 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
9443 the handling of squeue.
9444 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
9445
9446 2001-12-05 Akim Demaille <akim@epita.fr>
9447
9448 Because useless nonterminals are now kept alive (instead of being
9449 `destroyed'), we now sometimes examine them, and store information
9450 related to them. Hence we need to know their number, and adjust
9451 memory allocations.
9452
9453 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
9454 static.
9455 * src/LR0.c (allocate_itemsets): The memory allocated to
9456 `symbol_count' was used for two different purpose: once to count
9457 the number of occurrences of each symbol, and later reassigned to
9458 `shift_symbol', containing the symbol that can be shifted from a
9459 given state.
9460 Deobfuscate, i.e., allocate, use and free `symbol_count' here
9461 only, and...
9462 (new_itemsets): Allocate `shift_symbol' here.
9463 (allocate_itemsets): symbol_count includes useless nonterminals.
9464 Make room for them.
9465 (free_storage): Use `free', not `XFREE', for pointers that cannot
9466 be null.
9467
9468 2001-12-05 Akim Demaille <akim@epita.fr>
9469
9470 * src/nullable.c (set_nullable): Deobfuscate the handling of
9471 ritem.
9472 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
9473
9474 2001-12-05 Akim Demaille <akim@epita.fr>
9475
9476 * src/gram.c, src/gram.h (ritem_print): New.
9477 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
9478 (This useless function was defined only to work around VMS linkers
9479 that can't handle compilation units with variables only).
9480 * src/reduce.c (dump_grammar): Use it to trace the construction of
9481 ritem.
9482
9483 2001-12-04 Paul Eggert <eggert@twinsun.com>
9484
9485 * src/bison.simple (union yyalloc): Change member names
9486 to be the same as the stack names.
9487 (yyparse): yyptr is now union yyalloc *, not char *.
9488 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
9489 and may generate better code on some machines.
9490 (yystpcpy): Use prototype if __STDC__ is defined, not just
9491 if __cplusplus is defined.
9492
9493 2001-11-30 Akim Demaille <akim@epita.fr>
9494
9495 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
9496 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
9497 Gettext doesn't compile cleanly, and dies with -Werror.
9498 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
9499 Include WARNING_CFLAGS here.
9500 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
9501 before being defined.
9502
9503 2001-11-27 Paul Eggert <eggert@twinsun.com>
9504
9505 * lib/quotearg.h (quotearg_n, quotearg_n_style):
9506 First arg is int, not unsigned.
9507 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
9508 (SIZE_MAX, UINT_MAX): New macros.
9509 (quotearg_n_options): Abort if N is negative.
9510 Avoid overflow check on hosts where size_t is 64 bits and int
9511 is 32 bits, as overflow is impossible there.
9512 Fix off-by-one typo that caused unnecessary reallocation.
9513
9514 2001-11-29 Paul Eggert <eggert@twinsun.com>
9515
9516 Name space cleanup in generated parser.
9517
9518 * doc/bison.texinfo (Bison Parser): Discuss system headers
9519 and their effect on the user name space.
9520
9521 * src/bison.simple:
9522 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
9523 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
9524 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
9525
9526 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
9527 on user names when possible.
9528
9529 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
9530 Simplify test for whather <alloca.h> exists.
9531
9532 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
9533
9534 (<stdio.h>): Include if YYDEBUG.
9535
9536 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
9537 ! defined (yyoverflow) && ! defined (yymemcpy).
9538
9539 (yymemcpy, yyparse): Rename local variables as needed so that
9540 they all begin with 'yy'.
9541
9542 (yystrlen, yystpcpy): New functions.
9543
9544 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
9545 All uses changed.
9546
9547 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
9548 instead of relying on string.h functions. Use YYSTACK_ALLOC
9549 and YYSTACK_FREE instead of malloc and free.
9550
9551 2001-11-30 Akim Demaille <akim@epita.fr>
9552
9553 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
9554 before their first uses.
9555 (YYBISON, YYPURE): Move to the top of the output.
9556
9557 2001-11-30 Akim Demaille <akim@epita.fr>
9558
9559 * tests/reduce.at (Useless Nonterminals): Fix.
9560
9561 2001-11-30 Akim Demaille <akim@epita.fr>
9562
9563 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
9564 if body instead of `;' to pacify GCC's warnings.
9565
9566 2001-11-30 Akim Demaille <akim@epita.fr>
9567
9568 Instead of mapping the LHS of unused rules to -1, keep the LHS
9569 valid, but flag the rules as invalid.
9570
9571 * src/gram.h (rule_t): `useful' is a new member.
9572 * src/print.c (print_grammar): Adjust.
9573 * src/derives.c (set_derives): Likewise.
9574 * src/reader.c (packgram, reduce_output): Likewise.
9575 * src/reduce.c (reduce_grammar_tables): Likewise.
9576 * tests/reduce.at (Underivable Rules, Useless Rules): New.
9577
9578 2001-11-30 Akim Demaille <akim@epita.fr>
9579
9580 * src/reduce.c (reduce_output): Formatting changes.
9581 * src/print.c (print_results, print_grammar): Likewise.
9582 * tests/regression.at (Rule Line Numbers)
9583 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
9584
9585 2001-11-30 Akim Demaille <akim@epita.fr>
9586
9587 * src/reduce.c (nonterminals_reduce): Instead of throwing away
9588 useless nonterminals, move them at the end of the symbol arrays.
9589 (reduce_output): Adjust.
9590 * tests/reduce.at (Useless Nonterminals): Adjust.
9591
9592 2001-11-30 Akim Demaille <akim@epita.fr>
9593
9594 * src/reduce.c: Various comment/formatting changes.
9595 (nonterminals_reduce): New, extracted from...
9596 (reduce_grammar_tables): here.
9597 (reduce_grammar): Call nonterminals_reduce.
9598
9599 2001-11-29 Paul Eggert <eggert@twinsun.com>
9600
9601 * src/bison.simple (YYSTACK_REALLOC): Remove.
9602 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
9603 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
9604 New macros.
9605 (union yyalloc): New type.
9606 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
9607 an arbitrary restriction on hosts where size_t is wider than int.
9608
9609 (yyparse): Don't dump core if alloca or malloc fails; instead, report
9610 a parser stack overflow. Allocate just one block of memory for all
9611 three stacks, instead of allocating three blocks; this typically is
9612 faster and reduces fragmentation.
9613
9614 Do not limit the number of items in the stack to a value that fits
9615 in 'int', as this is an arbitrary limit on hosts with 64-bit
9616 size_t and 32-bit int.
9617
9618 2001-11-29 Marc Autret <autret_m@epita.fr>
9619
9620 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
9621 of defining YYERROR_VERBOSE.
9622 [AT_DATA]: $4 is now out of C declarations in the prologue.
9623
9624 2001-11-28 Marc Autret <autret_m@epita.fr>
9625
9626 * src/reader.c (parse_dquoted_param): New.
9627 (parse_skel_decl): Use it.
9628 * src/lex.h: Add its prototype.
9629 * src/lex.c (literalchar): Become not static.
9630
9631 2001-11-28 Marc Autret <autret_m@epita.fr>
9632
9633 * src/output.h: And put its extern declaration here.
9634 * src/output.c (error_verbose): Define here.
9635 (prepare): Echo name modification.
9636 * src/getargs.h: Clean its extern declaration.
9637 * src/getargs.c (error_verbose_flag): Remove.
9638 (getargs): Remove case 'e'.
9639 * src/options.c (option_table): 'error-verbose' is now seen as simple
9640 percent option.
9641 Include output.h.
9642
9643 * src/reader.c (read_declarations): Remove case tok_include.
9644 (parse_include_decl): Remove.
9645 * src/lex.h (token_t): Remove tok_include.
9646 * src/options.c (option_table): 'include' is now a simple command line
9647 option.
9648
9649 2001-11-28 Marc Autret <autret_m@epita.fr>
9650
9651 * src/bison.simple: Adjust muscle names.
9652 * src/muscle_tab.c (muscle_init): Also rename the muscles.
9653 * src/output.c (prepare): s/_/-/ for the muscles names.
9654 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
9655
9656 2001-11-28 Marc Autret <autret_m@epita.fr>
9657
9658 * src/bison.simple: Fix debug.
9659 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
9660
9661 2001-11-28 Akim Demaille <akim@epita.fr>
9662
9663 * src/LR0.c (shifts_new): New.
9664 (save_shifts, insert_start_shift, augment_automaton): Use it.
9665
9666 2001-11-28 Akim Demaille <akim@epita.fr>
9667
9668 * src/closure.c (closure): `b' and `ruleno' denote the same value:
9669 keep ruleno only.
9670
9671 2001-11-28 Akim Demaille <akim@epita.fr>
9672
9673 * src/closure.c (closure): Instead of looping over word in array
9674 then bits in words, loop over bits in array.
9675
9676 2001-11-28 Akim Demaille <akim@epita.fr>
9677
9678 * src/closure.c (closure): No longer optimize the special case
9679 where all the bits of `ruleset[r]' are set to 0, to make the code
9680 clearer.
9681
9682 2001-11-28 Akim Demaille <akim@epita.fr>
9683
9684 * src/closure.c (closure): `r' and `c' are new variables, used to
9685 de-obfuscate accesses to RULESET and CORE.
9686
9687 2001-11-28 Akim Demaille <akim@epita.fr>
9688
9689 * src/reduce.c (reduce_print): Use ngettext.
9690 (dump_grammar): Improve the trace accuracy.
9691
9692 2001-11-28 Akim Demaille <akim@epita.fr>
9693
9694 * src/reduce.c (dump_grammar): Don't translate trace messages.
9695
9696 2001-11-28 Akim Demaille <akim@epita.fr>
9697
9698 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
9699 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
9700 as all tags are free'ed afterwards.
9701 From Enrico Scholz.
9702
9703 2001-11-27 Paul Eggert <eggert@twinsun.com>
9704
9705 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
9706 use alloca when we didn't want to, and vice versa.
9707
9708 2001-11-27 Marc Autret <autret_m@epita.fr>
9709
9710 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
9711 initialization.
9712 * src/output.c (prepare): Remove its update.
9713
9714 2001-11-27 Marc Autret <autret_m@epita.fr>
9715
9716 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
9717 Use %error-verbose.
9718
9719 2001-11-27 Marc Autret <autret_m@epita.fr>
9720
9721 * src/bison.simple: Remove YYERROR_VERBOSE using.
9722 Use %%error_verbose.
9723 (yyparse): Likewise.
9724 * src/output.c (prepare): Give its final value.
9725 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
9726 * src/getargs.h: Add its extern declaration.
9727 * src/getargs.c (error_verbose_flag): New int.
9728 (getargs): Update to catch new case.
9729 * src/options.c (option_table): 'error-verbose' is a new option.
9730 (shortopts): Update.
9731
9732 2001-11-27 Akim Demaille <akim@epita.fr>
9733
9734 * src/system.h: Use intl/libgettext.h.
9735 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
9736
9737 2001-11-27 Akim Demaille <akim@epita.fr>
9738
9739 * tests/torture.at (Exploding the Stack Size with Malloc):
9740 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
9741
9742 2001-11-27 Akim Demaille <akim@epita.fr>
9743
9744 * src/files.c: Include error.h.
9745 Reported by Hans Aberg.
9746
9747 2001-11-26 Marc Autret <autret_m@epita.fr>
9748
9749 * src/reader.c (parse_include_decl): New, not yet implemented.
9750 (read_declarations): Add case tok_include.
9751 * src/getargs.h (include): Add its extern definition.
9752 * src/getargs.c (include): New const char *.
9753 (getargs): Add case '-I'.
9754 * src/options.c (option_table): Add include as command line and
9755 percent option.
9756 * src/lex.h (token_t): Add tok_include.
9757
9758 2001-11-26 Akim Demaille <akim@epita.fr>
9759
9760 * src/reader.c (readgram): Make sure rules for mid-rule actions
9761 have a lineno equal to that of their host rule.
9762 Reported by Hans Aberg.
9763 * tests/regression.at (Rule Line Numbers): New.
9764
9765 2001-11-26 Akim Demaille <akim@epita.fr>
9766
9767 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
9768 size_ts.
9769
9770 2001-11-26 Akim Demaille <akim@epita.fr>
9771
9772 * src/complain.c, src/complain.h (error): Remove, provided by
9773 lib/error.[ch].
9774
9775 2001-11-26 Akim Demaille <akim@epita.fr>
9776
9777 * src/reader.c (read_declarations): Don't abort on tok_illegal,
9778 issue an error message.
9779 * tests/regression.at (Invalid %directive): New.
9780 Reported by Hans Aberg.
9781
9782 2001-11-26 Akim Demaille <akim@epita.fr>
9783
9784 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
9785 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
9786
9787 2001-11-26 Akim Demaille <akim@epita.fr>
9788
9789 * src/conflicts.c (conflicts_print): Don't complain at all when
9790 there are no reduce/reduce conflicts, and as many shift/reduce
9791 conflicts as expected.
9792 * tests/regression.at (%expect right): Adjust.
9793
9794 2001-11-23 Akim Demaille <akim@epita.fr>
9795
9796 * lib/alloca.c: Update, from fileutils.
9797
9798 2001-11-23 Akim Demaille <akim@epita.fr>
9799
9800 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
9801
9802 2001-11-23 Akim Demaille <akim@epita.fr>
9803
9804 * src/system.h: Include alloca.h.
9805 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
9806
9807 2001-11-23 Akim Demaille <akim@epita.fr>
9808
9809 * src/print_graph.c (print_actions): Remove `rule', unused.
9810 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
9811 pacify GCC's signed < unsigned warnings.
9812 * src/closure.c (itemsetsize): Likewise.
9813 * src/reader.c (symbol_list_new): Static.
9814
9815 2001-11-23 Akim Demaille <akim@epita.fr>
9816
9817 Attaching lineno to buckets is stupid, since only one copy of each
9818 symbol is kept, only the line of the first occurrence is kept too.
9819
9820 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
9821 * src/reader.c (rline_allocated): Remove, unused.
9822 (symbol_list): Have a `line' member.
9823 (symbol_list_new): New.
9824 (readgram): Use it.
9825 * src/print.c (print_grammar): Output the rule line numbers.
9826 * tests/regression.at (Solved SR Conflicts)
9827 (Unresolved SR Conflicts): Adjust.
9828 Reported by Hans Aberg.
9829
9830 2001-11-22 Marc Autret <autret_m@epita.fr>
9831
9832 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
9833
9834 2001-11-22 Marc Autret <autret_m@epita.fr>
9835
9836 * src/muscle_tab.c (muscle_init): Remove initialization of
9837 skeleton muscle.
9838 * src/output.c (output_master_parser): Do it here.
9839
9840 2001-11-20 Akim Demaille <akim@epita.fr>
9841
9842 * po/sv.po: New.
9843 * configure.in (ALL_LINGUAS): Adjust.
9844 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
9845 longer contains strings to translate.
9846
9847 2001-11-19 Akim Demaille <akim@epita.fr>
9848
9849 * src/conflicts.c (conflicts_print): Add a missing \n.
9850
9851 2001-11-19 Akim Demaille <akim@epita.fr>
9852
9853 * src/nullable.c (nullable_print): New.
9854 (set_nullable): Call it when tracing.
9855 Better locality of variables.
9856
9857 2001-11-19 Akim Demaille <akim@epita.fr>
9858
9859 * src/print.c (print_actions): Better locality of variables.
9860
9861 2001-11-19 Akim Demaille <akim@epita.fr>
9862
9863 * src/derives.c (print_derives): Fix and enrich.
9864 * src/closure.c (print_fderives): Likewise.
9865
9866 2001-11-19 Akim Demaille <akim@epita.fr>
9867
9868 * src/closure.c (itemsetend): Remove, replaced with...
9869 (itemsetsize): new.
9870
9871 2001-11-19 Akim Demaille <akim@epita.fr>
9872
9873 * src/LR0.c (kernel_end): Remove, replaced with...
9874 (kernel_size): new.
9875
9876 2001-11-19 Akim Demaille <akim@epita.fr>
9877
9878 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
9879 to clarify.
9880
9881 2001-11-19 Akim Demaille <akim@epita.fr>
9882
9883 * src/closure.c (closure): Use arrays instead of pointers to clarify.
9884
9885 2001-11-19 Akim Demaille <akim@epita.fr>
9886
9887 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
9888 trace messages.
9889 * src/LR0.c: Likewise.
9890 (allocate_itemsets): Use arrays instead of pointers to clarify.
9891
9892 2001-11-19 Akim Demaille <akim@epita.fr>
9893
9894 * src/getargs.c (statistics_flag): Replace with...
9895 (trace_flag): New.
9896 (longopts): Accept --trace instead of --statistics.
9897 * src/getargs.h, src/options.c: Adjust.
9898 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
9899 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
9900
9901 2001-11-19 Akim Demaille <akim@epita.fr>
9902
9903 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
9904 pointers to clarify the code.
9905 (save_reductions, save_shifts): Factor common parts of alternatives.
9906
9907 2001-11-19 Akim Demaille <akim@epita.fr>
9908
9909 * src/LR0.c (new_state, get_state): Complete TRACE code.
9910 * src/closure.c: Include `reader.h' to get `tags', needed by the
9911 trace code.
9912 Rename the conditional DEBUG as TRACE.
9913 Output consistently TRACEs to stderr, not stdout.
9914 * src/derives.c: Likewise.
9915 * src/reduce.c: (inaccessable_symbols): Using if is better style
9916 than goto.
9917 Use `#if TRACE' instead of `#if 0' for tracing code.
9918
9919 2001-11-19 Akim Demaille <akim@epita.fr>
9920
9921 * src/system.h (LIST_FREE, shortcpy): New.
9922 * src/LR0.c: Use them.
9923 * src/output.c (free_itemsets, free_reductions, free_shifts):
9924 Remove, replaced by LIST_FREE.
9925
9926 2001-11-19 Akim Demaille <akim@epita.fr>
9927
9928 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
9929 (REDUCTIONS_ALLOC): New.
9930 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
9931 allocation.
9932
9933 2001-11-19 Akim Demaille <akim@epita.fr>
9934
9935 * src/LR0.c (new_state): Complete trace code.
9936 * src/nullable.c (set_nullable): Don't translate traces.
9937
9938 2001-11-19 Akim Demaille <akim@epita.fr>
9939
9940 * src/print_graph.c (print_core): Better locality of variables.
9941 * src/print.c (print_core): Likewise.
9942
9943 2001-11-19 Akim Demaille <akim@epita.fr>
9944
9945 * src/vcg.c: You do the output, so you are responsible of the
9946 handling of VCG syntax, in particular: use quotearg.
9947 * src/print_graph.c: Don't.
9948 (print_actions): Don't output the actions as part of the nodes,
9949 since that's the job of the edges.
9950 (print_state): Don't output by hand: fill the node description,
9951 and ask for its output.
9952
9953 2001-11-19 Akim Demaille <akim@epita.fr>
9954
9955 * src/bison.simple (yyparse): When verbosely reporting an error,
9956 no longer put additional quotes around token names.
9957 * tests/calc.at: Adjust.
9958
9959 2001-11-19 Akim Demaille <akim@epita.fr>
9960
9961 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
9962 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
9963 * src/output.c: Adjust.
9964
9965 2001-11-19 Akim Demaille <akim@epita.fr>
9966
9967 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
9968 (rule_t): this.
9969 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
9970
9971 2001-11-19 Akim Demaille <akim@epita.fr>
9972
9973 * src/gram.h (rule_t): New.
9974 (rule_table): New.
9975 (rrhs, rlhs): Remove, part of state_t.
9976 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
9977 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
9978 * src/reader.c, src/reduce.c: Adjust.
9979
9980 2001-11-19 Akim Demaille <akim@epita.fr>
9981
9982 * src/reader.c (symbols_output): New, extracted from...
9983 (packsymbols): Here.
9984 (reader): Call it.
9985
9986 2001-11-19 Akim Demaille <akim@epita.fr>
9987
9988 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
9989 (maxrhs): this new function.
9990
9991 2001-11-19 Akim Demaille <akim@epita.fr>
9992
9993 * src/lalr.c (F): New macro to access the variable F.
9994 Adjust.
9995
9996 2001-11-19 Akim Demaille <akim@epita.fr>
9997
9998 * src/lalr.h (LA): New macro to access the variable LA.
9999 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
10000 * src/lalr.c: Adjust.
10001
10002 2001-11-19 Akim Demaille <akim@epita.fr>
10003
10004 * src/lalr.c (initialize_LA): Only initialize LA. Let...
10005 (set_state_table): handle the `lookaheads' members.
10006
10007 2001-11-19 Akim Demaille <akim@epita.fr>
10008
10009 * src/lalr.h (lookaheads): Removed array, whose contents is now
10010 a member of...
10011 (state_t): this structure.
10012 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
10013 Adjust.
10014
10015 2001-11-19 Akim Demaille <akim@epita.fr>
10016
10017 * src/lalr.h (consistent): Removed array, whose contents is now
10018 a member of...
10019 (state_t): this structure.
10020 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
10021 Adjust.
10022
10023 2001-11-19 Akim Demaille <akim@epita.fr>
10024
10025 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
10026 contents are now members of...
10027 (state_t): this structure.
10028 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
10029 Adjust.
10030
10031 2001-11-19 Akim Demaille <akim@epita.fr>
10032
10033 * src/lalr.h (state_t): New.
10034 (state_table): Be a state_t * instead of a core **.
10035 (accessing_symbol): Remove, part of state_t.
10036 * src/lalr.c: Adjust.
10037 (set_accessing_symbol): Merge into...
10038 (set_state_table): this.
10039 * src/print_graph.c, src/conflicts.c: Adjust.
10040
10041 2001-11-14 Akim Demaille <akim@epita.fr>
10042
10043 * tests/calc.at, tests/output.at, tests/regression.at,
10044 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
10045 now the tests are run in private dirs, therefore AC_CLEANUP and
10046 family can be simplified to 0-ary.
10047 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
10048 use abs. path to find config.h.
10049 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
10050 stderr, there can be way too much random noise.
10051 Instead pass -Werror to GCC and rely on the exit status.
10052 Reported by Wolfram Wagner.
10053
10054 2001-11-14 Akim Demaille <akim@epita.fr>
10055
10056 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
10057 defined only if yyoverflow is defined, to avoid `warning: unused
10058 variable `yyvs1''.
10059 Reported by The Test Suite.
10060
10061 2001-11-14 Akim Demaille <akim@epita.fr>
10062
10063 * src/print.c: Include reduce.h.
10064 Reported by Hans Aberg.
10065
10066 2001-11-14 Akim Demaille <akim@epita.fr>
10067
10068 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
10069 Revert a previous patch: these are really const.
10070 * src/conflicts.c (conflict_report): Additional useless pair of
10071 braces to pacify GCC's warnings for `if () if () {} else {}'.
10072 * src/lex.c (parse_percent_token): Replace equal_offset with
10073 arg_offset.
10074 arg is const.
10075 Be sure to strdup `arg' when used, since there is no reason for
10076 token_buffer not to change.
10077
10078 2001-11-14 Akim Demaille <akim@epita.fr>
10079
10080 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
10081 definition.
10082 * src/main.c (main): Use them.
10083 Suggested by Hans Aberg.
10084
10085 2001-11-12 Akim Demaille <akim@epita.fr>
10086
10087 * src/system.h (ngettext): Now that we use ngettext, be sure to
10088 provide a default definition when NLS are not used.
10089
10090 2001-11-12 Akim Demaille <akim@epita.fr>
10091
10092 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
10093 Use @kbd to denote user input.
10094 (Language and Grammar): ANSIfy the example.
10095 Adjust its layout for info/notinfo.
10096 (Location Tracking Calc): Output error messages to stderr.
10097 Output locations in a more GNUtically correct way.
10098 Fix a couple of Englishos.
10099 Adjust @group/@end group pairs.
10100
10101 2001-11-12 Akim Demaille <akim@epita.fr>
10102
10103 %expect was not functioning at all.
10104
10105 * src/conflicts.c (expected_conflicts): Set to -1.
10106 (conflict_report): Use ngettext.
10107 (conflicts_print): Check %expect and make its violation an error.
10108 * doc/bison.texinfo (Expect Decl): Adjust.
10109 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
10110 * tests/regression.at (%expect not enough, %expect right)
10111 (%expect too much): New.
10112
10113 2001-11-12 Akim Demaille <akim@epita.fr>
10114
10115 * tests/regression.at (Conflicts): Rename as...
10116 (Unresolved SR Conflicts): this.
10117 (Solved SR Conflicts): New.
10118
10119 2001-11-12 Akim Demaille <akim@epita.fr>
10120
10121 * src/reduce.c (print_results): Rename as...
10122 (reduce_output): This.
10123 Output to OUT, passed as argument, instead of output_obstack.
10124 (dump_grammar): Likewise.
10125 (reduce_free): New.
10126 Also free V1.
10127 (reduce_grammar): No longer call reduce_output, since...
10128 * src/print.c (print_results): do it.
10129 * src/main.c (main): Call reduce_free;
10130
10131 2001-11-12 Akim Demaille <akim@epita.fr>
10132
10133 * src/conflicts.c (print_reductions): Accept OUT as argument.
10134 Output to it, not to output_obstack.
10135 * src/print.c (print_actions): Adjust.
10136
10137 2001-11-12 Akim Demaille <akim@epita.fr>
10138
10139 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
10140 the result instead of using...
10141 (src_total, rrc_total, src_count, rrc_count): Remove.
10142 (any_conflicts): Remove.
10143 (print_conflicts): Split into...
10144 (conflicts_print, conflicts_output): New.
10145 * src/conflicts.h: Adjust.
10146 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
10147 * src/print.c (print_grammar): Issue `\n' between two rules.
10148 * tests/regression.at (Conflicts): New.
10149 Reported by Tom Lane.
10150
10151 2001-11-12 Akim Demaille <akim@epita.fr>
10152
10153 * tests/regression.at (Invalid input): Remove, duplicate with
10154 ``Invalid input: 1''.
10155
10156 2001-11-12 Akim Demaille <akim@epita.fr>
10157
10158 * tests/torture.at (AT_DATA_STACK_TORTURE)
10159 (Exploding the Stack Size with Alloca)
10160 (Exploding the Stack Size with Malloc): New.
10161
10162 2001-11-12 Akim Demaille <akim@epita.fr>
10163
10164 * src/bison.simple (YYSTACK_REALLOC): New.
10165 (yyparse) [!yyoverflow]: Use it and free the old stack.
10166 Reported by Per Allansson.
10167
10168 2001-11-12 Pascal Bart <pascal.bart@epita.fr>
10169
10170 * src/bison.simple: Define type yystype instead of YYSTYPE, and
10171 define CPP macro, which substitute YYSTYPE by yystype.
10172 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
10173 with yyltype/YYLTYPE. This allows inclusion of the generated
10174 header within the parser if the compiler, such as GGC, accepts
10175 multiple equivalent #defines.
10176 From Akim.
10177
10178 2001-11-05 Akim Demaille <akim@epita.fr>
10179
10180 * src/reader.c (symbols_output): New, extracted from...
10181 (packsymbols): here.
10182 (reader): Adjust.
10183
10184 2001-11-05 Akim Demaille <akim@epita.fr>
10185
10186 * src/lex.c (parse_percent_token): s/quotearg/quote/.
10187
10188 2001-11-05 Akim Demaille <akim@epita.fr>
10189
10190 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
10191 pattern.
10192
10193 2001-11-05 Akim Demaille <akim@epita.fr>
10194
10195 * src/options.h (struct option_table_struct): set_flags is void*.
10196 * src/options.c (longopts): Support `--output' and `%output'.
10197 (usage): Adjust.
10198 * src/lex.h (tok_setopt): Remove, replaced with...
10199 (tok_intopt, tok_stropt): these new guys.
10200 * src/lex.c (getopt.h): Not needed.
10201 (token_buffer, unlexed_token_buffer): Not const.
10202 (percent_table): Promote `-' over `_' in directive names.
10203 Active `%name-prefix', `file-prefix', and `output'.
10204 (parse_percent_token): Accept possible arguments to directives.
10205 Promote `-' over `_' in directive names.
10206
10207 2001-11-04 Akim Demaille <akim@epita.fr>
10208
10209 * doc/bison.texinfo (Decl Summary): Split the list into
10210 `directives for grammars' and `directives for bison'.
10211 Sort'em.
10212 Add description of `%name-prefix', `file-prefix', and `output'.
10213 Promote `-' over `_' in directive names.
10214 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
10215 Simplify the description of `--name-prefix'.
10216 Promote `-' over `_' in directive names.
10217 Promote `--output' over `--output-file'.
10218 Fix the description of `--defines'.
10219 * tests/output.at: Exercise %file-prefix and %output.
10220
10221 2001-11-02 Akim Demaille <akim@epita.fr>
10222
10223 * doc/refcard.tex: Update.
10224
10225 2001-11-02 Akim Demaille <akim@epita.fr>
10226
10227 * src/symtab.h (SUNDEF): New.
10228 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
10229 stand for `uninitialized', instead of 0.
10230 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
10231 * src/lex.c (lex): Adjust.
10232
10233 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
10234 Number it 0.
10235 Let yylex return it instead of a plain 0.
10236 Reported by Dick Streefland.
10237
10238 2001-11-02 Akim Demaille <akim@epita.fr>
10239
10240 * tests/regression.at (Mixing %token styles): New test.
10241
10242 2001-11-02 Akim Demaille <akim@epita.fr>
10243
10244 * src/reader.c (parse_thong_decl): Formatting changes.
10245 (token_translations_init): New, extracted from...
10246 (packsymbols): Here.
10247 Adjust.
10248
10249 2001-11-01 Akim Demaille <akim@epita.fr>
10250
10251 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
10252 Check that `9foo.y' produces correct cpp guards.
10253 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
10254 guards.
10255 Reported by Wwp.
10256
10257 2001-11-01 Akim Demaille <akim@epita.fr>
10258
10259 * tests/regression.at (Invalid input: 2): New.
10260 * src/lex.c (unlexed_token_buffer): New.
10261 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
10262 too.
10263 Reported by Wwp.
10264
10265 2001-11-01 Akim Demaille <akim@epita.fr>
10266
10267 * tests/calc.at: Catch up with 1.30.
10268 * configure.in: Bump to 1.49a.
10269 Adjust to newer Autotest.
10270
10271 2001-10-19 Pascal Bart <pascal.bart@epita.fr>
10272
10273 * src/conflicts.c: Move global variables rrc_total and src_total ...
10274 (print_conflicts): here.
10275 * src/output.c (output): Free global variable user_toknums.
10276 * src/lex.c (token_obstack): Become static.
10277
10278 2001-10-18 Akim Demaille <akim@epita.fr>
10279
10280 * tests/atlocal.in (GCC): Add.
10281 * tests/calc.at: s/m4_match/m4_bmatch/.
10282 s/m4_patsubst/m4_bpatsubst/.
10283 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
10284 * configure.in: AC_SUBST(GCC).
10285
10286 2001-10-14 Marc Autret <autret_m@epita.fr>
10287
10288 * src/options.c (create_long_option_table): Fix.
10289
10290 2001-10-10 Akim Demaille <akim@epita.fr>
10291
10292 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
10293
10294 2001-10-04 Akim Demaille <akim@epita.fr>
10295
10296 * src/reader.c (parse_union_decl): Push the caracters in
10297 union_obstack, not attrs_obstack.
10298
10299 2001-10-04 Akim Demaille <akim@epita.fr>
10300
10301 Merge in the branch 1.29.
10302
10303 * src/reader.c (packsymbols): Use a temporary obstack for
10304 `%%tokendef', since output_stack is already used elsewhere.
10305
10306 2001-10-02 Akim Demaille <akim@epita.fr>
10307
10308 Bump 1.29d.
10309
10310 2001-10-02 Akim Demaille <akim@epita.fr>
10311
10312 Version 1.29c.
10313
10314 2001-10-02 Akim Demaille <akim@epita.fr>
10315
10316 * tests/regression.at (Invalid CPP headers): New.
10317 From Alexander Belopolsky.
10318 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
10319
10320 2001-10-02 Akim Demaille <akim@epita.fr>
10321
10322 * tests/regression.at (Invalid input): New.
10323 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
10324 Reported by Shura.
10325
10326 2001-10-02 Akim Demaille <akim@epita.fr>
10327
10328 * tests/calc.at: Now that --debug works, the tests must be adjusted.
10329
10330 2001-10-02 Akim Demaille <akim@epita.fr>
10331
10332 * src/output.c (output_parser): Assert `skeleton'.
10333 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
10334 systems.
10335 From Shura.
10336
10337 2001-10-01 Marc Autret <autret_m@epita.fr>
10338
10339 * src/lex.h: Echo modifications.
10340 * src/lex.c (unlex): Parameter is now token_t.
10341 From Hans Aberg.
10342
10343 2001-10-01 Marc Autret <autret_m@epita.fr>
10344
10345 * src/main.c: Include lex.h.
10346 From Hans Aberg.
10347
10348 2001-09-29 Akim Demaille <akim@epita.fr>
10349
10350 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
10351
10352 2001-09-28 Akim Demaille <akim@epita.fr>
10353
10354 * tests/testsuite.at: Update to newer Autotest.
10355 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
10356
10357 2001-09-27 Akim Demaille <akim@epita.fr>
10358
10359 Position independent wrapper.
10360
10361 * tests/bison: Remove.
10362 * tests/bison.in: New.
10363 * configure.in: Adjust.
10364
10365 2001-09-27 Paul Eggert <eggert@twinsun.com>
10366
10367 Port quotearg fixes from tar 1.13.24.
10368
10369 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
10370 tm to be declared.
10371 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
10372 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
10373
10374 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
10375 * m4/mbrtowc.m4: New file.
10376 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
10377 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
10378
10379 2001-09-27 Akim Demaille <akim@epita.fr>
10380
10381 Bump to 1.29c.
10382
10383 2001-09-27 Akim Demaille <akim@epita.fr>
10384
10385 Version 1.29b.
10386
10387 2001-09-25 Akim Demaille <akim@epita.fr>
10388
10389 * src/system.h: Include `xalloc.h'.
10390 Remove it from the C files.
10391 * src/files.c (output_files): Free the obstacks.
10392 * src/lex.c (init_lex): Rename as...
10393 (lex_init): this.
10394 (lex_free): New.
10395 * src/main.c (main): Use it.
10396
10397 2001-09-24 Marc Autret <autret_m@epita.fr>
10398
10399 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
10400 to output informations in fout (FILE*).
10401 (open_graph, close_graph): Likewise.
10402 (output_graph, output_edge, output_node): Likewise.
10403 * src/vcg.h: Update function prototypes.
10404 * src/print_graph.c (print_graph): Open output graph file.
10405 (print_actions): Adjust.
10406 * src/files.h: Remove extern declaration.
10407 * src/files.c: Remove graph_obstack declaration.
10408 (open_files): Remove graph_obstack initialization.
10409 (output_files): Remove graph_obstack saving.
10410
10411 2001-09-24 Marc Autret <autret_m@epita.fr>
10412
10413 * src/files.c (compute_output_file_names): Fix.
10414
10415 2001-09-24 Marc Autret <autret_m@epita.fr>,
10416 Akim Demaille <akim@epita.fr>
10417
10418 * src/reader.c (reader): Remove call to free_symtab ().
10419 * src/main.c (main): Call it here.
10420 Include symtab.h.
10421 * src/conflicts.c (initialize_conflicts): Rename as...
10422 (solve_conflicts): this.
10423 * src/print.c (print_core, print_actions, print_state)
10424 (print_grammar): Dump to a file instead a `output_obstack'.
10425 (print_results): Dump `output_obstack', and then proceed with the
10426 FILE *.
10427 * src/files.c (compute_output_file_names, close_files): New.
10428 (output_files): Adjust.
10429 * src/main.c (main): Adjust.
10430
10431 2001-09-23 Marc Autret <autret_m@epita.fr>
10432
10433 * src/files.c (compute_header_macro): Computes header macro name
10434 from spec_defines_file when given.
10435
10436 2001-09-23 Marc Autret <autret_m@epita.fr>
10437
10438 * src/files.c (output_files): Add default extensions.
10439
10440 2001-09-22 Akim Demaille <akim@epita.fr>
10441
10442 * src/conflicts.c (finalize_conflicts): Rename as...
10443 (free_conflicts): this.
10444
10445 2001-09-22 Akim Demaille <akim@epita.fr>
10446
10447 * src/gram.c (gram_free): Rename back as...
10448 (dummy): this.
10449 (output_token_translations): Free `token_translations'.
10450 * src/symtab.c (free_symtab): Free the tag field.
10451
10452 2001-09-22 Akim Demaille <akim@epita.fr>
10453
10454 Remove `translations' as it is always set to true.
10455
10456 * src/gram.h: Adjust.
10457 * src/reader.c (packsymbols, parse_token_decl): Adjust
10458 * src/print.c (print_grammar): Adjust.
10459 * src/output.c (output_token_translations): Adjust.
10460 * src/lex.c (lex): Adjust.
10461 * src/gram.c: Be sure the set pointers to NULL.
10462 (dummy): Rename as...
10463 (gram_free): this.
10464
10465 2001-09-22 Akim Demaille <akim@epita.fr>
10466
10467 * configure.in: Invoke AM_LIB_DMALLOC.
10468 * src/system.h: Use dmalloc.
10469 * src/LR0.c: Be sure to have pointers initialized to NULL.
10470 (allocate_itemsets): Allocate kernel_items only if needed.
10471
10472 2001-09-22 Akim Demaille <akim@epita.fr>
10473
10474 * configure.in: Bump to 1.29b.
10475 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
10476 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
10477 need xmalloc.c in calc.y.
10478 From Pascal Bart.
10479
10480 2001-09-21 Akim Demaille <akim@epita.fr>
10481
10482 Version 1.29a.
10483 * Makefile.maint, config/config.guess, config/config.sub,
10484 * config/missing: Update from masters.
10485 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
10486 upon package.m4.
10487 * configure.in (ALL_LINGUAS): Add `tr'.
10488
10489 2001-09-21 Akim Demaille <akim@epita.fr>
10490
10491 * tests/Makefile.am (package.m4): Move to...
10492 ($(srcdir)/$(TESTSUITE)): here.
10493
10494 2001-09-20 Akim Demaille <akim@epita.fr>
10495
10496 * src/complain.c: No longer try to be standalone: use system.h.
10497 Don't assume __STDC__ is defined to 1. Just test if it is defined.
10498 * src/complain.h: Likewise.
10499 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
10500 Remove the unused variable `n'.
10501 From Albert Chin-A-Young.
10502
10503 2001-09-18 Marc Autret <autret_m@epita.fr>
10504
10505 * doc/bison.1: Update.
10506 * doc/bison.texinfo (Bison Options): Update --defines and --graph
10507 descriptions.
10508 (Option Cross Key): Update.
10509 Add --graph.
10510
10511 2001-09-18 Marc Autret <autret_m@epita.fr>
10512
10513 * tests/regression.at: New test (comment in %union).
10514
10515 2001-09-18 Marc Autret <autret_m@epita.fr>
10516
10517 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
10518 do that.
10519 Reported by Keith Browne.
10520
10521 2001-09-18 Marc Autret <autret_m@epita.fr>
10522
10523 * tests/output.at: Add tests for --defines and --graph.
10524
10525 2001-09-18 Marc Autret <autret_m@epita.fr>
10526
10527 * tests/output.at: Removes tests of %{header,src}_extension features.
10528
10529 2001-09-18 Akim Demaille <akim@epita.fr>
10530
10531 * tests/Makefile.am (package.m4): New.
10532 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
10533 (_AT_CHECK_CALC_ERROR): Likewise.
10534 Factor the `, ' part of verbose error messages.
10535
10536 2001-09-18 Marc Autret <autret_m@epita.fr>
10537
10538 * src/getargs.c (longopts): Declare --defines and --graph as options
10539 with optional arguments.
10540 * src/files.h: Add extern declarations.
10541 * src/files.c (spec_graph_file, spec_defines_file): New.
10542 (output_files): Update.
10543 Remove CPP-outed code.
10544
10545 2001-09-18 Marc Autret <autret_m@epita.fr>
10546
10547 Turn off %{source,header}_extension feature.
10548
10549 * src/files.c (compute_exts_from_gf): Update.
10550 (compute_exts_from_src): Update.
10551 (output_files): CPP-out useless code.
10552 * src/files.h: Remove {header,source}_extension extern declarations.
10553 * src/reader.c (parse_dquoted_param): CPP-out.
10554 (parse_header_extension_decl): Remove.
10555 (parse_source_extension_decl): Remove.
10556 (read_declarations): Remove cases tok_{hdrext,srcext}.
10557 * src/lex.c (percent_table): Remove {header,source}_extension entries.
10558 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
10559
10560 2001-09-10 Akim Demaille <akim@epita.fr>
10561
10562 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
10563 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
10564 (AT_CHECK_OUTPUT): this.
10565 Merely check ls' exit status, its output is useless.
10566
10567 2001-09-10 Akim Demaille <akim@epita.fr>
10568
10569 * tests/calc.at: Use m4_match.
10570 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
10571
10572 2001-09-10 Marc Autret <autret_m@epita.fr>,
10573 Akim Demaille <akim@epita.fr>
10574
10575 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
10576 enum color_e.
10577 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
10578 to `normal'.
10579 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
10580 * src/lex.h: Adjust prototype.
10581 (token_t): Add `tok_undef'.
10582 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
10583 (parse_percent_token): Now returns token_t.
10584 Add default statement in switch.
10585 (lex): Separate `c' as an input variable, from the token_t result
10586 part.
10587 (unlexed): Is a token_t.
10588
10589 2001-09-10 Akim Demaille <akim@epita.fr>
10590
10591 * configure.in: Bump to 1.29a.
10592
10593 2001-09-07 Akim Demaille <akim@epita.fr>
10594
10595 Version 1.29.
10596
10597 2001-08-30 Akim Demaille <akim@epita.fr>
10598
10599 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
10600 * m4/atconfig.m4: Remove.
10601 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
10602 * tests/bison: New.
10603 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
10604 m4_if, m4_patsubst, and m4_regexp.
10605 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
10606 `input' file instead of echo.
10607
10608 2001-08-29 Akim Demaille <akim@epita.fr>
10609
10610 Bump to 1.28e.
10611
10612 2001-08-29 Akim Demaille <akim@epita.fr>
10613
10614 Version 1.28d.
10615
10616 2001-08-29 Paul Eggert <eggert@twinsun.com>
10617
10618 * src/bison.simple (yyparse): Don't take the address of an
10619 item before the start of an array, as that doesn't conform to
10620 the C Standard.
10621
10622 2001-08-29 Robert Anisko <anisko_r@epita.fr>
10623
10624 * doc/bison.texinfo (Location Tracking Calc): New node.
10625
10626 2001-08-29 Paul Eggert <eggert@twinsun.com>
10627
10628 * src/output.c (output): Do not define const, as this now
10629 causes more problems than it cures.
10630
10631 2001-08-29 Akim Demaille <akim@epita.fr>
10632
10633 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
10634 the nodes.
10635 Be sure to tag the `detailmenu'.
10636
10637 2001-08-29 Akim Demaille <akim@epita.fr>
10638
10639 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
10640 download in a tmp dir.
10641
10642 2001-08-28 Marc Autret <autret_m@epita.fr>
10643
10644 * config/depcomp: New file.
10645
10646 2001-08-28 Marc Autret <autret_m@epita.fr>
10647
10648 * doc/bison.1 (mandoc): Adjust.
10649 From Juan Manuel Guerrero.
10650
10651 2001-08-28 Marc Autret <autret_m@epita.fr>
10652
10653 * src/print_graph.c (print_state): Fix.
10654
10655 2001-08-27 Marc Autret <autret_m@epita.fr>
10656
10657 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
10658 char * members.
10659 Echo modifications to the functions prototypes.
10660 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
10661
10662 2001-08-27 Marc Autret <autret_m@epita.fr>
10663
10664 * src/vcg.c: Include `xalloc.h'.
10665 (add_colorentry): New.
10666 (add_classname): New.
10667 (add_infoname): New.
10668 * src/vcg.h: Add new prototypes.
10669
10670 2001-08-27 Akim Demaille <akim@epita.fr>
10671
10672 * Makefile.maint: Sync. again with CVS Autoconf.
10673
10674 2001-08-27 Akim Demaille <akim@epita.fr>
10675
10676 * Makefile.maint: Formatting changes.
10677 (po-update, cvs-update, update): New targets.
10678 (AMTAR): Remove.
10679
10680 2001-08-27 Akim Demaille <akim@epita.fr>
10681
10682 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
10683 * Makefile.maint: Sync. with CVS Autoconf.
10684
10685 2001-08-27 Marc Autret <autret_m@epita.fr>
10686
10687 * src/vcg.h (struct infoname_s): New.
10688 (struct colorentry_s): New.
10689 (graph_s): New fields {vertical,horizontal}_order in structure.
10690 Add `infoname' field.
10691 Add `colorentry' field;
10692 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
10693 (G_HORIZONTAL_ORDER): New.
10694 (G_INFONAME): New.
10695 (G_COLORENTRY): New.
10696 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
10697 Add output of `infoname'.
10698 Add output of `colorentry'.
10699
10700 2001-08-27 Marc Autret <autret_m@epita.fr>
10701
10702 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
10703 This one shadowed a global parameter.
10704
10705 2001-08-24 Marc Autret <autret_m@epita.fr>
10706
10707 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
10708 instead of `unsigned'.
10709 (print_state): Do not call obstack_object_size () in obstack_grow ()
10710 to avoid macro variables shadowing.
10711
10712 2001-08-23 Marc Autret <autret_m@epita.fr>
10713
10714 * src/lex.c (percent_table): Typo: s/naem/name/.
10715 Add graph option.
10716 Normalize new options declarations.
10717
10718 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
10719
10720 * tests/suite.at: Exercise %header_extension and %source_extension.
10721
10722 2001-08-16 Marc Autret <autret_m@epita.fr>
10723
10724 * src/reader.c (parse_dquoted_param): New.
10725 (parse_header_extension_decl): Use it.
10726 (parse_source_extension_decl): Likewise.
10727
10728 2001-08-16 Marc Autret <autret_m@epita.fr>
10729
10730 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
10731 (get_xxxx_str): Use assert () instead of complain ().
10732 Remove return invokations in default cases.
10733 (get_decision_str): Modify default behaviour. Remove second argument.
10734 Echo modifications on calls.
10735 (output_graph): Fix.
10736
10737 2001-08-16 Marc Autret <autret_m@epita.fr>
10738
10739 * src/getargs.c (usage): Update with ``-g, --graph''.
10740
10741 2001-08-16 Marc Autret <autret_m@epita.fr>
10742
10743 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
10744 (Option Cross Key): Likewise.
10745 * doc/bison.1: Update.
10746
10747 2001-09-25 Pascal Bart <pascal.bart@epita.fr>
10748
10749 * src/output.c (output_master_parser): Don't finish action_obstack.
10750 (output_parser): Don't care about the muscle action, here.
10751 (prepare): Copy the action_obstack in the action muscle.
10752 (output): Free action_obstack.
10753
10754 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
10755
10756 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
10757 will contain `%union' declaration.
10758 (parse_union_decl): Delete #line directive output.
10759 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
10760 informations about %union.
10761 (parse_union_decl): Copy the union_obstack in the muscle stype.
10762 * src/bison.simple: Add new #line directive.
10763 Add typdef %%stype YYSTYPE.
10764
10765 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
10766
10767 * src/bison.simple: Add new `#line' directive.
10768
10769 2001-09-22 Pascal Bart <pascal.bart@epita.fr>
10770
10771 * src/bison.simple: New `#line' directive.
10772 * src/output.c (output_parser): Support new dynamic muscle input_line.
10773
10774 2001-09-22 Marc Autret <autret_m@epita.fr>
10775
10776 * src/output.c (output_master_parser): New.
10777 (output_parser): Be more re-entrant.
10778
10779 2001-09-21 Marc Autret <autret_m@epita.fr>
10780
10781 * src/reader.c (copy_definition, parse_union_decl): Update and use
10782 `linef' muscle.
10783 (copy_action): Likewise.
10784 Use obstack_1grow ().
10785 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
10786
10787 2001-09-21 Marc Autret <autret_m@epita.fr>
10788
10789 * src/options.c (option_table): Adjust.
10790 * src/lex.c (parse_percent_token): Fix.
10791
10792 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
10793
10794 * src/options.c (symtab.h): Include it, need by lex.h.
10795
10796 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
10797
10798 * src/lex.c (parse_percent_token): Change type of variable `tx', which
10799 is now an option_table_struct*.
10800 (option_strcmp): New function option_strcmp.
10801 (parse_percent_token): Call option_strcmp.
10802 * src/getargs.c (xalloc.h, options.h): Include it.
10803 (getargs): Call create_long_option_table.
10804 (getargs): Free longopts at the end of the function.
10805 (shortopts): Move in options.c.
10806 * src/options.c (create_long_option_table): New function. Convert
10807 information from option_table to option structure.
10808 * src/reader.c (options.h): Include it.
10809
10810 * src/Makefile.am: Adjust.
10811 * src/options.c (option_table): Create from longopts and percent_table.
10812 * src/getargs.c (longopts): Delete.
10813 * src/lex.c (struct percent_table_struct): Delete.
10814 (percent_table): Delete.
10815 (options.h): Include it.
10816 * src/options.c: Create.
10817 * src/options.h: Create.
10818 Declare enum opt_access_e.
10819 Define struct option_table_struct.
10820
10821 2001-09-20 Marc Autret <autret_m@epita.fr>
10822
10823 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
10824 sections of Bison.
10825
10826 2001-09-19 Pascal Bart <pascal.bart@epita.fr>
10827
10828 * src/bison.simple: s/%%filename/%%skeleton.
10829 * src/muscle_tab.c (getargs.h): Include it.
10830 (muscle_init): Insert new muscle skeleton.
10831
10832 2001-09-18 Pascal Bart <pascal.bart@epita.fr>
10833
10834 * src/output.c (output_parser): Delete unused variable actions_dumped.
10835
10836 2001-09-07 Pascal Bart <pascal.bart@epita.fr>
10837
10838 * src/output.c (output): Delete call to reader_output_yylsp.
10839 * src/reader.c (reader): Likewise.
10840 * src/reader.h: Delete declaration of reader_output_yylsp.
10841
10842 2001-09-02 Marc Autret <autret_m@epita.fr>
10843
10844 * src/reader.c: Include muscle_tab.h.
10845 (parse_union_decl): Update.
10846 (parse_macro_decl): Rename parse_muscle_decl.
10847 Update to use renamed functions and variable.
10848 (read_declarations, copy_action, read_additionnal_code, : Updated
10849 with correct variables and functions names.
10850 (packsymbols, reader): Likewise.
10851
10852 * src/reader.h (muscle_obstack): Extern declaration update.
10853
10854 * src/output.c: Include muscle_tab.h
10855 In all functions using macro_insert, change by using muscle_insert ().
10856 (macro_obstack): Rename muscle_obstack.
10857 Echo modifications in the whole file.
10858 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
10859 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
10860 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
10861
10862 * src/muscle_tab.h: Update double inclusion macros.
10863 (macro_entry_s): Rename muscle_entry_s.
10864 Update prototypes.
10865
10866 * src/muscle_tab.c: Include muscle_tab.h.
10867 Rename macro_tabble to muscle_table.
10868 (mhash1, mhash2, mcmp): Use muscle_entry.
10869 (macro_init): Rename muscle_init. Update.
10870 (macro_insert): Rename muscle_insert. Update.
10871 (macro_find): Rename muscle_find. Update.
10872
10873 * src/main.c: Include muscle_tab.h.
10874 (main): Call muscle_init ().
10875 * src/Makefile.am (bison_SOURCES): Echo modifications.
10876
10877 2001-09-02 Marc Autret <autret_m@epita.fr>
10878
10879 Now the files macro_tab.[ch] are named muscle_tab.[ch].
10880
10881 * src/muscle_tab.c, src/muscle_tab.h: Add files.
10882
10883 2001-09-02 Marc Autret <autret_m@epita.fr>
10884
10885 * src/macrotab.c, src/macrotab.h: Remove.
10886
10887 2001-09-01 Pascal Bart <pascal.bart@epita.fr>
10888
10889 * src/reader.c (copy_guard): Use muscle to specify the `#line'
10890 filename.
10891
10892 2001-09-01 Marc Autret <autret_m@epita.fr>
10893
10894 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
10895 to an explicit value to activate the feature. We do it here.
10896
10897 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
10898
10899 * src/output.c (prepare): Delete the `filename' muscule insertion.
10900 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
10901 (parse_union_decl): Likewise.
10902 * src/macrotab.c (macro_init): Initialize filename by infile.
10903
10904 2001-08-31 Marc Autret <autret_m@epita.fr>
10905
10906 * src/bison.simple (YYLSP_NEEDED): New definition.
10907 * src/output.c (prepare): Add macro insertion of `locations_flag'
10908
10909 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
10910
10911 * src/output.c (prepare): Delete insertion of previous muscles,
10912 and insert the `prefix' muscles.
10913 * src/macrotab.c (macro_init): Likewise.
10914 (macro_init): Initialization prefix directive by `yy'.
10915 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
10916 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
10917 yylval, yydebug, yyerror, yynerrs and yyparse.
10918 New directive `#define' to substitute yydebug, ... with option
10919 name_prefix.
10920
10921 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
10922
10923 * src/main.c (main): Standardize.
10924 * src/output.c (output_table_data, output_parser): Likewise.
10925 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
10926
10927 2001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
10928
10929 * src/reader.c (read_additionnal_code): Rename %%user_code to
10930 %%epilogue.
10931 * src/output.c (output): Rename %%declarations to %%prologue.
10932 * src/bison.simple: Echo modifications.
10933
10934 2001-08-31 Marc Autret <autret_m@epita.fr>
10935
10936 * src/reader.c (readgram): CleanUp.
10937 (output_token_defines): Likewise.
10938 (packsymbols): Likewise.
10939 (reader): Likewise.
10940 * src/output.c (output): CPP-out useless code.
10941
10942 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
10943
10944 * src/reader.c (reader): Delete obsolete call to function
10945 output_trailers and output_headers.
10946 * src/output.h: Remove obsolete functions prototypes of output_headers
10947 and output_trailers.
10948
10949 2001-08-30 Pascal Bart <pascal.bart@epita.fr>
10950
10951 * src/main.c: Include macrotab.h.
10952 * src/macrotab.h (macro_entry_s): Constify fields.
10953 Adjust functions prototypes.
10954 * src/macrotab.c (macro_insert): Constify key and value.
10955 (macro_find): Constify key.
10956 (macro_insert): Include 'xalloc.h'
10957 (macro_insert): Use XMALLOC.
10958 (macro_find): Constify return value.
10959 * src/output.c (output_table_data): Rename table to table_data.
10960 (output_parser): Constify macro_key, macro_value.
10961
10962 2001-08-30 Marc Autret <autret_m@epita.fr>
10963
10964 * src/reader.c (parse_skel_decl): New.
10965 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
10966 * src/lex.h (token_t): New token `tok_skel'.
10967 * src/lex.c (percent_table): Add skeleton option entry.
10968 Standardize.
10969
10970 2001-08-29 Marc Autret <autret_m@epita.fr>
10971
10972 * src/bison.simple: Add %%user_code directive at the end.
10973 * src/reader.c (read_additionnal_code): New.
10974 (reader): Use it.
10975 * src/output.c (output_program): Remove.
10976 (output): Update.
10977
10978 2001-08-28 Marc Autret <autret_m@epita.fr>
10979
10980 * src/output.c (output_actions): Clean up.
10981 (output_gram): CPP-out useless code.
10982 * src/reader.c (reader): Clean up, CPP-out useless code.
10983
10984 2001-08-28 Pascal Bart <pascal.bart@epita.fr>
10985
10986 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
10987 directive.
10988 * src/bison.simple: Add `%%definitions'.
10989
10990 2001-08-28 Marc Autret <autret_m@epita.fr>
10991
10992 * config/depcomp: New file.
10993
10994 2001-08-27 Paul Eggert <eggert@twinsun.com>
10995
10996 * src/bison.simple (yyparse): Don't take the address of an
10997 item before the start of an array, as that doesn't conform to
10998 the C Standard.
10999
11000 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
11001
11002 * src/output.c (output): Remove the initialization of the macro
11003 obstack. It was done too late here.
11004
11005 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
11006 completely wrong.
11007 (reader): Initialize the macro obstack here, since we need it to grow
11008 '%define' directives.
11009
11010 * src/reader.h: Declare the macro obstack as extern.
11011
11012 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
11013
11014 * src/output.c (output_parser): Fix. Store single '%' characters in
11015 the output obstack instead of throwing them away.
11016
11017 2001-08-27 Akim Demaille <akim@epita.fr>
11018
11019 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
11020
11021 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
11022
11023 * lib/Makefile.am: Adjust.
11024
11025 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
11026
11027 * src/bison.simple: Update and add '%%' directives.
11028
11029 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
11030
11031 * src/reader.c (reader): Remove calls to 'output_headers' and
11032 'output_trailers'. Remove some C output.
11033 (readgram): Disable a piece of code that was writing a default
11034 definition for 'YYSTYPE'.
11035 (reader_output_yylsp): Remove.
11036 (packsymbols): Output token defintions to a macro.
11037 (copy_definition): Disable C output.
11038
11039 * src/reader.c (parse_macro_decl): New function used to parse macro
11040 declarations.
11041 (copy_string2): Put the body of copy_string into this new function.
11042 Add a parameter to let the caller choose whether he wants to copy the
11043 string delimiters or not.
11044 (copy_string): Be a simple call to copy_string2 with the last argument
11045 bound to true.
11046 (read_declarations): Add case for macro definition.
11047 (copy_identifier): New.
11048 (parse_macro_decl): Read macro identifiers using copy_identifier
11049 rather than lex.
11050
11051 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
11052
11053 * src/output.c (prepare): Add prefixed names.
11054 (output_parser): Output semantic actions.
11055 (output_parser): Fix bug on '%%line' directives.
11056
11057 * src/output.c (output_headers): Remove. The C code printed by this
11058 function should now be in the skeletons.
11059 (output_trailers): Remove.
11060 (output): Disable call to 'reader_output_yylsp'.
11061 (output_rule_data): Do not output tables to the table obstack.
11062
11063 * src/output.c: Remove some C dedicated output.
11064 Improve the use of macro and output obstacks.
11065 (output_defines): Remove.
11066
11067 * src/output.c (output_token_translations): Associate 'translate'
11068 table with a macro. No output to the table obstack.
11069 (output_gram): Same for 'rhs' and 'prhs'.
11070 (output_stos): Same for 'stos'.
11071 (output_rule_data): Same for 'r1' and 'r2'.
11072 (token_actions): Same for 'defact'.
11073 (goto_actions): Same for 'defgoto'.
11074 (output_base): Same for 'pact' and 'pgoto'.
11075 (output_table): Same for 'table'.
11076 (output_check): Same for 'check'.
11077
11078 * src/output.c (output_table_data): New function.
11079 (output_short_table): Remove.
11080 (output_short_or_char_table): Remove.
11081
11082 * src/output.c (output_parser): Replace most of the skeleton copy code
11083 with something new. Skeletons are now processed character by character
11084 rather than line by line, and Bison looks for '%%' macros. This is the
11085 first step in making Bison's output process (a lot) more flexible.
11086 (output_parser): Use the macro table.
11087
11088 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
11089
11090 * src/main.c (main): Initialize the macro table.
11091
11092 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
11093
11094 * src/lex.c (percent_table): Add tok_define.
11095 * src/lex.h: Add tok_define.
11096
11097 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
11098
11099 * src/macrotab.c: New file.
11100 * src/macrotab.h: New file.
11101 * src/Makefile.am: Update.
11102
11103 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
11104
11105 * lib/hash.c: New file.
11106 * lib/hash.h: New file.
11107 * lib/Makefile.am: Update.
11108
11109 2001-08-15 Akim Demaille <akim@epita.fr>
11110
11111 Version 1.28c.
11112
11113 2001-08-15 Marc Autret <autret_m@epita.fr>
11114
11115 * src/reader.c (readgram): Indent output macro YYSTYPE.
11116 (packsymbols): Likewise.
11117 (output_token_defines): Likewise.
11118 * src/files.c: Standardize.
11119 (compute_header_macro): New.
11120 (defines_obstack_save): New. Use compute_header_macro.
11121 (output_files): Update. Use defines_obstack_save.
11122
11123 2001-08-15 Akim Demaille <akim@epita.fr>
11124
11125 * doc/bison.texinfo (Table of Symbols): Document
11126 YYSTACK_USE_ALLOCA.
11127
11128 2001-08-15 Akim Demaille <akim@epita.fr>
11129
11130 * missing: Update from CVS Automake.
11131 * config/config.guess, config/config.sub, config/texinfo.tex:
11132 Update from gnu.org.
11133
11134 2001-08-15 Akim Demaille <akim@epita.fr>
11135
11136 * Makefile.maint: Sync with CVS Autoconf.
11137
11138 2001-08-14 Pascal Bart <pascal.bart@epita.fr>
11139
11140 * doc/bison.texinfo: Include GNU Free Documentation License from
11141 `fdl.texi'.
11142 * doc/fdl.texi: Add to package.
11143
11144 2001-08-14 Marc Autret <autret_m@epita.fr>
11145
11146 Turn on %{source,header}_extension features.
11147
11148 * src/lex.c (percent_table): Un-CPP out header_extension and
11149 source_extension.
11150 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
11151 (compute_exts_from_src): Remove conditions. It restores priorities
11152 between options.
11153
11154 2001-08-14 Marc Autret <autret_m@epita.fr>
11155
11156 * src/files.c (compute_base_names): Add extensions computing when
11157 `--file-prefix' used.
11158 Standardize function calls.
11159
11160 2001-08-13 Marc Autret <autret_m@epita.fr>
11161
11162 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
11163 defining it (defined but null disables alloca).
11164
11165 2001-08-13 Marc Autret <autret_m@epita.fr>
11166
11167 * src/bison.simple (_yy_memcpy): CPP reformat.
11168
11169 2001-08-13 Pascal Bart <pascal.bart@epita.fr>
11170
11171 * tests/atconfig.in (CPPFLAGS): Fix.
11172
11173 2001-08-10 Pascal Bart <pascal.bart@epita.fr>
11174
11175 * doc/bison.texinfo: Include GNU General Public License from
11176 `gpl.texi'.
11177 * doc/gpl.texi: Add to package.
11178
11179 2001-08-10 Marc Autret <autret_m@epita.fr>
11180
11181 * src/print_graph.h: Fix.
11182 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
11183
11184 2001-08-10 Akim Demaille <akim@epita.fr>
11185
11186 * src/system.h: Provide default declarations for stpcpy, strndup,
11187 and strnlen.
11188
11189 2001-08-10 Robert Anisko <anisko_r@epita.fr>
11190
11191 * doc/bison.texinfo (Locations): Update @$ stuff.
11192
11193 2001-08-09 Robert Anisko <anisko_r@epita.fr>
11194
11195 * src/bison.simple (YYLLOC_DEFAULT): Update.
11196 (yyparse): Adjust.
11197
11198 2001-08-08 Marc Autret <autret_m@epita.fr>
11199
11200 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
11201 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
11202 Reported by Fabrice Bauzac.
11203
11204 2001-08-08 Marc Autret <autret_m@epita.fr>
11205
11206 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
11207 * src/vcg.c (output_node): Fix.
11208 * src/vcg.h: Cleanup.
11209 * src/print_graph.c: Add comments.
11210 (node_output_size): New global variable. Simplify the formatting of
11211 the VCG graph output.
11212 (print_actions): Unused code is now used. It notifies the final state
11213 and no action states in the VCG graph. It also give the reduce actions.
11214 The `shift and goto' edges are red and the `go to state' edges are
11215 blue.
11216 Get the current node name and node_obstack by argument.
11217 (node_obstack): New variable.
11218 (print_state): Manage node_obstack.
11219 (print_core): Use node_obstack given by argument.
11220 A node is not only computed here but in print_actions also.
11221 (print_graph): CPP out useless code instead of commenting it.
11222
11223 2001-08-07 Pascal Bart <pascal.bart@epita.fr>
11224
11225 * tests/atconfig.in (CPPFLAGS): Fix.
11226
11227 2001-08-07 Akim Demaille <akim@epita.fr>
11228
11229 * src/print_graph.c (quote): New.
11230 (print_core): Use it.
11231
11232 2001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
11233
11234 * src/vcg.c (complain.h): Include it.
11235 Unepitaize `return' invocations.
11236 [NDEBUG] (main): Remove.
11237 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
11238 * src/files.c (open_files): Initialize graph_obstack.
11239 * src/print_graph.c (print_actions): CPP out useless code.
11240 (print_core): Don't output the last `\n' in labels.
11241 Use `quote'.
11242 * src/files.c (output_files): Output the VCG file.
11243 * src/main.c (main): Invoke print_graph ();
11244
11245 2001-08-06 Marc Autret <autret_m@epita.fr>
11246
11247 Automaton VCG graph output.
11248 Using option ``-g'' or long option ``--graph'', you can generate
11249 a gram_filename.vcg file containing a VCG description of the LALR (1)
11250 automaton of your grammar.
11251
11252 * src/main.c: Call to print_graph() function.
11253 * src/getargs.h: Update.
11254 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
11255 (graph_flag): New flag.
11256 (longopts): Update.
11257 (getargs): Add case `g'.
11258 * src/files.c (graph_obstack): New obstack struct.
11259 (open_files): Initialize new obstack.
11260 (output_files): Saves graph_obstack if required.
11261 * src/files.h (graph_obstack): New extern declaration.
11262 * src/Makefile.am: Add new source files.
11263
11264 2001-08-06 Marc Autret <autret_m@epita.fr>
11265
11266 * src/print_graph.c, src/print_graph.h (graph): New.
11267 * src/vcg.h: New file.
11268 * src/vcg.c: New file, VCG graph handling.
11269
11270 2001-08-06 Marc Autret <autret_m@epita.fr>
11271
11272 Add of %source_extension and %header_extension which specify
11273 the source or/and the header output file extension.
11274
11275 * src/files.c (compute_base_names): Remove initialisation of
11276 src_extension and header_extension.
11277 (compute_exts_from_gf): Update.
11278 (compute_exts_from_src): Update.
11279 (output_files): Update.
11280 * src/reader.c (parse_header_extension_decl): New.
11281 (parse_source_extension_decl): New.
11282 (read_declarations): New case statements for the new tokens.
11283 * src/lex.c (percent_table): Add entries for %source_extension
11284 and %header_extension.
11285 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
11286
11287 2001-08-06 Marc Autret <autret_m@epita.fr>
11288
11289 * configure.in: Bump to 1.28c.
11290 * doc/bison.texinfo: Texinfo thingies.
11291
11292 2001-08-04 Pascal Bart <pascal.bart@epita.fr>
11293
11294 * tests/atconfig.in (CPPFLAGS): Add.
11295 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
11296
11297 2001-08-03 Akim Demaille <akim@epita.fr>
11298
11299 Version 1.28b.
11300
11301 2001-08-03 Akim Demaille <akim@epita.fr>
11302
11303 * tests/Makefile.am (check-local): Ship testsuite.
11304 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
11305 Include `string.h'.
11306
11307 2001-08-03 Akim Demaille <akim@epita.fr>
11308
11309 * configure.in: Try using -Wformat when compiling.
11310
11311 2001-08-03 Akim Demaille <akim@epita.fr>
11312
11313 * configure.in: Bump to 1.28b.
11314
11315 2001-08-03 Akim Demaille <akim@epita.fr>
11316
11317 * src/complain.c: Adjust strerror_r portability issues.
11318
11319 2001-08-03 Akim Demaille <akim@epita.fr>
11320
11321 Version 1.28a.
11322
11323 2001-08-03 Akim Demaille <akim@epita.fr>
11324
11325 * src/getargs.c, src/getarg.h (skeleton)): Constify.
11326 * src/lex.c (literalchar): Avoid name clashes on `buf'.
11327 * src/getargs.c: Include complain.h.
11328 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
11329 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
11330
11331 2001-08-03 Akim Demaille <akim@epita.fr>
11332
11333 * src/reader.c (readgram): Display hidden chars in error messages.
11334
11335 2001-08-03 Akim Demaille <akim@epita.fr>
11336
11337 Update to gettext 0.10.39.
11338
11339 2001-08-03 Akim Demaille <akim@epita.fr>
11340
11341 * lib/strspn.c: New.
11342
11343 2001-08-01 Marc Autret <autret_m@epita.fr>
11344
11345 * doc/bison.texinfo: Update.
11346 * doc/bison.1 (mandoc): Update.
11347 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
11348 * src/files.c: Support output files extensions computing.
11349 (src_extension): New static variable.
11350 (header_extension): New static variable.
11351 (tr): New function.
11352 (get_extension_index): New function, gets the index of an extension
11353 filename in a string.
11354 (compute_exts_from_gf): New function, computes extensions from the
11355 grammar file extension.
11356 (compute_exts_from_src): New functions, computes extensions from the
11357 C source file extension, file given by ``-o'' option.
11358 (compute_base_names): Update.
11359 (output_files): Update.
11360
11361 2001-08-01 Robert Anisko <anisko_r@epita.fr>
11362
11363 * doc/bison.texi: Document @$.
11364 (Locations): New section.
11365
11366 2001-07-18 Akim Demaille <akim@epita.fr>
11367
11368 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
11369 * config/prev-version.txt, config/move-if-change: New.
11370 * Makefile.am: Adjust.
11371
11372 2001-07-08 Pascal Bart <pascal.bart@epita.fr>
11373
11374 * src/bison.simple (yyparse): Suppress warning `comparaison
11375 between signed and unsigned'.
11376
11377 2001-07-05 Pascal Bart <pascal.bart@epita.fr>
11378
11379 * src/getargs.h (raw_flag): Remove.
11380 * src/getargs.c: Die on `-r'/`--raw'.
11381 * src/lex.c (parse_percent_token): Die on `%raw'.
11382 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
11383 * tests/calc.at: Suppress test with option `--raw'.
11384
11385 2001-07-14 Akim Demaille <akim@epita.fr>
11386
11387 * config/: New.
11388 * configure.in: Require Autoconf 2.50.
11389 Update to gettext 0.10.38.
11390
11391 2001-03-16 Akim Demaille <akim@epita.fr>
11392
11393 * doc/bison.texinfo: ANSIfy the examples.
11394
11395 2001-03-16 Akim Demaille <akim@epita.fr>
11396
11397 * getargs.c (skeleton): New variable.
11398 (longopts): --skeleton is a new option.
11399 (shortopts, getargs): -S is a new option.
11400 * getargs.h: Declare skeleton.
11401 * output.c (output_parser): Use it.
11402
11403 2001-03-16 Akim Demaille <akim@epita.fr>
11404
11405 * m4/strerror_r.m4: New.
11406 * m4/error.m4: Run AC_FUNC_STRERROR_R.
11407 * lib/error.h, lib/error.c: Update.
11408
11409 2001-03-16 Akim Demaille <akim@epita.fr>
11410
11411 * src/getargs.c (longopts): Clean up.
11412
11413 2001-02-21 Akim Demaille <akim@epita.fr>
11414
11415 * src/reader.c (gensym): `gensym_count' is your own.
11416 Use a static buf to create the symbol name, as token_buffer is no
11417 longer a buffer.
11418
11419 2001-02-08 Akim Demaille <akim@epita.fr>
11420
11421 * src/conflicts.c (conflict_report): Be sure not to append to res
11422 between two calls, which could happen if both first sprintf were
11423 skipped, but not the first cp += strlen.
11424
11425 2001-02-08 Akim Demaille <akim@epita.fr>
11426
11427 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
11428 New, from fileutils 4.0.37.
11429 * configure.in: Require Autoconf 2.49c. I took some time before
11430 making this decision. This is the only way out for portability
11431 issues in Bison, it would mean way too much duplicate effort to
11432 import in Bison features implemented in 2.49c since 2.13.
11433 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
11434
11435 2001-02-02 Akim Demaille <akim@epita.fr>
11436
11437 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
11438 * lib/xalloc.h, lib/xmalloc.c: Update.
11439
11440 2001-01-19 Akim Demaille <akim@epita.fr>
11441
11442 Get rid of the ad hoc handling of token_buffer in the scanner: use
11443 the obstacks.
11444
11445 * src/lex.c (token_obstack): New.
11446 (init_lex): Initialize it. No longer call...
11447 (grow_token_buffer): this. Remove it.
11448 Adjust all the places which used it to use the obstack.
11449
11450 2001-01-19 Akim Demaille <akim@epita.fr>
11451
11452 * src/lex.h: Rename all the tokens:
11453 s/\bENDFILE\b/tok_eof/g;
11454 s/\bIDENTIFIER\b/tok_identifier/g;
11455 etc.
11456 Let them be enums, not #define, to ease debugging.
11457 Adjust all the code.
11458
11459 2001-01-18 Akim Demaille <akim@epita.fr>
11460
11461 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
11462 * src/lex.c (maxtoken, grow_token_buffer): Static.
11463
11464 2001-01-18 Akim Demaille <akim@epita.fr>
11465
11466 Since we now use obstacks, more % directives can be enabled.
11467
11468 * src/lex.c (percent_table): Also accept `%yacc',
11469 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
11470 `%debug'.
11471 Handle the actions for `%semantic_parser' and `%pure_parser' here,
11472 instead of returning a token.
11473 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
11474 * src/reader.c (read_declarations): Adjust.
11475 * src/files.c (open_files): Don't call `compute_base_names', don't
11476 compute `attrsfile' since they depend upon data which might be
11477 *in* the input file now.
11478 (output_files): Do it here.
11479 * src/output.c (output_headers): Document the fact that this patch
11480 introduces a guaranteed SEGV for semantic parsers.
11481 * doc/bison.texinfo: Document them.
11482 * tests/suite.at: Exercise these %options.
11483
11484 2000-12-20 Akim Demaille <akim@epita.fr>
11485
11486 Also handle the output file (--verbose) with obstacks.
11487
11488 * files.c (foutput): Remove.
11489 (output_obstack): New.
11490 Adjust all dependencies.
11491 * src/conflicts.c: Return a string.
11492 * src/system.h (obstack_grow_string): Rename as...
11493 (obstack_sgrow): this. Be ready to work with non literals.
11494 (obstack_fgrow4): New.
11495
11496 2000-12-20 Akim Demaille <akim@epita.fr>
11497
11498 * src/files.c (open_files): Fix the computation of short_base_name
11499 in the case of `-o foo.tab.c'.
11500
11501 2000-12-20 Akim Demaille <akim@epita.fr>
11502
11503 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
11504 (copy_dollar): Now that everything uses obstacks, get rid of the
11505 FILE * parameters.
11506
11507 2000-12-20 Akim Demaille <akim@epita.fr>
11508
11509 * src/files.c (open_files): Actually the `.output' file is based
11510 on the short_base_name, not base_name.
11511 * tests/suite.at (Checking output file names): Adjust.
11512
11513 2000-12-20 Akim Demaille <akim@epita.fr>
11514
11515 * src/bison.s1: Remove, we now use directly...
11516 * src/bison.simple: this.
11517 * src/Makefile.am: Use pkgdata instead of data.
11518
11519 2000-12-20 Akim Demaille <akim@epita.fr>
11520
11521 * src/files.c (guard_obstack): New.
11522 (open_files): Initialize it.
11523 (output_files): Dump it...
11524 * src/files.h: Export it.
11525 * src/reader.c (copy_guard): Use it.
11526
11527 2000-12-19 Akim Demaille <akim@epita.fr>
11528
11529 * src/files.c (outfile, defsfile, actfile): Removed as global
11530 vars.
11531 (open_files): Don't compute them.
11532 (output_files): Adjust.
11533 (base_name, short_base_name): Be global.
11534 Adjust dependencies.
11535
11536 2000-12-19 Akim Demaille <akim@epita.fr>
11537
11538 * src/files.c (strsuffix): New.
11539 (stringappend): Be just like strcat but allocate.
11540 (base_names): Eve out from open_files.
11541 Try to simplify the rather hairy computation of base_name and
11542 short_base_name.
11543 (open_files): Use it.
11544 * tests/suite.at (Checking output file names): New test.
11545
11546 2000-12-19 Akim Demaille <akim@epita.fr>
11547
11548 * src/system.h (obstack_grow_literal_string): Rename as...
11549 (obstack_grow_string): this.
11550 * src/output.c (output_parser): Recognize `%% actions' instead of
11551 `$'.
11552 * src/bison.s1: s/$/%% actions/.
11553 * src/bison.hairy: Likewise.
11554
11555 2000-12-19 Akim Demaille <akim@epita.fr>
11556
11557 * src/output.c (output_parser): Compute the `#line' lines when
11558 there are.
11559 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
11560 Suggested by Hans Aberg.
11561
11562 2000-12-19 Akim Demaille <akim@epita.fr>
11563
11564 Let the handling of the skeleton files be local to the procedures
11565 that use it.
11566
11567 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
11568 longer static.
11569 (fparser, open_extra_files): Remove.
11570 (open_files, output_files): Don't take care of fparser.
11571 * src/files.h: Adjust.
11572 * src/output.c (output_parser): Open and close the file to the
11573 skeleton.
11574 * src/reader.c (read_declarations): When %semantic_parser, open
11575 fguard.
11576
11577 2000-12-19 Akim Demaille <akim@epita.fr>
11578
11579 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
11580 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
11581
11582 2000-12-19 Akim Demaille <akim@epita.fr>
11583
11584 * src/files.c (open_files): Yipee! We no longer need all the code
11585 looking for `/tmp' since we have no tmp file.
11586
11587 2000-12-19 Akim Demaille <akim@epita.fr>
11588
11589 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
11590 New macros.
11591 * src/files.c (open_files): Less dependency on MSDOS etc.
11592
11593 2000-12-14 Akim Demaille <akim@epita.fr>
11594
11595 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
11596 Provide a default definition.
11597 Use it when executing the default @ action.
11598 * src/reader.c (reader_output_yylsp): No longer include
11599 `timestamp' and `text' in the default YYLTYPE.
11600
11601 2000-12-12 Akim Demaille <akim@epita.fr>
11602
11603 * src/reader.c (copy_definition, parse_union_decl, copy_action)
11604 (copy_guard): Quote the file names.
11605 Reported by Laurent Mascherpa.
11606
11607 2000-12-12 Akim Demaille <akim@epita.fr>
11608
11609 * src/output.c (output_headers, output_program, output): Be sure
11610 to escape special characters when outputting filenames.
11611 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
11612 (output_headers): Don't depend on them, Use ACTSTR.
11613
11614 2000-11-17 Akim Demaille <akim@epita.fr>
11615
11616 * lib/obstack.h: Formatting changes.
11617 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
11618 prevents type checking.
11619 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
11620 cast the value to (void *): assigning a `foo *' to a `void *'
11621 variable is valid.
11622 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
11623 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
11624 append characters.
11625
11626 2000-11-17 Akim Demaille <akim@epita.fr>
11627
11628 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
11629 as...
11630 (suite.m4, regression.m4, calc.m4): these.
11631 * tests/atgeneral.m4: Update from CVS Autoconf.
11632
11633 2000-11-17 Akim Demaille <akim@epita.fr>
11634
11635 * tests/regression.m4 (%union and --defines): New test,
11636 demonstrating a current bug in the obstack implementation.
11637
11638 2000-11-17 Akim Demaille <akim@epita.fr>
11639
11640 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
11641 macros.
11642 Use them to declare the variables which are global or local to
11643 `yyparse'.
11644
11645 2000-11-17 Akim Demaille <akim@epita.fr>
11646
11647 * acconfig.h: Remove, no longer used.
11648
11649 2000-11-07 Akim Demaille <akim@epita.fr>
11650
11651 * src: s/Copyright (C)/Copyright/g.
11652
11653 2000-11-07 Akim Demaille <akim@epita.fr>
11654
11655 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
11656 defining.
11657 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
11658
11659 2000-11-07 Akim Demaille <akim@epita.fr>
11660
11661 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
11662 Merge in a single CPP if/else.
11663
11664 2000-11-07 Akim Demaille <akim@epita.fr>
11665
11666 * src/output.c (output): Remove useless variables.
11667 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
11668 argument `data' for consistency with the prototypes.
11669 Qualify it `const'.
11670 (obstack_copy, obstack_copy0): Rename the second argument as
11671 `address' for consistency. Qualify it `const'.
11672 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
11673 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
11674 `const' their input argument (`data' or `address').
11675 Adjust the corresponding macros to include `const' in casts.
11676
11677 2000-11-03 Akim Demaille <akim@epita.fr>
11678
11679 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
11680 s/PFILE1/BISON_HAIRY/.
11681 Adjust dependencies.
11682
11683 2000-11-03 Akim Demaille <akim@epita.fr>
11684
11685 For some reason, this was not applied.
11686
11687 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
11688 `unlink': it's no longer used.
11689
11690 2000-11-03 Akim Demaille <akim@epita.fr>
11691
11692 * src/files.c (skeleton_find): New function, eved out of...
11693 (open_files, open_extra_files): here.
11694
11695 2000-11-03 Akim Demaille <akim@epita.fr>
11696
11697 Don't use `atexit'.
11698
11699 * src/files.c (obstack_save): New function.
11700 (done): Rename as...
11701 (output_files): this.
11702 Use `obstack_save'.
11703 * src/main.c (main): Don't use `atexit' to register `done', since
11704 it no longer has to remove tmp files, just call `output_files'
11705 when there are no errors.
11706
11707 2000-11-02 Akim Demaille <akim@epita.fr>
11708
11709 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
11710 `unlink': it's no longer used.
11711 * src/files.h: Formatting changes.
11712
11713 2000-11-02 Akim Demaille <akim@epita.fr>
11714
11715 Remove the last uses of mktemp and unlink/delete.
11716
11717 * src/files.c (fdefines, ftable): Removed.
11718 (defines_ostack, table_obstack): New.
11719 Adjust dependencies of the former into uses of the latter.
11720 * src/output.c (output_short_or_char_table, output_short_table):
11721 Convert to using obstacks.
11722 * src/reader.c (copy_comment2): Accept one FILE * and two
11723 obstacks.
11724 (output_token_defines, reader_output_yylsp): Use obstacks.
11725 * src/system.h (obstack_fgrow3): New.
11726 * po/POTFILES.in: Adjust.
11727
11728 2000-11-01 Akim Demaille <akim@epita.fr>
11729
11730 Change each use of `fattrs' into a use of `attrs_obstack'.
11731
11732 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
11733 * src/files.c (fattrs): Remove.
11734 (attrs_obstack): New.
11735 Adjust all dependencies.
11736 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
11737
11738 2000-11-01 Akim Demaille <akim@epita.fr>
11739
11740 Introduce obstacks.
11741 Change each use of `faction' into a use of `action_obstack'.
11742
11743 * lib/obstack.h, lib/obstack.c: New files.
11744 * src/files.c (faction): Remove.
11745 (action_obstack): New.
11746 Adjust all dependencies.
11747
11748 2000-10-20 Akim Demaille <akim@epita.fr>
11749
11750 * lib/quote.h (PARAMS): New macro. Use it.
11751
11752 2000-10-16 Akim Demaille <akim@epita.fr>
11753
11754 * src/output.c (output_short_or_char_table): New function.
11755 (output_short_table, output_token_translations): Use it.
11756 (goto_actions): Use output_short_table.
11757
11758 2000-10-16 Akim Demaille <akim@epita.fr>
11759
11760 * src/symtab.c (bucket_new): New function.
11761 (getsym): Use it.
11762
11763 * src/output.c (output_short_table): New argument to display the
11764 comment associated with the table.
11765 Adjust dependencies.
11766 (output_gram): Use it.
11767 (output_rule_data): Nicer output layout for YYTNAME.
11768
11769 2000-10-16 Akim Demaille <akim@epita.fr>
11770
11771 * src/lex.c (read_typename): New function.
11772 (lex): Use it.
11773 * src/reader.c (copy_dollar): Likewise.
11774
11775 2000-10-16 Akim Demaille <akim@epita.fr>
11776
11777 * src/reader.c (copy_comment2): Expect the input stream to be on
11778 the `/' which is suspected to open a comment, instead of being
11779 called after `//' or `/*' was read.
11780 (copy_comment, copy_definition, parse_union_decl, copy_action)
11781 (copy_guard): Adjust.
11782
11783 2000-10-16 Akim Demaille <akim@epita.fr>
11784
11785 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
11786 `read_signed_integer'.
11787
11788 2000-10-16 Akim Demaille <akim@epita.fr>
11789
11790 * src/reader.c (copy_dollar): New function.
11791 (copy_guard, copy_action): Use it.
11792
11793 2000-10-16 Akim Demaille <akim@epita.fr>
11794
11795 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
11796 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
11797 New files, from Fileutils 4.0.27.
11798 * src/main.c (printable_version): Remove.
11799 * src/lex.c, src/reader.c: Use `quote'.
11800
11801 2000-10-04 Akim Demaille <akim@epita.fr>
11802
11803 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
11804
11805 2000-10-04 Akim Demaille <akim@epita.fr>
11806
11807 * doc/bison.texinfo: Various typos spotted by Neil Booth.
11808
11809 2000-10-04 Akim Demaille <akim@epita.fr>
11810
11811 When a literal string is used to define two different tokens,
11812 `bison -v' segfaults.
11813 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
11814
11815 * tests/regression.m4: New file.
11816 Include the core of the sample provided by Piotr Gackiewicz.
11817 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
11818 properly.
11819
11820 2000-10-04 Akim Demaille <akim@epita.fr>
11821
11822 * src/reader.c (parse_expect_decl): Keep `count' within the size
11823 of `buffer'.
11824 From Neil Booth.
11825
11826 2000-10-02 Paul Eggert <eggert@twinsun.com>
11827
11828 * bison.s1 (yyparse): Assign the default value
11829 unconditionally, to avoid a GCC warning and make the parser a
11830 tad smaller.
11831
11832 2000-10-02 Akim Demaille <akim@epita.fr>
11833
11834 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
11835 options.
11836
11837 2000-10-02 Akim Demaille <akim@epita.fr>
11838
11839 * src/derives.c, src/print.c, src/reduce.c: To ease the
11840 translation, move some `\n' out of the translated strings.
11841
11842 2000-10-02 Akim Demaille <akim@epita.fr>
11843
11844 The location tracking mechanism is precious for parse error
11845 messages. Nevertheless, it is enabled only when `@n' is used in
11846 the grammar, which is a different issue (you can use it in error
11847 message, but not in the grammar per se). Therefore, there should
11848 be another means to enable it.
11849
11850 * src/getargs.c (getargs): Support `--locations'.
11851 (usage): Report it.
11852 * src/getargs.h (locationsflag): Export it.
11853 * src/lex.c (percent_table): Support `%locations'.
11854 * src/reader.c (yylsp_needed): Remove this variable, now replaced
11855 with `locationsflag'.
11856 * doc/bison.texinfo: Document `--locations' and `%locations'.
11857 Sort the options.
11858 * tests/calc.m4: Test it.
11859
11860 For regularity of the names, replace each
11861 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
11862 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
11863 In addition replace each `flag' with `_flag'.
11864
11865 2000-10-02 Akim Demaille <akim@epita.fr>
11866
11867 Also test parse error messages, including with YYERROR_VERBOSE.
11868
11869 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
11870 associative).
11871 Use it to check the computations.
11872 Use it to check `nonassoc' is honored.
11873 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
11874 `--yyerror-verbose'.
11875 (_AT_CHECK_CALC): Adjust to this option.
11876 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
11877
11878 2000-10-02 Akim Demaille <akim@epita.fr>
11879
11880 Test also `--verbose', `--defines' and `--name-prefix'. Testing
11881 the latter demonstrates a flaw in the handling of non debugging
11882 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
11883 was used in order to simplify:
11884
11885 #if YYDEBUG
11886 if (yydebug)
11887 {
11888 ...
11889 }
11890 #endif
11891
11892 into
11893
11894 if (yydebug)
11895 {
11896 ...
11897 }
11898
11899 unfortunately this leads to a CPP conflict when
11900 `--name-prefix=foo' is used since it produces `#define yydebug
11901 foodebug'.
11902
11903 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
11904 (YYDPRINTF): New macro.
11905 Spread its use.
11906 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
11907 the bison options.
11908 Also test `--verbose', `--defines' and `--name-prefix'.
11909
11910 2000-10-02 Akim Demaille <akim@epita.fr>
11911
11912 Improve the readability of the produced parsers.
11913
11914 * src/bison.s1: Formatting changes.
11915 Improve the comment related to the `$' mark.
11916 (yydefault): Don't fall through to `yyresume': `goto' there.
11917 * src/output.c (output_parser): When the `$' is met, skip the end
11918 of its line.
11919 New variable, `number_of_dollar_signs', to check there's exactly
11920 one `$' in the parser skeleton.
11921
11922 2000-10-02 Akim Demaille <akim@epita.fr>
11923
11924 * lib/xstrdup.c: New file, from the fileutils.
11925 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
11926 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
11927 instead of strlen + xmalloc + strcpy.
11928 * src/symtab.c (copys): Remove, use xstrdup instead.
11929
11930 2000-10-02 Akim Demaille <akim@epita.fr>
11931
11932 * src/gram.h (associativity): New enum type which replaces the
11933 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
11934 `right_assoc', `left_assoc' and `non_assoc'.
11935 Adjust all dependencies.
11936 * src/reader.c: Formatting changes.
11937 (LTYPESTR): Don't define it, use it as a literal in
11938 `reader_output_yylsp'.
11939 * src/symtab.h (symbol_class): New enum type which replaces the
11940 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
11941 `sunknown', `stoken and `snterm'.
11942
11943 2000-10-02 Akim Demaille <akim@epita.fr>
11944
11945 * src/getargs.c (fixed_outfiles): Rename as...
11946 (yaccflag): for consistency and accuracy.
11947 Adjust dependencies.
11948
11949 2000-10-02 Akim Demaille <akim@epita.fr>
11950
11951 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
11952 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
11953 difficult and introduced a lot of core dump. It turns out that
11954 Bison used an implementation of `xmalloc' based on `calloc', and
11955 at various places it does depend upon the initialization to 0. I
11956 have not tried to isolate the pertinent places, and all the former
11957 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
11958 someone should address this issue.
11959
11960 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
11961 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
11962 files.
11963 Adjust dependencies.
11964 * src/warshall.h: New file.
11965 Propagate.
11966
11967 2000-10-02 Akim Demaille <akim@epita.fr>
11968
11969 Various anti-`extern in *.c' changes.
11970
11971 * src/system.h: Include `assert.h'.
11972
11973 2000-10-02 Akim Demaille <akim@epita.fr>
11974
11975 * src/state.h (nstates, final_state, first_state, first_shift)
11976 (first_reduction): Move their exportation from here...
11977 * src/LR0.h: to here.
11978 Adjust dependencies.
11979 * src/getargs.c (statisticsflag): New variable.
11980 Add support for `--statistics'.
11981 Adjust dependencies.
11982
11983 Remove a lot of now useless `extern' statements in most files.
11984
11985 2000-10-02 Akim Demaille <akim@epita.fr>
11986
11987 * src/LR0.h: New file.
11988 Propagate its use.
11989
11990 2000-10-02 Akim Demaille <akim@epita.fr>
11991
11992 * src/print.h: New file.
11993 Propagate its use.
11994 * src/print.c: Formatting and ordering changes.
11995 (verbose, terse): Replace with...
11996 (print_results): this new function.
11997 Adjust dependencies.
11998
11999 2000-10-02 Akim Demaille <akim@epita.fr>
12000
12001 * src/conflicts.c (conflict_report): New function.
12002 (conflict_log, verbose_conflict_log): Replace with...
12003 (print_conflicts): this function.
12004 Adjust dependencies.
12005 * src/conflicts.h: New file.
12006 Propagate its inclusion.
12007
12008 2000-10-02 Akim Demaille <akim@epita.fr>
12009
12010 * src/nullable.h: New file.
12011 Propagate its inclusion.
12012 * src/nullable.c: Formatting changes.
12013
12014 2000-10-02 Akim Demaille <akim@epita.fr>
12015
12016 * src/reduce.h: New file.
12017 Propagate its inclusion.
12018 * src/reduce.c: Topological sort and other formatting changes.
12019 (bool, TRUE, FALSE): Move their definition to...
12020 * src/system.h: here.
12021
12022 2000-10-02 Akim Demaille <akim@epita.fr>
12023
12024 * src/files.c: Formatting changes.
12025 (tryopen, tryclose, openfiles): Rename as...
12026 (xfopen, xfclose, open_files): this.
12027 (stringappend): static.
12028 * src/files.h: Complete the list of exported symbols.
12029 Propagate its use.
12030
12031 2000-10-02 Akim Demaille <akim@epita.fr>
12032
12033 * src/reader.h: New file.
12034 Propagate its use instead of tedious list of `extern' and
12035 prototypes.
12036 * src/reader.c: Formatting changes, topological sort,
12037 s/register//.
12038
12039 2000-10-02 Akim Demaille <akim@epita.fr>
12040
12041 * src/lex.h: Prototype `lex.c' exported functions.
12042 * src/reader.c: Adjust.
12043 * src/lex.c: Formatting changes.
12044 (safegetc): Rename as...
12045 (xgetc): this.
12046
12047 2000-10-02 Akim Demaille <akim@epita.fr>
12048
12049 * src/lalr.h: New file.
12050 Propagate its inclusion instead of prototypes and `extern'.
12051 * src/lalr.c: Formatting changes, topological sorting etc.
12052
12053 2000-10-02 Akim Demaille <akim@epita.fr>
12054
12055 * src/output.c (token_actions): Introduce a temporary array,
12056 YYDEFACT, that makes it possible for this function to use
12057 output_short_table.
12058
12059 2000-10-02 Akim Demaille <akim@epita.fr>
12060
12061 `user_toknums' is output as a `short[]' in `output.c', while it is
12062 defined as a `int[]' in `reader.c'. For consistency with the
12063 other output tables, `user_toknums' is now defined as a table of
12064 shorts.
12065
12066 * src/reader.c (user_toknums): Be a short table instead of an int
12067 table.
12068 Adjust dependencies.
12069
12070 Factor the short table outputs.
12071
12072 * src/output.c (output_short_table): New function.
12073 * src/output.c (output_gram, output_stos, output_rule_data)
12074 (output_base, output_table, output_check): Use it.
12075
12076 2000-10-02 Akim Demaille <akim@epita.fr>
12077
12078 * src/output.c (output): Topological sort of the functions, in
12079 order to get rid of the `static' prototypes.
12080 No longer use `register'.
12081 * src/output.h: New file.
12082 Propagate its inclusion in files explicitly prototyping functions
12083 from output.c.
12084
12085 2000-09-21 Akim Demaille <akim@epita.fr>
12086
12087 * src/atgeneral.m4: Update from Autoconf.
12088
12089 2000-09-21 Akim Demaille <akim@epita.fr>
12090
12091 * src/closure.h: New file.
12092 * src/closure.c: Formatting changes, topological sort over the
12093 functions, use of closure.h.
12094 (initialize_closure, finalize_closure): Rename as...
12095 (new_closure, free_closure): these. Adjust dependencies.
12096 * src/LR0.c: Formatting changes, topological sort, use of
12097 cloture.h.
12098 (initialize_states): Rename as...
12099 (new_states): this.
12100 * src/Makefile.am (noinst_HEADERS): Adjust.
12101
12102 2000-09-20 Akim Demaille <akim@epita.fr>
12103
12104 * src/acconfig.h: Don't protect config.h against multiple
12105 inclusion.
12106 Don't define PARAMS.
12107 * src/system.h: Define PARAMS.
12108 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
12109 purpose of config.h. system.h must not try to fix wrong
12110 definitions in config.h.
12111
12112 2000-09-20 Akim Demaille <akim@epita.fr>
12113
12114 * src/derives.h: New file.
12115 * src/main.c, src/derives.h: Use it.
12116 Formatting changes.
12117 * src/Makefile.am (noinst_HEADERS): Adjust.
12118
12119 2000-09-20 Akim Demaille <akim@epita.fr>
12120
12121 * tests/atgeneral.m4: Update from Autoconf.
12122 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
12123 (AT_CHECK_CALC): New macros.
12124 Use these macros to test bison with options `', `--raw',
12125 `--debug', `--yacc', `--yacc --debug'.
12126
12127 2000-09-19 Akim Demaille <akim@epita.fr>
12128
12129 * src/output.c: Formatting changes.
12130 * src/machine.h: Remove, leaving its contents in...
12131 * src/system.h: here.
12132 Include stdio.h.
12133 Adjust all dependencies on stdio.h and machine.h.
12134 * src/getargs.h: New file.
12135 Let all `extern' declarations about getargs.c be replaced with
12136 inclusion of `getargs.h'.
12137 * src/Makefile.am (noinst_HEADERS): Adjust.
12138
12139 * tests/calc.m4 (yyin): Be initialized in main, not on the global
12140 scope.
12141 (yyerror): Returns void, not int.
12142 * doc/bison.texinfo: Formatting changes.
12143
12144 2000-09-19 Akim Demaille <akim@epita.fr>
12145
12146 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
12147 portable.
12148
12149 2000-09-18 Akim Demaille <akim@epita.fr>
12150
12151 * configure.in: Append WARNING_CFLAGS to CFLAGS.
12152 * src/Makefile.am (INCLUDES): Don't.
12153 Be ready to fetch headers in lib/.
12154
12155 2000-09-18 Akim Demaille <akim@epita.fr>
12156
12157 * doc/bison.texinfo: Update the copyright.
12158 ANSIfy and GNUify the examples.
12159 Remove the old menu.
12160
12161 2000-09-18 Akim Demaille <akim@epita.fr>
12162
12163 First set of tests: use the `calc' example from the documentation.
12164
12165 * src/bison.s1 (yyparse): Condition the code using `yytname' which
12166 is defined only when YYDEBUG is.
12167 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
12168 * src/files.c (tryopen, tryclose): Formatting changes.
12169 Move to the top and be static.
12170 * src/reader.c (read_signed_integer): Likewise.
12171 * tests/calc.m4: New file.
12172 * Makefile.am, suite.m4: Adjust.
12173 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
12174
12175 2000-09-18 Akim Demaille <akim@epita.fr>
12176
12177 Add support for an Autotest test suite for Bison.
12178
12179 * m4/m4.m4, m4/atconfig.m4: New files.
12180 * m4/Makefile.am (EXTRA_DIST): Adjust.
12181 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
12182 files.
12183 * src/getargs.c: Display a more standard --version message.
12184 * src/reader.c (reader): Formatting changes.
12185 No longer depend upon VERSION_STRING.
12186 * configure.in: No longer use `dnl'.
12187 Set up the test suite and the new directory `tests/.
12188 (VERSION_STRING): Remove.
12189
12190 2000-04-14 Akim Demaille <akim@epita.fr>
12191
12192 * src/reader.c (copy_comment2): New function, same as former
12193 `copy_comment', but outputs into two FILE *.
12194 (copy_comment): Use it.
12195 (parse_union_decl): Use it.
12196 (get_type, parse_start_decl): Use the same `invalid' message.
12197 (parse_start_decl, parse_union_decl): Use the same `multiple'
12198 message.
12199 (parse_union_decl, copy_guard, copy_action): Use the same
12200 `unmatched' message.
12201 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
12202
12203 2000-03-31 Akim Demaille <akim@epita.fr>
12204
12205 * src/files.c (tryopen, tryclose): Move to the top.
12206 Be static.
12207
12208 2000-03-31 Akim Demaille <akim@epita.fr>
12209
12210 * src/main.c (main): Don't call `done', exit does it.
12211
12212 2000-03-31 Akim Demaille <akim@epita.fr>
12213
12214 * allocate.c: s/return (foo)/return foo/.
12215 * lalr.c: Likewise.
12216 * LR0.c: Likewise.
12217 * output.c: Likewise.
12218 * reader.c: Likewise.
12219 * symtab.c: Likewise.
12220 * vmsgetargs.c: Likewise.
12221
12222 2000-03-31 Akim Demaille <akim@epita.fr>
12223
12224 Clean up the error reporting functions.
12225
12226 * src/report.c: New file.
12227 * src/report.h: Likewise.
12228 * src/Makefile.am: Adjust.
12229 * m4/error.m4: New file.
12230 * m4/Makefile.am: Adjust.
12231 * configure.in (jm_PREREQ_ERROR): Call it.
12232 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
12233 Remove.
12234 (fatal, fatals): Remove. All callers use complain.c::fatal.
12235 (warn, warni, warns, warnss, warnss): Remove. All callers use
12236 complain.c::complain.
12237 (toomany): Remove, use fatal instead.
12238 * src/files.c (done): No argument, use complain_message_count.
12239 * src/main.c (main): Register `done' to `atexit'.
12240
12241 * src/getargs.c (usage): More `fputs', less `fprintf'.
12242
12243 2000-03-28 Akim Demaille <akim@epita.fr>
12244
12245 * lib/: New directory.
12246 * Makefile.am (SUBDIRS): Adjust.
12247 * configure.in: Adjust.
12248 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
12249 useless.
12250 * src/alloca.c: Moved to lib/.
12251 * src/getopt.c: Likewise.
12252 * src/getopt1.c: Likewise.
12253 * src/getopt.h: Likewise.
12254 * src/ansi2knr.c: Likewise.
12255 * src/ansi2knr.1: Likewise.
12256 * src/Makefile.am: Adjust.
12257 * lib/Makefile.am: New file.
12258
12259 2000-03-28 Akim Demaille <akim@epita.fr>
12260
12261 * src/getargs.c (usage): Refresh the help message.
12262
12263 2000-03-17 Akim Demaille <akim@epita.fr>
12264
12265 * src/getopt1.c: Updated from textutils 2.0e
12266 * src/getopt.c: Likewise.
12267 * src/getopt.h: Likewise.
12268
12269 2000-03-17 Akim Demaille <akim@epita.fr>
12270
12271 * src/Makefile.am (bison.simple): Fix the awk program: quote only
12272 the file name, not the whole `#line LINE FILE'.
12273
12274 2000-03-17 Akim Demaille <akim@epita.fr>
12275
12276 On syntax errors, report the token on which we choked.
12277
12278 * src/bison.s1 (yyparse): In the label yyerrlab, when
12279 YYERROR_VERBOSE, add yychar in msg.
12280
12281 2000-03-17 Akim Demaille <akim@epita.fr>
12282
12283 * src/reader.c (copy_at): New function.
12284 (copy_guard): Use it.
12285 (copy_action): Use it.
12286
12287 2000-03-17 Akim Demaille <akim@epita.fr>
12288
12289 Be kind to translators, save some useless translations.
12290
12291 * src/main.c (banner): New function.
12292 (fatal_banner): Use it.
12293 (warn_banner): Use it.
12294
12295 2000-03-17 Akim Demaille <akim@epita.fr>
12296
12297 * src/reader.c (copy_definition): Use copy_string and
12298 copy_comment. Removed now unused `match', `ended',
12299 `cplus_comment'.
12300 (copy_comment, copy_string): Moved, to be visible from
12301 copy_definition.
12302
12303 2000-03-17 Akim Demaille <akim@epita.fr>
12304
12305 * src/reader.c (copy_string): Declare `static inline'. No
12306 problems with inline, since it is checked by configure.
12307 (copy_comment): Likewise.
12308
12309 2000-03-17 Akim Demaille <akim@epita.fr>
12310
12311 * src/reader.c (packsymbols): Formatting changes.
12312
12313 2000-03-17 Akim Demaille <akim@epita.fr>
12314
12315 * src/reader.c (copy_comment): New function, factored out from:
12316 (copy_action): Use it. Removed now unused `match', `ended',
12317 `cplus_comment'.
12318 (copy_guard): Likewise.
12319
12320 2000-03-17 Akim Demaille <akim@epita.fr>
12321
12322 * src/reader.c (copy_string): New function, factored out from:
12323 (copy_action): Use it.
12324 (copy_guard): Likewise.
12325
12326 2000-03-17 Akim Demaille <akim@epita.fr>
12327
12328 Change the handling of @s so that they behave exactly like $s.
12329 There is now a pseudo variable @$ (readble and writable), location
12330 of the lhs of the rule (by default ranging from the location of
12331 the first symbol of the rhs, to the location of the last symbol,
12332 or, if the rhs is empty, YYLLOC).
12333
12334 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
12335 yyval.
12336 (yyparse): When providing a default semantic action, provide a
12337 default location action.
12338 (after the $): No longer change `*YYLSP', just stack YYLOC the
12339 same way you stack YYVAL.
12340 * src/reader.c (read_declarations): Use warns.
12341 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
12342 (copy_action, case '@'): Likewise.
12343 Use a standard error message, to save useless work from
12344 translators.
12345
12346 2000-03-17 Akim Demaille <akim@epita.fr>
12347
12348 * src/bison.s1: Formatting and cosmetics changes.
12349 * src/reader.c: Likewise.
12350 Update the Copyright notice.
12351
12352 2000-03-17 Akim Demaille <akim@epita.fr>
12353
12354 * src/bison.s1 (#line): All set to `#line' only, since the
12355 Makefile now handles them.
12356
12357 2000-03-16 Akim Demaille <akim@epita.fr>
12358
12359 * src/output.c (output_rule_data): Output the documentation of
12360 some of the tables.
12361 (Copyright notice): Update.
12362 Formatting changes.
12363
12364 2000-03-16 Akim Demaille <akim@epita.fr>
12365
12366 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
12367 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
12368 One `#if YYDEBUG' remains, since it uses variables which are
12369 defined only if `YYDEBUG != 0'.
12370
12371 2000-03-16 Akim Demaille <akim@epita.fr>
12372
12373 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
12374 and related variables so that the similarities are highlighted.
12375
12376 2000-03-16 Akim Demaille <akim@epita.fr>
12377
12378 * src/bison.s1: Properly indent CPP directives.
12379
12380 2000-03-16 Akim Demaille <akim@epita.fr>
12381
12382 * src/bison.s1: Properly indent the `alloca' CPP section.
12383
12384 2000-03-16 Akim Demaille <akim@epita.fr>
12385
12386 Do not hard code values of directories in `configure.in'.
12387 Update the `configure' tool chain.
12388
12389 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
12390 src/makefile.am.
12391 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
12392 (AC_OUTPUT): Add m4/Makefile.
12393 Bump to bison 1.28a, 1.29 has never been released.
12394 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
12395 handled via src/Makefile.am.
12396 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
12397 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
12398 autoheader.
12399 * Makefile.am (SUBDIRS): Add m4.
12400 (ACLOCAL_AM_FLAGS): New variable.
12401 (AUTOMAKE_OPTIONS): Add check-news.
12402 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
12403 the proper line number and file name.
12404 (DEFS): Propagate the location of bison library files and of the
12405 locale files.
12406 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
12407 builddir.
12408 * acinclude.m4: Remove, replaced by the directory m4.
12409 * m4/Makefile.am (EXTRA_DIST): New variable.
12410 * m4/gettext.m4: New file, from the fileutils.
12411 * m4/lcmessage.m4: Likewise
12412 * m4/progtest.m4: Likewise.
12413 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
12414
12415 2000-03-10 Akim Demaille <akim@epita.fr>
12416
12417 * src/closure.c:
12418 Formatting changes of various comments.
12419 Respect the GNU coding standards at various places.
12420 Don't use `_()' when no translation is needed.
12421
12422 1999-12-13 Jesse Thilo <jthilo@gnu.org>
12423
12424 * src/files.c:
12425 OS/2 honors TMPDIR environment variable.
12426
12427 1999-12-13 Jesse Thilo <jthilo@gnu.org>
12428
12429 * doc/bison.texinfo: Tweaked spelling and grammar.
12430 Updated ISBN.
12431 Removed reference to price of printed copy.
12432 Mention BISON_SIMPLE and BISON_HAIRY.
12433
12434 1999-12-13 Jesse Thilo <jthilo@gnu.org>
12435
12436 * configure.in, NEWS:
12437 Bison 1.29 released.
12438
12439 1999-10-27 Jesse Thilo <jthilo@gnu.org>
12440
12441 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
12442 Added reference card.
12443
12444 1999-07-26 Jesse Thilo <jthilo@gnu.org>
12445
12446 * po/ru.po: Added Russian translation.
12447
12448 1999-07-26 Jesse Thilo <jthilo@gnu.org>
12449
12450 * configure.in: Added Russian translation.
12451
12452 1999-07-06 Jesse Thilo <jthilo@gnu.org>
12453
12454 * configure.in, NEWS, README:
12455 Released version 1.28.
12456
12457 1999-06-14 Jesse Thilo <jthilo@gnu.org>
12458
12459 * src/system.h:
12460 Squashed redefinition warning on some systems.
12461
12462 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
12463 Have configure build version string instead of relying on ANSI string
12464 concatentation.
12465
12466 1999-06-14 Jesse Thilo <jthilo@gnu.org>
12467
12468 * po/POTFILES.in: Got rid of version.c.
12469
12470 1999-06-14 Jesse Thilo <jthilo@gnu.org>
12471
12472 * acconfig.h, configure.in:
12473 Have configure build version string instead of relying on ANSI string
12474 concatentation.
12475
12476 1999-06-08 Jesse Thilo <jthilo@gnu.org>
12477
12478 * doc/bison.1:
12479 Dropped mention of `+' for long-named options.
12480
12481 1999-05-30 Jesse Thilo <jthilo@gnu.org>
12482
12483 * src/files.c: Added <unistd.h> for unlink().
12484
12485 * src/Makefile.am, src/system.h:
12486 I18n fixes.
12487
12488 1999-05-30 Jesse Thilo <jthilo@gnu.org>
12489
12490 * README: Added a FAQ list.
12491
12492 * configure.in, acconfig.h:
12493 I18n fixes.
12494
12495 1999-05-30 Jesse Thilo <jthilo@gnu.org>
12496
12497 * doc/FAQ, doc/Makefile.am:
12498 Added a FAQ list.
12499
12500 1999-05-19 Jesse Thilo <jthilo@gnu.org>
12501
12502 * src/alloc.h, src/symtab.h, src/version.c:
12503 Protected inclusion of "config.h" with HAVE_CONFIG_H.
12504
12505 1999-04-18 Jesse Thilo <jthilo@gnu.org>
12506
12507 * src/.cvsignore, src/Makefile.am:
12508 Reorganized: sources in `src', documentation in `doc'.
12509
12510 * src/lex.c (literalchar):
12511 fixed the code for escaping double quotes (thanks
12512 Jonathan Czisny.)
12513
12514 1999-04-18 Jesse Thilo <jthilo@gnu.org>
12515
12516 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
12517 Adjusted paths to reflect directory reorganization.
12518
12519 1999-04-18 Jesse Thilo <jthilo@gnu.org>
12520
12521 * doc/.cvsignore, doc/Makefile.am:
12522 Reorganized: sources in `src', documentation in `doc'.
12523
12524 1999-04-18 Jesse Thilo <jthilo@gnu.org>
12525
12526 * configure.in:
12527 Updated AC_INIT file to reflect directory reorganization.
12528
12529 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
12530 Reorganized: sources in `src', documentation in `doc'.
12531
12532 1999-04-13 Jesse Thilo <jthilo@gnu.org>
12533
12534 * src/allocate.c:
12535 Don't declare calloc() and realloc() if not necessary.
12536
12537 1999-04-13 Jesse Thilo <jthilo@gnu.org>
12538
12539 * configure.in, acconfig.h, acinclude.m4:
12540 Don't declare calloc() and realloc() if not necessary.
12541
12542 1999-03-23 Jesse Thilo <jthilo@gnu.org>
12543
12544 * po/.cvsignore: Added i18n support.
12545
12546 1999-03-23 Jesse Thilo <jthilo@gnu.org>
12547
12548 * acconfig.h, configure.in, Makefile.am:
12549 Added i18n support.
12550
12551 1999-03-22 Jesse Thilo <jthilo@gnu.org>
12552
12553 * src/bison.s1: Fixed #line numbers.
12554
12555 1999-03-15 Jesse Thilo <jthilo@gnu.org>
12556
12557 * po/es.po, po/fr.po, po/nl.po, po/de.po:
12558 Added PO files from Translation Project.
12559
12560 1999-03-03 Jesse Thilo <jthilo@gnu.org>
12561
12562 * Makefile.am:
12563 Added support for non-ANSI compilers (ansi2knr).
12564
12565 1999-02-16 Jesse Thilo <jthilo@gnu.org>
12566
12567 * configure.in: Bumped version number to 1.27.
12568
12569 * Makefile.am:
12570 Added `bison.simple' to list of files removed by `make distclean'.
12571
12572 1999-02-12 Jesse Thilo <jthilo@gnu.org>
12573
12574 * src/files.c, src/files.h:
12575 Defined locations of parser files in config.h instead of Makefile.
12576
12577 1999-02-12 Jesse Thilo <jthilo@gnu.org>
12578
12579 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
12580 Defined locations of parser files in config.h instead of Makefile.
12581
12582 1999-02-09 Jesse Thilo <jthilo@gnu.org>
12583
12584 * Makefile.am:
12585 Removed inappropriate use of $< macro.
12586
12587 1999-02-05 Jesse Thilo <jthilo@gnu.org>
12588
12589 * po/Makefile.in.in, po/POTFILES.in:
12590 Add `po' directory skeleton.
12591
12592 1999-01-27 Jesse Thilo <jthilo@gnu.org>
12593
12594 * README: Document help-bison list.
12595
12596 * configure.in: Add check for mkstemp().
12597
12598 1999-01-20 Jesse Thilo <jthilo@gnu.org>
12599
12600 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
12601 Hush a few compiler warnings.
12602
12603 * src/files.c:
12604 Add tryclose(), which verifies that fclose was successful.
12605 Hush a couple of compiler warnings.
12606
12607 1999-01-20 Jesse Thilo <jthilo@gnu.org>
12608
12609 * Makefile.am, OChangeLog:
12610 ChangeLog is now automatically generated. Include the old version as
12611 OChangeLog.
12612
12613 1999-01-14 Jesse Thilo <jthilo@gnu.org>
12614
12615 * 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:
12616 Update FSF address.
12617
12618 1999-01-14 Jesse Thilo <jthilo@gnu.org>
12619
12620 * doc/bison.texinfo: Fix formatting glitch.
12621
12622 * doc/bison.texinfo: Update FSF address.
12623
12624 1999-01-14 Jesse Thilo <jthilo@gnu.org>
12625
12626 * acconfig.h: Update FSF address.
12627
12628 1999-01-08 Jesse Thilo <jthilo@gnu.org>
12629
12630 * src/system.h:
12631 Don't define PACKAGE here, since config.h defines it.
12632
12633 1998-12-30 Jesse Thilo <jthilo@gnu.org>
12634
12635 * src/reader.c: Update copyright date.
12636
12637 * src/main.c:
12638 Ditch sprintf to statically-sized buffers in fatal/warn functions in
12639 favor of output directly to stderr (avoids buffer overruns).
12640
12641 * src/reader.c: Some checks for premature EOF.
12642
12643 * 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:
12644 Use prototypes if the compiler understands them.
12645
12646 * src/files.c: Honor TMPDIR on Unix hosts.
12647 Use prototypes if the compiler understands them.
12648
12649 * src/reader.c:
12650 Fix a couple of buffer overrun bugs.
12651 Use prototypes if the compiler understands them.
12652
12653 * src/system.h: Include unistd.h and ctype.h.
12654 Use #ifdef instead of #if for NLS symbols.
12655
12656 1998-12-30 Jesse Thilo <jthilo@gnu.org>
12657
12658 * doc/bison.texinfo:
12659 Delete comment "consider using @set for edition number, etc..." since
12660 we now are doing so.
12661
12662 1998-12-30 Jesse Thilo <jthilo@gnu.org>
12663
12664 * configure.in:
12665 Use prototypes if the compiler understands them.
12666
12667 * NEWS: Document 1.26 highlights.
12668
12669 * Makefile.am: Require Automake 1.3 or later.
12670
12671 * acconfig.h:
12672 Use prototypes if the compiler understands them.
12673
12674 1998-12-29 Jesse Thilo <jthilo@gnu.org>
12675
12676 * src/version.c:
12677 Use VERSION symbol from automake for version number.
12678
12679 1998-12-29 Jesse Thilo <jthilo@gnu.org>
12680
12681 * acconfig.h, configure.in, version.cin:
12682 Use VERSION symbol from automake for version number.
12683
12684 1998-11-28 Jesse Thilo <jthilo@gnu.org>
12685
12686 * Makefile.am:
12687 Distribute original version of simple parser (bison.s1), not built
12688 version (bison.simple).
12689
12690 1998-11-28 Jesse Thilo <jthilo@gnu.org>
12691
12692 * doc/bison.texinfo: Add info dir entry.
12693
12694 * doc/bison.texinfo:
12695 Let automake put version number into documentation.
12696
12697 1998-11-26 Jesse Thilo <jthilo@gnu.org>
12698
12699 * src/bison.cld, src/build.com, src/vmshlp.mar:
12700 Add non-RCS files from /gd/gnu/bison.
12701
12702 1998-11-26 Jesse Thilo <jthilo@gnu.org>
12703
12704 * doc/bison.1:
12705 Document the BISON_HAIRY and BISON_SIMPLE variables.
12706
12707 1998-11-25 Jesse Thilo <jthilo@gnu.org>
12708
12709 * src/version.c: Build version.c automatically.
12710
12711 * src/reader.c:
12712 Fix token numbering (used to start at 258, not 257).
12713
12714 * src/system.h: Include config.h.
12715
12716 * src/getargs.c: Update bug report address.
12717
12718 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
12719 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
12720
12721 1998-11-25 Jesse Thilo <jthilo@gnu.org>
12722
12723 * Makefile.am:
12724 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
12725
12726 * configure.in, version.cin:
12727 Build version.c automatically.
12728
12729 * AUTHORS: Add AUTHORS file.
12730
12731 * README: Update bug report address.
12732
12733 * bison.simple:
12734 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
12735
12736 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
12737 Add automake stuff.
12738
12739 1998-11-25 Jesse Thilo <jthilo@gnu.org>
12740
12741 * doc/bison.texinfo: Clean up some formatting.
12742
12743 1998-05-05 Richard Stallman <rms@gnu.org>
12744
12745 * doc/bison.texinfo:
12746 Explain better why to make a pure parser.
12747
12748 1998-01-05 Richard Stallman <rms@gnu.org>
12749
12750 * src/files.c (openfiles):
12751 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
12752 find a temporary directory, if possible. Do not unlink files while
12753 they are open.
12754
12755 1997-08-25 Richard Stallman <rms@gnu.org>
12756
12757 * src/reader.c (stack_offset;):
12758 Change some warni to warns.
12759
12760 * src/lex.c (literalchar): Use warns, not warni.
12761
12762 1997-06-28 Richard Stallman <rms@gnu.org>
12763
12764 * src/bison.s1: Add a Bison version comment.
12765
12766 * src/main.c (fatal, warn, berror):
12767 Use program_name.
12768
12769 1997-06-28 Richard Stallman <rms@gnu.org>
12770
12771 * Makefile.in (bison_version): New variable.
12772 (dist): Use that variable.
12773 (bison.s1): Substitute the Bison version into bison.simple.
12774
12775 * bison.simple: Add a Bison version comment.
12776
12777 1997-06-18 Richard Stallman <rms@gnu.org>
12778
12779 * src/main.c (fatal, warn, berror):
12780 Make error messages standard.
12781 (toomany): Improve error message text.
12782
12783 * 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:
12784 new.h renamed to alloc.h.
12785
12786 1997-06-18 Richard Stallman <rms@gnu.org>
12787
12788 * Makefile.in: new.h renamed to alloc.h.
12789
12790 1997-05-24 Richard Stallman <rms@gnu.org>
12791
12792 * src/lex.c (literalchar):
12793 Fix the code for escaping \, " and '.
12794
12795 (lex): Avoid trouble when there are many chars
12796 to discard in a char literal with just several chars in it.
12797
12798 1997-05-17 Richard Stallman <rms@gnu.org>
12799
12800 * src/bison.s1:
12801 Use malloc, if using alloca is troublesome.
12802 (YYSTACK_USE_ALLOCA): New flag macro.
12803 Define it for some systems and compilers.
12804 (YYSTACK_ALLOC): New macro.
12805 (yyparse): Use YYSTACK_ALLOC to allocate stack.
12806 If it was malloc'd, free it.
12807
12808 1997-05-17 Richard Stallman <rms@gnu.org>
12809
12810 * bison.simple:
12811 Use malloc, if using alloca is troublesome.
12812 (YYSTACK_USE_ALLOCA): New flag macro.
12813 Define it for some systems and compilers.
12814 (YYSTACK_ALLOC): New macro.
12815 (yyparse): Use YYSTACK_ALLOC to allocate stack.
12816 If it was malloc'd, free it.
12817
12818 1997-04-23 Richard Stallman <rms@gnu.org>
12819
12820 * src/bison.s1:
12821 (alloca) [__hpux]: Always define as __builtin_alloca.
12822
12823 1997-04-23 Richard Stallman <rms@gnu.org>
12824
12825 * bison.simple:
12826 (alloca) [__hpux]: Always define as __builtin_alloca.
12827
12828 1997-04-22 Richard Stallman <rms@gnu.org>
12829
12830 * src/bison.s1:
12831 [__hpux]: Include alloca.h (right for HPUX 10)
12832 instead of declaring alloca (right for HPUX 9).
12833
12834 * src/bison.s1 (__yy_memcpy):
12835 Declare arg `count' as unsigned int.
12836 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
12837
12838 1997-04-22 Richard Stallman <rms@gnu.org>
12839
12840 * bison.simple:
12841 [__hpux]: Include alloca.h (right for HPUX 10)
12842 instead of declaring alloca (right for HPUX 9).
12843
12844 * bison.simple (__yy_memcpy):
12845 Declare arg `count' as unsigned int.
12846 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
12847
12848 1997-01-03 Richard Stallman <rms@gnu.org>
12849
12850 * src/allocate.c: [__STDC__ or _MSC_VER]:
12851 Declare calloc and realloc to return void *.
12852
12853 1997-01-02 Richard Stallman <rms@gnu.org>
12854
12855 * src/system.h:
12856 [_MSC_VER]: Include stdlib.h and process.h.
12857 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
12858
12859 * src/main.c (main): Return FAILURE as a value.
12860 (printable_version): Declare arg as int, not char.
12861
12862 1997-01-02 Richard Stallman <rms@gnu.org>
12863
12864 * Makefile.in (dist):
12865 Explicitly check for symlinks, and copy them.
12866
12867 1996-12-19 Richard Stallman <rms@gnu.org>
12868
12869 * src/files.c:
12870 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
12871
12872 1996-12-18 Paul Eggert <eggert@gnu.org>
12873
12874 * src/bison.s1 (yyparse):
12875 If __GNUC__ and YYPARSE_PARAM are both defined,
12876 declare yyparse to have a void * argument.
12877
12878 1996-12-18 Paul Eggert <eggert@gnu.org>
12879
12880 * bison.simple (yyparse):
12881 If __GNUC__ and YYPARSE_PARAM are both defined,
12882 declare yyparse to have a void * argument.
12883
12884 1996-12-17 Richard Stallman <rms@gnu.org>
12885
12886 * src/reduce.c (nbits): Add some casts.
12887
12888 1996-08-12 Richard Stallman <rms@gnu.org>
12889
12890 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
12891
12892 1996-08-12 Richard Stallman <rms@gnu.org>
12893
12894 * bison.simple: Test _MSDOS as well as _MSDOS_.
12895
12896 1996-07-31 Richard Stallman <rms@gnu.org>
12897
12898 * src/bison.s1:
12899 [__sun && __i386]: Include alloca.h.
12900
12901 1996-07-31 Richard Stallman <rms@gnu.org>
12902
12903 * bison.simple:
12904 [__sun && __i386]: Include alloca.h.
12905
12906 1996-07-30 Richard Stallman <rms@gnu.org>
12907
12908 * src/bison.s1: Comment change.
12909
12910 * src/bison.s1: Test _MSDOS_, not MSDOS.
12911
12912 1996-07-30 Richard Stallman <rms@gnu.org>
12913
12914 * bison.simple: Comment change.
12915
12916 * bison.simple: Test _MSDOS_, not MSDOS.
12917
12918 1996-06-01 Richard Stallman <rms@gnu.org>
12919
12920 * 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:
12921 Insert `_' macro around many string constants.
12922
12923 * src/main.c:
12924 Insert `_' macro around many string constants.
12925
12926 (main): Call setlocale, bindtextdomain and textdomain.
12927
12928 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
12929 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
12930 [ENABLE_NLS]: Include libintl.h.
12931 [ENABLE_NLS] (gettext): Define.
12932 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
12933 (N_, PACKAGE, LOCALEDIR): New macros.
12934
12935 1996-06-01 Richard Stallman <rms@gnu.org>
12936
12937 * POTFILES.in: New file.
12938
12939 * Makefile.in (allocate.o):
12940 Define target explicitly.
12941
12942 * Makefile.in (CFLAGS): Set to @CFLAGS@.
12943 (LDFLAGS): Set to @LDFLAGS@.
12944 (configure): Run autoconf only if preceding `cd' succeeds.
12945 (bison.s1): Redirect output to temporary file then move the
12946 temporary to the target, rather than redirecting directly to bison.s1.
12947 (clean): Remove config.status and config.log.
12948 (distclean): Don't remove config.status here.
12949
12950 1996-05-12 Richard Stallman <rms@gnu.org>
12951
12952 * src/bison.s1:
12953 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
12954
12955 1996-05-12 Richard Stallman <rms@gnu.org>
12956
12957 * bison.simple:
12958 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
12959
12960 1996-05-11 Richard Stallman <rms@gnu.org>
12961
12962 * src/bison.s1 (__yy_memcpy):
12963 Really reorder the args, as was supposedly done on Feb 14 1995.
12964 (yyparse): Calls changed accordingly.
12965
12966 1996-05-11 Richard Stallman <rms@gnu.org>
12967
12968 * Makefile.in (dist): Don't use $(srcdir).
12969
12970 * bison.simple (__yy_memcpy):
12971 Really reorder the args, as was supposedly done on Feb 14 1995.
12972 (yyparse): Calls changed accordingly.
12973
12974 1996-01-27 Richard Stallman <rms@gnu.org>
12975
12976 * src/output.c (output_rule_data):
12977 Test YYERROR_VERBOSE in the conditional
12978 around the definition of ttyname.
12979
12980 1995-12-29 Richard Stallman <rms@gnu.org>
12981
12982 * src/bison.s1:
12983 Fix line numbers in #line commands.
12984
12985 1995-12-29 Richard Stallman <rms@gnu.org>
12986
12987 * bison.simple:
12988 Fix line numbers in #line commands.
12989
12990 1995-12-27 Richard Stallman <rms@gnu.org>
12991
12992 * src/bison.s1 (YYPARSE_PARAM_DECL):
12993 In C++, make it always null.
12994 (YYPARSE_PARAM_ARG): New macro.
12995 (yyparse): Use YYPARSE_PARAM_ARG.
12996
12997 1995-12-27 Richard Stallman <rms@gnu.org>
12998
12999 * bison.simple (YYPARSE_PARAM_DECL):
13000 In C++, make it always null.
13001 (YYPARSE_PARAM_ARG): New macro.
13002 (yyparse): Use YYPARSE_PARAM_ARG.
13003
13004 1995-11-29 Richard Stallman <rms@gnu.org>
13005
13006 * doc/bison.texinfo:
13007 Describe literal string tokens, %raw, %no_lines, %token_table.
13008
13009 1995-11-29 Daniel Hagerty <hag@gnu.org>
13010
13011 * doc/bison.texinfo: Fixed update date
13012
13013 1995-10-16 Richard Stallman <rms@gnu.org>
13014
13015 * src/version.c: Version 1.25.
13016
13017 1995-10-16 Richard Stallman <rms@gnu.org>
13018
13019 * NEWS: *** empty log message ***
13020
13021 1995-10-16 Richard Stallman <rms@gnu.org>
13022
13023 * doc/bison.1, doc/bison.rnh:
13024 Add new options.
13025
13026 1995-10-15 Richard Stallman <rms@gnu.org>
13027
13028 * src/vmsgetargs.c, src/getargs.c:
13029 Added -n, -k, and -raw switches.
13030 (noparserflag, toknumflag, rawtoknumflag): New variables.
13031
13032 * src/symtab.h (SALIAS):
13033 New #define for adding aliases to %token.
13034 (struct bucket): Added `alias' field.
13035
13036 * src/reduce.c (reduce_grammar):
13037 Revise error message.
13038 (print_notices): Remove final `.' from error message.
13039
13040 * src/reader.c (reader_output_yylsp):
13041 New function.
13042 (readgram): Use `#if 0' around code that accepted %command
13043 inside grammar rules: The documentation doesn't allow it,
13044 and it will fail since the %command processors scan for the next %.
13045 (parse_token_decl): Extended the %token
13046 declaration to allow a multi-character symbol as an alias.
13047 (parse_thong_decl): New function.
13048 (read_declarations): Added %thong declarations.
13049 (read_declarations): Handle NOOP to deal with allowing
13050 % declarations as another means to specify the flags.
13051 (readgram): Allow %prec prior to semantics embedded in a rule.
13052 (skip_to_char, read_declarations, copy_definition)
13053 (parse_token_decl, parse_start_decl, parse_type_decl)
13054 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
13055 (get_type_name, copy_guard, copy_action, readgram)
13056 (get_type, packsymbols): Revised most error messages.
13057 Changed `fatal' to `warnxxx' to avoid aborting for error.
13058 Revised and use multiple warnxxx functions to avoid using VARARGS1.
13059 (read_declarations): Improve the error message for
13060 an invalid character. Do not abort.
13061 (read_declarations, copy_guard, copy_action): Use
13062 printable_version to avoid unprintable characters in printed output.
13063 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
13064 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
13065 Allow the type of a non-terminal can be given
13066 more than once, as long as all specifications give the same type.
13067
13068 * src/output.c:
13069 (output_headers, output_trailers, output, output_gram)
13070 (output_rule_data): Implement noparserflag variable.
13071 Implement toknumflag variable.
13072 (output): Call reader_output_yylsp to output LTYPESTR.
13073
13074 * src/main.c (main):
13075 If reader sees an error, don't process the grammar.
13076 (fatals): Updated to not use VARARGS1.
13077 (printable_version, int_to_string, warn, warni, warns, warnss)
13078 (warnsss): New error reporting functions. Avoid abort for error.
13079
13080 * src/lex.h:
13081 Added THONG and NOOP for alias processing.
13082 Added SETOPT for the new code that allows setting options with %flags.
13083
13084 * src/lex.c:
13085 Include getopt.h. Add some extern decls.
13086 (safegetc): New function to deal with EOF gracefully.
13087 (literalchar); new function to deal with reading \ escapes.
13088 (lex): Use literalchar.
13089 (lex): Implemented "..." tokens.
13090 (literalchar, lex, parse_percent_token): Made tokenbuffer
13091 always contain the token. This includes growing the token
13092 buffer while reading an integer.
13093 (parse_percent_token): Replaced if-else statement with percent_table.
13094 (parse_percent_token): Added % declarations as another
13095 way to specify the flags -n, -l, and -r. Also added hooks for
13096 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
13097 major changes to files.c.
13098 (lex) Retain in the incoming stream a character following
13099 an incorrect '/'.
13100 (skip_white_space, lex): Revised most error messages
13101 and changed fatal to warn to avoid aborting.
13102 (percent_table): Added %thong declarations.
13103
13104 * src/gram.h: Comment changes.
13105
13106 * src/files.c (openfiles, open_extra_files, done):
13107 Add faction flag
13108 and actfile file. Handle noparserflag. Both for -n switch.
13109
13110 * src/conflicts.c (resolve_sr_conflict):
13111 Remove use of alloca.
13112
13113 1995-06-01 Jim Meyering <meyering@gnu.org>
13114
13115 * doc/bison.texinfo: *** empty log message ***
13116
13117 1995-05-06 Richard Stallman <rms@gnu.org>
13118
13119 * src/bison.s1: Comment change.
13120
13121 1995-05-06 Richard Stallman <rms@gnu.org>
13122
13123 * bison.simple: Comment change.
13124
13125 1995-05-03 Richard Stallman <rms@gnu.org>
13126
13127 * src/version.c: Version now 1.24.
13128
13129 * src/bison.s1: Change distribution terms.
13130
13131 * src/version.c: Version now 1.23.
13132
13133 1995-05-03 Richard Stallman <rms@gnu.org>
13134
13135 * doc/bison.texinfo:
13136 Rewrite "Conditions for Using Bison".
13137 Update version to 1.24.
13138
13139 1995-05-03 Richard Stallman <rms@gnu.org>
13140
13141 * bison.simple: Change distribution terms.
13142
13143 1995-02-23 Richard Stallman <rms@gnu.org>
13144
13145 * src/files.c: Test __VMS_POSIX as well as VMS.
13146
13147 1995-02-14 Jim Meyering <meyering@gnu.org>
13148
13149 * src/bison.s1 (__yy_memcpy):
13150 Renamed from __yy_bcopy to avoid
13151 confusion. Reverse FROM and TO arguments to be consistent with
13152 those of memcpy.
13153
13154 1995-02-14 Jim Meyering <meyering@gnu.org>
13155
13156 * bison.simple (__yy_memcpy):
13157 Renamed from __yy_bcopy to avoid
13158 confusion. Reverse FROM and TO arguments to be consistent with
13159 those of memcpy.
13160
13161 1994-11-10 David J. MacKenzie <djm@gnu.org>
13162
13163 * NEWS: reformat
13164
13165 * NEWS: New file.
13166
13167 * Makefile.in (DISTFILES): Include NEWS.
13168
13169 * Makefile.in (DISTFILES):
13170 Include install-sh, not install.sh.
13171
13172 * configure.in: Update to Autoconf v2 macro names.
13173
13174 1994-10-05 David J. MacKenzie <djm@gnu.org>
13175
13176 * Makefile.in: fix typo
13177
13178 * Makefile.in (prefix, exec_prefix):
13179 Let configure set them.
13180
13181 1994-09-28 David J. MacKenzie <djm@gnu.org>
13182
13183 * Makefile.in: Set datadir to $(prefix)/share.
13184
13185 1994-09-15 Richard Stallman <rms@gnu.org>
13186
13187 * src/bison.s1:
13188 Update copyright notice and GPL version.
13189
13190 1994-09-15 Richard Stallman <rms@gnu.org>
13191
13192 * bison.simple:
13193 Update copyright notice and GPL version.
13194
13195 1994-07-12 Richard Stallman <rms@gnu.org>
13196
13197 * src/reduce.c, src/reader.c:
13198 entered into RCS
13199
13200 1994-05-05 David J. MacKenzie <djm@gnu.org>
13201
13202 * Makefile.in: entered into RCS
13203
13204 1994-03-26 Richard Stallman <rms@gnu.org>
13205
13206 * src/bison.s1: entered into RCS
13207
13208 1994-03-26 Richard Stallman <rms@gnu.org>
13209
13210 * bison.simple: entered into RCS
13211
13212 1994-03-25 Richard Stallman <rms@gnu.org>
13213
13214 * src/main.c: entered into RCS
13215
13216 1994-03-24 Richard Stallman <rms@gnu.org>
13217
13218 * src/conflicts.c: entered into RCS
13219
13220 1994-01-02 Richard Stallman <rms@gnu.org>
13221
13222 * Makefile.in: *** empty log message ***
13223
13224 1993-11-21 Richard Stallman <rms@gnu.org>
13225
13226 * src/bison.s1: *** empty log message ***
13227
13228 1993-11-21 Richard Stallman <rms@gnu.org>
13229
13230 * doc/bison.texinfo: entered into RCS
13231
13232 * doc/bison.texinfo: *** empty log message ***
13233
13234 1993-11-21 Richard Stallman <rms@gnu.org>
13235
13236 * bison.simple: *** empty log message ***
13237
13238 1993-10-25 David J. MacKenzie <djm@gnu.org>
13239
13240 * doc/bison.texinfo: *** empty log message ***
13241
13242 1993-10-19 Richard Stallman <rms@gnu.org>
13243
13244 * src/bison.s1: *** empty log message ***
13245
13246 1993-10-19 Richard Stallman <rms@gnu.org>
13247
13248 * bison.simple: *** empty log message ***
13249
13250 1993-10-14 Richard Stallman <rms@gnu.org>
13251
13252 * src/bison.s1: *** empty log message ***
13253
13254 1993-10-14 Richard Stallman <rms@gnu.org>
13255
13256 * bison.simple: *** empty log message ***
13257
13258 1993-09-14 David J. MacKenzie <djm@gnu.org>
13259
13260 * doc/bison.texinfo: *** empty log message ***
13261
13262 1993-09-13 Noah Friedman <friedman@gnu.org>
13263
13264 * Makefile.in: *** empty log message ***
13265
13266 1993-09-10 Richard Stallman <rms@gnu.org>
13267
13268 * src/conflicts.c: *** empty log message ***
13269
13270 * src/system.h: entered into RCS
13271
13272 1993-09-10 Richard Stallman <rms@gnu.org>
13273
13274 * doc/bison.1: entered into RCS
13275
13276 1993-09-06 Noah Friedman <friedman@gnu.org>
13277
13278 * src/version.c: entered into RCS
13279
13280 1993-09-06 Noah Friedman <friedman@gnu.org>
13281
13282 * Makefile.in: *** empty log message ***
13283
13284 1993-07-30 David J. MacKenzie <djm@gnu.org>
13285
13286 * Makefile.in: *** empty log message ***
13287
13288 1993-07-24 Richard Stallman <rms@gnu.org>
13289
13290 * src/bison.s1: *** empty log message ***
13291
13292 1993-07-24 Richard Stallman <rms@gnu.org>
13293
13294 * bison.simple: *** empty log message ***
13295
13296 1993-07-08 David J. MacKenzie <djm@gnu.org>
13297
13298 * Makefile.in: *** empty log message ***
13299
13300 1993-07-04 Richard Stallman <rms@gnu.org>
13301
13302 * src/bison.s1: *** empty log message ***
13303
13304 1993-07-04 Richard Stallman <rms@gnu.org>
13305
13306 * bison.simple: *** empty log message ***
13307
13308 1993-06-26 David J. MacKenzie <djm@gnu.org>
13309
13310 * src/getargs.c: entered into RCS
13311
13312 1993-06-26 David J. MacKenzie <djm@gnu.org>
13313
13314 * doc/bison.texinfo: *** empty log message ***
13315
13316 * doc/bison.1: New file.
13317
13318 1993-06-25 Richard Stallman <rms@gnu.org>
13319
13320 * src/getargs.c: New file.
13321
13322 1993-06-16 Richard Stallman <rms@gnu.org>
13323
13324 * src/bison.s1: *** empty log message ***
13325
13326 1993-06-16 Richard Stallman <rms@gnu.org>
13327
13328 * bison.simple: *** empty log message ***
13329
13330 1993-06-03 Richard Stallman <rms@gnu.org>
13331
13332 * src/bison.s1: New file.
13333
13334 1993-06-03 Richard Stallman <rms@gnu.org>
13335
13336 * doc/bison.texinfo: *** empty log message ***
13337
13338 1993-06-03 Richard Stallman <rms@gnu.org>
13339
13340 * bison.simple: New file.
13341
13342 1993-05-19 Richard Stallman <rms@gnu.org>
13343
13344 * doc/bison.texinfo: New file.
13345
13346 1993-05-07 Noah Friedman <friedman@gnu.org>
13347
13348 * Makefile.in: *** empty log message ***
13349
13350 1993-04-28 Noah Friedman <friedman@gnu.org>
13351
13352 * src/reader.c: *** empty log message ***
13353
13354 1993-04-23 Noah Friedman <friedman@gnu.org>
13355
13356 * src/alloc.h: entered into RCS
13357
13358 1993-04-20 David J. MacKenzie <djm@gnu.org>
13359
13360 * src/version.c: *** empty log message ***
13361
13362 * src/files.c, src/allocate.c:
13363 entered into RCS
13364
13365 * src/reader.c: *** empty log message ***
13366
13367 * src/lex.c: entered into RCS
13368
13369 * src/conflicts.c: New file.
13370
13371 * src/symtab.c: entered into RCS
13372
13373 * src/alloc.h: New file.
13374
13375 * src/LR0.c: entered into RCS
13376
13377 1993-04-18 Noah Friedman <friedman@gnu.org>
13378
13379 * src/reader.c: New file.
13380
13381 * src/version.c: *** empty log message ***
13382
13383 1993-04-18 Noah Friedman <friedman@gnu.org>
13384
13385 * Makefile.in: *** empty log message ***
13386
13387 1993-04-17 Noah Friedman <friedman@gnu.org>
13388
13389 * Makefile.in: *** empty log message ***
13390
13391 1993-04-15 Richard Stallman <rms@gnu.org>
13392
13393 * src/main.c, src/files.c:
13394 New file.
13395
13396 1993-04-15 Noah Friedman <friedman@gnu.org>
13397
13398 * configure.in: entered into RCS
13399
13400 * configure.in: *** empty log message ***
13401
13402 * configure.in: New file.
13403
13404 1993-04-14 Richard Stallman <rms@gnu.org>
13405
13406 * Makefile.in: New file.
13407
13408 1993-04-13 Richard Stallman <rms@gnu.org>
13409
13410 * src/version.c: New file.
13411
13412 1993-03-25 Richard Stallman <rms@gnu.org>
13413
13414 * src/output.c: entered into RCS
13415
13416 1992-09-25 Richard Stallman <rms@gnu.org>
13417
13418 * configure.bat: entered into RCS
13419
13420 1992-06-22 Richard Stallman <rms@gnu.org>
13421
13422 * src/vmsgetargs.c: entered into RCS
13423
13424 1992-06-22 Richard Stallman <rms@gnu.org>
13425
13426 * doc/bison.rnh: entered into RCS
13427
13428 1992-04-20 David J. MacKenzie <djm@gnu.org>
13429
13430 * README: entered into RCS
13431
13432 1992-01-22 Richard Stallman <rms@gnu.org>
13433
13434 * src/machine.h: entered into RCS
13435
13436 1991-12-21 Richard Stallman <rms@gnu.org>
13437
13438 * src/lalr.c, src/closure.c:
13439 entered into RCS
13440
13441 1991-12-20 Richard Stallman <rms@gnu.org>
13442
13443 * src/state.h: entered into RCS
13444
13445 1991-12-18 Richard Stallman <rms@gnu.org>
13446
13447 * src/print.c, src/nullable.c, src/derives.c:
13448 entered into RCS
13449
13450 1991-11-03 David J. MacKenzie <djm@gnu.org>
13451
13452 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
13453 entered into RCS
13454
13455 1988-09-09 Richard Stallman <rms@gnu.org>
13456
13457 * src/bison.hairy: entered into RCS
13458
13459 1987-12-16 Richard Stallman <rms@gnu.org>
13460
13461 * REFERENCES: entered into RCS
13462
13463 -----
13464
13465 Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
13466 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
13467
13468 This file is part of Bison, the GNU Compiler Compiler.
13469
13470 Bison is free software; you can redistribute it and/or modify
13471 it under the terms of the GNU General Public License as published by
13472 the Free Software Foundation; either version 2, or (at your option)
13473 any later version.
13474
13475 Bison is distributed in the hope that it will be useful,
13476 but WITHOUT ANY WARRANTY; without even the implied warranty of
13477 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13478 GNU General Public License for more details.
13479
13480 You should have received a copy of the GNU General Public License
13481 along with Bison; see the file COPYING. If not, write to
13482 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
13483 Boston, MA 02110-1301, USA.